summary refs log tree commit diff
path: root/guix
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2023-06-04 13:15:27 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2023-07-18 18:12:49 +0200
commit47913ab45276ff45ab47687e1b67b5bc103089df (patch)
treef1d9d194876cd7172cd5759f268beaa02f8983ec /guix
parent7ce20143a7ccddf54b878f51ef856ea3e717587f (diff)
downloadguix-47913ab45276ff45ab47687e1b67b5bc103089df.tar.gz
guix: Let texlive importer suggest format creation.
* guix/import/texlive.scm (tlpdb): Store "execute" entries.
(tlpdb->package): Add #:CREATE-FORMATS argument when there is an AddFormat
execute action.
* tests/texlive.scm (%fake-tlpdb): Add test data.
("texlive->guix-package, with TeX format"):
("texlive->guix-package, execute but no TeX format"): New tests.
Diffstat (limited to 'guix')
-rw-r--r--guix/import/texlive.scm20
1 files changed, 19 insertions, 1 deletions
diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm
index da58c8d13f..36c6f3efb1 100644
--- a/guix/import/texlive.scm
+++ b/guix/import/texlive.scm
@@ -156,7 +156,8 @@
               (srcfiles . list)
               (runfiles . list)
               (docfiles . list)
-              (depend   . simple-list)))
+              (depend   . simple-list)
+              (execute  . simple-list)))
            (record
             (lambda* (key value alist #:optional (type 'string))
               (let ((new
@@ -319,6 +320,23 @@ of those files are returned that are unexpectedly installed."
                 '((outputs '("out" "doc")))
                 '())
           (build-system texlive-build-system)
+          ;; Translate AddFormat execute actions into a `#:create-formats'
+          ;; argument.
+          ,@(or (and-let*
+                    ((actions (assoc-ref data 'execute))
+                     (formats
+                      (delete-duplicates
+                       (filter-map (lambda (action)
+                                     (match (string-split action #\space)
+                                       (("AddFormat" name . _)
+                                        (string-drop name
+                                                     (string-length "name=")))
+                                       (  #f)))
+                                   actions)))
+                     ((not (null? formats))))
+                  `((arguments
+                     (list #:create-formats #~(list ,@(reverse formats))))))
+                '())
           ;; Texlive build system generates font metrics whenever a font
           ;; metrics file has the same base name as a Metafont file.
           ,@(or (and-let* ((runfiles (assoc-ref data 'runfiles))