Hello Josh Triplett. Thanks for your bug report ... *double-sigh*.
On Thu, Mar 10, 2016 at 04:18:27PM -0800, Josh Triplett wrote: [...] > Even with util-linux 2.27.1-5, I still hit a dependency loop that caused > apt to refuse to proceed: > > util-linux 2.27.1-5 Depends on init-system-helpers (>= 1.29~) > init-system-helpers 1.29 Breaks sysvinit-utils (< 2.88dsf-59.3~) > sysvinit-utils 2.88dsf-59.3 Breaks util-linux (< 2.26.2-3) [...] I'm basically ready to throw in the towel, revert the changes and wait for Stretch to ship with init-system-helpers 1.29 and then revisit this, even though I'd really like to avoid waiting.... Some info: util-linux only needs the fixed update-rc.d from i-s-h 1.29 to be available during config (postinst) phase. sysvinit-utils should really depend on util-linux rather than Breaks. Despite both of the above it's not obvious to me how the dependency loop can be avoided without waiting for stretch. In theory 'init-system-helpers (>= 1.29~) | initscripts' would be what I'm trying to say, but I don't think apt/dpkg groks that properly and initscripts introduces the old u-l<->initscripts<->sysvinit-utils cycle as well. My only idea which seems kind of edgy and needs careful consideration would be to entirely drop the versioned init-system-helpers dependency. It's only needed if initscripts is not available (*purged*), and as I see it: - in stable, initscripts is not even uninstallable so guaranteed to be available (as no relation in the world can make it become purged which is needed to cause problems since the contents are conffiles). - in testing/unstable, initscripts is not uninstallable until after util-linux has been upgraded (and even after that some packages in a current normal install keeps depending on initscripts but that might change. Nothing in debootstrap --variant=minbase, except previous util-linux, deps on initscripts). - in a partial upgrade from stable where only util-linux has been upgraded making it possible to purge initscripts (atleast from debootstrap --variant=minbase) causes sysvinit-utils to be upgraded as well which in turn has dep: init-system-helpers (>= 1.25~) Not quite new enough, but >= 1.25~ and << 1.29~ are not available currently in either testing or unstable repos so only outdated partial upgrades would be affected. The theoretical gap here is likely so minimal that it basically can be ignored. I'm attaching a patch for the above idea. Feedback very welcome. Help needed to verify all cases are covered properly. (Fwiw, if we go ahead without reverting then I'd also like to turn util-linux dep on sysvinit-utils back into a breaks which needs a synchronized upload of sysvinit to turn it's breaks on util-linux into a depends as well. At the same time we could just bump the i-s-h dependency version to close the above theoretical gap while at it.) Regards, Andreas Henriksson
diff --git a/debian/changelog b/debian/changelog index 045c01c..850a045 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,19 @@ +util-linux (2.27.1-5+test3) UNRELEASED; urgency=medium + + * Drop (versioned) init-system-helpers dependency to avoid dep loop. + - initscripts is guaranteed to be installed in stable, the file + is additionally a conffile so initscripts will need to be + purged to cause a problem for us with i-s-h << 1.29 and purging + initscripts is not possible until after the upgrade anyway. + (Closes: #817857) + * Temporarily move sysvinit-utils back from Breaks to Depends. + - again seems to confuse apt and we apparently need a synchronized + upload with sysvinit to move things to how it should (and now + can be since initscripts dependency was dropped from u-l) be + described. + + -- Andreas Henriksson <andr...@fatal.se> Fri, 11 Mar 2016 10:28:13 +0100 + util-linux (2.27.1-5) unstable; urgency=medium * Completely drop (versioned) tzdata dependency (Closes: #817371) diff --git a/debian/control b/debian/control index 351a6cc..20df17f 100644 --- a/debian/control +++ b/debian/control @@ -35,8 +35,9 @@ Build-Profiles: <!stage1> Section: utils Essential: yes Pre-Depends: ${misc:Pre-Depends}, ${shlibs:Depends} -Depends: init-system-helpers (>= 1.29~), - ${misc:Depends} +Depends: ${misc:Depends}, +# conceptually a Breaks:, but confuses apt (#786469) + sysvinit-utils (>= 2.88dsf-59.1~), Suggests: dosfstools, kbd | console-tools, util-linux-locales Replaces: bash-completion (<< 1:2.1-4.1~), sysvinit-utils (<< 2.88dsf-59.1~), @@ -46,7 +47,6 @@ Replaces: bash-completion (<< 1:2.1-4.1~), Breaks: bash-completion (<< 1:2.1-4.1~), grml-debootstrap (<< 0.68), cloud-utils (<< 0.27-1~), - sysvinit-utils (<< 2.88dsf-59.1~), mount (= 2.26.2-3), mount (= 2.26.2-3ubuntu1) Multi-Arch: foreign