Bug 2169848 - Excessive package depencdencies
Summary: Excessive package depencdencies
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: udisks2
Version: 37
Hardware: All
OS: All
unspecified
low
Target Milestone: ---
Assignee: Tomáš Bžatek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-02-14 19:17 UTC by Stephen J Alexander
Modified: 2023-08-06 14:49 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Stephen J Alexander 2023-02-14 19:17:07 UTC
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.

Comment 1 Stephen J Alexander 2023-02-14 19:25:17 UTC
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.

Comment 2 Stephen J Alexander 2023-02-14 19:28:05 UTC
udisks2 should do something sane WHEN mdadm is not available

Comment 3 Kevin Fenzi 2023-02-20 18:31:59 UTC
I think this would more properly be over on udisks2...

Comment 4 Tomáš Bžatek 2023-02-21 14:38:28 UTC
(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.

Comment 5 Stephen J Alexander 2023-03-09 12:52:02 UTC
> 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.

Comment 6 Tomáš Bžatek 2023-03-09 14:25:20 UTC
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.

Comment 7 Stephen J Alexander 2023-08-06 14:49:05 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.