gnu: emacs-consult: Fix grammar.
[jackhill/guix/guix.git] / gnu / packages / tex.scm
index 3e67c75..bcb7f16 100644 (file)
@@ -3,16 +3,19 @@
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2016, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
-;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018, 2020 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020, 2021 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
-  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
+  #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system texlive)
   #:use-module (guix utils)
@@ -144,19 +148,17 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-SYSTEM is used."
                               "-checkout"))
     (sha256
      (base32
-      "1ix8h637hwhz4vrdhilf84kzzdza0wi8fp26nh7iws0bq08sl517"))))
+      "0lk7shx768sxvgr85y8bnmmnj8x4bbkgpxrz3z8jp8avi33prw83"))))
 
 (define (texlive-hyphen-package name code locations hash)
+  "Return a TeX Live hyphenation package with the given NAME, using source
+files from LOCATIONS with expected checksum HASH.  CODE is not currently in use."
   (let ((parent (simple-texlive-package
                  name locations hash #:trivial? #t)))
     (package
       (inherit parent)
       (arguments
        (substitute-keyword-arguments (package-arguments parent)
-         ((#:modules _ '())
-          '((guix build gnu-build-system)
-            (guix build utils)
-            (ice-9 match)))
          ((#:phases phases)
           `(modify-phases ,phases
              (replace 'build
@@ -169,12 +171,8 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-SYSTEM is used."
                          (string-append root "/tex/generic/hyph-utf8/loadhyph"))
                         (ptex
                          (string-append root "/tex/generic/hyph-utf8/patterns/ptex"))
-                        (filter-expression
-                         (match ',code
-                           ((? string?)
-                            (format #f "\nlanguages.select!{|l| l.code == \"~a\"}\n" ',code))
-                           ((a b ...)
-                            (format #f "\nlanguages.select!{|l| [~{\"~a\",~}].include? l.code }\n" ',code)))))
+                        (quote
+                         (string-append root "/tex/generic/hyph-utf8/patterns/quote")))
                    (mkdir "scripts")
                    (copy-recursively
                     (assoc-ref inputs "hyph-utf8-scripts") "scripts")
@@ -183,74 +181,69 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-SYSTEM is used."
                    (mkdir-p patterns)
                    (mkdir-p loaders)
                    (mkdir-p ptex)
+                   (mkdir-p quote)
 
                    ;; Generate plain patterns
                    (with-directory-excursion "scripts"
-                     (substitute* "languages.rb"
-                       (("../../../tex/generic/") "../tex/generic/"))
+                     (substitute* "lib/tex/hyphen/path.rb"
+                       (("^([[:blank:]]+)TeXROOT = .*" _ indent)
+                        (string-append indent "TeXROOT = \""
+                                       (getcwd) "/..\"\n")))
+
                      (substitute* "generate-plain-patterns.rb"
                        ;; Ruby 2 does not need this.
                        (("require 'unicode'") "")
-                       (("Unicode.upcase\\(ch\\)") "ch.upcase")
                        ;; Write directly to the output directory
-                       (("\\$path_root=File.*")
-                        (string-append "$path_root=\"" out "/share/texmf-dist/\"\n"))
-                       ;; Create quote directory when needed
-                       (("f = File.open\\(\"#\\{\\$path_quote\\}" m)
-                        (string-append "require 'fileutils'; FileUtils.mkdir_p $path_quote;" m))
-                       ;; Only generate patterns for this language.
-                       (("languages =.*" m)
-                        (string-append m filter-expression)))
+                       (("File\\.join\\(PATH::TXT")
+                        (string-append "File.join(\"" patterns "\""))
+                       (("File\\.join\\(PATH::QUOTE")
+                        (string-append "File.join(\"" quote "\"")))
                      (invoke "ruby" "generate-plain-patterns.rb")
 
                      ;; Build pattern loaders
                      (substitute* "generate-pattern-loaders.rb"
-                       (("\\$path_tex_generic=File.*")
-                        (string-append "$path_tex_generic=\"" root "/tex/generic\"\n"))
-                       ;; Only generate loader for this language.
-                       (("languages =.*" m)
-                        (string-append m filter-expression)))
+                       (("File\\.join\\(PATH::LOADER")
+                        (string-append "File.join(\"" loaders "\"")))
+
                      (invoke "ruby" "generate-pattern-loaders.rb")
 
                      ;; Build ptex patterns
                      (substitute* "generate-ptex-patterns.rb"
-                       (("\\$path_root=File.*")
-                        (string-append "$path_root=\"" root "\"\n"))
-                       ;; Only generate ptex patterns for this language.
-                       (("languages =.*" m)
-                        (string-append m filter-expression)))
+                       (("File\\.join\\(PATH::PTEX")
+                        (string-append "File.join(\"" ptex "\"")))
                      (invoke "ruby" "generate-ptex-patterns.rb")))))))))
       (native-inputs
        `(("ruby" ,ruby)
+         ("ruby-hydra" ,ruby-hydra)
          ("hyph-utf8-scripts" ,hyph-utf8-scripts)))
       (home-page "https://ctan.org/pkg/hyph-utf8"))))
 
 (define texlive-extra-src
   (origin
     (method url-fetch)
-    (uri "ftp://tug.org/historic/systems/texlive/2018/texlive-20180414-extra.tar.xz")
+    (uri "ftp://tug.org/historic/systems/texlive/2019/texlive-20190410-extra.tar.xz")
     (sha256 (base32
-             "0a83kymxc8zmlxjb0y1gf6mx7qnf0hxffwkivwh5yh138y2rfhsv"))))
+             "13ncf2an4nlqv18lki6y2p6pcsgs1i54zqkhfwprax5j53bk70j8"))))
 
 (define texlive-texmf-src
   (origin
     (method url-fetch)
-    (uri "ftp://tug.org/historic/systems/texlive/2018/texlive-20180414-texmf.tar.xz")
+    (uri "ftp://tug.org/historic/systems/texlive/2019/texlive-20190410-texmf.tar.xz")
     (sha256 (base32
-             "1b8zigzg8raxkhhzphcmynf84rbdbj2ym2qkz24v8n0qx82zmqms"))))
+             "00n4qh9fj8v9zzy3y488hpfq1g3dnnh72y4yjsaikfcqpi59gv62"))))
 
 (define-public texlive-bin
   (package
    (name "texlive-bin")
-   (version "20180414")
+   (version "20190410")
    (source
     (origin
       (method url-fetch)
-      (uri (string-append "ftp://tug.org/historic/systems/texlive/2018/"
+      (uri (string-append "ftp://tug.org/historic/systems/texlive/2019/"
                           "texlive-" version "-source.tar.xz"))
       (sha256
        (base32
-        "0khyi6h015r2zfqgg0a44a2j7vmr1cy42knw7jbss237yvakc07y"))
+        "1dfps39q6bdr1zsbp9p74mvalmy3bycihv19sb9c6kg30kprz8nj"))
       (patches
        (let ((arch-patch
               (lambda (name revision hash)
@@ -261,14 +254,29 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-SYSTEM is used."
                                       "&id=" revision))
                   (file-name (string-append "texlive-bin-" name))
                   (sha256 (base32 hash)))))
-             (arch-revision "c4b99aba97213ea554b6592a4916d3c7394a6d7b"))
-         (append (search-patches  "texlive-bin-CVE-2018-17407.patch"
-                                  "texlive-bin-luatex-poppler-compat.patch")
-                 (list
-                  (arch-patch "pdftex-poppler0.76.patch" arch-revision
-                              "15ypbh21amfsdxy7ca825x28lkmmkklxk1w660gpgvzdi7s70h0b")
-                  (arch-patch "xetex-poppler-fixes.patch" arch-revision
-                              "1jj1p5zkjljb7id9pjv29cw0cf8mwrgrh4ackgzz9c200vaqpsvx")))))))
+             (arch-revision "49d7fe25e5ea63f136ebc20270c1d8fc9b00041c"))
+         (list
+          (arch-patch "pdftex-poppler0.76.patch" arch-revision
+                      "03vc88dz37mjjyaspzv0fik2fp5gp8qv82114869akd1dhszbaax")
+          (search-patch "texlive-bin-poppler-0.83.patch")
+          (arch-patch "texlive-poppler-0.84.patch" arch-revision
+                      "1ia6cr99krk4ipx4hdi2qdb98bh2h26mckjlpxdzrjnfhlnghksa")
+          (search-patch "texlive-bin-poppler-0.86.patch"))))
+      (modules '((guix build utils)
+                 (ice-9 ftw)))
+      (snippet
+       '(begin
+          (with-directory-excursion "libs"
+            (let ((preserved-directories '("." ".." "lua53" "luajit")))
+              ;; Delete bundled software, except Lua which cannot easily be
+              ;; used as an external dependency.
+              (for-each delete-file-recursively
+                        (scandir "."
+                                 (lambda (file)
+                                   (and (not (member file preserved-directories))
+                                        (eq? 'directory (stat:type (stat file)))))))))
+          ;; TODO: Unbundle stuff in texk/dvisvgm/dvisvgm-src/libs too.
+          #t))))
    (build-system gnu-build-system)
    (inputs
     `(("texlive-extra-src" ,texlive-extra-src)
@@ -285,7 +293,7 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-SYSTEM is used."
                                     "-checkout"))
           (sha256
            (base32
-            "0wrjls1y9b4k1z10l9l8w2l3yjcw7v7by2y16kchdpkiyldlkry6"))))
+            "1cj04svl8bpfwjr4gqfcc04rmklz3aggrxvgj7q5bxrh7c7g18xh"))))
       ("cairo" ,cairo)
       ("fontconfig" ,fontconfig)
       ("fontforge" ,fontforge)
@@ -316,7 +324,8 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-SYSTEM is used."
    (arguments
     `(#:out-of-source? #t
       #:configure-flags
-       `("--disable-native-texlive-build"
+       '("--disable-static"
+         "--disable-native-texlive-build"
          "--with-system-cairo"
          "--with-system-freetype2"
          "--with-system-gd"
@@ -334,14 +343,23 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-SYSTEM is used."
          "--with-system-teckit"
          "--with-system-xpdf"
          "--with-system-zlib"
-         "--with-system-zziplib")
-
-      ;; Disable tests on mips64/aarch64 to cope with a failure of luajiterr.test.
-      ;; XXX FIXME fix luajit properly on mips64 and aarch64.
+         "--with-system-zziplib"
+         ;; LuaJIT is not ported to powerpc64le* yet.
+         ,@(if (string-prefix? "powerpc64le" (or (%current-target-system)
+                                                 (%current-system)))
+               '("--disable-luajittex"
+                 "--disable-mfluajit")
+               '()))
+
+      ;; Disable tests on some architectures to cope with a failure of
+      ;; luajiterr.test.
+      ;; XXX FIXME fix luajit properly on these architectures.
       #:tests? ,(let ((s (or (%current-target-system)
                              (%current-system))))
                   (not (or (string-prefix? "aarch64" s)
-                           (string-prefix? "mips64" s))))
+                           (string-prefix? "mips64" s)
+                           (string-prefix? "powerpc64le" s))))
+
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'configure-ghostscript-executable
@@ -363,18 +381,13 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-SYSTEM is used."
             (copy-file "texk/web2c/pdftexdir/pdftosrc-poppler0.76.0.cc"
                        "texk/web2c/pdftexdir/pdftosrc.cc")
             #t))
-        (add-after 'use-code-for-new-poppler 'use-code-for-even-newer-poppler
+        (add-after 'unpack 'patch-dvisvgm-build-files
           (lambda _
-            ;; Adjust for deprecated types in Poppler 0.73 and later.
-            (substitute* (append
-                          (find-files "texk/web2c/luatexdir/" "\\.(cc|w)$")
-                          '("texk/web2c/pdftexdir/pdftosrc.cc"))
-              (("GBool") "bool")
-              (("gFalse") "false")
-              (("gTrue") "true")
-              (("getCString") "c_str")
-              (("Guint") "unsigned int")
-              (("Guchar") "unsigned char"))
+            ;; XXX: Ghostscript is detected, but HAVE_LIBGS is never set, so
+            ;; the appropriate linker flags are not added.
+            (substitute* "texk/dvisvgm/configure"
+              (("^have_libgs=yes" all)
+               (string-append all "\nHAVE_LIBGS=1")))
             #t))
         (add-after 'unpack 'disable-failing-test
           (lambda _
@@ -451,7 +464,7 @@ This package contains the binaries.")
               "texlive-docstrip"
               (list "/tex/latex/base/docstrip.tex")
               (base32
-               "17vdy43d9vknldz7wb69hp33r8awmdvn4xszamvgs5ikcl4cp289")
+               "1f9sx1lp7v34zwm186msf03q2h28rrg0lh65z59zc0cvqffs6dvb")
               #:trivial? #t))
     (home-page "https://www.ctan.org/texlive")
     (synopsis "Utility to strip documentation from TeX files.")
@@ -466,7 +479,7 @@ documentation from TeX files.  It is part of the LaTeX base.")
               (list "/tex/generic/unicode-data/"
                     "/doc/generic/unicode-data/")
               (base32
-               "1j63kz29arfiydb8r1a53q1r4zyk1yjbcq0w9i93zddczgqzgbfb")
+               "0zy4v9y667cka5fi4dnc6x500907812y7pcaf63s5qxi8l7khxxy")
               #:trivial? #t))
     (home-page "https://www.ctan.org/pkg/unicode-data")
     (synopsis "Unicode data and loaders for TeX")
@@ -499,7 +512,7 @@ out to date by @code{unicode-letters.tex}. ")
                     "/tex/generic/hyphen/hypht1.tex"
                     "/tex/generic/hyphen/zerohyph.tex")
               (base32
-               "002g5zhzbj3ikgg8zidagdp605ac9f4qmfl148mp0mbpz1svk0ni")
+               "0f19nml4hdx9lh7accqdk1b9ismwfm2523l5zsc4kb4arysgcakz")
               #:trivial? #t))
     (home-page "https://tug.org/texlive/")
     (synopsis "Core hyphenation support files")
@@ -628,7 +641,7 @@ build fonts using the Metafont system.")
 
                          "/scripts/texlive/fontinst.sh")
                    (base32
-                    "09drlb0krhnizw92xlm5wxzzpgn3shcxd684xlg0zc5p16l47w6h")
+                    "0lprwib7n2ygfxvrw675vhif7ghyip2x6k70kqs9syp8lqxiizf8")
                    #:trivial? #t)))
     (package
       (inherit template)
@@ -717,7 +730,7 @@ documents.")
                          "/fonts/map/dvips/cm/cmtext-bsr-interpolated.map"
                          "/doc/fonts/cm/")
                    (base32
-                    "1h0q71paqmg1xjg6k35ni2i6m93kmlq9rdwm913xg9n4qngywl18")
+                    "09mvl94qrwlb9b4pkigi151l256v3djhwl4m5lgvk6yhn5y75zrp")
                    #:trivial? #t)))
     (package
       (inherit template)
@@ -822,6 +835,33 @@ originals.")
 (define-public texlive-fonts-cm-super
   (deprecated-package "texlive-fonts-cm-super" texlive-cm-super))
 
+(define-public texlive-courier
+  (package
+    (inherit (simple-texlive-package
+              "texlive-courier"
+              (list "/dvips/courier/"
+                    "/fonts/afm/adobe/courier/"
+                    "/fonts/afm/urw/courier/"
+                    "/fonts/map/dvips/courier/"
+                    "/fonts/tfm/adobe/courier/"
+                    "/fonts/tfm/urw35vf/courier/"
+                    "/fonts/type1/adobe/courier/"
+                    "/fonts/type1/urw/courier/"
+                    "/fonts/vf/adobe/courier/"
+                    "/fonts/vf/urw35vf/courier/"
+                    "/tex/latex/courier/"
+                    "/tex4ht/ht-fonts/alias/adobe/courier/"
+                    "/tex4ht/ht-fonts/unicode/adobe/courier/")
+              (base32
+               "1hfgisdi7mjf5156ax6d6zsbiq42zkmp1x5lg17rgzf61k6d6z1y")
+              #:trivial? #t))
+    (home-page "https://ctan.org/pkg/urw-base35")
+    (synopsis "URW Base 35 font pack for LaTeX")
+    (description "This package provides a drop-in replacements for the Courier
+font from Adobe's basic set.")
+    ;; No license version specified.
+    (license license:gpl3+)))
+
 (define-public texlive-lm
   (package
     (inherit (simple-texlive-package
@@ -1279,7 +1319,7 @@ incorporates the e-TeX extensions.")
               "texlive-tex-plain"
               (list "/tex/plain/")
               (base32
-               "1rrfay4d7lbyj02wlf23mwvbpjd160nwlgryx97hq1vb7dva4swr")
+               "1m4qpaszwfv7j8a85rlwl7rs4iv5nlj67c1vvn6ysly72h9gjydb")
               #:trivial? #t))
     (home-page "https://www.ctan.org/pkg/plain")
     (synopsis "Plain TeX format and supporting files")
@@ -1289,13 +1329,39 @@ described in the TeXbook, together with various supporting files (some also
 discussed in the book).")
     (license license:knuth)))
 
+(define-public texlive-helvetic
+  (package
+    (inherit (simple-texlive-package
+              "texlive-helvetic"
+              (list "/dvips/helvetic/"
+                    "/fonts/afm/adobe/helvetic/"
+                    "/fonts/afm/urw/helvetic/"
+                    "/fonts/map/dvips/helvetic/"
+                    "/fonts/tfm/adobe/helvetic/"
+                    "/fonts/tfm/monotype/helvetic/"
+                    "/fonts/tfm/urw35vf/helvetic/"
+                    "/fonts/type1/urw/helvetic/"
+                    "/fonts/vf/adobe/helvetic/"
+                    "/fonts/vf/monotype/helvetic/"
+                    "/fonts/vf/urw35vf/helvetic/"
+                    "/tex/latex/helvetic/")
+              (base32
+               "0c3f1ly7y6404z0akbfbbfql13sz717v0n0g69qjpr69hi4n0nsl")
+              #:trivial? #t))
+    (home-page "https://ctan.org/pkg/urw-base35")
+    (synopsis "URW Base 35 font pack for LaTeX")
+    (description "This package provides a drop-in replacements for the Helvetica
+font from Adobe's basic set.")
+    ;; No license version specified.
+    (license license:gpl3+)))
+
 (define-public texlive-hyphen-afrikaans
   (package
     (inherit (texlive-hyphen-package
               "texlive-hyphen-afrikaans" "af"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-af.tex")
               (base32
-               "1vb3jccqnn1pm0680yqx52kvz595fmxnwa0cbf8qman6zglsssiw")))
+               "1k9k27a27bbrb0gz36191w32l2v6d3zbdh8zhrp4l3ild2pj3n4l")))
     (synopsis "Hyphenation patterns for Afrikaans")
     (description "The package provides hyphenation patterns for the Afrikaans
 language.")
@@ -1309,7 +1375,7 @@ language.")
                     "/tex/generic/hyphen/grahyph5.tex"
                     "/tex/generic/hyphen/ibyhyph.tex")
               (base32
-               "0kwrqsz7wdr1d9kylzwp60ka3wfbj8iad029k5h6y94nb86mf7zv")))
+               "01326lb6z0s8krcfgs8i1pnjfrm4gr33rc53gy80f63qbv4ssxrw")))
     (synopsis "Hyphenation patterns for ancient Greek")
     (description "The package provides hyphenation patterns for ancient
 Greek.")
@@ -1318,33 +1384,11 @@ Greek.")
 (define-public texlive-hyphen-armenian
   (let ((template (texlive-hyphen-package
                    "texlive-hyphen-armenian" "hy"
-                   (list "/source/generic/hyph-utf8/languages/hy/generate_patterns_hy.rb")
+                   (list "/tex/generic/hyph-utf8/patterns/tex/hyph-hy.tex")
                    (base32
-                    "0z666y580w1kpxssdanz67ykq257lf11a1mnp1jrn08zijvfrw9c"))))
+                    "0hzny0npynsb07syxrpbfa5pkpj8r0j51pj64yxyfl1c0bak1fwp"))))
     (package
       (inherit template)
-      (arguments
-       (substitute-keyword-arguments (package-arguments template)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'build 'build-patterns
-               (lambda _
-                 (let ((target (string-append (getcwd)
-                                              "/tex/generic/hyph-utf8/patterns/tex")))
-                   (mkdir-p target)
-                   (with-directory-excursion "source/generic/hyph-utf8/languages/hy/"
-                     (substitute* "generate_patterns_hy.rb"
-                       (("\\$file = File.new.*")
-                        (string-append "$file = File.new(\"" target
-                                       "/hyph-hy.tex\",\"w\")\n")))
-                     (invoke "ruby" "generate_patterns_hy.rb"))
-                   #t)))
-             (add-after 'install 'install-hyph-hy.tex
-               (lambda* (#:key inputs outputs #:allow-other-keys)
-                 (let* ((out (assoc-ref outputs "out"))
-                        (target (string-append out "/share/texmf-dist/tex")))
-                   (copy-recursively "tex" target)
-                   #t)))))))
       (synopsis "Hyphenation patterns for Armenian")
       (description "The package provides hyphenation patterns for the Armenian
 language.")
@@ -1354,39 +1398,17 @@ language.")
 (define-public texlive-hyphen-basque
   (let ((template (texlive-hyphen-package
                     "texlive-hyphen-basque" "eu"
-                    (list "/source/generic/hyph-utf8/languages/eu/generate_patterns_eu.rb")
+                    (list "/tex/generic/hyph-utf8/patterns/tex/hyph-eu.tex")
                     (base32
-                     "1yhsbzf1g9dm70jfixsz51hsfvn26cwfkfxvhg7xv2piynr4v51l"))))
+                     "15w969g1jqzn68l2b2lzf7iv7g3kil02aba3if6cag3qcnq92ra9"))))
     (package
       (inherit template)
-      (arguments
-       (substitute-keyword-arguments (package-arguments template)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'build 'build-patterns
-               (lambda _
-                 (let ((target (string-append (getcwd)
-                                              "/tex/generic/hyph-utf8/patterns/tex")))
-                   (mkdir-p target)
-                   (with-directory-excursion "source/generic/hyph-utf8/languages/eu/"
-                     (substitute* "generate_patterns_eu.rb"
-                       (("\\$file = File.new.*")
-                        (string-append "$file = File.new(\"" target
-                                       "/hyph-eu.tex\",\"w\")\n")))
-                     (invoke "ruby" "generate_patterns_eu.rb"))
-                   #t)))
-             (add-after 'install 'install-hyph-eu.tex
-               (lambda* (#:key inputs outputs #:allow-other-keys)
-                 (let* ((out (assoc-ref outputs "out"))
-                        (target (string-append out "/share/texmf-dist/tex")))
-                   (copy-recursively "tex" target)
-                   #t)))))))
       (synopsis "Hyphenation patterns for Basque")
       (description "The package provides hyphenation patterns for the Basque
 language.")
-      ;; "Free for any purpose".
+      ;; Similar to Unicode license.
       (license (license:fsf-free
-                "/source/generic/hyph-utf8/languages/eu/generate_patterns_eu.rb")))))
+                "/tex/generic/hyph-utf8/patterns/tex/hyph-eu.tex")))))
 
 (define-public texlive-hyphen-belarusian
   (package
@@ -1394,7 +1416,7 @@ language.")
               "texlive-hyphen-belarusian" "be"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-be.tex")
               (base32
-               "1xvffph824rg43gi2xs3ny9gzlp708fyxj9zfhckmg8pzh9vv3n6")))
+               "0ppm12wndaxv9da62dwkbnk7w9nijikn6jkc97m76xis338g2h02")))
     (synopsis "Hyphenation patterns for Belarusian")
     (description "The package provides hyphenation patterns for the Belarusian
 language.")
@@ -1408,7 +1430,7 @@ language.")
                     "/doc/generic/hyph-utf8/bg/azbukaExtended.tex"
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-bg.tex")
               (base32
-               "06dxkk9azsggbri04i6g62lswygzadsx3rpqvbyzvbxc5wxz1dj1")))
+               "0ngrgw2rmipxss76rgfk62x9nnsgwmaxxna2jqxxhybai3q39mx5")))
     (synopsis "Hyphenation patterns for Bulgarian")
     (description "The package provides hyphenation patterns for the Bulgarian
 language in T2A and UTF-8 encodings.")
@@ -1422,7 +1444,7 @@ language in T2A and UTF-8 encodings.")
               "texlive-hyphen-catalan" "ca"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ca.tex")
               (base32
-               "0cisx76jpw8kpd3an37m9h8ppiysnizgfzl48y9d9n3fvx8jyykb")))
+               "10zzlfz5v8d9csg85ibpp2vfvmpqa56vbl85qy5gws099vygpayg")))
     (synopsis "Hyphenation patterns for Catalan")
     (description "The package provides hyphenation patterns for Catalan in
 T1/EC and UTF-8 encodings.")
@@ -1434,7 +1456,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-chinese" "zh-latn-pinyin"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-zh-latn-pinyin.tex")
               (base32
-               "07gbrn5fcl5d3hyg1zpai3zp1ggl73cmvpalwvh7ah313f57gjkk")))
+               "1j68mry2zy91m1kbzwhin5q2jajf6xh48npdds8wvp1sqmzih2a3")))
     (synopsis "Hyphenation patterns for unaccented Chinese pinyin")
     (description "The package provides hyphenation patterns for unaccented
 Chinese pinyin T1/EC and UTF-8 encodings.")
@@ -1446,7 +1468,7 @@ Chinese pinyin T1/EC and UTF-8 encodings.")
               "texlive-hyphen-churchslavonic" "cu"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-cu.tex")
               (base32
-               "0xkqlz3ixyl4fxsnzrbxqrb82p0n67rhgpddbiyv3qwfnbr2b5a4")))
+               "0fhbwaapq2213msbhgr0d1lw06ihmrqirxj092mn73d8ynl13qlh")))
     (synopsis "Hyphenation patterns for Church Slavonic")
     (description "The package provides hyphenation patterns for Church
 Slavonic in UTF-8 encoding.")
@@ -1459,7 +1481,7 @@ Slavonic in UTF-8 encoding.")
               (list "/tex/generic/hyph-utf8/patterns/tex-8bit/copthyph.tex"
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-cop.tex")
               (base32
-               "07i03jpdfy4ip7zbg4gnk4hk8zwj8rlni9dgrb1p8mfw2w19d80c")))
+               "1jlxxvyfa2aljizaa3qlcxyhqsrb4dawv3q3fbyp2lxz6ag9fy6m")))
     (synopsis "Hyphenation patterns for Coptic")
     (description "The package provides hyphenation patterns for Coptic in
 UTF-8 encoding as well as in ASCII-based encoding for 8-bit engines.")
@@ -1472,7 +1494,7 @@ UTF-8 encoding as well as in ASCII-based encoding for 8-bit engines.")
               "texlive-hyphen-croatian" "hr"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-hr.tex")
               (base32
-               "129nz2nqilyq2477n2clx20xfbxh1qxm69zg4n2f6c4d4a8711nc")))
+               "12n9r2winai15jc622sqdwclgcs1s68r6vcf7ic8vvq0x9qhwc5v")))
     (synopsis "Hyphenation patterns for Croatian")
     (description "The package provides hyphenation patterns for Croatian in
 T1/EC and UTF-8 encodings.")
@@ -1484,7 +1506,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-czech" "cs"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-cs.tex")
               (base32
-               "1k5516gbfp1d5p97j247byag9sdgds5zwc11bwxfk58i6zq1v0m6")))
+               "1q37s6p8yfyi3rp1azbz421lg4lr4aiki8m631i4x9rmps89m8iq")))
     (synopsis "Hyphenation patterns for Czech")
     (description "The package provides hyphenation patterns for Czech in T1/EC
 and UTF-8 encodings.")
@@ -1496,7 +1518,7 @@ and UTF-8 encodings.")
               "texlive-hyphen-danish" "da"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-da.tex")
               (base32
-               "0zxzs1b1723mav76i0wiyq4w82x8715cykvwa2bc60ldc2amv0vs")))
+               "1vj8nip64rzcrcg3skm4vqad1ggqwgan74znrdns610wjcm1z9qd")))
     (synopsis "Hyphenation patterns for Danish")
     (description "The package provides hyphenation patterns for Danish in
 T1/EC and UTF-8 encodings.")
@@ -1509,7 +1531,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-dutch" "nl"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-nl.tex")
               (base32
-               "0cq46cmgjc4y2x0xs9b0a5zca3jmszv4rkzmrhgjb5z2nm3xkrpi")))
+               "1bg9g790ksq5cn8qihai6pacmkp9vpf35h4771z361nvwa40l8yk")))
     (synopsis "Hyphenation patterns for Dutch")
     (description "The package provides hyphenation patterns for Dutch in T1/EC
 and UTF-8 encodings.")
@@ -1522,7 +1544,7 @@ and UTF-8 encodings.")
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-en-gb.tex"
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-en-us.tex")
               (base32
-               "08hyih8hn2w2q12gc4zygz0ckbz00mkzzn9898z2bicky02zg3kc")))
+               "08b3jihjaamcl1pvffi0s47nwavkm66l9mrrmby3l32dfpkprrc5")))
     (synopsis "Hyphenation patterns for American and British English")
     (description "The package provides additional hyphenation patterns for
 American and British English in ASCII encoding.")
@@ -1536,7 +1558,7 @@ American and British English in ASCII encoding.")
               "texlive-hyphen-esperanto" "eo"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-eo.tex")
               (base32
-               "03xbjbzasznsyf4wd45bya6f4snfmzpdzg5zpvqj5q6gjykdg54k")))
+               "1503kzn9bk4mm4ba35cka2hm8rz0v3j5l30v5rrsd4rqgpibcgic")))
     (synopsis "Hyphenation patterns for Esperanto")
     (description "The package provides hyphenation patterns for Esperanto ISO
 Latin 3 and UTF-8 encodings.")
@@ -1548,7 +1570,7 @@ Latin 3 and UTF-8 encodings.")
               "texlive-hyphen-estonian" "et"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-et.tex")
               (base32
-               "0idl6xajkkgxqngjn19jcfd29is5rhfn59v0z8h4sv8yjv6k934m")))
+               "1rdas2450ib02rwy65i69l86nyc9h15bl07xbbwhmhxfnj8zj4v8")))
     (synopsis "Hyphenation patterns for Estonian")
     (description "The package provides hyphenation patterns for Estonian in
 T1/EC and UTF-8 encodings.")
@@ -1558,53 +1580,17 @@ T1/EC and UTF-8 encodings.")
 (define-public texlive-hyphen-ethiopic
   (let ((template (texlive-hyphen-package
                    "texlive-hyphen-ethiopic" "mul-ethi"
-                   (list "/source/generic/hyph-utf8/languages/mul-ethi/generate_patterns_mul-ethi.lua")
+                   (list "/tex/generic/hyph-utf8/patterns/tex/hyph-mul-ethi.tex")
                    (base32
-                    "1dp5qn1mhv62kj27lqc7s0ca65z9bziyavkvif9ds5ivk7aq9drw"))))
+                    "1b93fc6j4aybh0pgq23hsn1njm6asf7sfz803fbj3ai0whsxd10l"))))
     (package
       (inherit template)
-      (arguments
-       (substitute-keyword-arguments (package-arguments template)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'build 'build-patterns
-               (lambda* (#:key inputs #:allow-other-keys)
-                 (let ((tex (string-append (getcwd)
-                                           "/tex/generic/hyph-utf8/patterns/tex/")))
-                   (mkdir-p tex)
-                   (with-directory-excursion "source/generic/hyph-utf8/languages/mul-ethi/"
-                     (substitute* "generate_patterns_mul-ethi.lua"
-                       (("\"UnicodeData.txt\"")
-                        (string-append "\""
-                                       (assoc-ref inputs "UnicodeData.txt")
-                                       "\"")))
-                     (invoke "texlua" "generate_patterns_mul-ethi.lua")
-                     (rename-file "hyph-mul-ethi.tex"
-                                  (string-append tex "/hyph-mul-ethi.tex"))
-                     #t))))
-             (add-after 'install 'install-hyph-mul-ethi.tex
-               (lambda* (#:key inputs outputs #:allow-other-keys)
-                 (let* ((out (assoc-ref outputs "out"))
-                        (target (string-append out "/share/texmf-dist/tex")))
-                   (copy-recursively "tex" target)
-                   #t)))))))
-      (native-inputs
-       `(,@(package-native-inputs template)
-         ("texlive-bin" ,texlive-bin)
-         ("UnicodeData.txt"
-          ,(origin
-             (method url-fetch)
-             (uri (string-append "http://www.unicode.org/Public/10.0.0/ucd/"
-                                 "UnicodeData.txt"))
-             (sha256
-              (base32
-               "1cfak1j753zcrbgixwgppyxhm4w8vda8vxhqymi7n5ljfi6kwhjj"))))))
       (synopsis "Hyphenation patterns for Ethiopic scripts")
       (description "The package provides hyphenation patterns for languages
 written using the Ethiopic script for Unicode engines.  They are not supposed
 to be linguistically relevant in all cases and should, for proper typography,
 be replaced by files tailored to individual languages.")
-      (license license:lppl))))
+      (license license:expat))))
 
 (define-public texlive-hyphen-finnish
   (package
@@ -1612,7 +1598,7 @@ be replaced by files tailored to individual languages.")
               "texlive-hyphen-finnish" "fi"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-fi.tex")
               (base32
-               "03n6s8dwwa5vfk9bbyhcdf7p0bc0d1rrr312hpgbz8jfc9fbgd7n")))
+               "1f72b4ydb4zddvw2i004948khmwzigxkdkwfym5v1kkq0183sfpj")))
     (synopsis "Hyphenation patterns for Finnish")
     (description "The package provides hyphenation patterns for Finnish in
 T1/EC and UTF-8 encodings.")
@@ -1624,7 +1610,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-french" "fr"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-fr.tex")
               (base32
-               "1q82mmwvy7fdkm42958ajb53w89qkcdwybswxlwcvqngvhpy3zf0")))
+               "0jc3kqys6cxjw8x8pzjln7z78l8s7f5rlyrkv7dzr1kiwnwilk9d")))
     (synopsis "Hyphenation patterns for French")
     (description "The package provides hyphenation patterns for French in
 T1/EC and UTF-8 encodings.")
@@ -1636,7 +1622,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-friulan" "fur"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-fur.tex")
               (base32
-               "07m975p0ghzs9sjqqgxy7qdkqmgvg4rx4xp08zwm1parqsdlwd5d")))
+               "1dlnh8slpf50mryxv7zzbx08xp54zkdfs1j7y37ipwbrajvd740f")))
     (synopsis "Hyphenation patterns for Friulan")
     (description "The package provides hyphenation patterns for Friulan in
 ASCII encodings.")
@@ -1645,50 +1631,15 @@ ASCII encodings.")
 (define-public texlive-hyphen-galician
   (let ((template (texlive-hyphen-package
                    "texlive-hyphen-galician" "gl"
-                   (list "/source/generic/hyph-utf8/languages/gl/README"
-                         "/source/generic/hyph-utf8/languages/gl/glhybiox.tex"
-                         "/source/generic/hyph-utf8/languages/gl/glhyextr.tex"
-                         "/source/generic/hyph-utf8/languages/gl/glhymed.tex"
-                         "/source/generic/hyph-utf8/languages/gl/glhyquim.tex"
-                         "/source/generic/hyph-utf8/languages/gl/glhytec.tex"
-                         "/source/generic/hyph-utf8/languages/gl/glhyxeog.tex"
-                         "/source/generic/hyph-utf8/languages/gl/glpatter-utf8.tex")
+                   (list "/tex/generic/hyph-utf8/patterns/tex/hyph-gl.tex")
                    (base32
-                    "1yj1gxhkqqlyaand5gd6ij6xwffskryzlbcigdam3871a9p8x18w"))))
+                    "13zx2r3nrxdr025g2lxrph0ga6wf7cs8dxixn4fhbl6xr1cx028g"))))
     (package
       (inherit template)
-      (arguments
-       (substitute-keyword-arguments (package-arguments template)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'build 'build-patterns
-               (lambda* (#:key inputs #:allow-other-keys)
-                 (let ((tex (string-append (getcwd)
-                                           "/tex/generic/hyph-utf8/patterns/tex/")))
-                   (mkdir-p tex)
-                   (with-directory-excursion "source/generic/hyph-utf8/languages/gl/"
-                     (setenv "TEXINPUTS"
-                             (string-append (getcwd) "//:"
-                                            (assoc-ref inputs "texlive-mkpattern") "//"))
-                     (invoke "tex" "-ini" "-8bit" "glpatter-utf8.tex")
-                     (rename-file "hyph-gl.tex"
-                                  (string-append tex "/hyph-gl.tex"))
-                     #t))))
-             (add-after 'install 'install-hyph-gl.tex
-               (lambda* (#:key inputs outputs #:allow-other-keys)
-                 (let* ((out (assoc-ref outputs "out"))
-                        (target (string-append out "/share/texmf-dist/tex")))
-                   (copy-recursively "tex" target)
-                   #t)))))))
-      (native-inputs
-       `(,@(package-native-inputs template)
-         ("texlive-bin" ,texlive-bin)
-         ("texlive-mkpattern" ,texlive-mkpattern)))
       (synopsis "Hyphenation patterns for Galician")
       (description "The package provides hyphenation patterns for Galician in
 T1/EC and UTF-8 encodings.")
-      ;; glhyextr.tex is the only file in the public domain.
-      (license (list license:lppl1.3 license:public-domain)))))
+      (license license:lppl1.3))))
 
 (define-public texlive-hyphen-georgian
   (package
@@ -1696,7 +1647,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-georgian" "ka"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ka.tex")
               (base32
-               "01zhn6mflpiqw4lyi8dx8syiz5mky9jrxm87cgw31hanis5cml4l")))
+               "0l0hk7ka04fr8x11nnw95x151cxyycy0fph772m3a3p8qk4x9wp7")))
     (synopsis "Hyphenation patterns for Georgian")
     (description "The package provides hyphenation patterns for Georgian in
 T8M, T8K, and UTF-8 encodings.")
@@ -1709,12 +1660,12 @@ T8M, T8K, and UTF-8 encodings.")
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-de-1901.tex"
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-de-1996.tex"
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-de-ch-1901.tex"
-                    "/tex/generic/hyphen/dehyphn.tex"
-                    "/tex/generic/hyphen/dehypht.tex"
-                    "/tex/generic/hyphen/dehyphtex.tex"
-                    "/tex/generic/hyphen/ghyphen.README")
+                    "/tex/generic/dehyph/dehyphn.tex"
+                    "/tex/generic/dehyph/dehypht.tex"
+                    "/tex/generic/dehyph/dehyphtex.tex"
+                    "/tex/generic/dehyph/README")
               (base32
-               "1g0vhpvl2l69rn2lx7lkw0inrjbcxkj2sjgwd2fq7hdi4yb2ms76")))
+               "0wp5by5kkf4ac6li5mbppqzw11500wa7f22p5vpz3m1kwd15zavw")))
     (synopsis "Hyphenation patterns for German")
     (description "This package provides hyphenation patterns for German in
 T1/EC and UTF-8 encodings, for traditional and reformed spelling, including
@@ -1733,7 +1684,7 @@ Swiss German.")
                     "/tex/generic/hyphen/grmhyph5.tex"
                     "/tex/generic/hyphen/grphyph5.tex")
               (base32
-               "04626jhlrv2flgdygm7sfv6xpqhfwiavi16gy2ac04iliyk4rypg")))
+               "1qyr6m1nh6d4wj68616cfxv4wjpiy1w2rlldxlx2ajzba381w3hf")))
     (synopsis "Hyphenation patterns for Greek")
     (description "This package provides hyphenation patterns for Modern Greek
 in monotonic and polytonic spelling in LGR and UTF-8 encodings.")
@@ -1747,7 +1698,7 @@ in monotonic and polytonic spelling in LGR and UTF-8 encodings.")
                     "/doc/generic/hyph-utf8/hu/"
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-hu.tex")
               (base32
-               "0c81w2569cqsi4j56azwz0lfx16541zhiqgmn3m4iwh7mpx3rji8")))
+               "1j1b8kksg9r8nmjyjvvz8fr3hgcrjj6jlybf9p06nwrrwm2r8j8f")))
     (synopsis "Hyphenation patterns for Hungarian")
     (description "This package provides hyphenation patterns for Hungarian in
 T1/EC and UTF-8 encodings.")
@@ -1760,7 +1711,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-icelandic" "is"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-is.tex")
               (base32
-               "1ah1f82lgfhqgid4ngsfiypybx10v8gwxnb12396vfsj3bq6j0ba")))
+               "1m9xj41csj3ldym09d82zjbd3345sg2z10d8pxpvhgibf97mb66h")))
     (synopsis "Hyphenation patterns for Icelandic")
     (description "This package provides hyphenation patterns for Icelandic in
 T1/EC and UTF-8 encodings.")
@@ -1783,7 +1734,7 @@ T1/EC and UTF-8 encodings.")
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-ta.tex"
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-te.tex")
               (base32
-               "1v8zc3wdbkhzjrflndmz4gdj11syz8vrcg0vwvm5bwhkx23g91lv")))
+               "02d2kcd3lpk95fykjwhzw9s2a1s2w1skz8h2mmszrz979d1xzhpm")))
     (synopsis "Indic hyphenation patterns")
     (description "This package provides hyphenation patterns for Assamese,
 Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Oriya, Panjabi, Tamil
@@ -1796,7 +1747,7 @@ and Telugu for Unicode engines.")
               "texlive-hyphen-indonesian" "id"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-id.tex")
               (base32
-               "0mf0hr9c952kb2hmzid7fqg5whshwpribbyndb3ba092wh02abh5")))
+               "1r62w02rf0i4z0jgij54d16qjbj0zyfwm9dwdkqka76jrivij83q")))
     (synopsis "Indonesian hyphenation patterns")
     (description "This package provides hyphenation patterns for
 Indonesian (Bahasa Indonesia) in ASCII encoding.  They are probably also
@@ -1809,7 +1760,7 @@ usable for Malay (Bahasa Melayu).")
               "texlive-hyphen-interlingua" "ia"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ia.tex")
               (base32
-               "1aihgma3rix4jkc1z5k1lh6hlfrncn66yj0givd3j6xjqflafr2g")))
+               "0a9na20vjnzhgjbicaxay0jk4rm5zg1rjyiswr377mjhd9mx5cg3")))
     (synopsis "Interlingua hyphenation patterns")
     (description "This package provides hyphenation patterns for Interlingua
 in ASCII encoding.")
@@ -1821,7 +1772,7 @@ in ASCII encoding.")
               "texlive-hyphen-irish" "ga"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ga.tex")
               (base32
-               "02k1fykgj3xamczjq16i9fsjjsh78pp5ypmh93p64izk2vymfwk0")))
+               "1h1l9jzkpsb91nyhz6s6c9jfrbz8jx5ip8vyq3dkz0rl6g960i6b")))
     (synopsis "Irish hyphenation patterns")
     (description "This package provides hyphenation patterns for
 Irish (Gaeilge) in T1/EC and UTF-8 encodings.")
@@ -1834,7 +1785,7 @@ Irish (Gaeilge) in T1/EC and UTF-8 encodings.")
               "texlive-hyphen-italian" "it"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-it.tex")
               (base32
-               "1a65q3hjn2p212cgv6p7wa0wcn34qnxcz2pl3v3ip0xmb16qqsk5")))
+               "03c7jiqslfxvl3gbdx79hggbvrfi2l4z2bnwxc0na8f8lkp1m787")))
     (synopsis "Italian hyphenation patterns")
     (description "This package provides hyphenation patterns for Italian in
 ASCII encoding.  Compliant with the Recommendation UNI 6461 on hyphenation
@@ -1848,7 +1799,7 @@ UNI).")
               "texlive-hyphen-kurmanji" "kmr"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-kmr.tex")
               (base32
-               "1145ykfd0b0hgklindlxdgkqmsnj3cai3cwgllz411yqmrhjc6y9")))
+               "01ylbsi5wymrdrxr9b28nmjmcj72mdhqr657lwsb6m9aj33c9ql6")))
     (synopsis "Kurmanji hyphenation patterns")
     (description "This package provides hyphenation patterns for
 Kurmanji (Northern Kurdish) as spoken in Turkey and by the Kurdish diaspora in
@@ -1863,7 +1814,7 @@ Europe, in T1/EC and UTF-8 encodings.")
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-la-x-liturgic.tex"
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-la.tex")
               (base32
-               "1d8d6b47r4r000gqgzyl0sy9is0y0dg41jp8fw4gqq8qmcgdxgsg")))
+               "0rxg8a4s5cpj8vlkz5a74a036axda5jqgvr3f9aj2cc2x9f2f3w9")))
     (synopsis "Liturgical Latin hyphenation patterns")
     (description "This package provides hyphenation patterns for Latin in
 T1/EC and UTF-8 encodings, mainly in modern spelling (u when u is needed and v
@@ -1884,7 +1835,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-latvian" "lv"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-lv.tex")
               (base32
-               "1xbh5s6nwfjbv7g4kmcpjkm02a6s767p7jn9qjcnz5ip0ndl5g66")))
+               "00jf8xma4ldz0zpqwma97k9q3j0mqx7qdj6b7baph3n5xgc24aaw")))
     (synopsis "Latvian hyphenation patterns")
     (description "This package provides hyphenation patterns for Latvian in
 L7X and UTF-8 encodings.")
@@ -1897,7 +1848,7 @@ L7X and UTF-8 encodings.")
               "texlive-hyphen-lithuanian" "lt"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-lt.tex")
               (base32
-               "0v9spw0qkygkihj5app2immzqqr98w81pz460bcgvj1ah35jdfsl")))
+               "1kfq7j2ajg6nj952s1ygd520sj9z9kl0bqvd291a36ni2b1frzgd")))
     (synopsis "Lithuanian hyphenation patterns")
     (description "This package provides hyphenation patterns for Lithuanian in
 L7X and UTF-8 encodings.")
@@ -1912,7 +1863,7 @@ L7X and UTF-8 encodings.")
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-mn-cyrl-x-lmc.tex"
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-mn-cyrl.tex")
               (base32
-               "0lqq3jgwgnclb1cn3x99xmk90xra9q51b00ypwy5crssmy023hqc")))
+               "1y1b91ihrdl9bad3rxlsfjpd9wmyd5zzgci3qv9w8qqk33jxhwya")))
     (synopsis "Mongolian hyphenation patterns in Cyrillic script")
     (description "This package provides hyphenation patterns for Mongolian in
 T2A, LMC and UTF-8 encodings.")
@@ -1927,7 +1878,7 @@ T2A, LMC and UTF-8 encodings.")
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-nn.tex"
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-no.tex")
               (base32
-               "1fxnf671yz0p3lmdkspna7fjh96br1jy6yf7v17yh4fxwry3s4yz")))
+               "08gbwj64p4fckm199k52yp5lx65h9f4wwdkvl4pv4aa7k370jq9y")))
     (synopsis "Norwegian Bokmal and Nynorsk hyphenation patterns")
     (description "This package provides hyphenation patterns for Norwegian
 Bokmal and Nynorsk in T1/EC and UTF-8 encodings.")
@@ -1941,7 +1892,7 @@ Bokmal and Nynorsk in T1/EC and UTF-8 encodings.")
               "texlive-hyphen-occitan" "oc"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-oc.tex")
               (base32
-               "1y6j6ac9ncn79p7hnp6mdwdsw9ij14zyjby5iwdhpvzzn7yyc7p8")))
+               "0vhjbq2nr58vhqwwky3cwx4dqiwjmmfwp81rb65mfpf0m8yypdfg")))
     (synopsis "Occitan hyphenation patterns")
     (description "This package provides hyphenation patterns for Occitan in
 T1/EC and UTF-8 encodings.  They are supposed to be valid for all the Occitan
@@ -1950,13 +1901,26 @@ It ranges from the Val d'Aran within Catalunya, to the South Western Italian
 Alps encompassing the southern half of the French pentagon.")
     (license license:lppl1.0+)))
 
+(define-public texlive-hyphen-pali
+  (package
+    (inherit (texlive-hyphen-package
+              "texlive-hyphen-pali" "pi"
+              (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pi.tex")
+              (base32
+               "1fak853s4ijdqgrnhwymaq1lh8jab3qfyxapdmf6qpg6bqd20kxq")))
+    (synopsis "Panjabi hyphenation patterns")
+    (description "This package provides hyphenation patterns for Panjabi in
+T1/EC encoding.")
+    ;; Can be used with either license.
+    (license (list license:expat license:lgpl3+ license:gpl3+))))
+
 (define-public texlive-hyphen-piedmontese
   (package
     (inherit (texlive-hyphen-package
               "texlive-hyphen-piedmontese" "pms"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pms.tex")
               (base32
-               "00fqzymkg374r3dzf1y82k6b18bqrf688vnjv0vkvw5a45srlb5r")))
+               "0xva3l2gwzkqw1sz64k5g5iprhdyr27w1mv8rxp8x62i5y3aqr1k")))
     (synopsis "Piedmontese hyphenation patterns")
     (description "This package provides hyphenation patterns for Piedmontese
 in ASCII encoding.  Compliant with 'Gramatica dla lengua piemonteisa' by
@@ -1969,7 +1933,7 @@ Camillo Brero.")
               "texlive-hyphen-polish" "pl"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pl.tex")
               (base32
-               "0dzq8ca96q7m5bslh51x8d30pdb86glh2gn3mmvq5ip813ckwh3s")))
+               "1c22g99isxapv4xjrmsw24hhp1xb83wbgcxyd8j24mxdnizywxzm")))
     (synopsis "Polish hyphenation patterns")
     (description "This package provides hyphenation patterns for Polish in QX
 and UTF-8 encodings.")
@@ -1982,7 +1946,7 @@ and UTF-8 encodings.")
               "texlive-hyphen-portuguese" "pt"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pt.tex")
               (base32
-               "1waxrmm33fd2qfc4kiaiblg8kwzasrvgq4j3l14z733d0hlg4rfz")))
+               "00rkjy4p7893zs940bq3s4hp7al0skgxqggj5qfax0bx8karf30b")))
     (synopsis "Portuguese hyphenation patterns")
     (description "This package provides hyphenation patterns for Portuguese in
 T1/EC and UTF-8 encodings.")
@@ -1994,7 +1958,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-romanian" "ro"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ro.tex")
               (base32
-               "12i1vryl51yhdpj163ahfyiy21rjmf4gkqgslpriirdjmyrwrs65")))
+               "1ykb5v7ip6p3n34wq8qypfyrap4gg946by5rsl6ab0k5gv6ypsbf")))
     (synopsis "Romanian hyphenation patterns")
     (description "This package provides hyphenation patterns for Romanian in
 T1/EC and UTF-8 encodings.")
@@ -2007,7 +1971,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-romansh" "rm"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-rm.tex")
               (base32
-               "06wan8i4appc1zfvc0q4cgnfv1nj0qgk02w3sg56zc11hf8sywl9")))
+               "0a1q9p6sp5n6a9w6xhwk03vmkrrmnh2md7g1k4qhnf0dc4h7dy9r")))
     (synopsis "Romansh hyphenation patterns")
     (description "This package provides hyphenation patterns for Romansh in
 ASCII encodings.  They are supposed to comply with the rules indicated by the
@@ -2020,7 +1984,7 @@ Lia Rumantscha (Romansh language society).")
               "texlive-hyphen-russian" "ru"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ru.tex")
               (base32
-               "09s4vq23x4vff08ykmf08dvcdradjzzwvyys8p2wk6jxaqp980s3")))
+               "00sy7qh5f8ryxw36fwbyd1yi2hxhv7hmk99yp7dwh73n4mxv6lpl")))
     (synopsis "Russian hyphenation patterns")
     (description "This package provides hyphenation patterns for Russian in
 T2A and UTF-8 encodings.")
@@ -2033,7 +1997,7 @@ T2A and UTF-8 encodings.")
               (list "/doc/generic/hyph-utf8/sa/hyphenmin.txt"
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-sa.tex")
               (base32
-               "0grnn09l4i5yridx10yhm6dg9sbhgc2pmsp1p6hrcy7lzkqwdvs3")))
+               "0gi2qk0wf388h9n25gzhv0cdz67ph83wal8h3iz2sqnpdjsw8kpc")))
     (synopsis "Sanskrit hyphenation patterns")
     (description "This package provides hyphenation patterns for Sanskrit and
 Prakrit in longdesc transliteration, and in Devanagari, Bengali, Kannada,
@@ -2050,7 +2014,7 @@ Malayalam longdesc and Telugu scripts for Unicode engines.")
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-sh-latn.tex"
                     "/tex/generic/hyph-utf8/patterns/tex/hyph-sr-cyrl.tex")
               (base32
-               "0fhdfydyaspb8dwirlf24vn7y9dzwmhsld0mmw0fz1lmcfaj252n")))
+               "0pwc9z0m5y6acq1vqm0da9akg156jbhxzvsfp2f8bsz5b99y5z45")))
     (synopsis "Serbian hyphenation patterns")
     (description "This package provides hyphenation patterns for Serbian in
 T1/EC, T2A and UTF-8 encodings.")
@@ -2063,7 +2027,7 @@ T1/EC, T2A and UTF-8 encodings.")
               "texlive-hyphen-slovak" "sk"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sk.tex")
               (base32
-               "1cgw6fmyci3za3vsa49b6m74wqv582w0rpca7s9xva3hqm1m5qdg")))
+               "0ppp53bbclp5c8wvx748krvrp5y5053khgkjnnv966a90fvp3vgd")))
     (synopsis "Slovak hyphenation patterns")
     (description "This package provides hyphenation patterns for Slovak in
 T1/EC and UTF-8 encodings.")
@@ -2075,7 +2039,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-slovenian" "sl"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sl.tex")
               (base32
-               "1ixf2pxir9xf1gggq9k28xxglsq9bwqlghd9cl4amk5vrn5bjbds")))
+               "02n8l9yf4hqyhbpsc1n6b2mggy09z6lq4dcb8ndiwawb6h0mp7s4")))
     (synopsis "Slovenian hyphenation patterns")
     (description "This package provides hyphenation patterns for Slovenian in
 T1/EC and UTF-8 encodings.")
@@ -2091,7 +2055,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-spanish" "es"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-es.tex")
               (base32
-               "0jgs0zzyk2wwrjbx2hqdh5qggrnik9xmsxygbfhlb7gdrcrs0mbj")))
+               "1h3yg9vcq0lf7hxv0ahkqmyg269dxjs8m2mz8sgz5l1fxmvahvaj")))
     (synopsis "Hyphenation patterns for Spanish")
     (description "The package provides hyphenation patterns for Spanish in
 T1/EC and UTF-8 encodings.")
@@ -2103,7 +2067,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-swedish" "sv"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sv.tex")
               (base32
-               "12sf9f43zwyzb4cn57yry8r4zmwdc7cfdljn3qwxwrny4m3sw4w8")))
+               "1n7incy7n24pix1q2i8c3h7i78zpql5ayhskavlmy6mhd7ayncaw")))
     (synopsis "Swedish hyphenation patterns")
     (description "This package provides hyphenation patterns for Swedish in
 T1/EC and UTF-8 encodings.")
@@ -2115,7 +2079,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-thai" "th"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-th.tex")
               (base32
-               "15k1n4xdw8zzd5nrh76s53z4j95gxa4i2h1av5gx5vrjgblzzl97")))
+               "00gxcs4jfqifd5cnrjipn77m73fmpw2qms4lp216jj3kz4a7h9kf")))
     (synopsis "Thai hyphenation patterns")
     (description "This package provides hyphenation patterns for Thai in LTH
 and UTF-8 encodings.")
@@ -2124,33 +2088,11 @@ and UTF-8 encodings.")
 (define-public texlive-hyphen-turkish
   (let ((template (texlive-hyphen-package
                    "texlive-hyphen-turkish" "tr"
-                   (list "/source/generic/hyph-utf8/languages/tr/generate_patterns_tr.rb")
+                   (list "/tex/generic/hyph-utf8/patterns/tex/hyph-tr.tex")
                    (base32
-                    "0rvlhs2z2sn312lqsf44bzknid5dry7d2sl2q1whfvr0y4qj1g8f"))))
+                    "04sihjgpm31i5bi67rrfp15w3imn7hxwwk70v0vhx053ghxy72vh"))))
     (package
       (inherit template)
-      (arguments
-       (substitute-keyword-arguments (package-arguments template)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'build 'build-patterns
-               (lambda _
-                 (let ((target (string-append (getcwd)
-                                              "/tex/generic/hyph-utf8/patterns/tex")))
-                   (mkdir-p target)
-                   (with-directory-excursion "source/generic/hyph-utf8/languages/tr/"
-                     (substitute* "generate_patterns_tr.rb"
-                       (("\\$file = File.new.*")
-                        (string-append "$file = File.new(\"" target
-                                       "/hyph-tr.tex\",\"w\")\n")))
-                     (invoke "ruby" "generate_patterns_tr.rb"))
-                   #t)))
-             (add-after 'install 'install-hyph-tr.tex
-               (lambda* (#:key inputs outputs #:allow-other-keys)
-                 (let* ((out (assoc-ref outputs "out"))
-                        (target (string-append out "/share/texmf-dist/tex")))
-                   (copy-recursively "tex" target)
-                   #t)))))))
       (synopsis "Hyphenation patterns for Turkish")
       (description "The package provides hyphenation patterns for Turkish in
 T1/EC and UTF-8 encodings.  The patterns for Turkish were first produced for
@@ -2163,37 +2105,15 @@ compatibility with 8-bit engines.")
 (define-public texlive-hyphen-turkmen
   (let ((template (texlive-hyphen-package
                    "texlive-hyphen-turkmen" "tk"
-                   (list "/source/generic/hyph-utf8/languages/tk/generate_patterns_tk.rb")
+                   (list "/tex/generic/hyph-utf8/patterns/tex/hyph-tk.tex")
                    (base32
-                    "1wlqx8wb0wsqhdv823brc3i8w1vf4m4bkb2vg917j5dq8p8p71aw"))))
+                    "0g5ip2lw9g47s61mv3cypswc6qm7zy9c4iqq4h19ysvds81adzkr"))))
     (package
       (inherit template)
-      (arguments
-       (substitute-keyword-arguments (package-arguments template)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'build 'build-patterns
-               (lambda _
-                 (let ((target (string-append (getcwd)
-                                              "/tex/generic/hyph-utf8/patterns/tex")))
-                   (mkdir-p target)
-                   (with-directory-excursion "source/generic/hyph-utf8/languages/tk/"
-                     (substitute* "generate_patterns_tk.rb"
-                       (("\\$file = File.new.*")
-                        (string-append "$file = File.new(\"" target
-                                       "/hyph-tr.tex\",\"w\")\n")))
-                     (invoke "ruby" "generate_patterns_tk.rb"))
-                   #t)))
-             (add-after 'install 'install-hyph-tk.tex
-               (lambda* (#:key inputs outputs #:allow-other-keys)
-                 (let* ((out (assoc-ref outputs "out"))
-                        (target (string-append out "/share/texmf-dist/tex")))
-                   (copy-recursively "tex" target)
-                   #t)))))))
       (synopsis "Hyphenation patterns for Turkmen")
       (description "The package provides hyphenation patterns for Turkmen in
 T1/EC and UTF-8 encodings.")
-      (license license:public-domain))))
+      (license license:expat))))
 
 (define-public texlive-hyphen-ukrainian
   (package
@@ -2201,7 +2121,7 @@ T1/EC and UTF-8 encodings.")
               "texlive-hyphen-ukrainian" "uk"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-uk.tex")
               (base32
-               "17z0gmw5svsf5zlhjkckwk4y21g7prfwj473jlqnwcsr8a941gsf")))
+               "0fbfhx1fmbshxr4ihsjaqgx251h69h7i288p8gh3w6ysgxr53p60")))
     (synopsis "Ukrainian hyphenation patterns")
     (description "This package provides hyphenation patterns for Ukrainian in
 T2A and UTF-8 encodings.")
@@ -2214,7 +2134,7 @@ T2A and UTF-8 encodings.")
               "texlive-hyphen-uppersorbian" "hsb"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-hsb.tex")
               (base32
-               "1q42s32cfbynlnzn9hpcldi77fszi5xkn1c85l8xqjmfydqbqdyi")))
+               "0x0051wph3sqmzzw6prvjy6bp7gn02rbmys1bmbc210jk3pkylfj")))
     (synopsis "Upper Sorbian hyphenation patterns")
     (description "This package provides hyphenation patterns for Upper Sorbian
 in T1/EC and UTF-8 encodings.")
@@ -2226,7 +2146,7 @@ in T1/EC and UTF-8 encodings.")
               "texlive-hyphen-welsh" "cy"
               (list "/tex/generic/hyph-utf8/patterns/tex/hyph-cy.tex")
               (base32
-               "0h8yjj5zdg0hvpb2vx9gi376536nl59hp8w286z1a13diaayg1m2")))
+               "1bpxp3jiifdw7waw2idz5j9xgi3526nkxm8mbmsspr4mlf2xyr76")))
     (synopsis "Welsh hyphenation patterns")
     (description "This package provides hyphenation patterns for Welsh in
 T1/EC and UTF-8 encodings.")
@@ -2255,7 +2175,7 @@ T1/EC and UTF-8 encodings.")
                     "/doc/generic/hyph-utf8/img/miktex-languages.png"
                     "/doc/generic/hyph-utf8/img/texlive-collection.png")
               (base32
-               "10y8svgk68sivmgzrv8gv137r7kv49cs256cq2wja9ms437pxvbj")))
+               "1bar5mc808ch20anhqrdxcwiych359qsvr7mggxpg2l2kq5xdyq0")))
     (outputs '("out" "doc"))
     (build-system gnu-build-system)
     (arguments
@@ -2388,7 +2308,7 @@ converters, will completely supplant the older patterns.")
               (list "/tex/generic/dehyph-exptl/"
                     "/doc/generic/dehyph-exptl/")
               (base32
-               "1w2danvvy2f52hcb4acvjks53kcanwxr9s990fap6mj279hpgmh2")
+               "1fnqc63gz8gvdyfz45bx8dxn1r1rwrypahs3bqd2vlc8ff76xp86")
               #:trivial? #t))
     (propagated-inputs
      `(("texlive-hyphen-base" ,texlive-hyphen-base)
@@ -2495,7 +2415,7 @@ UCY (Omega Unicode Cyrillic), LCY, LWN (OT2), and koi8-r.")
                     "/web2c/tcvn-t5.tcx"
                     "/web2c/viscii-t5.tcx")
               (base32
-               "0ajfp9kr330lcm2ymr3kl9zn6y2xjkrzpa0c0azc4qdm5jllawb9")
+               "191i8n3g46p53bb9dkx2ggwpzy7skgg0pbklsrpx8x4ayd86wcaf")
               #:trivial? #t))
     (home-page "https://www.tug.org/texlive/")
     (synopsis "Files related to the path searching library for TeX")
@@ -2528,18 +2448,16 @@ formats.")
                          ;; these are not:
                          "/tex/latex/base/idx.tex"
                          "/tex/latex/base/lablst.tex"
-                         "/tex/latex/base/lppl.tex"
                          "/tex/latex/base/ltnews.cls"
                          "/tex/latex/base/ltxcheck.tex"
                          "/tex/latex/base/ltxguide.cls"
                          "/tex/latex/base/minimal.cls"
                          "/tex/latex/base/sample2e.tex"
                          "/tex/latex/base/small2e.tex"
-                         "/tex/latex/base/source2e.tex"
                          "/tex/latex/base/testpage.tex"
                          "/tex/latex/base/texsys.cfg")
                    (base32
-                    "0f8d41wk1gb7i6xq1a10drwhhayc50pg9nwzjkrqnxrv0pcc08w5")
+                    "0m0gjb4hbsf2iqkkx3px4f28r2scjvsjv4zb2whkbnb44apyw1f0")
                    #:trivial? #t)))
     (package
       (inherit template)
@@ -2552,6 +2470,13 @@ formats.")
             (srfi srfi-26)))
          ((#:phases phases)
           `(modify-phases ,phases
+             ;; The literal tab in the dtx file is translated to the string
+             ;; "^^I" in the generated Lua file, which causes a syntax error.
+             (add-after 'unpack 'fix-lua-sources
+               (lambda _
+                 (substitute* "source/latex/base/ltluatex.dtx"
+                   ((" ") "  "))
+                 #t))
              (replace 'build
                (lambda* (#:key inputs #:allow-other-keys)
                  ;; Find required fonts
@@ -2594,6 +2519,11 @@ formats.")
                         '("aleph aleph" "lamed aleph" "uptex uptex" "euptex euptex"
                           "eptex eptex" "ptex ptex" "pdfxmltex pdftex" "platex eptex"
                           "csplain pdftex" "mf mf-nowin" "mex pdftex" "pdfmex pdftex"
+                          "luacsplain luatex"
+                          ,@(if (string-prefix? "powerpc64le"
+                                                (or (%current-target-system)
+                                                    (%current-system)))
+                              '("luajittex") '())
                           "cont-en xetex" "cont-en pdftex" "pdfcsplain xetex"
                           "pdfcsplain pdftex" "pdfcsplain luatex" "cslatex pdftex"
                           "mptopdf pdftex" "uplatex euptex" "jadetex pdftex"
@@ -2652,7 +2582,7 @@ formats.")
                   "/tex/generic/config/luatexiniconfig.tex"
                   "/web2c/texmfcnf.lua")
             (base32
-             "0cs67a8wwh4s5p5gn8l49jyccgy7glw8mfq5klgn3dfsl2fdlhk7")))))
+             "1gi87wy12r8w8fhx9ajcid382dmqzf6b9070b5nndvbbjrvhwf23")))))
       (propagated-inputs
        `(("texlive-dehyph-exptl" ,texlive-dehyph-exptl)
          ("texlive-etex" ,texlive-etex)
@@ -2697,6 +2627,7 @@ formats.")
          ("texlive-hyphen-mongolian" ,texlive-hyphen-mongolian)
          ("texlive-hyphen-norwegian" ,texlive-hyphen-norwegian)
          ("texlive-hyphen-occitan" ,texlive-hyphen-occitan)
+         ("texlive-hyphen-pali" ,texlive-hyphen-pali)
          ("texlive-hyphen-piedmontese" ,texlive-hyphen-piedmontese)
          ("texlive-hyphen-polish" ,texlive-hyphen-polish)
          ("texlive-hyphen-portuguese" ,texlive-hyphen-portuguese)
@@ -2738,7 +2669,7 @@ contain.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0swkbxv8vg0yizadfnvrwjb4cj0pn34v9wm6v7wqq903fdav7k7q"))))
+                "1h78zw0vhldx478zs4v86ajg7vpkysd1kg3npc480qqls3q6ba40"))))
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/filecontents"))
     (home-page "https://www.ctan.org/pkg/filecontents")
@@ -2803,19 +2734,13 @@ users, via its Plain TeX version.)")
 
 (define-public texlive-latex-fancyvrb
   (package
-    (name "texlive-latex-fancyvrb")
-    (version (number->string %texlive-revision))
-    (source (origin
-              (method svn-fetch)
-              (uri (texlive-ref "latex" "fancyvrb"))
-              (file-name (string-append name "-" version "-checkout"))
-              (sha256
-               (base32
-                "03l7140y031rr14h02i4z9zqsfvrbn7wzwxbjsrjcgrk6sdr71wv"))))
-    (build-system texlive-build-system)
-    (arguments
-     '(#:tex-directory "latex/fancyvrb"
-       #:tex-format "latex"))
+    (inherit (simple-texlive-package
+              "texlive-latex-fancyvrb"
+              (list "/doc/latex/fancyvrb/README"
+                    "/tex/latex/fancyvrb/")
+              (base32
+               "1dwkcradz9nwpjwmv1sjzn77lvw25ypr0rrgmf1kd8pd2mw7dxcn")
+              #:trivial? #t))
     (home-page "https://www.ctan.org/pkg/fancyvrb")
     (synopsis "Sophisticated verbatim text")
     (description
@@ -2968,7 +2893,7 @@ pdf and HTML backends.  The package is distributed with the @code{backref} and
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "1m9fg8ddhpsl1212igr9a9fmj012lv780aghjn6fpidg2wqrffmn"))))
+                "0pi2d6gsddcs9wprdbar46s91kdc5fxl1m79g7xrbccsx8s9xbml"))))
     (build-system texlive-build-system)
     (arguments
      '(#:tex-directory "latex/oberdiek"
@@ -3001,7 +2926,7 @@ arrows; record information about document class(es) used; and many more.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0vj7h1fgf1396h4qjdc2m07y08i54gbbfrxl8y327cn3r1n093s6"))))
+                "1wqvn4z0s92h5iqzrvxw7hinzp95avjk9v8lnqbqr4kz6nv4xb9l"))))
     (build-system texlive-build-system)
     (arguments
      '(#:tex-directory "latex/tools"
@@ -3070,7 +2995,7 @@ Live distribution.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0p3fsxap1ilwjz356aq4s5ygwvdscis8bh93g8klf8mhrd8cr2jy"))))
+                "0s77z2cbv841l45qrpf0s8qhzfa4wi689lg7zkw88qg18nzvy0ly"))))
     (build-system texlive-build-system)
     (arguments
      '(#:tex-directory "latex/l3kernel"))
@@ -3094,7 +3019,7 @@ that the LaTeX3 conventions can be used with regular LaTeX 2e packages.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0pyx0hffiyss363vv7fkrcdiaf7p099xnq0mngzqc7v8v9q849hs"))))
+                "1cv4fk9pabh7mkxhfsdmh4k8xpmzg1psgcsvd11c869m7n3a629h"))))
     (build-system texlive-build-system)
     (arguments
      '(#:tex-directory "latex/l3packages"
@@ -3149,7 +3074,7 @@ programming tools and kernel sup­port.  Packages provided in this release are:
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "1p0mkn6iywl0k4m9cx3hnhylpi499inisff3f72pcf349baqsnvq"))))
+                "1223cw029n6zff7pqpwbsq1x8v3w63smczkmnybqxkw5h2za8gbz"))))
     (build-system texlive-build-system)
     (arguments
      '(#:tex-directory "latex/fontspec"
@@ -3238,7 +3163,7 @@ this bundle for use independent of ConTeXt.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/lualatex/luaotfload.git")
+                    (url "https://github.com/lualatex/luaotfload")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -3332,7 +3257,7 @@ loading fonts by their proper names instead of file names.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0arvk7gn32mshnfdad5qkgf3i1arxq77k3vq7wnpm4nwnrzclxal"))))
+                "0qgk2332dacsxn1z95qzp35gbs7wrzl1ipjdhnmk1r897msm4sf5"))))
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/amsmath"))
     (home-page "https://www.ctan.org/pkg/amsmath")
