[systemd-devel] feature request: dlopen

Tobias Hunger tobias.hunger at gmail.com
Wed Feb 18 01:10:37 PST 2015


Hi Luke,

I am mostly a lurker on the systemd mailing list, so my opinion does
not carry weight in this community.

On Tue, Feb 17, 2015 at 9:24 PM, Luke Kenneth Casson Leighton
<lkcl at lkcl.net> wrote:> so i'm not going to "protest" - i'm going to
try a different approach.
> i'd like you to look at this list of debian packages that are
> dependent on libsystemd0:
> http://lkcl.net/reports/removing_systemd_from_debian/list_of_libsystemd0_dependent_packages.txt

I understood most of these dependencies to be indirect: Packages that
depend on other packages that in turn depend on libsystemd. Is that
correct?

How many and which packages depend *directly* on libsystemd? Are the
numbers by other people replying to this list correct, namely that the
direct dependencies are < 100 packages?

> i think the most important question to ask you at this point is: as a
> team, were you aware of the extent to which libsystemd0 has become a
> hard compile-time dependency on so many critical software packages in
> use today?

My understanding is that libsystemd is a dependency of some packages
down low in the stack that is then (re-)used by other packages.

And for those few packages it makes sense to depend on libsystemd:
Those tend to provide services that do benefit from systemd features
like socket activation. So not having this dependency does seriously
hurt the systemd users.

On the other hand the library is tiny and basically falls back to
being a no-op in the case where systemd is not PID1, so it does not
hurt non-systemd systems to have this library in any way.

> we see that a debian developer has created unofficial packages
> that, if installed, provide replacements for key strategic packages
> entirely recompiled *without* systemd and without libsystemd0 being
> present.

Good for them. I see very little value in replacing a ~150KiB library
that does nothing for the users these packages are targeting, but
everybody is free to spend their time however they want.

> moving on: in what adam wrote (rather hot-headedly, initially), he
> goes on to mention that it would be perfectly reasonable to replicate
> the effects of how he removed libsystemd0, in a way that would be far
> less disruptive to end-users and sysadmins, and far less divisive:
> dynamic library loading.

Libsystemd's job is basically to provide exactly what you ask for: A
wrapper around systemd functionality, that fails gracefully in case
systemd is not used.

That wrapper is nicely packaged up into a library so that upstream
projects do not need to keep reimplementing the same dlopen, error
handling, etc. over and over again. Your proposal is to ask every
upstream project to add that same snippet of code? How about putting
that into a library for easier reuse: Maybe libsystemdwrapper. That
can then be wrapped in another wrapper when somebody freaks out about
"everything is linking to libsystemdwrapper".

Maybe just renaming libsystemd would suffice? I am sure hardly nobody
would object to having a tiny "libyzy" on their system:-)

> so can i leave it with you to consider whether the current situation
> is tolerable or not?

Again: I can in no way speak for the systemd project. But from where I
stand the systemd project went out of their way to provide you with
exactly what you are asking for in a way that is easy to reuse by
upstream projects. That is libsystemd. Apparently you find that
solution objectionable, but I do not understand why.

I would personally like to see a "libinitd" which brings the socket
activation features that is provided to daemons as part of libsystemd
to other init systems (that can support those). That would make it so
much easier for upstreams to support more than one init system. But I
would expect that to be implemented by the teams working on
alternatives to systemd or by distributions centered around other init
systems.

> i am one of the few people who can cut through all that, who has gone
> to the trouble of digging into why libsystemd0 is found to be so
> objectionable.  my take on the matter is that the technical arguments
> - benefits or otherwise - of systemd and its alternatives - is
> completely irrelevant.  over time people *will* develop alternatives
> (and are already doing so: mdev, eudev, uselessd, openrc and many
> more).

Sure. I am looking forward to that! I am convinced a bit of
competition and fresh ideas will do systemd a hell of a lot of good:-)

> no, i feel that it really does have nothing to do with the technical
> benefits of the available options: what people are finding completely
> objectionable is that they have *no good choices*.  it's "use systemd
> or go away" - and unfortunately almost without exception (slackware
> and FreeBSD being two notable ones) that "piss off" attitude is being
> replicated across *the entire GNU/Linux Distro world*.  the situation
> is completely unprecedented and without parallel in the short history
> of software libre (and that's something that, honestly, i find to be
> really shocking, hence why i am contacting you).

My take is a bit different: I have seen and used lots of init systems
over the years. *Finally* we have one that actually provides some
benefits that developers of unrelated projects actually want to use!
That none of the others ever got to the state is more a testimony for
their failure than for their design -- even if many loud-mouthed
systemd opponents seem to think otherwise.

Please do not ask systemd to be less useful, please ask other projects
to implement better (for whichever metric of "better" you want to
apply) solutions to the problems those developers face.

> overall, they feel that they're being forced into the use of something
> that they feel has not been properly thought through, is still under
> development, is increasing in scope in a way that alarms them due to
> there being no other choices, causes them some huge inconvenience that
> they'd rather have a bit more time to consider but they are *not being
> given that chance*, and much more.

I do not see how the systemd project or anybody else can change that
at this point. My experience is that many people out there are beyond
a rational debate at this point. And I explicitly want to include
people from both sides of the fence in this statement.

I am afraid we will have to sit this out.

> i have to tell you: i even heard, on slashdot, that microsoft is now
> using - to significant success - the situation surrounding systemd as
> a sales pitch to have GNU/linux systems successfully replaced with
> windows servers.

Isen't it amazing what kind of stories some anonymous cowards make up
over at slashdot? There are some gems of creativity in some of those
systemd flamefests.

Best Regards,
Tobias


More information about the systemd-devel mailing list