systemd Lands Experimental Support For musl libc

Systemd today finally merged support for building against and using the musl libc library. This is a win for Linux distributions like postmarketOS, Alpine Linux, and others that use musl by default as their standard C library or offer it as an option...
https://www.phoronix.com/news/systemd-musl-libc

@phoronix Well… as the size of systemd is quite big I don't see Alpine switching soon (also because they did a lot to get a good distro running with OpenRC).
But on PMOS I can definitely see it
@eragon @phoronix and my (very limited) understanding is the major reason why pmos runs it is because their GUI layers like GNOME Mobile get cranky otherwise.
@eragon @phoronix I'll also offer that for my extremely niche use case for pmos, openrc works a lot better. Systemd arguably brings some benefits, but it also brings a lot of extra complexity that makes troubleshooting low level system problems more difficult (and that extra complexity can at times be a major contributing factor to creating those problems to begin with).
@phoronix @eragon pmOS has been using it for a while now, they’re the ones who upstreamed this

@phoronix It really is a double-edged sword.

A win, because generally speaking, better interoperability is good, and making software more portable is good, and if it can improve systemd, the world will be better for it.

A win, because getting to that point proves that musl is finally, at last, being taken seriously by one of the most reluctant players in the ecosystem, so it's a sign that musl is a real, believable alternative now, and it will push more people and projects to try it out.

But also a danger, because it now means that systemd actually sees musl systems as targets. Systems that opted for musl were safe from systemd so far; maintainers were not tempted to switch to it because it was not a technically sound proposition. Now that systemd officially supports musl, no distribution is safe, and the survival of the non-systemd ecosystem now only depends on the technical judgment of distribution maintainers. Which has been subverted before, as Debian has painfully and dishonorably shown.

I would like to say I am cautiously optimistic. But I am actually terrified.

@ska @phoronix

> were safe from systemd so far

systemd is not a disease, i never understood why people act like it is.

if you own your computer, you're still super flexible on what you use as a system manager, and it just gives people the *option* to use systemd on musl systems if they want to.

nobody ever wants to force people to use systemd, but we (and I) want people to accept that it is a viable option.

@fossdd @ska @phoronix the problem of systemd is it's severely flawed on a technical level, and does several design decisions that can be considered as bad (for example, some components would be perfectly fine on their own, but instead are bundled in with the rest of the whole)

also yes there absolutely are people who want to push systemd everywhere and completely disregard any valid criticism, much like there are people who completely disregard any benefit systemd has brought

is systemd good ? eh, it's better than what there was before, but we can do so much better

@SRAZKVT @fossdd @ska @phoronix Software with dependencies on systemd interfaces will force most users to systemd, even on Alpine. Running a non-systemd distro in 2025 is just not feasible anymore as nobody has the manpower to maintain alternative implementations for the various interfaces.
@Nero @SRAZKVT @fossdd @ska @phoronix this seems unlikely as there are no plans to use systemd in alpine anytime soon

@Nero @SRAZKVT @fossdd @ska @phoronix what *is* possible is that some cloned systemd components (eudev, elogind) get replaced with the real ones, but using openrc and busybox are core to alpine’s identity and i don’t see this changing anytime soon. this isn’t because alpine is anti-systemd, but because this identity was well established from the beginning of alpine. accordingly, it is possible that there is a systemd derivative that uses the same underlying package collection as alpine, in the same way as postmarketOS.

but switching alpine itself to systemd is unlikely.

@ariadne Do we still agree that when I release an interface for s6 that is similar to openrc, and as user-friendly, alpine is open to using it as an option? Because I'm pretty close to having something publishable, and intend to work on seamless integration afterwards - this is what my current grant covers.
@ska Yes, in the same way that systemd may be an option in the future. I am committed to finding a path to allow Alpine users and derivatives to use whatever init system they want, but that does not necessarily mean that Alpine (the “product” for lack of better terminology) will change away from busybox or openrc in the future.

@ariadne I am, as always, not talking about changing the default, I am talking about having the option. If Alpine, the original distribution, has a way for users to choose s6(-rc) as its service manager (with or without using the "init" part of it), then that's all I want.

If that means that systemd is also an option, that's fine. I have zero doubt that putting in the work to make alpine usable with systemd will be much more difficult than the work I intend to put in order to make it usable with s6.

@ska I understand that but I am being more verbose for the clarity of others, so they do not misrepresent my position.
@Nero @SRAZKVT @fossdd @ska @phoronix I don't understand comments like this. There's several non-systemd distros, two of which I run, and they're doing just fine.
@aerique Are you suggesting *us* to switch to Alpine and Void?
@Nero You're free to do whatever you want.
@aerique Bruh you talking to alpine devs.
@Nero The other distro I was talking about wasn't Alpine.

