On 12/07/2016 06:56 AM, Luke Kenneth Casson Leighton wrote:
not sure i fully understand what you're saying, but i'm aware that devuan is supporting a huge alternative range of init systems: the only one they *don't* support is... systemd!
libsystemd is not an init system. The init system is initd. The various systemd components can be used for multiple tasks regardless of what init system you actually use. But the developers of Devuan have decided that systemd is inherently evil for some reason and that a variant of Debian that doesn't offer systemd (this is the only substantial difference between Debian and Devuan) would somehow be necessary.
What he is saying is that purging libsystemd like this makes it impossible to even check whether or not systemd is actually there, which inherently makes no one who develops a program to even optionally use part of systemd care about you.
Hi!
I'm new on this list, so hello everybody :)
If I may make a small remark... I feel that somehow, having a library installed only to know wether some other software is present or not feels the wrong way to do things. Software already have dependencies and depency checking, wether it is at build-time or run-time. If you write a software that could use any part of systemd, you shouldn't force the presence of libsystemd to find out if the parts you might want are present ! Either it is a compile-time feature, then if you compile it without systemd, you'll have to rebuild it again if you decide to install systemd, or it is a run-time feature, and a simple check for dynamically loading a shared library should be enough to know wether libsystemd is present.
So I don't see the point in having libsystemd if you do not have any part of systemd installed !
When I build ffmpeg, I don't need a lib_is_lame_present to be able to use lame if it is present ! Either I build it with LAME=yes, and it will fail if lame isn't there, or it will pass. What would be the point of having some other library installed to know wether or not lame is there ? And if it weren't a compile-time dependency, but a dynamically loaded library at runtime, the code just has to try to load the library and report that the functionality isn't present if it fails.
It should be the same for a software using systemd. Either it is compiled with libsystemd, therefore you need it to run it. Or it detects at run-time wether a particular functionality is there, and there is no need to rely on having libsystemd present to do that. The middle ground being to compile with libsystemd, and use it to detect wether it is actually working and a specific functionality is available. But it seems easy enough to allow for compiling without libsystemd and then assuming sysytemd is never there and none of its functionality are usable. Rebuild it if things changes, that is the way to do it.
Best regards :)