# pldistro expected as $1
pldistro=$1 ; shift
# The vserver reference name - this comes from spec's slicefamily
-vrefname=$1; shift
+slicefamily=$1; shift
# Do not tolerate errors
set -e
# Path's to the vserver references images and stubs
vrefdir=$PWD/vservers/.vref
-vref=${vrefdir}/${vrefname}
+vref=${vrefdir}/${slicefamily}
# stubs are created in a subdir per slicefamily
-vstubdir=$PWD/vservers/.vstub/${vrefname}
+vstubdir=$PWD/vservers/.vstub/${slicefamily}
# Make /vservers and default vserver reference image
install -d -m 755 ${vref}
+# needed for pldistros that don't have any system vserver images
+install -d -m 755 ${vstubdir}
# Some of the PlanetLab RPMs attempt to (re)start themselves in %post,
# unless the installation is running inside the BootCD environment. We
rm -f ${vdir}/var/lib/rpm/__db*
# Communicate to the initialization script from which vref this stub was cloned
- echo ${vrefname} > ${vdir}.cloned
+ echo ${slicefamily} > ${vdir}.cloned
# 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 "$systempackages" ] && yum -c ${vdir}/etc/mkfedora-yum.conf --installroot=${vdir} -y install $systempackages
+ for group_plus in $systemgroups; do
+ group=$(echo $group_plus | sed -e "s,+++, ,g")
+ yum -c ${vdir}/etc/mkfedora-yum.conf --installroot=${vdir} -y groupinstall "$group"
+ done
pkgsdir=$(dirname $pkgsfile)
pkgsname=$(basename $pkgsfile .pkgs)
- postfile="${pkgsdir}/${pkgsname}.post"
+ postfile=$(pl_locateDistroFile ../build/ ${pldistro} "${pkgsname}.post")
[ -f $postfile ] && /bin/bash $postfile ${vdir} || :
# Create a copy of the system vserver w/o the vserver reference files 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
-
- [ -f ${vdir}/etc/yum.conf.rpmnew ] && mv -f ${vdir}/etc/yum.conf.rpmnew ${vdir}/etc/yum.conf
+ yum -c ${vdir}/etc/mkfedora-yum.conf --installroot=${vdir} -y clean all
# step 2: figure out the new/changed files in ${vdir} vs. ${vref} and compute ${vdir}.changes
rsync -anv ${vdir}/ ${vref}/ > ${vdir}.changes
pkgsdir=$(dirname $pkgsfile)
pkgsname=$(basename $pkgsfile .pkgs)
-postfile="${pkgsdir}/${pkgsname}.post"
+postfile=$(pl_locateDistroFile ../build/ ${pldistro} "${pkgsname}.post")
[ -f $postfile ] && /bin/bash $postfile ${vref} || :
-# switch the vserver reference /etc/yum.conf to the new one from the yum package
-[ -f ${vref}/etc/yum.conf.rpmnew ] && mv -f ${vref}/etc/yum.conf.rpmnew ${vref}/etc/yum.conf
+# fix sudoers config
+[ -f ${vref}/etc/sudoers ] && echo -e "\nDefaults\tlogfile=/var/log/sudo\n" >> ${vref}/etc/sudoers
exit 0