Control: tags -1 + patch
On Sat, Sep 30, 2017 at 01:59:17AM +0200, Andreas Beckmann wrote:
> during a test with piuparts I noticed your package ships (or creates)
> a broken symlink.
Thank you for the report.
> From the attached log (scroll to the bottom...):
>
> 0m22.5s ERROR: FAIL: Broken symlinks:
> /usr/share/man/man1/x86_64-linux-gnu-ld.1.gz -> ld.1.gz
> /usr/share/man/man1/x86_64-linux-gnu-gold.1.gz -> gold.1.gz
> but uses an additional redirection via a symlink in the binutils package
> (that is not being depended upon) for the manpages:
And that's the issue here. Those symlinks should have ended up in
binutils-common rather than binutils.
> In case binutils switches to ld -> ld.gold and ld.1.gz -> ld.gold.1.gz
> but binutils-<triplet> does not change (for some arch), the manpage for
> <triplet>-ld.1.gz would be wrong.
I don't think this is a realistic scenario. If it was, more things would
have to change around the packaging.
> I think for consistency the symlinks should rather be
>
> (unchanged)
> /usr/share/man/man1/x86_64-linux-gnu-ld.bfd.1.gz -> ld.bfd.1.gz
> /usr/share/man/man1/x86_64-linux-gnu-ld.gold.1.gz -> ld.gold.1.gz
>
> and (updated):
> /usr/share/man/man1/x86_64-linux-gnu-gold.1.gz ->
> x86_64-linux-gnu-ld.gold.1.gz
> /usr/share/man/man1/x86_64-linux-gnu-ld.1.gz -> x86_64-linux-gnu-ld.bfd.1.gz
Such consistency does not make sense to me as those symlinks serve
different purposes. While the binary symlinks point unqualified tools at
qualified ones, the manual page symlinks are reversed. Thus centralizing
the decision point (of where ld points to) on ld.1.gz (as currently
implemented) is the right thing to do.
What's wrong is the placement into packages (binutils vs
binutils-common).
Helmut
diff --minimal -Nru binutils-2.29.1/debian/changelog
binutils-2.29.1/debian/changelog
--- binutils-2.29.1/debian/changelog 2017-09-23 14:00:50.000000000 +0200
+++ binutils-2.29.1/debian/changelog 2017-10-01 14:56:57.000000000 +0200
@@ -1,3 +1,10 @@
+binutils (2.29.1-3.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Move man/{go,}ld.1.gz to binutils-common. (Closes: #877266)
+
+ -- Helmut Grohne <[email protected]> Sun, 01 Oct 2017 14:56:57 +0200
+
binutils (2.29.1-3) unstable; urgency=medium
* Update, taken from the 2.29 branch 20170923.
diff --minimal -Nru binutils-2.29.1/debian/control.in
binutils-2.29.1/debian/control.in
--- binutils-2.29.1/debian/control.in 2017-09-17 16:43:39.000000000 +0200
+++ binutils-2.29.1/debian/control.in 2017-10-01 14:56:57.000000000 +0200
@@ -158,8 +158,8 @@
Package: binutils-common
Architecture: any
Multi-Arch: same
-Breaks: binutils (<< 2.29-10)
-Replaces: binutils (<< 2.29-10)
+Breaks: binutils (<< 2.29.1-3.1~)
+Replaces: binutils (<< 2.29.1-3.1~)
Description: Common files for the GNU assembler, linker and binary utilities
This package contains the localization files used by binutils packages for
various target architectures and parts of the binutils documentation. It is
diff --minimal -Nru binutils-2.29.1/debian/rules binutils-2.29.1/debian/rules
--- binutils-2.29.1/debian/rules 2017-09-23 14:00:50.000000000 +0200
+++ binutils-2.29.1/debian/rules 2017-10-01 14:56:57.000000000 +0200
@@ -1121,8 +1121,8 @@
mv $(d_com)/$(PF)/share/man/man1/ld.1 \
$(d_com)/$(PF)/share/man/man1/ld.bfd.1
ln -sf $(DEB_HOST_GNU_TYPE)-ld.bfd $(d_bin)/$(PF)/bin/ld
- $(install_dir) $(d_bin)/$(PF)/share/man/man1
- ln -sf ld.bfd.1.gz $(d_bin)/$(PF)/share/man/man1/ld.1.gz
+ $(install_dir) $(d_com)/$(PF)/share/man/man1
+ ln -sf ld.bfd.1.gz $(d_com)/$(PF)/share/man/man1/ld.1.gz
ifeq ($(with_gold),yes)
ln -s ld.gold $(d_bin)/$(PF)/bin/gold
ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
@@ -1142,7 +1142,7 @@
endif
cp debian/dwp.1 $(d_com)/$(PF)/share/man/man1/
cp debian/ld.gold.1 $(d_com)/$(PF)/share/man/man1/
- ln -s ld.gold.1.gz $(d_bin)/$(PF)/share/man/man1/gold.1.gz
+ ln -s ld.gold.1.gz $(d_com)/$(PF)/share/man/man1/gold.1.gz
: # install a symlink for the gold linker
$(install_dir) $(d_bin)/$(PF)/lib/gold-ld