Bug#746578: libpam-systemd to flip dependencies - proposal
On Tue, Nov 04, 2014 at 08:54:27AM -0800, Russ Allbery wrote:
> Josh Triplett <firstname.lastname@example.org> writes:
> > This result concerns me greatly, and I think the technical committee
> > should take this into account when considering whether to flip the
> > dependencies of libpam-systemd around.
> So, this came up before, and I believe that systemd-shim is not supposed
> to interfere with systemd with the current version. In other words, I
> think the existence of the package on the system should be a no-op if the
> system is booted with systemd.
> That makes this a minor bug, but not something that's too serious.
> Am I wrong about this?
systemd-shim and cgmanager *shouldn't* interfere with systemd, but they
have in the past, sufficiently so to break it. With the recent change
in systemd-shim 8-4 to stop shipping its own DBus policy and instead
depend on systemd, the risk of breakage from systemd-shim seems
negligible. However, cgmanager (which systemd-shim depends on) has
*also* broken systemd in the past (bug 757348, 754850), and cgmanager
still runs on a systemd system; I think the likelihood of cgmanager
breaking systemd seems uncomfortably high for a default configuration.
Hence, I would suggest modifying the cgmanager packaging to make it a
complete no-op under systemd. (See bug 755977, though other possible
fixes exist apart from a Conflicts.) With cgmanager changed to not run
under systemd at all, this dependency change would become near-zero
risk, as all of the packages pulled in by the dependencies would then do
absolutely nothing on systemd systems.
A Conflicts would have the advantage of actually keeping apt and
debootstrap from installing both systemd-sysv and cgmanager, but the
disadvantage of preventing the two from coexisting for the benefit of
systems that have both systemd-sysv and sysvinit installed and boot
sysvinit via the kernel command line. Modifying cgmanager to not launch
under systemd would have the advantage of allowing the packages to
coexist, but the disadvantage of potentially breaking packages depending
on cgmanager and expecting the cgmanager interface. On the other hand,
right now *no* packages depend on cgmanager apart from systemd-shim and
cgmanager's own test suite, and systemd-shim becomes a no-op under
systemd, so making cgmanager a no-op under systemd (by shipping a
.service file linked to /dev/null) seems harmless.
- Josh Triplett