guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

49/75: import: go: Emit new-style package inputs.


From: guix-commits
Subject: 49/75: import: go: Emit new-style package inputs.
Date: Sun, 21 Jan 2024 13:21:48 -0500 (EST)

apteryx pushed a commit to branch core-updates
in repository guix.

commit 76a5553b22ebcf8daab9675cd997cdd696dfb4d8
Author: Sarah Morgensen <iskarian@mgsn.dev>
AuthorDate: Tue Jul 20 19:59:21 2021 -0700

    import: go: Emit new-style package inputs.
    
    Since PACKAGE-NAMES->PACKAGE-INPUTS is used by both the go and crate
    importers, give the crate importer a copy of the original so it
    continues to use old-style inputs until it is updated.
    
    * guix/import/utils.scm (package-names->package-inputs)[make-input]:
    Return new-style package inputs.
    (maybe-inputs): Wrap PACKAGE-INPUTS in 'list' instead of 'quasiquote'.
    * guix/import/crate.scm (package-names->package-inputs): New variable.
    * tests/go.scm ("go-module->guix-package"): Adjust to new-style package
    inputs.
    
    Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
---
 guix/import/crate.scm | 17 +++++++++++++++++
 guix/import/utils.scm | 12 +++++-------
 tests/go.scm          |  2 +-
 3 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/guix/import/crate.scm b/guix/import/crate.scm
index b5a0b604e2..0d1e6ea541 100644
--- a/guix/import/crate.scm
+++ b/guix/import/crate.scm
@@ -142,6 +142,23 @@ record or #f if it was not found."
 ;;; Converting crates to Guix packages.
 ;;;
 
+(define* (package-names->package-inputs names #:optional (output #f))
+  "Given a list of PACKAGE-NAMES or (PACKAGE-NAME VERSION) pairs, and an
+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))
+               '())))
+
+  (map (match-lambda
+         ((input version) (make-input input version))
+         (input (make-input input #f)))
+       names))
+
 (define (maybe-cargo-inputs package-names)
   (match (package-names->package-inputs package-names)
     (()
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index 0cf52cdbde..fdfebffc50 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -408,12 +408,10 @@ LENGTH characters."
 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 ((name (if version (string-append input "-" version) input)))
+      (if output
+          (list (string->symbol name) output)
+          (string->symbol name))))
 
   (map (match-lambda
          ((input version) (make-input input version))
@@ -434,7 +432,7 @@ snippet generated is for regular inputs."
       (()
        '())
       ((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."
diff --git a/tests/go.scm b/tests/go.scm
index d2e8846b30..f925c485c1 100644
--- a/tests/go.scm
+++ b/tests/go.scm
@@ -389,7 +389,7 @@ require github.com/kr/pretty v0.2.1
      (arguments
       (list #:import-path "github.com/go-check/check"))
      (propagated-inputs
-      `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
+      (list go-github-com-kr-pretty))
      (home-page "https://github.com/go-check/check";)
      (synopsis "Instructions")
      (description "Package check is a rich testing extension for Go's testing \



reply via email to

[Prev in Thread] Current Thread [Next in Thread]