X-Git-Url: http://git.onelab.eu/?p=vserver-reference.git;a=blobdiff_plain;f=build.sh;h=53df7543df9ffd4c842880074b4f0ae4f843b229;hp=23b0d49190ce1bd1fd5169dafa4e1b0ef3fe0016;hb=HEAD;hpb=a8826b098f0080b9cf00a43623ed28b0274367cf diff --git a/build.sh b/build.sh index 23b0d49..53df754 100755 --- a/build.sh +++ b/build.sh @@ -69,11 +69,13 @@ systemslice_count=$(ls ../build/config.${pldistro}/sliceimage-*.pkgs 2> /dev/nul [ $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) systemgroups=$(pl_getGroups ${pl_DISTRO_NAME} $pldistro $systemslice) + systempips=$(pl_getPips ${pl_DISTRO_NAME} $pldistro $systemslice) + systemgems=$(pl_getGems ${pl_DISTRO_NAME} $pldistro $systemslice) vdir=${vstubdir}/${NAME} rm -rf ${vdir}/* @@ -87,10 +89,38 @@ systemslice_count=$(ls ../build/config.${pldistro}/sliceimage-*.pkgs 2> /dev/nul 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 yum_package in $systempackages; do + echo " * yum installing $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") - 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 " * 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 " * WARNING image $systemslice - gem install $gem failed" done # search e.g. sliceimage-planetflow.post in config. or in config.planetlab otherwise @@ -128,7 +158,7 @@ systemslice_count=$(ls ../build/config.${pldistro}/sliceimage-*.pkgs 2> /dev/nul # 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. or in config.planetlab otherwise