GNU bug report logs - #65665
package-mapping with #:deep? #t doesn't get all the implicit inputs

Previous Next

Package: guix;

Reported by: Ulf Herrman <striness <at> tilde.club>

Date: Thu, 31 Aug 2023 20:16:02 UTC

Severity: important

Full log


View this message in rfc822 format

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>, Ulf Herrman <striness <at> tilde.club>
Cc: dev <at> jpoiret.xyz, othacehe <at> gnu.org, ludo <at> gnu.org, me <at> tobias.gr, 65665 <at> debbugs.gnu.org, rekado <at> elephly.net, guix <at> cbaines.net
Subject: bug#65665: [PATCH] Really get all the implicit inputs.
Date: Thu, 12 Oct 2023 16:22:43 +0200
Hi Maxim,

On Thu, 05 Oct 2023 at 22:36, Maxim Cournoyer <maxim.cournoyer <at> gmail.com> wrote:

> I've reviewed it, and it makes sense to me.  I'd like to apply it to the
> core-updates branch.  Core team, what say you?

Well, I am not sure to deeply understand some details to get all the
implications here, so I have nothing relevant to say.  For instance,
from my understanding, the core change is:

--8<---------------cut here---------------start------------->8---
+  (define (rewrite-argument arg)
+    (match arg
+      ((? package? p)
+       (replace p))
+      ((? gexp-input? gi)
+       (gexp-input (rewrite-argument (gexp-input-thing gi))
+                   (gexp-input-output gi)
+                   #:native? (gexp-input-native? gi)))
+      ((? gexp? gxp)
+       (make-gexp (map rewrite-argument (gexp-references gxp))
+                  (gexp-self-modules gxp)
+                  (gexp-self-extensions gxp)
+                  (gexp-proc gxp)
+                  (%gexp-location gxp)))
+      ((lst ...)
+       (map rewrite-argument lst))
+      (_
+       arg)))
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
+                 (arguments
+                  (match p
+                       (($ <package> _ _ _ _ args-proc)
+                        ;; If we let ARGS-PROC be passed its original package,
+                        ;; we somehow end up in an infinite (or maybe just
+                        ;; exponential? Never seen it end...) loop.  Should
+                        ;; probably figure out what's causing that at some
+                        ;; point.
+                        (let ((args (args-proc this-package)))
+                          (if deep?
+                              (map rewrite-argument args)
+                              args)))))
--8<---------------cut here---------------end--------------->8---

and I do not feel enough skilled here for getting the implications.
Equally for this kind of changes:

--8<---------------cut here---------------start------------->8---
-         (arguments (strip-keyword-arguments private-keywords arguments)))))
+         (arguments
+          (substitute-keyword-arguments
+              (strip-keyword-arguments private-keywords arguments)
+            ((#:guile _ #t) guile))))))
--8<---------------cut here---------------end--------------->8---

Therefore, I trust other opinions or I need some time for diving and
filling some gaps.

Cheers,
simon




This bug report was last modified 1 year and 296 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.