@SRAZKVT @fossdd @ska @phoronix

some components would be perfectly fine on their own, but instead are bundled in with the rest of the wholeThis is not a critique on a design decision, that's just saying "there are parts that I don't like in this project, why can't parts that I like be in different projects"

@ignaloidas @ska @phoronix @fossdd should the user db be bundled with the init system ? should the logs be bundled together with the bootloader ? what about time synchronisation and session management ? this has nothing to do with me disliking parts of it, it's that components are bundled together for no reason, when they have nothing to do with eachother. you know, seperation of concerns ? it's not just about how to structure the code, but how to structure the entire thing
@SRAZKVT @ska @phoronix @fossdd "systemd is a suite of basic building blocks for a Linux system." It is quite explicitly a project to build a whole bunch of building blocks, as a single project.

If that is an issue MS should sell Windows in 18 different packages then I guess? Same with Apple?

I guess it's better to create 20 different projects, each with it's own organizational structure (or lack thereof), and continue the way of fragmentation in Linux ecosystem, with 12 different ways to do every single thing, and 13 different possible configurations because barely anyone wants to work to make their stuff compatible with more than one option.

Systemd is one of the few projects thinking about operating systems
as a whole, not in individual parts, and that's it's biggest power. It's a philosophy decision, not a design decision. (and your original "criticism" wasn't even targeting it still)

@ignaloidas @ska @phoronix @fossdd again

i have no issues with it all being under the same banner

the problem is systemd have everything bunched together, when built, even if it doesn't need to be. all components depend on eachother, even if they don't need to. and don't even get me started on libsystemd, which has everything, instead of seperating into clearly defined and seperate libraries for each component.

THAT, is the design decision i criticise.

gnu does similar things, a lot of individual blocks all under the same banner and name, the difference between gnu and systemd is gnu actually seperates non related components. if i want to use guile in my program, i don't need to also have gdb

@fossdd @ska @phoronix

> nobody ever wants to force people to use systemd

I'm pretty sure if this was true there would be a lot less fighting about systemd, it was pretty much forced on a lot of people in the past.

I don't mind systemd being an option, as long as it is not the only option, but I still remember when systemd tried to take every other option away from everyone. And even claimed that as one of their goals. And that is what makes me still suspicious 10 years later.

@ananas @fossdd @phoronix exactly, it's the paradox of intolerance - systemd is the intolerant one and you cannot let it in, else it takes over everything.

It does that by design. It's just too difficult to mix systemd and other things, because systemd does not play nice with the rest of the ecosystem, so people who try to give it "as an option" inevitably stop putting the effort into maintaining the other things. Options are only good given infinite manpower, which we don't have.

@fossdd @phoronix If you don't think systemd is a disease, then you haven't tried making it coexist with other, more traditional Unix software. You haven't tried supporting several service managers on the same machine, one of them being systemd.

systemd wants to control everything on the system. It works by exhaustivity, the different parts of it interacting with each other via interfaces that are specific to systemd, and replacing one of these parts is extremely difficult for a traditional tool because it has to implement all the systemd-specific stuff, which is often complex and embeds the systemd vision of the machine.

systemd is not collaborative in the bazaar sense, it is purposefully hermetic, and once you opt in, it's impossible to opt out.

If you don't believe me, install Ubuntu 16.04, the only successful attempt that I know of mixing (an early version of) systemd, essentially the init and service manager, with sysvinit. It works, but it is extremely convoluted and hackish; the hacks are brilliant, but making two systems interchangeable should never be that difficult. And that is not me saying that, but Serge E. Hallyn, the author of the whole construct.

Since then, systemd has only become more comprehensive, more complex, and more controlling. An equivalent attempt would just be doomed to failure.

systemd is not a partner for peaceful coexistence, and the sooner people realize that, the better off they will be.

@ska @fossdd @phoronix the problem is that "bazaar model" is DOGSHIT for basic system plumbing. System development needs to be more holistic, not more fragmented.

Linux, libc, coreutils and systemd really need to merge into a single unified project.

The BSDs have been able to make sweeping changes across kernel, libc, service manager, etc. as atomic commits since forever, and it's PATHETIC that change in Linux is impossible and you just get pile-ups of new things added and old things never deleted, and the resulting social conflicts like "libc does not want to make wrappers for new syscalls because reasons".

@valpackett @fossdd @phoronix Respectfully, I disagree. Holistic, cathedral-like development is indeed the model for the BSDs, and it is killing them. The tight integration of all these parts make incremental improvements extremely difficult, and experimentation basically impossible. The skarnet.org project would never have been possible on a BSD.

You correctly point out the problems of the bazaar approach, and I agree the situation is not ideal, but I believe it is better than the alternative.

