On 7/24/22 16:18, Bruno Haible wrote:
For (a), everything works already. The old 'bootstrap' script has
hardwired code to fetch gnulib/build-aux/bootstrap. This gets executed,
and this intermediate, not really functional 'bootstrap' script gets
copied into the package and gets executed. It notices that the 3
companion files are still missing, copies the 4 files into the package,
and re-execs the (now fully functional) 'bootstrap'. In other words,
the only purpose of the gnulib/build-aux/bootstrap is a trampoline
to fetch the other files.
Unfortunately that didn't work for me when I tried it with GNU Tar,
which led to some of my confusion.
Here's how I can reproduce the problem, starting with a fresh checkout
of the latest GNU Tar (commit 5c4f8cadbd362497dc3c3136566589557ce00f1b).
The following commands replace Tar's 'bootstrap' (which is
top/bootstrap) with build-aux/bootstrap, removes the files that are
supposed to be fetched automatically, and then runs ./bootstrap which
fails because the files are not fetched automatically.
$ cp $HOME/src/gnu/gnulib/build-aux/bootstrap .
$ rm autogen.sh autopull.sh bootstrap-funclib.sh
$ ./bootstrap
grep: paxutils/gnulib.modules: No such file or directory
./bootstrap: Bootstrapping from checked-out tar sources...
./bootstrap: line 793: ./autopull.sh: No such file or directory
./bootstrap: autopull.sh failed.
(The "grep:" diagnostic is an annoyance that I haven't bothered to get
to the bottom of; it is output even if I omit the "rm" command which
causes the bootstrap to succeed.)
Perhaps I'm doing something wrong in tar/bootstrap.conf? It wasn't
entirely clear to me which actions should go into which hooks.