Policy says new Pre-Depends should be discussed on debian-devel so let's
try that. (Please do not derail this thread into discussing whether
systemd is a good thing or not, everyone is tired of that.)
Quick summary of #753589 for debian-devel readers: Essential:yes packages are
expected to provide their functionality while merely unpacked, even when
not yet configured. The new init package is Essential:yes, and the
functionality it represents includes sysvinit-compatible implementations
of runlevel(8), shutdown(8), halt(8), telinit(8), poweroff(8) and reboot(8).
At least runlevel(8) is actively used via invoke-rc.d in maintainer scripts,
leading to #753589.
(Side point: I'm also going to open a bug asking that invoke-rc.d stop
trying to determine the runlevel under systemd, because it's rather
meaningless. The same is probably true of Upstart.)
init pre-depends on a sysv-compatible init implementation to provide
those tools: sysvinit-core | systemd-sysv | upstart. This makes those tools
transitively Essential, so they are also expected to function when
merely unpacked.
Under systemd-sysv, all of those tools are symlinks to /bin/systemctl.
Michael's proposed patch is simple:
diff --git a/debian/rules b/debian/rules
...
+# the SysV compat tools (which are symlinks to systemctl) are quasi-essential
+# so we add the depencencies of systemctl to Pre-Depends
+# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=753589
+override_dh_shlibdeps:
+ dh_shlibdeps -psystemd -- -dPre-Depends -edebian/systemd/bin/systemctl
-dDepends
+ dh_shlibdeps --remaining-packages
resulting in:
Control files: lines which differ (wdiff format)
Depends: libacl1 (= 2.2.51-8), libaudit1 (= 1:2.2.1), libblkid1 (=
2.17.2), [-libc6 (= 2.17),-] libcap2 (= 2.10), libcryptsetup4 (= 2:1.4.3),
libdbus-1-3 (= 1.1.1), [-libgcrypt11 (= 1.5.1),-] libkmod2 (= 5~),
[-liblzma5 (= 5.1.1alpha+20120614),-] libpam0g (= 0.99.7.1), libselinux1
(= 2.1.9), [-libsystemd-daemon0 (= 208-5),-] libsystemd-journal0 (= 208-5),
libudev1 (= 189), libwrap0 (= 7.6-4~), libsystemd-login0 (= 208-5),
util-linux (= 2.19.1-2), initscripts (= 2.88dsf-17), sysv-rc, udev, acl,
adduser, libcap2-bin
{+Pre-Depends: libc6 (= 2.17), libdbus-1-3 (= 1.0.2), libgcrypt11 (=
1.5.1), liblzma5 (= 5.1.1alpha+20120614), libselinux1 (= 2.0.65),
libsystemd-daemon0 (= 208-5)+}
Expanded dependency tree:
libc6 is already quasi-Essential, via e.g. coreutils
libdbus-1-3 Depends: libc6 (= 2.17)
libgcrypt11 Depends: libc6 (= 2.15)
libgcrypt11 Depends: libgpg-error0 (= 1.10), already satisfied in stable
libgpg-error0 Depends: libc6 (= 2.14)
liblzma5 Depends: libc6 (= 2.4), already satisfied in stable
libselinux1 is already quasi-Essential, via coreutils
libsystemd-daemon0 Depends: libc6 (= 2.8), already satisfied in stable
Michael wrote:
The Pre-Depends list is still a bit long.
But I guess there is no way around to it.
I don't think that list looks too bad: all the libraries added to it
are quite self-contained. The only way I can see to reduce that list
would be to reimplement the sysv compatibility tools as one or more
separate binaries, in which case the question would be: how much
of their functionality is Essential? I don't see any reason why
it would be reasonable for a maintainer script to do anything
with those tools except runlevel, telinit q, or telinit u.
S
--
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org