1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-16 03:24:07 +00:00
freebsd-ports/ports-mgmt/synth/Makefile
John Marino c6f85bb00c ports-mgmt/synth: Upgrade version 1.40 => 1.41
This release adds detection and handling of circular dependencies.
Two users that tried replacing OpenSSL with LibreSSL found out that
ftp/curl depends on itself when its built with GNUTLS.  That's because
Synth goes into an infinity dependency loop, runs out of stack space,
and crashes.

Now Synth can detect a circular dependency and abort gracefully and
informatively, e.g.

> synth status ftp/curl
ftp/curl scan aborted because a circular dependency on ftp/curl was detected.
... backtrace devel/cmake
... backtrace emulators/tpm-emulator
... backtrace security/trousers
... backtrace security/gnutls
... backtrace ftp/curl

While here, build synth with stack-checking on so out-of-stack situations
result in an exception and not an illegal instruction crash.
2016-06-20 16:57:28 +00:00

52 lines
1.5 KiB
Makefile

# Created by: John Marino <marino@FreeBSD.org>
# $FreeBSD$
PORTNAME= synth
PORTVERSION= 1.41
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= ${GPR}/ini_file_manager.gpr:misc/ini_file_manager \
${GPR}/adacurses.gpr:devel/adacurses
USES= ada:6 ncurses:port
USE_GITHUB= yes
GH_ACCOUNT= jrmarino
GPR= ${LOCALBASE}/lib/gnat
post-extract:
@${REINPLACE_CMD} -e "s|/usr/local|${LOCALBASE}|" \
${WRKSRC}/src/definitions.ads
do-build:
(cd ${WRKSRC}/src && ${SETENV} ${MAKE_ENV} \
gcc -c unix_core.c -o ../build/unix_core.o)
(cd ${WRKSRC}/synthexec && ${SETENV} ${MAKE_ENV} \
gcc synthexec.c -o ../build/synthexec)
(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} gnatmake -P default \
-largs build/unix_core.o)
do-install:
${MKDIR} ${STAGEDIR}${PREFIX}/etc/bash_completion.d \
${STAGEDIR}${PREFIX}/share/zsh/site-functions \
${STAGEDIR}/var/log/synth \
${STAGEDIR}/var/synth/live_packages
${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
${INSTALL_SCRIPT} ${WRKSRC}/shell-completers/_synth.bash \
${STAGEDIR}${PREFIX}/etc/bash_completion.d
${INSTALL_DATA} ${WRKSRC}/shell-completers/_synth \
${STAGEDIR}${PREFIX}/share/zsh/site-functions
.include <bsd.port.mk>