Does anyone know why installing samba package on a server installation pulls in various libX11 and gtk3 packages?
Also dependencies for cockpit-packagekit on a server installation includes libX11.
Does anyone know why installing samba package on a server installation pulls in various libX11 and gtk3 packages?
Also dependencies for cockpit-packagekit on a server installation includes libX11.
That’s easy to find out: In Myrlyn, select the samba package, go to the “Installation Summary” tab and try to deselect the X11 packages that samba dragged in. The dependency problem window will tell you about the dependencies. But beware: They might be very complex, going across several seemingly unrelated packages.
I think that is a very technical answer that will confirm in detail that the observation of the OP is true. But I guess he wants to know what the rationale behind it is.
I may be a bit old fashioned (I was involved in Samba usage ~ 30 or more years ago), but to me it is also not clear why a package that offers file server/client functionality (between Unix/Linux and Microsoft systems) on the system level, has anything to do with desktop software.
yes, this is exactly what i meant.
what @shundhammer has said helps confirm it, but doesnt really explain why.
i would understand that gnome/kde have dependency on samba (some plugin for nautilus or dolphin, or something from kcm), but the other way? this makes no sense at all.
for example cockpit-pacakgekit, this is a web component for package management, i dont understand what x11 has to do with it.
should i file this as a bug?
Follow the dependencies trail. Or rather, the dependencies tangle; it’s typically a very complex graph.
At what point does one of the involved packages drag in another package that is too close to X11? Does it implement a real feature, is it more of an optional thing, or is it plain wrong? That’s a difficult decision to make.
Installing those packages or just downloading them and unpacking it with an unrpm script and then investigating each executable and each shared lib with ldd might help to spot a dependency to an X11-related shared library. But this is a tedious process. What I wrote in my previous comment can at least pinpoint it to one or two packages to start such an investigation.
Shared lib dependencies are added automatically by RPM or OBS during the build process. Other dependencies are added manually in the .spec file.
It is most likely a recommended package. This can easily be tested with —no-recommends before going down the spiral which is described by Stefan above…
Unfortunately not.
Here it doesnt mention
micro:/home/qf # zypper in --no-recommends samba
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following 29 NEW packages are going to be installed:
gdk-pixbuf-loader-rsvg gtk3-tools libX11-6 libX11-data libXcomposite1 libXcursor1 libXdamage1
libXext6 libXfixes3 libXft2 libXi6 libXinerama1 libXrandr2 libXrender1 libatk-bridge-2_0-0
libatspi0 libcairo-gobject2 libcairo2 libgtk-3-0 libpango-1_0-0 librsvg-2-2
policycoreutils-python-utils python313-gobject-Gdk python313-gobject-cairo
python313-policycoreutils python313-pycairo samba typelib-1_0-Gtk-3_0 typelib-1_0-Pango-1_0
29 new packages to install.
Package download size: 13.3 MiB
Package install size change:
| 35.6 MiB required by packages that will be installed
35.6 MiB | - 0 B released by packages that will be removed
Backend: classic_rpmtrans
but this is interesting:
on fedora, when removing libX11* this happens:
Package Arch Version Repository Size
Removing:
libX11 x86_64 1.8.12-1.fc43 fedora 1.3 MiB
libX11-common noarch 1.8.12-1.fc43 fedora 1.2 MiB
Removing dependent packages:
libappstream-glib x86_64 0.8.3-4.fc43 fedora 1.4 MiB
Removing unused dependencies:
bubblewrap x86_64 0.11.0-2.fc43 fedora 135.0 KiB
cairo x86_64 1.18.4-2.fc43 fedora 1.8 MiB
cairo-gobject x86_64 1.18.4-2.fc43 fedora 31.1 KiB
fontconfig x86_64 2.17.0-3.fc43 fedora 765.9 KiB
fribidi x86_64 1.0.16-3.fc43 fedora 190.3 KiB
gdk-pixbuf2 x86_64 2.44.4-1.fc43 updates 2.5 MiB
glycin-libs x86_64 2.0.4-1.fc43 <unknown> 4.4 MiB
glycin-loaders x86_64 2.0.4-1.fc43 <unknown> 13.1 MiB
highway x86_64 1.2.0-5.fc42 fedora 4.4 MiB
lcms2 x86_64 2.16-6.fc43 fedora 433.7 KiB
libXau x86_64 1.0.12-3.fc43 fedora 72.9 KiB
libXext x86_64 1.3.6-4.fc43 fedora 90.0 KiB
libXft x86_64 2.3.8-9.fc43 fedora 164.4 KiB
libXrender x86_64 0.9.12-3.fc43 fedora 46.0 KiB
libaom x86_64 3.13.1-1.fc43 fedora 5.0 MiB
libdatrie x86_64 0.2.13-12.fc43 fedora 53.8 KiB
libdav1d x86_64 1.5.2-1.fc43 <unknown> 1.7 MiB
libheif x86_64 1.20.2-6.fc43 fedora 1.6 MiB
libjxl x86_64 1:0.11.1-6.fc43 fedora 3.1 MiB
libopenjph x86_64 0.22.0-2.fc43 fedora 466.2 KiB
librsvg2 x86_64 2.61.0-2.fc43 fedora 5.0 MiB
libthai x86_64 0.1.29-11.fc43 fedora 783.4 KiB
libvmaf x86_64 3.0.0-4.fc43 fedora 827.0 KiB
libwebp x86_64 1.6.0-2.fc43 fedora 956.6 KiB
libxcb x86_64 1.17.0-6.fc43 fedora 1.1 MiB
openh264 x86_64 2.6.0-2.fc43 fedora-cisco-openh264 1.1 MiB
openjpeg x86_64 2.5.4-1.fc43 fedora 456.3 KiB
pango x86_64 1.57.0-1.fc43 fedora 1.0 MiB
rav1e-libs x86_64 0.7.1-8.fc43 fedora 3.0 MiB
svt-av1-libs x86_64 3.1.2-1.fc43 fedora 5.6 MiB
xml-common noarch 0.6.3-67.fc43 fedora 78.4 KiB
on leap16 when removing libX11*:
Reading installed packages...
Resolving package dependencies...
The following 29 packages are going to be REMOVED:
gdk-pixbuf-loader-rsvg gtk3-tools libX11-6 libX11-data libXcomposite1 libXcursor1 libXdamage1 libXext6 libXfixes3 libXft2 libXi6 libXinerama1 libXrandr2
libXrender1 libatk-bridge-2_0-0 libatspi0 libcairo-gobject2 libcairo2 libgtk-3-0 libpango-1_0-0 librsvg-2-2 policycoreutils-python-utils
python313-gobject-Gdk python313-gobject-cairo python313-policycoreutils python313-pycairo samba typelib-1_0-Gtk-3_0 typelib-1_0-Pango-1_0
29 packages to remove.
Package install size change:
| 0 B required by packages that will be installed
-35.6 MiB | - 35.6 MiB released by packages that will be removed
Backend: classic_rpmtrans
Continue? [y/n/v/...? shows all options] (y):
You are right - samba package really indirectly depends on X11.
It is caused by following dependency chain:
sambapolicycoreutils-python-utilspython313-policycoreutilstypelib(Gtk) = 3.0 → typelib-1_0-Gtk-3_0libgtk-3.so.0()(64bit) → libgtk-3-0libX11.so.6()(64bit) → libX11-6I used small trick to reveal that dependency:
libX11-6 locking it with: zypper al libX11-6zypper in PACKAGE and examining following message:not installable providers: NEXT_PACKAGE
And repeating zypper in NEXT_PACKAGE
So the unexpected dependency is that python313-policycoreutils depends on typelib-1_0-Gtk-3_0 which brings complete X11 libraries through GTK 3.0 dependency.
Good bug finding! I hope one of the involved people above files a bug report.
Thanks!
Great trick!
I will try to replicate this trick to track down same problem with cockpit-packagekit.
Edit:
Here is dependency list for cockpit-packagekit
opened a bug also for cockpit-packagekit: