Control: reassign -1 debhelper 9.20160702
Control: tags -1 + patch

Am 08.07.2016 um 07:07 schrieb Helmut Grohne:

> Source: freetype
> Version: 2.6.3-3
> Severity: serious
> User: helm...@debian.org
> Usertags: rebootstrap
>
> Hi,
>
> I noticed that freetype started to fail to cross build from source about
> a week ago. I finally got down to building it natively and it fails
> there as well. The relevant part from the attached build log is
>
> | dh_installdocs --link-doc=libfreetype6 -plibfreetype6-dev \
> |         -Xreference/README -Xreference/.gitignore \
> |         -XLICENSE.TXT -XGPL.TXT -XGPLv2.TXT -XBUILD -XINSTALL \
> |         -XFTL.TXT -XCHANGES -XTODO -Xft2faq.html \
> |         freetype-2.6.3/docs/*
> | install: cannot change permissions of
> | 'debian/libfreetype6-dev/usr/share/doc/libfreetype6-dev': No such
> | file or directory
> | dh_installdocs: install -d 
> debian/libfreetype6-dev/usr/share/doc/libfreetype6-dev returned exit code 1
> | debian/rules:105: recipe for target 'override_dh_installdocs' failed
>
> I'm pretty certain that this is not a regression in freetype as the same
> version of freetype built before. Most likely one of its (transitive)
> build-dependencies is at fault here. Given that I didn't figure out yet
> the cause, I am filing this bug against the victim for now and hope that
> someone figures it out before I get down to it. :)
>
> Maybe Niels (debhelper maintainer hat) knows.

It's a regression in debhelper 9.20160702 that is triggered if a package
symlinks its doc directory with "dh_installdocs --link-doc" _and_
installs additional documentation there.  Attached is a patch which
fixes that (at least in the freetype case since this is the only package
I have tested in on ;-)).

Cheers,
       Sven

>From 7859fe8d97ae45e9f64e272ba7502a171385e6e6 Mon Sep 17 00:00:00 2001
From: Sven Joachim <svenj...@gmx.de>
Date: Fri, 8 Jul 2016 10:41:41 +0200
Subject: [PATCH] dh_installdocs: Fix regression wrt symlinked doc directory

If a package uses dh_installdocs' --link-doc option, install_dir could
fail with an error message from install(1), because the symlink might
be dangling.  Use ensure_docdir instead which was designed precisely
for this case.

Regression introduced in commit 71007f72da682dd9d7f932d81ca2ecd5d46a0e70.
---
 dh_installdocs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dh_installdocs b/dh_installdocs
index a42a98d..41e0883 100755
--- a/dh_installdocs
+++ b/dh_installdocs
@@ -227,7 +227,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
 			$target_package = $dh{MAINPACKAGE};
 		}
 		my $target_dir = "$tmp/usr/share/doc/$target_package";
-		install_dir($target_dir);
+		ensure_docdir($target_package);
 		foreach my $doc (@docs) {
 			next if excludefile($doc);
 			next if -e $doc && ! -s $doc; # ignore empty files
-- 
2.8.1

Reply via email to