Hi Bastian, On Sat, Apr 10, 2021 at 01:39:15PM +0200, Bastian Blank wrote: > Exactly, it requires working udev and udev rules for it's primary > function. To change that, it either needs
I fear that you still get "primary function" wrong. In many cases, the primary function of a shared library is being able to load it and then not calling any of its functions. It may be unfortunate, but that's how we integrate optional features from shared libraries. > - to be split into two libraries, one with the stuff that needs udev > rules, one for the stuff without or > - runtime detection if udev can work. Or maybe it can quite simply fail to work if the udev rules are not invoked. Demoting the dependency is not a regression in this aspect as libdevmapper1.02.1 already does not depend on udev, so there already is no requirement on invoking the udev rules. I'm just asking for also skipping dmsetup. > Maybe. Please provide a patch to fix this problem, without touching > every piece of software that, directly or indirectly, links against > libdevmapper. I'm attaching the obvious patch. I think that we don't actually need to touch other pieces of software, because it is quite difficult to get a system without dmsetup. This bug is not about making many systems lack dmsetup, but about making it possible at all. * dmsetup is still recommended by libdevmapper1.02.1, so you need to turn off Recommends. * dmsetup is pulled by lvm2 and cryptsetup. * Given that systemd is important and transitively depends on dmsetup at present, we can elevante dmsetup's priority without regressing anything. That way it remains part of a default debootstrap. * The actual bug that introduced the dmsetup dependency was about a mismatched version of dmsetup and libdevmapper1.02.1. Such a situation is prevented by suitable Breaks. > Because the dependency on libdevmapper1.02.1 can only go after systemd > (or maybe libcryptsetup) got it. Neither actually need it unconditionally. We really want to be able to install systemd without dmsetup. That's the highlevel goal of this bug here. Helmut
diff --minimal -Nru lvm2-2.03.11/debian/changelog lvm2-2.03.11/debian/changelog --- lvm2-2.03.11/debian/changelog 2021-02-22 22:39:14.000000000 +0100 +++ lvm2-2.03.11/debian/changelog 2021-04-10 17:14:20.000000000 +0200 @@ -1,3 +1,12 @@ +lvm2 (2.03.11-2.2) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Demote libdevmapper1.02.1 -> dmsetup dependency to versioned Breaks + + Recommends. Increase its priority to important to remain in a default + debootstrap. (closes: #986652) + + -- Helmut Grohne <hel...@subdivi.de> Sat, 10 Apr 2021 17:14:20 +0200 + lvm2 (2.03.11-2.1) unstable; urgency=medium * Non-maintainer upload. diff --minimal -Nru lvm2-2.03.11/debian/control lvm2-2.03.11/debian/control --- lvm2-2.03.11/debian/control 2021-02-22 22:39:14.000000000 +0100 +++ lvm2-2.03.11/debian/control 2021-04-10 17:14:20.000000000 +0200 @@ -144,7 +144,10 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, - dmsetup (>= ${devmapper:Version}~), +Breaks: + dmsetup (<< ${devmapper:Version}~), +Recommends: + dmsetup, Multi-Arch: same Description: Linux Kernel Device Mapper userspace library The Linux Kernel Device Mapper is the LVM (Linux Logical Volume Management) @@ -183,6 +186,7 @@ ${shlibs:Depends}, ${misc:Depends}, Multi-Arch: foreign +Priority: important Description: Linux Kernel Device Mapper userspace library The Linux Kernel Device Mapper is the LVM (Linux Logical Volume Management) Team's implementation of a minimalistic kernel-space driver that handles