On Sun, 23 Jul 2017 14:56:21 +0200, Axel Beckert wrote:

> After the BinNMU for rebuilding against Perl 5.26, vile has the
> following unsatisfiable dependencies:
> 
>   Depends: vile-common (= 9.8s-1), vile-common (= 9.8s-1+b1), […]
> 
> This can be solved by any sourceful upload, but it should be fixed
> permanently by making the package BinNMU-safe.

This looks like an interesting case.

Indeed the Depends of vile now is:
    Depends: vile-common (= 9.8s-1), vile-common (= 9.8s-1+b1), libc6 (>= 
2.15), libperl5.26 …
while it was
    Depends: vile-common (= 9.8s-1), libc6 (>= 2.15), libperl5.24 …
before.

So we have a _second_ vile-common with the binNMU version.

d/control looks as expected:
    Package: vile
    Depends: vile-common (= ${source:Version}), ${misc:Depends}, 
${shlibs:Depends}

d/rules doesn't do any manual substvar handling.
So where does the second dependency com from? The only "suspicious"
line in d/rules referring to vile-common is:
    dh_installdocs       --link-doc=vile-common

And indeed, dh_installdocs(1) says:

    CAVEAT 2: The use of --link-doc should only be done when the
    packages have same "architecture" type. A link from a
    architecture independent package to a architecture dependent
    package (or vice versa) will not work. Since compat 10, debhelper
    will actively reject unsupported combinations.

Also:

dh_installdocs       --link-doc=vile-common
dh_installdocs: Compatibility levels before 9 are deprecated (level 8 in use)
dh_installdocs: WARNING: --link-doc between architecture all and not all 
packages breaks binNMUs
dh_installdocs: WARNING: --link-doc between architecture all and not all 
packages breaks binNMUs
dh_installdocs: WARNING: --link-doc between architecture all and not all 
packages breaks binNMUs

And with DH_VERBOSE=1:

dh_installdocs       --link-doc=vile-common
dh_installdocs: Compatibility levels before 9 are deprecated (level 8 in use)
dh_installdocs: WARNING: --link-doc between architecture all and not all 
packages breaks binNMUs
        install -d debian/vile/usr/share/doc
        ln -s vile-common debian/vile/usr/share/doc/vile
        (grep -a -s -v misc:Depends debian/vile.substvars; echo 
"misc:Depends=vile-common (= \${binary:Version})") > debian/vile.substvars.new
[…]

So that's where the second dependency comes from.


It seems like this --link-doc needs to be removed (and the symlink
converted to a directory with dpkg-maintscript-helper's
symlink_to_dir).



Cheers,
gregor

-- 
 .''`.  https://info.comodo.priv.at/ - Debian Developer https://www.debian.org
 : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D  85FA BB3A 6801 8649 AA06
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   NP: Don McLean: He's Got You

Attachment: signature.asc
Description: Digital Signature

Reply via email to