@@ -3385,7 +3310,7 @@ distribution.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0yhlfiz3fjc8jd46f1zrjj4jig48l8rrzh8cmd8ammml8z9a01z6"))))
+                "1rwqq841i1rxywymzwkw0cw2yhgvxwjx5mgygfasvypwrwll6f6s"))))
     (build-system texlive-build-system)
     (arguments
      '(#:tex-directory "generic/babel"
@@ -3442,7 +3367,7 @@ for Canadian and USA text.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0h47s67gnhdaxfgbf8pirp5vw4z6rrhxl8zav803yjxka0096i3y"))))
+                "129f9w41cb6yyrr6kpv3zz9ml6334hyq1wcz7j9jn47p0hlxqfk8"))))
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "generic/babel-german"))
     (home-page "https://www.ctan.org/pkg/babel-german")
@@ -3656,7 +3581,7 @@ standard LaTeX packages."
                                          (number->string %texlive-revision)))
                (sha256
                 (base32
-                 "06mwpy5i218g5k3sf4gba0fmxgas82hkzx9fhwn67z5ik37d8apq"))))))
+                 "0faqknqxs80qp9ywk0by5k85s0yalg97c4lja4q56lsyblrr4j7i"))))))
         (home-page (package-home-page texlive-bin))
         (synopsis "Union of TeX Live packages")
         (description "This package provides a subset of the TeX Live
@@ -3678,6 +3603,29 @@ distribution.")
     (description "This is a very limited subset of the TeX Live distribution.
 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
+               "1h53dscv8z6fsa0ax5dys3x11b2f1g60l22hpdf7c88cvdhcs8sn")
+              #:trivial? #t))
+    (home-page "https://www.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.")
+    (license license:lppl)))
+
 (define-public texlive-latex-amsrefs
   (package
     (name "texlive-latex-amsrefs")
@@ -4131,10 +4079,10 @@ to something that's not a float.")
   (package
     (inherit (simple-texlive-package
               "texlive-doi"
-              (list "/doc/latex/doi/README"
+              (list "/doc/latex/doi/README.md"
                     "/tex/latex/doi/")
               (base32
-               "17lnnhfmb8g4nh4fnyc9616h8xg3vjrzmlvfmlfqwwlfpma9xnnw")
+               "18z9922lqb3hliqn95h883fndqs4lgyi5yqbnq2932ya0imc3j7h")
               #:trivial? #t))
     (home-page "https://www.ctan.org/pkg/doi")
     (synopsis "Create correct hyperlinks for DOI numbers")
@@ -4158,7 +4106,7 @@ hyperlink to the target of the DOI.")
               (list "/doc/latex/etoolbox/"
                     "/tex/latex/etoolbox/")
               (base32
-               "1qg4x5r4ibinl6zy5lq70lv4zcrjsn54n6hwv31k5kl7mwv0mvr3")
+               "1cc1vw1ach55g4ff4x30by8k1mg01w199ccxvn72f5khlnnxial0")
               #:trivial? #t))
     (home-page "https://www.ctan.org/pkg/etoolbox")
     (synopsis "e-TeX tools for LaTeX")
@@ -4260,7 +4208,7 @@ course of the framed/shaded matter.  There is also a command
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0sikazkg0dpkcpzlbqw8qzxr81paf2f443vsrh14jnw7s4gswvc5"))))
+                "1br4kv9y17cvngp83ykpvy7gy3jqfan5plk7sggcgbdfhndi5dsr"))))
     (build-system texlive-build-system)
     (arguments
      '(#:tex-directory "latex/g-brief"
@@ -4333,7 +4281,7 @@ BibLaTeX, and is considered experimental.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0yw6bjfgsli3s1dldsgb7mkr7lnk329cgdjbgs8z2xn59pmmdsn4"))))
+                "0a8f38c2ds1flxcr0apdpyaaz3k6fyalz6dkbrmcv9srjc40mh3n"))))
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/geometry"))
     (propagated-inputs
@@ -4384,7 +4332,7 @@ array environments; verbatim handling; and syntax diagrams.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "03ma58z3ypsbp7zgkzb1ylpn2ygr27cxzkf042ns0rif4g8s491f"))))
+                "0na7v4hsyx5s67cpjj2dbnq8j67k8lln6b19hmj631gfs27slss1"))))
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/polyglossia"))
     (home-page "https://www.ctan.org/pkg/polyglossia")
