guix: import: Improve home-page generation in texlive importer.

* guix/import/texlive.scm (tlpdb): Also register `catalogue' key.
(tlpdb->package): First try to use catalogue for the home-page, then the
name.
* tests/texlive.scm (%fake-tlpdb): Add tests data.
("texlive->guix-package, with catalogue entry, no inputs"): New test.
This commit is contained in:
Nicolas Goaziou 2023-05-15 00:45:54 +02:00
parent 4a245129ff
commit 7a6da1e22a
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D
2 changed files with 57 additions and 1 deletions

View file

@ -133,6 +133,7 @@ (define tlpdb
'((name . string)
(shortdesc . string)
(longdesc . string)
(catalogue . string)
(catalogue-license . string)
(catalogue-ctan . string)
(srcfiles . list)

View file

@ -32,7 +32,25 @@ (define-module (test-texlive)
(test-begin "texlive")
(define %fake-tlpdb
'(("example"
'(("12many"
. ((name
. "12many")
(catalogue
. "one2many")
(shortdesc
. "Generalising mathematical index sets")
(longdesc
. "In the discrete branches of mathematics...")
(docfiles
. ("texmf-dist/doc/latex/12many/12many.pdf"
"texmf-dist/doc/latex/12many/README"))
(srcfiles
. ("texmf-dist/source/latex/12many/12many.dtx"
"texmf-dist/source/latex/12many/12many.ins"))
(runfiles
. ("texmf-dist/tex/latex/12many/12many.sty"))
(catalogue-license . "lppl")))
("example"
. ((name . "example")
(shortdesc . "Typeset examples...")
(longdesc . "The package makes it easier...")
@ -247,4 +265,41 @@ (define %fake-tlpdb
(format #t "~s~%" result)
(pk 'fail result #f)))))))
(test-assert "texlive->guix-package, with catalogue entry, no inputs"
;; 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 "12many"
#:package-database
(lambda _ %fake-tlpdb))))
(match result
(('package
('name "texlive-12many")
('version _)
('source ('texlive-origin
'name 'version
('list "doc/latex/12many/"
"source/latex/12many/"
"tex/latex/12many/")
('base32 (? string? hash))))
('outputs ''("out" "doc"))
('build-system 'texlive-build-system)
('home-page "https://ctan.org/pkg/one2many")
('synopsis (? string?))
('description (? string?))
('license 'lppl))
#true)
(_
(begin
(format #t "~s~%" result)
(pk 'fail result #f)))))))
(test-end "texlive")