1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-19 08:13:21 +00:00

Add new port: ports-mgmt/synth

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.

(more text on pkg-desc).
It's ready for wider testing now.
This commit is contained in:
John Marino 2016-01-10 21:18:15 +00:00
parent b06df1fc54
commit 8b95435edb
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=405749
5 changed files with 91 additions and 0 deletions

View File

@ -64,6 +64,7 @@
SUBDIR += py-pytoport
SUBDIR += py-skog
SUBDIR += symports
SUBDIR += synth
SUBDIR += tinderbox
SUBDIR += tinderbox-devel
SUBDIR += wanted-ports

57
ports-mgmt/synth/Makefile Normal file
View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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