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 |