[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#897577: cinnamon-settings-daemon: stop using deprecated libdbus-glib-1-dev



On Thu, 03 May 2018 at 15:10:39 +0200, Helmut Grohne wrote:
> On Thu, May 03, 2018 at 12:24:42PM +0200, Maximiliano Curia wrote:
> > What do you suggests as a replacement of dbus-binding-tool?
> 
> It's not just about dbus-binding-tool. E.g. csd-datetime-mechanism.c
> says #include <dbus/dbus-glib.h>. That'll have to go away as well. We're
> talking about switching an entire library.

Am I right in thinking that cinnamon-settings-daemon is a fork of
gnome-settings-daemon? The modules that make up g-s-d were ported from
dbus-glib to GDBus (variously described as "GDBus" or "GIO's DBus API"
in NEWS) between versions 2.91.2 (2010) and 3.3.90 (2012), according to
g-s-d's NEWS file. Many (all?) of those changes are probably applicable
to c-s-d.

dbus-binding-tool generates code that uses <dbus/dbus-glib.h>. To convert
c-s-d to GDBus, it would be necessary to change all calls into code
generated by dbus-binding-tool, and any hand-written dbus_foo() calls,
to their GDBus equivalents. The closest equivalent of dbus-binding-tool
for GDBus is gdbus-codegen.

https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/d7cd7cfef5c77e16e6693b8991cb2ae5a187db12
is an example of conversion from dbus-glib to GDBus without using
gdbus-codegen. gnome-settings-daemon doesn't seem to use gdbus-codegen
for service-side code.

>From some searches on
https://github.com/linuxmint/cinnamon-settings-daemon it looks as though
the datetime plugin is the only part still using dbus-glib. The equivalent
in gnome-settings-daemon was deleted in
<https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/27fa171efe4179c0a42ec79e0dc501077f042a08>
and replaced by a new plugin using systemd-timedated and Geoclue in
<https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/876590336fdb1292852061509a0dba5385cd1805>.

If it is a goal for Cinnamon to support non-systemd system services,
I would suggest using a compatible reimplementation of the timedated
API <https://www.freedesktop.org/wiki/Software/systemd/timedated/>
such as <https://github.com/mlichvar/timedatex> rather than having a
Cinnamon-specific system-level daemon.

    smcv


Reply to: