me
/
guix
Archived
1
0
Fork 0

import/utils: alist->package: Handle SPDX license names only as fallback.

Fixes <https://bugs.gnu.org/45453>.

* guix/import/utils.scm (alist->package): Find plain license names in (guix
licenses) first, and only fall back to SPDX names on error.
* tests/import-utils.scm ("alist->package with SPDX license name 1/2",
"alist->package with SPDX license name 2/2"): New tests.
master
Ricardo Wurmus 2020-12-27 12:05:24 +01:00
parent 649786f0cb
commit 5aae614868
No known key found for this signature in database
GPG Key ID: 197A5888235FACAC
2 changed files with 38 additions and 2 deletions

View File

@ -372,8 +372,12 @@ specifications to look up and replace them with plain symbols instead."
(match (assoc-ref meta "license")
(#f #f)
(l
(or (module-ref (resolve-interface '(guix licenses) #:prefix 'license:)
(spdx-string->license l))
(or (false-if-exception
(module-ref (resolve-interface '(guix licenses))
(string->symbol l)))
(false-if-exception
(module-ref (resolve-interface '(guix licenses) #:prefix 'license:)
(spdx-string->license l)))
(license:fsdg-compatible l)))))))
(define* (read-lines #:optional (port (current-input-port)))

View File

@ -122,6 +122,38 @@
(or (package-license (alist->package meta))
'license-is-false)))
(test-equal "alist->package with SPDX license name 1/2" ;<https://bugs.gnu.org/45453>
license:expat
(let* ((meta '(("name" . "hello")
("version" . "2.10")
("source" . (("method" . "url-fetch")
("uri" . "mirror://gnu/hello/hello-2.10.tar.gz")
("sha256" .
(("base32" .
"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i")))))
("build-system" . "gnu")
("home-page" . "https://gnu.org")
("synopsis" . "Say hi")
("description" . "This package says hi.")
("license" . "expat"))))
(package-license (alist->package meta))))
(test-equal "alist->package with SPDX license name 2/2" ;<https://bugs.gnu.org/45453>
license:expat
(let* ((meta '(("name" . "hello")
("version" . "2.10")
("source" . (("method" . "url-fetch")
("uri" . "mirror://gnu/hello/hello-2.10.tar.gz")
("sha256" .
(("base32" .
"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i")))))
("build-system" . "gnu")
("home-page" . "https://gnu.org")
("synopsis" . "Say hi")
("description" . "This package says hi.")
("license" . "MIT"))))
(package-license (alist->package meta))))
(test-equal "alist->package with dependencies"
`(("gettext" ,(specification->package "gettext")))
(let* ((meta '(("name" . "hello")