diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2023-05-17 10:57:23 +0200 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2023-07-18 18:10:25 +0200 |
commit | 3fc925aa84901072a1fc9a1d05b1b3efc24c47e2 (patch) | |
tree | 53d0839d6b954a062c4ae82b75766242187f59bf | |
parent | 308b3e83c3dc65987f7187e55b2fa549147882d1 (diff) |
guix: import: Fix multiple licenses output in texlive importer.
* guix/import/texlive.scm (string->license): Add missing case and try first to
split license strings before giving up.
* tests/texlive.scm (%fake-tlpdb): Add test data.
("texlive->guix-package, multiple licenses"): New test.
-rw-r--r-- | guix/import/texlive.scm | 3 | ||||
-rw-r--r-- | tests/texlive.scm | 48 |
2 files changed, 50 insertions, 1 deletions
diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm index 31abf533c4..33a0e7d1d9 100644 --- a/guix/import/texlive.scm +++ b/guix/import/texlive.scm @@ -109,7 +109,8 @@ ("cc-by-nc-nd-2.5" 'non-free) ("cc-by-nc-nd-3" 'non-free) ("cc-by-nc-nd-4" 'non-free) - ((x) (string->license x)) + ((? string? x) (string->license (string-split x #\space))) + ((x) `(error unknown-license ,x)) ((lst ...) `(list ,@(map string->license lst))) (x `(error unknown-license ,x)))) diff --git a/tests/texlive.scm b/tests/texlive.scm index 19bb3bda1b..9f4c965139 100644 --- a/tests/texlive.scm +++ b/tests/texlive.scm @@ -50,6 +50,18 @@ (runfiles . ("texmf-dist/tex/latex/12many/12many.sty")) (catalogue-license . "lppl"))) + ("chs-physics-report" + . ((name . "ch-physics-report") + (shortdesc . "Physics lab reports...") + (longdesc . "This package may...") + (docfiles + . + ("texmf-dist/doc/latex/chs-physics-report/README.txt" + "texmf-dist/doc/latex/chs-physics-report/chs-physics-report.pdf")) + (runfiles + . + ("texmf-dist/tex/latex/chs-physics-report/chs-physics-report.sty")) + (catalogue-license . "pd cc-by-sa-3"))) ("example" . ((name . "example") (shortdesc . "Typeset examples...") @@ -302,4 +314,40 @@ completely compatible with Plain TeX.") (format #t "~s~%" result) (pk 'fail result #f))))))) +(test-assert "texlive->guix-package, multiple licenses" + ;; Replace network resources with sample data. + (mock ((guix build svn) svn-fetch + (lambda* (url revision directory + #:key (svn-command "svn") + (user-name #f) + (password #f) + (recursive? #t)) + (mkdir-p directory) + (with-output-to-file (string-append directory "/foo") + (lambda () + (display "source"))))) + (let ((result (texlive->guix-package "chs-physics-report" + #:package-database + (lambda _ %fake-tlpdb)))) + (match result + (('package + ('name "texlive-chs-physics-report") + ('version _) + ('source ('texlive-origin + 'name 'version + ('list "doc/latex/chs-physics-report/" + "tex/latex/chs-physics-report/") + ('base32 (? string? hash)))) + ('outputs ''("out" "doc")) + ('build-system 'texlive-build-system) + ('home-page (? string?)) + ('synopsis (? string?)) + ('description (? string?)) + ('license ('list 'public-domain 'cc-by-sa3.0))) + #true) + (_ + (begin + (format #t "~s~%" result) + (pk 'fail result #f))))))) + (test-end "texlive") |