@@ -4430,7 +4378,7 @@ situations where longtable has problems.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "06cf821y1j7jdg93pb41ayigrfwgn0y49d7w1025zlijjxi6bvjp"))))
+                "16jy02m089m7n6v9vbfi4xjgngc1fnvsmmppk8axfwzbhdky3c9c"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -4604,7 +4552,7 @@ copy-and-paste functions work properly.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "190pmq8la2rq07xry8bn8z8yywzxv6fqyqaj7yjfj5rgw6x0mas8"))))
+                "16vd99p01a0y30xr5yf1z2j5da9x8gy21vb30wk08jh31zffbaqj"))))
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/colortbl"))
     (home-page "https://www.ctan.org/pkg/colortbl")
@@ -4663,7 +4611,7 @@ floats, center, flushleft, and flushright, lists, and pages.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "1xsnzx7vgdfh9zh2m7bjz6bgdpxsgb1kyc19p50vhs34x5nbgsnr"))))
+                "0hrwspqkqfahxyzzsnjyrxlgxj06zw1f3636gx76pvl4xhvdj1cj"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -4741,7 +4689,7 @@ footnotes with symbols rather than numbers.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "1nsn9wp3wl12b36c0sqrim33lf33cr5wky0h4ncnw8lvqgm7h8wf"))))
+                "1fbrhqj22vzakn30j71fc41l8nliqbv1dmxm0zlwi2qjjbq6fwav"))))
     (build-system texlive-build-system)
     (arguments
      '(#:tex-directory "latex/listings"
@@ -4875,7 +4823,7 @@ fonts are available in (traced) Adobe Type 1 format, as part of the
 set, Latin Modern, is not actually a direct development of the EC set, and
 differs from the EC in a number of particulars.")
     (license (license:fsf-free "https://www.tug.org/svn/texlive/tags/\
-texlive-2018.2/Master/texmf-dist/doc/fonts/ec/copyrite.txt"))))
+texlive-2019.3/Master/texmf-dist/doc/fonts/ec/copyrite.txt"))))
 
 ;; FIXME: the fonts should be built from source, but running "tex aefonts.tex"
 ;; fails with obscure TeX-typical error messages.
