X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.common;h=450163b4ce6226971859189f7eacb861045065ef;hb=30faac6c21599371a95aaec1119c643eb1e948f8;hp=390b6f3420624a8e62b5d40dbb16e7e87caa7091;hpb=267058f3b41b77c23fd316f6f654b82116377bf8;p=build.git diff --git a/build.common b/build.common index 390b6f34..450163b4 100644 --- a/build.common +++ b/build.common @@ -73,8 +73,13 @@ function pl_getReleaseName () { function pl_getKexcludes () { distroname=$1; shift case $distroname in + ### there is an ugly hack going on around here + # with f12, the dependencies somehow require kernel 2.6.29 but our own kernel is 2.6.27 + # so the ugly workaround here is to let 'kernel-debug' get installed from the stock repos + # we then remove it manually after the image is done, look for kernel-debug below + # relyong on kernel-PAE for this trick won't work, as 64 bits distros don't have PAE of course f*) - echo 'kernel kernel-vserver kernel-devel kernel-headers kernel-debuginfo util-vserver* iptables iptables-ipv6 iproute drupal' ;; + echo 'kernel kernel-PAE kernel-PAEdebug kernel-vserver kernel-devel kernel-headers kernel-debuginfo util-vserver* iptables iptables-ipv6 iproute drupal' ;; centos5) echo 'kernel kernel-vserver kernel-devel kernel-headers kernel-debuginfo util-vserver* iptables iproute drupal inotify-tools* libnl' ;; *) @@ -408,6 +413,23 @@ fi # Clean yum cache echo "* Cleaning up" + + # NOTE: this hack is for Fedora >= 12. + # if kernel-debug is installed, clean it up + # we link to our version of kernel/initrd and clean up + # kernel-debug manually + if rpm --root $vroot --quiet -q kernel-debug ; then + echo "* Cleaning up kernel-debug - (workaround for f12)" + pushd $vroot/boot/ + rm -rf kernel-boot kernel-bootsmp initrd-boot initrd-bootsmp + ln -s vmlinuz-*${pldistro}* kernel-boot + ln -s vmlinuz-*${pldistro}* kernel-bootsmp + ln -s initrd-*${pldistro}* initrd-boot + ln -s initrd-*${pldistro}* initrd-bootsmp + rpm --root $vroot --nodeps -e kernel-debug || : + popd + fi + # ignore yum's return code that is basically undefined yum $yum_options clean all || : @@ -579,10 +601,13 @@ function pl_locateDistroFile () { pkgsfile=$1; shift pkgspath="" - # if config dir is missing but a .svnpath exists - if [[ -f "$builddir/config.${pldistro}.svnpath" && ! -d "$builddir/config.${pldistro}" ]] ; then - echo 1>&2 "Invoking make to extract remote config.${pldistro}" - make 1>&2 --silent --no-print-directory -C $builddir stage1=true config.${pldistro} + # if config dir is missing but a .svnpath or a .gitpath exists, use it to extract the config dir + configdir="$builddir/config.${pldistro}" + if [ ! -d $configdir ] ; then + if [ -f "${configdir}.svnpath" -o -f "${configdir}.gitpath" ] ; then + echo 1>&2 "Invoking make to extract remote config.${pldistro}" + make 1>&2 --silent --no-print-directory -C $builddir stage1=true config.${pldistro} + fi fi # locate it paths="$builddir/config.$pldistro/$pkgsfile $builddir/config.planetlab/$pkgsfile"