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

commit 95c3407c9b4e8d059a9fb8499cb0d8260ba0c69f
Author: Nicolas Goaziou <m...@nicolasgoaziou.fr>
AuthorDate: Mon May 27 18:39:32 2024 +0200

    gnu: Add texlive-xetex-bin.
    
    * gnu/packages/tex.scm (texlive-xetex-bin): New variable.
    (texlive-xetex)[propagated-inputs]: Add TEXLIVE-XETEX-BIN.
    
    Change-Id: Iafb5e1347f4ff054711f52fb70204a30ae065797
---
 gnu/packages/tex.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index c018596556..cc24e972e9 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -74271,6 +74271,7 @@ that it will build with web2c out of the box.")
            texlive-plain
            texlive-tex-ini-files
            texlive-unicode-data
+           texlive-xetex-bin
            texlive-xetexconfig))
     (home-page "https://ctan.org/pkg/xetex";)
     (synopsis "Extended variant of TeX for use with Unicode sources")
@@ -74286,6 +74287,48 @@ which is ordinarily processed by a tightly bound 
processor (called
 @code{xdvipdfmx}), that produces PDF.")
     (license license:x11)))
 
+(define-public texlive-xetex-bin
+  (package
+    (inherit texlive-bin)
+    (name "texlive-xetex-bin")
+    (arguments
+     (substitute-keyword-arguments (package-arguments texlive-bin)
+       ((#:configure-flags flags)
+        #~(cons* "--disable-web2c"
+                 "--enable-xetex"
+                 (delete "--disable-xetex"
+                         (delete "--enable-web2c" #$flags))))
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            (add-after 'unpack 'set-default-xetex-outputdriver
+              ;; XeTeX requires the "xdvipdfmx" binary to be available in the
+              ;; same tree, so as to use it as a safe default "outputdriver".
+              ;; Use the one from TEXLIVE-DVIPDFMX-BIN instead of reporting an
+              ;; error each time "xelatex" is invoked.
+              (lambda _
+                (substitute* "texk/web2c/xetexdir/XeTeX_ext.c"
+                  (("(\\*outputdriver = \")xdvipdfmx " _ prefix)
+                   (string-append prefix
+                                  #$(this-package-input "texlive-dvipdfmx-bin")
+                                  "/bin/xdvipdfmx ")))))
+            (replace 'install
+              (lambda _
+                (let ((bin (string-append #$output "/bin")))
+                  (with-directory-excursion "texk/web2c"
+                    (invoke "make" "xetex")
+                    (install-file "xetex" bin))
+                  (with-directory-excursion bin
+                    (symlink "xetex" "xelatex")))))))))
+    (native-inputs (list pkg-config))
+    (inputs
+     (modify-inputs (package-inputs texlive-bin)
+       (append freetype teckit texlive-dvipdfmx-bin)))
+    (home-page (package-home-page texlive-xetex))
+    (synopsis "Binary for @code{texlive-xetex}")
+    (description
+     "This package provides the binary for @code{texlive-xetex}.")
+    (license (package-license texlive-xetex))))
+
 (define-public texlive-xfor
   (package
     (name "texlive-xfor")

Reply via email to