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