guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

309/418: gnu: texlive-tipa: Refresh package definition.


From: guix-commits
Subject: 309/418: gnu: texlive-tipa: Refresh package definition.
Date: Fri, 2 Jun 2023 17:25:40 -0400 (EDT)

ngz pushed a commit to branch tex-team-next
in repository guix.

commit 56e1f96dc71326073cac801e7feffc426d824328
Author: Nicolas Goaziou <mail@nicolasgoaziou.fr>
AuthorDate: Tue May 16 20:25:23 2023 +0200

    gnu: texlive-tipa: Refresh package definition.
    
    * gnu/packages/tex.scm (texlive-tipa): Remove SIMPLE-TEXLIVE-PACKAGE
    call.
    [arguments]<#:phases>: Build font metrics.
---
 gnu/packages/tex.scm | 101 ++++++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 83 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index c767352af0..7ed5b751aa 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -5199,25 +5199,90 @@ It includes little more than the required set of LaTeX 
packages.")))
 
 (define-public texlive-tipa
   (package
-    (inherit (simple-texlive-package
-              "texlive-tipa"
-              (list "/tex4ht/ht-fonts/alias/tipa/"
-                    "/doc/fonts/tipa/"
-                    "/fonts/map/dvips/tipa/"
-                    "/fonts/source/public/tipa/"
-                    "/fonts/tfm/public/tipa/"
-                    "/fonts/type1/public/tipa/"
-                    "/tex/latex/tipa/")
-              (base32
-               "0cqzf8vb10b8jw99m9gflskxa4c3rpiznxglix6chl5lai5sgw44")
-              #:trivial? #t))
-    (home-page "https://www.ctan.org/pkg/tipa";)
+    (name "texlive-tipa")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/tipa/"
+                   "fonts/map/dvips/tipa/"
+                   "fonts/source/public/tipa/"
+                   "fonts/tfm/public/tipa/"
+                   "fonts/type1/public/tipa/"
+                   "tex/latex/tipa/")
+             (base32
+              "11gi7yhq2lnfgvqa29i0sidi5mwkzpja5ggdcpvqwv4xljf4vpvh")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list
+      #:modules
+      '((guix build texlive-build-system)
+        (guix build utils)
+        (ice-9 regex)
+        (srfi srfi-1)
+        (srfi srfi-26))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'install 'generate-fonts-metrics
+            (lambda _
+              (let ((mf #$(this-package-native-input "texlive-metafont"))
+                    (cm #$(this-package-native-input "texlive-cm"))
+                    (fonts-directories
+                     (delete-duplicates
+                      (map dirname
+                           (find-files "." "[0-9]+\\.mf$"))))
+                    (root (getcwd)))
+                (mkdir-p "build")
+                ;; Tell mf where to find mf.base.
+                (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c"))
+                (for-each
+                 (lambda (directory)
+                   ;; Tell mf where to look for source files.
+                   (setenv "MFINPUTS"
+                           (string-append
+                            (getcwd) "/" directory ":"
+                            mf "/share/texmf-dist/metafont/base:"
+                            cm "/share/texmf-dist/fonts/source/public/cm"))
+                   ;; Build font metrics (tfm).
+                   (with-directory-excursion directory
+                     (for-each (lambda (font)
+                                 (format #t "building font ~a\n" font)
+                                 (invoke "mf" "-progname=mf"
+                                         (string-append "-output-directory="
+                                                        root "/build")
+                                         (string-append "\\"
+                                                        "mode:=ljfour; "
+                                                        "mag:=1; "
+                                                        "batchmode; "
+                                                        "input "
+                                                        (basename font 
".mf"))))
+                               ;; "tipasym[1-4].mf are files to be included in
+                               ;; other ".mf" files and should not be compiled
+                               ;; by themselves.
+                               (filter
+                                (negate
+                                 (cut string-match "tipasym[0-9]\\.mf$" <>))
+                                (find-files "." "[0-9]+\\.mf$"))))
+                   ;; Install font metrics at the appropriate location.
+                   (let ((destination
+                          ;; fonts/source/xxx/yyy/... -> fonts/tfm/xxx/yyy/...
+                          (string-append "fonts/tfm"
+                                         (string-drop
+                                          directory
+                                          (string-length "fonts/source")))))
+                     (format #t "moving font metrics in ~a\n" destination)
+                     (for-each (cut install-file <> destination)
+                               (find-files "build/" "\\.tfm$"))))
+                 fonts-directories)))))))
+    (native-inputs
+     (list texlive-cm texlive-metafont))
+    (home-page "https://ctan.org/pkg/tipa";)
     (synopsis "Fonts and macros for IPA phonetics characters")
-    (description "These fonts are considered the \"ultimate answer\" to IPA
-typesetting.  The encoding of these 8-bit fonts has been registered as LaTeX
-standard encoding T3, and the set of addendum symbols as encoding
-TS3. \"Times-like\" Adobe Type 1 versions are provided for both the T3 and the
-TS3 fonts.")
+    (description
+     "These fonts are considered the ultimate answer to IPA typesetting.  The
+encoding of these 8-bit fonts has been registered as LaTeX standard encoding
+T3, and the set of addendum symbols as encoding TS3.  Times-like Adobe Type
+1 versions are provided for both the T3 and the TS3 fonts.")
     (license license:lppl)))
 
 (define-public texlive-amsrefs



reply via email to

[Prev in Thread] Current Thread [Next in Thread]