all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Timothy Sample <samplet@ngyro.com>
To: 54394@debbugs.gnu.org
Subject: [bug#54394] [PATCH core-updates 00/12] Remove old GNU utilities from early bootstrap
Date: Mon, 14 Mar 2022 16:47:50 -0600	[thread overview]
Message-ID: <87v8wg40dl.fsf@ngyro.com> (raw)

Hi all!

This is culmination of a lot of work, so I’m excited to be submitting
it!  The main thrust of this series is to update Gash and Gash-Utils,
and then remove most of the old GNU utilities we use during early
bootstrap.  To elaborate, the current situation is that we climb a
ladder through time: first we build Bash 2, then we build Bash 4, and
finally we build Bash 5.  This is true for most GNU utilities: Sed,
Gawk, Coreutils, etc.  The reason?  Until now, our Scheme
implementations of those utilities (Gash and Gash-Utils) were very
limited.  Bash 2 used to be a lot more useful then Gash, for example.
Now, with recent releases of Gash and Gash-Utils, the Scheme utilities
are, in general, capable of powering the builds of modern GNU software.

To be clear, we still climb the time-ladder in a few cases.  The main
ones are GCC, Glibc, and Binutils.  For example, we have to use GCC 2 to
transition from TCC To GCC 4 (which is the last non-C++ GCC [1]).
Fixing this would require quite a bit of TCC hacking, I imagine.  There
are others, though.  We still use old versions of Gzip, Make, patch, and
Gawk.  The fact that Gawk is still there disappoints me quite a bit, but
‘glibc-mesboot’ fails in a way that I just can’t figure out when
building with Gash-Utils.  Gzip is not strictly necessary, but also
pretty easy to replace.  I’m not sure, but I think patch is only there
to avoid using patches in ‘origin’ records during bootstrap.  We now
have a way to do that, so it may no longer be necessary.  Make will
likely need to be rewritten in Scheme, but we have a head start: Potato
Make [2].

[1] https://bootstrappable.org/projects.html
[2] https://github.com/spk121/potato-make

Here’s some detailed info for reviewers.

The first patch is pretty independent.  That testing package has been
broken since GNU Hello was upgraded to 2.11.

The next two patches spruce up the ‘gnu-bootstrap’ module.  One fixes an
omission, and the other gets it ready to handle Gash-Utils 0.2.0, which
unfortunately has two module directories.

The next three are updates.  The bootar update optimistically assumes
that someone with access will upload the source file to the Guix mirror
URL: “mirror://gnu/guix/...” as was done with previous versions.

The rest hopefully speak for themselves.  Sadly, the last one is
something of a jumble.  Originally I wanted to remove the utilities one
at a time, but it turns out there are interference effects.  I can’t
remember the exact details now, but to get an idea, removing both old
Bash and old Grep might work, but removing one and then the other (in
either order) might not.  Hence, many utilities get updated in one
commit.

I have built this series all the way to the ‘hello’ package (the regular
one, not the ‘-mesboot’ one).  Based on that, I assume that everything
should be fine.  There’s always room for surprises, though!  :)

Let me know what you think.

Timothy Sample (12):
  gnu: hello-mesboot: Downgrade to 2.10.
  gnu-bootstrap: Configure PACKAGE_NAME.
  gnu-bootstrap: Allow multiple module directories.
  gnu: gash-utils: Update to 0.2.0.
  gnu: bootar: Update to 1b.
  gnu: gash: Update to 0.3.0.
  gnu: gash-utils-boot: Create 'echo' wrapper.
  gnu: bzip2-mesboot: Remove package.
  gnu: sed-mesboot0: Remove package.
  gnu: binutils-mesboot0: Update to 2.20.1a.
  gnu: %boot-tcc-inputs: Remove extra "gash-utils".
  gnu: commencement: Remove many old utilities.

 gnu/local.mk                                  |   1 -
 gnu/packages/commencement.scm                 | 895 ++++--------------
 gnu/packages/patches/gash-utils-ls-test.patch |  25 -
 gnu/packages/shells.scm                       |  27 +-
 guix/build/gnu-bootstrap.scm                  |  32 +-
 5 files changed, 192 insertions(+), 788 deletions(-)
 delete mode 100644 gnu/packages/patches/gash-utils-ls-test.patch


-- Tim




             reply	other threads:[~2022-03-14 22:48 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-14 22:47 Timothy Sample [this message]
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 01/12] gnu: hello-mesboot: Downgrade to 2.10 Timothy Sample
2022-03-16 17:25   ` [bug#54394] [PATCH core-updates 00/12] Remove old GNU utilities from early bootstrap Ludovic Courtès
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 02/12] gnu-bootstrap: Configure PACKAGE_NAME Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 03/12] gnu-bootstrap: Allow multiple module directories Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 04/12] gnu: gash-utils: Update to 0.2.0 Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 05/12] gnu: bootar: Update to 1b Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 06/12] gnu: gash: Update to 0.3.0 Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 07/12] gnu: gash-utils-boot: Create 'echo' wrapper Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 08/12] gnu: bzip2-mesboot: Remove package Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 09/12] gnu: sed-mesboot0: " Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 10/12] gnu: binutils-mesboot0: Update to 2.20.1a Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 11/12] gnu: %boot-tcc-inputs: Remove extra "gash-utils" Timothy Sample
2022-03-14 22:57 ` [bug#54394] [PATCH core-updates 12/12] gnu: commencement: Remove many old utilities Timothy Sample
2022-03-15 10:34   ` Maxime Devos
2022-03-15 19:35     ` Timothy Sample
2022-03-16 17:25 ` [bug#54394] [PATCH core-updates 00/12] Remove old GNU utilities from early bootstrap Ludovic Courtès
2022-03-16 17:32 ` Ludovic Courtès
2022-03-19 19:53   ` bug#54394: " Timothy Sample
2022-03-21 15:17     ` [bug#54394] " Ludovic Courtès
2022-03-20 11:38 ` Jan Nieuwenhuizen
2022-03-20 11:48 ` Jan Nieuwenhuizen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87v8wg40dl.fsf@ngyro.com \
    --to=samplet@ngyro.com \
    --cc=54394@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.