News for hackers. Stuff that matters.
Re:Avoiding Complexity with Systemd by zozbot234 on Sunday June 27, 2021 @05:44AM (#27650070)
There's a lot of poorly-understood incidental complexity in the systemd codebase, and this can bite users even when doing basic service and runlevel management. The systemd approach is to try and make it 100% declarative based on simple .ini files, but the semantics of this seemingly "declarative" configuration was never properly specified. Even many systemd fans seem to be quite aware of this, and there seems to be a common understanding that some ground-up reimplementation of these ideas based on a clearer underlying "philosophy" will be needed at some point. Systemd has been a successful experiment in many ways, but relying on throwaway experimental code for one's basic production needs is not a good idea.
Re:Avoiding Complexity with Systemd by tpush on Sunday June 27, 2021 @06:50AM (#27650447)
> [...] but the semantics of this seemingly "declarative" configuration was never properly specified.

What's missing from docs like [0] that makes you say that?

[0] https://www.freedesktop.org/software/systemd/man/systemd.uni...

Re:Avoiding Complexity with Systemd by eesmith on Sunday June 27, 2021 @11:21AM (#27652265)
I know so very little of systemd as it doesn't touch anything I do.

I can pattern match that https://blog.darknedgy.net/technology/2015/10/11/0/ - "Structural and semantic deficiencies in the systemd architecture for real-world service management, a technical treatise" from six years ago (Discussion at https://news.ycombinator.com/item?id=10370348 ) might be relevant.

Are those points reasonable? Dunno. If so, have they been addressed? No clue.

Re:Avoiding Complexity with Systemd by zozbot234 on Sunday June 27, 2021 @12:33PM (#27652963)
https://blog.darknedgy.net/technology/2020/05/02/0/ is a 2020 post from the same blog, pointing out that these issues basically remain unaddressed. But again, this is not just some "anti-systemd" talking point; the pro-systemd side also acknowledges this! They just think sysv-init was even worse.
Re:Avoiding Complexity with Systemd by zxzax on Sunday June 27, 2021 @01:53PM (#27653626)
I honestly would like to see a better service manager than systemd, but just my opinion from following development of these things: a huge reason why it can't happen comes from underlying deficiencies in the kernel, and with Unix. The real core issues can't be addressed without a large amount of changes there, which are outside the control of a service manager.
Re:Avoiding Complexity with Systemd by nine_k on Sunday June 27, 2021 @06:31PM (#27656078)
I'd love to see a later development of a proper system manager that learns from systemd's faults and allows for compatible interfaces for transition.

Much like Pipewire exposes PulseAudio interfaces but is implemented differently.

Re:Avoiding Complexity with Systemd by zxzax on Monday June 28, 2021 @02:02AM (#27658585)
To me it's the other way around -- pipewire is the sound server equivalent of systemd. For better or for worse.
Re:Avoiding Complexity with Systemd by nine_k on Monday June 28, 2021 @02:07AM (#27658616)
What would you prefer then? Jack?
Re:Avoiding Complexity with Systemd by zxzax on Monday June 28, 2021 @11:22AM (#27663080)
I just use systemd and pipewire, it's not a problem for me personally. They're the worst options... except for all the others :)
Re:Avoiding Complexity with Systemd by _jal on Sunday June 27, 2021 @06:53AM (#27650470)
> semantics of this seemingly "declarative" configuration was never properly specified

Yeah, and it is not only underspecified, but too weak to be useful, which just pushes all the init.d logic somewhere else. What you've accomplished is moving it somewhere nonstandard, great job.

Also, the command line ergonomics suck. Systemd is deeply unfriendly to humans.

It was a power play in support of a long-term RH strategy, supported by a lot of bad faith arguments. Fascinating to watch as sociology, less nice as a forced-user.

Re:Avoiding Complexity with Systemd by bonzini on Sunday June 27, 2021 @08:59AM (#27651216)
It's interesting to see these allegations ("power play in support of a long-term RH strategy") without any proof or for that matter any explanation of what the strategy would be.
Re:Avoiding Complexity with Systemd by dane-pgp on Sunday June 27, 2021 @10:29AM (#27651846)
I believe that Red Hat employees were some of the main contributors to Gnome, which quickly made systemd a hard requirement, forcing distros which used it as the default desktop to make systemd the default init system.
Re:Avoiding Complexity with Systemd by bkor on Sunday June 27, 2021 @02:27PM (#27653917)
> I believe that Red Hat employees were some of the main contributors to Gnome, which quickly made systemd a hard requirement, forcing distros which used it as the default desktop to make systemd the default init system.

Yet another person writing fantasy, not facts. Systemd wasn't "quickly" made a hard dependency. It was a soft dependency for ages, then eventually the release team made a mistake around systemd-logind. I was part of the GNOME release team at that time. Still, GNOME runs without systemd. Meanwhile we had loads of discussions with loads of distributions.

Yet the things you write: quickly done, apparently lots of people were secretly paid by Red Hat, forcing distributions? All devoid of any facts, just emotions that dismiss the amount of work me and loads of volunteers have done.

Re:Avoiding Complexity with Systemd by dane-pgp on Sunday June 27, 2021 @05:28PM (#27655605)
Perhaps my framing of the situation was a little simplistic. To provide more facts, let me point out that the question of which init system should be default in Debian was first asked[0] to the tech ctte in October of 2013, however it was already clear the previous month that the GNOME packagers were trying to make systemd the required init system[1] in Debian (which had GNOME as its default graphical environment already):

"Debian GNOME packagers are planning the same AFAIK; they rather just rely on systemd (as init system, not just some dependencies). In the end, the number of distributions not having systemd decreases."

That was written by Olav Vitters, of the GNOME Release Team, who later admitted[2] "Personally I’m totally biased and think the only realistic choice is systemd."

You could argue that any blame for this dependency therefore lies with the Debian packagers, rather than Red Hat employees, but actually, if you look into the history, there was already a push for making GNOME dependent on systemd three years earlier by none other than Lennart Poettering.[3]

Even at that time, Josselin Mouette, founder of the Debian GNOME team, obsequiously replied "I don’t have anything against requiring systemd, since it is definitely the best init system out there currently" and later acknowledged the influence Red Hat had over the direction of GNOME, saying "Red Hat being the company spending the most on GNOME, it is obvious that their employees work on making things work for their distribution" and "on the whole we don’t intend to diverge from the upstream design, on which a lot of good work has been done."[4]

So there was definitely pressure on Debian from GNOME to make systemd the default init, and pressure from Red Hat to make GNOME depend on systemd. Whether or not these decisions were all coordinated in advance in a smoke-filled room is beside the point, given that things worked out exactly the way such a conspiracy would have wanted.

[0] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=727708#5

[1] https://blogs.gnome.org/ovitters/2013/09/25/gnome-and-logind...

[2] https://blogs.gnome.org/ovitters/2014/02/03/my-thoughts-on-t...

[3] https://mail.gnome.org/archives/desktop-devel-list/2011-May/...

[4] https://raphaelhertzog.com/2012/01/27/people-behind-debian-j...

Re:Avoiding Complexity with Systemd by kaba0 on Sunday June 27, 2021 @11:36AM (#27652388)
How about the two democratic votes in favor of debian made in a system that is more democratic than real world voting? Or that Arch independently made the switch?
Re:Avoiding Complexity with Systemd by dane-pgp on Sunday June 27, 2021 @05:51PM (#27655800)
You're missing the initial Debian vote, which was made in the Technical Committee, and which came down to a tie.

If you want to claim that process was democratic, you have to believe that the members of the committee perfectly represent the opinions of all Debian developers (to say nothing of Debian users), and therefore have to excuse the fact that the vote had to be settled by giving one of those people, Bdale Garbee (HP's CTO of Linux), effectively two votes.

It was only three days after the tech committee's decision that Mark Shuttleworth announced that Ubuntu would fall in line by abandoning Upstart[0], and not until many months later that the first General Resolution was put forward to try overturning the committee.[1] Of course by that time everyone was tired of the arguments and it would have soured relations with Canonical to force Ubuntu back away from systemd, so the GR was doomed from the start.

[0] https://www.admin-magazine.com/News/Ubuntu-Abandons-Upstart

[1] https://www.debian.org/vote/2014/vote_003

Re:Avoiding Complexity with Systemd by bonzini on Sunday June 27, 2021 @10:56AM (#27652059)
It's not a hard requirement, GNOME still runs on the BSDs.
Re:Avoiding Complexity with Systemd by josephcsible on Sunday June 27, 2021 @11:06AM (#27652137)
Thankfully, sanity eventually did prevail in GNOME (just related to this matter, not in general), but there was a period of time where systemd absolutely was a hard dependency,
Re:Avoiding Complexity with Systemd by zxzax on Sunday June 27, 2021 @01:55PM (#27653648)
I'm not sure what period you're alluding to, but if that did happen, it seems it happened because things stalled on the BSD side, not because of any changes in GNOME. Can you please elaborate what you mean? I'm interested to get a BSD developer's view of the history, but I've only seen a few vague blog posts on this matter.
Re:Avoiding Complexity with Systemd by bkor on Sunday June 27, 2021 @02:29PM (#27653931)
> Thankfully, sanity eventually did prevail in GNOME (just related to this matter, not in general)

You've rewritten history to pretend you're right. Then you follow up with more drivel? Sorry, aside from trolling, what is your point?

Re:Avoiding Complexity with Systemd by josephcsible on Sunday June 27, 2021 @03:15PM (#27654360)
> You've rewritten history

This seems pretty clear that GNOME used to depend on systemd. How am I rewriting anything? https://wiki.gentoo.org/wiki/Hard_dependencies_on_systemd#Pa...

Re:Avoiding Complexity with Systemd by bkor on Sunday June 27, 2021 @05:01PM (#27655285)
GNOME relies on some API that has been implemented by elogind. Nothing in this bit changed. Gentoo (I think with the help of some others) ensured it was implemented (forked) so the API could still be used without systemd.

I thought you were the same as the other person. You're continuing the same argument, so it really doesn't matter if you're the same or not: "quickly made systemd a hard requirement" is bullshit. Further, it could easily be worked around.

If you notice e.g. the history of Ubuntu it happens regularly that you hold back a component if there's a problem integrating it. This happens across multiple distributions. It isn't something unique, nor special.

GNOME nor Red Hat did NOT "quickly made systemd a hard requirement". Gentoo was great to ensure that the API that was depended upon was implemented separately. Aside from that, a distribution could also hold back the logind change that caused this change. Skipping over all of these details is great to make this into some big conspiracy story. However, it is rewriting history. It wasn't something unique. Yeah, GNOME release team misjudged one thing. But it actually took a few years before it became an issue. Not this drivel with "OMG they added a hard dependency". It wasn't like that.

Re:Avoiding Complexity with Systemd by zxzax on Sunday June 27, 2021 @03:24PM (#27654444)
That's not a full picture, apparently that was due to some specific problem in Gentoo: https://blogs.gnome.org/ovitters/2013/09/25/gnome-and-logind...

AFAIK the GNOME Wayland session still depends on logind, but that's more because there has been no interest in getting it to work on BSD yet.

Re:Avoiding Complexity with Systemd by southerntofu on Sunday June 27, 2021 @06:09AM (#27650191)
I hope you're right and we get a better, simpler declarative format in the future. systemd isn't bad but i've found when writing service files that some stuff is not as obvious as it should be.
Re:Avoiding Complexity with Systemd by viraptor on Sunday June 27, 2021 @09:53AM (#27651578)
> semantics of this seemingly "declarative" configuration

What do you mean? Why the scare quotes? I'm not aware of anything in .service and related files which isn't declarative.

Re:Avoiding Complexity with Systemd by kbumsik on Sunday June 27, 2021 @06:47AM (#27650430)
The question is, was it better before systemd?
Re:Avoiding Complexity with Systemd by kaba0 on Sunday June 27, 2021 @06:54AM (#27650476)
No way in hell