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 |