Subject: [bug#76582] [PATCH] build-system: asdf: Don't search and replace inputs when unnecessary.

From: Guillaume Le Vaillant <[email-masked]>
Date: Wed, 26 Feb 2025 13:39:08 +0000

Christopher Baines <[email-masked]> skribis:

> If the new-name matches the original name, just use the original package.
> This avoids situations where there are several packages matching the name and
> the behaviour will be inconsistent, occasionally picking different packages.
>
> Since there are multiple glibc packages currently, I'm seeing this behaviour
> with cl-posix-mqueue and ecl-cl-posix-mqueue, occasionally they'll use the
> hurd glibc variant.
>
> * guix/build-system/asdf.scm (package-with-build-system): Use the original
> input packages unless the new-name differs.
>
> Change-Id: I08a1f3ad1290689b5497d31950ada4dc0bfa3a3a
> ---
>  guix/build-system/asdf.scm | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/guix/build-system/asdf.scm b/guix/build-system/asdf.scm
> index 26b5a5008a..ad0fb993f6 100644
> --- a/guix/build-system/asdf.scm
> +++ b/guix/build-system/asdf.scm
> @@ -155,9 +155,13 @@ (define* (package-with-build-system from-build-system to-build-system
>  
>    (define (find-input-package pkg)
>      (let* ((name (package-name pkg))
> -           (new-name (transform-package-name name))
> -           (pkgs (find-packages-by-name new-name)))
> -      (if (null? pkgs) #f (list-ref pkgs 0))))
> +           (new-name (transform-package-name name)))
> +      (if (string=? name new-name)
> +          pkg
> +          (let ((pkgs (find-packages-by-name new-name)))
> +            (if (null? pkgs)
> +                #f
> +                (list-ref pkgs 0))))))
>  
>    (define transform
>      (mlambda (pkg)
>
> base-commit: 90ee330bafc5a95493f9cdae2e32ddf740104ebc

Yes, that seems logical. I have not yet tried recompiling packages with
this patch, but visually it looks good to me.