Re: Technical committee acting in gross violation of the Debian constitution
Am Samstag, 29. November 2014, 01:32:22 schrieb Zbigniew Jędrzejewski-Szmek:
> On Thu, Nov 27, 2014 at 10:02:06PM +0100, Martin Steigerwald wrote:
> > And well, I also wonder why systemd --user functionality is in the *same*
> > binary than the PID 1 stuff… but well… I brought this upstream to no
> > avail.
>
> OK, since this is a different forum, let me go over the reasons once again.
>
> The code paths in systemd which differ between --system and --user are
> relatively small. One part that is the table of paths where to load
> units from (/etc/systemd/system vs. /etc/systemd/user, /run/systemd/system
> vs $XDG_RUNTIME_DIR/systemd/user, etc). Another part says (grossly
> simplyfying) if ("--system" && !test_mode && !virtualized_in_container())
> setup_filesystems();
> But those are just a few (important, but still) parts of the code. The
> majority, like the unit dependency logic, starting of processes,
> notifications from services, opening of sockets, watching of paths,
> etc, etc, are all shared. Actually systemd --user is probably closer
> to systemd --system running in a container than to systemd --system
> running on the host, because both run without full privileges and
> simply skip mounting of various things and other low-level setup.
>
> In this scenario it is natural to structure the code as a single binary
> that conditionalized parts of it logic as necessary.
Thank you for your explaination. I do not agree, as it still seems to be done
this way out of technical convenience. And I think thats not enough of a
reason. And, in addition to that this is PID 1, not the usual application –
and even there… in KDE / Plasma world developers are spending *a lot of
energy* over the last years and still to separate out things which leads to
KDE Frameworks 5, i.e. to specifically do things that aren´t convenient in the
short run.
However, some questions:
So the systemd --user functionality does not add much to the binary size? And
is the detection of the use case systemd binary runs in reliable? What
additional failure cases for the necessary PID 1 functionality does combining
these functionalities create?
> > At least the logind stuff appears to be separate:
> Yes, logind does not share many high-level code paths with the systemd
> binary, so it is natural to keep them separate.
>
> OTOH, systemd and systemd-logind use the same primitives like string
> handling, configuration file parsing (including the logic of drop-in
> directories and /etc-overrides-/run-overrides-/usr/lib), and a bunch
> of other utility functions, which are provided by the shared systemd
> libraries, so it is much easier to develop them in a single repository.
>
> I hope this explains things.
None of like string handling and configuration file parsing seems to be that
special that it needs to be implemented (again?) just for systemd in my
oppinion. The problem of INI file parsing has been solved before, the problem
of string handling as well, a dozen of times maybe.
Well, I hear your explaination and I value your point of view. I acknowledge
it.
Yet, I do not agree.
So maybe at this time, we can just keep it at that. Especially as these are
upstream decisions.
But, in the end here it is about how Debian deals with upstream decisions like
this, and I think here it is where the gross disagreements are.
I personally would feel much more comfortable about systemd, if its upstream
developers made the necessary work for modularization, cross platform
portatibility and so on. Cause not doing so creates *additional* work and
*codepaths* in other software as long as systemd provides functionality that
other software would use like logind as ConsoleKit replacement.
KDE and GNOME if to stay portable need several code paths for using systemd on
Linux and something else elsewhere additional stuff, like the session handling
things. Thus systemd pushes responsibility for platform adaptability upwards
in the stack, and urges other systems to re-implement the same interfaces…
without, actually having seeked any agreement on those with the BSD or Hurd
folks.
And that concerns me. Its a mechanism to offer new functionality with a new
software (systemd), then try to convince others to use it, and then requiring
all other platforms where systemd does not run to play catch up and use the
same interfaces or try to port higher level application which rely on this
functionality themselves. And I think I am perfectly able to proove this kind
of behavior of systemd upstream by providing links.
But enough of this, technical arguments have been made already. Let me try to
move beyond that:
Now, you can acknowledge my concern or not.
But I think in either case it is healthy for me to accept you have or having
explained a different oppinion (is it yours?). And healthy for you to accept
that I have a different oppinion.
I still do not see any solution for the concerns and polarity the way systemd
upstream developers handle things like this triggers. And that is the main
danger here. Actually I see it triggering, read carefully, triggering, not
causing, a split of the Debian community into two parts. And I find this highly
unhealthy for the project. I am really *deeply* concerned about this outcome.
Debian has been through a lot of things I bet, but I never ever saw anything
like this. A discussion as harsh and bitter and long and still not having come
to a solution.
For acknowledgement of the different oppinions I highly applaud the decision to
have mutiple init systems for Jessie at least. The other distribution that
switched as far as I read didn´t even care about that.
Would it be easier or technically convenient to just support just one system?
Likely. Would it be more healthy for the project as a whole: I don´t think so.
So I applaud for that.
And even without a decision on whether packages may depend on a specific init
system *running*, I plead package managers to try to have packages working
with mutiple init systems.
And I find it very important to find a way to agree on disagreeing and value
each others oppinions. That way, healing can happen.
So again, I acknowledge the oppinion you voiced. I can even understand the
reasoning behind it – yeah, from a certain viewpoint it makes sense
technically. Even though I do not agree with it. And it doesn´t address my
concern.
And thats it: The way systemd upstream handles the concerns doesn´t address
the concerns raised. And thats why these concerns are brought up again and
again and again. And that much is obvious. One has to put both hands before
the eyes not to see that. Thats the thing about producing the same outcome
again and again and again I tried to explain earlier. The way how systemd
upstream developers handle things produce the same outcome again and again and
again. The way the concerned ones voice their concern – I try to do it in a
different way, but well… I am a human being too and time will tell whether I
can bring my point across – also produces the same outcome again and again and
again. Which outcome is it?
The outcome is *resistance* on *both* sides. On *both* sides.
I easily triggered resistance of Lennart and other systemd developers by just
trying to *channel* concerns upstream on systemd-devel. So its obvious to me
that systemd upstream developers handle concerns with resistance. And I easily
also felt resistance inside myself against systemd as I experienced this
process, more resistance than before even. I didn´t have a very strong
oppionion about systemd before, but I was concerned with the amount of
polarity it triggers. And after my attempt to address upstream directly I
understand why it does so.
*** Its a social issue much more than a technical one. ***
Any pure discussion on the *technical* level is in *no* way able to *address*
these underlying *social* issue.
Thats the whole point of it.
Thus any discussion on *only* the technical level is a *waste of energy* in my
eyes. Can you agree? I bet you experienced that already.
Yet systemd upstream is not even *willing* to *address* or even just
*acknowledge* this social issue. That is at least my impression. I have been
told to stay purely technical on the systemd upstream mailing list several
times. And for me it felt like this: "Your concern is invalid, go away". And
that is what is happening here. That is why people bring up these concerns
again and again and again.
I see Lennart venting about the harshness in the Linux community in a Google
Plus post, yet he has called me "being a dick" himself as I just tried to
channel these concerns which even haven´t been purely mine. I just summarized
some concerns of the countless threads on debian-user at that time. I may have
used some bold language myself, but I tried very carefully to stay away from
personal discussions. Yet I got this response.
The issue is at least partly *social* and limiting it to the *technical* level
is not going to solve it. It requires maturity to handle it, it requires
maturity to heal it. And that is what is missing right now, IMHO. On *both*
sides.
For any progress I think it is necessary to look beyond this resistance.
Acknowledging the different oppinions and actually *valuing* them all as
*valid* for me is a first important step:
So can you acknowledge my concern *without* telling me that my oppinion is
technically wrong? Can you agree to disagree?
I hope I can. The systemd upstream decisions aren´t "wrong". They are just the
way they are. And I do not agree with some (!) of them.
The way systemd developers handle things is *one* way. The way concerned ones
refer to as the UNIX way to handle things is *another* way. *Different* ways.
And there is disagreement on which way to follow. So how does Debian as a
community handle this *disagreement*? By continuing to fight over each other?
That does not help. The disagreement is there. Its obvious. And no magic spell
on the earth will make it go away in an instant. So its important to see how
to handle it. Debian developers made the decision to discuss this instead of
deciding on a particular way with a GR. So any discussion about how to do this
I think is *highly* on topic on debian-devel.
I just made a few packages. And I still have sysvinit-core as an alternative
installed. I didn´t boot it in a time, but I am confident it would still work.
So as long as neither KDE / Plasma nor something else forces me to run
systemd, I think I will look at how it goes and report bugs – like I did
already. KDE / Plasma developers abstracted away low level stuff before… I
still do not use PulseAudio on my systems cause it creates various issues that
simply go away with not using it (all reported… and mostly ignored in a
similar way as systemd upstream developers sometimes handled bug reports).
But for me it is important to have a choice there. To be able to step back
from systemd at any time I want or view as necessary. And I think keeping that
freedom to choose, even if it causes additional work is a good way to
acknowledge for the different oppinions and allow time for healing to happen.
Ciao,
--
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7
Reply to: