Package: dkms Version: 2.2.0.3-1 Severity: normal Hello,
When building a DKMS module that don't supplies MODULE_VERSION strings
that tries to replace the in-kernel module that supplies this
MODULE_VERSION string DKMS fails to recognize that both modules are
different because it is not cleaning the variable res.
Just see this dirty test:
# Define get_module_verinfo (just c&p from /usr/bin/dmks)
$ get_module_verinfo(){
local vals=
while read -a vals; do
case ${vals[0]} in
version:) res[0]=${vals[1]}; res[2]=${vals[2]};;
srcversion:) res[1]=${vals[1]};;
esac
done < <(modinfo $1)
}
$ unset res
$ get_module_verinfo coretemp
$ echo $res
<- nothing, good since coretemp don't has MODULE_VERSION
get_module_verinfo e1000e
$ echo $res
1.5.1-k <- GOOD, this is the MODULE_VERSION of e1000e
$ get_module_verinfo coretemp
$ echo $res
1.5.1-k <- FAIL!!
This causes that DKMS don't installs the new module that is clearly
different than the in-kernel one (the first has no MODULE_VERSION and
the second one has)
The attached patch fixes this issue
--- a/usr/sbin/dkms 2012-08-08 20:55:42.752487579 +0200
+++ b/usr/sbin/dkms 2012-08-08 20:56:13.451549256 +0200
@@ -646,6 +646,7 @@
# Little helper function for parsing the output of modinfo.
get_module_verinfo(){
+ unset res
local vals=
while read -a vals; do
case ${vals[0]} in
signature.asc
Description: OpenPGP digital signature

