Message ID | 20220502182434.32130-1-janneke@gnu.org |
---|---|
State | New |
Headers | show |
Series | The Full Source Bootstrap | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
Hi! Starting a dive through this amazing patch series… "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org> skribis: > * gnu/packages/commencement.scm (bootstrap-seeds): New variable. [...] > + (source > + (bootstrap-origin You can remove the ‘bootstrap-origin’ call: it’s only useful when there are patches or snippets. > + (origin > + (method url-fetch) > + (uri (string-append > + "https://lilypond.org/janneke/guix/20220501/" > + "bootstrap-seeds-" version ".tar.gz")) You can add a mirror://gnu/guix/mirror URL and we’ll copy it to ftp.gnu.org. > + (native-inputs `(("bootar" ,bootar))) -> (list boottar) > + (build-system trivial-build-system) > + (arguments > + `(#:guile ,%bootstrap-guile > + #:modules ((guix build utils)) > + #:builder > + (begin > + (use-modules (guix build utils)) > + (let ((source (assoc-ref %build-inputs "source")) > + (tar (assoc-ref %build-inputs "bootar")) > + (out (assoc-ref %outputs "out"))) You can make it a gexp like so: (arguments (list #:guile … #:builder #~(begin (use-modules …) (let ((source #$(package-source this-package)) (tar #$(this-package-input "boottar")) (out #$output)) …)))) > + (setenv "PATH" (string-append tar "/bin:")) > + (invoke "tar" "xvf" source) > + (mkdir-p out) > + (copy-recursively "bootstrap-seeds" out) > + #t)))) You can remove the trailing #t. > + (description > + "A prebuilt version of the initial bootstrap seeds. It contains a The first thing could be a sentence, say: “This package provides pre-built binaries of the bootstrap seeds.” > +hex0-seed and an optional kaem-minimal shell. The size of the hex0 seeds are > +for knight: 250 bytes, x86-linux:(357 bytes, x86_64-linux: 431 bytes, and ^ Extra paren. Ludo’.
Ludovic Courtès writes: Hi! > Starting a dive through this amazing patch series… Yay, and thanks again for your careful review. >> + (source >> + (bootstrap-origin > > You can remove the ‘bootstrap-origin’ call: it’s only useful when there > are patches or snippets. Ah, right. Removed. >> + (origin >> + (method url-fetch) >> + (uri (string-append >> + "https://lilypond.org/janneke/guix/20220501/" >> + "bootstrap-seeds-" version ".tar.gz")) > > You can add a mirror://gnu/guix/mirror URL and we’ll copy it to > ftp.gnu.org. Changed to: (uri (list (string-append "mirror://gnu/guix/mirror/" "bootstrap-seeds-" version ".tar.gz") (string-append "https://lilypond.org/janneke/guix/20220501/" "bootstrap-seeds-" version ".tar.gz"))) >> + (native-inputs `(("bootar" ,bootar))) > > -> (list boottar) Ok. >> + (build-system trivial-build-system) >> + (arguments >> + `(#:guile ,%bootstrap-guile >> + #:modules ((guix build utils)) >> + #:builder >> + (begin >> + (use-modules (guix build utils)) >> + (let ((source (assoc-ref %build-inputs "source")) >> + (tar (assoc-ref %build-inputs "bootar")) >> + (out (assoc-ref %outputs "out"))) > > You can make it a gexp like so: > > (arguments > (list #:guile … > #:builder > #~(begin Ok. >> + #t)))) > > You can remove the trailing #t. Ok. >> + (description >> + "A prebuilt version of the initial bootstrap seeds. It contains a > > The first thing could be a sentence, say: “This package provides > pre-built binaries of the bootstrap seeds.” >> +hex0-seed and an optional kaem-minimal shell. The size of the hex0 seeds are >> +for knight: 250 bytes, x86-linux:(357 bytes, x86_64-linux: 431 bytes, and > ^ > Extra paren. Removed. Greetings, Janneke
Hi Jan, "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org> writes: > * gnu/packages/commencement.scm (bootstrap-seeds): New variable. > --- > gnu/packages/commencement.scm | 42 ++++++++++++++++++++++++++++++++++- > 1 file changed, 41 insertions(+), 1 deletion(-) > > diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm > index 9d6ed5fd08..663ffacd56 100644 > --- a/gnu/packages/commencement.scm > +++ b/gnu/packages/commencement.scm > @@ -5,7 +5,7 @@ > ;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org> > ;;; Copyright © 2017, 2018, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> > ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> > -;;; Copyright © 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> > +;;; Copyright © 2018, 2019, 2020, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> > ;;; Copyright © 2019, 2020, 2021 Marius Bakke <marius@gnu.org> > ;;; Copyright © 2020, 2022 Timothy Sample <samplet@ngyro.com> > ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> > @@ -266,6 +266,46 @@ (define (%boot-gash-inputs) > ("bootar" ,bootar) > ("guile" ,%bootstrap-guile))) > > +(define bootstrap-seeds > + (package > + (name "bootstrap-seeds") > + (version "1.0.0") > + (source > + (bootstrap-origin > + (origin > + (method url-fetch) > + (uri (string-append > + "https://lilypond.org/janneke/guix/20220501/" > + "bootstrap-seeds-" version ".tar.gz")) It'd be best to put the bootstrap binaries on the GNU FTP; we already have a directory here: https://ftp.gnu.org/gnu/guix/bootstrap/. I can assist with that if you need. > + (sha256 > + (base32 > + "0scz2bx8fd8c821h6y1j3x6ywgxxns7iinyn9z32dnkiacfdcpfn"))))) > + (native-inputs `(("bootar" ,bootar))) > + (build-system trivial-build-system) > + (arguments > + `(#:guile ,%bootstrap-guile > + #:modules ((guix build utils)) > + #:builder > + (begin > + (use-modules (guix build utils)) > + (let ((source (assoc-ref %build-inputs "source")) > + (tar (assoc-ref %build-inputs "bootar")) > + (out (assoc-ref %outputs "out"))) > + (setenv "PATH" (string-append tar "/bin:")) > + (invoke "tar" "xvf" source) > + (mkdir-p out) > + (copy-recursively "bootstrap-seeds" out) > + #t)))) We no longer need to add #t to build phases, so you can omit it here too. > + (home-page "https://github.com/oriansj/bootstrap-seeds") > + (synopsis "The initial bootstrap seeds: 357-byte hex0 and kaem shell") > + (description > + "A prebuilt version of the initial bootstrap seeds. It contains a > +hex0-seed and an optional kaem-minimal shell. The size of the hex0 seeds are > +for knight: 250 bytes, x86-linux:(357 bytes, x86_64-linux: 431 bytes, and What does "for knight" mean here? Is there an architecture called "knight"? You could use a @table here with the arch as first column and size as second column. Hope that helps, Maxim
Maxim Cournoyer writes: Hi Maxim! > "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org> writes: > >> * gnu/packages/commencement.scm (bootstrap-seeds): New variable. ]..] >> +(define bootstrap-seeds >> + (package >> + (name "bootstrap-seeds") >> + (version "1.0.0") >> + (source >> + (bootstrap-origin >> + (origin >> + (method url-fetch) >> + (uri (string-append >> + "https://lilypond.org/janneke/guix/20220501/" >> + "bootstrap-seeds-" version ".tar.gz")) > > It'd be best to put the bootstrap binaries on the GNU FTP; we already > have a directory here: https://ftp.gnu.org/gnu/guix/bootstrap/. I can > assist with that if you need. Thanks. Ludo already made that remark https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55227#46 and it has been changed in the v3 patch series https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55227#97 which has already been installed in core-updates. The only puzzle that remains is the coding of some of the native-inputs. >> + #:builder >> + (begin >> + (use-modules (guix build utils)) >> + (let ((source (assoc-ref %build-inputs "source")) >> + (tar (assoc-ref %build-inputs "bootar")) >> + (out (assoc-ref %outputs "out"))) >> + (setenv "PATH" (string-append tar "/bin:")) >> + (invoke "tar" "xvf" source) >> + (mkdir-p out) >> + (copy-recursively "bootstrap-seeds" out) >> + #t)))) > > We no longer need to add #t to build phases, so you can omit it here > too. Right, same remark. >> +hex0-seed and an optional kaem-minimal shell. The size of the hex0 seeds are >> +for knight: 250 bytes, x86-linux:(357 bytes, x86_64-linux: 431 bytes, and > > What does "for knight" mean here? Is there an architecture called > "knight"? Yes, it's a simple/ancient machine from the 70s (?) I belief, and having a working VM for Knight is/was one of the goals of the Stage0 project (to eleminate the dependency on a kernel like Linux). > You could use a @table here with the arch as first column and > size as second column. > Hope that helps, Thanks, I'll consider that. Greetings, Janneke
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 9d6ed5fd08..663ffacd56 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2017, 2018, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2018, 2019, 2020, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2019, 2020, 2021 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020, 2022 Timothy Sample <samplet@ngyro.com> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> @@ -266,6 +266,46 @@ (define (%boot-gash-inputs) ("bootar" ,bootar) ("guile" ,%bootstrap-guile))) +(define bootstrap-seeds + (package + (name "bootstrap-seeds") + (version "1.0.0") + (source + (bootstrap-origin + (origin + (method url-fetch) + (uri (string-append + "https://lilypond.org/janneke/guix/20220501/" + "bootstrap-seeds-" version ".tar.gz")) + (sha256 + (base32 + "0scz2bx8fd8c821h6y1j3x6ywgxxns7iinyn9z32dnkiacfdcpfn"))))) + (native-inputs `(("bootar" ,bootar))) + (build-system trivial-build-system) + (arguments + `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source")) + (tar (assoc-ref %build-inputs "bootar")) + (out (assoc-ref %outputs "out"))) + (setenv "PATH" (string-append tar "/bin:")) + (invoke "tar" "xvf" source) + (mkdir-p out) + (copy-recursively "bootstrap-seeds" out) + #t)))) + (home-page "https://github.com/oriansj/bootstrap-seeds") + (synopsis "The initial bootstrap seeds: 357-byte hex0 and kaem shell") + (description + "A prebuilt version of the initial bootstrap seeds. It contains a +hex0-seed and an optional kaem-minimal shell. The size of the hex0 seeds are +for knight: 250 bytes, x86-linux:(357 bytes, x86_64-linux: 431 bytes, and +aarch64-linux 526 bytes. These can be used to build stage0: hex0, hex1, hex2, +M1, and M2-Planet.") + (license license:gpl3+))) + (define %bootstrap-mes-rewired (package (inherit mes)