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