[ $systemslice_count -gt 0 ] && for systemslice in $(ls ../build/config.${pldistro}/sliceimage-*.pkgs) ; do
NAME=$(basename $systemslice .pkgs | sed -e s,sliceimage-,,)
- echo "--------START BUILDING system sliceimage ${NAME}: $(date)"
+ echo " * --------START BUILDING system sliceimage ${NAME}: $(date)"
# "Parse" out the packages and groups for yum
systempackages=$(pl_getPackages ${pl_DISTRO_NAME} $pldistro $systemslice)
# Install the system sliceimage specific packages
for yum_package in $systempackages; do
echo " * yum installing $yum_package"
- yum -c ${vdir}/etc/mkfedora-yum.conf --installroot=${vdir} -y install $yum_package
+ yum -c ${vdir}/etc/mkfedora-yum.conf --installroot=${vdir} -y install $yum_package || \
+ echo " * WARNING image $systemslice - yum install $yum_package failed"
done
for group_plus in $systemgroups; do
- group=$(echo $group_plus | sed -e "s,+++, ,g")
- echo " * yum groupinstalling $group"
- yum -c ${vdir}/etc/mkfedora-yum.conf --installroot=${vdir} -y groupinstall "$group"
+ yum_group=$(echo $group_plus | sed -e "s,+++, ,g")
+ echo " * yum groupinstalling $yum_group"
+ yum -c ${vdir}/etc/mkfedora-yum.conf --installroot=${vdir} -y groupinstall "$yum_group" || \
+ echo " * WARNING image $systemslice - yum groupinstall $yum_group failed"
done
+ # running pip or gem requires connectivity, and DNS
+ # so we expose the build-vm's /etc/resolv.conf to the current vdir
+ mkdir -p ${vdir}/etc
+ cp /etc/resolv.conf ${vdir}/etc
+
# this requires pip to be available in sliceimage at that point
# fedora and debian -> python-pip
# on fedora the command is called pip-python (sigh.)
for pip in $systempips; do
echo " * pip installing $pip"
- chroot ${vdir} pip -v install $pip || chroot ${vdir} pip-python -v $pip || echo " * FAILURE with pip $pip"
+ chroot ${vdir} pip -v install $pip || chroot ${vdir} pip-python -v $pip || \
+ echo " * WARNING image $systemslice - pip install $pip failed"
done
# same for gems; comes with ruby in fedora but ruby-devel is most likely a good thing
# we add --no-rdoc --no-ri to keep it low
for gem in $systemgems; do
echo " * gem installing $gem"
- chroot ${vdir} gem install --no-rdoc --no-ri $gem || echo " * FAILURE with gem $gem"
+ chroot ${vdir} gem install --no-rdoc --no-ri $gem || \
+ echo " * WARNING image $systemslice - gem install $gem failed"
done
# search e.g. sliceimage-planetflow.post in config.<pldistro> or in config.planetlab otherwise
# cleanup yum remainings
rm -rf ${vdir}/build ${vdir}/longbuildroot
- echo "--------DONE BUILDING system sliceimage ${NAME}: $(date)"
+ echo " * --------DONE BUILDING system sliceimage ${NAME}: $(date)"
done
# search sliceimage.post in config.<pldistro> or in config.planetlab otherwise
# fix sudoers config
[ -f ${vref}/etc/sudoers ] && echo -e "\nDefaults\tlogfile=/var/log/sudo\n" >> ${vref}/etc/sudoers
+# make sure 32bit slice images have the right yum config in /etc/yum/vars
+# this issue showed on a f18 64bits node hosting a f14 32bits sliver
+# this workaround probably means the 32bits sliver does not properly run as a 32bits VM
+grep -q i386 ${vref}/etc/slicefamily && {
+ echo i686 > ${vref}/etc/yum/vars/arch
+ echo i386 > /etc/yum/vars/basearch
+}
+
# cleanup yum remainings
rm -rf ${vref}/build ${vref}/longbuildroot