Hi Helmut

On Sat, Apr 10, 2021 at 06:05:40PM +0200, Helmut Grohne wrote:
> 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.

The primary function is to introspect and modify the kernel device
mapper.  It does that by asking udev to do the magic, hence it needs
udev rules.

It is able to distinguish between udev missing and udev available, but
not between working udev and broken udev.  So the availability of both
the rules and dmsetup is not optional.  I don't pretend what
libdevmapper does in udev context is nice, but I assume upstream checked
other solutions as well.

> Or maybe it can quite simply fail to work if the udev rules are not
> invoked.

Please provide a patch and get it applied upstream.  Hint, the kernel
interface and udev is asynchron, so you have no obvious "fail to work".

>          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.

As I said above: it can work with udev installed.  It can't work if udev
is installed but broken (not running, not providing the necessary
feedback).

I can off course merge dmsetup and the whole udev rule stuff into
libdevmapper, make it an integral part, and kill co-instabillity of
different libdevmapper versions alltogether.

> 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.

No, this is wrong as it breaks various parts of libdevmapper.  The
library will just block in a lot of functions if the udev stuff is
missing and may even leave the user with a non-booting system.  Sorry,
I'm not going to risk breaking all of that for a marginal size
reduction.

Bastian

-- 
I'm a soldier, not a diplomat.  I can only tell the truth.
                -- Kirk, "Errand of Mercy", stardate 3198.9

Reply via email to