@@ -4902,6 +4850,32 @@ fonts.  Note that direct substitutes for the bitmapped EC fonts are available,
 via the CM-super, Latin Modern and (in a restricted way) CM-LGC font sets.")
     (license license:lppl1.3+)))
 
+(define-public texlive-inconsolata
+  (package
+    (inherit (simple-texlive-package
+              "texlive-inconsolata"
+              (list "/doc/fonts/inconsolata/"
+                    "/fonts/enc/dvips/inconsolata/"
+                    "/fonts/map/dvips/inconsolata/"
+                    "/fonts/opentype/public/inconsolata/"
+                    "/fonts/tfm/public/inconsolata/"
+                    "/fonts/type1/public/inconsolata/"
+                    "/tex/latex/inconsolata/")
+              (base32
+               "1a77w26m4c4j0202s1qkikz7ha6cxlv8zxhzi9s3l0x1l2pl7cr2")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/inconsolata")
+    (synopsis "Monospaced font with support files for use with TeX")
+    (description
+     "Inconsolata is a monospaced font designed by Raph Levien.  This package
+contains the font (in both Adobe Type 1 and OpenType formats) in regular and
+bold weights, with additional glyphs and options to control slashed zero,
+upright quotes and a shapelier lower-case L, plus metric files for use with
+TeX, and LaTeX font definition and other relevant files.")
+    (license (list license:lppl1.3+
+                   license:silofl1.1
+                   license:asl2.0))))
+
 (define-public texlive-times
   (package
     (inherit (simple-texlive-package
@@ -5070,7 +5044,7 @@ one of the packages @code{calrsfs} and @code{mathrsfs}.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "1xvmms28mvvfpks9x7lfya2xhh5k8jy3qnlih1mzcnf156xnb89z"))))
+                "0y2y08kr3w6asm9lblj9yywqmhaal36fq71zzcbfsc7cvwf641q7"))))
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/eso-pic"))
     (home-page "https://www.ctan.org/pkg/eso-pic")
