Package: kvm-source Version: 85+dfsg-4 Severity: wishlist Tags: patch On Debian systems, modules under /lib/modules/$KVER/updates take precedence over the standard system modules. See depmod.conf(5) for details. kvm could use this feature to avoid diversions.
The attached patch implements this. I've tested it on upgrades from lenny and upgrades from current sid. There is a bit of ugly version testing code in the new preinst (see comment) but it can probably be simplified if this is incorporated along w/ a new upstream version. diff -u kvm-85+dfsg/debian/postrm.modules.in kvm-85+dfsg/debian/postrm.modules.in --- kvm-85+dfsg/debian/postrm.modules.in +++ kvm-85+dfsg/debian/postrm.modules.in @@ -2,25 +2,8 @@ set -e -drivers="kvm kvm-intel kvm-amd" -if dpkg --compare-versions "@KERNEL@" lt 2.6.26 ; then - dir=/lib/modules/@KERNEL@/kernel/drivers/kvm -else - dir=/lib/modules/@KERNEL@/kernel/arch/x86/kvm -fi - case "${1}" in - remove) - for driver in $drivers; do - if [ -e "$dir/$driver.ko.linux" ]; then - dpkg-divert --package kvm-modul...@kernel@ --remove --rename \ - --divert $dir/$driver.ko.linux \ - $dir/$driver.ko - fi - done - ;; - - purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + remove|purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; diff -u kvm-85+dfsg/debian/changelog kvm-85+dfsg/debian/changelog --- kvm-85+dfsg/debian/changelog +++ kvm-85+dfsg/debian/changelog @@ -1,3 +1,9 @@ +kvm (85+dfsg-5) UNRELEASED; urgency=low + + * Install modules under updates/ hierarchy instead of using diversions + + -- dann frazier <da...@debian.org> Mon, 28 Sep 2009 16:03:53 -0600 + kvm (85+dfsg-4) unstable; urgency=low * upload to unstanble diff -u kvm-85+dfsg/debian/preinst.modules.in kvm-85+dfsg/debian/preinst.modules.in --- kvm-85+dfsg/debian/preinst.modules.in +++ kvm-85+dfsg/debian/preinst.modules.in @@ -11,17 +11,24 @@ fi case "${1}" in - install|upgrade) - for driver in $drivers; do - if [ -e "$dir/$driver.ko" ]; then - dpkg-divert --package kvm-modul...@kernel@ --add --rename \ - --divert $dir/$driver.ko.linux \ - $dir/$driver.ko - fi - done + upgrade) + # strip off the kernel package version + # 85+dfsg-4+2.6.26-19 --> 85+dfsg-4 + # we can't just compare against 85+dfsg-5 because + # 85+dfsg-4+2.6.26-19 > 85+dfsg-5 + oldkvmver="${2%+2.6.*}" + if dpkg --compare-versions "$oldkvmver" lt 85+dfsg-5; then + for driver in $drivers; do + if [ -e "$dir/$driver.ko.linux" ]; then + dpkg-divert --package kvm-modul...@kernel@ --remove --rename \ + --divert $dir/$driver.ko.linux \ + $dir/$driver.ko + fi + done + fi ;; - abort-upgrade) + install|abort-upgrade) ;; diff -u kvm-85+dfsg/debian/rules kvm-85+dfsg/debian/rules --- kvm-85+dfsg/debian/rules +++ kvm-85+dfsg/debian/rules @@ -124,13 +124,14 @@ binary-modules: dh_testroot dh_clean -k - dh_installdirs lib/modules/$(KVERS)/misc + dh_installdirs lib/modules/$(KVERS)/updates/arch/$(ARCH_DIR)/kvm # Build the modules $(MAKE) KERNELDIR=$(KSRC) KVERREL=$(KVERS) # Install the modules - cp $(ARCH_DIR)/kvm.ko $(ARCH_DIR)/kvm-intel.ko $(ARCH_DIR)/kvm-amd.ko debian/$(PKGNAME)/lib/modules/$(KVERS)/misc + cp $(ARCH_DIR)/kvm.ko $(ARCH_DIR)/kvm-intel.ko $(ARCH_DIR)/kvm-amd.ko \ + debian/$(PKGNAME)/lib/modules/$(KVERS)/updates/arch/$(ARCH_DIR)/kvm dh_installdocs dh_installchangelogs -- Package-specific info: selected information from lshal(1): /proc/cpuinfo: processor : 0 vendor : GenuineIntel arch : IA-64 family : 31 model : 1 model name : Madison revision : 5 archrev : 0 features : branchlong cpu number : 0 cpu regs : 4 cpu MHz : 1300.000 itc MHz : 1300.000000 BogoMIPS : 1945.60 siblings : 1 physical id: 0 processor : 1 vendor : GenuineIntel arch : IA-64 family : 31 model : 1 model name : Madison revision : 5 archrev : 0 features : branchlong cpu number : 0 cpu regs : 4 cpu MHz : 1300.000 itc MHz : 1300.000000 BogoMIPS : 1945.60 siblings : 1 physical id: 3 -- System Information: Debian Release: squeeze/sid APT prefers proposed-updates APT policy: (500, 'proposed-updates'), (500, 'unstable'), (1, 'experimental') Architecture: ia64 Kernel: Linux 2.6.30-1-mckinley (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages kvm-source depends on: ii bzip2 1.0.5-3 high-quality block-sorting file co ii debhelper 7.4.2 helper programs for debian/rules ii make 3.81-6 An utility for Directing compilati ii module-assistant 0.11.1 tool to make module package creati kvm-source recommends no packages. Versions of packages kvm-source suggests: ii kernel-package 12.021 A utility for building Linux kerne ii linux-headers-2.6.2 2.6.26-13lenny2 Header files for Linux 2.6.26-1-mc ii linux-headers-2.6.2 2.6.26-19 Header files for Linux 2.6.26-2-mc ii linux-headers-2.6.3 2.6.30-6 Header files for Linux 2.6.30-1-mc ii linux-source-2.6.18 2.6.18.dfsg.1-24 Linux kernel source for version 2. ii linux-source-2.6.24 2.6.24-6~etchnhalf.8 Linux kernel source for version 2. ii linux-source-2.6.26 2.6.26-19 Linux kernel source for version 2. ii linux-source-2.6.28 2.6.28-1 Linux kernel source for version 2. ii linux-source-2.6.29 2.6.29-5 Linux kernel source for version 2. ii linux-source-2.6.30 2.6.30-8 Linux kernel source for version 2. -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org