import: gem: Deal with unavailable licensing info.

Fixes <https://bugs.gnu.org/39404>.
Reported by Seth <lee.seth@tuta.io>.

* guix/import/gem.scm (<gem>)[licenses]: Adjust for non-vector
licenses.
* tests/gem.scm (test-bar-json): Change "licenses" to 'null'.
("gem-recursive-import"): Adjust accordingly.
This commit is contained in:
Ludovic Courtès 2020-02-05 16:03:43 +01:00
parent 23db833335
commit c24fe4a520
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 8 additions and 3 deletions

View file

@ -44,7 +44,12 @@ (define-json-mapping <gem> make-gem gem?
(version gem-version) ;string
(authors gem-authors) ;string
(licenses gem-licenses "licenses" ;list of strings
vector->list)
(lambda (licenses)
;; This is sometimes #nil (the JSON 'null' value). Arrange
;; to always return a list.
(cond ((not licenses) '())
((vector? licenses) (vector->list licenses))
(else '()))))
(info gem-info)
(sha256 gem-sha256 "sha" ;bytevector
base16-string->bytevector)

View file

@ -55,7 +55,7 @@ (define test-bar-json
{ \"name\": \"bundler\" },
]
},
\"licenses\": [\"MIT\", \"Apache 2.0\"]
\"licenses\": null
}")
(define test-bundler-json
@ -138,7 +138,7 @@ (define test-bundler-json
('synopsis "Another cool gem")
('description "Another cool gem")
('home-page "https://example.com")
('license ('list 'license:expat 'license:asl2.0)))
('license #f)) ;no licensing info
('package
('name "ruby-bundler")
('version "1.14.2")