X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.common;h=1edfdea1b5bbccb0515438202403d5904c5233a7;hb=89882652bda7b49174d736ef16ed6f1488623d7b;hp=4da73e1ea9dd969a2c92ea3101f495fa85586c1e;hpb=427d029a1417937f48d9659f3037303fd1577d86;p=build.git diff --git a/build.common b/build.common index 4da73e1e..1edfdea1 100644 --- a/build.common +++ b/build.common @@ -73,10 +73,15 @@ 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-PAE kernel-debug kernel-PAEdebug 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-vserver kernel-devel kernel-headers kernel-debuginfo util-vserver* iptables iproute drupal inotify-tools* libnl' ;; + echo 'kernel kernel-vserver kernel-devel kernel-headers kernel-debuginfo util-vserver* iptables iproute drupal inotify-tools* libnl' ;; *) echo "pl_DISTRO_NAME=$pl_DISTRO_NAME not supported in getexcludes.sh" ; exit 1 ;; esac @@ -175,7 +180,7 @@ function pl_root_makedevs() { mknod -m 600 $vroot/dev/net/tun c 10 200 # For mkinitrd (in case a kernel is being installed) - # As well for loop back mounting within a vserver. + # As well as for loop back mounting within a vserver. for i in $(seq 0 255) ; do mknod -m 640 $vroot/dev/loop$i b 7 $i done @@ -325,6 +330,7 @@ cachedir=/var/cache/yum debuglevel=2 logfile=/var/log/yum.log pkgpolicy=newest +multilib_policy=best distroverpkg=redhat-release tolerant=1 exactarch=1 @@ -408,6 +414,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 || : @@ -429,15 +452,6 @@ fi # Clean up mkfedora_cleanup - # link to our version of kernel/initrd - 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 - popd - return 0 }