Hi Bastian, On Sat, Apr 10, 2021 at 10:34:50AM +0200, Bastian Blank wrote: > There is already a bug report about this, merging.
I think there is a subtle difference between these. The old bug is about a dependency cycle, which presents issues to a package manager. The new bug is about an excessive dependency which results in issues for container and embedded images. I do agree that solving the new bug implicitly solves the old one, but I could imagine solutions to the old bug that do not solve the new bug. Hence I figured that filing these separately would make sense. Your preference seems to handle them as one, which effectively is a scope increase of the old one. > libdevmapper1.02.1 needs the udev rules, the udev rules need dmsetup, > dmsetup needs libdevmapper1.02.1. This is technically incorrect on two levels. First, libdevmapper1.02.1 may need udev rules in order for the functions it provides to work. Applications may link libdevmapper1.02.1 as to provide an optional feature however. For them, the shared library is sufficient to run the application unless they also want to use the optional feature. In the latter case, they'd have to depend on dmsetup (and udev). Then, while dmsetup provides the udev rules, it does not depend on udev. As such, the rules are mere text files without anything to act upon. The udev rules rightly provide optional integration with udev. Therefore, we can rule that the present dependency on dmsetup does not provide the guarantee it is supposed to provide. Even with dmsetup installed (but udev missing) libdevmapper1.02.1 may not work as the udev rules are not applied by anything. > There is no way around this. As presented, the matter is more nuanced than you think it is. > Container images don't contain systemd, so no problem. Embedded systems > contain udev, so require the udev rules. This also is technically incorrect. nspawn containers require installing systemd-container in the container image. While embedded systems usually contain udev, they do not necessarily need dmsetup. Helmut