X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.sh;h=4ccb8f3c6c7d50eb1f54b0504c33b1f47393f2f8;hb=4e69a6638c3b02b4cec5c1c9a81bdeff6c983dd7;hp=521e45fb73ca90e216c608574e4056c58bb119bf;hpb=23a18e97518e4fdee22505dcbdf9e87546319e43;p=bootstrapfs.git diff --git a/build.sh b/build.sh index 521e45f..4ccb8f3 100755 --- a/build.sh +++ b/build.sh @@ -42,25 +42,28 @@ export PL_BOOTCD=1 # "Parse" out the packages and groups into the options passed to mkfedora # -k = exclude kernel* packages options="-k" -packages=$(pk_getPackages base.lst) -groups=$(pk_getGroups base.lst) +lst="base.lst" +packages=$(pl_getPackages $lst) +groups=$(pl_getGroups $lst) for package in ${packages} ; do options="$options -p $package"; done for group in ${groups} ; do options="$options -g $group"; done +echo "+++++++++++++OPTIONS = ${options}" + # 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} +pl_mkfedora ${vref} ${options} -for bootstrapfs in bootstrap-filesystems/*.lst ; do - NAME=$(basename $bootstrapfs .lst) +for lst in bootstrap-filesystems/*.lst ; do + NAME=$(basename $lst .lst) 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 $lst) + groups=$(pl_getGroups $lst) + echo "${NAME} has the following packages and groups: ${packages} ${groups}" vdir=${PWD}/bootstrap-filesystems/${NAME} rm -rf ${vdir}/* @@ -71,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 + + 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 system vserver w/o the vserver reference files and make it smaller. - # This is a three step process: + # 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 @@ -108,9 +117,9 @@ for bootstrapfs in bootstrap-filesystems/*.lst ; do done # Build the base Bootstrap filesystem -echo "--------STARTING tar'ing PlanetLab-Bootstrap.tar.bz2: $(date)" # 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)"