forked from Lainports/freebsd-ports
* Require an additional <tmpdir> argument so the client knows where its temp directory is. * Mount the portbuild directory readonly via NFS, and copy files that way instead of via scp, which has too much overhead
60 lines
1.5 KiB
Bash
Executable file
60 lines
1.5 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Script run on the clients, to set them up in preparation for building
|
|
# packages. This includes setting up parts of the /var/portbuild
|
|
# directory hierarchy, the portbuild script and the bindist.tar file
|
|
# for populating the build chroots.
|
|
|
|
nocopy=0
|
|
if [ "x$1" = "x-nocopy" ]; then
|
|
nocopy=1
|
|
shift
|
|
fi
|
|
|
|
if [ $# != 5 ]; then
|
|
echo "usage: $0 [-nocopy] master portbuilddir branch tmpdir md5"
|
|
exit 1
|
|
fi
|
|
|
|
master=$1
|
|
pb=$2
|
|
branch=$3
|
|
tmpdir=$4
|
|
md5master=$5
|
|
|
|
if [ $(echo $(/sbin/mount | grep "${pb}/.*read-only" | awk '{print $3}' | wc -c)) != 0 ]; then
|
|
/sbin/umount -f $(/sbin/mount | grep "${pb}/.*read-only" | awk '{print $3}')
|
|
fi
|
|
|
|
#cd ${pb}
|
|
#fs=$(df . | sed -e '1d' | awk '{print $6}')
|
|
|
|
#mount -u -w $fs
|
|
|
|
cd ${tmpdir}
|
|
|
|
mkdir -p ${tmpdir}/${branch}/chroot
|
|
|
|
# Clean up the tmpdir
|
|
# XXX Should try and unmount old nfs filesystems first
|
|
if ! rm -rf ${tmpdir}/${branch}/chroot/* >/dev/null 2>&1; then
|
|
chflags -R noschg ${tmpdir}/${branch}/chroot/*
|
|
rm -rf ${tmpdir}/${branch}/chroot/*
|
|
fi
|
|
|
|
killall make fetch >/dev/null 2>&1
|
|
|
|
mkdir -p ${tmpdir}/${branch}/tarballs
|
|
if [ "$nocopy" = 0 ]; then
|
|
if [ -f ${tmpdir}/${branch}/tarballs/bindist.tar ]; then
|
|
md5=$(/sbin/md5 ${tmpdir}/${branch}/tarballs/bindist.tar | awk '{print $4}')
|
|
fi
|
|
if [ "${md5}" = "${md5master}" ]; then
|
|
echo "not copying bindist to $(hostname -s) since it is already up to date"
|
|
else
|
|
echo "copying bindist to $(hostname -s)"
|
|
cp -p ${pb}/${branch}/tarballs/bindist.tar ${tmpdir}/${branch}/tarballs
|
|
fi
|
|
fi
|
|
|
|
#mount -u -r $fs
|