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

Reply via email to