all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jan Nieuwenhuizen <janneke@gnu.org>
To: 33038@debbugs.gnu.org
Subject: [bug#33038] [PATCH 6/6] doc: Update Preparing to Use the Bootstrap Binaries.
Date: Sun, 14 Oct 2018 10:58:57 +0200	[thread overview]
Message-ID: <20181014085857.3863-6-janneke@gnu.org> (raw)
In-Reply-To: <20181014085857.3863-1-janneke@gnu.org>

* doc/guix.texi (Preparing to Use the Bootstrap Binaries): Mention
bootstrap-mes alongside bootstrap-gcc.
(Reducing the Set of Bootstrap Binaries): Mention the Reduced Binary Seed
bootstrap, MesCC-Tools and Mes.
---
 doc/guix.texi | 51 ++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 36 insertions(+), 15 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 48f01e989..0d7cabaa1 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -23583,8 +23583,8 @@ to use that term for what we do now.}.
 The Reduced Binary Seed bootstrap removes the most critical tools---from a
 trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C
 Library are replaced by: @code{mescc-tools-seed} (a tiny assembler and linker)
-@code{mes-seed} (a small Scheme Interpreter and a C compiler writen in Scheme)
-and @code{tinycc-seed} (the Mes C Library, built for TinyCC).  Using these new
+@code{bootstrap-mes} (a small Scheme Interpreter and a C compiler writen in
+Scheme and the Mes C Library, built for TinyCC and for GCC).  Using these new
 binary seeds and a new set of
 @c
 packages@footnote{@c
@@ -23640,7 +23640,15 @@ packages bootstrap)} module.  A similar figure can be generated with
 @example
 guix graph -t derivation \
   -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \
-  | dot -Tps > t.ps
+  | dot -Tps > gcc.ps
+@end example
+
+or, for the Reduced Binary Seed bootstrap
+
+@example
+guix graph -t derivation \
+  -e '(@@@@ (gnu packages bootstrap) %bootstrap-mes)' \
+  | dot -Tps > mes.ps
 @end example
 
 At this level of detail, things are
@@ -23672,10 +23680,10 @@ write them in an output directory with the right layout.  This
 corresponds to the @code{#:modules} argument of
 @code{build-expression->derivation} (@pxref{Derivations}).
 
-Finally, the various tarballs are unpacked by the
-derivations @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv},
-etc., at which point we have a working C tool chain.
-
+Finally, the various tarballs are unpacked by the derivations
+@code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, or
+@code{bootstrap-mes-0.drv} and @code{mescc-tools-boot-0.drv}, at which point
+we have a working C tool chain.
 
 @unnumberedsubsec Building the Build Tools
 
@@ -23741,7 +23749,9 @@ automated way to produce them, should an update occur, and this is what
 the @code{(gnu packages make-bootstrap)} module provides.
 
 The following command builds the tarballs containing the bootstrap