@@ -5132,7 +5106,7 @@ splines, and filled circles and ellipses.  The package uses @code{tpic}
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0q24b1bkdi9l6bw787bpggww83jh2vj8955aw2m5yccqbx4vgr5r"))))
+                "1vm9xp67hzif0pqab4r3ialf0cyhi0fa4p8kxgp1ymcf85pqip14"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -5164,7 +5138,7 @@ in the form @code{key=value} are available, for example:
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0qlxy47f1f8plgch3jqfsnrdgpyz20sz46yp33i2jwvf9hvfczf0"))))
+                "07vbcp6avdwldr870cwf65av2s9lfyzcpp8gpld53yw6lcxgaipj"))))
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/multirow"))
     (home-page "https://www.ctan.org/pkg/multirow")
@@ -5189,7 +5163,7 @@ entry at the \"natural\" width of its text.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "1rpx4ibjncj5416rg19v0xjbj3z9avhfdfn2gzp8r8sz9vz25c6g"))))
+                "1pr6ym3ad7x14ng7gmhsmywh3685d2cnm5qgyrqbigng2r6fcc1k"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -5225,7 +5199,7 @@ positions; a grid for orientation is available.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "14r6h9hqb0qgccxj5l1208694fx8sb8avmgzps36lsbbpszl7i7m"))))
+                "0j1fhm1m9k6rz80lmch3x44g20y9nm4abaaf8czb0q8hzwlx5aq5"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -5470,6 +5444,115 @@ alternative version of the Kurier fonts.  The difference lies in the absence
 of ink traps which typify the Kurier font.")
     (license license:gfl1.0)))
 
