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