• [gentoo-dev] [PATCH] autotools.eclass: Run eautoheader with --force

    From YiFei Zhu@21:1/5 to All on Fri Sep 13 09:40:01 2024
    From: YiFei Zhu <zhuyifei1999@gmail.com>

    To quote Eli [1] (I can't explain it better than this):

    autotools.eclass runs autoheader without options (and in
    particular without --force). This will only remake config.h.in
    if there are actual changes to the content, which in turn means
    that it will be out of date compared to aclocal.m4 (which we very
    much expect to have changes).

    So `make` sees that the header is out of date, and runs autoheader
    yet again, this time updating the timestamp for `make` purposes.

    This causes QA warning that "maintainer mode" is detected.

    autoheader and autoconf added --force option at the same time [2],
    so no reason only autoconf has that option in the eclass and not
    autoheader.

    Like, autoconf, a check on WANT_AUTOCONF != 2.1 is added because the
    feature was added in autoconf 2.52.

    [1] https://bugs.gentoo.org/939468#c6
    [2] https://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=dbf7fc61

    Closes: https://bugs.gentoo.org/939468
    Closes: https://bugs.gentoo.org/939535
    Signed-off-by: YiFei Zhu <zhuyifei1999@gmail.com>
    ---
    eclass/autotools.eclass | 8 +++++++-
    1 file changed, 7 insertions(+), 1 deletion(-)

    diff --git a/eclass/autotools.eclass b/eclass/autotools.eclass
    index 0571b18ba525..641612f37193 100644
    --- a/eclass/autotools.eclass
    +++ b/eclass/autotools.eclass
    @@ -312,7 +312,13 @@ eautoreconf() {
    else
    eautoconf --force
    fi
    - [[ ${AT_NOEAUTOHEADER} != "yes" ]] && eautoheader
    + if [[ ${AT_NOEAUTOHEADER} != "yes" ]] ; then
    + if [[ ${WANT_AUTOCONF} == "2.1" ]] ; then
    + eautoheader
    + else
    + eautoheader --force
    + fi
    + fi
    [[ ${AT_NOEAUTOMAKE} != "yes" ]] && FROM_EAUTORECONF="yes" eautomake ${AM_OPTS}

    if [[ ${AT_NOELIBTOOLIZE} != "yes" ]] ; then
    --
    2.46.0.662.g92d0881bb0-goog

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)