GNU bug report logs - #56749
modernize bootstrap.conf

Previous Next

Package: gzip;

Reported by: Bruno Haible <bruno <at> clisp.org>

Date: Sun, 24 Jul 2022 19:51:01 UTC

Severity: normal

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 56749 in the body.
You can then email your comments to 56749 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gzip <at> gnu.org:
bug#56749; Package gzip. (Sun, 24 Jul 2022 19:51:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bruno Haible <bruno <at> clisp.org>:
New bug report received and forwarded. Copy sent to bug-gzip <at> gnu.org. (Sun, 24 Jul 2022 19:51:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Bruno Haible <bruno <at> clisp.org>
To: bug-gzip <at> gnu.org
Subject: modernize bootstrap.conf
Date: Sun, 24 Jul 2022 21:50:10 +0200
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







Reply sent to Paul Eggert <eggert <at> cs.ucla.edu>:
You have taken responsibility. (Mon, 26 Dec 2022 04:37:02 GMT) Full text and rfc822 format available.

Notification sent to Bruno Haible <bruno <at> clisp.org>:
bug acknowledged by developer. (Mon, 26 Dec 2022 04:37:02 GMT) Full text and rfc822 format available.

Message #10 received at 56749-done <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Bruno Haible <bruno <at> clisp.org>
Cc: 56749-done <at> debbugs.gnu.org
Subject: Re: bug#56749: modernize bootstrap.conf
Date: Sun, 25 Dec 2022 20:36:02 -0800
[Message part 1 (text/plain, inline)]
Thanks for the heads-up. I installed the attached patch to gzip and 
updated the bootstrap script to current Gnulib.
[bootstrap.patch (text/x-patch, attachment)]

Information forwarded to bug-gzip <at> gnu.org:
bug#56749; Package gzip. (Tue, 27 Dec 2022 19:15:01 GMT) Full text and rfc822 format available.

Message #13 received at 56749 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Bruno Haible <bruno <at> clisp.org>
Cc: 56749 <at> debbugs.gnu.org
Subject: Re: bug#56749: modernize bootstrap.conf
Date: Tue, 27 Dec 2022 11:14:11 -0800
[Message part 1 (text/plain, inline)]
On 12/25/22 20:36, Paul Eggert wrote:
> I installed the attached patch to gzip and updated the bootstrap 
> script to current Gnulib.

Unfortunately that didn't work because the new bootstrap script comes in 
two flavors: a standalone gnulib/build-aux/bootstrap that automatically 
replaces itself, and a librarified gnulib/top/bootstrap that needs three 
auxiliary files in the repository. I put the latter script into the gzip 
repository but did not put the auxiliary files there. I did not notice 
the error in my testing, since the three auxiliary files were there in 
my working copy.

Although eventually I found this problem, and fixed it by committing the 
three auxiliary files into the gzip repository, it strikes me that the 
process would be simpler and less error-prone if 'bootstrap' stayed a 
single script in gzip. gnulib/build-aux/bootstrap attempted to do that, 
but operated by replacing itself, which led to confusion when one did a 
'git diff' later on.

To make this easier I changed gnulib/build-aux/bootstrap so that it 
doesn't need to replace itself. Instead, it has options --pull and 
--gen, so that './bootstrap --pull' is equivalent to librarified 
./autopull.sh and './bootstrap --gen' is equivalent to librarified 
./autogen.sh. These new options work regardless of whether one uses the 
standalone or the librarified bootstrap, and the standalone bootstrap 
need not replace itself when it runs.

I propagated this into gzip by installing the attached patch, the only 
creative part of which is its README-hacking change. The rest simply 
syncs from Gnulib, using the standalone bootstrap instead of the 
librarified one.

Assuming this sort of thing works out, I'd like to do something similar 
with grep, diffutils, etc. Emacs will be a different matter as it does 
not use 'bootstrap' anyway.
[0001-maint-go-back-to-single-file-bootstrap.patch (text/x-patch, attachment)]

Information forwarded to bug-gzip <at> gnu.org:
bug#56749; Package gzip. (Tue, 27 Dec 2022 19:31:02 GMT) Full text and rfc822 format available.

Message #16 received at 56749 <at> debbugs.gnu.org (full text, mbox):

From: Jim Meyering <jim <at> meyering.net>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: Bruno Haible <bruno <at> clisp.org>, 56749 <at> debbugs.gnu.org
Subject: Re: bug#56749: modernize bootstrap.conf
Date: Tue, 27 Dec 2022 11:29:57 -0800
On Tue, Dec 27, 2022 at 11:15 AM Paul Eggert <eggert <at> cs.ucla.edu> wrote:
...
> To make this easier I changed gnulib/build-aux/bootstrap so that it
> doesn't need to replace itself. Instead, it has options --pull and
> --gen, so that './bootstrap --pull' is equivalent to librarified
> ./autopull.sh and './bootstrap --gen' is equivalent to librarified
> ./autogen.sh. These new options work regardless of whether one uses the
> standalone or the librarified bootstrap, and the standalone bootstrap
> need not replace itself when it runs.
>
> I propagated this into gzip by installing the attached patch, the only
> creative part of which is its README-hacking change. The rest simply
> syncs from Gnulib, using the standalone bootstrap instead of the
> librarified one.
>
> Assuming this sort of thing works out, I'd like to do something similar
> with grep, diffutils, etc.

Thank you for making it easier to integrate Bruno's improved bootstrap
functionality.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 25 Jan 2023 12:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 84 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.