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
parent
649786f0cb
commit
5aae614868
|
@ -372,8 +372,12 @@ specifications to look up and replace them with plain symbols instead."
|
||||||
(match (assoc-ref meta "license")
|
(match (assoc-ref meta "license")
|
||||||
(#f #f)
|
(#f #f)
|
||||||
(l
|
(l
|
||||||
(or (module-ref (resolve-interface '(guix licenses) #:prefix 'license:)
|
(or (false-if-exception
|
||||||
(spdx-string->license l))
|
(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)))))))
|
(license:fsdg-compatible l)))))))
|
||||||
|
|
||||||
(define* (read-lines #:optional (port (current-input-port)))
|
(define* (read-lines #:optional (port (current-input-port)))
|
||||||
|
|
|
@ -122,6 +122,38 @@
|
||||||
(or (package-license (alist->package meta))
|
(or (package-license (alist->package meta))
|
||||||
'license-is-false)))
|
'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"
|
(test-equal "alist->package with dependencies"
|
||||||
`(("gettext" ,(specification->package "gettext")))
|
`(("gettext" ,(specification->package "gettext")))
|
||||||
(let* ((meta '(("name" . "hello")
|
(let* ((meta '(("name" . "hello")
|
||||||
|
|
Reference in New Issue