On Fri, Sep 30, 2022 at 03:23:31PM +0200, Laszlo Ersek
wrote:> On 09/30/22 14:11, Richard W.M. Jones wrote:
> > On Fri, Sep 30, 2022 at 12:56:40PM +0200, Laszlo Ersek wrote:
>
> >> (2d) I started icewm with "icewm --replace" (as
recommended by the error
> >> message from (2c)), and lo and behold, two changes had come into
effect:
> >>
> >> - the spinner started working
> >
> > This is strange ..? Did librsvg get installed at some point?
>
> So, "ldd `which icewm`" reports that icewm depends on
librsvg-2.so.2;
> therefore it's not surprising that RPM generated the proper Requires:
> directive for the binary icewm package. I guess with Metacity, this is
> not the case -- which should be fine, if Metacity itself does not use
> librsvg2.
>
> So it looks like a package dependency bug somewhere in or around gtk3; I
> guess it has a kind of plugin architecture, and the SPEC file does not
> properly capture the (dynamic) dependency.
>
> Interestingly, in the usptream gtk repository, on the gtk-3-24 branch,
> the file ".gitlab-ci/fedora-gtk3.Dockerfile" spells out
> "librsvg2-common" and "librsvg2", from commit
81c4fa5d505ec (which is
> quite non-descript in this regard). So it is a *known* hidden dependency
> in a way. Sigh. Packaging bug then? :/
"its complicated" :-)
GTK doesn't directly know about any image formats. It is built on top
of GDK-Pixbuf which is a library that provides an API for loading images,
with plugins for various formats, most outsourced to other packages.
librsvg2 provides a plugin for GDK-Pixbuf for SVG files.
Meanwhile the usage of SVG files doesn't actually exist in GTK code either,
because GTK widget rendering is theme based, and both widget and icon themes
are separate. Even when the widget theme requests an icon, it doesn't
specify
a format, because icon themes are pluggable too and it will look for icons
in whatever format happens to exist on disk.
The icon theme doesn't include a dep on librsvg2 either, because the
icons'
package doesn't dictate what is used to load them.
IOW, it is a tragedy of a highly modular framework that nothing individually
needs/want to have a dep on librsvg2, but the combined work does need such
a dep.
In a typical Fedora/RHEL install, all the right bits will get installed
either because of deps elsewhere in the default "desktop" install
profile
group, or because of comps groups listing librsvg. p2v though is picking
a minimal set of individual packages and so misses the dep.
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|