summary refs log tree commit diff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2023-05-15 00:45:54 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2023-07-18 18:10:25 +0200
commit7a6da1e22a93bcb0408bff4d7b5368dc289415a7 (patch)
tree43b6838acea855cb4958e98cae97a3c63a01ec37
parent4a245129ffc84ca9a173da82df6f91239c6b1fe6 (diff)
downloadguix-7a6da1e22a93bcb0408bff4d7b5368dc289415a7.tar.gz
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.
-rw-r--r--guix/import/texlive.scm1
-rw-r--r--tests/texlive.scm57
2 files changed, 57 insertions, 1 deletions
diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm
index e5fcb7adf8..8618ccd802 100644
--- a/guix/import/texlive.scm
+++ b/guix/import/texlive.scm
@@ -133,6 +133,7 @@
             '((name     . string)
               (shortdesc . string)
               (longdesc . string)
+              (catalogue . string)
               (catalogue-license . string)
               (catalogue-ctan . string)
               (srcfiles . list)
diff --git a/tests/texlive.scm b/tests/texlive.scm
index 1493fc87bb..19bb3bda1b 100644
--- a/tests/texlive.scm
+++ b/tests/texlive.scm
@@ -32,7 +32,25 @@
 (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 @@ completely compatible with Plain TeX.")
                (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")