From 6cd3bd18067b5fd95cb5a1ae7a0805b6a2239518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= Date: Tue, 14 Apr 2020 20:04:31 +0200 Subject: [PATCH] xbps-src: break out of following cyclic dependencies --- common/xbps-src/libexec/build.sh | 6 ++++++ common/xbps-src/shutils/build_dependencies.sh | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/common/xbps-src/libexec/build.sh b/common/xbps-src/libexec/build.sh index cba71fbacad..6abc988298b 100755 --- a/common/xbps-src/libexec/build.sh +++ b/common/xbps-src/libexec/build.sh @@ -26,6 +26,12 @@ for f in $XBPS_SHUTILSDIR/*.sh; do . $f done +last="${XBPS_DEPENDS_CHAIN##*,}" +case "$XBPS_DEPENDS_CHAIN" in + *,$last,*) + msg_error "Build-time cyclic dependency$last,${XBPS_DEPENDS_CHAIN##*,$last,} detected.\n" +esac + setup_pkg "$PKGNAME" $XBPS_CROSS_BUILD readonly SOURCEPKG="$sourcepkg" diff --git a/common/xbps-src/shutils/build_dependencies.sh b/common/xbps-src/shutils/build_dependencies.sh index 2eb8b8ad204..ebf5a0bc131 100644 --- a/common/xbps-src/shutils/build_dependencies.sh +++ b/common/xbps-src/shutils/build_dependencies.sh @@ -369,7 +369,7 @@ install_pkg_deps() { ( curpkgdepname=$($XBPS_UHELPER_CMD getpkgname "$i" 2>/dev/null) setup_pkg $curpkgdepname - exec env XBPS_DEPENDENCY=1 XBPS_BINPKG_EXISTS=1 \ + exec env XBPS_DEPENDENCY=1 XBPS_BINPKG_EXISTS=1 XBPS_DEPENDS_CHAIN="$XBPS_DEPENDS_CHAIN, $sourcepkg(host)" \ $XBPS_LIBEXECDIR/build.sh $sourcepkg $pkg $target $cross_prepare || exit $? ) || exit $? host_binpkg_deps+=("$i") @@ -382,7 +382,7 @@ install_pkg_deps() { curpkgdepname=$($XBPS_UHELPER_CMD getpkgname "$i" 2>/dev/null) setup_pkg $curpkgdepname $cross - exec env XBPS_DEPENDENCY=1 XBPS_BINPKG_EXISTS=1 \ + exec env XBPS_DEPENDENCY=1 XBPS_BINPKG_EXISTS=1 XBPS_DEPENDS_CHAIN="$XBPS_DEPENDS_CHAIN, $sourcepkg(${cross:-host})" \ $XBPS_LIBEXECDIR/build.sh $sourcepkg $pkg $target $cross $cross_prepare || exit $? ) || exit $? binpkg_deps+=("$i") @@ -400,7 +400,7 @@ install_pkg_deps() { fi fi setup_pkg $curpkgdepname $cross - exec env XBPS_DEPENDENCY=1 XBPS_BINPKG_EXISTS=1 \ + exec env XBPS_DEPENDENCY=1 XBPS_BINPKG_EXISTS=1 XBPS_DEPENDS_CHAIN="$XBPS_DEPENDS_CHAIN, $sourcepkg(${cross:-host})" \ $XBPS_LIBEXECDIR/build.sh $sourcepkg $pkg $target $cross $cross_prepare || exit $? ) || exit $? done