aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ports-mgmt/Makefile1
-rw-r--r--ports-mgmt/synth/Makefile57
-rw-r--r--ports-mgmt/synth/distinfo4
-rw-r--r--ports-mgmt/synth/pkg-descr23
-rw-r--r--ports-mgmt/synth/pkg-plist6
5 files changed, 91 insertions, 0 deletions
diff --git a/ports-mgmt/Makefile b/ports-mgmt/Makefile
index 3fac558ccdc2..fb288afeca32 100644
--- a/ports-mgmt/Makefile
+++ b/ports-mgmt/Makefile
@@ -64,6 +64,7 @@
SUBDIR += py-pytoport
SUBDIR += py-skog
SUBDIR += symports
+ SUBDIR += synth
SUBDIR += tinderbox
SUBDIR += tinderbox-devel
SUBDIR += wanted-ports
diff --git a/ports-mgmt/synth/Makefile b/ports-mgmt/synth/Makefile
new file mode 100644
index 000000000000..8f7d27d5a39a
--- /dev/null
+++ b/ports-mgmt/synth/Makefile
@@ -0,0 +1,57 @@
+# Created by: John Marino <marino@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= synth
+PORTVERSION= 0.98
+DISTVERSIONPREFIX= v
+CATEGORIES= ports-mgmt
+
+MAINTAINER= marino@FreeBSD.org
+COMMENT= Custom package repository builder for FreeBSD and DragonFly
+
+LICENSE= ISCL
+LICENSE_FILE= ${WRKSRC}/License.txt
+
+#BUILD_DEPENDS= ${LOCALBASE}/lib/gnat/util.gpr:${PORTSDIR}/devel/ada-util \
+# ${LOCALBASE}/lib/gnat/${IFM}.gpr:${PORTSDIR}/misc/${IFM} \
+# ${LOCALBASE}/lib/gnat/${AC}.gpr:${PORTSDIR}/devel/${AC}
+
+USES= ada:6 ncurses:port
+USE_GITHUB= yes
+GH_ACCOUNT= jrmarino
+GH_PROJECT= synth_external:bundle
+GH_TAGNAME= v1.3:bundle
+
+# When framework is moved to Ada6, the ada-util and ini-file-manager
+# libraries can be used as prebuilt (switch default.gpr url)
+# ncurses:port is required for FreeBSD 11 and DragonFly (base ncurses
+# malfunctions in that it won't restore TTY mode correctly)
+
+COBJFILES= ncurses_compat.o c_varargs_to_ada.o c_threaded_variables.o
+
+post-extract:
+ @${MV} ${WRKSRC_bundle}/external ${WRKSRC}
+ @${REINPLACE_CMD} -e "s|/usr/local|${LOCALBASE}|" \
+ ${WRKSRC}/external/lib/gnat/adacurses.gpr \
+ ${WRKSRC}/src/definitions.ads
+
+do-build:
+ # To avoid requiring gprbuild as a dependency, compile C manually
+.for csrc in ${COBJFILES:R}
+ (cd ${WRKSRC}/external/include/adacurses && ${SETENV} ${MAKE_ENV} \
+ gcc -I. -c ${csrc}.c -o ../../build/adacurses/${csrc}.o)
+.endfor
+ (cd ${WRKSRC}/synthexec && ${SETENV} ${MAKE_ENV} \
+ gcc synthexec.c -o ../build/synthexec)
+ (cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} gnatmake -P default)
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/build/synth \
+ ${STAGEDIR}${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${WRKSRC}/build/synthexec \
+ ${STAGEDIR}${PREFIX}/libexec
+ ${INSTALL_MAN} ${WRKSRC}/synth.1 ${STAGEDIR}${MANPREFIX}/man/man1
+ ${MKDIR} ${STAGEDIR}/var/log/synth \
+ ${STAGEDIR}/var/synth/live_packages
+
+.include <bsd.port.mk>
diff --git a/ports-mgmt/synth/distinfo b/ports-mgmt/synth/distinfo
new file mode 100644
index 000000000000..052d9c9f308b
--- /dev/null
+++ b/ports-mgmt/synth/distinfo
@@ -0,0 +1,4 @@
+SHA256 (jrmarino-synth-v0.98_GH0.tar.gz) = 4289e70f56c545f318695a2ee965e48181bd7f16659135640c419ea5e213c442
+SIZE (jrmarino-synth-v0.98_GH0.tar.gz) = 73424
+SHA256 (jrmarino-synth_external-v1.3_GH0.tar.gz) = 2afc03e494d2394446eabdb5244967c202a79b449c7cad7ea67a87807cc25f44
+SIZE (jrmarino-synth_external-v1.3_GH0.tar.gz) = 209283
diff --git a/ports-mgmt/synth/pkg-descr b/ports-mgmt/synth/pkg-descr
new file mode 100644
index 000000000000..9c43e0dd4a93
--- /dev/null
+++ b/ports-mgmt/synth/pkg-descr
@@ -0,0 +1,23 @@
+Synth is a custom packge repository builder for FreeBSD and DragonFly.
+
+It is intended to replace Portmaster, portupgrade, and poudriere for
+the average user. It is simple to learn (the powerful options are
+limited in number) and user-friendly, but it is extremely fast due
+to its parallel building capability. It will "drop-in" on any system
+as it leverages the stock pkg(8) facilities. All ports are built
+in a clean environment, so it is finally safe to build ports as
+needed on a live system. The default profile is the system itself, not
+a new jail, which can be a valuable feature for some environments.
+
+To bring a system up-to-date only requires one command after the ports
+tree is updated:
+
+ > synth upgrade-system
+
+During the building process, a curses-based display will show the status
+of all the builders and the entire bulk run process. Synth is intended
+to be grasped and utilized by novice users within minutes, but offers
+most of the same powerful features as Poudriere for the power users.
+Synth requires no preparation; it works immediately upon installation.
+
+WWW: https://github.com/jrmarino/synth
diff --git a/ports-mgmt/synth/pkg-plist b/ports-mgmt/synth/pkg-plist
new file mode 100644
index 000000000000..06cd9512e0df
--- /dev/null
+++ b/ports-mgmt/synth/pkg-plist
@@ -0,0 +1,6 @@
+bin/synth
+libexec/synthexec
+man/man1/synth.1.gz
+@dir /var/log/synth
+@dir /var/synth
+@dir /var/synth/live_packages