And if you have questions about how this happened, look at the source for when it was merged, it's all there for everyone to review :)
Also, udevd is a program, not a library.
And if you have questions about how this happened, look at the source for when it was merged, it's all there for everyone to review :)
Also, udevd is a program, not a library.
That way udev stays a separate project and you don't have to bring in a big library to use it. Systemd needs udev both ways so it changes nothing for it apart perhaps a bit of maintenance for a separate library for the shared code.
Expanding udev's library would probably end up a decent size library of other functionality, I don't think there is any good way around needing this. This is not code that could be deleted from systemd if it was separated. The way eudev has handled it is by doing what you describe and copying those shared functions out from systemd: https://github.com/gentoo/eudev/tree/34b2037d379e33f1cf79a34...
The result of that being there are two copies of the same shared code floating around, which is what they were trying to avoid.
That's fair.
>This is not code that could be deleted from systemd if it was separated.
Why not? You could make a library out of those utility functions and use it from both systemd and udev (without having to include most of libsystemd which doesn't seem useful for udev).