From 61bd7bf4690329a10e0a1d3fd1425a73d1823576 Mon Sep 17 00:00:00 2001 From: itd Date: Fri, 23 Sep 2022 09:42:53 +0200 Subject: [PATCH] import/utils: alist->package: Include properties. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/import/utils.scm (alist->package): Process properties field in input data and include it in the generated package. * tests/import-utils.scm ("alist->package with properties"): New test. Signed-off-by: Ludovic Courtès --- guix/import/utils.scm | 10 ++++++++++ tests/import-utils.scm | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index dd8c61b79a..977e1d5f95 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -444,10 +444,20 @@ specifications to look up and replace them with plain symbols instead." ((key . value) (list (symbol->keyword (string->symbol key)) value))) arguments)) + (define (process-properties properties) + (map (match-lambda + ((key . value) + (cons (string->symbol key) value))) + properties)) + (package (name (assoc-ref meta "name")) (version (assoc-ref meta "version")) (source (source-spec->object (assoc-ref meta "source"))) + (properties + (or (and=> (assoc-ref meta "properties") + process-properties) + '())) (build-system (lookup-build-system-by-name (string->symbol (assoc-ref meta "build-system")))) diff --git a/tests/import-utils.scm b/tests/import-utils.scm index 7c6c782917..c47348fc60 100644 --- a/tests/import-utils.scm +++ b/tests/import-utils.scm @@ -203,4 +203,23 @@ ("license" . #f)))) (package-native-inputs (alist->package meta)))) +(test-assert "alist->package with properties" + (let* ((meta '(("name" . "hello") + ("version" . "2.10") + ("source" . + ;; Use a 'file://' URI so that we don't cause a download. + ,(string-append "file://" + (search-path %load-path "guix.scm"))) + ("build-system" . "gnu") + ("properties" . (("hidden?" . #t) + ("upstream-name" . "hello-upstream"))) + ("home-page" . "https://gnu.org") + ("synopsis" . "Say hi") + ("description" . "This package says hi.") + ("license" . "GPL-3.0+"))) + (pkg (alist->package meta))) + (and (package? pkg) + (equal? (package-upstream-name pkg) "hello-upstream") + (hidden-package? pkg)))) + (test-end "import-utils")