+++ This bug was initially created as a clone of Bug #2253434 +++ this is *not* funny on a headless server "Libdecor provides a small helper library for providing client side decoration to Wayland clients" - cool, and then pull X11 stuff while both is not needed just because ffmpeg needs SDL2 which pulls libdecor Upgrading: libdecor Installing dependencies: adwaita-cursor-theme adwaita-icon-theme at-spi2-atk at-spi2-core atk colord-libs gdk-pixbuf2-modules gtk-update-icon-cache gtk3 hicolor-icon-theme libXcomposite libXcursor libXdamage libXinerama libXrandr libXtst libcloudproviders libepoxy libgusb libsoup3 libtracker-sparql xprop Reproducible: Always --- Additional comment from Michael Schlechtinger on 2023-12-26 07:47:12 UTC --- I added libdecor to the DNF exclude list on my server. Otherwise an upgrade wants to install the dependencies mentioned above plus wireplumber, pipewire... I don‘t want or need these services on a server. --- Additional comment from Harald Reindl on 2023-12-29 11:02:32 UTC --- you can't exclude hard dependencies and hence this nosense has to be fixed and hence the maintainer should learn about soft-dependencies or just revert this change - the nonsense listed above is present on any desktop by other deps and must not be pulled on headless-servers [root@testserver:~]$ dnf remove libdecor Error: Problem: The operation would result in removing the following protected packages: lounge-rhsoft-testserver (try to add '--skip-broken' to skip uninstallable packages) [root@testserver:~]$ rpm -e libdecor error: Failed dependencies: (libdecor-0.so.0()(64bit) if libwayland-client) is needed by (installed) SDL2-2.28.5-1.fc38.x86_64 [root@testserver:~]$ rpm -e SDL2-2.28.5-1.fc38.x86_64 error: Failed dependencies: SDL2(x86-64) >= 2.0.18 is needed by (installed) sdl12-compat-1.2.68-1.fc38.x86_64 [root@testserver:~]$ rpm -e sdl12-compat-1.2.68-1.fc38.x86_64 error: Failed dependencies: libSDL-1.2.so.0()(64bit) is needed by (installed) sdl12-compat-devel-1.2.68-1.fc38.x86_64 sdl12-compat(x86-64) = 1.2.68-1.fc38 is needed by (installed) sdl12-compat-devel-1.2.68-1.fc38.x86_64 [root@testserver:~]$ rpm -e sdl12-compat-devel-1.2.68-1.fc38.x86_64 error: Failed dependencies: SDL-devel is needed by (installed) zziplib-devel-0.13.72-3.fc38.x86_64 SDL-devel is needed by (installed) lounge-rhsoft-build-requires-38.0-1.fc38.20230714.rh.noarch --------------------- for the sake of god such circle-dependencies are unacceptable The zziplib library is intentionally lightweight, it offers the ability to easily extract data from files archived in a single zip file. Applications can bundle files into a single zip archive and access them. The implementation is based only on the (free) subset of compression with the zlib algorithm which is actually used by the zip/unzip tools. --- Additional comment from Anthony Messina on 2024-04-26 18:22:21 UTC --- Can this be handled at the package level by putting the GTK+ plugin into a subpackage? diff --git a/libdecor.spec b/libdecor.spec index 964296e..f6d9cbd 100644 --- a/libdecor.spec +++ b/libdecor.spec @@ -31,6 +31,12 @@ Requires: %{name}%{?_isa} = %{version}-%{release} The %{name}-devel package contains libraries and header files for developing applications that use %{name}. +%package gtk +Summary: GTK+3 plugin for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description gtk +%{summary} %prep %autosetup -p1 @@ -52,6 +58,8 @@ developing applications that use %{name}. %dir %{_libdir}/libdecor/ %dir %{_libdir}/libdecor/plugins-1 %{_libdir}/libdecor/plugins-1/libdecor-cairo.so + +%files gtk %{_libdir}/libdecor/plugins-1/libdecor-gtk.so %files devel --- Additional comment from Aoife Moloney on 2024-05-31 09:09:23 UTC --- Fedora Linux 38 entered end-of-life (EOL) status on 2024-05-21. Fedora Linux 38 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora Linux please feel free to reopen this bug against that version. Note that the version field may be hidden. Click the "Show advanced fields" button if you do not see the version field. If you are unable to reopen this bug, please file a new report against an active release. Thank you for reporting this bug and we are sorry it could not be fixed. --- Additional comment from Anthony Messina on 2024-05-31 13:25:36 UTC --- This still occurs in Fedora 40. Can this ticket be updated?
This is cloned for Fedora 41 and Fedora 42. I'd like some feedback from the packager as this issue can be easily resolved at the packaging level by splitting out the GTK plugin into a subpackage (perhaps then added as a Recommends to the main package). That would still allow headless installation of libdecor. diff --git a/libdecor.spec b/libdecor.spec index 964296e..f6d9cbd 100644 --- a/libdecor.spec +++ b/libdecor.spec @@ -31,6 +31,12 @@ Requires: %{name}%{?_isa} = %{version}-%{release} The %{name}-devel package contains libraries and header files for developing applications that use %{name}. +%package gtk +Summary: GTK+3 plugin for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description gtk +%{summary} %prep %autosetup -p1 @@ -52,6 +58,8 @@ developing applications that use %{name}. %dir %{_libdir}/libdecor/ %dir %{_libdir}/libdecor/plugins-1 %{_libdir}/libdecor/plugins-1/libdecor-cairo.so + +%files gtk %{_libdir}/libdecor/plugins-1/libdecor-gtk.so %files devel
Splitting it up seems fine. It would be good to have Requires: gtk3 on the -gtk plugin package. You could also split up libdecor-cairo to avoid depending on cairo for a very minimalistic variant (which doesn't provide decorations at all).
Thank you Jonas. Is this a change you'll be able to make for the upcoming Fedora 42 release?