From 378bb28a92f2c3238202a42076161308ccc6b5dc 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 b5b61616019..e743c697cd7 100644 --- a/common/xbps-src/shutils/build_dependencies.sh +++ b/common/xbps-src/shutils/build_dependencies.sh @@ -359,7 +359,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") @@ -372,7 +372,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") @@ -390,7 +390,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