Bug#948561: libsoup2.4-1 Depends on glib-networking -> gsettings-desktop-schemas -> dconf-gsettings-backend -> dconf-service, which wants a running dbus

Simon McVittie smcv at debian.org
Fri Jan 10 09:42:05 GMT 2020


On Thu, 09 Jan 2020 at 22:58:59 -0800, Josh Triplett wrote:
> libsoup2.4-1, which is pulled in by various libraries and development
> packages, has a dependency chain through glib-networking to
> dconf-service, which in turn depends on having a running dbus. This
> seems a bit much for a library to expect, especially if the user is just
> installing build dependencies and -dev packages.

The dependency chain is:

    libsoup2.4-1
    D: glib-networking
       D: gsettings-desktop-schemas [*]
          D: dconf-gsettings-backend | gsettings-backend
             D: dconf-service
                D: default-dbus-session-bus | dbus-session-bus

libsoup2.4-1 Depends on glib-networking because without it, it will
not support TLS, which is necessary on hostile networks like the one we
all use. glib-networking is also required for proxy support. This could
be reduced to Recommends, at the cost of having a libsoup2.4-1 that is
considered to be broken by its upstream developer (and, I suspect, most
libsoup users) if Recommends are globally disabled.

glib-networking Depends on gsettings-desktop-schemas because without it,
it will crash when it tries to load those GSettings schemas. The design
of GSettings is such that installing a library that requires GSettings
schemas, without also installing the GSettings schemas themselves, is
normally considered to be a serious installation error. Specifically,
the GSettings that it looks up are the GNOME proxy settings, if run
under GNOME itself or under any desktop environment that claims to be
GNOME-derived (XDG_CURRENT_DESKTOP=Unity:GNOME or similar).

gsettings-desktop-schemas Depends on a GSettings backend because
dh_installgsettings adds that dependency, on the basis that if you have
GSettings schemas, you presumably want to store settings; but if you don't
have a non-trivial GSettings backend, any changes to those settings will
not be stored or propagated between processes, which could be argued to
be a RC bug (data loss). The dependency could perhaps be weakened in this
case, because glib-networking only reads settings and does not store them;
but dh_installgsettings doesn't support relaxing this Depends to anything
weaker (#934893).

dconf-gsettings-backend Depends on dconf-service because without
dconf-service, it cannot store anything, which could be argued to be a
RC bug (data loss and/or failure to provide significant functionality).

dconf-service Depends on an implementation of the D-Bus well-known session
bus because without that, it cannot be run, which could be argued to be
a RC bug (failure to provide significant functionality).

I'm happy to work towards relaxing one of those Depends to Recommends,
but only if there is consensus that it is an acceptable weakening of
dependencies, such that when bugs get reported about it, I can point to
that consensus, say "therefore you should have installed the Recommends"
and close the bug.

For more discussion of the lower part of this dependency
chain (which also exists "below" GTK) please see the thread starting at:
https://lists.debian.org/debian-devel/2019/08/msg00278.html
and especially:
https://lists.debian.org/debian-devel/2019/08/msg00291.html

Because glib-networking only *conditionally* looks up the GNOME
proxy settings (when $XDG_CURRENT_DESKTOP contains GNOME), it might be
reasonable to break this dependency chain by weakening glib-networking D:
gsettings-desktop-schemas to a Recommends or Suggests, but only after
changing the GNOME proxy resolver so that it disables itself if the
required schema is not present. If this is the desired resolution,
I would very much prefer to take this upstream rather than having
Debian-specific delta for it.

> Would it be possible for some part of this dependency chain to move to
> libsoup-gnome2.4-1, or otherwise not get pulled in when just trying to
> do development and builds?

Not really. libsoup requires glib-networking for TLS (and, perhaps less
importantly, proxy support). This is a feature of the base libsoup library
in libsoup2.4-1, and has nothing to do with the additional functionality
in libsoup-gnome2.4-1.

In any case, libsoup-gnome2.4-1 is equally needed for development and
builds (for code that uses it).

    smcv



More information about the pkg-gnome-maintainers mailing list