Subject: [bug#73073] [PATCH 4/6] gnu: gnome-recipes: Move libgd origin from phases to native-inputs.

From: Liliana Marie Prikler <[email-masked]>
Date: Fri, 06 Sep 2024 19:33:26 +0200

Am Freitag, dem 06.09.2024 um 17:54 +0200 schrieb Simon Tournier:
> * gnu/packages/dlang.scm (gnome-recipes)[arguments]<phases>: Move
> libgd
> origin from here...
> [native-inputs]: ...to here.
> 
> Change-Id: I137dc41819a680fdf1f5c0bea9778b2bceae3fad
> ---
>  gnu/packages/gnome.scm | 22 ++++++++++++----------
>  1 file changed, 12 insertions(+), 10 deletions(-)
> 
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index 7339000436..8ae9fb0656 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -799,15 +799,7 @@ (define-public gnome-recipes
>            (add-after 'unpack 'unpack-libgd
>              (lambda _
>                (copy-recursively
> -               #$(origin
> -                   (method git-fetch)
> -                   (uri (git-reference
> -                         (url
> "https://gitlab.gnome.org/GNOME/libgd")
> -                         (commit
> "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
> -                   (file-name (git-file-name "libgd" version))
> -                   (sha256
> -                    (base32
> -                    
> "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs")))
> +               #$(this-package-native-input "libgd")
>                 "subprojects/libgd"))))))
>      (inputs (list glib
>                    gnome-autoar
> @@ -823,7 +815,17 @@ (define-public gnome-recipes
>                           `(,glib "bin")
>                           itstool
>                           pkg-config
> -                         python))
> +                         python
> +                         `("libgd"
> +                           ,(origin
> +                              (method git-fetch)
> +                              (uri (git-reference
> +                                    (url
> "https://gitlab.gnome.org/GNOME/libgd")
> +                                    (commit
> "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
> +                              (file-name (git-file-name "libgd"
> version))
> +                              (sha256
> +                               (base32
I can see why you're doing that, but I'm not really convinced it helps
the package.  Particularly, we're now even adding a labeled input,
which makes for a cursed situation where all but one inputs are
unlabeled¹.

IMHO, G-Expressions in phases serve in part to facilitate uses like
this.  They may not be nice, but those are upstream conditions we have
to cope with.  I'd rather do a proper unbundling of libgd.

Another "proper" solution could be as easy as using an unlabeled origin
and search-input-file.  However, this doesn't really work all that well
if you have to unpack the entire origin, hence what I've done here for
gnome-recipes.

Cheers

¹ Let's not even mention the necessity of 1/6 to enable that.  Back in
the day, there was a decision against giving origins labels because it
would add to the further propagation of label use throughout Guix,
while we want to drop them.