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

From: Christopher Baines <[email-masked]>
Date: Wed, 26 Feb 2025 10:38:30 +0000

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
-- 
2.48.1