From e57966a5526f5b2707d1a33cfd7619695c5b7d21 Mon Sep 17 00:00:00 2001 From: Benjamin Schieder Date: Tue, 4 Apr 2006 14:11:42 +0000 Subject: [PATCH] Benjamin Schieder: if "build" is a symlink then do NOT symlink $builddir into it. This usually happens when doing a cluster build. We do NOT want to extract and compile our stuff on the NFS share. [2006021621333531739] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@7411 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- scripts/Build-Pkg | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/scripts/Build-Pkg b/scripts/Build-Pkg index 85f4fbf2b..e353fca0b 100755 --- a/scripts/Build-Pkg +++ b/scripts/Build-Pkg @@ -292,8 +292,17 @@ if [ "$chroot" = 1 ] ; then ln -snf ../.. "ROCK/build/$ROCKCFG_ID" fi - mkdir -p "ROCK/src.$xpkg.$id" - ln -s "$PWD/ROCK/src.$xpkg.$id" "$builddir" + # If build is a symlink to somewhere else (NFS share for clusterbuild + # usually) we do _not_ want to extract our stuff there. + # Network latency! + if [ -L ${base}/build ] ; then + mkdir -p "${builddir}" + mkdir "$PWD/ROCK/src.$xpkg.$id" + mount --bind "${builddir}" "$PWD/ROCK/src.$xpkg.$id" + else + mkdir -p "ROCK/src.$xpkg.$id" + ln -s "$PWD/ROCK/src.$xpkg.$id" "$builddir" + fi cat > $builddir/chroot.sh <<- EOT export ROCK_THIS_IS_CHROOT=1; cd /ROCK @@ -329,8 +338,10 @@ if [ "$chroot" = 1 ] ; then TZ="/ROCK/localtime" chroot . bin/bash ROCK/src.$xpkg.$id/chroot.sh returncode=$? - if [ ! -d "$builddir/." ]; then + if [ -L "$builddir" ]; then rm "$builddir" + else + umount "${builddir}" fi exit $returncode