X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.sh;h=00cda860eac5e67670289ebbe78fad58983a17be;hb=a3d8212875d89619125cd2bc98972a572863a218;hp=1326a6bc12cc3068e90beb0ab2274bc445050cf8;hpb=33dd6c62507b482717fa522dd736a9b80bf595ef;p=bootstrapfs.git diff --git a/build.sh b/build.sh index 1326a6b..00cda86 100755 --- a/build.sh +++ b/build.sh @@ -10,6 +10,14 @@ # $Id: buildnode.sh,v 1.12.6.1 2007/08/30 20:09:20 mef Exp $ # + +# +# This will build the Planetlab-Bootstrap.tar.bz2, which comprises +# the base root image on the node, then create the ${NAME} bootstrap image +# which is made up of just the additional files needed for a ${NAME} nodegroup +# node. +# + PATH=/sbin:/bin:/usr/sbin:/usr/bin # In both a normal CVS environment and a PlanetLab RPM @@ -52,9 +60,18 @@ pl_root_makedevs $vref pkgsfile=$(pl_locateDistroFile ../build/ ${pldistro} bootstrapfs.pkgs) # -k = exclude kernel* packages -pl_root_mkfedora ${vref} -k -f $pkgsfile - -for pkgs in ../build/config.${pldistro}/bootstrapfs-*.pkgs ; do +pl_root_mkfedora -k -f $pkgsfile ${vref} + +# optionally invoke a post processing script after packages from +# $pkgsfile have been installed +pkgsdir=$(dirname $pkgsfile) +pkgsname=$(basename $pkgsfile .pkgs) +postfile="${pkgsdir}/${pkgsname}.post" +[ -f $postfile ] && /bin/bash $postfile ${vref} || : + +# for distros that do not define bootstrapfs variants +pkgs_count=$(ls ../build/config.${pldistro}/bootstrapfs-*.pkgs 2> /dev/null | wc -l) +[ $pkgs_count -gt 0 ] && for pkgs in $(ls ../build/config.${pldistro}/bootstrapfs-*.pkgs); do NAME=$(basename $pkgs .pkgs | sed -e s,bootstrapfs-,,) echo "--------START BUILDING PlanetLab-Bootstrap-${NAME}: $(date)" @@ -78,10 +95,18 @@ for pkgs in ../build/config.${pldistro}/bootstrapfs-*.pkgs ; do [ -n "$groups" ] && yum -c ${vdir}/etc/yum.conf --installroot=${vdir} -y groupinstall $groups if [ -f "${vdir}/proc/cpuinfo" ] ; then - echo "WARNING: some RPM appears to have mounted /proc in ${NAME}. Unmounting it!" - umount ${vdir}/proc + echo "WARNING: some RPM appears to have mounted /proc in ${NAME}. Unmounting it!" + umount ${vdir}/proc fi + # optionally invoke a post processing script after packages from + # $pkgs have been installed + pkgsdir=$(dirname $pkgs) + pkgsname=$(basename $pkgs .pkgs) + postfile="${pkgsdir}/${pkgsname}.post" + [ -f $postfile ] && /bin/bash $postfile ${vdir} || : + + # Create a copy of the ${NAME} bootstrap filesystem w/o the base # bootstrap filesystem and make it smaller. This is a three step # process: @@ -109,7 +134,7 @@ for pkgs in ../build/config.${pldistro}/bootstrapfs-*.pkgs ; do rm -rf ${vdir} rm -f ${vdir}.changes mv ${vdir}-tmp ${vdir} - + echo "--------STARTING tar'ing PlanetLab-Bootstrap-${NAME}.tar.bz2: $(date)" tar -cpjf ${pldistro}-filesystems/PlanetLab-Bootstrap-${NAME}.tar.bz2 -C ${vdir} . echo "--------FINISHED tar'ing PlanetLab-Bootstrap-${NAME}.tar.bz2: $(date)" @@ -118,7 +143,8 @@ done # Build the base Bootstrap filesystem # clean out yum cache to reduce space requirements -yum -c ${vref}/etc/yum.conf --installroot=${vdir} -y clean all +yum -c ${vref}/etc/yum.conf --installroot=${vref} -y clean all + echo "--------STARTING tar'ing PlanetLab-Bootstrap.tar.bz2: $(date)" tar -cpjf PlanetLab-Bootstrap.tar.bz2 -C ${vref} . echo "--------FINISHED tar'ing PlanetLab-Bootstrap.tar.bz2: $(date)"