** Changed in: somerville Importance: Undecided => Medium ** Changed in: somerville Status: New => Fix Released
** No longer affects: dell -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to dkms in Ubuntu. https://bugs.launchpad.net/bugs/151664 Title: DKMS 2.0.17.4 uninstalls wrong file Status in The Somerville Project: Fix Released Status in “dkms” package in Ubuntu: Fix Released Bug description: DKMS 2.0.17.4 and earlier has a bug whereby when running 'dkms uninstall', it will not delete the module previously installed into /lib/modules/$kernelver/updates/dkms/ but will instead delete the module at /lib/modules/$kernelver/kernel/drivers/... which is incorrect. DKMS 2.0.17.5 corrects this. In addition, DKMS 2.0.17.5 invokes depmod after uninstalling a module so stale data is not retained, and invokes udevtrigger after installing a module for the currently-running kernel in case that module now enables a new device which udev should be aware of. DKMS 2.0.17.5 is available in REVU at http://revu.tauware.de/details.py?upid=376 $ diffstat /tmp/dkms.patch Makefile | 4 ++-- dkms | 14 +++++++++++--- dkms_autoinstaller | 2 ++ pkg/debian/changelog | 8 ++++++++ 4 files changed, 23 insertions, 5 deletions Package builds, installs, upgrades correctly. Affected code paths tested. Does not break other packages (none presently in Universe depend on it). debdiff: File lists identical (after any substitutions) Control files: lines which differ (wdiff format) ------------------------------------------------ Version: [-2.0.17.4-0ubuntu1-] {+2.0.17.5-0ubuntu1+} The relevant changes are: diff --git a/dkms b/dkms index 13dbc54..c9b07c7 100755 --- a/dkms +++ b/dkms @@ -1247,6 +1247,11 @@ function install_module() fi fi + # Notify udev if we installed something for the currently running kernel + if [ -x /sbin/udevtrigger -a "${kernelver_array[0]}" == "$(uname -r)" -a "${arch_array[0]}" == "$(uname -m)" ]; then + /sbin/udevtrigger + fi + echo $"" echo $"DKMS: install Completed." } @@ -1451,9 +1456,9 @@ function possible_dest_module_locations() # override_dest_module_location() is what controls whether or not they're the same. local location - location[0]="${DEST_MODULE_LOCATION[$count]}" - [ "${location[0]}" != "${dest_module_location[$count]}" ] && \ - location[1]="${dest_module_location[$count]}" + location[0]="${dest_module_location[$count]}" + [ "${DEST_MODULE_LOCATION[$count]}" != "${dest_module_location[$count]}" ] && \ + location[1]="${DEST_MODULE_LOCATION[$count]}" echo "${location[0]} ${location[1]}" } @@ -1581,6 +1586,9 @@ function do_uninstall() # But only do this if it was just ACTIVE on the kernel we just uninstalled from [ -n "$was_active" ] && [ -n "$remake_initrd" ] && $0 status -m $module -v $module_version | grep -q "installed" && modu leconfig_add "$1" + # Run depmod because we changed /lib/modules + invoke_command "depmod -a ${kernelver_array[0]}" "depmod" background + echo $"" echo $"DKMS: uninstall Completed." } To manage notifications about this bug go to: https://bugs.launchpad.net/somerville/+bug/151664/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp