From: Ricardo Wurmus <rekado@elephly.net>
To: Jan Nieuwenhuizen <janneke@gnu.org>
Cc: guix-devel@gnu.org
Subject: Re: bootstrap: i686-linux now builds without binutils, gcc seeds
Date: Mon, 17 Sep 2018 23:55:02 +0200 [thread overview]
Message-ID: <87pnxb4wnd.fsf@elephly.net> (raw)
In-Reply-To: <8736u752k6.fsf@gnu.org>
Hi janneke!
> I have added this text to wip-bootstrap, image not shown inline here,
> WDYT?
[…]
> +@node Reduced Binary Seed Bootstrap
> +@section The Reduced Binary Seed Bootstrap
> +
> +Guix---like other GNU/Linux distributions---is traditionally bootstrapped from
> +from a set of bootstrap binaries: Bourne shell, command-line tools provided by
^— this is an extra “from”.
> +GNU Coreutils, Awk, Findutils, `sed', and `grep' and Guile, GCC, Binutils, and
> +the GNU C Library (@pxref{Bootstrapping}). Usually, these bootstrap-binaries
“bootstrap binaries”
> +are ``taken for granted.''
> +
> +What does this mean, really? By taking these binaries for granted, trusting
> +Guix depends on the trusting these binaries to be correct and clean. Therein
How about this instead of the second sentence:
“Taking these binaries for granted means that we consider them to be a
correct and trustworthy ‘seed’ for building the complete system.”
> +lies a problem: the current combined size of these bootstrap-binaries is about
“bootstrap binaries”
> +250MB (@pxref{Bootstrappable Builds,,, mes, Mes Reference Manual}). Auditing
> +or even inspecting these is next to impossible.
> +
> +For @code{i686-linux}, Guix now features a ``Reduced Binary Seed'' bootstrap
> +@footnote{We would like to say: ``Full Source Bootstrap'' and while we are
> +working towards that it would be a hyperbole to use that term for what we do
> +now.}.
“would be hyperbole” (no “a”)
> +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
> +binary seeds and a new set of
> +@c
> +package descriptions@footnote{@c
I’d remove “descriptions”.
> +mescc-tools-boot,
> +nyacc-boot,
> +mes-boot,
> +tcc-boot0,
> +tcc-boot,
> +make-mesboot0,
> +diffutils-mesboot,
> +binutils-mesboot0,
> +gcc-core-mesboot,
> +mesboot-headers,
> +glibc-mesboot0,
> +gcc-mesboot0,
> +binutils-mesboot,
> +make-mesboot,
> +gcc-mesboot1,
> +gcc-mesboot1-wrapper,
> +glibc-headers-mesboot,
> +glibc-mesboot,
> +gcc-mesboot,
+ “and”
> +gcc-mesboot-wrapper.
> +}
> +@c
> +the ``missing'' Binutils, and the GNU C Library are built, from source. From
“, from source” –> “ from source”.
> +here on the more traditional bootstrap process resumes. This approach has
> +reduced the bootstrap binaries in size to about 130MB. Work is ongoing to
> +reduce this further. If you are interested, join us on @code{#boottrappable}
typo: #bootstrappable
> +on the Freenode IRC network.
> +
> +@c ./pre-inst-env guix graph --type=bag -e '(begin (use-modules (guix packages)) (%current-system "i686-linux") (@@ (gnu packages commencement) gcc-mesboot))' > doc/images/gcc-mesboot-bag-graph.dot
> +@c dot -T png doc/images/gcc-mesboot-bag-graph.dot > doc/images/gcc-mesboot-bag-graph.png
> +
> +Below is the generated dependency graph to for @code{gcc-mesboot} that builds
> +the rest of GuixSD.
“to for” –> “for”
How about this:
Below is the generated dependency graph for @code{gcc-mesboot}, the
bootstrap compiler used to build the rest of GuixSD.
>> • I think all the “mesboot” & co. packages in commencement.scam can be
>> made private–i.e., changing ‘define-public’ to ‘define’.
>
> I agree; I kept gcc-mesboot (the final gcc) public, is that OK?
If it isn’t referenced by other modules and would not be installed by
users I think it doesn’t need to be public, but I think either way is
fine.
Thanks!
--
Ricardo
next prev parent reply other threads:[~2018-09-17 21:55 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-31 16:31 bootstrap: i686-linux now builds without binutils, gcc seeds Jan Nieuwenhuizen
2018-09-01 18:16 ` Gábor Boskovits
2018-09-02 5:21 ` Jan Nieuwenhuizen
2018-09-16 19:24 ` Ludovic Courtès
2018-09-17 6:10 ` Pjotr Prins
2018-09-17 18:29 ` Ricardo Wurmus
2018-09-17 19:25 ` Jan Nieuwenhuizen
2018-09-17 19:47 ` Jan Nieuwenhuizen
2018-09-17 21:55 ` Ricardo Wurmus [this message]
2018-09-18 8:27 ` Jan Nieuwenhuizen
2018-09-18 8:04 ` Vincent Legoll
2018-09-18 8:33 ` Jan Nieuwenhuizen
2018-09-18 20:53 ` Jan Nieuwenhuizen
2018-09-19 5:07 ` Jan Nieuwenhuizen
2018-09-19 18:07 ` Jan Nieuwenhuizen
2018-09-22 12:35 ` Ludovic Courtès
2018-09-22 15:34 ` Jan Nieuwenhuizen
2018-09-22 18:23 ` Jan Nieuwenhuizen
2018-09-23 8:02 ` branched core-updates-next [WAS: Re: bootstrap: i686-linux now builds without binutils, gcc seeds] Jan Nieuwenhuizen
2018-09-23 16:09 ` bootstrap: i686-linux now builds without binutils, gcc seeds Joshua Branson
2018-09-23 16:29 ` Jonathan Brielmaier
2018-09-22 12:23 ` Ludovic Courtès
2018-09-22 14:38 ` 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=87pnxb4wnd.fsf@elephly.net \
--to=rekado@elephly.net \
--cc=guix-devel@gnu.org \
--cc=janneke@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.