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