Bug#806014: defendguin: FTBFS when built with dpkg-buildpackage -A (No such file or directory)
Greetings. I have the ok from the Release Managers to consider this issue as RC for stretch. I'm going to wait at least one week before raising this to "serious". There is a patch available for this bug. If you need someone to make an upload, please ask for a sponsor in debian-mentors. Thanks.
Bug#806014: defendguin: FTBFS when built with dpkg-buildpackage -A (No such file or directory)
tags 806014 + patch thanks > make install \ > DESTDIR=/debian/defendguin \ > BIN_PREFIX=debian/defendguin/usr/games \ > MAN_PREFIX=debian/defendguin/usr/share \ > DATA_PREFIX=debian/defendguin/usr/share/games/defendguin/ > make[2]: Entering directory '/<>' > install -d debian/defendguin/usr/share/games/defendguin/ > cp -R data/* debian/defendguin/usr/share/games/defendguin/ > chmod -R a+rX,g-w,o-w debian/defendguin/usr/share/games/defendguin/ > cp defendguin debian/defendguin/usr/games/ > cp: cannot create regular file 'debian/defendguin/usr/games/': Not a directory Explanation: We are creating arch-independent packages only, so "debian/defendguin/usr/games" does not exist because "defendguin" is arch-dependent. The following patch makes the packaging a little bit more orthodox (by using *.install files instead of dh_movefiles) and should fix the "dpkg-buildpackage -A" problem. Thanks.commit 37f56e1c0cf6b393733860b4b59b505ff8167a56 Author: Santiago VilaDate: Fri Apr 8 21:38:12 2016 +0200 Patch diff --git a/debian/defendguin-data.install b/debian/defendguin-data.install new file mode 100644 index 000..5bad92b --- /dev/null +++ b/debian/defendguin-data.install @@ -0,0 +1 @@ +usr/share/games diff --git a/debian/defendguin.install b/debian/defendguin.install new file mode 100644 index 000..9af7d9f --- /dev/null +++ b/debian/defendguin.install @@ -0,0 +1,4 @@ +usr/games/defendguin +usr/share/man +debian/defendguin-icon.xpm usr/share/pixmaps +debian/defendguin.desktop usr/share/applications diff --git a/debian/rules b/debian/rules index 5e64b21..ba7ca7c 100755 --- a/debian/rules +++ b/debian/rules @@ -11,14 +11,10 @@ override_dh_auto_build: make -j1 DEB_CFLAGS="$(CFLAGS)" DATA_PREFIX=/usr/share/games/defendguin/ override_dh_auto_install: + install -d debian/tmp/usr/games + install -d debian/tmp/usr/share/pixmaps + install -d debian/tmp/usr/share/applications make install \ - DESTDIR=/debian/defendguin \ - BIN_PREFIX=debian/defendguin/usr/games \ - MAN_PREFIX=debian/defendguin/usr/share \ - DATA_PREFIX=debian/defendguin/usr/share/games/defendguin/ - - install -D -m 644 debian/defendguin-icon.xpm debian/defendguin/usr/share/pixmaps/ - install -D -m 644 debian/defendguin.desktop debian/defendguin/usr/share/applications/ - - dh_movefiles --sourcedir=debian/defendguin - rm -rf debian/defendguin/usr/share/games + BIN_PREFIX=debian/tmp/usr/games \ + MAN_PREFIX=debian/tmp/usr/share \ + DATA_PREFIX=debian/tmp/usr/share/games/defendguin/
Bug#806014: defendguin: FTBFS when built with dpkg-buildpackage -A (No such file or directory)
Package: src:defendguin Version: 0.0.12-5 User: sanv...@debian.org Usertags: binary-indep Severity: important Dear maintainer: I tried to build this package with "dpkg-buildpackage -A" (i.e. only architecture-independent packages), and it failed: [...] fakeroot debian/rules binary-indep dh binary-indep dh_testroot -i dh_prep -i debian/rules override_dh_auto_install make[1]: Entering directory '/<>' make install \ DESTDIR=/debian/defendguin \ BIN_PREFIX=debian/defendguin/usr/games \ MAN_PREFIX=debian/defendguin/usr/share \ DATA_PREFIX=debian/defendguin/usr/share/games/defendguin/ make[2]: Entering directory '/<>' install -d debian/defendguin/usr/share/games/defendguin/ cp -R data/* debian/defendguin/usr/share/games/defendguin/ chmod -R a+rX,g-w,o-w debian/defendguin/usr/share/games/defendguin/ cp defendguin debian/defendguin/usr/games/ cp: cannot create regular file 'debian/defendguin/usr/games/': Not a directory Makefile:40: recipe for target 'install' failed make[2]: *** [install] Error 1 make[2]: Leaving directory '/<>' debian/rules:14: recipe for target 'override_dh_auto_install' failed make[1]: *** [override_dh_auto_install] Error 2 make[1]: Leaving directory '/<>' debian/rules:8: recipe for target 'binary-indep' failed make: *** [binary-indep] Error 2 dpkg-buildpackage: error: fakeroot debian/rules binary-indep gave error exit status 2 Sorry not to have a fix, as I am reporting many bugs similar to this one, but I can give some general hints: * If all the arch-independent packages are dummy transitional packages released with jessie, the easy fix is to drop them now. * If not, debian/rules should be modified so that the binary-indep target works in all cases, even when binary-arch is not used (this is what the "Architecture: all" autobuilder does). For that: * If you are using debhelper, you might want to use options -a and -i for dh_* commands so that they do not act on packages they do not have to act. * Also, if you are using dh, the (independently) optional targets override_dh_foo-arch and override_dh_foo-indep (for several values of "foo") may be useful to write a debian/rules which behaves exactly as desired. After checking that both "dpkg-buildpackage -A" and "dpkg-buildpackage -B" work properly, this package will be suitable to be uploaded in source-only form if you wish (you might want to try it). Thanks.