Gentoo Archives: gentoo-user

From: "Canek Peláez Valdés" <caneko@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: Gentoo+Gnome requires systemd, but Gnome itself does not? Why? - WAS: Re: [gentoo-user] Debian just voted in systemd for default init system in jessie
Date: Tue, 25 Feb 2014 16:26:16
Message-Id: CADPrc82BftFOQJH8OEV8=8J9T3u9==4ExpgRtSffGwJmjXROuA@mail.gmail.com
In Reply to: Re: Gentoo+Gnome requires systemd, but Gnome itself does not? Why? - WAS: Re: [gentoo-user] Debian just voted in systemd for default init system in jessie by Alan McKinnon
1 On Tue, Feb 25, 2014 at 6:58 AM, Alan McKinnon <alan.mckinnon@×××××.com> wrote:
2 > On 25/02/2014 14:40, Tanstaafl wrote:
3 >> On 2014-02-24 4:48 PM, Canek Peláez Valdés <caneko@×××××.com> wrote:
4 >>> In Gentoo you need systemd, but that's a decision from the Gentoo
5 >>> maintainers. They do the job, they make the choices.
6 >>
7 >> Interesting. Now I have to spin off a new thread as to why this decision
8 >> was made if it isn't forced by GNOME itself...
9 >
10 > Gnome uses logind, Canek has consistently stated that for months now.
11
12 That is true; but no one have to trust me on anything. The code is out
13 there ([1], [2]); anyone can go and check what dependencies GNOME
14 exactly require.
15
16 > logind is part of systemd (AIUI it's more "bundled" than "a chunk of a
17 > monolothic lump") and replaces consolekit.
18
19 I'm not so sure about this anymore. It seems that logind actually uses
20 many of systemd features, and therefore is really difficult to
21 implement independently of it. For a high overview discussion of this,
22 you can check [3], where Ryan Lortie says:
23
24 """
25 Some interfaces provided by systemd are less awesome. Even at the
26 D-Bus level, the interface for PID 1 or logind are so complicated and
27 implementation-specific that they could never be reasonably
28 independently implemented. These interfaces often mix multiple
29 functionality sets into one: for the logind case, for example, only a
30 small subset of this is ever required by a desktop environment running
31 as a normal user. Many other calls on the same interface are only
32 called by other operating system components.
33 """
34
35 Ubuntu has been (and supposedly, still is) interested in having a
36 non-systemd replacement; but AFAIK, they don't have it yet. For
37 systemd <= 204 the code of logind was more independent of systemd
38 features, so they just cut it from there; after 205 (when the new
39 slices thingies were added to deal with the future cgroups API from
40 the kernel), this is no longer possible, so they need to actually
41 write an API compatible replacement. This hasn't come to fruition (and
42 because of the above quote, this doesn't look easy).
43
44 Perhaps a compromise could be reached where the desktop-necessary
45 parts of logind are isolated in their own dbus API.
46
47 As with everything, however, somebody should do that job.
48
49 > The feature set of logind can be implemented in something else. Or, that
50 > functionality in previous Gnome versions forward-ported to 3.10 to be
51 > able to drop logind as a dep.
52
53 In this case, the "something else" is ConsoleKit, which (AFAIK) works
54 in the *BSD.
55
56 > OpenBSD would have had little choice in this as systemd doesn't run on
57 > OpenBSD - systemd uses many features unique to the Linux kernel. So they
58 > would have had to do *something* about logind. Whatever they did, it
59 > would have been a non-trivial amount of work.
60
61 I don't think so; the source code I linked says (literally):
62
63 if test x$enable_systemd = xyes; then
64 [ snip ]
65 session_tracking="systemd (with fallback to ConsoleKit)"
66 else
67 session_tracking=ConsoleKit
68 fi
69
70 So, it could be that is actually "trivial".
71
72 The real problem is that most GNOME developers don't use the
73 ConsoleKit code paths anymore, so the burden of works goes to the
74 people that don't have systemd (*BSD).
75
76 > I suspect the Gentoo Gnome maintainers were not prepared to, or don't
77 > have the manpower, to do the same on Gentoo so took the easier route of
78 > depending on systemd.
79
80 Most of them don't use OpenRC anymore, so they could perhaps see that
81 the code emerges without errors, but they would not be able to
82 actually test it. They rather decided to support what they could test,
83 than to give the appearance of "choice" when no one is really
84 supporting the CK code paths.
85
86 (Also, it seems undeniable that logind works so much better than CK ever did).
87
88 Regards.
89
90 [1] https://git.gnome.org/browse/gdm/tree/configure.ac#n882
91 [2] https://git.gnome.org/browse/gnome-session/tree/configure.ac#n123
92 [3] http://blogs.gnome.org/desrt/2014/02/19/on-portability/
93 --
94 Canek Peláez Valdés
95 Posgrado en Ciencia e Ingeniería de la Computación
96 Universidad Nacional Autónoma de México