On 2019-02-03 09:32 -0800, tony mancill wrote:

> On Sun, Feb 03, 2019 at 11:44:41AM +0100, Andreas Beckmann wrote:
>> Package: icmake,icmake-doc
>> Version: 9.02.08-1
>> Severity: serious
>> User: debian...@lists.debian.org
>> Usertags: piuparts                                                           
>>                                                                              
>>                                                            
>> 
>> Hi,
>> 
>> both icmake and icmake-doc ship /usr/share/man/man1/icmun.1.gz, that
>> file should probably go into the icmake package only.
>> 
>>   Preparing to unpack .../icmake-doc_9.02.08-1_all.deb ...
>>   Unpacking icmake-doc (9.02.08-1) ...
>>   dpkg: error processing archive 
>> /var/cache/apt/archives/icmake-doc_9.02.08-1_all.deb (--unpack):
>>    trying to overwrite '/usr/share/man/man1/icmun.1.gz', which is also in 
>> package icmake 9.02.08-1
>>   Errors were encountered while processing:
>>    /var/cache/apt/archives/icmake-doc_9.02.08-1_all.deb
>
> Hi Andreas,
>
> Thank you for the bug report.  I'm trying to reproduce this locally, but
> when I build the binary packages in a clean chroot, there are no
> manpages in the icmake-doc package:
>
> $ debc icmake_9.02.08-1_amd64.changes icmake-doc | grep -i man
> (no output)
>
> All of the manpages are found in the icmake package:
>
> $ debc icmake_9.02.08-1_amd64.changes icmake | grep -i man
> drwxr-xr-x root/root         0 2019-02-02 15:19 ./usr/share/man/
> drwxr-xr-x root/root         0 2019-02-02 15:19 ./usr/share/man/man1/
> -rw-r--r-- root/root     14962 2019-02-02 15:19 
> ./usr/share/man/man1/icmake.1.gz
> -rw-r--r-- root/root      3998 2019-02-02 15:19 
> ./usr/share/man/man1/icmbuild.1.gz
> -rw-r--r-- root/root      2846 2019-02-02 15:19 
> ./usr/share/man/man1/icmstart.1.gz
> drwxr-xr-x root/root         0 2019-02-02 15:19 ./usr/share/man/man7/
> -rw-r--r-- root/root      4820 2019-02-02 15:19 
> ./usr/share/man/man7/icmconf.7.gz
> -rw-r--r-- root/root      1606 2019-02-02 15:19 
> ./usr/share/man/man7/icmstart.rc.7.gz
> lrwxrwxrwx root/root         0 2019-02-02 15:19 
> ./usr/share/man/man1/icmun.1.gz -> icmake.1.gz
>
> Just making sure that debc isn't telling me the wrong thing, I checked
> the contents of the .debs I built:
>
> $ dpkg -x ./icmake-doc_9.02.08-1_all.deb foo
> $ find foo/ | grep man | wc -l
> 0
>
> But when I check the binary built by the buildds from the source
> package, I see:
>
> $ dpkg -x 
> /var/cache/apt-cacher-ng/debrep/pool/main/i/icmake/icmake-doc_9.02.08-1_all.deb
>  bar
>
> $ find bar/ | grep -i man
> bar/usr/share/man
> bar/usr/share/man/man1
> bar/usr/share/man/man1/icmun.1.gz
>
> So I'll need to look into why the binary package built by the buildds is
> different than what gbp builds for me locally.  I use gbp with the
> --source-only-changes option like so:
>
>  gbp buildpackage --git-pbuilder --git-pbuilder-options=--source-only-changes
>
> I question why/how a single manpage from icmake could end up in the
> icmake-doc binary - it seems like it would be all of them if it was a
> packaging bug.  Is there a chance that there is some sort of race/reuse
> on the buildds?

No, your dh_link override is broken.  This is what you have in
debian/rules:

,----
| override_dh_link:
|       dh_link usr/share/man/man1/icmake.1.gz usr/share/man/man1/icmun.1.gz
`----

Like most debhelper commands, dh_link acts upon the first package it
finds by default.  In a full or arch-only build this is the icmake
package, but in an arch-indep build it is icmake-doc, since icmake is
not built then.  Use "dpkg-buildpackage -A" to see for yourself.

The solution is to use override_dh_link-arch instead of
override_dh_link.  Or create an icmake.links file and drop the override.

Cheers,
       Sven

Reply via email to