>>>>> "Lorenz" == Lorenz <lorenzo.r...@gmail.com> writes:
Lorenz> Sam Hartman wrote: >> My understanding is that systemd's implementation of tmpfiles and >> sysusers works even while systemd is not pid 1. >> Why do we need multiple implementations for Debian ports where systemd >> runs? >> I understand why we might want alternatives for kfreebsd and hurd. >> But if my understanding that the systemd implementation does not require >> systemd be running as pid 1, why do we need alternatives for the glibc >> linux ports? Lorenz> Why dump additional work on non-linux porters when we ( alternatives inits suppo Lorenz> rters) Lorenz> can have one implementation that works on both linux and non-linux? Lorenz> Please consider that beeing able to work on non-linux port it's a feature that m Lorenz> any Lorenz> (if not all) alternative inits provide while systemd doesn't. Lorenz> That feature it's clearly not important for a systemd advocate, Lorenz> but may be important for a sysv/openrc/runit user/contributor. I think it's easier to have a single implementation of an interface for a given arch. With elogind, policy-kit etc, what we've found is that runtime or installed package time selection of facilities is much more complex than build time selection. We probably avoid bugs if we always used systemd-tmpfiles on architectures where it can build and run. Secondly, by using systemd-tmpfiles when we can, we gain support for any additional features that are implemented. My recommendation would be to have one implementation of this interface per architecture; use the systemd one on architectures where it works. Lorenz> In wich way having an alternative implementation of tmpfiles.d Lorenz> and sysuser.d around will harm systemd? It will not. I think another question is more interesting though. Will having runtime selection of that interface harm Debian. My answer is that I think it might: * You might get the wrong version of tmpfiles implementation on a given system. The harm on a systemd system would be that you might not have a feature available. * You might be tempted to restrict yourself to the subset of the tmpfiles and sysusers interface that all the implementations of the interface support. I think these are minor harms. When there is a sufficient benefit, I think it would be fine to accept these costs. For example, being able to have tmpfiles and sysusers ond hurd and kfreebsd seems like sufficient justification to accept the costs on those platforms. Given that the systemd implementations will work for alternate inits on linux, I'd rather see us use them there. But I don't care that much. I'm just expressing an opinion about which policy Debian should adopt; if I'm in the rough that's okay with me. You talk later about wanting to have a runit facility where you could create tmpfiles before starting a service rather than at boot. That seems cool, but that's going to be an entirely different interface than what we're talking about here. If packages stick tmpfiles units in the right place and do the right thing from a maintainer script, they expect their directories to exist even if their service never gets started (or their package has no service). It would not be reasonable for runit to change the semantics of that interface. It would be fine for runit to provide its own tmpfiles interface that works differently. It would be fine for runit to provide a way to signal that a package using the runit specific interface should disable the systemd interface for that package when runit is in use. I don't care what tmpfiles implementation you use in that case.