kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #54293
[Bug 151664] Re: DKMS 2.0.17.4 uninstalls wrong file
** 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