X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.sh;h=7b0056ba8b301cf926df2a3c1bdf9d707cdc3772;hb=ad52c7c072689ee496fe29d7196fe4ed91ffae1f;hp=8165fa58116f55add910137d553553711dffb319;hpb=c5588c0570a80bcc238e6a98f765a4e32c363a36;p=bootstrapfs.git diff --git a/build.sh b/build.sh index 8165fa5..7b0056b 100755 --- a/build.sh +++ b/build.sh @@ -31,6 +31,10 @@ pl_process_fedora_options $@ shiftcount=$? shift $shiftcount +# pldistro expected as $1 - defaults to planetlab +pldistro=planetlab +[ -n "$@" ] && pldistro=$1 + # Do not tolerate errors set -e @@ -41,33 +45,27 @@ export PL_BOOTCD=1 # "Parse" out the packages and groups into the options passed to mkfedora # -k = exclude kernel* packages -options="-k" -packages=$(grep "^package:.*" base.lst | awk '{print $2}') -groups=$(grep "^group:.*" base.lst | awk '{print $2}') -for package in ${packages} ; do options="$options -p $package"; done -for group in ${groups} ; do options="$options -g $group"; done +pkgsfile=$(pl_locateDistroFile ../build/ ${pldistro} bootstrapfs.pkgs) + +echo "+++++++++++++pkgsfile=$pkgsfile (and -k)" # Populate a minimal /dev and then the files for the base PlanetLab-Bootstrap content vref=${PWD}/base install -d -m 755 ${vref} -pl_makedevs ${vref} -pl_setup_chroot ${vref} -k ${options} - -# Build the base Bootstrap filesystem -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)" +pl_mkfedora ${vref} -k -f $pkgsfile -for bootstrapfs in bootstrap-filesystems/*.lst ; do - NAME=$(basename $bootstrapfs .lst) +for pkgs in ../build/config.${pldistro}/bootstrapfs-*.pkgs ; do + NAME=$(basename $pkgs .pkgs | sed -e s,bootstrapfs-,,) echo "--------START BUILDING PlanetLab-Bootstrap-${NAME}: $(date)" # "Parse" out the packages and groups for yum - packages=$(grep "^package:.*" $bootstrapfs | awk '{print $2}') - groups=$(grep "^group:.*" $bootstrapfs | awk '{print $2}') + packages=$(pl_getPackages ${pl_DISTRO_NAME} $pkgs) + groups=$(pl_getGroups ${pl_DISTRO_NAME} $pkgs) + echo "${NAME} has the following packages : ${packages}" + echo "${NAME} has the following groups : ${groups}" - vdir=${PWD}/bootstrap-filesystems/${NAME} + vdir=${PWD}/${pldistro}-filesystems/${NAME} rm -rf ${vdir}/* install -d -m 755 ${vdir} @@ -76,11 +74,17 @@ for bootstrapfs in bootstrap-filesystems/*.lst ; do rm -f ${vdir}/var/lib/rpm/__db* # Install the system vserver specific packages - [ -n "$systempackages" ] && yum -c ${vdir}/etc/yum.conf --installroot=${vdir} -y install $systempackages - [ -n "$systemgroups" ] && yum -c ${vdir}/etc/yum.conf --installroot=${vdir} -y groupinstall $systemgroups + [ -n "$packages" ] && yum -c ${vdir}/etc/yum.conf --installroot=${vdir} -y install $packages + [ -n "$groups" ] && yum -c ${vdir}/etc/yum.conf --installroot=${vdir} -y groupinstall $groups - # Create a copy of the system vserver w/o the vserver reference files and make it smaller. - # This is a three step process: + if [ -f "${vdir}/proc/cpuinfo" ] ; then + echo "WARNING: some RPM appears to have mounted /proc in ${NAME}. Unmounting it!" + umount ${vdir}/proc + fi + + # Create a copy of the ${NAME} bootstrap filesystem w/o the base + # bootstrap filesystem and make it smaller. This is a three step + # process: # step 1: clean out yum cache to reduce space requirements yum -c ${vdir}/etc/yum.conf --installroot=${vdir} -y clean all @@ -107,9 +111,16 @@ for bootstrapfs in bootstrap-filesystems/*.lst ; do mv ${vdir}-tmp ${vdir} echo "--------STARTING tar'ing PlanetLab-Bootstrap-${NAME}.tar.bz2: $(date)" - tar -cpjf bootstrap-filesystems/PlanetLab-Bootstrap-${NAME}.tar.bz2 -C ${vdir} . + tar -cpjf ${pldistro}-filesystems/PlanetLab-Bootstrap-${NAME}.tar.bz2 -C ${vdir} . echo "--------FINISHED tar'ing PlanetLab-Bootstrap-${NAME}.tar.bz2: $(date)" echo "--------DONE BUILDING PlanetLab-Bootstrap-${NAME}: $(date)" 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 +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)" + exit 0