Bug 2345874 - don't pull gtk, icon-themes, x11 libs and what not
Summary: don't pull gtk, icon-themes, x11 libs and what not
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: libdecor
Version: 42
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Jonas Ådahl
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-02-14 23:43 UTC by Anthony Messina
Modified: 2025-02-27 15:37 UTC (History)
4 users (show)

Fixed In Version:
Clone Of: 2253434
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Anthony Messina 2025-02-14 23:43:21 UTC
+++ 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?

Comment 1 Anthony Messina 2025-02-14 23:45:47 UTC
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

Comment 2 Jonas Ådahl 2025-02-25 02:14:39 UTC
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).

Comment 3 Anthony Messina 2025-02-27 15:37:35 UTC
Thank you Jonas.  Is this a change you'll be able to make for the upcoming Fedora 42 release?


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