+(define-public texlive-jknappen
+  (package
+    (inherit (simple-texlive-package
+              "texlive-jknappen"
+              (list "/fonts/source/jknappen/"
+                    "/fonts/tfm/jknappen/"
+                    "/fonts/source/jknappen/"
+                    "/fonts/tfm/jknappen/"
+                    "/tex4ht/ht-fonts/alias/jknappen/"
+                    "/tex4ht/ht-fonts/unicode/jknappen/")
+              (base32
+               "1v5wk5il41bddzr81h5636h3cjz0w1qann5g9garsb7qfch9fhws")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/jknappen")
+    (synopsis "Miscellaneous packages by Jörg Knappen")
+    (description
+     "This package contains a collection of macros by Jörg Knappen:
+@table @code
+@item greekctr
+New counterstyles @code{\\greek} and @code{\\Greek}.
+@item holtpolt
+Non-commutative fractions
+@item latin1jk
+@itemx latin2jk
+@itemx latin3jk
+Inputenc definition files that allow verbatim input in the respective ISO
+Latin codes.
+@item mathbol
+Blackboard bold fonts for use in maths.
+@item mathrsfs
+Mathematical script letters, as traditionally used in physics for Lagrangian,
+Hamiltonian, path integral measures, etc.
+@item parboxx
+New alignment options for parboxen at top and bottom of the box.
+@item sans
+Interchanges the roles of sans serif and roman fonts throughout the document.
+@item semtrans
+Support for special latin letters and diacritics used in transliteration of
+semitic languages
+@item smartmn
+Intelligent hyphen/minus, which guesses whether to render as hyphen or minus.
+@item sgmlcmpt
+Commands replacing the characters <, >, and &.
+@item tccompat
+A compatibility package for users of the older versions of the textcomp package.
+@item young
+Simple Young tableaux.
+@end table")
+    (license license:gpl2)))                    ;per the 00readme_txt file.
+
+(define-public texlive-libertine
+  (package
+    (inherit (simple-texlive-package
+              "texlive-libertine"
+              (list "/doc/fonts/libertine/"
+
+                    "/fonts/enc/dvips/libertine/"
+                    "/fonts/map/dvips/libertine/"
+                    "/fonts/opentype/public/libertine/"
+                    "/fonts/tfm/public/libertine/"
+                    "/fonts/type1/public/libertine/"
+                    "/fonts/vf/public/libertine/"
+
+                    "/tex/latex/libertine/")
+              (base32
+               "1v2vimpfi0b08sd79dadrck7wkpa0bphiakwyvhjc3ygq9k5bp8k")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/libertine")
+    (synopsis "Use Linux Libertine and Biolinum fonts with LaTeX")
+    (description
+     "The package provides the Libertine and Biolinum fonts in both Type 1 and
+OTF styles, together with support macros for their use.  Monospaced and
+display fonts, and the \"keyboard\" set are also included, in OTF style, only.
+The @code{mweights} package is used to manage the selection of font weights.
+The package supersedes both the @code{libertineotf} and the
+@code{libertine-legacy} packages.")
+    (license (list license:gpl2+        ; with font exception
+                   license:silofl1.1
+                   license:lppl))))
+
+(define-public texlive-dejavu
+  (package
+    (inherit (simple-texlive-package
+              "texlive-dejavu"
+              (list "/doc/fonts/dejavu/"
+
+                    "/fonts/enc/dvips/dejavu/"
+                    "/fonts/map/dvips/dejavu/"
+
+                    "/fonts/afm/public/dejavu/"
+                    "/fonts/tfm/public/dejavu/"
+                    "/fonts/truetype/public/dejavu/"
+                    "/fonts/type1/public/dejavu/"
+                    "/fonts/vf/public/dejavu/"
+
+                    "/tex/latex/dejavu/")
+              (base32
+               "0y4qf5jl0xncah9nkcaalmy69wwq02n3j895zp71n2p0nfi24aka")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/libertine")
+    (synopsis "LaTeX support for the DejaVu fonts")
+    (description
+     "The package contains LaTeX support for the DejaVu fonts, which are
+derived from the Vera fonts but contain more characters and styles.  The fonts
+are included in the original TrueType format, and in converted Type 1 format.
+The (currently) supported encodings are: OT1, T1, IL2, TS1, T2*, X2, QX, and
+LGR.  The package doesn't (currently) support mathematics.")
+    (license license:lppl)))
+
 (define-public texlive-latex-titlesec
   (package
     (name "texlive-latex-titlesec")
@@ -5562,6 +5645,32 @@ CM-Super family of fonts.  The package also offers its own LaTeX support for
 OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.")
     (license license:lppl)))
 
+(define-public texlive-marvosym
+  (package
+    (inherit (simple-texlive-package
+              "texlive-marvosym"
+              (list "/doc/fonts/marvosym/"
+                    "/fonts/afm/public/marvosym/"
+                    "/fonts/map/dvips/marvosym/"
+                    "/fonts/tfm/public/marvosym/"
+                    "/fonts/truetype/public/marvosym/"
+                    "/fonts/type1/public/marvosym/"
+                    "/tex/latex/marvosym/")
+              (base32
+               "0m3bbg06cia8ni86fjhvb7x4a5qcxgnpqcvicfms91w2px9ysc46")
+              #:trivial? #t))
+    (home-page "https://martinvogel.de/blog/index.php?\
+/archives/131-Marvosym.ttf.html")
+    (synopsis "Martin Vogel's Symbols (marvosym) font")
+    (description "The Martin Vogel’s Symbols fonts (marvosym) contains the
+Euro currency symbol as defined by the European commission, along with symbols
+for structural engineering, symbols for steel cross-sections, astronomy
+signs (sun, moon, planets), the 12 signs of the zodiac, scissor symbols, CE
+sign and others.  This package contains both the original TrueType font and
+the derived Type 1 font, together with support files for TeX (LaTeX).")
+    (license (list license:lppl          ;for TeX support files
+                   license:silofl1.1)))) ;for fonts
+
 (define-public texlive-metapost
   (package
     (name "texlive-metapost")
@@ -5576,7 +5685,7 @@ OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0sf18pc6chgy26p9bxxn44xcqhzjrfb53jxjr2y7l3jb6xllhblq"))))
+                "1xyd57c8z1xi0kbqpbad61flcazz68i9ssxrag0gjvci3irxi8xh"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -5605,7 +5714,7 @@ than the bitmaps Metafont creates.")
               (uri (texlive-ref "latex" "acmart"))
               (sha256
                (base32
-                "0n62cs8dhcbn29y9ij1nnyigzr76yhk36kyahhqkkmvbafbys9s7"))
+                "18rl67p2zhngskisnhv78mksv8q8q658l6igkswzswldixmkpphq"))
               (file-name (string-append name "-" version "-checkout"))))
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/acmart"))
@@ -5650,6 +5759,24 @@ Association for Computing Machinery (ACM).")
 get a narrower “natural” width.")
     (license license:lppl)))
 
+(define-public texlive-wasy
+  (package
+    (inherit (simple-texlive-package
+              "texlive-wasy"
+              (list "/fonts/source/public/wasy/"
+                    "/fonts/tfm/public/wasy/"
+                    "/tex/plain/wasy/"
+                    "/doc/fonts/wasy/")
+              (base32
+               "10dxbqgv42niybj65hj6y47x8lsl83m48rgw2v2s50k05wbghwbm")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/wasy")
+    (synopsis "Waldi symbol fonts")
+    (description "This package provides the @code{wasy} (Waldi symbol) fonts,
+in the Metafont and Adobe Type 1 formats.  Support under LaTeX is provided by
+the @code{wasysym} package.")
+    (license license:public-domain)))
+
 (define-public texlive-latex-wasysym
   (package
     (name "texlive-latex-wasysym")
@@ -5664,12 +5791,12 @@ get a narrower “natural” width.")
     (build-system texlive-build-system)
     (arguments '(#:tex-directory "latex/wasysym"))
     (home-page "https://www.ctan.org/pkg/wasysym")
-    (synopsis "LaTeX support file to use the WASY2 fonts")
+    (synopsis "LaTeX support file to use the @code{wasy} fonts")
     (description
-     "The wasy2WASY2 (Waldi Symbol) font by Roland Waldi provides many glyphs
-like male and female symbols and astronomical symbols, as well as the complete
-lasy font set and other odds and ends.  The wasysym package implements an easy
-to use interface for these symbols.")
+     "The @code{wasy} (Waldi Symbol) font by Roland Waldi provides many glyphs like
+male and female symbols and astronomical symbols, as well as the complete
+@code{lasy} font set and other odds and ends.  The @code{wasysym} package
+implements an easy to use interface for these symbols.")
     (license license:lppl)))
 
 (define-public texlive-latex-wrapfig
@@ -5843,7 +5970,7 @@ e-TeX.")
            (file-name (string-append name "-map-" version "-checkout"))
            (sha256
             (base32
-             "18jvcm0vwpg6wwzijvnb92xx78la45kkh71k6l44425krp2vnwm0"))))))
+             "03rfif2631pgd8g1ar4xblcdh078kky7fvw3kfsj5a47rxxgicp2"))))))
     (home-page "https://www.ctan.org/pkg/pdftex")
     (synopsis "TeX extension for direct creation of PDF")
     (description
@@ -5854,7 +5981,7 @@ directly generate PDF documents instead of DVI.")
 (define texlive-texmf
   (package
    (name "texlive-texmf")
-   (version "20180414")
+   (version "20190410")
    (source texlive-texmf-src)
    (build-system gnu-build-system)
    (inputs
@@ -5931,7 +6058,7 @@ This package contains the complete tree of texmf-dist data.")
 (define-public texlive
   (package
    (name "texlive")
-   (version "20180414")
+   (version "20190410")
    (source #f)
    (build-system trivial-build-system)
    (inputs `(("bash" ,bash) ; for wrap-program
@@ -6035,6 +6162,9 @@ values (strings, macros, or numbers) pasted together.")
 
 (define-public biber
   (package
+    ;; Note: When updating Biber, make sure it matches our BibLaTeX version by
+    ;; checking the Biber/BibLaTeX compatibility matrix in the BibLaTeX manual
+    ;; at <https://ctan.org/pkg/biblatex>.
     (name "biber")
     (version "2.12")
     (source (origin
@@ -6045,7 +6175,8 @@ values (strings, macros, or numbers) pasted together.")
               (file-name (git-file-name name version))
               ;; TODO: Patch awaiting inclusion upstream (see:
               ;; https://github.com/plk/biber/issues/239).
-              (patches (search-patches "biber-fix-encoding-write.patch"))
+              (patches (search-patches "biber-fix-encoding-write.patch"
+                                       "biber-sortinithash.patch"))
               (sha256
                (base32
                 "1g1hi6zvf2hmrjly1sidjaxy5440gfqm4p7p3n7kayshnjsmlskx"))))
@@ -6120,22 +6251,30 @@ other things it comes with full Unicode support.")
 (define-public rubber
   (package
     (name "rubber")
-    (version "1.1")
+    (version "1.5.1")
     (source (origin
-             (method url-fetch)
-             (uri (list (string-append "https://launchpad.net/rubber/trunk/"
-                                       version "/+download/rubber-"
-                                       version ".tar.gz")
-                        (string-append "http://ebeffara.free.fr/pub/rubber-"
-                                       version ".tar.gz")))
-             (sha256
-              (base32
-               "1xbkv8ll889933gyi2a5hj7hhh216k04gn8fwz5lfv5iz8s34gbq"))))
-    (build-system gnu-build-system)
-    (arguments '(#:tests? #f))                    ; no `check' target
+              (method url-fetch)
+              (uri (list (string-append "https://launchpad.net/rubber/trunk/"
+                                        version "/+download/rubber-"
+                                        version ".tar.gz")
+                         (string-append "http://ebeffara.free.fr/pub/rubber-"
+                                        version ".tar.gz")))
+              (sha256
+               (base32
+                "178dmrp0mza5gqjiqgk6dqs0c10s0c517pk6k9pjbam86vf47a1p"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:tests? #f ; no `check' target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; texlive is required to build the PDF documentation; do not
+             ;; build it.
+             (invoke "python" "setup.py" "build" "--pdf=False" "install"
+                     (string-append "--prefix=" (assoc-ref outputs "out"))))))))
     (native-inputs `(("texinfo" ,texinfo)))
-    (inputs `(("python" ,python-2) ; incompatible with Python 3 (print syntax)
-              ("which" ,which)))
     (home-page "https://launchpad.net/rubber")
     (synopsis "Wrapper for LaTeX and friends")
     (description
@@ -6150,14 +6289,14 @@ PDF documents.")
 (define-public texmaker
   (package
     (name "texmaker")
-    (version "5.0.3")
+    (version "5.0.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.xm1math.net/texmaker/texmaker-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0vrj9w5lk3vf6138n5bz8phmy3xp5kv4dq1rgirghcf4hbxdyx30"))))
+                "1qnh5g8zkjpjmw2l8spcynpfgs3wpcfcla5ms2kkgvkbdlzspqqx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -6231,75 +6370,49 @@ and Karl Berry.")
 (define-public lyx
   (package
     (name "lyx")
-    (version "2.3.3")
+    (version "2.3.6.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ftp.lyx.org/pub/lyx/stable/"
                                   (version-major+minor version) ".x/"
-                                  "lyx-" version ".tar.gz"))
+                                  "lyx-" version ".tar.xz"))
               (sha256
                (base32
-                "0j3xincwmsscfgv13g3z6h4kx1qfzgg8x71fs393akcdxsh2g07c"))
+                "0y7sx804ral14py5jwmb3icvyd6rsw806dfclw0qx28r6iix5gn6"))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   (delete-file-recursively "3rdparty")
                   #t))))
-    (build-system cmake-build-system)
+    (build-system qt-build-system)
     (arguments
      `(#:configure-flags `("-DLYX_USE_QT=QT5"
                            "-DLYX_EXTERNAL_BOOST=1"
                            "-DLYX_INSTALL=1"
                            "-DLYX_RELEASE=1"
+                           "-DLYX_PROGRAM_SUFFIX=OFF"
                            ,(string-append "-DLYX_INSTALL_PREFIX="
-                                           (assoc-ref %outputs "out")
-                                           ;; Exact name and level is necessary.
-                                           "/lyx" ,(version-major+minor version)))
+                                           (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
-         ;; See ;; https://www.lyx.org/trac/changeset/3a123b90af838b08680471d87170c38e56787df9/lyxgit
-         (add-after 'unpack 'fix-compilation-with-boost-1.69
-           (lambda _
-             (substitute* "src/support/FileName.cpp"
-               (("^template struct boost::detail::crc_table_t.*") ""))
-             #t))
          (add-after 'unpack 'patch-python
            (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* '("src/support/os.cpp")
+             (substitute* '("lib/configure.py"
+                            "src/support/ForkedCalls.cpp"
+                            "src/support/Systemcall.cpp"
+                            "src/support/os.cpp"
+                            "src/support/filetools.cpp")
                (("\"python ")
                 (string-append "\""
                                (assoc-ref inputs "python")
-                               "/bin/python ")))
+                               "/bin/python3 ")))
              #t))
-         (add-after 'patch-python 'patch-desktop-file
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "lib/lyx.desktop.in"
-               (("Exec=")
-                (string-append "Exec="
-                               (assoc-ref outputs "out")
-                               "/")))
-             #t))
-         (add-before 'check 'setenv-check
+         (add-after 'unpack 'add-missing-test-file
            (lambda _
              ;; Create missing file that would cause tests to fail.
-             (with-output-to-file (string-append "../lyx-"
-                                                 ,version
-                                                 "/src/tests/check_layout.cmake")
+             (with-output-to-file "src/tests/check_layout.cmake"
                (const #t))
-             (setenv (string-append "LYX_DIR_"
-                                    (string-join
-                                      (string-split
-                                        ,(version-major+minor version) #\-)) "x")
-                     (string-append (getcwd) "/../lyx-" ,version "/lib"))
-             #t))
-         (add-after 'install 'install-symlinks
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (mkdir-p (string-append out "/bin"))
-               (symlink (string-append "../lyx" ,(version-major+minor version)
-                                       "/bin/lyx" ,(version-major+minor version))
-                        (string-append out "/bin/lyx" ,(version-major+minor version)))
-               #t))))))
+             #t)))))
     (inputs
      `(("boost" ,boost)
        ("hunspell" ,hunspell)           ; Note: Could also use aspell instead.
@@ -6337,7 +6450,7 @@ required: automatic sectioning and pagination, spell checking and so forth.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0lhb2h5hxjq9alpk4r3gvg21pwyifs4ah6hqzp92k55mkp1xv73j"))))
+                "0s86v2b6b1vky1svmmn8pn0l2gz3v280mvjbr2d9l2sjyarlgz9w"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -6377,7 +6490,7 @@ specification.  It replaces the now obsolete @code{movie15} package.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0zp00jg058djx8xp0xqwas92y3j97clkyd8z6pqr890yqy06myqb"))))
+                "1yhp51w8yr10c10pc9196q7hlw80brzqinnqbjw81d0sf2p0llc5"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -6578,7 +6691,7 @@ striking out (line through words) and crossing out (/// over words).")
        (file-name (string-append name "-" version "-checkout"))
        (sha256
         (base32
-         "1dq8p10pz8wn0vx412m7d7d5gj1syxly3yqdqvf7lv2xl8zndn5h"))))
+         "1dscrgwyr71vgx35mzb316xl669arzagfgq50fdv3nxga63959b3"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("texlive-latex-pgf-generic"
@@ -6592,7 +6705,7 @@ striking out (line through words) and crossing out (/// over words).")
            (file-name (string-append "texlive-latex-pgf-generic" version "-checkout"))
            (sha256
             (base32
-             "0xkxw26sjzr5npjpzpr28yygwdbhzpdd0hsk80gjpidhcxmz393i"))))))
+             "0hk5x2j15n4pps279cmkbjl1dvhasq3mbhna5xdvp2qgh635ahks"))))))
     (propagated-inputs
      `(("texlive-latex-xcolor" ,texlive-latex-xcolor)))
     (arguments
@@ -6636,11 +6749,10 @@ produce either PostScript or PDF output.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0nqwf0sr4mf3v9gqa6apv6ml2xhcdwax0vgyf12a672g7rpdyvgm"))))
+                "1vz9zg7s5w52xr323zgglzprfrvba2zvyzf6b8vrdf4wdghlpv4z"))))
     (build-system trivial-build-system)
     (arguments
-     `(#:modules ((guix build utils)
-                  (ice-9 match))
+     `(#:modules ((guix build utils))
        #:builder
        (begin
          (use-modules (guix build utils)
@@ -6696,7 +6808,7 @@ typearea (which are the main parts of the bundle).")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0hs28fc0v2l92ad9las9b8xcckyrdrwmyhcx1yzmbr6s7s6nvsx8"))))
+                "1x4wnpca97rnbvvg6wjmbkxxvnfva274q9ahzx746b435q93z3i1"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -6885,7 +6997,7 @@ AMS-LaTeX, AMS-TeX, and plain TeX).  The distribution includes Michael Barr's
        (file-name (string-append name "-" version "-checkout"))
        (sha256
         (base32
-         "0hnbs0s1znbn32hfcsyijl39z81sdb00jf092a4blqz421qs2mbv"))))
+         "1wijqq605cbhn2bdaryby3xpkwmnk9ixcrjn5zwlfrxbgfblzfmz"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -6944,7 +7056,7 @@ Support for use with LaTeX is available in @code{freenfss}, part of
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0rlx4qqijms1n64gjx475kvip8l322fh7v17zkmwp1l1g0w3vlyz"))))
+                "0d7d74giz5knvj4rj6mbzd6c05mwg9jrxab86jxdqbc3jy7cl4kz"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -6970,7 +7082,7 @@ of support information.")
               (list "/doc/latex/beamer/"
                     "/tex/latex/beamer/")
               (base32
-               "00z1a32wkz1ffif7dc8h3ar2fn2hlvfnljgim2szjam2k14l82x3")
+               "1fqzbkmw2kfxihab8j4dadc3v68xap6v2ghpp2064fna47xlwy1c")
               #:trivial? #t))
     (propagated-inputs
      `(("texlive-latex-hyperref" ,texlive-latex-hyperref)
@@ -7029,7 +7141,7 @@ the file to which it applies.")
        (file-name (string-append name "-" version "-checkout"))
        (sha256
         (base32
-         "0ikxg8yzq78hy5b9x13d4nah46d0yvmwlqmdri06pygbx116dcac"))))
+         "18294h0cr05fs424m3x6aq24z5hf5zmiflalkj4kvpmsyyqqsj74"))))
     (build-system texlive-build-system)
     (arguments
      '(#:tex-directory "latex/pdfx"
@@ -7063,11 +7175,11 @@ the file to which it applies.")
            (file-name (string-append "texlive-tex-latex-pdfx-" version "-checkout"))
            (sha256
             (base32
-             "14j1zsvqc59ims3sk34v6km8db6cimks28y5fcxcr5mi2ykvj4vf"))))))
+             "171ffvpkj2fab4ljcxv3l6l5c8ga8zavdhmhfq07id8zyyr619ip"))))))
     (home-page "https://www.ctan.org/pkg/pdfx")
     (synopsis "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX")
     (description
-     "This package helps LaTeX users to create PDF/X, PFD/A and other
+     "This package helps LaTeX users to create PDF/X, PDF/A and other
 standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX.")
     (license license:lppl1.2+)))
 
@@ -7127,7 +7239,7 @@ change.")
                          "/tex/generic/pstricks/"
                          "/tex/latex/pstricks/")
                    (base32
-                    "04566354c77claxl1sznc490cda0m5gaa5ck6ms4q7mm44rj3rzk")
+                    "0sdxdd0qi4sccw9il7d4s7jivs24pq99cdzfnrf0gkqjb1y8s7cl")
                    #:trivial? #t)))
     (package
       (inherit template)
@@ -7151,12 +7263,11 @@ or shading the cells of tables.")
   (let ((template (simple-texlive-package
                    "texlive-pst-text"
                    (list "/doc/generic/pst-text/"
-                         "/source/generic/pst-text/Makefile"
                          "/dvips/pst-text/pst-text.pro"
                          "/tex/generic/pst-text/"
                          "/tex/latex/pst-text/")
                    (base32
-                    "0s2bbkdfy0shqrrkjflrn0x0pnvxzbdc38pjbdfw46wnmnxrnasm")
+                    "146fpzd1xlqi94q5r48z8ni8qww713yh6nwkbr9pw27mjrqdadb9")
                    #:trivial? #t)))
     (package
       (inherit template)
@@ -7221,7 +7332,7 @@ LuaTeX (respectively) is not the engine in use.")
                    (list "/doc/latex/tools/"
                          "/source/latex/tools/")
                    (base32
-                    "0v3zqcpy0w5bzy1xdcv1wnxbmxrn1j6x03h3y2af7qmjggph2a09"))))
+                    "1ivhij7171wvrgcjn4wah84wxwpd21d0chh3zxab4pj067c8d0mh"))))
     (package
       (inherit template)
       (arguments
@@ -7364,7 +7475,7 @@ The behaviour in standalone mode may adjusted using a configuration file
              (list "/source/latex/siunitx/siunitx.dtx"
                    "/doc/latex/siunitx/README.md")
              (base32
-              "0dmljnxgv2bwl3mi74iil41q03swvrm1b0ziwxlhc4m9lx31b1q1")))
+              "11kf6znkgw7y5qmw75qk6px6pqf57bwr53q0673zaiyq20lif96c")))
     (build-system texlive-build-system)
     (arguments
      '(#:tex-directory "latex/siunitx"
@@ -7415,3 +7526,563 @@ commands as well as behind-the-scenes optimisation.  Guidelines are given as
 to what constitutes a good table in this context.  The package offers
 @code{longtable} compatibility.")
     (license license:lppl1.3+)))
+
+(define-public texlive-csquotes
+  (let ((template (simple-texlive-package
+                   "texlive-csquotes"
+                   (list "/doc/latex/csquotes/"
+                         "/tex/latex/csquotes/")
+                   (base32
+                    "088gvi60d7sdl6fgg68fbz30fnpqc3yrpkx80sfw7vwgar3wm3av")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (propagated-inputs
+       `(("texlive-etoolbox" ,texlive-etoolbox)))
+      (home-page "https://www.ctan.org/pkg/csquotes")
+      (synopsis "Context sensitive quotation facilities")
+      (description "This package provides advanced facilities for inline and
+display quotations.  It is designed for a wide range of tasks ranging from the
+most simple applications to the more complex demands of formal quotations.
+The facilities include commands, environments, and user-definable 'smart
+quotes' which dynamically adjust to their context.  Quotation marks are
+switched automatically if quotations are nested and they can be adjusted to
+the current language if the babel package is available.  There are additional
+facilities designed to cope with the more specific demands of academic
+writing, especially in the humanities and the social sciences.  All quote
+styles as well as the optional active quotes are freely configurable.")
+      (license license:lppl1.3c+))))
+
+(define-public texlive-logreq
+  (let ((template (simple-texlive-package
+                   "texlive-logreq"
+                   (list "/doc/latex/logreq/"
+                         "/tex/latex/logreq/")
+                   (base32
+                    "13difccs3cxlkqlnhw286yb0c7mifrxfd402a2x5wwxv0m1kgfqd")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (propagated-inputs
+       `(("texlive-etoolbox" ,texlive-etoolbox)))
+      (home-page "https://www.ctan.org/pkg/logreq")
+      (synopsis "Support for automation of the LaTeX workflow")
+      (description "The package helps to automate a typical LaTeX
+workflow that involves running LaTeX several times and running tools
+such as BibTeX or makeindex.  It will log requests like \"please rerun
+LaTeX\" or \"please run BibTeX on file X\" to an external file in a
+machine-readable format.  Compiler scripts and integrated LaTeX
+editing environments may parse this file to determine the next steps
+in the workflow.  In sum, the package will do two things:
+
+@enumerate
+@item
+enable package authors to use LaTeX commands to issue requests, and
+
+@item
+collect all requests from all packages and write them to an external
+XML file.
+@end enumerate\n")
+      (license license:lppl1.3c))))
+
+(define-public texlive-biblatex
+  (let ((template (simple-texlive-package
+                   "texlive-biblatex"
+                   (list "/doc/latex/biblatex/"
+                         "/tex/latex/biblatex/")
+                   (base32
+                    "11kzvny50iklzkamr0rqd5x532q8rxny1xhmf96jl8mzj1d2zmay")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (propagated-inputs
+       `(("texlive-logreq" ,texlive-logreq)
+         ("texlive-url" ,texlive-url)))
+      (home-page "https://www.ctan.org/pkg/biblatex")
+      (synopsis "Sophisticated bibliographies in LaTeX")
+      (description "BibLaTeX is a complete reimplementation of the
+bibliographic facilities provided by LaTeX.  Formatting of the
+bibliography is entirely controlled by LaTeX macros, facilitating the
+design of new bibliography and citation styles.  BibLaTeX uses its own
+data backend program \"biber\" to read and process the bibliographic
+data.  With biber, the range of features provided by biblatex
+includes:
+
+@enumerate
+@item
+full unicode support,
+
+@item
+customisable bibliography labels,
+
+@item
+multiple bibliographies in the same document, and
+
+@item
+subdivided bibliographies, such as bibliographies per chapter or
+section.
+@end enumerate\n")
+      (license license:lppl1.3c))))
+
+(define-public texlive-todonotes
+  (let ((template (simple-texlive-package
+                   "texlive-todonotes"
+                   (list "/doc/latex/todonotes/"
+                         "/tex/latex/todonotes/")
+                   (base32
+                    "0lvxsskz4bdfxhd59hf77kiq8k4nh2spb66vc6hifdgi21z8r8wm")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (propagated-inputs
+       `(("texlive-latex-pgf" ,texlive-latex-pgf)
+         ("texlive-latex-xkeyval" ,texlive-latex-xkeyval)))
+      (home-page "http://www.ctan.org/pkg/todonotes")
+      (synopsis "Marking things to do in a LaTeX document")
+      (description "The @code{todonotes} package lets the user mark
+things to do later, in a simple and visually appealing way.  The
+package takes several options to enable customization and finetuning
+of the visual appearance.")
+      (license license:lppl1.3+))))
+
+(define-public texlive-units
+  (let ((template (simple-texlive-package
+                   "texlive-units"
+                   (list "/doc/latex/units/"
+                         "/tex/latex/units/")
+                   (base32
+                    "1ia1vzy8dp7pdvmawwnmh9lmkajmpnnh62dixrjpb6mnxq118bfd")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (home-page "http://www.ctan.org/pkg/units")
+      (synopsis "Typeset physical units and fractions")
+      (description "@code{units} is a package for typesetting physical
+units in a standard-looking way.  The package is based upon
+@code{nicefrac}, a package for typing fractions.  @code{nicefrac} is
+included in the @code{units} bundle.")
+      (license license:gpl3+))))
+
+(define-public texlive-microtype
+  (let ((template (simple-texlive-package
+                   "texlive-microtype"
+                   (list "/doc/latex/microtype/"
+                         "/tex/latex/microtype/")
+                   (base32
+                    "0xmjpzbj4nqmnl5m7xx1bshdk2c8n57rmbvn0j479ypj4wdlq9iy")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (home-page "http://www.ctan.org/pkg/microtype")
+      (synopsis "Subliminal refinements towards typographical perfection")
+      (description "@code{microtype} provides a LaTeX interface to the
+micro-typographic extensions that were introduced by pdfTeX and have
+since propagated to XeTeX and LuaTeX: most prominently character
+protrusion and font expansion, the adjustment of kerning and interword
+spacing, hyphenatable letterspacing and the possibility to disable all
+or selected ligatures.  These features may be applied to customisable
+sets of fonts.  All micro-typographic aspects of the fonts can be
+configured in a straight-forward and flexible way.  Settings for
+various fonts are provided.  An alternative package
+@code{letterspace}, which also works with plain TeX, is included in
+the bundle.")
+      (license license:lppl1.3c))))
+
+(define-public texlive-caption
+  (let ((template (simple-texlive-package
+                   "texlive-caption"
+                   (list "/doc/latex/caption/"
+                         "/tex/latex/caption/")
+                   (base32
+                    "09gmh8yjj9f5zak8r18g87w9p5jn7flnvmlhxmvdq6992mbdc6hg")
+                   #:trivial? #t)))
+    (package
+      (inherit template)
+      (home-page "http://www.ctan.org/pkg/caption")
+      (synopsis "Customising captions in floating environments")
+      (description "The @code{caption} package provides many ways to
+customise the captions in floating environments like figure and table.
+Facilities include rotating captions, sideways captions and continued
+captions (for tables or figures that come in several parts).  A list
+of compatibility notes, for other packages, is provided in the
+documentation.  The package also provides the \"caption outside
+float\" facility, in the same way that simpler packages like
+@code{capt-ofcapt-of} do.  The package supersedes @code{caption2}.
+Packages @code{bicaption}, @code{ltcaption}, @code{newfloat},
+@code{subcaption} and @code{totalcount} are included in the bundle.")
+      (license license:lppl1.3+))))
+
+(define-public texlive-symbol
+  (package
+    (inherit (simple-texlive-package
+              "texlive-symbol"
+              (list "/dvips/symbol/"
+                    "/fonts/afm/adobe/symbol/"
+                    "/fonts/afm/urw/symbol/"
+                    "/fonts/tfm/adobe/symbol/"
+                    "/fonts/tfm/urw35vf/symbol/"
+                    "/fonts/type1/urw/symbol/"
+                    "/fonts/map/dvips/symbol/"
+                    "/tex/latex/symbol/")
+              (base32
+               "01xiygb88xwi7rfvh1zrlxzi5pqb5fvylws5zzszg379iz4pyzwj")
+              #:trivial? #t))
+    (home-page "https://ctan.org/pkg/urw-base35")
+    (synopsis "URW Base 35 font pack for LaTeX")
+    (description "This package provides a drop-in replacement for the
+Symbol font from Adobe's basic set.")
+    (license license:gpl2)))
+
+(define-public texlive-mathpazo
+  (package
+    (inherit (simple-texlive-package
+              "texlive-mathpazo"
+              (list "/doc/latex/mathpazo/"
+                    "/fonts/afm/public/mathpazo/"
+                    "/fonts/tfm/public/mathpazo/"
+                    "/fonts/type1/public/mathpazo/"
+                    "/fonts/vf/public/mathpazo/")
+              (base32
+               "02in6hdnbnkz216mpy8g6fk3wmlls8nh5982vmg37vhbj77lk0rh")
+              #:trivial? #t))
+    (home-page "http://www.ctan.org/pkg/mathpazo")
+    (synopsis "Fonts to typeset mathematics to match Palatino")
+    (description "The Pazo Math fonts are a family of PostScript fonts
+suitable for typesetting mathematics in combination with the Palatino
+family of text fonts.  The Pazo Math family is made up of five fonts
+provided in Adobe Type 1 format.  These contain glyphs that are
+usually not available in Palatino and for which Computer Modern looks
+odd when combined with Palatino.  These glyphs include the uppercase
+Greek alphabet in upright and slanted shapes, the lowercase Greek
+alphabet in slanted shape, several mathematical glyphs and the
+uppercase letters commonly used to represent various number sets.
+LaTeX macro support is provided in package @code{psnfss}.")
+    (license license:gpl3+)))
+
+(define-public texlive-fpl
+  (package
+    (inherit (simple-texlive-package
+              "texlive-fpl"
+              (list "/doc/fonts/fpl/"
+                    "/source/fonts/fpl/"
+                    "/fonts/afm/public/fpl/"
+                    "/fonts/type1/public/fpl/")
+              (base32
+               "02gkl516z9kn8xqs269pdkqn37sxm8ib0pcs43s4rs2rhyyl5z68")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/fpl")
+    (synopsis "SC and OsF fonts for URW Palladio L")
+    (description "The FPL Fonts provide a set of SC/OsF fonts for URW
+Palladio L which are compatible with the Palatino SC/OsF fonts from
+Adobe.  LaTeX use is enabled by the mathpazo package, which is part of
+the @code{psnfss} distribution.")
+    ;; Either LPPL version 1.0 or later, or GPL version 2
+    (license (list license:lppl1.0+ license:gpl2))))
+
+(define-public texlive-arev
+  (package
+    (inherit (simple-texlive-package
+              "texlive-arev"
+              (list "/doc/fonts/arev/"
+                    "/fonts/afm/public/arev/"
+                    "/fonts/enc/dvips/arev/"
+                    "/fonts/map/dvips/arev/"
+                    "/fonts/tfm/public/arev/"
+                    "/fonts/type1/public/arev/"
+                    "/fonts/vf/public/arev/"
+                    "/tex/latex/arev/")
+              (base32
+               "15wkgc48r52mjpymv6l7j9bl99kwxbvg3g1mi3qyq7nfm799dkxy")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/arev")
+    (synopsis "Fonts and LaTeX support files for Arev Sans")
+    (description "The @code{arev} package provides type 1 fonts,
+virtual fonts and LaTeX packages for using Arev Sans in both text and
+mathematics.  Arev Sans is a derivative of Bitstream Vera Sans, adding
+support for Greek and Cyrillic characters and a few variant letters
+appropriate for mathematics.  The font is primarily used in LaTeX for
+presentations, particularly when using a computer projector.  Arev
+Sans has large x-height, \"open letters\", wide spacing and thick
+stems.  The style is very similar to the SliTeX font lcmss but
+heavier.  Arev is one of a very small number of sans-font mathematics
+support packages.  Others are cmbright, hvmath and kerkis.")
+    (license (list license:silofl1.1 ;for Arev Sans
+                   license:lppl1.3a  ;for TeX support files
+                   license:gpl2))))  ;for ams-mdbch.sty
+
+(define-public texlive-mathdesign
+  (package
+    (inherit (simple-texlive-package
+              "texlive-mathdesign"
+              (list "/doc/fonts/mathdesign/"
+                    "/dvips/mathdesign/"
+                    "/fonts/enc/dvips/mathdesign/"
+                    "/fonts/map/dvips/mathdesign/"
+                    "/fonts/tfm/public/mathdesign/"
+                    "/fonts/type1/public/mathdesign/"
+                    "/fonts/vf/public/mathdesign/"
+                    "/tex/latex/mathdesign/")
+              (base32
+               "0jcby2sd0l3ank2drxc0qcf5d1cwa8idzh4g91h4nxk8zrzxj8nr")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/mathdesign")
+    (synopsis "Mathematical fonts to fit with particular text fonts")
+    (description "The Math Design project offers free mathematical
+fonts that match with existing text fonts.  To date, three free font
+families are available: Adobe Utopia, URW Garamond and Bitstream
+Charter.  Mathdesign covers the whole LaTeX glyph set including AMS
+symbols.  Both roman and bold versions of these symbols can be used.
+Moreover, there is a choice between three greek fonts (two of them
+created by the Greek Font Society).")
+    (license license:gpl2+)))
+
+(define-public texlive-bera
+  (package
+    (inherit (simple-texlive-package
+              "texlive-bera"
+              (list "/doc/fonts/bera/"
+                    "/fonts/afm/public/bera/"
+                    "/fonts/map/dvips/bera/"
+                    "/fonts/tfm/public/bera/"
+                    "/fonts/type1/public/bera/"
+                    "/fonts/vf/public/bera/"
+                    "/tex/latex/bera/")
+              (base32
+               "1pkmhhr6ah44xhipjr7nianv03hr4w4bn45xcvp264yw6ymqzqwr")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/bera")
+    (synopsis "Bera fonts")
+    (description "The @code{bera} package contains the Bera Type 1
+fonts and files to use the fonts with LaTeX.  Bera is a set of three
+font families: Bera Serif (a slab-serif Roman), Bera Sans (a Frutiger
+descendant) and Bera Mono (monospaced/typewriter).  The Bera family is
+a repackaging, for use with TeX, of the Bitstream Vera family.")
+    (license license:silofl1.1)))
+
+(define-public texlive-fourier
+  (package
+    (inherit (simple-texlive-package
+              "texlive-fourier"
+              (list "/doc/fonts/fourier/"
+                    "/fonts/afm/public/fourier/"
+                    "/fonts/map/dvips/fourier/"
+                    "/fonts/tfm/public/fourier/"
+                    "/fonts/type1/public/fourier/"
+                    "/fonts/vf/public/fourier/"
+                    "/tex/latex/fourier/")
+              (base32
+               "1vs2xdx6f6hd01zlslx3y93g3dsa7k3yhqpnhgkizgjmz0r9ipz1")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/fourier")
+    (synopsis "Utopia fonts for LaTeX documents")
+    (description "Fourier-GUTenberg is a LaTeX typesetting system
+which uses Adobe Utopia as its standard base font.  Fourier-GUTenberg
+provides all complementary typefaces needed to allow Utopia based TeX
+typesetting including an extensive mathematics set and several other
+symbols.  The system is absolutely stand-alone; apart from Utopia and
+Fourier no other typefaces are required.  Utopia is a registered
+trademark of Adobe Systems Incorporated.")
+    (license license:lppl)))
+
+(define-public texlive-utopia
+  (package
+    (inherit (simple-texlive-package
+              "texlive-utopia"
+              (list "/doc/fonts/utopia/"
+                    "/fonts/afm/adobe/utopia/"
+                    "/fonts/tfm/adobe/utopia/"
+                    "/fonts/type1/adobe/utopia/"
+                    "/fonts/vf/adobe/utopia/")
+              (base32
+               "113wgkfz4z0ls2grxxfj17l42a1yv9r5ipcd0156xnfsrqvqzxfc")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/utopia")
+    (synopsis "Adobe Utopia fonts")
+    (description "The Adobe Standard Encoding set of the Utopia font
+family, as contributed to the X Consortium.  The set comprises upright
+and italic shapes in medium and bold weights.  Macro support and
+matching maths fonts are provided by the @code{fourier} and
+@code{mathdesign} font packages.")
+    (license (license:fsf-free
+              "http://mirrors.ctan.org/fonts/utopia/README"))))
+
+(define-public texlive-fontaxes
+  (package
+    (name "texlive-fontaxes")
+    (version "1.0e")
+    (source
+     (origin
+       (method svn-fetch)
+       (uri (texlive-ref "latex" "fontaxes"))
+       (file-name (string-append name "-" version "-checkout"))
+       (sha256
+        (base32
+         "19mhp9l7cjw0sbq55c9lz0l2pffkyhyir3i63jqynifjmglbgkl7"))))
+    (build-system texlive-build-system)
+    (arguments '(#:tex-directory "latex/fontaxes"))
+    (home-page "http://www.ctan.org/pkg/fontaxes")
+    (synopsis "Additional font axes for LaTeX")
+    (description "The @code{fontaxes} package adds several new font
+axes on top of LaTeX's New Font Selection Scheme (NFSS).  In
+particular, it splits the shape axis into a primary and a secondary
+shape axis and it adds three new axes to deal with the different
+figure versions offered by many professional fonts.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-mweights
+  (package
+    (inherit (simple-texlive-package
+              "texlive-mweights"
+              (list "/doc/latex/mweights/"
+                    "/tex/latex/mweights/")
+              (base32
+               "1k2xclk54q3xgn48hji23q52nivkzgwf0s30bmm6k83f7v57qv8h")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/mweights")
+    (synopsis "Support for multiple-weight font packages")
+    (description "Many font families available for use with LaTeX are
+available at multiple weights.  Many Type 1-oriented support packages
+for such fonts re-define the standard @code{\\mddefault} or
+@code{\\bfdefault} macros.  This can create difficulties if the weight
+desired for one font family is not available for another font family,
+or if it differs from the weight desired for another font family.  The
+@code{mweights} package provides a solution to these difficulties.")
+    (license license:lppl)))
+
+(define-public texlive-cabin
+  (package
+    (inherit (simple-texlive-package
+              "texlive-cabin"
+              (list "/doc/fonts/cabin/"
+                    "/fonts/enc/dvips/cabin/"
+                    "/fonts/map/dvips/cabin/"
+                    "/fonts/opentype/impallari/cabin/"
+                    "/fonts/tfm/impallari/cabin/"
+                    "/fonts/type1/impallari/cabin/"
+                    "/fonts/vf/impallari/cabin/"
+                    "/tex/latex/cabin/")
+              (base32
+               "0dfq9gqch80iyvp58spmpmqfc9h61sjvnddm81ba0af1p8ag8sfg")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/cabin")
+    (synopsis "Humanist Sans Serif font with LaTeX support")
+    (description "Cabin is a humanist sans with four weights, true
+italics and small capitals.  According to its designer, Pablo
+Impallari, Cabin was inspired by the typefaces of Edward Johnston and
+Eric Gill.  Cabin incorporates modern proportions, optical adjustments
+and some elements of the geometric sans.  @code{cabin.sty} supports
+use of the font under LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX.  It uses
+the @code{mweights} package to manage the user's view of all those
+font weights.  An @code{sfdefault} option is provided to enable Cabin
+as the default text font.  The @code{fontaxes} package is required for
+use with [pdf]LaTeX.")
+    (license (list license:silofl1.1 ;for Cabin
+                   license:lppl))))  ;for support files
+
+(define-public texlive-newtx
+  (package
+    (inherit (simple-texlive-package
+              "texlive-newtx"
+              (list "/doc/fonts/newtx/"
+                    "/fonts/afm/public/newtx/"
+                    "/fonts/enc/dvips/newtx/"
+                    "/fonts/map/dvips/newtx/"
+                    "/fonts/opentype/public/newtx/"
+                    "/fonts/tfm/public/newtx/"
+                    "/fonts/type1/public/newtx/"
+                    "/fonts/vf/public/newtx/"
+                    "/tex/latex/newtx/")
+              (base32
+               "0rqjj33m6xkhrjzjhf24kxdg61az5sqsbcl0m7xqkf4akqybn22d")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/newtx")
+    (synopsis "Repackaging of the TX fonts with improved metrics")
+    (description "The @code{newtx} bundle splits
+@code{txfonts.sty} (from the TX fonts distribution) into two
+independent packages, @code{newtxtext.sty} and @code{newtxmath.sty},
+each with fixes and enhancements.  @code{newtxmath}'s metrics have
+been re-evaluated to provide a less tight appearance and to provide a
+@code{libertine} option that substitutes Libertine italic and Greek
+letters for the existing math italic and Greek glyphs, making a
+mathematics package that matches Libertine text quite well.")
+    (license license:lppl1.3)))
+
+(define-public texlive-xcharter
+  (package
+    (inherit (simple-texlive-package
+              "texlive-xcharter"
+              (list "/doc/fonts/xcharter/"
+                    "/fonts/afm/public/xcharter/"
+                    "/fonts/enc/dvips/xcharter/"
+                    "/fonts/map/dvips/xcharter/"
+                    "/fonts/opentype/public/xcharter/"
+                    "/fonts/tfm/public/xcharter/"
+                    "/fonts/type1/public/xcharter/"
+                    "/fonts/vf/public/xcharter/"
+                    "/tex/latex/xcharter/")
+              (base32
+               "0krm4h53lw7h9jbmv5nc89fm4x7i8l574aig1l4mw8w3ziknwmi7")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/xcharter")
+    (synopsis "Extension of the Bitstream Charter fonts")
+    (description "@code{xcharter} repackages Bitstream Charter with an
+extended set of features.  The extension provides small caps, oldstyle
+figures and superior figures in all four styles, accompanied by LaTeX
+font support files.  The fonts themselves are provided in both Adobe
+Type 1 and OTF formats, with supporting files as necessary.")
+    (license (list (license:fsf-free
+                    "http://mirrors.ctan.org/fonts/xcharter/README")
+                   license:lppl1.3))))
+
+(define-public texlive-ly1
+  (package
+    (inherit (simple-texlive-package
+              "texlive-ly1"
+              (list "/doc/fonts/ly1/"
+                    "/fonts/enc/dvips/ly1/"
+                    "/fonts/map/dvips/ly1/"
+                    "/fonts/tfm/adobe/ly1/"
+                    "/fonts/vf/adobe/ly1/"
+                    "/tex/latex/ly1/")
+              (base32
+               "0wjyw0risgvrq97zfciglwy1f4msvfslln6pz0q8yzzx8wsv3zgq")
+              #:trivial? #t))
+    (home-page "https://www.ctan.org/pkg/ly1")
+    (synopsis "Support for LY1 LaTeX encoding")
+    (description "The legacy @emph{texnansi} (TeX and ANSI) encoding
+is known in the LaTeX scheme of things as @emph{LY1} encoding.  The
+@code{ly1} bundle includes metrics and LaTeX macros to use the three
+basic Adobe Type 1 fonts (Times, Helvetica and Courier) in LaTeX using
+LY1 encoding.")
+    (license license:lppl1.0+)))
+
+(define-public texlive-kastrup
+  (package
+    (name "texlive-kastrup")
+    (version (number->string %texlive-revision))
+    (source
+     (origin
+       (method svn-fetch)
+       (uri (texlive-ref "generic" "kastrup"))
+       (file-name (string-append name "-" version "-checkout"))
+       (sha256
+        (base32
+         "1kkshc48brkq2nx3rlbv78a2130izykbf33ri1q2shqr8pjfmmq8"))))
+    (build-system texlive-build-system)
+    (arguments
+     '(#:tex-directory "generic/kastrup"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-generated-file
+           (lambda _
+             (delete-file "binhex.drv")
+             #t)))))
+    (home-page "http://www.ctan.org/pkg/binhex")
+    (synopsis "Convert numbers into binary, octal and hexadecimal")
+    (description "The @code{kastrup} package provides the
+@emph{binhex.tex} file.  This file provides expandable macros for both
+fixed-width and minimum-width numbers to bases 2, 4, 8 and 16.  All
+constructs TeX accepts as arguments to its @code{\\number} primitive
+are valid as arguments for the macros.  The package may be used under
+LaTeX and plain TeX.")
+    (license (license:fsf-free "file:/binhex.dtx"))))