Bug#887688: debhelper: empty build of src:ck

2018-02-11 Thread Niels Thykier
Adrian Bunk:
>  [...]
>> Overview of the packages mentioned in this bug report
>> =
> 
> Thanks a lot for doing this.
> 

:)

>> Packages that has an open RC bug related to this issue:
>>
>>  * apr: #888593 (patch)
>>  * ck: #888591 (patch)
>>  * cpputest: #888598 (patch)

NB: cpputest is now fixed.

>>  * debian-handbook: #888578 (patch)
>>  * iaxmodem: #888601 (patch)
>>  * moarvm: #888582 (patch)
>>  * jscommunicator: #888579 (patch)
>>  * libtemplate-perl: #888663 (patch)
>>  * monotone: #888612 (patch)
>> ...
> 
> One new .PHONY case that needs a bug:
>   
> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/apr-util.html
> 
> [...]

Filed as #890108.  Discovered a "hidden" FTBFS beneath that bug as there
is also a test failure in apr-util's test suite.  My patch(es) does not
attempt to solve that problem; they are limited to the debhelper part of
the problem.

Thanks,
~Niels



Bug#887688: [debhelper-devel] Bug#887688: debhelper: empty build of src:ck

2018-01-31 Thread Adrian Bunk
On Wed, Jan 31, 2018 at 07:11:00PM +, Niels Thykier wrote:
> clone 887688 -1
> retitle -1 debhelper: dh_makeshlibs --no-act isn't and causes FTBFS
> tags 887688 pending
> thanks
> 
> Hi,
> 
> Assuming I have not overlooked something, then I believe this bug is now
> resolved in debhelper and will close it in a few days.  This is because:
> 
>  * I have filed bugs for all known packages that currently FTBFS due to
>empty or incomplete targets (usually caused by .PHONY).  Most of
>these have a patch attached.
> 
>  * The autoreconf related issue was solved in dh-autoreconf/16, which
>solved the problems in some of the originally listed packages.
>(See #887482)
> 
>  * There was a regression in the --no-act that caused a single FTBFS.
>This has a patch in debhelper master that has yet to be uploaded
>(I just cloned this bug for that purpose).
> 
> 
> Overview of the packages mentioned in this bug report
> =

Thanks a lot for doing this.

> Packages that has an open RC bug related to this issue:
> 
>  * apr: #888593 (patch)
>  * ck: #888591 (patch)
>  * cpputest: #888598 (patch)
>  * debian-handbook: #888578 (patch)
>  * iaxmodem: #888601 (patch)
>  * moarvm: #888582 (patch)
>  * jscommunicator: #888579 (patch)
>  * libtemplate-perl: #888663 (patch)
>  * monotone: #888612 (patch)
>...

One new .PHONY case that needs a bug:
  
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/apr-util.html

> Thanks,
> ~Niels

Thanks
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Processed: Re: [debhelper-devel] Bug#887688: debhelper: empty build of src:ck

2018-01-31 Thread Debian Bug Tracking System
Processing commands for cont...@bugs.debian.org:

> clone 887688 -1
Bug #887688 [debhelper] debhelper: empty build of src:ck
Bug 887688 cloned as bug 888974
> retitle -1 debhelper: dh_makeshlibs --no-act isn't and causes FTBFS
Bug #888974 [debhelper] debhelper: empty build of src:ck
Changed Bug title to 'debhelper: dh_makeshlibs --no-act isn't and causes FTBFS' 
from 'debhelper: empty build of src:ck'.
> tags 887688 pending
Bug #887688 [debhelper] debhelper: empty build of src:ck
Added tag(s) pending.
> thanks
Stopping processing here.

Please contact me if you need assistance.
-- 
887688: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=887688
888974: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=888974
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#887688: [debhelper-devel] Bug#887688: debhelper: empty build of src:ck

2018-01-31 Thread Niels Thykier
clone 887688 -1
retitle -1 debhelper: dh_makeshlibs --no-act isn't and causes FTBFS
tags 887688 pending
thanks

Hi,

Assuming I have not overlooked something, then I believe this bug is now
resolved in debhelper and will close it in a few days.  This is because:

 * I have filed bugs for all known packages that currently FTBFS due to
   empty or incomplete targets (usually caused by .PHONY).  Most of
   these have a patch attached.

 * The autoreconf related issue was solved in dh-autoreconf/16, which
   solved the problems in some of the originally listed packages.
   (See #887482)

 * There was a regression in the --no-act that caused a single FTBFS.
   This has a patch in debhelper master that has yet to be uploaded
   (I just cloned this bug for that purpose).


Overview of the packages mentioned in this bug report
=

Packages that has an open RC bug related to this issue:

 * apr: #888593 (patch)
 * ck: #888591 (patch)
 * cpputest: #888598 (patch)
 * debian-handbook: #888578 (patch)
 * iaxmodem: #888601 (patch)
 * moarvm: #888582 (patch)
 * jscommunicator: #888579 (patch)
 * libtemplate-perl: #888663 (patch)
 * monotone: #888612 (patch)

Packages that were affected and have now been fixed:

 * openal-soft: Already fixed by smcv
 * biojava-live: Already fixed by the maintainer
 * cysignals: Already fixed by the maintainer

Packages with unrelated issues or that were fixed by changes in other
packages:

 * jansson: Fixed in dh-autoreconf/16
 * scidavis: Will move to the cloned bug

Thanks,
~Niels



Bug#887688: debhelper: empty build of src:ck

2018-01-23 Thread Sven Joachim
On 2018-01-23 11:28 +, Simon McVittie wrote:

>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/libtemplate-perl.html
>
> Doesn't look the same to me, perhaps some separate regression involving
> --before/--remaining:
>
>  debian/rules build
> dh build --before dh_auto_configure
> dh: The --before option is deprecated. Use override targets instead.
>dh_update_autotools_config
> [ ! -f /build/1st/libtemplate-perl-2.24/lib/Template/Config.pm.orig ] && cp 
> /build/1st/libtemplate-perl-2.24/lib/Template/Config.pm 
> /build/1st/libtemplate-perl-2.24/lib/Template/Config.pm.orig
> dh build --remaining
> dh: The --remaining option is deprecated. Use override targets instead.

I think the difference is that "dh binary" now runs "debian/rules build"
again (haven't investigated why), and the package's buildsystem is buggy
and fails if "debian/rules build" is run more than once, at least
without cleaning in between.

>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/monotone.html
>
> New and exciting weirdness, but possibly also only worked in the past
> because of #880840 having not been fixed:
>
>debian/rules build
> make[1]: Entering directory '/build/1st/monotone-1.1'
> The build target is disabled, please use the appropriate binary target.
>
> (And yet it uses the same override_dh_auto_build for both, so this hack
> from 2007 is almost certainly wrong. I suspect that a rules file with
> a working build target would be considerably shorter than the comment
> that explains what is going on here...)

That rules file was surely written before dpkg-buildpackage gained
support for the build-arch and build-indep targets (#229357).

Cheers,
   Sven



Bug#887688: debhelper: empty build of src:ck

2018-01-23 Thread Simon McVittie
On Tue, 23 Jan 2018 at 09:04:33 +0200, Adrian Bunk wrote:
> More debhelper 11 -> 11.1.3 FTBFS

> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/cysignals.html

Probably the same root cause as #887688 and #887664:

 debian/rules build
make: Nothing to be done for 'build'.

> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/libtemplate-perl.html

Doesn't look the same to me, perhaps some separate regression involving
--before/--remaining:

 debian/rules build
dh build --before dh_auto_configure
dh: The --before option is deprecated. Use override targets instead.
   dh_update_autotools_config
[ ! -f /build/1st/libtemplate-perl-2.24/lib/Template/Config.pm.orig ] && cp 
/build/1st/libtemplate-perl-2.24/lib/Template/Config.pm 
/build/1st/libtemplate-perl-2.24/lib/Template/Config.pm.orig
dh build --remaining
dh: The --remaining option is deprecated. Use override targets instead.

> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/monotone.html

New and exciting weirdness, but possibly also only worked in the past
because of #880840 having not been fixed:

   debian/rules build
make[1]: Entering directory '/build/1st/monotone-1.1'
The build target is disabled, please use the appropriate binary target.

(And yet it uses the same override_dh_auto_build for both, so this hack
from 2007 is almost certainly wrong. I suspect that a rules file with
a working build target would be considerably shorter than the comment
that explains what is going on here...)

smcv



Bug#887664: [debhelper-devel] Bug#887688: Bug#887688: debhelper: empty build of src:ck

2018-01-23 Thread Simon McVittie
On Mon, 22 Jan 2018 at 19:31:00 +, Niels Thykier wrote:
> 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).

Ack. I've already done that in openal-soft, which might
be a useful template for any that haven't been done yet:
https://anonscm.debian.org/cgit/pkg-games/openal-soft.git/commit/?id=a12165566d65b15016677116d93db548861b5479

> 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

Right. That seems reasonable: older debhelper's willingness to do the
actual build "just in time" during binary was masking the bug.

It's a little unfortunate that reproducible builds and the
production buildds are testing different code paths (build vs.
build-arch/build-indep) - on one hand it means we have coverage for both,
but on the other hand it means the reproducible builds infrastructure
never actually tests that what buildds do is reproducible. Perhaps
reproducible-builds' "build2" should do the arch and indep builds (if both
are supported) separately, like what happens on the production buildds?
I'll open a wishlist bug for that.

smcv



Bug#887664: [debhelper-devel] Bug#887688: Bug#887688: debhelper: empty build of src:ck

2018-01-22 Thread Adrian Bunk
More debhelper 11 -> 11.1.3 FTBFS:
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/cysignals.html
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/libtemplate-perl.html
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/monotone.html


cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Bug#887664: [debhelper-devel] Bug#887688: Bug#887688: debhelper: empty build of src:ck

2018-01-22 Thread Niels Thykier
Niels Thykier:
> Sven Joachim:
>> On 2018-01-21 23:24 +0200, Adrian Bunk wrote:
>>
>>> On Fri, Jan 19, 2018 at 07:51:00PM +, 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



Bug#887664: [debhelper-devel] Bug#887688: debhelper: empty build of src:ck

2018-01-21 Thread Niels Thykier
Sven Joachim:
> On 2018-01-21 23:24 +0200, Adrian Bunk wrote:
> 
>> On Fri, Jan 19, 2018 at 07:51:00PM +, 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

>> 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:

"""
> binary-indep: build install
>   dh_testdir
>   dh_testroot
>   dh_installchangelogs 
>   dh_installdocs
"""

So yes,  that is rather incomplete.  It was probably saved by #880840
previously.

>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/jansson.html
> 
> [...]
> which seems to have a similar cause as #887482.
> 

Indeed.  The package uses a work around for #836699 that now triggers
this issue.  Let's keep the discussion for these problems in #887482.

>> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/scidavis.html
> 
> Failed because 'dh_makeshlibs --no-act' returned an error.  Niels might
> know why this is now the case and used to be different.
> 
> Cheers,
>Sven
> 
> [...]

Bug in --no-act code; fixed in master now - thanks for spotting it. :)

Thanks,
~Niels



Bug#887664: Bug#887688: debhelper: empty build of src:ck

2018-01-21 Thread Sven Joachim
On 2018-01-21 23:24 +0200, Adrian Bunk wrote:

> On Fri, Jan 19, 2018 at 07:51:00PM +, 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

Those all seem to have the same problem mentioned by Simon: a build/
directory exists, the build target is phony in debian/rules, but there
is no explicit build rule.

> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/jscommunicator.html

Here make also considers that there is nothing to be done for 'build', but
this time there is no build directory in the source package.  Huh?

> 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.

> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/jansson.html

Here the error is

,
| make[1]: Leaving directory '/build/1st/jansson-2.10'
|dh_update_autotools_config -Nlibjansson-doc
|dh_autoreconf -Nlibjansson-doc
| dh_autoreconf: Can only be run once, see dh-autoreconf(7)
| debian/rules:11: recipe for target 'build' failed
`

which seems to have a similar cause as #887482.

> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/scidavis.html

Failed because 'dh_makeshlibs --no-act' returned an error.  Niels might
know why this is now the case and used to be different.

Cheers,
   Sven



Bug#887688: [debhelper-devel] Bug#887688: debhelper: empty build of src:ck

2018-01-21 Thread Adrian Bunk
On Fri, Jan 19, 2018 at 07:51:00PM +, 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/biojava-live.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/jansson.html
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/jscommunicator.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/scidavis.html

This list might not be complete, but I'd expect it to stay < 20.

This list is "builds with 11 and FTBFS with 11.1.3",
no effort has been made to check whether it is all the same problem.

> Thanks,
> ~Niels

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Bug#887664: [debhelper-devel] Bug#887688: debhelper: empty build of src:ck

2018-01-19 Thread Niels Thykier
Simon McVittie:
> On Fri, 19 Jan 2018 at 06:29:18 +0200, Adrian Bunk wrote:
>>  debian/rules build
>> make: Nothing to be done for 'build'.
> 
> I think this is probably the same thing as openal-soft bug
> . Both packages
> have:
> 
> * a build/ directory in the upstream source
> * ".PHONY: build" in d/rules
> * no explicit build target in d/rules, only the usual "%:" implicit rule
> 
> My theory is that this regressed as a result of
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=880840
> having been fixed.
> 
> In https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=880840#20,
> James Cowgill wrote:
>> Make ignores implicit rules (like %: dh $@) for phony targets.
> 
> So the maintainers of these packages thought they had solved the problem
> by adding ".PHONY: build", but when they moved from an explicit build
> target to dh minimized style, they broke that assumption; but then their
> packages built successfully anyway, because they were using a version of
> debhelper that had #880840, so the contents of the build sequence were
> redundantly invoked. We can see this happening in reproducible-builds'
> builds of ck and openal-soft on buster, with:
> 
>> [...]
> 
> (It looks as though the entire build for openal-soft was done under
> fakeroot as a result of this, which isn't great for robustness.)
> 

Indeed; prior to debhelper/11.1 they were failing the "should"
requirement of having the "build" target build the package.  It would
happen anyway because the "binary" target (called under fake(root))
would incorrectly inline the build-arch and build-indep sequence.

Obviously, buildds would be completely unaffected as they never use
"build" or "binary".

> Debhelper maintainers: do you consider this to be something that should
> be addressed in debhelper, or in the affected packages like ck and
> openal-soft?
> 
> smcv
> 
> [...]

I am not comfortable adding additional layers of complexity to the
makefile parsing if I can at all avoid it.  In all cases, packages
relying on this will eventually have to fix it.
  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.

Thanks,
~Niels



Bug#887664: Bug#887688: debhelper: empty build of src:ck

2018-01-19 Thread Simon McVittie
On Fri, 19 Jan 2018 at 06:29:18 +0200, Adrian Bunk wrote:
>  debian/rules build
> make: Nothing to be done for 'build'.

I think this is probably the same thing as openal-soft bug
. Both packages
have:

* a build/ directory in the upstream source
* ".PHONY: build" in d/rules
* no explicit build target in d/rules, only the usual "%:" implicit rule

My theory is that this regressed as a result of
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=880840
having been fixed.

In https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=880840#20,
James Cowgill wrote:
> Make ignores implicit rules (like %: dh $@) for phony targets.

So the maintainers of these packages thought they had solved the problem
by adding ".PHONY: build", but when they moved from an explicit build
target to dh minimized style, they broke that assumption; but then their
packages built successfully anyway, because they were using a version of
debhelper that had #880840, so the contents of the build sequence were
redundantly invoked. We can see this happening in reproducible-builds'
builds of ck and openal-soft on buster, with:

> dh clean
>dh_clean
>  debian/rules build
> make: Nothing to be done for 'build'.
>  fakeroot debian/rules binary
> dh binary
>debian/rules build
> make[1]: Entering directory '/build/ck-0.6.0'
> make[1]: Nothing to be done for 'build'.
> make[1]: Leaving directory '/build/ck-0.6.0'
>dh_update_autotools_config
>dh_autoreconf
>debian/rules override_dh_auto_configure
> make[1]: Entering directory '/build/ck-0.6.0'
> ./configure   \
> ...

and

> dpkg-buildpackage: info: host architecture amd64
>  fakeroot debian/rules clean
> dh clean --builddirectory=/build/openal-soft-1.18.2/build-tree
>debian/rules override_dh_auto_clean
> make[1]: Entering directory '/build/openal-soft-1.18.2'
> rm -rf /build/openal-soft-1.18.2/build-tree
> make[1]: Leaving directory '/build/openal-soft-1.18.2'
>dh_clean -O--builddirectory=/build/openal-soft-1.18.2/build-tree
>  debian/rules build
> make: Nothing to be done for 'build'.
>  fakeroot debian/rules binary
> dh binary --builddirectory=/build/openal-soft-1.18.2/build-tree
>debian/rules build
> make[1]: Entering directory '/build/openal-soft-1.18.2'
> make[1]: Nothing to be done for 'build'.
> make[1]: Leaving directory '/build/openal-soft-1.18.2'
>dh_update_autotools_config 
> -O--builddirectory=/build/openal-soft-1.18.2/build-tree
>dh_autoreconf -O--builddirectory=/build/openal-soft-1.18.2/build-tree
>debian/rules override_dh_auto_configure

(It looks as though the entire build for openal-soft was done under
fakeroot as a result of this, which isn't great for robustness.)

Debhelper maintainers: do you consider this to be something that should
be addressed in debhelper, or in the affected packages like ck and
openal-soft?

smcv



Bug#887688: debhelper: empty build of src:ck

2018-01-18 Thread Adrian Bunk
Package: debhelper
Version: 11.1.2
Severity: serious
Control: affects -1 src:ck

https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/ck.html

...
dh clean
   dh_clean
 debian/rules build
make: Nothing to be done for 'build'.
 fakeroot debian/rules binary
dh binary
   debian/rules build
make[1]: Entering directory '/build/1st/ck-0.6.0'
make[1]: Nothing to be done for 'build'.
make[1]: Leaving directory '/build/1st/ck-0.6.0'
   dh_testroot
   dh_prep
   dh_install
dh_install: Cannot find (any matches for) "usr/lib/*/lib*.so.*" (tried in ., 
debian/tmp)

dh_install: libck0 missing files: usr/lib/*/lib*.so.*
dh_install: Cannot find (any matches for) "usr/include" (tried in ., debian/tmp)

dh_install: libck-dev missing files: usr/include
dh_install: Cannot find (any matches for) "usr/lib/*/lib*.so" (tried in ., 
debian/tmp)

dh_install: libck-dev missing files: usr/lib/*/lib*.so
dh_install: Cannot find (any matches for) "usr/lib/*/pkgconfig" (tried in ., 
debian/tmp)

dh_install: libck-dev missing files: usr/lib/*/pkgconfig
dh_install: Cannot find (any matches for) "usr/share/man" (tried in ., 
debian/tmp)

dh_install: libck-dev missing files: usr/share/man
dh_install: missing files, aborting
debian/rules:15: recipe for target 'binary' failed
make: *** [binary] Error 25


Works after downgrading to debhelper 11