-binaries (Guile, Binutils, GCC, libc, and a tarball containing a mixture
+binaries (Binutils, GCC, glibc, for the traditional bootstrap and
+linux-libre-headers, mescc-tools-seed, bootstrap-mes for the Reduced
+Binary Seed bootstrap, and Guile, and a tarball containing a mixture
 of Coreutils and other basic command-line tools):
 
 @example
@@ -23760,12 +23770,12 @@ know.
 
 @unnumberedsubsec Reducing the Set of Bootstrap Binaries
 
-Our bootstrap binaries currently include GCC, Guile, etc.  That's a lot
-of binary code!  Why is that a problem?  It's a problem because these
-big chunks of binary code are practically non-auditable, which makes it
-hard to establish what source code produced them.  Every unauditable
-binary also leaves us vulnerable to compiler backdoors as described by
-Ken Thompson in the 1984 paper @emph{Reflections on Trusting Trust}.
+Our traditional bootstrap includes GCC, GNU Libc, Guile, etc.  That's a lot of
+binary code!  Why is that a problem?  It's a problem because these big chunks
+of binary code are practically non-auditable, which makes it hard to establish
+what source code produced them.  Every unauditable binary also leaves us
+vulnerable to compiler backdoors as described by Ken Thompson in the 1984
+paper @emph{Reflections on Trusting Trust}.
 
 This is mitigated by the fact that our bootstrap binaries were generated
 from an earlier Guix revision.  Nevertheless it lacks the level of
@@ -23777,7 +23787,18 @@ The @uref{http://bootstrappable.org, Bootstrappable.org web site} lists
 on-going projects to do that.  One of these is about replacing the
 bootstrap GCC with a sequence of assemblers, interpreters, and compilers
 of increasing complexity, which could be built from source starting from
-a simple and auditable assembler.  Your help is welcome!
+a simple and auditable assembler.
+
+Our first major achievement is the replacement of of GCC, the GNU C Library
+and Binutils by MesCC-Tools (a simple hex linker and macro assembler) and Mes
+(a Scheme interpreter and a C99 compiler in Scheme).  Neither MesCC-Tools nor
+Mes can be fully bootstrapped yet and thus we inject them as binary seeds.  We
+call this the Reduced Binary Seed bootstrap, as it has halved the size of our
+bootstrap binaries!  Also, it has eliminated the C compiler binary; i686-linux
+and x86_64-linux GuixSD are now bootstrapped without any binary C compiler.
+
+Work is ongoing to make MesCC-Tools and Mes fully bootstrappable and we are
+also looking at any other bootstrap binaries.  Your help is welcome!
 
 @node Porting
 @section Porting to a New Platform
-- 
2.18.0

  parent reply	other threads:[~2018-10-14  9:00 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-14  8:50 [bug#33038] bootstrap: Regeneration of Mes bootstrap seeds Jan Nieuwenhuizen
2018-10-14  8:58 ` [bug#33038] [PATCH 1/6] doc: Move `Reduced Binary Seed Bootstrap' into `Bootstrapping' Jan Nieuwenhuizen
2018-10-14  8:58   ` [bug#33038] [PATCH 2/6] gnu: mes: Update to 0.18.0-08f04f55 Jan Nieuwenhuizen
2018-10-19 21:23     ` Ludovic Courtès
2018-10-20  6:41       ` Jan Nieuwenhuizen
2018-10-14  8:58   ` [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes Jan Nieuwenhuizen
2018-10-19 21:31     ` Ludovic Courtès
2018-10-20  7:35       ` Jan Nieuwenhuizen
2018-10-20 18:31         ` Jan Nieuwenhuizen
2018-10-21 20:37         ` Marius Bakke
2018-10-21 21:04           ` Ludovic Courtès
2018-10-21 21:28             ` Jan Nieuwenhuizen
2018-10-21 21:09         ` Ludovic Courtès
2018-10-21 21:32           ` Jan Nieuwenhuizen
2018-10-23 21:00             ` bug#33038: " Jan Nieuwenhuizen
2018-10-24 16:18               ` [bug#33038] " Marius Bakke
2018-10-24 16:58                 ` Jan Nieuwenhuizen
2018-11-15  9:06               ` Preparing the reduced bootstrap tarballs Ludovic Courtès
2018-11-15 15:44                 ` Jan Nieuwenhuizen
2018-11-16 18:22                   ` Ludovic Courtès
2018-11-16 20:52                     ` Jan Nieuwenhuizen
2018-10-14  8:58   ` [bug#33038] [PATCH 4/6] gnu: mescc-tools: Update to 0.5.2-0.bb062b0d Jan Nieuwenhuizen
2018-10-19 21:32     ` Ludovic Courtès
2018-10-20  7:41       ` Jan Nieuwenhuizen
2018-10-14  8:58   ` [bug#33038] [PATCH 5/6] bootstrap: Build with %bootstrap-mes Jan Nieuwenhuizen
2018-10-19 21:34     ` Ludovic Courtès
2018-10-14  8:58   ` Jan Nieuwenhuizen [this message]
2018-10-19 21:37     ` [bug#33038] [PATCH 6/6] doc: Update Preparing to Use the Bootstrap Binaries Ludovic Courtès
2018-10-20  8:23       ` Jan Nieuwenhuizen
2018-10-19 21:22   ` [bug#33038] [PATCH 1/6] doc: Move `Reduced Binary Seed Bootstrap' into `Bootstrapping' Ludovic Courtès

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=20181014085857.3863-6-janneke@gnu.org \
    --to=janneke@gnu.org \
    --cc=33038@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.