X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.sh;h=6008e8ed20c6a5c09d8017daca382f0ad4325e74;hb=e432974c3c8ef648782172d855d20cb6d51ed5ae;hp=0bbea3da493f40397c15decbcd6da6c59b743ad0;hpb=17220eba8f749b87dd26f80453eb456cec18634e;p=myplc.git diff --git a/build.sh b/build.sh index 0bbea3d..6008e8e 100755 --- a/build.sh +++ b/build.sh @@ -15,81 +15,49 @@ # Mark Huang # Copyright (C) 2006 The Trustees of Princeton University # -# $Id: build.sh,v 1.32 2006/08/16 21:44:48 mlhuang Exp $ +# $Id: build.sh,v 1.39 2007/01/22 16:50:48 mlhuang Exp $ # . build.functions -# -# Build myplc inside myplc-devel. Infinite recursion is avoided only -# if PLC_DEVEL_BOOTSTRAP is false in the default configuration file. -# - -if [ "$PLC_DEVEL_BOOTSTRAP" = "true" ] ; then - # So that we don't pollute the actual myplc-devel image, we use - # the directory that was used to build the image instead of the - # image itself, and mount everything by hand. - mount -o bind,rw devel/data devel/root/data - mount -t proc none devel/root/proc - - # If we used a local mirror, bind mount it into the chroot so that - # we can use it again. - if [ "${PLC_DEVEL_FEDORA_URL:0:7}" = "file://" ] ; then - mkdir -p devel/root/data/fedora - mount -o bind,ro ${PLC_DEVEL_FEDORA_URL#file://} devel/root/data/fedora +# These directories are allowed to grow to unspecified size, so they +# are stored as symlinks to the /data partition. mkfedora and yum +# expect some of them to be real directories, however. +datadirs=( +/etc/planetlab +/root +/var/lib/pgsql +/var/www/html/alpina-logs +/var/www/html/boot +/var/www/html/download +/var/www/html/files +/var/www/html/sites +/var/www/html/generated +/var/www/html/install-rpms +/var/www/html/xml +/tmp +/usr/tmp +/var/tmp +/var/log +) +for datadir in "${datadirs[@]}" ; do + # If we are being re-run, it may be a symlink + if [ -h root/$datadir ] ; then + rm -f root/$datadir + mkdir -p root/$datadir fi - - # Clean up before exiting if anything goes wrong - trap "umount $PWD/devel/root/data/fedora; - umount $PWD/devel/root/data; - umount $PWD/devel/root/proc" ERR INT - - # Build myplc inside myplc-devel. Make sure PLC_DEVEL_BOOTSTRAP is - # false to avoid infinite recursion. - chroot devel/root su - <