Subject: modernize bootstrap.conf
From: Bruno Haible <[email-masked]>
To: [email-masked]
Date: Sun, 24 Jul 2022 21:50:10 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

The 'bootstrap' script from Gnulib has been reorganized to work in two phases:
  (1) Fetch auxiliary files that are not in the git checkout.
      This is the part that requires network access and that has
      supply-chain concerns.
  (2) Generate files such as configure, config.h, Makefile.in etc.
      This includes running gnulib-tool.

See <https://lists.gnu.org/archive/html/bug-gnulib/2022-07/msg00053.html> for
details.

For GNU gzip some adjustment of the bootstrap.conf is needed. The bootstrap.conf
is meant to contain configuration settings, that is, define variables and
functions (hooks with special meanings). Instead, gzip/bootstrap.conf does some
actions directly. This will not work satisfactorily with the new two-phase
bootstrap. What is needed, is to move these actions into hooks:
  - Actions that may require network access belong in the
    bootstrap_post_pull_hook function.
  - Actions that merely regenerate files (without network access) usually
    belong in the bootstrap_post_import_hook.

The 'mkdir -p build-aux' is not needed any more. I verified that.

The lines

  # Automake requires that ChangeLog exist.
  touch ChangeLog || exit 1

can be moved into the bootstrap_post_import_hook function.

Bruno