[PATCH] guix: import: Convert inputs to the new format.

OpenSubmitted by Attila Lendvai.
Details
3 participants
  • Attila Lendvai
  • Ludovic Courtès
  • Ricardo Wurmus
Owner
unassigned
Severity
normal
A
A
Attila Lendvai wrote on 13 Apr 14:30 +0200
(address . guix-patches@gnu.org)(name . Attila Lendvai)(address . attila@lendvai.name)
20220413123108.5902-1-attila@lendvai.name
* guix/import/utils.scm (package-names->package-inputs): Return the simplified format.
(maybe-inputs): Use the simplified format.
---
guix/import/utils.scm | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)

Toggle diff (35 lines)
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index 9cadbb3d5f..40dae55acd 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -268,12 +268,13 @@ (define* (package-names->package-inputs names #:optional (output #f))
 optional OUTPUT, tries to generate a quoted list of inputs, as suitable to
 use in an 'inputs' field of a package definition."
   (define (make-input input version)
-    (cons* input (list 'unquote (string->symbol
-                                 (if version
-                                     (string-append input "-" version)
-                                     input)))
-           (or (and output (list output))
-               '())))
+    (let ((pkg (string->symbol
+                (if version
+                    (string-append input "-" version)
+                    input))))
+      (if output
+          (list pkg output)
+          pkg)))
 
   (map (match-lambda
          ((input version) (make-input input version))
@@ -294,7 +295,7 @@ (define* (maybe-inputs package-names #:optional (output #f)
       (()
        '())
       ((package-inputs ...)
-       `((,field-name (,'quasiquote ,package-inputs)))))))
+       `((,field-name (list ,@package-inputs)))))))
 
 (define* (maybe-native-inputs package-names #:optional (output #f))
   "Same as MAYBE-INPUTS, but for native inputs."
-- 
2.35.1
R
R
Ricardo Wurmus wrote on 14 Apr 12:33 +0200
(address . 54910@debbugs.gnu.org)
87r160vtjy.fsf@elephly.net
Thanks for the patch!

This looked good to me, so I applied it locally. I then ran the test
suite and noticed that tests/go.scm and tests/crate.scm have failing
tests.

The failure in tests/go.scm is harmless and can easily be fixed. But
the failure in tests/crate.scm indicates a real problem, I think. The
build system expects that inputs are placed in the #:cargo-inputs field
in (arguments …), and this seems to expect old-style labelled inputs.

I don’t know if the build system would work with the new-style plain
lists in the arguments field, so I’m Cc-ing contributors to the build
system.

@Jakub and @Efraim: could you please comment on this?

Thanks in advance!

--
Ricardo
L
L
Ludovic Courtès wrote on 23 May 15:37 +0200
87sfp05q0m.fsf_-_@gnu.org
Hey Efraim & Jakub,

Ricardo Wurmus <rekado@elephly.net> skribis:

Toggle quote (17 lines)
> Thanks for the patch!
>
> This looked good to me, so I applied it locally. I then ran the test
> suite and noticed that tests/go.scm and tests/crate.scm have failing
> tests.
>
> The failure in tests/go.scm is harmless and can easily be fixed. But
> the failure in tests/crate.scm indicates a real problem, I think. The
> build system expects that inputs are placed in the #:cargo-inputs field
> in (arguments …), and this seems to expect old-style labelled inputs.
>
> I don’t know if the build system would work with the new-style plain
> lists in the arguments field, so I’m Cc-ing contributors to the build
> system.
>
> @Jakub and @Efraim: could you please comment on this?

A friendly ping. :-)

I think it’s important to make sure the current Rust packaging strategy
does not “hold us back”.

Thanks,
Ludo’.
?