Description of problem: Package dependency problem wrt xfce4 Version-Release number of selected component (if applicable): xfdesktop-4.16.1-1.fc37.x86_64 How reproducible: 100% Steps to Reproduce: 1. sudo dnf erase mdadm 2. NOTE that the command asks to remove xfdesktop, gnome-disk-utilities, calibre, xfce4-screensaver 3. Actual results: Egregious package dependencies attempt to remove critical packages Expected results: Modest package dependencies should prevail Additional info: xfdesktop is one of many packages that have an indirect dependence on mdadm. xfdesktop appears to use a few library calls to a Thunar library for the purpose of desktop icon collection. Thunar naturally uses gvfs & glib2. gvfs requires udisks2. udisks2 dnf claims to require libblockdev-mdraid; however no udisks2 binary links to the libraries in libblockdev-mdraid. Instead the correct dependency *seems* to be that /usr/lib/udev/rules.d/80-udisks2.rules of udisks2 package explicitly calls /sbin/mdadm (which is NOT in libblockdev-mdraid). I'll suggest that there are two problems. 1) xfdesktop should NOT require Thunar and all of it's disk-oriented dependencies to merely obtain desktop icons. 2) udisks2 seems (imo) to have a bad dependency on libblockdev-mdraid, whereas it may need a dependence on the mdadm package. OTOH there should be a non-required dependence on mdadm as mdadm is a simple tool with a heavy set of 8 systemd service files. udisks2 should do something sane then mdadm is not available rather than require this 8-service package.
This is a multi-package inter-dependence problem so filing against xfdesktop is dubious. My *opinion* is that something is wrong in xfdesktop and udisks2 dependencies - however I may be wrong.
udisks2 should do something sane WHEN mdadm is not available
I think this would more properly be over on udisks2...
(In reply to Stephen J Alexander from comment #0) > Actual results: > Egregious package dependencies attempt to remove critical packages > > Expected results: > Modest package dependencies should prevail The current dependencies are about core functionality that is not optional and that includes mdraid support. Making mdraid optional would break expectations of existing clients. > xfdesktop is one of many packages that have an indirect dependence on mdadm. FYI, libblockdev-3.0 and udisks-2.11 will bring even more dependencies. > udisks2 dnf claims to require libblockdev-mdraid; however no udisks2 binary > links to the libraries in libblockdev-mdraid. libblockdev has a plugin architecture and loads libraries by dlopen(). > I'll suggest that there are two problems. > 1) xfdesktop should NOT require Thunar and all of it's disk-oriented > dependencies to merely obtain desktop icons. > 2) udisks2 seems (imo) to have a bad dependency on libblockdev-mdraid, > whereas it may need a dependence on the mdadm package. OTOH there should be > a non-required dependence on mdadm as mdadm is a simple tool with a heavy > set of 8 systemd service files. udisks2 should do something sane then mdadm > is not available rather than require this 8-service package. Fedora is a binary distribution that comes with a set of predefined dependencies. Packages are compiled in certain way that may not fit all use cases (e.g. a minimal image) while still provide rich functionality. I don't understand the problem here.
> The current dependencies are about core functionality that is not optional and that includes mdraid support. Making mdraid optional would break expectations of existing clients. If it is true, that iscsi & mdraid are REQUIRED and not optional, then the code needs to be revised. 'Requires' should be reserved for dependencies that are absolutely necessary for base functionality, and "clients" should error-report and/or fail gracefully when every imaginable "expected" service isn't certain available. It is not reasonable to REQUIRE iscsi or mdraid to have a freesektop DE. Any freedesktop DE now Requires the installation of iscsi tools with 10 services, bcache utilities, mdadm with 8 services, lvm2 with 4 services. Would a typical DE user commonly want a SAN like iscsi ? Specifically, creating a fine general tool like udisks2 should not be used as an excuse to "Require" every package that it might use.
The iscsi module is packaged separately and not really needed for a standard installation, is it being pulled in by something else? Same situation with the lvm2 udisks module.
I agree wrt iscsi, tho' I believe that dependency changed in the not-distant past. gvfs requires: avahi-glib avahi-libs libcdio-paranoia libcdio libbluray libudfread as well as udisks2. udisks2 requires: dosfstools e2fsprogs-libs e2fsprogs libatasmart mdadm ntfs-3g-libs ntfs-3g ntfsprogs volume_key-libs xfsprogs either directly or indirectly. Requiring support for legacy storage devices, ATA specific features, and a significant number of filesystems which may never be used appears to be a reach. I would think that many of these could be made optional or weak dependencies, The rpm directives Recommend/Suggests is underused by packagers (yes, it requires extra coding). If the freedesktop design philosophy is to hard-wire requirements to every package that fills any niche use-case, then I need to find a different DE and stop bothering you. Close it if you believe everyone requires bluray support, or wants the volume-key manipulation tools.