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: [email protected] > 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 <[email protected]> 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

