Package: dkms
Version: 3.0.11-3
Severity: normal

Hi,

I have computers where I install both zfs-dkms and sometimes 
zfs-modules-<someversion> packages.

When zfs-modules-<someversion> is installed, zfs-dkms fails postinst:

[...]
zzstd.ko:
Running module version sanity check.
Module version 1.4.5a-2.1.12-2 for zzstd.ko
exactly matches what is already found in kernel 6.4.0-3-amd64.
DKMS will not replace this module.
You may override by specifying --force.
Error! Installation aborted.
dpkg: error processing package zfs-dkms (--configure):
 installed zfs-dkms package post-installation script subprocess returned error 
exit status 6

I think that when all modules to be installed exactly match the ones already in 
place, that shouldn't result in a failure.

In case you wonder why I'm doing this: these computers take forever to build 
kernel modules, so whenever possible, I install pre-built modules and want to 
keep dkms only as a failsafe, to make sure the zfs modules are in place before 
I reboot (because they're needed for booting).

I'm filing the bugreport against dkms because it contains these lines of code 
(around line 800):

        if [[ ! "$force" ]]; then
            # if the module has neither version nor srcversion/checksum, check 
the binary files instead
            local verinfo="$(get_module_verinfo "${dkms_module}")"
            if [[ "$(echo "$verinfo" | tr -d '[:space:]')" ]] || diff 
"${kernels_module}" "${dkms_module}" &>/dev/null; then
                echo $"Module version $(echo "$verinfo" | head -n 1) for 
$4${module_suffix}" >&2
                echo $"exactly matches what is already found in kernel $1." >&2
                echo $"DKMS will not replace this module." >&2
                echo $"You may override by specifying --force." >&2
                return 1
            fi
        fi

I believe that "return 1" should be a "return 0" because there is no failure. A 
binary with the exact same version and/or contents is already installed; that's 
exactly the outcome dkms was asked to achieve.

I'll file a separate bug against zfs-dkms asking to avoid building the module 
for kernels for which an appropriate zfs-modules-<version> package is installed.

AndrĂ¡s

-- System Information:
Debian Release: trixie/sid
  APT prefers stable-security
  APT policy: (500, 'stable-security'), (350, 'unstable'), (1, 'experimental')
merged-usr: no
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.4.0-3-amd64 (SMP w/8 CPU threads; PREEMPT)
Init: runit (via /run/runit.stopit)

-- 
              Give a man a fire and he's warm for a day, but set
              fire to him and he's warm for the rest of his life.

Reply via email to