Subject: [bug#53878] [PATCH v5 03/22] gnu: racket: Use Git origins for Racket packages.

From: Liliana Marie Prikler <[email-masked]>
Date: Sat, 26 Feb 2022 14:47:45 +0100

Am Samstag, dem 26.02.2022 um 08:02 -0500 schrieb Philip McGrath:
> * gnu/packages/patches/racket-gui-tethered-launcher-backport.patch:
> Adjust path.
> * gnu/packages/racket.scm (extract-package-source,
> extract-package-source*): New procedures.
> (extend-layer): Rename to ...
> (make-installation-layer.rkt): ... this variable. Tweak command-line
> arguments. Adapt to 'config-tethered-apps-dir'.
> (racket): Stop inheriting from 'racket-minimal'.
> [version]: Use '%racket-version'.
> [source]: Stop using bundled tarball.
> [inputs]: Remove labels. Add 'racket-minimal' and package sources.
> [native-inputs]: Remove, since cross-compilation doesn't work yet.
> [arguments]: Rewrite to use G-expressions, package sources from
> 'inputs', an explicit 'install' phase, and the revised
> 'make-installation-layer.rkt'.
Since you haven't made this a union-build yet, I will from now on
assume that it is indeed more complicated than one to save us some time
debating whether it should or shouldn't be.  Given that this was my
main complaint w.r.t. the stuff following make-installation-layer, much
is now resolved, except for two things.

First, can we simplify "make-installation-layer.rkt" to "make-
installation-layer"?  I don't think the file extension conveys much
meaning here, or does it?

Second, can we find an abbreviation for
> +      (extract-package-source*
> +       `((,(origin
> +             (method git-fetch)
> +             (uri (git-reference
> +                   (url "https://github.com/racket/2d")
> +                   (commit %racket-commit)))
> +             (sha256 (base32
> +                     
> "1zzcz5qyjv7syi41vb8jkxjp1rqgj61zbsdrg0nlc4qy9qsafzgr"))
> +             (file-name
> +              (git-file-name "racket-2d" %racket-version)))
> +          "2d" "2d-doc" "2d-lib")
> +         (,(origin
> +             (method git-fetch)
> +             (uri (git-reference
> +                   (url "https://github.com/racket/algol60")
> +                   (commit %racket-commit)))
> +             (sha256 (base32
> +                     
> "09kj6asypmc24n29w0izc9p0q8hpga2hpkchsypfwn5c8zpvihlx"))
> +             (file-name
> +              (git-file-name "racket-algol60" %racket-version)))
> +          ("algol60" "."))
> +         (,%racket-origin
> +          ("base" "pkgs/base") ;; FIXME belongs in racket-minimal
> +          ("racket-lib" "pkgs/racket-lib") ;; FIXME belongs in
> racket-minimal
> +          ("at-exp-lib" "pkgs/at-exp-lib")
> +          ("compiler" "pkgs/compiler")
> +          ("compiler-lib" "pkgs/compiler-lib")
> +          ("net" "pkgs/net")
> +          ("net-doc" "pkgs/net-doc")
> +          ("net-lib" "pkgs/net-lib")
> +          ("racket-doc" "pkgs/racket-doc")
> +          ("racket-index" "pkgs/racket-index")
> +          ("sandbox-lib" "pkgs/sandbox-lib")
> +          ("zo-lib" "pkgs/zo-lib"))
> +         (,(origin
> +             (method git-fetch)
> +             (uri (git-reference
> +                   (url "https://github.com/racket/cext-lib")
> +                   (commit %racket-commit)))
> +             (sha256 (base32
> +                     
> "00w38jpv88fpl4pgj6ndnysvn0s21rjvj0xhznay80msan0vc341"))
> +             (file-name (git-file-name "racket-cext-lib" %racket-
> version)))
> +          "cext-lib" "dynext-lib")
> [...]
I think some way to shorten those origins would do wonders in terms of
the number of lines this patch adds.

Other than that, looks pretty good to me.