Package: zsh Version: 5.0.7-3.1+b1 Severity: serious Tags: patch Justification: uninstallable
As noted on #747141, it is not safe for dh_installdocs --link-doc to link together the documentation directories of an architecture-dependent package and an architecture-independent package, because the resulting lockstep dependency is unsatisfiable after the architecture-dependent package receives a binNMU. Here's a patch to fix that, using the approach that Axel Beckert described on that bug: > > - change the affected packages in question to not use --link-doc. > That's likely the way I'd go with zsh then, with the addition of some > additional symlinks from /usr/share/doc/zsh/something to > /usr/share/doc/zsh-common/something for most files not being > changelogs. *sigh* I changed zsh-dbg from "docs linked to zsh-common" to "docs linked to zsh", and installed the bare minimum of Policy-required docs in zsh. zsh-dev is now self-contained (I don't think it's worth optimizing its size). I put the dpkg-maintscript glue to migrate /usr/share/doc/zsh from a directory to a symlink in both zsh and zsh-common, because both packages ship files in that directory now, and either package might be unpacked first. Regards, S
>From 9450b3c0ac7d7996a6cd4bab45e27fb24e5ec805 Mon Sep 17 00:00:00 2001 From: Simon McVittie <s...@debian.org> Date: Mon, 10 Nov 2014 10:20:21 +0000 Subject: [PATCH] Be binNMU-safe: do not use dh_installdocs --link-doc=zsh-common in architecture-dependent packages --- debian/changelog | 10 ++++++++++ debian/rules | 22 +++++++++++++++++++--- debian/zsh-common.dirs | 1 + debian/zsh-common.maintscript | 1 + debian/zsh-dev.maintscript | 1 + debian/zsh.maintscript | 1 + 6 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 debian/zsh-common.maintscript create mode 100644 debian/zsh-dev.maintscript create mode 100644 debian/zsh.maintscript diff --git a/debian/changelog b/debian/changelog index 6046a6f..c190bcb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +zsh (5.0.7-3.1) UNRELEASED; urgency=medium + + * Be binNMU-safe: do not use dh_installdocs --link-doc=zsh-common + in architecture-dependent packages + * Symlink zsh-common documentation files into /usr/share/doc/zsh + * Migrate /usr/share/doc/zsh and /usr/share/doc/zsh-dev from symlink + to directory using dpkg-maintscript-helper + + -- Simon McVittie <s...@debian.org> Mon, 10 Nov 2014 08:21:42 +0000 + zsh (5.0.7-3) unstable; urgency=low * Upload to unstable again diff --git a/debian/rules b/debian/rules index c322e7c..7db7920 100755 --- a/debian/rules +++ b/debian/rules @@ -155,6 +155,15 @@ binary-indep: build-indep binary-arch-dynamic dh_installchangelogs -pzsh-doc -pzsh-common dh_lintian -i dh_compress -i -Xpdf + set -e; cd debian/zsh-common/usr/share/doc/zsh-common; for x in *; do \ + case "$$x" in \ + (copyright|changelog.Debian.gz) \ + ;; \ + (*) \ + ln -s ../zsh-common/$$x ../zsh/$$x; \ + ;; \ + esac; \ + done dh_fixperms -i dh_installdeb -i dh_md5sums -i @@ -182,7 +191,12 @@ binary-arch-dynamic: build-arch -dDepends debian/zsh/bin/* \ -dRecommends debian/zsh/usr/lib/*/zsh/*/zsh/*.so - dh_installdocs -pzsh -pzsh-dbg --link-doc=zsh-common + dh_installdocs -pzsh -pzsh-dbg --link-doc=zsh + dh_installchangelogs -pzsh + # These are in zsh-common and there is no Policy reason why + # they can't be + rm -v -f debian/zsh/usr/share/doc/zsh/changelog + rm -v -f debian/zsh/usr/share/doc/zsh/NEWS.Debian binary-arch-static: build-static dh_testdir @@ -192,7 +206,8 @@ binary-arch-static: build-static # Do not symlink /usr/share/doc/zsh-static to # /usr/share/doc/zsh-common because zsh-static has a unique, - # generated README.Debian + # generated README.Debian, and because --link-doc between + # arch-dep and arch-indep packages breaks binNMUs dh_installdocs -pzsh-static awk 'BEGIN { print "The following modules are statically-compiled into the static zsh binary:\n"; } /link=static/ { printf "%s (%s %s)\n", substr($$1,6), $$4, $$5; }' obj-static/config.modules >debian/zsh-static/usr/share/doc/zsh-static/README.Debian @@ -215,7 +230,8 @@ binary-arch-dev: build-arch cd debian/zsh-dev/usr/share/aclocal; mv aczshoot.m4 zshoot.m4 - dh_installdocs -pzsh-dev --link-doc=zsh-common + dh_installdocs -pzsh-dev + dh_installchangelogs -pzsh-dev binary-arch: binary-arch-dynamic binary-arch-static binary-arch-dev dh_lintian -a diff --git a/debian/zsh-common.dirs b/debian/zsh-common.dirs index bf201bb..51addab 100644 --- a/debian/zsh-common.dirs +++ b/debian/zsh-common.dirs @@ -1,3 +1,4 @@ etc/zsh +usr/share/doc/zsh usr/share/man usr/share/zsh/help diff --git a/debian/zsh-common.maintscript b/debian/zsh-common.maintscript new file mode 100644 index 0000000..93427a2 --- /dev/null +++ b/debian/zsh-common.maintscript @@ -0,0 +1 @@ +symlink_to_dir /usr/share/doc/zsh zsh-common 5.0.7-3 diff --git a/debian/zsh-dev.maintscript b/debian/zsh-dev.maintscript new file mode 100644 index 0000000..c6e45a8 --- /dev/null +++ b/debian/zsh-dev.maintscript @@ -0,0 +1 @@ +symlink_to_dir /usr/share/doc/zsh-dev zsh-common 5.0.7-3 diff --git a/debian/zsh.maintscript b/debian/zsh.maintscript new file mode 100644 index 0000000..93427a2 --- /dev/null +++ b/debian/zsh.maintscript @@ -0,0 +1 @@ +symlink_to_dir /usr/share/doc/zsh zsh-common 5.0.7-3 -- 2.1.3