- echo ${vrefname} > ${vdir}.cloned
-
- # Construct the excludes & includes patterns for rsync
- (cd ${vdir} && find *) > ${vdir}.excludes
- echo "var/lib/rpm/*" > ${vdir}.includes
-
- # 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
-
- # Create a copy of the system vserver w/o the vserver reference files
- mkdir -p ${vdir}-tmp/
- rsync -a --include-from=${vdir}.includes --exclude-from=${vdir}.excludes ${vdir}/ ${vdir}-tmp/
+ echo ${slicefamily} > ${vdir}.cloned
+
+ # Install the system sliceimage specific packages
+ [ -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
+
+ # search e.g. sliceimage-planetflow.post in config.<pldistro> or in config.planetlab otherwise
+ postfile=$(pl_locateDistroFile ../build/ ${pldistro} sliceimage-${NAME}.post || : )
+
+ [ -f $postfile ] && /bin/bash $postfile ${vdir} || :
+
+ # Create a copy of the system sliceimage w/o the sliceimage 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/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
+ linecount=$(wc -l ${vdir}.changes | awk ' { print $1 } ')
+ let headcount=$linecount-3
+ let tailcount=$headcount-1
+ # get rid of the last 3 lines of the rsync output
+ head -${headcount} ${vdir}.changes > ${vdir}.changes.1
+ # get rid of the first line of the rsync output
+ tail -${tailcount} ${vdir}.changes.1 > ${vdir}.changes.2
+ # post process rsync output to get rid of symbolic link embellish output
+ awk ' { print $1 } ' ${vdir}.changes.2 > ${vdir}.changes
+ rm -f ${vdir}.changes.*
+
+ # step 3: create the ${vdir} with just the list given in ${vdir}.changes
+ install -d -m 755 ${vdir}-tmp/
+ rm -rf ${vdir}-tmp/*
+ (cd ${vdir} && cpio -m -d -u -p ${vdir}-tmp < ${vdir}.changes)