Niels Thykier: > Sven Joachim: >> On 2018-01-21 23:24 +0200, Adrian Bunk wrote: >> >>> On Fri, Jan 19, 2018 at 07:51:00PM +0000, Niels Thykier wrote: >>>> ... >>>> The question now is: How many packages are affected by it? If it is >>>> sufficiently low, it might be worth doing the clean up now to simplify >>>> packaging in general. But in worst case, we will have to revert for now >>>> and reintroduce this to compat 12. >>> >>> My current list for "builds with 11 and FTBFS with 11.1.3" is: >>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/apr.html >>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/ck.html >>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/cpputest.html >>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/debian-handbook.html >>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/iaxmodem.html >>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/moarvm.html >>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/openal-soft.html > [...] >>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/jscommunicator.html > [...] > > Indeed; all of these just have a .PHONY build target and nothing else > (i.e. they won't also hit #887482 AFAICT). They all basically just want > debhelper to ignore the explicit target and inline the sequence. > > I will dig a bit in the code >
I have been evaluating it: While I can probably work around it in debhelper, the work around would be wrong (FTR, the original behaviour was as well). My conclusion is therefore that we have to fix the packages individually (or stop using make for d/rules, which is a less realistic solution in the short term as we do not have a useful replacement). My rationale for saying that the work around is wrong is that the build target "SHOULD" be doing the build. But if I work around it, the build will be deferred and instead happen during the binary target (for a -b build), which implies that the build (plus tests) are now run as (fake)root by default (R³ being a potential mitigation here). Furthermore, this work around cannot be applies to any of the binary target as they would still break. This leads to an asymmetric setup where some targets still work if they are empty PHONY targets while others do not. >>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/biojava-live.html >> >> This ends in >> >> ,---- >> | dh_installdocs >> | make[1]: Leaving directory '/build/1st/biojava-live-1.7.1' >> | dpkg-genbuildinfo --build=binary >> | dpkg-genbuildinfo: error: binary build with no binary artifacts found; >> .buildinfo is meaningless >> | dpkg-buildpackage: error: dpkg-genbuildinfo --build=binary subprocess >> returned exit status 25 >> `---- >> >> In other words, dh_installdeb was not run, apparently because there is a >> broken >> explicit rule for the binary-indep target. >> > > The rule being: > > [...] > > So yes, that is rather incomplete. It was probably saved by #880840 > previously. > I filed #888023 for this. > [... the rest have a separate debhelper bug or have been resolved ...] Thanks, ~Niels