Subject: [bug#55227] [PATCH core-updates 0/8] The Full Source Bootstrap

From: Ludovic Courtès <[email-masked]>
Date: Thu, 12 May 2022 12:38:20 +0200

Hi!

Starting a dive through this amazing patch series…

"Jan (janneke) Nieuwenhuizen" <[email-masked]> 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’.