On Thursday 8. December 2016 13.41.19 Tzafrir Cohen wrote:
How do you detect this at run time? Every program should write its own (buggy) test? No, it should use an existing test. Use libsystemd.
I don't want to get into an argument about systemd, but one way of detecting systemd would to be for things to test for a file that always gets installed as part of the systemd packages. This file could even have zero content and be explicitly added by the package maintainers (if the systemd people kept renaming everything), and nothing would ever need to link to anything. You could call this magic file libsystemd.so if you wanted, and it could actually be libsystemd.so if you really wanted. That would be a very Unix-like way of dealing with this.
Naturally, someone could create that file manually and confuse software testing for it, but then they could do many other crazy things to defeat the packaging system, so it really wouldn't be a significant concern.
Paul