And even if we were to switch to a more centralized model, the systemd team is one that I absolutely do not trust to run the whole show.

@ska @fossdd @phoronix i have to deal with software written in the UNIXy tradition on daily basis, some written by people who schizodump about redhat ibm systemd conspiracy.

I miss systemd.

And it is not because systemd is all great and stuff, but contrary to traditional UNIX stuff it is not unholy mess.

@erindesu @fossdd @phoronix "unholy mess" is subjective appreciation, and you have the right to like systemd better than traditional Unix for any reason or no reason at all, but this does not invalidate my points, which are factual.
@ska @fossdd @phoronix show me the proofs, then.

@erindesu @fossdd @phoronix I have done that every single time I speak up about systemd, everything I say is verifiable. And the issue with most systemd advocates is that no proof is ever good enough. Since a liking for systemd is not based in rationality, no rational argument can convince them, so, it is just an exercise in futility, and these discussions exhaust me.

If you are really, in good faith, interested by concrete examples of hegemony-enforcing behavior of systemd, come hang out in #s6 on oftc.net, from time to time we dive into the way systemd does one thing or another; we try to analyze it, in order to keep the good parts; and most of the time it reveals some attempt to exert control. But that's as far as I will carry the burden of proof.

@ska “Since a liking for systemd is not based in rationality…”

Dude. This kind of ad hominem is extremely unhelpful for getting people to take you seriously.

@erindesu @fossdd @phoronix

@krans This isn't what an ad hominem is.
What you are doing, however, is called concern trolling, and is, as I previously mentioned, exhausting.

@ska I'm exhausted — at continuously being attacked for choosing to use an init system on my machines that an idiot like me *can actually get things done with*.

I'm not “concern trolling”. You are insulting me.

@krans You are not continuously being attacked. You are free to use the init system of your choice and I will never go bother you about it (except to ask you what you like in it). Here, you chose to read a discussion that involves criticism of systemd: of course you are going to read things that you don't like! What did you expect?

Please note that all the criticism I have is directed at designers and developers, not users. I'm a dev and I talk about what it's like to interact with systemd as a dev. This is different from a user's experience - users indeed interact with the best aspects of systemd without having to deal with the more gnarly aspects. systemd is good at looking good.

I'm glad you can get things done with it. I am sorry that you do not feel like you can do the same with other init systems, and one of my goals is to create an ecosystem where you do (and that is better than systemd on the inside).

@ska I started reading a thread about musl support in systemd and carried on reading. My fault, I guess.

On the other hand, one can never know who might be reading posts.

@ska @fossdd @phoronix it is simple. I now have a system where i declaratively set objects, relations between objects and then there is an event loop driving that.

Not saying it is the only good choice, but it is pretty decent.

@ska @fossdd @phoronix i am here just against the fact people still consider some random OS stitched for PDP11 with decades of tech debt a good example of software.

Yes, systemd has its faults. And speaking of init systems, dinit is a pretty decent one too and ngl i am looking forward having a systemd alternative.

Trouble with systemd is lack of serious competition, imo.

@fossdd @ska @phoronix I'd argue it is because, for people who don't want to assemble their system by piece, systemd is usually being forced upon them. When a distribution switches to systemd, it is usually replacing, not complementing. And making someone go find a new distribution to avoid systemd is in itself a bit of forcing.

@fossdd I don't think people realize that 1. distributions have the last say over any dependency, including whether they should package something or not, which completely disqualifies any accusations of attempts to force people to use systemd; and 2. systemd isn't some project managed by a single company: it's comprised of individuals from different organizations.

@ska

@TheEvilSkeleton @fossdd Oh, distributions have a choice. They make policy decisions all the time. They choose what to include, and what not to include, all the time, and it's a perfectly conscious choice. Not always an easy one, but a choice nonetheless.

Distributions are not powerless. As the entities actually providing software to the majority of users, they hold a pretty good amount of power. And if Red Hat, at the time, was not pushing systemd with all their might, I don't know how you would call what they were doing.

The fact that systemd is developed by a group of individuals from different organizations does not change the end output. I did not describe intent, but practical behaviour, and when faced with that behaviour, intent really does not matter.

@ska @phoronix In case you're not aware, you can still switch Debian over to sysvinit or OpenRC if you wish, or install without ever downloading systemd-related packages using debootstrap!
@snep @phoronix I know people who have done that for years and given up because the alternatives were just not maintained and were bitrotting to death. I believe them.

@ska @phoronix Granted, my personal experience is limited to a very small collection of rather basic non-systemd Debian installs, so I won't doubt there's packages that don't follow Debians *recommendation* for shipping with non-systemd init scripts anymore.

But hey, in that case perhaps Devuan is more your vibe, they seem to have a similar stance to you on systemd :)