* [bug#33038] bootstrap: Regeneration of Mes bootstrap seeds. @ 2018-10-14 8:50 Jan Nieuwenhuizen 2018-10-14 8:58 ` [bug#33038] [PATCH 1/6] doc: Move `Reduced Binary Seed Bootstrap' into `Bootstrapping' Jan Nieuwenhuizen 0 siblings, 1 reply; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-14 8:50 UTC (permalink / raw) To: 33038 Hi! In order to take care of these TODOs TODO: * regenerate Mes bootstrap seeds, put them on ftp.gnu.org * slow tests: "gnu-build-system", "union-build" * doc: make "Reduced Binary Seed Bootstrap" subsection in Bootstrapping * doc: update “Preparing to Use the Bootstrap Binaries” * doc: update “Reducing the Set of Bootstrap Binaries” I replaced the opaque, manually created %mes-seed and %tinycc-seed by new pacckages: mes-stripped, mes-stripped-tarball, and %bootstrap-mes. That allowed me to modify the remaining documentation sections too. Sending a patch series, also available from https://gitlab.com/janneke/guix @core-updates-next WDYT? Greetings, janneke ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 1/6] doc: Move `Reduced Binary Seed Bootstrap' into `Bootstrapping'. 2018-10-14 8:50 [bug#33038] bootstrap: Regeneration of Mes bootstrap seeds Jan Nieuwenhuizen @ 2018-10-14 8:58 ` Jan Nieuwenhuizen 2018-10-14 8:58 ` [bug#33038] [PATCH 2/6] gnu: mes: Update to 0.18.0-08f04f55 Jan Nieuwenhuizen ` (5 more replies) 0 siblings, 6 replies; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-14 8:58 UTC (permalink / raw) To: 33038 * doc/guix.texi (Reduced Binary Seed Bootstrap): --- doc/guix.texi | 141 ++++++++++++++++++++++++++------------------------ 1 file changed, 72 insertions(+), 69 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a213a0324..48f01e989 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -210,7 +210,6 @@ GNU Distribution * Package Modules:: Packages from the programmer's viewpoint. * Packaging Guidelines:: Growing the distribution. * Bootstrapping:: GNU/Linux built from scratch. -* Reduced Binary Seed Bootstrap:: A Bootstrap worthy of GNU. * Porting:: Targeting another platform or kernel. System Installation @@ -8695,7 +8694,6 @@ For information on porting to other architectures or kernels, * Package Modules:: Packages from the programmer's viewpoint. * Packaging Guidelines:: Growing the distribution. * Bootstrapping:: GNU/Linux built from scratch. -* Reduced Binary Seed Bootstrap:: A Bootstrap worthy of GNU. * Porting:: Targeting another platform or kernel. @end menu @@ -23557,7 +23555,78 @@ re-create them if needed (more on that later). For @code{i686-linux} and @code{x86_64-linux} the Guix bootstrap process is more elaborate, @pxref{Reduced Binary Seed Bootstrap}. -@unnumberedsubsec Preparing to Use the Bootstrap Binaries +@menu +* Reduced Binary Seed Bootstrap:: A Bootstrap worthy of GNU. +* Preparing to Use the Bootstrap Binaries:: Building that what matters most. +@end menu + +@node Reduced Binary Seed Bootstrap +@subsection The Reduced Binary Seed Bootstrap + +Guix---like other GNU/Linux distributions---is traditionally bootstrapped from +a set of bootstrap binaries: Bourne shell, command-line tools provided by GNU +Coreutils, Awk, Findutils, `sed', and `grep' and Guile, GCC, Binutils, and the +GNU C Library (@pxref{Bootstrapping}). Usually, these bootstrap binaries are +``taken for granted.'' + +Taking these binaries for granted means that we consider them to be a correct +and trustworthy `seed' for building the complete system. Therein lies a +problem: the current combined size of these bootstrap binaries is about 250MB +(@pxref{Bootstrappable Builds,,, mes, Mes Reference Manual}). Auditing or +even inspecting these is next to impossible. + +For @code{i686-linux} and @code{x86_64-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 goal it would be hyperbole +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 +binary seeds and a new set of +@c +packages@footnote{@c +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, GCC, and the GNU C Library are built from source. +From 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{#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 for @code{gcc-mesboot}, the bootstrap +compiler used to build the rest of GuixSD. + +@image{images/gcc-mesboot-bag-graph,6in,,Dependency graph of the gcc-mesboot} + +@node Preparing to Use the Bootstrap Binaries +@subsection Preparing to Use the Bootstrap Binaries @c As of Emacs 24.3, Info-mode displays the image, but since it's a @c large image, it's hard to scroll. Oh well. @@ -23710,72 +23779,6 @@ 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! -@node Reduced Binary Seed Bootstrap -@section The Reduced Binary Seed Bootstrap - -Guix---like other GNU/Linux distributions---is traditionally bootstrapped from -a set of bootstrap binaries: Bourne shell, command-line tools provided by GNU -Coreutils, Awk, Findutils, `sed', and `grep' and Guile, GCC, Binutils, and the -GNU C Library (@pxref{Bootstrapping}). Usually, these bootstrap binaries are -``taken for granted.'' - -Taking these binaries for granted means that we consider them to be a correct -and trustworthy `seed' for building the complete system. Therein lies a -problem: the current combined size of these bootstrap binaries is about 250MB -(@pxref{Bootstrappable Builds,,, mes, Mes Reference Manual}). Auditing or -even inspecting these is next to impossible. - -For @code{i686-linux} and @code{x86_64-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 goal it would be hyperbole -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 -binary seeds and a new set of -@c -packages@footnote{@c -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, GCC, and the GNU C Library are built from source. -From 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{#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 for @code{gcc-mesboot}, the bootstrap -compiler used to build the rest of GuixSD. - -@image{images/gcc-mesboot-bag-graph,6in,,Dependency graph of the gcc-mesboot} - - @node Porting @section Porting to a New Platform -- 2.18.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 2/6] gnu: mes: Update to 0.18.0-08f04f55. 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 ` Jan Nieuwenhuizen 2018-10-19 21:23 ` Ludovic Courtès 2018-10-14 8:58 ` [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes Jan Nieuwenhuizen ` (4 subsequent siblings) 5 siblings, 1 reply; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-14 8:58 UTC (permalink / raw) To: 33038 * gnu/packages/mes.scm (mes): Update to 0.18.0-08f04f55. * gnu/packages/commencement.scm (mes-boot0): Stay at 0.18.0. --- gnu/packages/commencement.scm | 8 +++++++- gnu/packages/mes.scm | 24 +++++++++++++++--------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 6fc39f768..61349337e 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -102,7 +102,13 @@ (sha256 (base32 "1whbzahv16bwhavr2azqli0dcbk29p9rsqfbjl69la135z8vgdhx"))) - (package-source mes))) + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/mes/" + "mes-" version ".tar.gz")) + (sha256 + (base32 + "1dsaaqyanzsq9m5wrcd2bjhb3qd6928c9q97rg5r730pyqjwxyxf"))))) (native-inputs '()) (propagated-inputs '())))) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 6dc6dfb4c..4f98cd24f 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -60,17 +60,22 @@ extensive examples, including parsers for the Javascript and C99 languages.") (license (list gpl3+ lgpl3+)))) (define-public mes - (let ((triplet "i686-unknown-linux-gnu")) + (let ((triplet "i686-unknown-linux-gnu") + (version "0.18") + (revision "0") + (commit "08f04f559670d9e8f57eb03bb9b13f4d0b81cedf")) (package (name "mes") - (version "0.18") + (version (string-append version "-" revision "." (string-take commit 7))) (source (origin (method url-fetch) - (uri (string-append "mirror://gnu/mes/" - "mes-" version ".tar.gz")) + (uri (string-append + "https://git.savannah.gnu.org/cgit/mes.git/snapshot/" + name "-" commit + ".tar.gz")) (sha256 (base32 - "1dsaaqyanzsq9m5wrcd2bjhb3qd6928c9q97rg5r730pyqjwxyxf")))) + "1b7wz9k38pfrz707pd4p8s54q903jr167q73ya7qkna89sxj3wna")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (propagated-inputs @@ -93,10 +98,11 @@ extensive examples, including parsers for the Javascript and C99 languages.") `(#:strip-binaries? #f)) ; binutil's strip b0rkes MesCC/M1/hex2 binaries (synopsis "Scheme interpreter and C compiler for full source bootstrapping") (description - "GNU Mes [Maxwell Equations of Software] aims to create full source -bootstrapping for GuixSD. It consists of a mutual self-hosting [close to -Guile-] Scheme interpreter prototype in C and a Nyacc-based C compiler in -[Guile] Scheme.") + "GNU Mes--Maxwell Equations of Software--brings the Reduced +Binary Seed bootstrap to GuixSD and aims to help create full source +bootstrapping for GNU/Linux distributions. It consists of a mutual +self-hosting Scheme interpreter in C and a Nyacc-based C compiler in +Scheme and is compatible with Guile.") (home-page "https://gnu.org/software/mes") (license gpl3+)))) -- 2.18.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 2/6] gnu: mes: Update to 0.18.0-08f04f55. 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 0 siblings, 1 reply; 30+ messages in thread From: Ludovic Courtès @ 2018-10-19 21:23 UTC (permalink / raw) To: Jan Nieuwenhuizen; +Cc: 33038 Jan Nieuwenhuizen <janneke@gnu.org> skribis: > * gnu/packages/mes.scm (mes): Update to 0.18.0-08f04f55. > * gnu/packages/commencement.scm (mes-boot0): Stay at 0.18.0. Perhaps put a comment as to why we take this particular commit. Otherwise LGTM! Thanks, Ludo’. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 2/6] gnu: mes: Update to 0.18.0-08f04f55. 2018-10-19 21:23 ` Ludovic Courtès @ 2018-10-20 6:41 ` Jan Nieuwenhuizen 0 siblings, 0 replies; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-20 6:41 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 33038 Ludovic Courtès writes: >> * gnu/packages/mes.scm (mes): Update to 0.18.0-08f04f55. >> * gnu/packages/commencement.scm (mes-boot0): Stay at 0.18.0. > > Perhaps put a comment as to why we take this particular commit. > Otherwise LGTM! Ah, sure; changed the commit message to gnu: mes: Update to 0.18.0-08f04f55. This update is a preparation for the %bootstrap-mes package; due to some small problems it fails to build with plain mes-0.18. mes-boot0 stays at 0.18 only to avoid another rebuild world. %bootstrap-mes brings the building and packaging the Mes bootstrap seeds from manual operation into Guix. We will bump mes and mes-boot0 to a future 0.18.1 or 0.19 and regenerate %bootstrap-mes in a nex iteration. 08f04f55 build: Oops, remove stray lib/linux/x86_64-mes/crt1. 33f37f27 build: x86_64 bootstrap build fixes and workaround. 4ae2a111 doc: Release update. 5277669b mescc: Oops, delete wrong line of assembly. 44cc97a8 admin: Release update. * gnu/packages/mes.scm (mes): Update to 0.18.0-08f04f55. * gnu/packages/commencement.scm (mes-boot0): Stay at 0.18.0. Thanks! janneke ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes. 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-14 8:58 ` Jan Nieuwenhuizen 2018-10-19 21:31 ` Ludovic Courtès 2018-10-14 8:58 ` [bug#33038] [PATCH 4/6] gnu: mescc-tools: Update to 0.5.2-0.bb062b0d Jan Nieuwenhuizen ` (3 subsequent siblings) 5 siblings, 1 reply; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-14 8:58 UTC (permalink / raw) To: 33038 * gnu/packages/make-bootstrap.scm (%mes-stripped): New variable. (%mes-bootstrap-tarball): New variable. * gnu/packages/bootstrap.scm (%bootstrap-mes): New variable. --- gnu/packages/bootstrap.scm | 59 +++++++++++++++++++++++++++++++++ gnu/packages/make-bootstrap.scm | 35 +++++++++++++++++++ gnu/packages/mes.scm | 1 - 3 files changed, 94 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 82d229569..f33fc061e 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -49,6 +49,7 @@ %bootstrap-gcc %bootstrap-glibc %bootstrap-inputs + %bootstrap-mes %mescc-tools-seed %mes-seed %srfi-43 @@ -610,6 +611,64 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ (home-page #f) (license gpl3+))) +(define %bootstrap-mes + ;; The initial Mes. Uses binaries from a tarball typically built by + ;; %MES-BOOTSTRAP-TARBALL. + (package + (name "bootstrap-mes") + (version "0") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) + #:builder + (let ((out (assoc-ref %outputs "out")) + (tar (assoc-ref %build-inputs "tar")) + (xz (assoc-ref %build-inputs "xz")) + (tarball (assoc-ref %build-inputs "tarball"))) + (use-modules (guix build utils) + (ice-9 popen)) + + (mkdir out) + (copy-file tarball "binaries.tar.xz") + (invoke xz "-d" "binaries.tar.xz") + (let ((builddir (getcwd)) + (bindir (string-append out "/bin"))) + (with-directory-excursion out + (invoke tar "xvf" + (string-append builddir "/binaries.tar"))))))) + (inputs + `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) + ("xz" ,(search-bootstrap-binary "xz" (%current-system))) + ("tarball" ,(bootstrap-origin + (origin + (method url-fetch) + (uri (string-append + "http://lilypond.org/janneke/mes/" + (match (%current-system) + ("x86_64-linux" "mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz") + ("i686-linux" "mes-stripped-0.18-0.08f04f5-i686-linux.tar.xz")))) + (sha256 + (match (%current-system) + ("x86_64-linux" + (base32 + "14sbcm79ml4rgygxvx1135827g3ggfx1c1vchk77z26yibbdw9nh")) + ("i686-linux" + (base32 + "1p116ya9n52852bryh34n7db4mhvi98qifmmwygl7nbyc4dz92jy"))))))))) + (native-search-paths + (list (search-path-specification + (variable "C_INCLUDE_PATH") + (files '("share/mes/include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("share/mes/lib"))))) + (synopsis "Bootstrap binaries of Mes") + (description synopsis) + (home-page #f) + (license gpl3+))) + (define %mescc-tools-seed ; todo: add tarballs to alpha.gnu.org/pub/mes/bootstrap/ (let ((commit "dc4e20e74924a5c80a2b7a77b4d7b927234fa71c")) (origin diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index 3553737f1..7bfba3c14 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -38,6 +38,7 @@ #:use-module (gnu packages libunistring) #:use-module (gnu packages linux) #:use-module (gnu packages hurd) + #:use-module (gnu packages mes) #:use-module (gnu packages multiprecision) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -47,6 +48,7 @@ %glibc-bootstrap-tarball %gcc-bootstrap-tarball %guile-bootstrap-tarball + %mes-bootstrap-tarball %bootstrap-tarballs %guile-static-stripped)) @@ -533,6 +535,35 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." #t)))) (inputs `(("gcc" ,%gcc-static))))) +(define %mes-stripped + ;; The subset of Mes files needed for bootstrap. + (package + (inherit mes) + (name "mes-stripped") + (build-system trivial-build-system) + (source #f) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (srfi srfi-1) + (srfi srfi-26) + (guix build utils)) + + (setvbuf (current-output-port) _IOLBF) + (let* ((out (assoc-ref %outputs "out")) + (libdir (string-append out "/lib")) + (mes (assoc-ref %build-inputs "mes"))) + + (copy-recursively (string-append mes "/lib") libdir) + (copy-recursively (string-append mes "/share/mes/lib") libdir) + (for-each remove-store-references + (remove (lambda (file) (or (string-suffix? ".h" file) + (string-suffix? ".c" file))) + (find-files out ".*"))) + #t)))) + (inputs `(("mes" ,mes))))) + (define %guile-static ;; A statically-linked Guile that is relocatable--i.e., it can search ;; .scm and .go files relative to its installation directory, rather @@ -700,6 +731,10 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ;; A tarball with the statically-linked, relocatable Guile. (tarball-package %guile-static-stripped)) +(define %mes-bootstrap-tarball + ;; A tarball with Mes ASCII Seed and binary Mes C Library. + (tarball-package %mes-stripped)) + (define %bootstrap-tarballs ;; A single derivation containing all the bootstrap tarballs, for ;; convenience. diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 4f98cd24f..c4cb118e3 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -21,7 +21,6 @@ (define-module (gnu packages mes) #:use-module (gnu packages) #:use-module (gnu packages base) - #:use-module (gnu packages commencement) #:use-module (gnu packages cross-base) #:use-module (gnu packages gcc) #:use-module (gnu packages graphviz) -- 2.18.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes. 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 0 siblings, 1 reply; 30+ messages in thread From: Ludovic Courtès @ 2018-10-19 21:31 UTC (permalink / raw) To: Jan Nieuwenhuizen; +Cc: 33038 Jan Nieuwenhuizen <janneke@gnu.org> skribis: > * gnu/packages/make-bootstrap.scm (%mes-stripped): New variable. > (%mes-bootstrap-tarball): New variable. > * gnu/packages/bootstrap.scm (%bootstrap-mes): New variable. [...] > +(define %bootstrap-mes > + ;; The initial Mes. Uses binaries from a tarball typically built by > + ;; %MES-BOOTSTRAP-TARBALL. > + (package > + (name "bootstrap-mes") > + (version "0") > + (source #f) > + (build-system trivial-build-system) > + (arguments > + `(#:guile ,%bootstrap-guile > + #:modules ((guix build utils)) > + #:builder > + (let ((out (assoc-ref %outputs "out")) > + (tar (assoc-ref %build-inputs "tar")) > + (xz (assoc-ref %build-inputs "xz")) > + (tarball (assoc-ref %build-inputs "tarball"))) > + (use-modules (guix build utils) > + (ice-9 popen)) Please move the ‘use-modules’ form to the top level (non-top-level ‘use-modules’ works pretty much by chance). > + (inputs > + `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) > + ("xz" ,(search-bootstrap-binary "xz" (%current-system))) > + ("tarball" ,(bootstrap-origin > + (origin > + (method url-fetch) > + (uri (string-append > + "http://lilypond.org/janneke/mes/" > + (match (%current-system) > + ("x86_64-linux" "mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz") > + ("i686-linux" "mes-stripped-0.18-0.08f04f5-i686-linux.tar.xz")))) > + (sha256 > + (match (%current-system) > + ("x86_64-linux" > + (base32 > + "14sbcm79ml4rgygxvx1135827g3ggfx1c1vchk77z26yibbdw9nh")) > + ("i686-linux" > + (base32 > + "1p116ya9n52852bryh34n7db4mhvi98qifmmwygl7nbyc4dz92jy"))))))))) So these two tarballs were made from this commit, minus the bootstrap.scm changes? It would be nice to maybe make this a separate commit (following the make-bootstrap.scm changes) so that you can state in the commit log which commit was used to build this binary. Besides we can consider hosting these binaries on ftp.gnu.org, under /mes or /guix. > --- a/gnu/packages/mes.scm > +++ b/gnu/packages/mes.scm > @@ -21,7 +21,6 @@ > (define-module (gnu packages mes) > #:use-module (gnu packages) > #:use-module (gnu packages base) > - #:use-module (gnu packages commencement) Indeed ‘commencement’ should never be used by other package modules, for reasons having to do with circularity. Otherwise LGTM! Ludo’. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes. 2018-10-19 21:31 ` Ludovic Courtès @ 2018-10-20 7:35 ` Jan Nieuwenhuizen 2018-10-20 18:31 ` Jan Nieuwenhuizen ` (2 more replies) 0 siblings, 3 replies; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-20 7:35 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 33038 [-- Attachment #1: Type: text/plain, Size: 26213 bytes --] Ludovic Courtès writes: > Jan Nieuwenhuizen <janneke@gnu.org> skribis: > >> * gnu/packages/make-bootstrap.scm (%mes-stripped): New variable. >> (%mes-bootstrap-tarball): New variable. >> * gnu/packages/bootstrap.scm (%bootstrap-mes): New variable. > > [...] > >> + #:builder >> + (let ((out (assoc-ref %outputs "out")) >> + (tar (assoc-ref %build-inputs "tar")) >> + (xz (assoc-ref %build-inputs "xz")) >> + (tarball (assoc-ref %build-inputs "tarball"))) >> + (use-modules (guix build utils) >> + (ice-9 popen)) > > Please move the ‘use-modules’ form to the top level (non-top-level > ‘use-modules’ works pretty much by chance). Sure, do you mean like this? --8<---------------cut here---------------start------------->8--- $ git diff -w diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index f33fc061e..f43e405f8 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -623,12 +623,13 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ `(#:guile ,%bootstrap-guile #:modules ((guix build utils)) #:builder + (begin + (use-modules (guix build utils) + (ice-9 popen)) (let ((out (assoc-ref %outputs "out")) (tar (assoc-ref %build-inputs "tar")) (xz (assoc-ref %build-inputs "xz")) (tarball (assoc-ref %build-inputs "tarball"))) - (use-modules (guix build utils) - (ice-9 popen)) (mkdir out) (copy-file tarball "binaries.tar.xz") --8<---------------cut here---------------end--------------->8--- I copied this from %bootstrap-gcc, do we want to to change this in all bootstrap packages too? >> + (inputs >> + `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) >> + ("xz" ,(search-bootstrap-binary "xz" (%current-system))) >> + ("tarball" ,(bootstrap-origin >> + (origin >> + (method url-fetch) >> + (uri (string-append >> + "http://lilypond.org/janneke/mes/" >> + (match (%current-system) >> + ("x86_64-linux" "mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz") >> + ("i686-linux" "mes-stripped-0.18-0.08f04f5-i686-linux.tar.xz")))) >> + (sha256 >> + (match (%current-system) >> + ("x86_64-linux" >> + (base32 >> + "14sbcm79ml4rgygxvx1135827g3ggfx1c1vchk77z26yibbdw9nh")) >> + ("i686-linux" >> + (base32 >> + "1p116ya9n52852bryh34n7db4mhvi98qifmmwygl7nbyc4dz92jy"))))))))) > So these two tarballs were made from this commit, minus the > bootstrap.scm changes? Yes. > It would be nice to maybe make this a separate commit (following the > make-bootstrap.scm changes) so that you can state in the commit log > which commit was used to build this binary. Ah yes, that's nice. Hmm, there's a slight complication because for the i686-linux version I cheated; icu4c, python-more-itertools and swig fail to build on core-updates-next. I added a hack and reverted that... which is probably less than great. So I cleaned it up a bit and just added it. So, now we three commits instead of this single one --8<---------------cut here---------------start------------->8--- 0001-bootstrap-Add-mes-stripped-mes-bootstrap-tarball.patch 0002-bootstrap-FTBFS-hack-for-icu4c-python-more-itertools.patch 0003-bootstrap-Add-bootstrap-mes.patch --8<---------------cut here---------------end--------------->8--- (attached, and also on my gitlab core-updates-next. Now for a rebuild... --8<---------------cut here---------------start------------->8--- The following derivations will be built: /gnu/store/bphs45cqip5xh574azfkqn4lb0g53zqa-mes-0.18-0.08f04f5.drv /gnu/store/v8d7ygp7pa7ry2cf1yxjhca8inyjy8b6-libffi-3.2.1.drv /gnu/store/xbiq4rwjlbq42ycnk3g69fya8xvnl9ch-gzip-1.9.drv /gnu/store/pxval06kh8v5k3xyzdyxzrpp21kd7sg0-zlib-1.2.11.drv /gnu/store/rav9k4aq3ixrrvw5034vzrdnv5dbjcpv-libstdc++-5.5.0.drv /gnu/store/8capphw0wg0jlnixqq8fcgzn10s3wki2-nyacc-0.86.0.tar.xz.drv /gnu/store/dbpx4lm42wby5mnwvv03nb2qps4a2zkh-glibc-2.28.drv /gnu/store/bk8gwgz8xjzz8zppcnfllvh12f1vf82j-gcc-cross-boot0-wrapped-5.5.0.drv /gnu/store/gs7iqdpxcn620q4i19wpqd7gh2bbhlhm-perl-5.28.0.tar.xz.drv /gnu/store/7icagga75a82170wa5hv53bx34hl45ws-binutils-2.31.1.tar.xz.drv /gnu/store/f2yb5n8sb41r6p26y588yxga8pkbgxlm-guile-2.2.4.tar.xz.drv /gnu/store/w6hhc8n4rwx167jablmhm44467vvgcfr-libsigsegv-2.12.drv /gnu/store/mhhmqliz3g38il5v6r8pnx4lc091rsl8-m4-1.4.18.drv /gnu/store/c6mmp48fmrkd86zhz12672h4q6l8ziz7-expat-2.2.6.drv /gnu/store/gzddzbxz1a1is1vflzy8a4mc4y0zqvns-gettext-minimal-0.19.8.1.drv /gnu/store/m893488210iawlsd6zp1p55kxm0g4vqg-attr-2.4.47.drv /gnu/store/40ag55xgskv7a7bhcb949inva7313amv-perl-5.28.0.drv /gnu/store/41nkq7lqsgkl9jzdr0lircl6zgg0wgnl-acl-2.2.52.drv /gnu/store/9bz4lny29nn93cn9vinp59ax4kb0xn87-libcap-2.25.drv /gnu/store/sj8b0zbvcz1ch2221kcc4da9lzq5hh27-gmp-6.1.2.drv /gnu/store/b483f3jksis89nf3g5hdq5yb7ndagv99-texinfo-6.5.tar.xz.drv /gnu/store/1jzbjrmdgw0iw2m4dz85hz7k5p54aw7x-module-import.drv /gnu/store/3ddfngr5wl63l75va8pvs65qj0563df6-isl-0.18.drv /gnu/store/dqyw57nxkb3xyclpkhnrafyshbv14a1a-mpfr-4.0.1.drv /gnu/store/jpxlwyrzli83gssfcavn37lhlw9dc0kj-gcc-5.5.0.tar.xz.drv /gnu/store/pws8zvs7r92d64ar3i98j9g7ac6y7hfr-libelf-0.8.13.drv /gnu/store/rb0d5cn0my5sz3zmsfr0kscr94vs058l-mpc-1.1.0.drv /gnu/store/yn922ni0rwxkq882zls0xxf2qayb8r8b-module-import-compiled.drv /gnu/store/zb9k79g6y7nscnvznf4spsk0qwfks30f-ld-wrapper-i686-unknown-linux-gnu-0.drv /gnu/store/g7lf0knb6nmh9277s5h4mgv1y5ydl8ky-m4-1.4.18.drv /gnu/store/8n65d7fs4apfgkzshw6wsv9ysrxnajwh-pkg-config-0.29.2.drv /gnu/store/bypa7gcsnmsnkw3vcxgjd41m5w24dswc-libatomic-ops-7.6.6.drv /gnu/store/1pp9r25slvggwp9sy40nykvmh6v6n2jv-libgc-7.6.6.drv /gnu/store/2q9mh9cfd3dwsw0fws0carsfmqvi2znf-libltdl-2.4.6.drv /gnu/store/353wfgj275zjlknfx1hyy7gjvfwdk43v-gmp-6.1.2.drv /gnu/store/gsx7h76lyzk4cqsk3fabnjamxc0rj83q-pkg-config-0.29.2.drv /gnu/store/y6yji4863382524yl5hfqw3as1i05li9-libunistring-0.9.10.drv /gnu/store/06g1zy5r33lv2zasnvsi5k95kpzq6hrb-glibc-intermediate-2.28.drv /gnu/store/2k79fghny3glx0ncyx2khx22z5rczbca-gcc-cross-boot0-wrapped-5.5.0.drv /gnu/store/gky91kz0kwfyvqdb7ngkr3c80pyzfbk4-libstdc++-boot0-4.9.4.drv /gnu/store/1h2fxp63iyjz2i5ammgbs1cfhn93cl5s-gettext-boot0-0.19.8.1.drv /gnu/store/66va6gpq32s6ddm2g3mbf6fa32rqbkgq-gcc-cross-boot0-5.5.0.drv /gnu/store/6zvd37ilivsiwy0fxj4qxv153gf02cqf-bison-3.0.5.drv /gnu/store/8bzgazlsl987z86dl5ic05zg945z0g5w-texinfo-6.5.drv /gnu/store/8gv9b9plyd1ypw3kvw0h4jzf15m6b8f6-bash-static-4.4.23.drv /gnu/store/f2zrs1fyl1dsgr704i7nfi31lzxizf76-m4-1.4.18.drv /gnu/store/ki01mfihxr6wxr4razb7k4f0nghl3q0a-tar-1.30.tar.xz.drv /gnu/store/3qbp6f4gwv473p57nrd91m026x4ip48w-tar-1.30.drv /gnu/store/brikdb0a1pp4sbaqnvpl5cz52awwqkvh-util-linux-2.32.1.tar.xz.drv /gnu/store/ri9zx9xmv9igclc9wq1m3zhsh6iwnhs0-net-base-5.3.drv /gnu/store/r0hr89rxiak9n0amp7qqz3my189i9l6r-pixman-0.34.0.tar.xz.drv /gnu/store/36xv1ylrn3p5jvvdnvvdh7lrq26d9v8j-python2-pyflakes-2.0.0.drv /gnu/store/b2400k8xi6pyz67lbhzgqrl1dh88my7r-python2-flake8-3.5.0.drv /gnu/store/ccc9wy6wfn2f5ss70y7cnhamfg29xxfg-python2-pycodestyle-2.4.0.drv /gnu/store/h29ii7953mzfpysjxhkr34vhn2xhyipb-python2-mccabe-0.6.1.drv /gnu/store/l8gnxji4rlcb87yl2qlaxmkbflvazqk8-python2-configparser-3.5.0.drv /gnu/store/8njy2x8hv5j13mcijndicrgfl2jqwlrb-unittest2-1.1.0.tar.xz.drv /gnu/store/1xjjyryz3nrpaa1vz0zhvypr501mpn4j-python2-traceback2-1.4.0.drv /gnu/store/v7lva1ap0m3fpxcpa2097f0gsih92il1-python2-linecache2-1.0.0.drv /gnu/store/w78r0mywxjqqj4zqzgra1q4p02v05c9x-python2-unittest2-1.1.0.drv /gnu/store/0zp9i8ksj0cg4lyv45kb0j2w4kysx0f2-python2-enum34-1.1.6.drv /gnu/store/d9h12q3x70ayyli4qr7hhq3zdrvr5w8k-python2-mock-2.0.0.drv /gnu/store/ddlfnzg8gh33algzg8prmkr06fc0qppa-python2-hypothesis-3.70.3.drv /gnu/store/i7rs3pbnpf3s5rd9w89nqm80xxyn505g-python2-coverage-4.4.1.drv /gnu/store/jly0spzsm7kxnsqfmwkqs5r5dx34b4lf-python2-functools32-3.2.3-2.drv /gnu/store/mvzagypypvn8hv644ddkw5hz1sh0kzv2-python2-pbr-minimal-3.0.1.drv /gnu/store/r1zlg9djch87cwlghdnx7wwa53f1yh68-python2-nose-1.3.7.drv /gnu/store/41q0l1hylzanwa4w2hrnr4bc21b22ywi-python2-pathlib2-bootstrap-2.3.2.drv /gnu/store/7r1xcdny7x3vy7mi804bgyl72a2i4nmz-python2-pytest-bootstrap-3.8.0.drv /gnu/store/bc6blr82kmzzhimipbn9j3sxcr6icfps-python2-funcsigs-bootstrap-1.0.2.drv /gnu/store/zsqxy0awzd7zddimgng77dix6icwac5l-python2-setuptools-scm-3.1.0.drv /gnu/store/28k5m2zz01jz19z5apanaypgyjkc1cp4-python2-pathlib2-2.3.2.drv /gnu/store/4d3xsc3x15qrgx68pkw42gv6aycsrryd-python2-pluggy-0.7.1.drv /gnu/store/50a0xl3h44282vb3qbvh85kfgwbzq3ys-python2-six-1.11.0.drv /gnu/store/6jx4jp6gbkni2ydqkdgla3rzbnwa1w0h-python2-six-bootstrap-1.11.0.drv /gnu/store/a9zi7l3z73cnigfxa1p462y9zwcmas8g-python2-pytest-runner-4.2.drv /gnu/store/bjws6pmv5r231jgmkbnxy4x86jh0rgpb-python2-atomicwrites-1.1.5.drv /gnu/store/dxpx5z0rq7akwqmwy9wprj4y9m7jh4pv-python2-more-itertools-4.3.0.drv /gnu/store/jbj3gpv4i1yrf93gwml8dsgx7ihjqd69-module-import-compiled.drv /gnu/store/jxp75ljabgj8kkpwhx0cliibkmn495wc-python2-py-1.5.4.drv /gnu/store/m388wnhx3gf66walgb2npx98vjgdcg9b-module-import.drv /gnu/store/nyn26kdrbfzh36g62rsp30h4cfs1mmah-python2-scandir-1.9.0.drv /gnu/store/rbz98wzwqbswp5fz9f5lpc802jp4p82d-python2-pytest-3.8.0.drv /gnu/store/w1inmhdd3nlkz2c3phiknjbg20an361n-python2-funcsigs-1.0.2.drv /gnu/store/xxca9rzi04k3m3cqyj3pbrmf3shs21av-python2-attrs-bootstrap-17.4.0.drv /gnu/store/b9dvzb5vz1d2s8lfb6xb6zvpv986ygw4-python2-fonttools-3.28.0.drv /gnu/store/x6kpijcjq31cnfjiahddmj52jyy93dpf-tcsh-6.20.00.tar.xz.drv /gnu/store/9dxhs1xgqvnip051qbk3fp5snn3lhwb8-boost_1_68_0.tar.xz.drv /gnu/store/bql3ni5g2ra6qic0wmncw9wjdqp7f1x2-tcsh-6.20.00.drv /gnu/store/4w00spnh6cg37p0jdz7dc9a4pb2l05hk-pcre-8.42.drv /gnu/store/gihrzdyf1k5nmlry7dxwm4j602h4s6jn-boost-1.68.0.drv /gnu/store/g6wcv1y0bqj5yimw2gj97gfwd2b5k7f1-libarchive-3.3.2.tar.xz.drv /gnu/store/vz1i6gmnnn22749my69n5v50f855xybn-lzo-2.10.drv /gnu/store/ah5j33bi3ymygxsrcr8r3pv0fs23m4la-Linux-PAM-1.2.1.tar.xz.drv /gnu/store/4mm2s9yxzjzr818sb0iw3ssflj71bspy-shishi-1.0.2.tar.xz.drv /gnu/store/nv116sgn1nahqnbfklbk9l9lsdnyg0ap-linux-pam-1.2.1.drv /gnu/store/nzaqj29k09c70lkc8zx0mpzfbkvsjla1-shishi-1.0.2.drv /gnu/store/g4rd9429i7cfax4vhrahcqqwgg9z6nll-unzip60.tar.xz.drv /gnu/store/9dgah55cs5r8a5wckaw0pmfgldr1d46i-unzip-6.0.drv /gnu/store/ibn47hr8qh0wy76jq2p0s1mm81k181wn-net-tools-1.60-0.479bb4a.drv /gnu/store/jwaznmglj03a8sn6kd4xpybmr95w6043-gnutls-3.5.18.tar.xz.drv /gnu/store/4cmc9d7c8x1l33mv6vvs91jhy5cn5wxm-cunit-2.1-3.drv /gnu/store/55kldr5f8ywqmcmrj2ax1h9r5k0k5vbd-jansson-2.11.drv /gnu/store/cjni13phddsqjyhl4v77m85s8khax236-libev-4.24.drv /gnu/store/nz2s23jmlxvzg5kw3hzbyklf3vzlnl8f-jemalloc-5.1.0.drv /gnu/store/wf369yzkapk66cxy5jrbsw9kmrd3b3vy-c-ares-1.14.0.drv /gnu/store/d073rmnynlhrvkhvhqygnwxlkyv1zc9a-libssh2-1.8.0.tar.xz.drv /gnu/store/wkkbv1kcbk0p7ryl90393cf93mjnh0cn-lzip-1.20.drv /gnu/store/1gr026h9g01iiyb828hgqhbh4vif3i6i-mit-krb5-1.16.1.drv /gnu/store/cq1ks7d18xc8nxxndr15wi0gavxqbgws-cyrus-sasl-2.1.26.tar.xz.drv /gnu/store/f8py4zn4gy566016kx0dv3ppj83p9cnn-automake-1.16.1.tar.xz.drv /gnu/store/ymi7crm2yjlhkis84aprf14dyh9fg6j5-autoconf-2.69.drv /gnu/store/32pa4sr2s8qqafwz5666kfd520cm9zrb-libtool-2.4.6.tar.xz.drv /gnu/store/69vljdh03kfx17xxfgsm2sjf9rnc1rm6-autoconf-wrapper-2.69.drv /gnu/store/vfcb2z2wxl4h8bdg3iyng9nm7lk8rlml-automake-1.16.1.drv /gnu/store/4sgqikml6f6nvxvd93ii2xnzn02jqmjj-libtool-2.4.6.drv /gnu/store/9skg19shbsal0l0bajnv1vnrj75b87g9-bdb-5.3.28.drv /gnu/store/z10bjm91jpxvjh3921xdzrgyib802ns0-cyrus-sasl-2.1.26.drv /gnu/store/18ixgx50lpqrm7c4lgzh6wc60j2d82jf-psutils-17.drv /gnu/store/rq9w87gk5jsmj9cf4gwzjj4zil18bava-groff-1.22.3.tar.xz.drv /gnu/store/2jgvb56kvvhkb52yc4z8vm6s4hz8n7fl-groff-1.22.3.drv /gnu/store/70bcxynv21wm624784zbqr4wz8wakp1r-openldap-2.4.46.drv /gnu/store/7iyhhax8m9wqisha355q1rf03lk9s624-libidn2-2.0.5.drv /gnu/store/87hzb4qzyk8vl1fqf1k6k8r151mknhkz-libtasn1-4.13.drv /gnu/store/dyhysj4djvb891wpn6hnbpf1jb85cdmr-libssh2-1.8.0.drv /gnu/store/mwvz987pnc2h1hxfvh6iy0202h0fg5dk-nghttp2-1.32.0.drv /gnu/store/vd09cmlqsaw4fixh7xqwdkpdac38hrbh-gnutls-3.5.18.drv /gnu/store/w5ayiv3jrmb6d7d614w9ahwjg6m67jyv-libidn-1.35.drv /gnu/store/y651q2i1fvpr2d35zimi6xbiycj6srpz-gss-1.0.3.drv /gnu/store/zmwvhkiv5cgq8anb0lnc3gy8y9j4kzrx-nettle-3.4.drv /gnu/store/330v3vg07kv3wg10kfsrxq1sx6gah7pr-file-5.33.drv /gnu/store/hc4vx0rkbpmxhvvz95s8bm68s76gzq2x-curl-7.61.1.drv /gnu/store/j83gwihrcjw2hd11jsx4cyw3b1jzjlj6-libuv-1.23.0.drv /gnu/store/kpb356kq71xq7xda03hsj2v3mqqfxdy8-rhash-1.3.6.drv /gnu/store/vk3pgqysvyib66n3hdcx8v47mvhdbg85-libarchive-3.3.2.drv /gnu/store/w4iwzmvb7v1mk2344gd2rhrizyc3sfvz-cmake-3.12.2.tar.xz.drv /gnu/store/scbk06qnkcbphydgrzhghb420rv9n5vh-nasm-2.13.03.drv /gnu/store/1vfzg7vpidawkrq62ywa687fymk7pav2-lcms-2.9.drv /gnu/store/68h8ifir3c6qxhbfq38y1hyfydbbcdzs-libjpeg-turbo-2.0.0.drv /gnu/store/9701719rvn9sx3v4536fp5b5y2slc0pl-cmake-3.12.2.drv /gnu/store/fxcnkg1l44xaqynlvlbzvqgci61q66g5-module-import.drv /gnu/store/imyhz1cpfr0hr4hhw69wiryd2mf7z03x-module-import-compiled.drv /gnu/store/qr5nvlalj2j6kb6xwlrzbh5h4jgwrm0a-openjpeg-2.3.0.drv /gnu/store/rspbfm5s6jysh8aq3jlf3c1jlli9jqzh-cairo-1.14.12.drv /gnu/store/jgpbn052xkh2yx1spkaxfv3vdc0qwzx4-tiff-4.0.9.tar.xz.drv /gnu/store/la89w2rv7906nibn64kjpk86qqprh0jm-jbig2dec-0.15.tar.xz.drv /gnu/store/391s09gr41lhvhkm87s1glvi2vbhg2sa-ghostscript-9.24.tar.xz.drv /gnu/store/79hscx83qkpkgqb7vc14a4nc3l2njg92-jbig2dec-0.15.drv /gnu/store/k5d2h2d3qwkkq6hamrfv2xqh98lh4hnc-libpaper-1.1.24.drv /gnu/store/qcxma3038ygysypp6rgasfxkp797bidq-libtiff-4.0.9.drv /gnu/store/0ip03rh8qhvxcps01s14nmf5rl9jz8na-cairo-1.14.12.tar.xz.drv /gnu/store/cl0mb707i2iv3jvhyk9b26vvdywjihxp-ghostscript-9.24.drv /gnu/store/j8nc5yl63755g52g0wbvfxidv9a61dcs-poppler-0.68.0.drv /gnu/store/qb14zigyffcap09a3vxav7px6xqd479r-libspectre-0.2.8.drv /gnu/store/pacgkri88pd2f306c8fisb3dcljwxw09-libXt-1.1.5.tar.xz.drv /gnu/store/3qi523qqs4g80rgvb7ppf2l512mf3w4a-gs-fonts-8.11.drv /gnu/store/m6f6nxxx9x6m6ficq1kjal88hn13jzqf-gperf-3.1.drv /gnu/store/g57x458v8jd7jhmg2zr32pz51hi5pia8-tk8.6.8-src.tar.xz.drv /gnu/store/z1hj0p9yy6j9a9nsibn31c70hp0jq2r6-libxft-2.3.2.drv /gnu/store/21fvmbh6ij78jsqv8p7fbc3qmc4afb8d-tk-8.6.8.drv /gnu/store/9pjz9w044dqabprilwv8n6i38vszkknb-tcl-8.6.8.drv /gnu/store/mrnjfnw7hkwv90d5ylqph31d2f4qkm70-Python-2.7.15.tar.xz.drv /gnu/store/mvx66dbxpm12dpfzaz8j5zn3fp7vyjbm-gdbm-1.18.drv /gnu/store/rb29w2nn59kxqryfq48n55s305s9mshc-sqlite-3.24.0.drv /gnu/store/j39yf4wg9jyj2h49nvq1hzf4l1nsy5vg-dbus-1.12.10.tar.xz.drv /gnu/store/ablr2vf5j12x19fqv6dsk86swz8yifx7-gettext-0.19.8.1.tar.xz.drv /gnu/store/9psnljb4mjjf5djhjmpnsg99rljk966h-acl-2.2.52.src.tar.xz.drv /gnu/store/8v6jzgpnadcm4blmq10zryy912x435c5-attr-2.4.47.drv /gnu/store/2kvfxildblic3rpmbrhqfvplhhgrmard-libcap-2.25.drv /gnu/store/nknfyjpq6yz91s0i5833cjyyfkdrgivy-acl-2.2.52.drv /gnu/store/1a2ygp0sigrv9j1fqws6ccfsi1b7gx0j-coreutils-8.30.drv /gnu/store/bflw2px8ddzicxdhk8kh6f2psci9ks4p-tzdata-2018d.drv /gnu/store/ihy3vp554vmf2ybjpjg3kdiwb22xhpz9-gettext-minimal-0.19.8.1.drv /gnu/store/kwfg3699z50f7gp7jnhj25ms73g1blgj-glib-2.56.2.tar.xz.drv /gnu/store/m64v0dzll9zvb8ibbsn1fl67i0x39rww-dbus-1.12.10.drv /gnu/store/cnjn7zsxcrhsl14rhyqhga5i1kfwv313-indent-2.2.10.drv /gnu/store/ybq3whhjgychhljk8015l3di0qc73r9v-bison-3.0.5.drv /gnu/store/8654yb7828ljfrq2z2pswjz8szlc61w3-flex-2.6.4.drv /gnu/store/d23lk2vlvsdsyy165iqlz5awvjcg3ims-gobject-introspection-1.56.1.tar.xz.drv /gnu/store/jdpgzjm8kzx14pfmh99apfwkmwyjs6sm-glib-2.56.2.drv /gnu/store/wqvjkpp60785qv61xfwmb18jlc7si1m9-python2-2.7.15.drv /gnu/store/br1hk2h8y8h56p1va8hw4swy8cjx90wq-gobject-introspection-1.56.1.drv /gnu/store/j7ks2pabi1bwcclvi23giqw6rfzshrl9-python-3.7.0.drv /gnu/store/jl5ml0ykc205qzd9qiiqgnw1n112mkky-python-wrapper-3.7.0.drv /gnu/store/sjabrfd8ld87qcxq4fj6v8zsiz79kqxm-which-2.21.drv /gnu/store/hf9296iw3fx6i7id6c75243xr7gs3xbb-libgd-2.2.5.tar.xz.drv /gnu/store/nv21wg2dmza1fxjy8ryqp948mwa5xnfh-bzip2-1.0.6.drv /gnu/store/f4rywr441c85kx6xad1cylj6zdnc5l7g-openssl-1.0.2p.tar.xz.drv /gnu/store/0405s3msq7597fdigwap5dz7cvq0r6xv-Python-3.7.0.tar.xz.drv /gnu/store/834jh1i2pa9ji0y19cqqjcj0cd1hhji3-openssl-1.0.2p.drv /gnu/store/yk7n9qhphsia9m08gjk0svafbxzy465j-readline-7.0.tar.xz.drv /gnu/store/a0l2plf8zfypdhh8mnpwl2ryaw04ykqs-readline-7.0.5.drv /gnu/store/c6gy9hjipca5gkvimxafj5z7lkizr4wc-ncurses-6.1.drv /gnu/store/5x29i5bpwsy1acn2gxh7789vjzkvg975-module-import-compiled.drv /gnu/store/sl0aqj5f72z45w6svp3aypc8f1jxysx7-bash-4.4.23.drv /gnu/store/v2f59p5g404m2nk6pwff4fw5fl62xkpz-module-import.drv /gnu/store/9r0qw0i0f99kfngpdpn989g4jw15fvln-libgcrypt-1.8.3.tar.xz.drv /gnu/store/49xngblbl91y2w7gz5qka6fr21aw0d2f-xz-5.2.4.drv /gnu/store/50rg4jiiwdqdg9xg0x19mrs21djjwpa1-libxml2-2.9.8.drv /gnu/store/gpfljxgx93nncinc51plvjblbm54fbb0-libgcrypt-1.8.3.drv /gnu/store/h31qc5jlvv09faq392a82mwfk4wq840z-libxslt-1.1.32.tar.xz.drv /gnu/store/jk5dsb80hfqhbcj8sywbw688vy0gq04h-libgpg-error-1.32.drv /gnu/store/005sww4vpb05nbqsdyms61xhsygq8wg9-xcb-proto-1.13.drv /gnu/store/6ch1r1nfs261b3200csan57dkzvcyivd-libxslt-1.1.32.drv /gnu/store/h1mblxgbywpbvlpbkd4vh5z7nig523rf-python-minimal-wrapper-3.7.0.drv /gnu/store/xl9pbww96cyrg2pd5alkq7linz5hr0r4-python-minimal-3.7.0.drv /gnu/store/giihhfcvzbprl3j4jv08yzl2vl6fcjwh-libbsd-0.9.1.drv /gnu/store/zg8ndpy71gb0rj36w8s4kb50qfnqcmwn-xtrans-1.3.5.drv /gnu/store/083w8h3d719pwv1cv2al2r6c83cvaqmw-libffi-3.2.1.tar.xz.drv /gnu/store/9m2qa2n7laivi3fbjahg4a63a4sv6as6-bash-4.4.tar.xz.drv /gnu/store/gcylp6j6dkxnm35i8qx6v6smfdfbqvrh-bash-minimal-4.4.23.drv /gnu/store/hwgmvhc51wx6n2nk71clhfqdj0vvfchd-libffi-3.2.1.drv /gnu/store/070vnahp6iy5yhgrq6ny083isv0d2g4g-guile-2.0.14.drv /gnu/store/08nz5l13l3xcjb2m9ynjmn313rfmq0rw-libxext-1.3.3.drv /gnu/store/0bia2h4zx0m3ydkdpqv0qpr062n05681-libxau-1.0.8.drv /gnu/store/0pgw9pr3wqyam9x83wzq75ab1xv13lfn-libpng-1.6.34.drv /gnu/store/1w6hppji0jag8hrdsxrhzls998d4dvm8-libice-1.0.9.drv /gnu/store/1zgflgy2x48mg84aisfzprman2kyzymg-libxcb-1.13.drv /gnu/store/24zw4azrlv55d2kmg4qk47z6q9mlx19q-libjpeg-9c.drv /gnu/store/4h0dwn6b6m4nl6368m1n5v6pjy8vrwpj-libpthread-stubs-0.4.drv /gnu/store/6c1p7dv8rjlvnj1l7p7fdw8zcdm67273-icu4c-62.1.drv /gnu/store/6i5d4x9ncccsawr11snv4hwnbnavj6k9-libxrender-0.9.10.drv /gnu/store/6rv6smrqf5d7hkn503ksvdwq7p7gk2cv-libxaw-1.0.13.drv /gnu/store/6ywzsnnl4wvm0x5w5j0f6dmrai8np385-gts-0.7.6.drv /gnu/store/6zwxx9l9mr8vmnkmp8dnp13nmals2h37-libxmu-1.1.2.drv /gnu/store/84y441mlgcwmm0iqxhvmkzbasvbimdvl-libsm-1.2.2.drv /gnu/store/8hshwki238vgwmh016s13m8l8z8a9aj4-gd-2.2.5.drv /gnu/store/8icygsr1ymgb7dsmiai06p83d91imq6c-libx11-1.6.6.drv /gnu/store/8jcad438imknc1ajz9zvz4jr4wibg19i-harfbuzz-1.8.8.drv /gnu/store/ar6gq40s08mb1flr2i613hyxdcsmng4g-pango-1.42.4.drv /gnu/store/br42l5f811k3yxmjb5p0g2lpfa8bpalf-fontconfig-2.13.1.drv /gnu/store/dv3b809qi1610w26l8263dwr0am7q105-libxt-1.1.5.drv /gnu/store/gg87iia8pxh549bfffvmdi4i4sck9z78-cairo-1.14.12.drv /gnu/store/ginq25h0xfiv5dmw5hdv898nsd443bkz-xorgproto-2018.4.drv /gnu/store/ixhzivppsarpx8ysgqpfqhaci3yrqdfj-swig-3.0.12.drv /gnu/store/j9wmgny74q5v7gs5bwq4d4wziz4c1byi-graphite2-1.3.12.drv /gnu/store/jgmscbf0rcq38dvm0avg1nm8v921cxpa-pixman-0.34.0.drv /gnu/store/kf0jq8dswkccyn7d58rpjddffq4q0wcz-expat-2.2.6.drv /gnu/store/l5c7hcj1pfjjm5cyqj7amh2hccc26k88-libxdmcp-1.1.2.drv /gnu/store/la9wxnhpwhgi2qqgzqy3bq6kaxczvz41-bison-3.0.5.drv /gnu/store/mfm1q9i1n7gz78ip5nsd1i8gqhk2sin8-util-linux-2.32.1.drv /gnu/store/p5sc6acsqplj1lj6lxqn7gbksynplj24-zlib-1.2.11.drv /gnu/store/qki9nf7a4nch40g72j2mlr0if2c7kaqh-freetype-2.9.1.drv /gnu/store/v24xs418zrqcjymk1409fykmykw9l9x6-fribidi-1.0.5.drv /gnu/store/zr7viwain7f5vax41bbkb9jqywaf65ma-util-macros-1.19.2.drv /gnu/store/zvalbg4gi2qlv6djmg632mg12a6whxn2-libxpm-3.5.12.drv /gnu/store/958c1r55qawp8zzk7isrmj2gc453aayk-pkg-config-0.29.2.drv /gnu/store/i1956icy2ygfms3f4nfr3gv73fzchlv7-libatomic-ops-7.6.6.drv /gnu/store/4wdpldc01lwqdqp1hk5gv0qasmczv1ks-perl-boot0-5.28.0.drv /gnu/store/4hm2li1by1c5v0mlmh21xy54pglij2z6-lzip-1.20.drv /gnu/store/cfnlg9kwmzs4cf22lp6015s3z83szcyi-ed-1.14.2.drv /gnu/store/fnykjyw0h9yiqp756yyz3g7pjfpyqwv2-module-import-compiled.drv /gnu/store/jkjiryh0v8i4zrc4mavlh8cikmmwf4sh-m4-1.4.18.tar.xz.drv /gnu/store/hss34q6152bincdvpmnfavpsg0pq17iv-m4-1.4.18.drv /gnu/store/i0a8ki7377q9c9zg4v065b2y8996qy91-gmp-6.1.2.tar.xz.drv /gnu/store/c7xki19y7dgv16klicyfxfc4fa9wc33g-glibc-headers-mesboot-2.16.0.drv /gnu/store/lavsjb6dhrgpw9irb2gf23pa7qnsz65c-mesboot-headers-0.18-0.08f04f5.drv /gnu/store/r9dhvhhhg8y17ymifrd0wn4ji4p0608z-gcc-core-mesboot-2.95.3.drv /gnu/store/b8sq9jrfdg6zi31m4m1qzs5rvz0jhyas-tcc-boot0-0.9.26-4.46ee3f1.drv /gnu/store/iz3qnd398va3qhprnb60vxdb9ai45h08-mes-boot-0.18-0.08f04f5.drv /gnu/store/mzgarfi6pyg6ybfnwj6vmn8wym0czmir-tcc-boot-0.9.27.drv /gnu/store/864c8w439yw51xxfpzqklm8giamqzrvl-binutils-mesboot0-2.20.1a.drv /gnu/store/jm7dpc4hmlgizzvch86sjl9dggsjx4zk-make-mesboot0-3.80.drv /gnu/store/s94wgv4v9am10i7x94cpdxnv6yr7qy92-gcc-mesboot0-2.95.3.drv /gnu/store/yaq4a6am5lm36q0kj2icb5qv08zzck18-glibc-mesboot0-2.2.5.drv /gnu/store/014av6h60db5ixavrbbk51qpdl7f19jw-make-mesboot-3.82.drv /gnu/store/96wl9w1kg9mq3cv8wdfzhkmapyyp31ch-gcc-mesboot1-wrapper-4.7.4.drv /gnu/store/qrv7qb8w4yyb88wbs9399l4vki85kfsl-diffutils-mesboot-2.7.drv /gnu/store/zrcd2ilg4bja9vrzvas48g0c9ah2hf7k-gcc-mesboot1-4.7.4.drv /gnu/store/g19myai8znkydp4wyzmadzxid8p4620c-gcc-mesboot-4.9.4.drv /gnu/store/hv2wnd46a5zq9c9yqx61pvi9246qkwsv-binutils-mesboot-2.20.1a.drv /gnu/store/waqjqg1b733zj2q7ii22yqfqzlwhjldc-glibc-mesboot-2.16.0.drv /gnu/store/261mb7wwa7qs9ldaz6jknviy0p3ll9l5-ld-wrapper-boot3-0.drv /gnu/store/3ad9mfnn4y9xnm85w4bvfbfc9h8jlkx4-ld-wrapper-boot0-0.drv /gnu/store/3ls6lc1qf345fm470n6a1ida5xzjakgq-findutils-boot0-4.6.0.drv /gnu/store/461mg5i4q0pd0q0wvrbn8n6d87i48nim-diffutils-boot0-3.6.drv /gnu/store/p9ang26iqfl2fpdgqciygd683kqam3pg-gcc-mesboot-wrapper-4.7.4.drv /gnu/store/sv4im4qld0gy2fb4ad0nnwhjwydvxx2d-file-boot0-5.33.drv /gnu/store/yngx3kvncs98mkq3mka0ibd1svkc7fnp-make-boot0-4.2.1.drv /gnu/store/yyzgslk3878k4ncc2j0lglphmkp6sidz-binutils-cross-boot0-2.31.1.drv /gnu/store/161ynzclzh5q0xf6pqbawhx9rr9fgbbb-xz-5.2.4.drv /gnu/store/1fchmwdj9v9hz89hdfzz20dpblwmq3cq-gmp-6.1.2.drv /gnu/store/1jwkxq2g1jndfy9qf84l35knzshbyjap-tar-1.30.drv /gnu/store/2nggvgy1gx3zh2gny8f40drnmn1ql0sq-patch-2.7.6.drv /gnu/store/3b83v0xmnnb1hiiz5m8bph8jv83lza39-module-import-compiled.drv /gnu/store/3rkwbp6ygjv7llknmnyvg27rl0zan201-linux-libre-headers-4.14.67.drv /gnu/store/51wh1j7z8x7k8wnivmh5wizyhfhf5c4j-bash-minimal-4.4.23.drv /gnu/store/5ablb8j0nz3ld180iqngxw90h8wrq5qg-libltdl-2.4.6.drv /gnu/store/5sn4p7cz4y6x08gw44lbsqwvpl4l3g2v-help2man-1.47.6.drv /gnu/store/8jli3rbikb4bk6sx3bkwx051v0sy5jzx-diffutils-3.6.drv /gnu/store/8xp1wrpllnij44a9gs5g09j612c0h0nk-libgc-7.6.6.drv /gnu/store/8zpynp6skz6w6wkjsq04ylaijsdzsy5j-graphviz-2.40.1.drv /gnu/store/as7naflfvd0fh3s31llv9ff4sm3krmbf-gzip-1.9.drv /gnu/store/f12932877gzp7dja2n4xawa4xc6mij2m-make-4.2.1.drv /gnu/store/g3kz7b5ipp5075anfzvldqj21k93l7x1-findutils-4.6.0.drv /gnu/store/gwrqz84fml3hbnrldh5fmrswai4h01y4-mescc-tools-0.5.2.drv /gnu/store/hlal0q9xajp78llp4hd8y36nwlk0g99m-sed-4.5.drv /gnu/store/ijs6qvdv82kd0wx78fzxgj8z4503ps67-gcc-cross-sans-libc-i686-unknown-linux-gnu-5.5.0.drv /gnu/store/j5mbx938506x1hvz7cz0m28ld033y6da-texinfo-6.5.drv /gnu/store/j93g2kba6v2fx2mxznva643rysxj6g1s-coreutils-8.30.drv /gnu/store/jsxpryfsad91fgsq12413k83g5amdiha-module-import.drv /gnu/store/kv4jyl04wpni464wqdpb1zbkxvxy9qfp-bzip2-1.0.6.drv /gnu/store/kvvyidgf4maqgrw849fjpd1d6fc4raya-ld-wrapper-0.drv /gnu/store/lgdpfzh8xpx4al7qpjijmz8gqvvp6hc7-gawk-4.2.1.drv /gnu/store/liazh7rgnbrwjafr9n96vhqshsc349wf-guile-2.2.4.drv /gnu/store/mbsz1vdqphi39irmf3cjkxwhl1rqqvlp-binutils-cross-i686-unknown-linux-gnu-2.31.1.drv /gnu/store/mc4cf91hx15br69xirgmxf91wr370s69-perl-5.28.0.drv /gnu/store/mvkapqsai9fmz8ap97vh9f918lwh201w-binutils-2.31.1.drv /gnu/store/n5255d3wvs6fmpkf729ng4hm3wd2pgq3-libunistring-0.9.10.drv /gnu/store/pc1sva58l7v0ba5bcyygbbyc8yn554xq-nyacc-0.86.0.drv /gnu/store/qgipdiy5xdbgf6fmbkcx2iqxivymiv4p-gcc-5.5.0.drv /gnu/store/sy64hwy2npm6fbpc8sya5j6wb4l6iyws-file-5.33.drv /gnu/store/w91h9hskim0ah2s6i5rhsap8ypbpw1hr-glibc-utf8-locales-2.28.drv /gnu/store/wmvasmfhjgxa34fsqh8j8lj3glz2bwcd-grep-3.1.drv /gnu/store/xicdrjg067w985vr6b334fafsbdi6ayg-guile-2.2.4.drv Building /gnu/store/iz3qnd398va3qhprnb60vxdb9ai45h08-mes-boot-0.18-0.08f04f5.drv - x86_64-linux --8<---------------cut here---------------end--------------->8--- so the sha hashes may not hold up. I'll add another comment after this and its i686-linux counterpart have finished... [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-bootstrap-Add-mes-stripped-mes-bootstrap-tarball.patch --] [-- Type: text/x-patch, Size: 3566 bytes --] From 47ff097d274d1f6eb1c386adb727106d76692c5a Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen <janneke@gnu.org> Date: Sat, 20 Oct 2018 08:59:19 +0200 Subject: [PATCH 1/3] bootstrap: Add %mes-stripped, %mes-bootstrap-tarball. * gnu/packages/make-bootstrap.scm (%mes-stripped): New variable. (%mes-bootstrap-tarball): New variable. * gnu/packages/mes.scm: Oops, remove stray (gnu packages commencement) module include. --- gnu/packages/make-bootstrap.scm | 35 +++++++++++++++++++++++++++++++++ gnu/packages/mes.scm | 1 - 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index 3553737f1..7bfba3c14 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -38,6 +38,7 @@ #:use-module (gnu packages libunistring) #:use-module (gnu packages linux) #:use-module (gnu packages hurd) + #:use-module (gnu packages mes) #:use-module (gnu packages multiprecision) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -47,6 +48,7 @@ %glibc-bootstrap-tarball %gcc-bootstrap-tarball %guile-bootstrap-tarball + %mes-bootstrap-tarball %bootstrap-tarballs %guile-static-stripped)) @@ -533,6 +535,35 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." #t)))) (inputs `(("gcc" ,%gcc-static))))) +(define %mes-stripped + ;; The subset of Mes files needed for bootstrap. + (package + (inherit mes) + (name "mes-stripped") + (build-system trivial-build-system) + (source #f) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (srfi srfi-1) + (srfi srfi-26) + (guix build utils)) + + (setvbuf (current-output-port) _IOLBF) + (let* ((out (assoc-ref %outputs "out")) + (libdir (string-append out "/lib")) + (mes (assoc-ref %build-inputs "mes"))) + + (copy-recursively (string-append mes "/lib") libdir) + (copy-recursively (string-append mes "/share/mes/lib") libdir) + (for-each remove-store-references + (remove (lambda (file) (or (string-suffix? ".h" file) + (string-suffix? ".c" file))) + (find-files out ".*"))) + #t)))) + (inputs `(("mes" ,mes))))) + (define %guile-static ;; A statically-linked Guile that is relocatable--i.e., it can search ;; .scm and .go files relative to its installation directory, rather @@ -700,6 +731,10 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ;; A tarball with the statically-linked, relocatable Guile. (tarball-package %guile-static-stripped)) +(define %mes-bootstrap-tarball + ;; A tarball with Mes ASCII Seed and binary Mes C Library. + (tarball-package %mes-stripped)) + (define %bootstrap-tarballs ;; A single derivation containing all the bootstrap tarballs, for ;; convenience. diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 4f98cd24f..c4cb118e3 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -21,7 +21,6 @@ (define-module (gnu packages mes) #:use-module (gnu packages) #:use-module (gnu packages base) - #:use-module (gnu packages commencement) #:use-module (gnu packages cross-base) #:use-module (gnu packages gcc) #:use-module (gnu packages graphviz) -- 2.18.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-bootstrap-FTBFS-hack-for-icu4c-python-more-itertools.patch --] [-- Type: text/x-patch, Size: 2227 bytes --] From dea5dfa033624203cc8292466246745340f7787b Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen <janneke@gnu.org> Date: Sat, 20 Oct 2018 09:09:22 +0200 Subject: [PATCH 2/3] bootstrap: FTBFS hack for icu4c, python-more-itertools, swig. * gnu/packages/icu4c.scm (icu4c)[i686-linux]: Disable tests. * gnu/packages/python.scm (python-more-itertools)[i686-linux]: Likewise. * gnu/packages/swig.scm (swig)[i686-linux]: Likewise. --- gnu/packages/icu4c.scm | 3 ++- gnu/packages/python.scm | 2 ++ gnu/packages/swig.scm | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index cbba9aa42..ed243a510 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -47,7 +47,8 @@ (inputs `(("perl" ,perl))) (arguments - `(#:configure-flags + `(#:tests? ,(not (equal? (%current-system) "i686-linux")) ; %bootstrap-mes FTBFS hack + #:configure-flags '("--enable-rpath" ,@(if (let ((s (or (%current-target-system) (%current-system)))) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e4926ce30..6135e6e92 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -13517,6 +13517,8 @@ file system events on Linux.") (base32 "17h3na0rdh8xq30w4b9pizgkdxmm51896bxw600x84jflg9vaxn4")))) (build-system python-build-system) + (arguments + `(#:tests? ,(not (equal? (%current-system) "i686-linux")))) ; %bootstrap-mes FTBFS hack (propagated-inputs `(("python-six" ,python-six-bootstrap))) (home-page "https://github.com/erikrose/more-itertools") diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm index b931db412..2eb3cdb54 100644 --- a/gnu/packages/swig.scm +++ b/gnu/packages/swig.scm @@ -42,7 +42,8 @@ "0kf99ygrjs5616gsqhz1l7bib3a12izmxi7g48bwblbymr3z9ybw")))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:tests? ,(not (equal? (%current-system) "i686-linux")) ; %bootstrap-mes FTBFS hack + #:phases (modify-phases %standard-phases (add-after 'unpack 'set-env ;; Required since Perl 5.26.0's removal of the current -- 2.18.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #4: 0003-bootstrap-Add-bootstrap-mes.patch --] [-- Type: text/x-patch, Size: 3885 bytes --] From 04c237218d10756582e6dce5763eaca9704d13cf Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen <janneke@gnu.org> Date: Sat, 20 Oct 2018 09:02:39 +0200 Subject: [PATCH 3/3] bootstrap: Add %bootstrap-mes. This include bootstrap seeds mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz 14sbcm79ml4rgygxvx1135827g3ggfx1c1vchk77z26yibbdw9nh mes-stripped-0.18-0.08f04f5-i686-linux.tar.xz 1p116ya9n52852bryh34n7db4mhvi98qifmmwygl7nbyc4dz92jy built with the previous commit dea5dfa03 bootstrap: FTBFS hack for icu4c, python-more-itertools, swig. Todo: host these on ftp.gnu.org/pub/guix/... * gnu/packages/bootstrap.scm (%bootstrap-mes): New variable. --- gnu/packages/bootstrap.scm | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 82d229569..f43e405f8 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -49,6 +49,7 @@ %bootstrap-gcc %bootstrap-glibc %bootstrap-inputs + %bootstrap-mes %mescc-tools-seed %mes-seed %srfi-43 @@ -610,6 +611,65 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ (home-page #f) (license gpl3+))) +(define %bootstrap-mes + ;; The initial Mes. Uses binaries from a tarball typically built by + ;; %MES-BOOTSTRAP-TARBALL. + (package + (name "bootstrap-mes") + (version "0") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 popen)) + (let ((out (assoc-ref %outputs "out")) + (tar (assoc-ref %build-inputs "tar")) + (xz (assoc-ref %build-inputs "xz")) + (tarball (assoc-ref %build-inputs "tarball"))) + + (mkdir out) + (copy-file tarball "binaries.tar.xz") + (invoke xz "-d" "binaries.tar.xz") + (let ((builddir (getcwd)) + (bindir (string-append out "/bin"))) + (with-directory-excursion out + (invoke tar "xvf" + (string-append builddir "/binaries.tar")))))))) + (inputs + `(("tar" ,(search-bootstrap-binary "tar" (%current-system))) + ("xz" ,(search-bootstrap-binary "xz" (%current-system))) + ("tarball" ,(bootstrap-origin + (origin + (method url-fetch) + (uri (string-append + "http://lilypond.org/janneke/mes/" + (match (%current-system) + ("x86_64-linux" "mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz") + ("i686-linux" "mes-stripped-0.18-0.08f04f5-i686-linux.tar.xz")))) + (sha256 + (match (%current-system) + ("x86_64-linux" + (base32 + "14sbcm79ml4rgygxvx1135827g3ggfx1c1vchk77z26yibbdw9nh")) + ("i686-linux" + (base32 + "1p116ya9n52852bryh34n7db4mhvi98qifmmwygl7nbyc4dz92jy"))))))))) + (native-search-paths + (list (search-path-specification + (variable "C_INCLUDE_PATH") + (files '("share/mes/include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("share/mes/lib"))))) + (synopsis "Bootstrap binaries of Mes") + (description synopsis) + (home-page #f) + (license gpl3+))) + (define %mescc-tools-seed ; todo: add tarballs to alpha.gnu.org/pub/mes/bootstrap/ (let ((commit "dc4e20e74924a5c80a2b7a77b4d7b927234fa71c")) (origin -- 2.18.0 [-- Attachment #5: Type: text/plain, Size: 806 bytes --] > Besides we can consider hosting these binaries on ftp.gnu.org, under > /mes or /guix. Yes, this series was a prepeparation for that. I didn't want to store the previous, manually generated seeds there. it would be nice to store them under /guix and I would prefer that I didn't build them -- or at least that you (someone) reproduced them. >> --- a/gnu/packages/mes.scm >> +++ b/gnu/packages/mes.scm >> @@ -21,7 +21,6 @@ >> (define-module (gnu packages mes) >> #:use-module (gnu packages) >> #:use-module (gnu packages base) >> - #:use-module (gnu packages commencement) > > Indeed ‘commencement’ should never be used by other package modules, for > reasons having to do with circularity. > > Otherwise LGTM! Yay! Thanks for your review. Greetings, janneke ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes. 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:09 ` Ludovic Courtès 2 siblings, 0 replies; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-20 18:31 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 33038 Jan Nieuwenhuizen writes: > (attached, and also on my gitlab core-updates-next. Now for a > rebuild... > > The following derivations will be built: > /gnu/store/bphs45cqip5xh574azfkqn4lb0g53zqa-mes-0.18-0.08f04f5.drv > /gnu/store/v8d7ygp7pa7ry2cf1yxjhca8inyjy8b6-libffi-3.2.1.drv > /gnu/store/xbiq4rwjlbq42ycnk3g69fya8xvnl9ch-gzip-1.9.drv [...] > so the sha hashes may not hold up. I'll add another comment after this > and its i686-linux counterpart have finished... the i686-linux hash is identical, the x86_64-linux hash changed, I now have mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz 1lq4w6s5nqfxsffk0smg7cyrqnjls70kwwllbv8gzsjqjx4q3f2b mes-stripped-0.18-0.08f04f5-i686-linux.tar.xz 1p116ya9n52852bryh34n7db4mhvi98qifmmwygl7nbyc4dz92jy I have updated the x86_64 tarball on lilypond.org and my gitlab core-updates-next branch. I was mis-remembering earlier: Gábor and you managed to reproduce `hello', you both never re-built any bootstrap binaries... So we may have a reproducibility issue here, don't really know... janneke ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes. 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:09 ` Ludovic Courtès 2 siblings, 1 reply; 30+ messages in thread From: Marius Bakke @ 2018-10-21 20:37 UTC (permalink / raw) To: Jan Nieuwenhuizen, Ludovic Courtès; +Cc: 33038 [-- Attachment #1: Type: text/plain, Size: 675 bytes --] Jan Nieuwenhuizen <janneke@gnu.org> writes: >> It would be nice to maybe make this a separate commit (following the >> make-bootstrap.scm changes) so that you can state in the commit log >> which commit was used to build this binary. > > Ah yes, that's nice. Hmm, there's a slight complication because for the > i686-linux version I cheated; icu4c, python-more-itertools and swig fail > to build on core-updates-next. I added a hack and reverted that... > which is probably less than great. So I cleaned it up a bit and just > added it. FYI the issues mentioned here have been fixed in the 'core-updates' branch. I suppose you can still rebase on it, or just merge it. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes. 2018-10-21 20:37 ` Marius Bakke @ 2018-10-21 21:04 ` Ludovic Courtès 2018-10-21 21:28 ` Jan Nieuwenhuizen 0 siblings, 1 reply; 30+ messages in thread From: Ludovic Courtès @ 2018-10-21 21:04 UTC (permalink / raw) To: Marius Bakke; +Cc: 33038 Marius Bakke <mbakke@fastmail.com> skribis: > Jan Nieuwenhuizen <janneke@gnu.org> writes: > >>> It would be nice to maybe make this a separate commit (following the >>> make-bootstrap.scm changes) so that you can state in the commit log >>> which commit was used to build this binary. >> >> Ah yes, that's nice. Hmm, there's a slight complication because for the >> i686-linux version I cheated; icu4c, python-more-itertools and swig fail >> to build on core-updates-next. I added a hack and reverted that... >> which is probably less than great. So I cleaned it up a bit and just >> added it. > > FYI the issues mentioned here have been fixed in the 'core-updates' > branch. I suppose you can still rebase on it, or just merge it. Merging core-updates into core-updates-next sounds like a good idea. Thanks for letting us know, Marius! Ludo’. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes. 2018-10-21 21:04 ` Ludovic Courtès @ 2018-10-21 21:28 ` Jan Nieuwenhuizen 0 siblings, 0 replies; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-21 21:28 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 33038 Ludovic Courtès writes: > Marius Bakke <mbakke@fastmail.com> skribis: > >> Jan Nieuwenhuizen <janneke@gnu.org> writes: >> >>>> It would be nice to maybe make this a separate commit (following the >>>> make-bootstrap.scm changes) so that you can state in the commit log >>>> which commit was used to build this binary. >>> >>> Ah yes, that's nice. Hmm, there's a slight complication because for the >>> i686-linux version I cheated; icu4c, python-more-itertools and swig fail >>> to build on core-updates-next. I added a hack and reverted that... >>> which is probably less than great. So I cleaned it up a bit and just >>> added it. >> >> FYI the issues mentioned here have been fixed in the 'core-updates' >> branch. I suppose you can still rebase on it, or just merge it. > > Merging core-updates into core-updates-next sounds like a good idea. > > Thanks for letting us know, Marius! Great, merged and rebased core-updates-next on my gitlab. More admin work todo, but that's alright. janneke ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes. 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:09 ` Ludovic Courtès 2018-10-21 21:32 ` Jan Nieuwenhuizen 2 siblings, 1 reply; 30+ messages in thread From: Ludovic Courtès @ 2018-10-21 21:09 UTC (permalink / raw) To: Jan Nieuwenhuizen; +Cc: 33038 Hi! Jan Nieuwenhuizen <janneke@gnu.org> skribis: > Ludovic Courtès writes: [...] >> Please move the ‘use-modules’ form to the top level (non-top-level >> ‘use-modules’ works pretty much by chance). > > Sure, do you mean like this? > > $ git diff -w > diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm > index f33fc061e..f43e405f8 100644 > --- a/gnu/packages/bootstrap.scm > +++ b/gnu/packages/bootstrap.scm > @@ -623,12 +623,13 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ > `(#:guile ,%bootstrap-guile > #:modules ((guix build utils)) > #:builder > + (begin > + (use-modules (guix build utils) > + (ice-9 popen)) > (let ((out (assoc-ref %outputs "out")) > (tar (assoc-ref %build-inputs "tar")) > (xz (assoc-ref %build-inputs "xz")) > (tarball (assoc-ref %build-inputs "tarball"))) > - (use-modules (guix build utils) > - (ice-9 popen)) > > (mkdir out) > (copy-file tarball "binaries.tar.xz") Exactly. > I copied this from %bootstrap-gcc, do we want to to change this in all > bootstrap packages too? Yes, we should do that while we’re at it. > Ah yes, that's nice. Hmm, there's a slight complication because for the > i686-linux version I cheated; icu4c, python-more-itertools and swig fail > to build on core-updates-next. I added a hack and reverted that... > which is probably less than great. So I cleaned it up a bit and just > added it. > > So, now we three commits instead of this single one > > 0001-bootstrap-Add-mes-stripped-mes-bootstrap-tarball.patch > 0002-bootstrap-FTBFS-hack-for-icu4c-python-more-itertools.patch > 0003-bootstrap-Add-bootstrap-mes.patch > > > (attached, and also on my gitlab core-updates-next. Now for a > rebuild... Heh. :-) Well there’s the option of merging core-updates as Marius suggested, though that will mean yet another (partial) rebuild, so you’d have to be patient. WDYT? > From 04c237218d10756582e6dce5763eaca9704d13cf Mon Sep 17 00:00:00 2001 > From: Jan Nieuwenhuizen <janneke@gnu.org> > Date: Sat, 20 Oct 2018 09:02:39 +0200 > Subject: [PATCH 3/3] bootstrap: Add %bootstrap-mes. > > This include bootstrap seeds > > mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz > 14sbcm79ml4rgygxvx1135827g3ggfx1c1vchk77z26yibbdw9nh > > mes-stripped-0.18-0.08f04f5-i686-linux.tar.xz > 1p116ya9n52852bryh34n7db4mhvi98qifmmwygl7nbyc4dz92jy I think this info is not necessary here since those hashes appear in the file. > built with the previous commit > > dea5dfa03 bootstrap: FTBFS hack for icu4c, python-more-itertools, swig. In the final commit please write the full rather than the abbreviated commit hash. Anyway LGTM modulo maybe one rebuild and commit log tweak. Thank you! Ludo’. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes. 2018-10-21 21:09 ` Ludovic Courtès @ 2018-10-21 21:32 ` Jan Nieuwenhuizen 2018-10-23 21:00 ` bug#33038: " Jan Nieuwenhuizen 0 siblings, 1 reply; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-21 21:32 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 33038 Ludovic Courtès writes: >> + (begin >> + (use-modules (guix build utils) >> + (ice-9 popen)) > > Exactly. Ok, good! >> I copied this from %bootstrap-gcc, do we want to to change this in all >> bootstrap packages too? > > Yes, we should do that while we’re at it. I'll add a commit for all other packages, need to do a rebuild anyway :-) >> (attached, and also on my gitlab core-updates-next. Now for a >> rebuild... > > Heh. :-) > > Well there’s the option of merging core-updates as Marius suggested, > though that will mean yet another (partial) rebuild, so you’d have to be > patient. WDYT? Yes, just did that -- happy with Marius' info and suggestion. >> From 04c237218d10756582e6dce5763eaca9704d13cf Mon Sep 17 00:00:00 2001 >> From: Jan Nieuwenhuizen <janneke@gnu.org> >> Date: Sat, 20 Oct 2018 09:02:39 +0200 >> Subject: [PATCH 3/3] bootstrap: Add %bootstrap-mes. >> >> This include bootstrap seeds >> >> mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz >> 14sbcm79ml4rgygxvx1135827g3ggfx1c1vchk77z26yibbdw9nh >> >> mes-stripped-0.18-0.08f04f5-i686-linux.tar.xz >> 1p116ya9n52852bryh34n7db4mhvi98qifmmwygl7nbyc4dz92jy > > I think this info is not necessary here since those hashes appear in the > file. Ok. >> built with the previous commit >> >> dea5dfa03 bootstrap: FTBFS hack for icu4c, python-more-itertools, swig. > > In the final commit please write the full rather than the abbreviated > commit hash. Ok. > Anyway LGTM modulo maybe one rebuild and commit log tweak. Great, once everything builds I'll update core-updates-next on savannah, ping this bug and close it. Otherwise...oh well. Thanks! janneke ^ permalink raw reply [flat|nested] 30+ messages in thread
* bug#33038: [PATCH 3/6] bootstrap: Add %bootstrap-mes. 2018-10-21 21:32 ` Jan Nieuwenhuizen @ 2018-10-23 21:00 ` Jan Nieuwenhuizen 2018-10-24 16:18 ` [bug#33038] " Marius Bakke 2018-11-15 9:06 ` Preparing the reduced bootstrap tarballs Ludovic Courtès 0 siblings, 2 replies; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-23 21:00 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 33038-done Jan Nieuwenhuizen writes: >> Anyway LGTM modulo maybe one rebuild and commit log tweak. > > Great, once everything builds I'll update core-updates-next on savannah, > ping this bug and close it. Otherwise...oh well. Did those, pushed to core-updates-next as d0bb7ed61ed9e356c53de1a8e9bd6c2ec030ffb6 doc: Update Preparing to Use the Bootstrap Binaries. Marius has a couple of patches on his wip-gcc7 branch that we may already want to include in core-updates-next too, but I'll leave that to him. --8<---------------cut here---------------start------------->8--- bc05a8a9d gnu: Remove duplicate linux-libre-headers package from bootstrap inputs. c697fdfc1 gnu: gcc-boot0: Improve gcc-wrapper workarounds. 7c1ddb3a4 gnu: libstdc++-boot0: Improve gcc-wrapper workaround. 60111ea82 gnu: Remove gcc-for-libstdc++. --8<---------------cut here---------------end--------------->8--- I think that I'm "done" here, there's the `put new bootstrap binaries on ftp.gnu.org/pub/guix/...', are you taking care of that? Thanks! janneke ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes. 2018-10-23 21:00 ` bug#33038: " Jan Nieuwenhuizen @ 2018-10-24 16:18 ` Marius Bakke 2018-10-24 16:58 ` Jan Nieuwenhuizen 2018-11-15 9:06 ` Preparing the reduced bootstrap tarballs Ludovic Courtès 1 sibling, 1 reply; 30+ messages in thread From: Marius Bakke @ 2018-10-24 16:18 UTC (permalink / raw) To: Jan Nieuwenhuizen, Ludovic Courtès; +Cc: 33038-done [-- Attachment #1: Type: text/plain, Size: 2451 bytes --] Hello! Jan Nieuwenhuizen <janneke@gnu.org> writes: > Jan Nieuwenhuizen writes: > >>> Anyway LGTM modulo maybe one rebuild and commit log tweak. >> >> Great, once everything builds I'll update core-updates-next on savannah, >> ping this bug and close it. Otherwise...oh well. > > Did those, pushed to core-updates-next as > > d0bb7ed61ed9e356c53de1a8e9bd6c2ec030ffb6 > doc: Update Preparing to Use the Bootstrap Binaries. > > Marius has a couple of patches on his wip-gcc7 branch that we may > already want to include in core-updates-next too, but I'll leave that to > him. > > --8<---------------cut here---------------start------------->8--- > bc05a8a9d gnu: Remove duplicate linux-libre-headers package from bootstrap inputs. > c697fdfc1 gnu: gcc-boot0: Improve gcc-wrapper workarounds. > 7c1ddb3a4 gnu: libstdc++-boot0: Improve gcc-wrapper workaround. > 60111ea82 gnu: Remove gcc-for-libstdc++. > --8<---------------cut here---------------end--------------->8--- These fixes are purely cosmetic, but feel free to include them. I hope to merge the full branch before core-updates-next is started in a month or two, so they'll get there eventually. > I think that I'm "done" here, there's the `put new bootstrap binaries on > ftp.gnu.org/pub/guix/...', are you taking care of that? Is it possible to generate these somehow? The mirror at lilypond.org is serving me the wrong tarball: building /gnu/store/r9589sgf0d3hxcxg7vi3i5apnx3wcx76-mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz.drv... Starting download of /gnu/store/z1yrpzja9sivpi138xyjwxax575d7x4j-mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz From http://lilypond.org/janneke/mes/mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz... downloading from http://lilypond.org/janneke/mes/mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz... mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz 550KiB 739KiB/s 00:01 [##################] 100.0% sha256 hash mismatch for /gnu/store/z1yrpzja9sivpi138xyjwxax575d7x4j-mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz: expected hash: 1yhxqf1sm67gwjbkkc26m4lcscvpjfmi71bzy8rhysal4lcj1vc8 actual hash: 1lq4w6s5nqfxsffk0smg7cyrqnjls70kwwllbv8gzsjqjx4q3f2b hash mismatch for store item '/gnu/store/z1yrpzja9sivpi138xyjwxax575d7x4j-mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz' build of /gnu/store/r9589sgf0d3hxcxg7vi3i5apnx3wcx76-mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz.drv failed [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes. 2018-10-24 16:18 ` [bug#33038] " Marius Bakke @ 2018-10-24 16:58 ` Jan Nieuwenhuizen 0 siblings, 0 replies; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-24 16:58 UTC (permalink / raw) To: Marius Bakke; +Cc: 33038-done Marius Bakke writes: Hi! >> Marius has a couple of patches on his wip-gcc7 branch that we may >> already want to include in core-updates-next too, but I'll leave that to >> him. >> >> --8<---------------cut here---------------start------------->8--- >> bc05a8a9d gnu: Remove duplicate linux-libre-headers package from bootstrap inputs. >> c697fdfc1 gnu: gcc-boot0: Improve gcc-wrapper workarounds. >> 7c1ddb3a4 gnu: libstdc++-boot0: Improve gcc-wrapper workaround. >> 60111ea82 gnu: Remove gcc-for-libstdc++. >> --8<---------------cut here---------------end--------------->8--- > > These fixes are purely cosmetic, but feel free to include them. I hope > to merge the full branch before core-updates-next is started in a month > or two, so they'll get there eventually. Ok. Then I'd suggest we take them in whenever it's opportune to do so. Possibly with a new seed generation, putting binaries on gnu.org. >> I think that I'm "done" here, there's the `put new bootstrap binaries on >> ftp.gnu.org/pub/guix/...', are you taking care of that? > > Is it possible to generate these somehow? The mirror at lilypond.org is > serving me the wrong tarball: Ouch; yes. I get the same, wrong hash on the lilypond.org download. Luckily the hashes that I committed are correct. I used `guix download' of the build and didn't always update lilypond.org (I failed to do so this last time...oops). --8<---------------cut here---------------start------------->8--- 18:46:50 janneke@dundal:~/src/guix-wip $ git checkout -B wip-seed 668ffe1e4 Reset branch 'wip-seed' 18:46:53 janneke@dundal:~/src/guix-wip $ make .... 18:46:58 janneke@dundal:~/src/guix-wip $ ./pre-inst-env guix build mes-stripped-tarball /gnu/store/nyajrfqv40w3xr21pwpdr6plz2l0xzz6-mes-stripped-tarball-0.18-0.08f04f5 18:47:05 janneke@dundal:~/src/guix-wip $ guix hash /gnu/store/nyajrfqv40w3xr21pwpdr6plz2l0xzz6-mes-stripped-tarball-0.18-0.08f04f5/mes-stripped-0.18-0.08f04f5-x86_64-linux.tar.xz 1yhxqf1sm67gwjbkkc26m4lcscvpjfmi71bzy8rhysal4lcj1vc8 $ guix hash /gnu/store/nyajrfqv40w3xr21pwpdr6plz2l0xzz6-mes-stripped-tarball-0.18-0.08f04f5 18:49:08 janneke@dundal:~/src/guix-wip $ ./pre-inst-env guix build --system=i686-linux mes-stripped-tarball --substitute-urls="http://192.168.32.125:8181 http://192.168.32.123:8181 http://192.168.32.121:8181 http://192.168.32.122:8181 https://berlin.guixsd.org" /gnu/store/s0dsrq9mjan4qkyl8nfmbdha0p9mscyc-mes-stripped-tarball-0.18-0.08f04f5 18:49:21 janneke@dundal:~/src/guix-wip $ guix hash /gnu/store/s0dsrq9mjan4qkyl8nfmbdha0p9mscyc-mes-stripped-tarball-0.18-0.08f04f5/mes-stripped-0.18-0.08f04f5-i686-linux.tar.xz 1p116ya9n52852bryh34n7db4mhvi98qifmmwygl7nbyc4dz92jy --8<---------------cut here---------------end--------------->8--- I have updated the lilypond.org dowload...sorry, and thanks for your report! janneke ^ permalink raw reply [flat|nested] 30+ messages in thread
* Preparing the reduced bootstrap tarballs 2018-10-23 21:00 ` bug#33038: " Jan Nieuwenhuizen 2018-10-24 16:18 ` [bug#33038] " Marius Bakke @ 2018-11-15 9:06 ` Ludovic Courtès 2018-11-15 15:44 ` Jan Nieuwenhuizen 1 sibling, 1 reply; 30+ messages in thread From: Ludovic Courtès @ 2018-11-15 9:06 UTC (permalink / raw) To: Jan Nieuwenhuizen; +Cc: guix-devel Hello! (This is a followup to <https://bugs.gnu.org/33038>.) Jan Nieuwenhuizen <janneke@gnu.org> skribis: > Did those, pushed to core-updates-next as > > d0bb7ed61ed9e356c53de1a8e9bd6c2ec030ffb6 > doc: Update Preparing to Use the Bootstrap Binaries. [...] > I think that I'm "done" here, there's the `put new bootstrap binaries on > ftp.gnu.org/pub/guix/...', are you taking care of that? I (finally!) run “guix build bootstrap-tarballs” on ‘core-updates-next’, but that was a bit silly of me since that built the x86_64-linux tarballs—i.e., not the “reduced seed.” So I was about to re-run it with “-s i686-linux”, but I noticed the following issue in (gnu packages make-bootstrap): --8<---------------cut here---------------start------------->8--- (define %bootstrap-tarballs ;; A single derivation containing all the bootstrap tarballs, for ;; convenience. (package [...] (inputs `(("guile-tarball" ,%guile-bootstrap-tarball) ,@(match (%current-system) ("i686-linux" `(("mescc-tools-seed" ,(@ (gnu packages bootstrap) %mescc-tools-seed)) ("mes-seed" ,(@ (gnu packages bootstrap) %mes-seed)) ("srfi-43" ,(@ (gnu packages bootstrap) %srfi-43)) ("tinycc-seed" ,(@ (gnu packages bootstrap) %tinycc-seed)))) --8<---------------cut here---------------end--------------->8--- This does not actually build the bootstrap tarballs; instead it returns the pre-built seeds (also the ‘%tinycc-seed’ variable doesn’t exist.) What we would need here is something to build the things listed in ‘%bootstrap-inputs’, namely: ‘linux-libre-headers-stripped-4.14.26-i686-linux.tar.xz’ (easy :-)), ‘mescc-tools-seed-XYZ.tar.gz’, and ‘mes-stripped-0.18-0.08f04f5-i686-linux.tar.xz’ (do we really need an x86_64 version of this Mes?). Does that make sense? Sorry for the delay, and apologies if I overlooked something! Ludo’. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: Preparing the reduced bootstrap tarballs 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 0 siblings, 1 reply; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-11-15 15:44 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel Ludovic Courtès writes: Hi! > (This is a followup to <https://bugs.gnu.org/33038>.) > I (finally!) run “guix build bootstrap-tarballs” on ‘core-updates-next’, > but that was a bit silly of me since that built the x86_64-linux > tarballs—i.e., not the “reduced seed.” > > So I was about to re-run it with “-s i686-linux”, but I noticed the > following issue in (gnu packages make-bootstrap): > > (define %bootstrap-tarballs > ;; A single derivation containing all the bootstrap tarballs, for > ;; convenience. > (package Ah right. I saw that several times but did not use it. I think because initially it was of no use. It would be nice if this built everything we need, I agree :-) > [...] > > (inputs `(("guile-tarball" ,%guile-bootstrap-tarball) > ,@(match (%current-system) > ("i686-linux" `(("mescc-tools-seed" ,(@ (gnu packages bootstrap) %mescc-tools-seed)) > ("mes-seed" ,(@ (gnu packages bootstrap) %mes-seed)) > ("srfi-43" ,(@ (gnu packages bootstrap) %srfi-43)) > ("tinycc-seed" ,(@ (gnu packages bootstrap) %tinycc-seed)))) > > This does not actually build the bootstrap tarballs; instead it returns > the pre-built seeds (also the ‘%tinycc-seed’ variable doesn’t exist.) Indeed. "mes-seed" and "tinycc-seed" are remnants of the past; the only things we need are > What we would need here is something to build the things listed in > ‘%bootstrap-inputs’, namely: > ‘linux-libre-headers-stripped-4.14.26-i686-linux.tar.xz’ (easy :-)), > ‘mescc-tools-seed-XYZ.tar.gz’, and > ‘mes-stripped-0.18-0.08f04f5-i686-linux.tar.xz’ So if you like, please make that change. There is only one little thing: I have no (scripted) recipe to create mescc-tools-seed-XYZ. But wait: I have a great excuse for that...I was too lazy or too sloppy. The thing is, I used to build mescc-tools-seed, mes-seed and tinycc-seed manually from the mes+mescc+tinycc source trees. Jeremiah Orians is working to remove any need for mescc-tools-seed (esp. the forward dependency on Mes) but I don't think we're there yet. Anyway, I think we/I will have to put some work into scripting mescc-tools-seed or otherwise changing the mescc-tools-boot build. WDYT? > (do we really need an x86_64 version of this Mes?). No, I don't think so. I added it esp. to get a preview and enable future development of pure x86_64 bootstrap; but dependency-wise we should be able to drop it! > Does that make sense? Yes! > Sorry for the delay, and apologies if I overlooked something! Thank you for looking into and pointing out! janneke ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: Preparing the reduced bootstrap tarballs 2018-11-15 15:44 ` Jan Nieuwenhuizen @ 2018-11-16 18:22 ` Ludovic Courtès 2018-11-16 20:52 ` Jan Nieuwenhuizen 0 siblings, 1 reply; 30+ messages in thread From: Ludovic Courtès @ 2018-11-16 18:22 UTC (permalink / raw) To: Jan Nieuwenhuizen; +Cc: guix-devel Hello! Jan Nieuwenhuizen <janneke@gnu.org> skribis: > Ludovic Courtès writes: > > Hi! > >> (This is a followup to <https://bugs.gnu.org/33038>.) > >> I (finally!) run “guix build bootstrap-tarballs” on ‘core-updates-next’, >> but that was a bit silly of me since that built the x86_64-linux >> tarballs—i.e., not the “reduced seed.” >> >> So I was about to re-run it with “-s i686-linux”, but I noticed the >> following issue in (gnu packages make-bootstrap): >> >> (define %bootstrap-tarballs >> ;; A single derivation containing all the bootstrap tarballs, for >> ;; convenience. >> (package > > Ah right. I saw that several times but did not use it. I think because > initially it was of no use. It would be nice if this built everything > we need, I agree :-) Heheh. :-) It’s what the “Building the Bootstrap Binaries” section describes. > Indeed. "mes-seed" and "tinycc-seed" are remnants of the past; the only > things we need are OK. >> What we would need here is something to build the things listed in >> ‘%bootstrap-inputs’, namely: >> ‘linux-libre-headers-stripped-4.14.26-i686-linux.tar.xz’ (easy :-)), >> ‘mescc-tools-seed-XYZ.tar.gz’, and >> ‘mes-stripped-0.18-0.08f04f5-i686-linux.tar.xz’ > > So if you like, please make that change. There is only one little > thing: I have no (scripted) recipe to create mescc-tools-seed-XYZ. But > wait: I have a great excuse for that...I was too lazy or too sloppy. > > The thing is, I used to build mescc-tools-seed, mes-seed and tinycc-seed > manually from the mes+mescc+tinycc source trees. Jeremiah Orians is > working to remove any need for mescc-tools-seed (esp. the forward > dependency on Mes) but I don't think we're there yet. > > Anyway, I think we/I will have to put some work into scripting > mescc-tools-seed or otherwise changing the mescc-tools-boot build. > WDYT? I’m confused: how did you build the seeds that (gnu packages bootstrap) refers to in ‘core-updates-next’? The goal is for the seeds to be built through Guix so we have a transparent and documented way to reproduce/verify them. I could propose a patch to do that, though from what you’re saying generating ‘mescc-tools-seed’ is not something readily doable? >> (do we really need an x86_64 version of this Mes?). > > No, I don't think so. I added it esp. to get a preview and enable > future development of pure x86_64 bootstrap; but dependency-wise we > should be able to drop it! Neat. Thanks for the explanations! Ludo’. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: Preparing the reduced bootstrap tarballs 2018-11-16 18:22 ` Ludovic Courtès @ 2018-11-16 20:52 ` Jan Nieuwenhuizen 0 siblings, 0 replies; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-11-16 20:52 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel Ludovic Courtès writes: >> Ah right. I saw that several times but did not use it. I think because >> initially it was of no use. It would be nice if this built everything >> we need, I agree :-) > > Heheh. :-) It’s what the “Building the Bootstrap Binaries” section > describes. Right...and I still forgot to add my new packages there...sigh. >> Anyway, I think we/I will have to put some work into scripting >> mescc-tools-seed or otherwise changing the mescc-tools-boot build. >> WDYT? > > I’m confused: how did you build the seeds that (gnu packages bootstrap) > refers to in ‘core-updates-next’? I built them "by hand." Mes used to have a `make seed' target. I dropped that. > The goal is for the seeds to be built through Guix so we have a > transparent and documented way to reproduce/verify them. Sure. > I could propose a patch to do that, though from what you’re saying > generating ‘mescc-tools-seed’ is not something readily doable? No, of course that's trivial. I just sent patches to do that. However, building ascii seeds is not so trivial. You need either M2-Planet or Mes to produce those. And then: ascii seeds is not what we want, mescc-tools should be bootstrappable without any seeds, ascii or binary. I don't see how to write a Guix packages to build mescc-tools without any dependencies (apart from stage0 maybe). It seems we still need a mescc-tools-seed package anyway, which doesn't help? janneke -- Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 4/6] gnu: mescc-tools: Update to 0.5.2-0.bb062b0d. 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-14 8:58 ` [bug#33038] [PATCH 3/6] bootstrap: Add %bootstrap-mes Jan Nieuwenhuizen @ 2018-10-14 8:58 ` Jan Nieuwenhuizen 2018-10-19 21:32 ` Ludovic Courtès 2018-10-14 8:58 ` [bug#33038] [PATCH 5/6] bootstrap: Build with %bootstrap-mes Jan Nieuwenhuizen ` (2 subsequent siblings) 5 siblings, 1 reply; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-14 8:58 UTC (permalink / raw) To: 33038 * gnu/packages/mes.scm (mescc-tools): Update to 0.5.2-0.bb062b0d. mescc * gnu/packages/commencement.scm (mescc-tools-boot): Stay at 0.5.2 --- gnu/packages/commencement.scm | 13 +++++++-- gnu/packages/mes.scm | 50 ++++++++++++++++++----------------- 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 61349337e..258655fba 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -117,9 +117,18 @@ (package (inherit mescc-tools) (name "mescc-tools-boot") + (version "0.5.2") (source (origin - (inherit (package-source mescc-tools)) - (patches (search-patches "mescc-tools-boot.patch")))) + (method url-fetch) + (uri (string-append + "http://git.savannah.nongnu.org/cgit/mescc-tools.git/snapshot/" + name "-Release_" version + ".tar.gz")) + (patches (search-patches "mescc-tools-boot.patch")) + (file-name (string-append "mescc-tools" "-" version ".tar.gz")) + (sha256 + (base32 + "01x7bhmgwyf6mc2g1hcvibhps98nllacqm4f0j5l51b1mbi18pc2")))) (inputs '()) (propagated-inputs '()) (native-inputs diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index c4cb118e3..7f7caa7a6 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -106,31 +106,33 @@ Scheme and is compatible with Guile.") (license gpl3+)))) (define-public mescc-tools - (package - (name "mescc-tools") - (version "0.5.2") - (source (origin - (method url-fetch) - (uri (string-append - "http://git.savannah.nongnu.org/cgit/mescc-tools.git/snapshot/" - name "-Release_" version - ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "01x7bhmgwyf6mc2g1hcvibhps98nllacqm4f0j5l51b1mbi18pc2")))) - (build-system gnu-build-system) - (supported-systems '("i686-linux" "x86_64-linux")) - (arguments - `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:test-target "test" - #:phases (modify-phases %standard-phases - (delete 'configure)))) - (synopsis "Tools for the full source bootstrapping process") - (description - "Mescc-tools is a collection of tools for use in a full source + (let ((commit "bb062b0da7bf2724ca40f9002b121579898d4ef7") + (revision "0") + (version "0.5.2")) + (package + (name "mescc-tools") + (version (string-append version "-" revision "." (string-take commit 7))) + (source (origin + (method url-fetch) + (uri (string-append + "https://git.savannah.nongnu.org/cgit/mescc-tools.git/snapshot/" + name "-" commit + ".tar.gz")) + (sha256 + (base32 + "1h6j57wyf91i42b26f8msbv6451cw3nm4nmpl1fckp9c7vi8mwkh")))) + (build-system gnu-build-system) + (supported-systems '("i686-linux" "x86_64-linux")) + (arguments + `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:test-target "test" + #:phases (modify-phases %standard-phases + (delete 'configure)))) + (synopsis "Tools for the full source bootstrapping process") + (description + "Mescc-tools is a collection of tools for use in a full source bootstrapping process. It consists of the M1 macro assembler, the hex2 linker, the blood-elf symbol table generator, the kaem shell, exec_enable and get_machine.") (home-page "https://savannah.nongnu.org/projects/mescc-tools") - (license gpl3+))) + (license gpl3+)))) -- 2.18.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 4/6] gnu: mescc-tools: Update to 0.5.2-0.bb062b0d. 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 0 siblings, 1 reply; 30+ messages in thread From: Ludovic Courtès @ 2018-10-19 21:32 UTC (permalink / raw) To: Jan Nieuwenhuizen; +Cc: 33038 Jan Nieuwenhuizen <janneke@gnu.org> skribis: > * gnu/packages/mes.scm (mescc-tools): Update to 0.5.2-0.bb062b0d. > mescc > * gnu/packages/commencement.scm (mescc-tools-boot): Stay at 0.5.2 I guess the choice of commit relates to that of Mes? Anyway, LGTM! ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 4/6] gnu: mescc-tools: Update to 0.5.2-0.bb062b0d. 2018-10-19 21:32 ` Ludovic Courtès @ 2018-10-20 7:41 ` Jan Nieuwenhuizen 0 siblings, 0 replies; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-20 7:41 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 33038 Ludovic Courtès writes: > Jan Nieuwenhuizen <janneke@gnu.org> skribis: > >> * gnu/packages/mes.scm (mescc-tools): Update to 0.5.2-0.bb062b0d. >> mescc >> * gnu/packages/commencement.scm (mescc-tools-boot): Stay at 0.5.2 > > I guess the choice of commit relates to that of Mes? Yes, also build adaptations for using the new %bootstrap-mes. mescc-tools-boot will probably through a number of build updates. The first bootstrap build of mescc-tools-boot used %mes-seed, now replaced by %bootstrap-mes. We are working to bootstrap it using M2-Planet, but currently it still needs manually built %mescc-tools-seeds and also that hasn't been packaged yet. > Anyway, LGTM! Thanks! I'll update core-updates-next with all these together when we're ready to close #33038. janneke ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 5/6] bootstrap: Build with %bootstrap-mes. 2018-10-14 8:58 ` [bug#33038] [PATCH 1/6] doc: Move `Reduced Binary Seed Bootstrap' into `Bootstrapping' Jan Nieuwenhuizen ` (2 preceding siblings ...) 2018-10-14 8:58 ` [bug#33038] [PATCH 4/6] gnu: mescc-tools: Update to 0.5.2-0.bb062b0d Jan Nieuwenhuizen @ 2018-10-14 8:58 ` Jan Nieuwenhuizen 2018-10-19 21:34 ` Ludovic Courtès 2018-10-14 8:58 ` [bug#33038] [PATCH 6/6] doc: Update Preparing to Use the Bootstrap Binaries Jan Nieuwenhuizen 2018-10-19 21:22 ` [bug#33038] [PATCH 1/6] doc: Move `Reduced Binary Seed Bootstrap' into `Bootstrapping' Ludovic Courtès 5 siblings, 1 reply; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-14 8:58 UTC (permalink / raw) To: 33038 * gnu/packages/bootstrap.scm (%tinycc-seed): Remove. (%bootstrap-inputs): Use %bootstrap-mes instead of %mes-seed and %tinycc-seed. * gnu/packages/commencement.scm (mescc-tools-boot, mes-boot, tcc-boot0): Build with %bootstrap-mes instead of %mes-seed and %tinycc-seed. --- gnu/packages/bootstrap.scm | 31 ++----------------- gnu/packages/commencement.scm | 57 +++++++++++++---------------------- 2 files changed, 24 insertions(+), 64 deletions(-) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index f33fc061e..6f65550c3 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -51,9 +51,7 @@ %bootstrap-inputs %bootstrap-mes %mescc-tools-seed - %mes-seed - %srfi-43 - %tinycc-seed)) + %srfi-43)) ;;; Commentary: ;;; @@ -680,28 +678,6 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ (base32 "1lj7df73vxanmffmiwkhcn83r7yd9n8568nkki06bqq5zg526nyz"))))) -(define %mes-seed - (let ((commit "057fd36735b5605fe582d6b3625f793a62922206")) - (origin - (method url-fetch) - (uri (string-append "https://gitlab.com/janneke/mes-seed" - "/-/archive/" commit - "/mes-seed-" commit ".tar.gz")) - (sha256 - (base32 - "0vdb4kc05a1kdpmsi8dg425d5f33kp28sgl2fi3s320pc0v4dv13"))))) - -(define %tinycc-seed - (let ((commit "843d47ca682617f21333b50c67851797b8c3fd04")) - (origin - (method url-fetch) - (uri (string-append "https://gitlab.com/janneke/tinycc-seed" - "/-/archive/" commit - "/tinycc-seed-" commit ".tar.gz")) - (sha256 - (base32 - "0599wwv30js03l1rpmvzfclq3jadzvq04pi29j45nf6fyfg5hhqb"))))) - (define %srfi-43 (origin (method url-fetch) @@ -718,9 +694,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ ((or "i686-linux" "x86_64-linux") `(("linux-libre-headers" ,%bootstrap-linux-libre-headers) ("mescc-tools-seed" ,%mescc-tools-seed) - ("mes-seed" ,%mes-seed) - ("srfi-43" ,%srfi-43 ) - ("tinycc-seed" ,%tinycc-seed))) + ("mes" ,%bootstrap-mes) + ("srfi-43" ,%srfi-43 ))) (_ `(("libc" ,%bootstrap-glibc) ("gcc" ,%bootstrap-gcc) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 258655fba..4def178a8 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -102,13 +102,7 @@ (sha256 (base32 "1whbzahv16bwhavr2azqli0dcbk29p9rsqfbjl69la135z8vgdhx"))) - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/mes/" - "mes-" version ".tar.gz")) - (sha256 - (base32 - "1dsaaqyanzsq9m5wrcd2bjhb3qd6928c9q97rg5r730pyqjwxyxf"))))) + (package-source mes))) (native-inputs '()) (propagated-inputs '())))) @@ -135,8 +129,8 @@ `(("mescc-tools-seed" ,%mescc-tools-seed) ("mes-source" ,(package-source mes-boot0)) - ("coreutils" ,%bootstrap-coreutils&co) - ("mes-seed" ,%mes-seed))) + ("bootstrap-mes" ,%bootstrap-mes) + ("coreutils" ,%bootstrap-coreutils&co))) (build-system gnu-build-system) (arguments `(#:implicit-inputs? #f @@ -148,7 +142,6 @@ (lambda* (#:key outputs #:allow-other-keys) (let* ((coreutils (assoc-ref %build-inputs "coreutils")) (mescc-tools-seed (assoc-ref %build-inputs "mescc-tools-seed")) - (mes-seed (assoc-ref %build-inputs "mes-seed")) (mes-source (assoc-ref %build-inputs "mes-source")) (out (assoc-ref %outputs "out"))) (with-directory-excursion ".." @@ -159,12 +152,11 @@ (mkdir-p "mes-source") (invoke "tar" "--strip=1" "-C" "mes-source" "-xvf" mes-source) - (mkdir-p "mes-seed") - (invoke "tar" "--strip=1" "-C" "mes-seed" - "-xvf" mes-seed)))))) + #t))))) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((coreutils (assoc-ref %build-inputs "coreutils")) + (bootstrap-mes (assoc-ref %build-inputs "bootstrap-mes")) (out (assoc-ref %outputs "out"))) (setenv "PATH" (string-append coreutils "/bin" ":" "../mescc-tools-seed")) @@ -172,7 +164,7 @@ (setenv "PREFIX" out) (setenv "MES_PREFIX" "../mes-source") (setenv "MESCC_TOOLS_SEED" "../mescc-tools-seed") - (setenv "MES_SEED" "../mes-seed") + (setenv "MES_SEED" (string-append bootstrap-mes "/lib")) #t))) (replace 'build (lambda _ @@ -223,7 +215,7 @@ ("nyacc-source" ,(package-source nyacc-boot)) ("coreutils" , %bootstrap-coreutils&co) - ("mes-seed" ,%mes-seed) + ("bootstrap-mes" ,%bootstrap-mes) ,@(if %fake-bootstrap? ; cheat: fast non-bootstrap testing with Guile `(("guile" ,%bootstrap-guile) ("srfi-43" ,%srfi-43)) ; guile-2.0.9 lacks srfi-43; cherry-pick @@ -239,13 +231,12 @@ (let ((coreutils (assoc-ref %build-inputs "coreutils")) (srfi-43 (assoc-ref %build-inputs "srfi-43")) (nyacc-source (assoc-ref %build-inputs "nyacc-source")) - (mes-seed (assoc-ref %build-inputs "mes-seed"))) + (bootstrap-mes (assoc-ref %build-inputs "bootstrap-mes"))) (with-directory-excursion ".." (and (mkdir-p "nyacc-source") (invoke "tar" "--strip=1" "-C" "nyacc-source" "-xvf" nyacc-source) - (mkdir-p "mes-seed") - (invoke "tar" "--strip=1" "-C" "mes-seed" "-xvf" mes-seed) + (symlink (string-append bootstrap-mes "/lib") "mes-seed") (or (not srfi-43) (and (mkdir-p "srfi") (copy-file srfi-43 "srfi/srfi-43.scm") @@ -256,7 +247,7 @@ (symlink (string-append "../nyacc-source/module") "nyacc") (setenv "GUILE_LOAD_PATH" "nyacc") (setenv "GUILE_TOOLS" "true") ; no tools in bootstrap-guile - (invoke "bash" "-x" "configure.sh" + (invoke "bash" "configure.sh" (string-append "--prefix=" out)) (setenv "MES" "src/mes") (setenv "MESCC" "scripts/mescc") @@ -286,15 +277,16 @@ (replace 'check (lambda _ (when ,%fake-bootstrap? - ;; breaks with guile-2.0 + ;; break with guile-2.0 (delete-file "scaffold/boot/50-primitive-load.scm") (delete-file "scaffold/boot/51-module.scm")) (and (setenv "MES_ARENA" "100000000") (setenv "DIFF" "sh scripts/diff.scm") - (invoke "sh" "-x" "build-aux/test.sh" "scaffold/tests/t") - (invoke "sh" "-x" "build-aux/test.sh" "scaffold/tests/63-struct-cell") - (invoke "sh" "-x" "check.sh")))) + ;; fail fast tests + ;; (invoke "sh" "-x" "build-aux/test.sh" "scaffold/tests/t") + ;; (invoke "sh" "-x" "build-aux/test.sh" "scaffold/tests/63-struct-cell") + (invoke "sh" "check.sh")))) (replace 'install (lambda _ (invoke "sh" "install.sh")))))) @@ -319,8 +311,8 @@ ;; ported to 0.9.27, alas the resulting tcc is buggy. Once MesCC is more ;; mature, this package should use the 0.9.27 sources (or later). (let ((version "0.9.26") - (revision "4") - (commit "46ee3f18477575b189ac224eac853e96afd571e1")) + (revision "5") + (commit "c7b3f59d1a71e71b470f859b20f0cfe840f3954d")) (package-with-bootstrap-guile (package (inherit tcc) @@ -333,19 +325,18 @@ "/tinycc-" commit ".tar.gz")) (sha256 (base32 - "0kq2si81piszpdcnp78w1lp5jd291srbx1f71fir08ybidiriw35")))) + "1agz5w5q6dm51n63hsxii33hxdghmdiacbb5zzxzac3aarfxjb2m")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (inputs '()) (propagated-inputs '()) (native-inputs `(("mes" ,mes-boot) - ("mes-seed" ,%mes-seed) ("mescc-tools" ,mescc-tools-boot) ("nyacc-source" ,(package-source nyacc-boot)) ("coreutils" , %bootstrap-coreutils&co) - ("tinycc-seed" ,%tinycc-seed) + ("bootstrap-mes" ,%bootstrap-mes) ,@(if %fake-bootstrap? ; cheat: fast non-bootstrap testing with Guile `(("guile" ,%bootstrap-guile) ("srfi-43" ,%srfi-43)) ; guile-2.0.9 lacks srfi-43; cherry-pick @@ -361,8 +352,7 @@ (let* ((coreutils (assoc-ref %build-inputs "coreutils")) (srfi-43 (assoc-ref %build-inputs "srfi-43")) (nyacc-source (assoc-ref %build-inputs "nyacc-source")) - (mes-seed (assoc-ref %build-inputs "mes-seed")) - (tinycc-seed (assoc-ref %build-inputs "tinycc-seed"))) + (bootstrap-mes (assoc-ref %build-inputs "bootstrap-mes"))) (setenv "PATH" (string-append coreutils "/bin")) (format (current-error-port) "PATH=~s\n" (getenv "PATH")) @@ -371,12 +361,7 @@ (mkdir-p "nyacc-source") (invoke "tar" "--strip=1" "-C" "nyacc-source" "-xvf" nyacc-source) - (mkdir-p "mes-seed") - (invoke "tar" "--strip=1" "-C" "mes-seed" - "-xvf" mes-seed) - (mkdir-p "tinycc-seed") - (invoke "tar" "--strip=1" "-C" "tinycc-seed" - "-xvf" tinycc-seed) + (symlink (string-append bootstrap-mes "/lib") "mes-seed") (or (not srfi-43) (and (mkdir-p "srfi") (copy-file srfi-43 "srfi/srfi-43.scm") -- 2.18.0 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 5/6] bootstrap: Build with %bootstrap-mes. 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 0 siblings, 0 replies; 30+ messages in thread From: Ludovic Courtès @ 2018-10-19 21:34 UTC (permalink / raw) To: Jan Nieuwenhuizen; +Cc: 33038 Jan Nieuwenhuizen <janneke@gnu.org> skribis: > * gnu/packages/bootstrap.scm (%tinycc-seed): Remove. > (%bootstrap-inputs): Use %bootstrap-mes instead of %mes-seed and %tinycc-seed. > * gnu/packages/commencement.scm (mescc-tools-boot, mes-boot, tcc-boot0): Build > with %bootstrap-mes instead of %mes-seed and %tinycc-seed. LGTM! BTW, this is all for ‘core-updates-next’, right? Thank you for all this! Ludo’. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 6/6] doc: Update Preparing to Use the Bootstrap Binaries. 2018-10-14 8:58 ` [bug#33038] [PATCH 1/6] doc: Move `Reduced Binary Seed Bootstrap' into `Bootstrapping' Jan Nieuwenhuizen ` (3 preceding siblings ...) 2018-10-14 8:58 ` [bug#33038] [PATCH 5/6] bootstrap: Build with %bootstrap-mes Jan Nieuwenhuizen @ 2018-10-14 8:58 ` Jan Nieuwenhuizen 2018-10-19 21:37 ` Ludovic Courtès 2018-10-19 21:22 ` [bug#33038] [PATCH 1/6] doc: Move `Reduced Binary Seed Bootstrap' into `Bootstrapping' Ludovic Courtès 5 siblings, 1 reply; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-14 8:58 UTC (permalink / raw) To: 33038 * 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 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 6/6] doc: Update Preparing to Use the Bootstrap Binaries. 2018-10-14 8:58 ` [bug#33038] [PATCH 6/6] doc: Update Preparing to Use the Bootstrap Binaries Jan Nieuwenhuizen @ 2018-10-19 21:37 ` Ludovic Courtès 2018-10-20 8:23 ` Jan Nieuwenhuizen 0 siblings, 1 reply; 30+ messages in thread From: Ludovic Courtès @ 2018-10-19 21:37 UTC (permalink / raw) To: Jan Nieuwenhuizen; +Cc: 33038 Jan Nieuwenhuizen <janneke@gnu.org> skribis: > * 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. LGTM! > +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. s/GuixSD/Guix packages/ Perhaps add an @pxref for Mes? > +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! I still can’t believe this is a reality, awesome!! :-) Ludo’. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 6/6] doc: Update Preparing to Use the Bootstrap Binaries. 2018-10-19 21:37 ` Ludovic Courtès @ 2018-10-20 8:23 ` Jan Nieuwenhuizen 0 siblings, 0 replies; 30+ messages in thread From: Jan Nieuwenhuizen @ 2018-10-20 8:23 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 33038 Ludovic Courtès writes: > Jan Nieuwenhuizen <janneke@gnu.org> skribis: > >> * 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. > > LGTM! > >> +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. > > s/GuixSD/Guix packages/ > Perhaps add an @pxref for Mes? Ah, sure. Changed to +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 +(@pxref{Top, GNU Mes Reference Manual,, mes, GNU Mes}, a Scheme interpreter +and C 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 Guix packages are now bootstrapped without any binary C compiler. Updated on gitlab/core-updates-next, "waiting" for the builds to say OK :-) >> +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! > > I still can’t believe this is a reality, awesome!! :-) Thank you, yes -- what a long road from the initial Mes announcement! Thanks to all the help from #bootstrappable and from yourself. And this is only the beginning... :-) janneke ^ permalink raw reply [flat|nested] 30+ messages in thread
* [bug#33038] [PATCH 1/6] doc: Move `Reduced Binary Seed Bootstrap' into `Bootstrapping'. 2018-10-14 8:58 ` [bug#33038] [PATCH 1/6] doc: Move `Reduced Binary Seed Bootstrap' into `Bootstrapping' Jan Nieuwenhuizen ` (4 preceding siblings ...) 2018-10-14 8:58 ` [bug#33038] [PATCH 6/6] doc: Update Preparing to Use the Bootstrap Binaries Jan Nieuwenhuizen @ 2018-10-19 21:22 ` Ludovic Courtès 5 siblings, 0 replies; 30+ messages in thread From: Ludovic Courtès @ 2018-10-19 21:22 UTC (permalink / raw) To: Jan Nieuwenhuizen; +Cc: 33038 Hello! Jan Nieuwenhuizen <janneke@gnu.org> skribis: > * doc/guix.texi (Reduced Binary Seed Bootstrap): LGTM, thanks! Ludo’. ^ permalink raw reply [flat|nested] 30+ messages in thread
end of thread, other threads:[~2018-11-16 20:53 UTC | newest] Thread overview: 30+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 ` [bug#33038] [PATCH 6/6] doc: Update Preparing to Use the Bootstrap Binaries Jan Nieuwenhuizen 2018-10-19 21:37 ` 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
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.