#1012252 debhelper: execute_after not executed for binary-indep build

Package:
debhelper
Source:
debhelper
Submitter:
Drew Parsons
Date:
2022-06-04 09:15:05 UTC
Severity:
serious
Tags:
#1012252#5
Date:
2022-06-02 07:59:16 UTC
From:
To:
fenics-basix 0.4.2-1exp1 is currently failing to build in a
binary-indep build, see
https://buildd.debian.org/status/logs.php?pkg=fenics-basix&arch=all

The problem occurs when building docs in an
execute_before_dh_install-indep rule.  The doc build (via sphinx)
expects the basix python module to have been built.  The rules file is
available at
https://tracker.debian.org/media/packages/f/fenics-basix/rules-0.4.2-1exp1

The python module build is supposed to have been performed already in
an execute_after_dh_auto_install rule (after dh_auto_install has put
the libbasix.so shared library in place).

We can see in the binary-indep log at
https://buildd.debian.org/status/fetch.php?pkg=fenics-basix&arch=all&ver=0.4.2-1exp1&stamp=1654102080&raw=0
that libbasix.so did get built by the override_dh_auto_build rule, and
got installed by dh_auto_install -i.

But after dh_auto_install -i, the next rule that gets run is
execute_before_dh_install-indep.  execute_after_dh_auto_install never
gets run.

This doesn't meet the intention of the rules file.
execute_after_dh_auto_install should be run after dh_auto_install,
with or without the -i flag, shouldn't it?

In particular, dh --no-act indicates it should have been executed:

$ dh binary-indep --no-act
   dh_testroot -i
   dh_prep -i
   dh_installdirs -i
   dh_auto_install -i
   debian/rules execute_after_dh_auto_install
   debian/rules execute_before_dh_install-indep
   dh_install -i
   dh_installdocs -i
   ...


So it looks like a bug in dh during actual execution, that the
execute_after_dh_auto_install rule is not getting executed.

This bug is blocking #1012022, which is Severity: serious (FTBFS),
hence I'm marking this bug Severity: serious (FTBFS) to match.

#1012252#12
Date:
2022-06-04 07:17:21 UTC
From:
To:
Drew Parsons:

Hi,

The bug report contains inconsistent information.

The bug report says and includes a dh --no-act that implies there is a
rule called "execute_after_dh_auto_install" in debian/rules.

However, the rules files provided via
"https://tracker.debian.org/media/packages/f/fenics-basix/rules-0.4.2-1exp1"
does *not* have that rule.  Instead it has the
"execute_after_dh_auto_install-arch" rule, which would explain a lot of
the issues you are reporting.

If you have linked to the wrong debian/rules file, then please provide
an updated link.

Thanks,
~Niels

#1012252#19
Date:
2022-06-04 07:17:21 UTC
From:
To:
Drew Parsons:

Hi,

The bug report contains inconsistent information.

The bug report says and includes a dh --no-act that implies there is a
rule called "execute_after_dh_auto_install" in debian/rules.

However, the rules files provided via
"https://tracker.debian.org/media/packages/f/fenics-basix/rules-0.4.2-1exp1"
does *not* have that rule.  Instead it has the
"execute_after_dh_auto_install-arch" rule, which would explain a lot of
the issues you are reporting.

If you have linked to the wrong debian/rules file, then please provide
an updated link.

Thanks,
~Niels

#1012252#24
Date:
2022-06-04 09:10:04 UTC
From:
To:
...


You're absolutely right.  I thought I had checked that.  I had removed
the -arch locally but got confused about which release I put that change
into.  I apologize for the distraction.

Drew