Gentoo Archives: gentoo-user

From: Michael Mol <mikemol@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Re: systemd? [ Was: The End Is Near ... ]
Date: Fri, 23 Mar 2012 01:29:06
Message-Id: CA+czFiB5B4N7yhD9OG12Uc0ggCqLS7WkhhSUAany9Yzm4qBEvw@mail.gmail.com
In Reply to: Re: [gentoo-user] Re: systemd? [ Was: The End Is Near ... ] by Walter Dnes
1 On Thu, Mar 22, 2012 at 5:13 PM, Walter Dnes <waltdnes@××××××××.org> wrote:
2 > On Wed, Mar 21, 2012 at 09:35:55PM -0400, Michael Mol wrote
3 >
4 >> What we're talking about with systemd vs openrc, and things like ssh'd
5 >> first-time initialization is all within the realm of responsibility of
6 >> the packager. It's a shift in the way the distribution itself works.
7 >> We're not talking about a scenario where you shunt things upstream, so
8 >> the whole "your position would have rejected Linux" angle is a red
9 >> herring.
10 >
11 >  This is a frustrating game of whack-a-mole.  Person A comes up with a
12 > position, I rebut it, and then person B comes up with a different
13 > position, and I have to rebut it..  There have been people in this
14 > thread who have said that the program best knows what it needs, and
15 > should handle its own initialization.  That was what I was replying to.
16 > I'll reply to your position now.
17 >
18 >> Why does that spawned process have to be sshd? Why can't it be some
19 >> shell script which does the one-time checks, and then launches sshd
20 >> itself?
21 >
22 >  So instead of the initscript doing the checking+setup and launching
23 > the service, it launches a a second script... which does the
24 > checking+setup and launches the service <FACEPALM>.  See my post with
25 > the joke of digging a second hole to dump the dirt from the first hole
26 > into.  Instead of one script, we now have two scripts.  This is *NOT*
27 > simplification.
28
29 No. In a system V scenario, you'd probably just symlink to the
30 genericized init script. In the systemd scenario, as I understand it,
31 you have a configuration file (distinct from a script), and you'd
32 include the path to the genericized init script there.
33
34 What I'm talking about is an implementation of the adapter pattern.
35 http://en.wikipedia.org/wiki/Adapter_pattern
36
37 If there are going to be competing init systems (and there will be),
38 and a service needs to be compatible with both (and there will be such
39 services), then that's going to be the most elegant solution.
40
41 >
42 >> Why does that shell script need to be distributed as part of the
43 >> init system's package, and not part of the package associated with
44 >> the service?
45 >
46 >  I don't understand what you're arguing here.  *THE INITSCRIPT IS OWNED
47 > BY THE SERVICE PACKAGE*, not by the init package.  E.g. net-misc/openssh,
48 > not sys-apps/openrc.
49 >
50 > waltdnes@d530 ~ $ equery b /etc/init.d/sshd
51 >  * Searching for /etc/init.d/sshd ...
52 > net-misc/openssh-5.8_p1-r1 (/etc/init.d/sshd)
53
54 Sure. And that's what I was arguing. Though by the sound of it,
55 there's stuffed in the openrc package which doesn't need to be there,
56 and a blog post flameeyes posted today suggests the systemd package is
57 intended to absorb the hardware database. (
58 http://blog.flameeyes.eu/2012/03/refreshing-a-4-years-old-problem )
59
60 >
61 >> Having the shell script be part of the package associated with the
62 >> service keeps bugs related to that script associated with that
63 >> package.
64 >
65 >  That's the way it is right now.  See above.
66
67 And that's the way it should be.
68
69 >
70 >> At least, that's the way I see it. Any issue of compatibility between
71 >> the two can be addressed by the service's package manager, either by
72 >> adaption via that script, or by expressing an explicit dependency on
73 >> one init architecture or another.
74 >
75 >  My point in this whole argument is that there is some checking and
76 > setup that has to be done before launch.  Therefore shuffling off some
77 > or all of the shellscript code to another script is a pointless "shell
78 > game" (sorry) that adds no value.
79
80 See reference to the adapter pattern above.
81
82 Systemd has its merits in its capabilities. System V init has merits
83 in that it's far more portable. Open source software which operates as
84 a system service will need to support both.
85
86 There are, of course, things I loathe. I loathe the apparent mindset
87 behind systemd and behind udev, wherein all things belong as part of a
88 monolithic system. That runs counter to principles of modular design,
89 portability and even systemic stability in changing things. I loathe
90 the desire to lunge forward without working out a transition plan, or
91 even having the appearance of interest in one. And I loathe the
92 terrible PR.
93
94 --
95 :wq