Package: dkms
Version: 2.6.1-4
Severity: normal

Dear Maintainer,

Since bug #830670 was fixed, 'dkms mkbmdeb' produces binary module
packages that have:

  Provides: DEBIAN_PACKAGE-modules

which allow them to satisfy dependencies in many cases. However, some
packages that depend on kernel modules have a versioned dependency on
their associated kernel module package.

For example, the wireguard-tools package in unstable has this:

  Recommends: wireguard-dkms (= 0.0.20190913-1) | wireguard-modules (>=
0.0.20171001)

Section 7.5 of the Debian Policy Manual states:

  "If the Provides field does not specify a version number, it will not
satisfy versioned dependencies or violate versioned Conflicts or Breaks."

This means that the binary module package produced by DKMS, that has

  Provides: wireguard-modules

will NOT satisfy the Recommends from the wireguard-tools package,
rendering the binary module package useless.

Even though not explicitly stated in the policy manual, the inverse
situation should not cause any trouble, i.e. if the modules package has
a versioned Provides, while the depending package has an non-versioned
Depends, the dependency will be satisfied. As such, it seems to me that
giving 'bmdeb' packages a versioned Provides should fix this problem
without any drawbacks.

On my build machine, I changed the bmdeb 'control' template
(/etc/dkms/template-dkms-mkbmdeb/debian/control)
to have this:

  Provides: DEBIAN_PACKAGE-modules (= MODULE_VERSION)

For wireguard, that results in a package named
'wireguard-modules-4.9.0-11-amd64' that has:

  Provides: wireguard-modules (= 0.0.20190913)

which happily satisfies the wireguard-tools Recommends.

I hope this makes sense.

Best regards,
Martijn Grendelman.


-- System Information:
Debian Release: 10.1
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable'), (150, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-6-amd64 (SMP w/2 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages dkms depends on:
ii  build-essential  12.6
ii  coreutils        8.30-3
ii  dpkg-dev         1.19.7
ii  gcc              4:8.3.0-1
ii  kmod             26-1
ii  make             4.2.1-1.2
ii  patch            2.7.6-3+deb10u1

Versions of packages dkms recommends:
ii  fakeroot             1.23-1
ii  linux-headers-amd64  4.19+105+deb10u1
ii  lsb-release          10.2019051400
ii  sudo                 1.8.27-1+deb10u1

Versions of packages dkms suggests:
pn  menu            <none>
pn  python3-apport  <none>

-- no debconf information

Reply via email to