[debhelper-devel] Bug#863887: Bug#863887: debhelper: not running autoreconf anymore with compat level 9

Niels Thykier niels at thykier.net
Thu Jun 1 18:20:00 UTC 2017


Iain Lane:
> On Thu, Jun 01, 2017 at 03:23:19PM +0000, Gianfranco Costamagna wrote:
>> Source: debhelper
>>
>> Version: 10.4
>> Severity: serious
>> Justification: breaks compat level 9 autoreconf feature
>>
>>
>> Hello, 
>> as said, using debhelper 10.4 breaks my boinc builds,
>> because dh_autoreconf is not run automatically anymore
>> see this build log:
>> https://launchpadlibrarian.net/322079774/buildlog_ubuntu-artful-amd64.boinc_7.7.0+dfsg~git20170601+r23738~r7~ubuntu17.10.1_BUILDING.txt.gz
>> or this one:
>> http://debomatic-amd64.debian.net/distribution#experimental/boinc/7.6.33+dfsg-12/buildlog
>>
>> compat level used is 9,
>> we have --with autoreconf
>> and an override_dh_autoreconf call.
>>
>> please, ask me more details if you want, I'll do my best to give them to you :)
> 
> It's caused by 80c955221e83327efb984845f59648678c729978.
> 
> boinc has an empty override_dh_autoreconf-indep target. Before this
> commit we would run dh_autoreconf -Nboinc - because the else branch
> inside the foreach loop would put the package name in @rest and -Nboinc
> in @options which causes the calling code to call dh_autoreconf. Now,
> because we skip the foreach loop entirely due to the empty target, the
> parameters are never constructed and we simply skip over dh_autoreconf.
> 
> Unless you have a better idea, I think that commit should be reverted.
> The loop is still required for empty -arch and -indep targets to
> construct the -N options.
> 
> [...]

Thanks for tracking the bug to the commit.

I think a trivial fix for this will be to merge the two "if"-statements:

"""
  if (defined $override_type) {
    if ($has_explicit_target) {
"""

To

"""
  if ($has_explicit_target or defined(override_type)) {
"""


That should enable "free" overrides when it is necessary to completely
discard a command.

Additionally, there is another patch lying around that might make it
easier to run the inner loop (by replacing package_arch with an
"package_is_arch_all").  That should make -indep/-arch reasonable cheap
as well

Thanks,
~Niels




More information about the debhelper-devel mailing list