build: Set minimum Automake version to 1.13 #18290

pull hebasto wants to merge 1 commits into bitcoin:master from hebasto:20200307-automake-version changing 1 files +2 −2
  1. hebasto commented at 4:12 PM on March 7, 2020: member

    This PR suggests to set the required minimum Automake version to 1.13 explicitly for the following reasons:

    • it guarantees that CVE-2012-3386 has been fixed
    • AC_CONFIG_MACRO_DIR macro support, which we already use; from the release notes:

    Improvements to aclocal and related rebuilds rules:

    • Autoconf-provided macros AC_CONFIG_MACRO_DIR and AC_CONFIG_MACRO_DIRS are now traced by aclocal, and can be used to declare the local m4 include directories. Formerly, one had to specify it with an explicit '-I' option to the 'aclocal' invocation.
    • AM_SILENT_RULES macro support (since version 1.11)

    Automake 1.13 requires Autoconf 2.65 or greater. We already have 2.69 since #17769.


    For reference, Automake 1.13 was released in December of 2012.

    CentOS 7 uses Automake 1.13.4

    See the Automake docs for more info:

  2. build: Set minimum Automake version to 1.13 ddc7e42d60
  3. practicalswift commented at 4:30 PM on March 7, 2020: contributor

    Concept ACK

  4. DrahtBot added the label Build system on Mar 7, 2020
  5. kallewoof commented at 5:13 AM on March 8, 2020: member

    Concept ACK

  6. fanquake approved
  7. fanquake commented at 7:08 AM on March 11, 2020: member

    ACK ddc7e42d600a0cb3e763cda0dc04a1f2f34e9440 - I think adding a minimum required version here is fine. I'd be surprised if someone who is currently building Bitcoin Core was unable to after this change.

    I had a quick look to check that operating systems we support (even those older than we do) have at least automake >=1.13.x:

    Alpine 3.9: 1.16.1
    Debian 7: 1.14.1
    Ubuntu 14.04: 1.14.1
    Fedora 30: 1.16.1
    OpenBSD 6.0: 1.15
    FreeBSD 11: 1.16.1
    NetBSD 7: 1.16.1
    

    To address the points in the PR description:

    it guarantees that CVE-2012-3386 has been fixed

    This is a locally exploitable race, which requires you to already be sharing a filesystem with the attacker when you run make distcheck.

    AC_CONFIG_MACRO_DIR macro support, which we already use;

    I'm not quite sure why you've highlighted this. UsingAC_CONFIG_MACRO_DIR works fine when using automake <1.13, as long as you're passing -I build-aux/m4 to aclocal. Which we do i.e: Makefile.am.

    I tested on OpenBSD that using automake 1.12.6 works with master (b5c7665e3083f5daaf2b9f247a59a008f2d689a4). It blows up if you remove -I build-aux/m4:

    export AUTOMAKE_VERSION=1.12 
    bazinga# ./autogen.sh                                                                                                 
    libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'.
    libtoolize: copying file `build-aux/ltmain.sh'
    ....
    libtoolize: copying file `build-aux/m4/ltversion.m4'
    libtoolize: copying file `build-aux/m4/lt~obsolete.m4'
    libtoolize: Consider adding `-I build-aux/m4' to ACLOCAL_AMFLAGS in Makefile.am.
    configure.ac:236: error: possibly undefined macro: AC_MSG_ERROR
          If this token and others are legitimate, please use m4_pattern_allow.
          See the Autoconf documentation.
    configure.ac:322: error: possibly undefined macro: AC_LANG_PROGRAM
    configure.ac:518: error: possibly undefined macro: AC_CHECK_LIB
    configure.ac:1251: error: possibly undefined macro: PKG_CHECK_MODULES
    configure.ac:1277: error: possibly undefined macro: AC_CHECK_HEADER
    autoreconf-2.69: /usr/local/bin/autoconf-2.69 failed with exit status: 1
    
  8. laanwj commented at 3:30 PM on March 11, 2020: member

    Concept ACK on setting a minimum automake version. No opinion on which one, though looking at @fanquake's list 1.13 seems to be acceptable. so also ACK ddc7e42d600a0cb3e763cda0dc04a1f2f34e9440

  9. laanwj merged this on Mar 11, 2020
  10. laanwj closed this on Mar 11, 2020

  11. hebasto deleted the branch on Mar 11, 2020
  12. sidhujag referenced this in commit 3d70d6cd40 on Mar 11, 2020
  13. sidhujag referenced this in commit 523d83911e on Nov 10, 2020
  14. PastaPastaPasta referenced this in commit 5aa2fea401 on Jun 27, 2021
  15. PastaPastaPasta referenced this in commit cbaae225d8 on Jun 28, 2021
  16. PastaPastaPasta referenced this in commit a0b16543ef on Jun 29, 2021
  17. PastaPastaPasta referenced this in commit f2836e5b64 on Jul 1, 2021
  18. PastaPastaPasta referenced this in commit c29a932c9f on Jul 1, 2021
  19. PastaPastaPasta referenced this in commit 2f4413304f on Jul 14, 2021
  20. DrahtBot locked this on Feb 15, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-24 21:14 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me