Re: readutmp: load libsystemd with dlopen instead of linking

Simon Josefsson via Gnulib discussion list <[email protected]> Mon, 20 Jul 2026 20:42:53 +0200
Newsgroups gmane.comp.lib.gnulib.bugs
Message-ID <[email protected]>
Luca Boccassi <[email protected]> writes:

>> For the readutmp situation, the extra complexity does not appear to be
>> worth it.
>
> Why is it not worth it? They are different use cases, worth something
> different to different people. One is not better or worse or different
> or more worth or less worth than the other. It's exactly the same
> code, to achieve the exact same goal: make a dependency
> runtime-optional. Incidentally, if it wasn't already a dlopen dep,
> this patch would have made it into one as well, for the same reason.

Where should the line be drawn?  Do you think it is reasonable to
replace all shared libraries usages with opt-in use of dlopen()?

>> Yet another option is that we could split GNU 'coreutils' into two
>> packages. Arguably 'who', 'pinky' and 'users' are no longer core
>> utilities, if so many users do not care whether they work.
>
> End result is worse: more complex, more annoying to handle, less
> flexible, less powerful. And doesn't really help anyway: it's the same
> story for libselinux, which affects more binaries.

I don't understand that argument -- packages are split into several
sub-packages all the time, and users are used to this.

With my Debian (non-coreutils maintainer) hat on, this seems like a good
way to resolve this.  You would have:

Package: coreutils
Depends: ... no libsystemd anywhere ...
Recommends: coreutils-systemd

Package: coreutils-systemd
Depends: ... libsystemd ...

Where the 'coreutils' package would only contains the applications that
do not need systemd, and the 'coreutils-systemd' package would contain
the applications (who, pinky, users) that need libsystemd.

What's wrong with this?

Users will barely notice, and you get the opt-in approach to libsystemd
without forcing libsystemd on all of the coreutils packages.

/Simon
signature.asc (application/pgp-signature, 1.2 KB)
-----BEGIN PGP SIGNATURE-----

iQNoBAEWCgMQFiEEo8ychwudMQq61M8vUXIrCP5HRaIFAmpebC0UHHNpbW9uQGpv
c2Vmc3Nvbi5vcmfCHCYAmDMEXJLOtBYJKwYBBAHaRw8BAQdACIcrZIvhrxDBkK9f
V+QlTmXxo2naObDuGtw58YaxlOu0JVNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9z
ZWZzc29uLm9yZz6IlgQTFggAPgIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgBYh
BLHSvRN1vst4TPT4xNc89jjFPAa+BQJp4fWRBQkOa+rdAAoJENc89jjFPAa+hWIA
/1lQvrJeGlQq50lP6tm99D1zDy7J1tQ3ha4x0Jx7rkFTAP9hpUKuTvm6m1fXyiZV
YZlu2+Id/Dq3CIAZvNF+XEr2BLgzBFySz4EWCSsGAQQB2kcPAQEHQOxTCIOaeXAx
I2hIX4HK9bQTpNVei708oNr1Klm8qCGKiPUEGBYIACYCGwIWIQSx0r0Tdb7LeEz0
+MTXPPY4xTwGvgUCaeCW1wUJDmqLVgCBdiAEGRYIAB0WIQSjzJyHC50xCrrUzy9R
cisI/kdFogUCXJLPgQAKCRBRcisI/kdFoqdMAQCgH45aseZgIrwKOvUOA9QfsmeE
8GZHYNuFHmM9FEQS6AD6A4x5aYvoY6lo98pgtw2HPDhmcCXFItjXCrV4A0GmJA4J
ENc89jjFPAa+s7AA+gIIHpBApDpcDj1sKhzDngmpvwQf0VkHme6s+EG7qSgpAQDe
/XMrU0c0Pa3ji85cMqZhvzJOFI/soe662lzL0QY3Bbg4BFySz2oSCisGAQQBl1UB
BQEBB0AxlRumDW6nZY7A+VCfek9VpEx6PJmdJyYPt3lNHMd6HAMBCAeIfgQYFggA
JgIbDBYhBLHSvRN1vst4TPT4xNc89jjFPAa+BQJp4JbXBQkOaottAAoJENc89jjF
PAa+RNUA/2faQO/nFT06E+MlhlQdo/0chlQXC5TZMPTVvVBFwoLOAP9xLJK0ow5E
jTzYJB4K810AL/Iv6PEOAEgA4cPTHVlbCQAKCRBRcisI/kdFopKuAP9EXe3Q1uKh
ZHGQA8uVXrXVzyuOwuGosrL6hQpVMCGKvwEA3l16N2yxpvj/AsIPvJ29ikkJOwbB
jrKeVKKPQdbzXwE=
=/CrX
-----END PGP SIGNATURE-----