[bug#55227,core-updates,1/8] commencement: Add bootstrap-seeds.
Commit Message
* gnu/packages/commencement.scm (bootstrap-seeds): New variable.
---
gnu/packages/commencement.scm | 42 ++++++++++++++++++++++++++++++++++-
1 file changed, 41 insertions(+), 1 deletion(-)
Comments
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
@@ -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)