From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marius Bakke Subject: Re: TeX Live 2019 wanted Date: Sun, 12 Jan 2020 00:13:11 +0100 Message-ID: <87tv51y4c8.fsf@devup.no> References: <871rt6enh0.fsf@devup.no> <20191216185714.GA6488@jurong> <20191216194950.GA8280@jurong> <87tv60c8fx.fsf@devup.no> <87r213dhai.fsf@devup.no> <20191227100508.GA15022@jurong> <878smg1dsq.fsf@devup.no> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:59962) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iqPwd-0006L9-9B for guix-devel@gnu.org; Sat, 11 Jan 2020 18:13:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iqPwT-0000gO-Ef for guix-devel@gnu.org; Sat, 11 Jan 2020 18:13:27 -0500 Received: from wout3-smtp.messagingengine.com ([64.147.123.19]:59441) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iqPwS-0000aB-8d for guix-devel@gnu.org; Sat, 11 Jan 2020 18:13:17 -0500 In-Reply-To: <878smg1dsq.fsf@devup.no> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane-mx.org@gnu.org Sender: "Guix-devel" To: Andreas Enge Cc: guix-devel@gnu.org --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Marius Bakke writes: > I'll look into updating the remaining texlive packages shortly. Now this was some rocket science... The attached 9 patches updates everything (I think) to 2019.3. The only regression I found from 'master' was that "discrover" fails to find math fonts during the build process. Anything else using texlive-union appears to be in order. I get a similar error for 'asymptote' on the current master branch, but that seems to be sporadically working on Berlin? https://ci.guix.gnu.org/search?query=system%3Ax86_64-linux+asymptote I think I'll "punt" on that issue for now. Pierre, if you ever wanted to figure out the TeX Live font stuff, now is a good time! ;-) Ricardo, let me know if you spot anything odd! I'll commit this in a day or two unless there are any comments. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=texlive.patch Content-Transfer-Encoding: quoted-printable From=204c23ee4b136bfa6814a75feea1f1548fbade5d81 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 11 Jan 2020 23:36:36 +0100 Subject: [PATCH 1/9] gnu: Add ruby-hydra. * gnu/packages/ruby.scm (ruby-hydra): New public variable. =2D-- gnu/packages/ruby.scm | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 57d7fa91f3..969fc95a00 100644 =2D-- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -6,7 +6,7 @@ ;;; Copyright =C2=A9 2015, 2019 Ricardo Wurmus ;;; Copyright =C2=A9 2015, 2016, 2017 Ben Woodcroft ;;; Copyright =C2=A9 2017 ng0 =2D;;; Copyright =C2=A9 2017, 2019 Marius Bakke +;;; Copyright =C2=A9 2017, 2019, 2020 Marius Bakke ;;; Copyright =C2=A9 2017, 2018, 2019 Efraim Flashner ;;; Copyright =C2=A9 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright =C2=A9 2017 Cl=C3=A9ment Lassieur @@ -1953,6 +1953,40 @@ two hashes.") (home-page "https://github.com/liufengyun/hashdiff") (license license:expat))) =20 +(define-public ruby-hydra + ;; No releases yet. + (let ((commit "5abfa378743756ae4d9306cc134bcc482f5c9525") + (revision "0")) + (package + (name "ruby-hydra") + (version (git-version "0.0" revision commit)) + (home-page "https://github.com/hyphenation/hydra") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cik398l2765y3d9sdhjzki3303hkry58ac6jlkiy7iy62nm529f"))= )) + (build-system ruby-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'make-files-writable + (lambda _ + (for-each make-file-writable (find-files ".")) + #t)) + (replace 'check + (lambda _ + (invoke "rspec")))))) + (native-inputs + `(("ruby-rspec" ,ruby-rspec))) + (propagated-inputs + `(("ruby-byebug" ,ruby-byebug))) + (synopsis "Ruby hyphenation patterns") + (description + "ruby-hydra is a Ruby library for working with hyphenation patterns= .") + (license license:expat)))) + (define-public ruby-shindo (package (name "ruby-shindo") =2D-=20 2.24.1 From=20679f2698636f224b9c91abb87eff8ad9cf59351d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 9 Jan 2020 18:36:50 +0100 Subject: [PATCH 2/9] gnu: poppler: Update to 0.84.0. * gnu/packages/pdf.scm (poppler): Update to 0.84.0. =2D-- gnu/packages/pdf.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 368b2ce69e..32a45ed4d5 100644 =2D-- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -90,14 +90,14 @@ (define-public poppler (package (name "poppler") =2D (version "0.79.0") + (version "0.84.0") (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-" version ".tar.xz")) (sha256 (base32 =2D "1j18jlv1q6h21azb939gqjsgcbsh5qcd8dwxdmad54p5ixha91gr")))) + "0ccp2gx05cz5y04k5pgbyi4ikyq60nafa7x2yx4aaf1vfkd318f7")))) (build-system cmake-build-system) ;; FIXME: ;; use libcurl: no =2D-=20 2.24.1 From=2023b9afcc9fe608a26c13fe2f579a8accd025bb2b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 10 Jan 2020 23:49:42 +0100 Subject: [PATCH 3/9] gnu: inkscape: Fix build with Poppler 0.84. * gnu/packages/inkscape.scm (inkscape)[arguments]: Add phase 'adjust-for-new-poppler'. =2D-- gnu/packages/inkscape.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index 1ad23a92d4..0bd8b9496b 100644 =2D-- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -2,7 +2,7 @@ ;;; Copyright =C2=A9 2014 John Darrington ;;; Copyright =C2=A9 2014, 2016 Mark H Weaver ;;; Copyright =C2=A9 2016, 2018 Ricardo Wurmus =2D;;; Copyright =C2=A9 2017 Marius Bakke +;;; Copyright =C2=A9 2017, 2020 Marius Bakke ;;; Copyright =C2=A9 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. @@ -88,6 +88,19 @@ (substitute* "share/icons/application/CMakeLists.txt" (("gtk-update-icon-cache") "true")) #t)) + (add-after 'unpack 'adjust-for-new-poppler + (lambda _ + (substitute* (find-files "src/extension/internal/pdfinput") + ;; Needed for Poppler 0.82. + (("Unicode \\*u") "Unicode const *u") + ;; Needed for Poppler 0.83. + (("\\(GfxPath") "(const GfxPath") + (("GfxSubpath") "const GfxSubpath") + (("new GlobalParams\\(\\)") + "std::unique_ptr(new GlobalParams())") + (("new GlobalParams\\(poppler_datadir\\)") + "std::unique_ptr(new GlobalParams(poppler_da= tadir))")) + #t)) (add-before 'configure 'dont-use-system-includes (lambda _ ;; Don't add redundant -isystem includes which confuses GCC7. =2D-=20 2.24.1 From=20506d6762e3984945caf0141e48ffed201bb20ad5 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 9 Jan 2020 22:36:40 +0100 Subject: [PATCH 4/9] build-system/texlive: Update to texlive-2019.3, revisi= on 51265. * guix/build-system/texlive.scm (%texlive-tag): Change to "2019.3". (%texlive-revision): Change to 51265. =2D-- guix/build-system/texlive.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/build-system/texlive.scm b/guix/build-system/texlive.scm index ad99d1e2d0..8bbca0ccb7 100644 =2D-- a/guix/build-system/texlive.scm +++ b/guix/build-system/texlive.scm @@ -42,8 +42,8 @@ =20 ;; These variables specify the SVN tag and the matching SVN revision. They ;; are taken from https://www.tug.org/svn/texlive/tags/ =2D(define %texlive-tag "texlive-2018.2") =2D(define %texlive-revision 49435) +(define %texlive-tag "texlive-2019.3") +(define %texlive-revision 51265) =20 (define (texlive-origin name version locations hash) "Return an object for a TeX Live package consisting of multiple =2D-=20 2.24.1 From=20f683fdd960ec7e4e030b495147bf29b9459757b5 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 9 Jan 2020 22:37:10 +0100 Subject: [PATCH 5/9] gnu: texlive-bin: Update to 20190410. * gnu/packages/patches/texlive-bin-CVE-2018-17407.patch, gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch: Delete files. * gnu/packages/patches/texlive-bin-poppler-0.83.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/tex.scm (texlive-extra-src, texlive-texmf-src): Update to 20= 190419. (texlive-bin): Likewise. [source](patches): Update Arch patches for Poppler 0.84 compatibility. [arguments]: Remove phase 'use-code-for-even-newer-poppler'; add phase 'patch-dvisgm-build-files'. =2D-- gnu/local.mk | 3 +- .../patches/texlive-bin-CVE-2018-17407.patch | 249 --------------- .../texlive-bin-luatex-poppler-compat.patch | 293 ------------------ .../patches/texlive-bin-poppler-0.83.patch | 52 ++++ gnu/packages/tex.scm | 48 ++- 5 files changed, 74 insertions(+), 571 deletions(-) delete mode 100644 gnu/packages/patches/texlive-bin-CVE-2018-17407.patch delete mode 100644 gnu/packages/patches/texlive-bin-luatex-poppler-compat.= patch create mode 100644 gnu/packages/patches/texlive-bin-poppler-0.83.patch diff --git a/gnu/local.mk b/gnu/local.mk index 09f46b065e..fd3d434d0c 100644 =2D-- a/gnu/local.mk +++ b/gnu/local.mk @@ -1405,8 +1405,7 @@ dist_patch_DATA =3D \ %D%/packages/patches/teensy-loader-cli-help.patch \ %D%/packages/patches/teeworlds-use-latest-wavpack.patch \ %D%/packages/patches/texinfo-5-perl-compat.patch \ =2D %D%/packages/patches/texlive-bin-CVE-2018-17407.patch \ =2D %D%/packages/patches/texlive-bin-luatex-poppler-compat.patch \ + %D%/packages/patches/texlive-bin-poppler-0.83.patch \ %D%/packages/patches/telegram-purple-adjust-test.patch \ %D%/packages/patches/texi2html-document-encoding.patch \ %D%/packages/patches/texi2html-i18n.patch \ diff --git a/gnu/packages/patches/texlive-bin-CVE-2018-17407.patch b/gnu/pa= ckages/patches/texlive-bin-CVE-2018-17407.patch deleted file mode 100644 index 63646d420c..0000000000 =2D-- a/gnu/packages/patches/texlive-bin-CVE-2018-17407.patch +++ /dev/null @@ -1,249 +0,0 @@ =2DThis patch adds support for newer versions of Poppler and some upstream =2DTexLive fixes, including one for CVE-2018-17407. =2D =2DIt is taken from Linux From Scratch: =2D. =2D =2DSubmitted By: Ken Moffat =2DDate: 2018-12-26 =2DInitial Package Version: 20180414 =2DUpstream Status: Applied =2DOrigin: Upstream =2DDescription: Two fixes, cherry-picked from svn plus a CVE fix. =2DI have removed the partial fixes for various system versions of poppler. =2D =2Dr47469 Fix segfault in dvipdfm-x (XeTeX) on 1/2/4-bit transparent indexe= d PNGs. =2D =2Dr47477 Fix a ptex regression for discontinuous kinsoku table. =2D =2DAlso, via fedora (I got lost in svn) a critical fix for CVE-2018-17407 =2D =2D"A buffer overflow in the handling of Type 1 fonts allows arbitrary code =2Dexecution when a malicious font is loaded by one of the vulnerable tools: =2Dpdflatex, pdftex, dvips, or luatex." =2D =2Ddiff -Naur a/texk/dvipdfm-x/pngimage.c b/texk/dvipdfm-x/pngimage.c =2D--- a/texk/dvipdfm-x/pngimage.c 2018-02-17 08:41:35.000000000 +0000 =2D+++ b/texk/dvipdfm-x/pngimage.c 2018-10-09 01:52:01.648670875 +0100 =2D@@ -964,12 +964,16 @@ =2D png_bytep trans; =2D int num_trans; =2D png_uint_32 i; =2D+ png_byte bpc, mask, shift; =2D=20 =2D if (!png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) || =2D !png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, NULL)) { =2D WARN("%s: PNG does not have valid tRNS chunk but tRNS is requested.= ", PNG_DEBUG_STR); =2D return NULL; =2D } =2D+ bpc =3D png_get_bit_depth(png_ptr, info_ptr); =2D+ mask =3D 0xff >> (8 - bpc); =2D+ shift =3D 8 - bpc; =2D=20 =2D smask =3D pdf_new_stream(STREAM_COMPRESS); =2D dict =3D pdf_stream_dict(smask); =2D@@ -981,7 +985,8 @@ =2D pdf_add_dict(dict, pdf_new_name("ColorSpace"), pdf_new_name("DeviceGr= ay")); =2D pdf_add_dict(dict, pdf_new_name("BitsPerComponent"), pdf_new_number(8= )); =2D for (i =3D 0; i < width*height; i++) { =2D- png_byte idx =3D image_data_ptr[i]; =2D+ /* data is packed for 1/2/4 bpc formats, msb first */ =2D+ png_byte idx =3D (image_data_ptr[bpc * i / 8] >> (shift - bpc * i %= 8)) & mask; =2D smask_data_ptr[i] =3D (idx < num_trans) ? trans[idx] : 0xff; =2D } =2D pdf_add_stream(smask, (char *)smask_data_ptr, width*height); =2Ddiff -Naur a/texk/dvipsk/writet1.c b/texk/dvipsk/writet1.c =2D--- a/texk/dvipsk/writet1.c 2016-11-25 18:24:26.000000000 +0000 =2D+++ b/texk/dvipsk/writet1.c 2018-10-09 01:52:01.648670875 +0100 =2D@@ -1449,7 +1449,9 @@ =2D *(strend(t1_buf_array) - 1) =3D ' '; =2D=20 =2D t1_getline(); =2D+ alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array= ) + 1, T1_BUF_SIZE); =2D strcat(t1_buf_array, t1_line_array); =2D+ alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE); =2D strcpy(t1_line_array, t1_buf_array); =2D t1_line_ptr =3D eol(t1_line_array); =2D } =2Ddiff -Naur a/texk/web2c/luatexdir/font/writet1.w b/texk/web2c/luatexdir/= font/writet1.w =2D--- a/texk/web2c/luatexdir/font/writet1.w 2016-11-25 18:24:34.000000000 = +0000 =2D+++ b/texk/web2c/luatexdir/font/writet1.w 2018-10-09 01:52:01.648670875 = +0100 =2D@@ -1625,7 +1625,9 @@ =2D if (sscanf(p, "%i", &i) !=3D 1) { =2D strcpy(t1_buf_array, t1_line_array); =2D t1_getline(); =2D+ alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array= ) + 1, T1_BUF_SIZE); =2D strcat(t1_buf_array, t1_line_array); =2D+ alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE); =2D strcpy(t1_line_array, t1_buf_array); =2D t1_line_ptr =3D eol(t1_line_array); =2D } =2Ddiff -Naur a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexd= ir/image/pdftoepdf.w =2D--- a/texk/web2c/luatexdir/image/pdftoepdf.w 2018-01-17 18:00:12.0000000= 00 +0000 =2D+++ b/texk/web2c/luatexdir/image/pdftoepdf.w 2018-10-09 01:52:01.6486708= 75 +0100 =2D@@ -472,10 +472,10 @@ =2D break; =2D */ =2D case objString: =2D- copyString(pdf, obj->getString()); =2D+ copyString(pdf, (GooString *)obj->getString()); =2D break; =2D case objName: =2D- copyName(pdf, obj->getName()); =2D+ copyName(pdf, (char *)obj->getName()); =2D break; =2D case objNull: =2D pdf_add_null(pdf); =2Ddiff -Naur a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir= /lua/lepdflib.cc =2D--- a/texk/web2c/luatexdir/lua/lepdflib.cc 2018-02-14 14:44:38.000000000= +0000 =2D+++ b/texk/web2c/luatexdir/lua/lepdflib.cc 2018-10-09 01:52:01.649670868= +0100 =2D@@ -674,7 +674,7 @@ =2D uin =3D (udstruct *) luaL_checkudata(L, 1, M_##in); \ =2D if (uin->pd !=3D NULL && uin->pd->pc !=3D uin->pc) \ =2D pdfdoc_changed_error(L); \ =2D- gs =3D ((in *) uin->d)->function(); \ =2D+ gs =3D (GooString *)((in *) uin->d)->function(); \ =2D if (gs !=3D NULL) \ =2D lua_pushlstring(L, gs->getCString(), gs->getLength()); \ =2D else \ =2D@@ -1813,7 +1813,7 @@ =2D if (uin->pd !=3D NULL && uin->pd->pc !=3D uin->pc) =2D pdfdoc_changed_error(L); =2D if (((Object *) uin->d)->isString()) { =2D- gs =3D ((Object *) uin->d)->getString(); =2D+ gs =3D (GooString *)((Object *) uin->d)->getString(); =2D lua_pushlstring(L, gs->getCString(), gs->getLength()); =2D } else =2D lua_pushnil(L); =2Ddiff -Naur a/texk/web2c/pdftexdir/writet1.c b/texk/web2c/pdftexdir/write= t1.c =2D--- a/texk/web2c/pdftexdir/writet1.c 2016-11-25 18:24:37.000000000 +0000 =2D+++ b/texk/web2c/pdftexdir/writet1.c 2018-10-09 01:52:01.649670868 +0100 =2D@@ -1598,7 +1598,9 @@ =2D *(strend(t1_buf_array) - 1) =3D ' '; =2D=20 =2D t1_getline(); =2D+ alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array= ) + 1, T1_BUF_SIZE); =2D strcat(t1_buf_array, t1_line_array); =2D+ alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE); =2D strcpy(t1_line_array, t1_buf_array); =2D t1_line_ptr =3D eol(t1_line_array); =2D } =2Ddiff -Naur a/texk/web2c/ptexdir/ptex_version.h b/texk/web2c/ptexdir/ptex= _version.h =2D--- a/texk/web2c/ptexdir/ptex_version.h 2018-01-21 03:48:06.000000000 +0= 000 =2D+++ b/texk/web2c/ptexdir/ptex_version.h 2018-10-09 01:52:01.649670868 +0= 100 =2D@@ -1 +1 @@ =2D-#define PTEX_VERSION "p3.8.0" =2D+#define PTEX_VERSION "p3.8.1" =2Ddiff -Naur a/texk/web2c/ptexdir/tests/free_ixsp.tex b/texk/web2c/ptexdir= /tests/free_ixsp.tex =2D--- a/texk/web2c/ptexdir/tests/free_ixsp.tex 1970-01-01 01:00:00.0000000= 00 +0100 =2D+++ b/texk/web2c/ptexdir/tests/free_ixsp.tex 2018-10-09 01:52:01.6496708= 68 +0100 =2D@@ -0,0 +1,53 @@ =2D+%#!eptex -ini -etex =2D+\let\dump\relax =2D+\batchmode =2D+\input plain =2D+ =2D+\errorstopmode =2D+\catcode`@=3D11 =2D+\newcount\@tempcnta =2D+\newcount\@tempcntb =2D+\newcount\@tempcntc =2D+\mathchardef\LIM=3D256 =2D+ =2D+\def\MYCHAR#1{% =2D+ \@tempcntc=3D\numexpr7*#1+"101\relax =2D+ \@tempcnta=3D\@tempcntc\divide\@tempcnta 94 =2D+ \@tempcntb=3D\numexpr\@tempcntc-94*\@tempcnta+1\relax =2D+ \ifnum\@tempcntb<0\advance\@tempcntb94 \advance\@tempcnta-1\fi =2D+ \advance\@tempcnta18 % 18=E5=8C=BA=E4=BB=A5=E9=99=8D =2D+ \CNTA=3D\kuten\numexpr"100*\@tempcnta+\@tempcntb\relax =2D+} =2D+ =2D+\newcount\CNT\newcount\CNTA =2D+\CNT=3D0 =2D+\loop =2D+ \MYCHAR\CNT =2D+ \message{\the\CNT.} =2D+ \inhibitxspcode\CNTA=3D1\relax =2D+ \advance\CNT1\relax =2D+ \ifnum\CNT<\LIM =2D+\repeat =2D+ =2D+\newcount\CNTB =2D+ =2D+\loop =2D+ \MYCHAR\CNTB =2D+ \global\inhibitxspcode\CNTA=3D3 =2D+{% =2D+\CNT=3D0 =2D+\loop =2D+ \MYCHAR\CNT =2D+ \count@=3D\numexpr 1-\inhibitxspcode\CNTA\relax =2D+ \ifnum\count@=3D0\else\ifnum\CNTB=3D\CNT\else =2D+ \errmessage{<\the\CNTB, \the\CNT, \the\inhibitxspcode\CNTA>}\fi\fi =2D+ \advance\CNT1\relax =2D+ \ifnum\CNT<\LIM =2D+\repeat =2D+} =2D+ \MYCHAR\CNTB =2D+ \global\inhibitxspcode\CNTA=3D1\relax =2D+ \advance\CNTB1\relax =2D+ \ifnum\CNTB<\LIM =2D+\repeat =2D+\bye =2Ddiff -Naur a/texk/web2c/ptexdir/tests/free_pena.tex b/texk/web2c/ptexdir= /tests/free_pena.tex =2D--- a/texk/web2c/ptexdir/tests/free_pena.tex 1970-01-01 01:00:00.0000000= 00 +0100 =2D+++ b/texk/web2c/ptexdir/tests/free_pena.tex 2018-10-09 01:52:01.6496708= 68 +0100 =2D@@ -0,0 +1,52 @@ =2D+%#!eptex -ini -etex =2D+\let\dump\relax =2D+\batchmode =2D+\input plain =2D+ =2D+\errorstopmode =2D+\catcode`@=3D11 =2D+\newcount\@tempcnta =2D+\newcount\@tempcntb =2D+\newcount\@tempcntc =2D+\mathchardef\LIM=3D256 =2D+ =2D+\def\MYCHAR#1{% =2D+ \@tempcntc=3D\numexpr7*#1+"101\relax =2D+ \@tempcnta=3D\@tempcntc\divide\@tempcnta 94 =2D+ \@tempcntb=3D\numexpr\@tempcntc-94*\@tempcnta+1\relax =2D+ \ifnum\@tempcntb<0\advance\@tempcntb94 \advance\@tempcnta-1\fi =2D+ \advance\@tempcnta18 % 18=E5=8C=BA=E4=BB=A5=E9=99=8D =2D+ \CNTA=3D\kuten\numexpr"100*\@tempcnta+\@tempcntb\relax =2D+} =2D+ =2D+\newcount\CNT\newcount\CNTA =2D+\CNT=3D0 =2D+\loop =2D+ \MYCHAR\CNT =2D+ \message{\the\CNT.} =2D+ \prebreakpenalty\CNTA=3D\numexpr\CNT+1\relax =2D+ \advance\CNT1\relax =2D+ \ifnum\CNT<\LIM =2D+\repeat =2D+ =2D+\newcount\CNTB =2D+ =2D+\loop =2D+ \MYCHAR\CNTB =2D+ \global\prebreakpenalty\CNTA=3D0 =2D+{% =2D+\CNT=3D0 =2D+\loop =2D+ \MYCHAR\CNT =2D+ \count@=3D\numexpr -\CNT-1+\prebreakpenalty\CNTA\relax =2D+ \ifnum\count@=3D0\else\ifnum\CNTB=3D\CNT\else\errmessage{<\the\CNTB, = \the\CNT>}\fi\fi =2D+ \advance\CNT1\relax =2D+ \ifnum\CNT<\LIM =2D+\repeat =2D+} =2D+ \MYCHAR\CNTB =2D+ \global\prebreakpenalty\CNTA=3D\numexpr\CNTB+1\relax =2D+ \advance\CNTB1\relax =2D+ \ifnum\CNTB<\LIM =2D+\repeat =2D+\bye diff --git a/gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch b= /gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch deleted file mode 100644 index 024ff416af..0000000000 =2D-- a/gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch +++ /dev/null @@ -1,293 +0,0 @@ =2DFix LuaTeX compatibility with Poppler 0.75. =2D =2DUpstream LuaTeX have moved from Poppler to "pplib" and thus upstream =2Dfixes are unavailable. This is based on Archs patch, with minor =2Dtweaks to comply with texlive-bin-CVE-2018-17407.patch. =2Dhttps://git.archlinux.org/svntogit/packages.git/tree/trunk?h=3Dpackages/= texlive-bin&id=3D418dd6f008c3d41a461353fdb60f2d73d87c58ed =2D =2Ddiff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexd= ir/image/pdftoepdf.w =2D--- a/texk/web2c/luatexdir/image/pdftoepdf.w =2D+++ b/texk/web2c/luatexdir/image/pdftoepdf.w =2D@@ -363,7 +363,7 @@ void copyReal(PDF pdf, double d) =2D=20 =2D static void copyString(PDF pdf, GooString * string) =2D { =2D- char *p; =2D+ const char *p; =2D unsigned char c; =2D size_t i, l; =2D p =3D string->getCString(); =2D@@ -393,7 +393,7 @@ static void copyString(PDF pdf, GooString * string) =2D pdf->cave =3D true; =2D } =2D=20 =2D-static void copyName(PDF pdf, char *s) =2D+static void copyName(PDF pdf, const char *s) =2D { =2D pdf_out(pdf, '/'); =2D for (; *s !=3D 0; s++) { =2D@@ -412,7 +412,7 @@ static void copyArray(PDF pdf, PdfDocument * pdf_doc= , Array * array) =2D Object obj1; =2D pdf_begin_array(pdf); =2D for (i =3D 0, l =3D array->getLength(); i < l; ++i) { =2D- obj1 =3D array->getNF(i); =2D+ obj1 =3D array->getNF(i).copy(); =2D copyObject(pdf, pdf_doc, &obj1); =2D } =2D pdf_end_array(pdf); =2D@@ -425,7 +425,7 @@ static void copyDict(PDF pdf, PdfDocument * pdf_doc,= Dict * dict) =2D pdf_begin_dict(pdf); =2D for (i =3D 0, l =3D dict->getLength(); i < l; ++i) { =2D copyName(pdf, dict->getKey(i)); =2D- obj1 =3D dict->getValNF(i); =2D+ obj1 =3D dict->getValNF(i).copy(); =2D copyObject(pdf, pdf_doc, &obj1); =2D } =2D pdf_end_dict(pdf); =2D@@ -475,7 +475,7 @@ static void copyObject(PDF pdf, PdfDocument * pdf_do= c, Object * obj) =2D copyString(pdf, (GooString *)obj->getString()); =2D break; =2D case objName: =2D- copyName(pdf, (char *)obj->getName()); =2D+ copyName(pdf, obj->getName()); =2D break; =2D case objNull: =2D pdf_add_null(pdf); =2D@@ -531,22 +531,22 @@ static PDFRectangle *get_pagebox(Page * page, int = pagebox_spec) =2D { =2D switch (pagebox_spec) { =2D case PDF_BOX_SPEC_MEDIA: =2D- return page->getMediaBox(); =2D+ return (PDFRectangle *) page->getMediaBox(); =2D break; =2D case PDF_BOX_SPEC_CROP: =2D- return page->getCropBox(); =2D+ return (PDFRectangle *) page->getCropBox(); =2D break; =2D case PDF_BOX_SPEC_BLEED: =2D- return page->getBleedBox(); =2D+ return (PDFRectangle *) page->getBleedBox(); =2D break; =2D case PDF_BOX_SPEC_TRIM: =2D- return page->getTrimBox(); =2D+ return (PDFRectangle *) page->getTrimBox(); =2D break; =2D case PDF_BOX_SPEC_ART: =2D- return page->getArtBox(); =2D+ return (PDFRectangle *) page->getArtBox(); =2D break; =2D default: =2D- return page->getMediaBox(); =2D+ return (PDFRectangle *) page->getMediaBox(); =2D break; =2D } =2D } =2D@@ -788,12 +788,12 @@ void write_epdf(PDF pdf, image_dict * idict, int s= uppress_optional_info) =2D Now all relevant parts of the Page dictionary are copied. Metad= ata validity =2D check is needed(as a stream it must be indirect). =2D */ =2D- obj1 =3D pageDict->lookupNF("Metadata"); =2D+ obj1 =3D pageDict->lookupNF("Metadata").copy(); =2D if (!obj1.isNull() && !obj1.isRef()) =2D formatted_warning("pdf inclusion","/Metadata must be indirect o= bject"); =2D /* copy selected items in Page dictionary */ =2D for (i =3D 0; pagedictkeys[i] !=3D NULL; i++) { =2D- obj1 =3D pageDict->lookupNF(pagedictkeys[i]); =2D+ obj1 =3D pageDict->lookupNF(pagedictkeys[i]).copy(); =2D if (!obj1.isNull()) { =2D pdf_add_name(pdf, pagedictkeys[i]); =2D /* preserves indirection */ =2D@@ -806,13 +806,13 @@ void write_epdf(PDF pdf, image_dict * idict, int s= uppress_optional_info) =2D PDF file, climbing up the tree until the Resources are found. =2D (This fixes a problem with Scribus 1.3.3.14.) =2D */ =2D- obj1 =3D pageDict->lookupNF("Resources"); =2D+ obj1 =3D pageDict->lookupNF("Resources").copy(); =2D if (obj1.isNull()) { =2D op1 =3D &pagesobj1; =2D op2 =3D &pagesobj2; =2D *op1 =3D pageDict->lookup("Parent"); =2D while (op1->isDict()) { =2D- obj1 =3D op1->dictLookupNF("Resources"); =2D+ obj1 =3D op1->dictLookupNF("Resources").copy(); =2D if (!obj1.isNull()) { =2D pdf_add_name(pdf, "Resources"); =2D copyObject(pdf, pdf_doc, &obj1); =2Ddiff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir= /lua/lepdflib.cc =2D--- a/texk/web2c/luatexdir/lua/lepdflib.cc =2D+++ b/texk/web2c/luatexdir/lua/lepdflib.cc =2D@@ -240,7 +240,7 @@ static int l_new_Attribute(lua_State * L) =2D if (uobj->pd !=3D NULL && uobj->pd->pc !=3D uobj->pc) =2D pdfdoc_changed_error(L); =2D uout =3D new_Attribute_userdata(L); =2D- uout->d =3D new Attribute(n, nlen, (Object *)uobj->d); =2D+ uout->d =3D new Attribute((GooString)n, (Object *)uobj->d); =2D uout->atype =3D ALLOC_LEPDF; =2D uout->pc =3D uobj->pc; =2D uout->pd =3D uobj->pd; =2D@@ -496,7 +496,7 @@ static int l_new_Object(lua_State * L) =2D double numA =3D lua_tonumber(L,1); =2D double genA =3D lua_tonumber(L,2); =2D if ( ((numA)=3D=3D(int)(numA)) && ((genA)=3D=3D(int)(genA)) ){ =2D- uout->d =3D new Object((int)(numA), (int)(genA)); =2D+ uout->d =3D new Object({(int)(numA), (int)(genA)}); =2D uout->atype =3D ALLOC_LEPDF; =2D uout->pc =3D 0; =2D uout->pd =3D NULL; =2D@@ -596,7 +596,7 @@ static int m_##in##_##function(lua_State * L) = \ =2D uin =3D (udstruct *) luaL_checkudata(L, 1, M_##in); \ =2D if (uin->pd !=3D NULL && uin->pd->pc !=3D uin->pc) \ =2D pdfdoc_changed_error(L); \ =2D- o =3D ((in *) uin->d)->function(); \ =2D+ o =3D (out *) ((in *) uin->d)->function(); = \ =2D if (o !=3D NULL) { \ =2D uout =3D new_##out##_userdata(L); \ =2D uout->d =3D o; \ =2D@@ -889,7 +889,7 @@ static int m_Array_getNF(lua_State * L) =2D if (i > 0 && i <=3D len) { =2D uout =3D new_Object_userdata(L); =2D uout->d =3D new Object(); =2D- *((Object *) uout->d) =3D ((Array *) uin->d)->getNF(i - 1); =2D+ *((Object *) uout->d) =3D ((Array *) uin->d)->getNF(i - 1).copy= (); =2D uout->atype =3D ALLOC_LEPDF; =2D uout->pc =3D uin->pc; =2D uout->pd =3D uin->pd; =2D@@ -1125,12 +1125,12 @@ m_poppler_get_INT(Dict, getLength); =2D=20 =2D static int m_Dict_add(lua_State * L) =2D { =2D- char *s; =2D+ const char *s; =2D udstruct *uin, *uobj; =2D uin =3D (udstruct *) luaL_checkudata(L, 1, M_Dict); =2D if (uin->pd !=3D NULL && uin->pd->pc !=3D uin->pc) =2D pdfdoc_changed_error(L); =2D- s =3D copyString(luaL_checkstring(L, 2)); =2D+ s =3D luaL_checkstring(L, 2); =2D uobj =3D (udstruct *) luaL_checkudata(L, 3, M_Object); =2D ((Dict *) uin->d)->add(s, std::move(*((Object *) uobj->d))); =2D return 0; =2D@@ -1190,7 +1190,7 @@ static int m_Dict_lookupNF(lua_State * L) =2D s =3D luaL_checkstring(L, 2); =2D uout =3D new_Object_userdata(L); =2D uout->d =3D new Object(); =2D- *((Object *) uout->d) =3D ((Dict *) uin->d)->lookupNF(s); =2D+ *((Object *) uout->d) =3D ((Dict *) uin->d)->lookupNF(s).copy(); =2D uout->atype =3D ALLOC_LEPDF; =2D uout->pc =3D uin->pc; =2D uout->pd =3D uin->pd; =2D@@ -1263,7 +1263,7 @@ static int m_Dict_getValNF(lua_State * L) =2D if (i > 0 && i <=3D len) { =2D uout =3D new_Object_userdata(L); =2D uout->d =3D new Object(); =2D- *((Object *) uout->d) =3D ((Dict *) uin->d)->getValNF(i - 1); =2D+ *((Object *) uout->d) =3D ((Dict *) uin->d)->getValNF(i - 1).co= py(); =2D uout->atype =3D ALLOC_LEPDF; =2D uout->pc =3D uin->pc; =2D uout->pd =3D uin->pd; =2D@@ -1653,7 +1653,7 @@ static int m_Object_initRef(lua_State * L) =2D pdfdoc_changed_error(L); =2D num =3D luaL_checkint(L, 2); =2D gen =3D luaL_checkint(L, 3); =2D- *((Object *) uin->d) =3D Object(num, gen); =2D+ *((Object *) uin->d) =3D Object({num, gen}); =2D return 0; =2D } =2D=20 =2D@@ -2011,7 +2011,7 @@ static int m_Object_arrayGetNF(lua_State * L) =2D if (i > 0 && i <=3D len) { =2D uout =3D new_Object_userdata(L); =2D uout->d =3D new Object(); =2D- *((Object *) uout->d) =3D ((Object *) uin->d)->arrayGetNF(i= - 1); =2D+ *((Object *) uout->d) =3D ((Object *) uin->d)->arrayGetNF(i= - 1).copy(); =2D uout->atype =3D ALLOC_LEPDF; =2D uout->pc =3D uin->pc; =2D uout->pd =3D uin->pd; =2D@@ -2051,7 +2051,7 @@ static int m_Object_dictAdd(lua_State * L) =2D pdfdoc_changed_error(L); =2D if (!((Object *) uin->d)->isDict()) =2D luaL_error(L, "Object is not a Dict"); =2D- ((Object *) uin->d)->dictAdd(copyString(s), std::move(*((Object *) = uobj->d))); =2D+ ((Object *) uin->d)->dictAdd(s, std::move(*((Object *) uobj->d))); =2D return 0; =2D } =2D=20 =2D@@ -2104,7 +2104,7 @@ static int m_Object_dictLookupNF(lua_State * L) =2D if (((Object *) uin->d)->isDict()) { =2D uout =3D new_Object_userdata(L); =2D uout->d =3D new Object(); =2D- *((Object *) uout->d) =3D ((Object *) uin->d)->dictLookupNF(s); =2D+ *((Object *) uout->d) =3D ((Object *) uin->d)->dictLookupNF(s).= copy(); =2D uout->atype =3D ALLOC_LEPDF; =2D uout->pc =3D uin->pc; =2D uout->pd =3D uin->pd; =2D@@ -2169,7 +2169,7 @@ static int m_Object_dictGetValNF(lua_State * L) =2D if (i > 0 && i <=3D len) { =2D uout =3D new_Object_userdata(L); =2D uout->d =3D new Object(); =2D- *((Object *) uout->d) =3D ((Object *) uin->d)->dictGetValNF= (i - 1); =2D+ *((Object *) uout->d) =3D ((Object *) uin->d)->dictGetValNF= (i - 1).copy(); =2D uout->atype =3D ALLOC_LEPDF; =2D uout->pc =3D uin->pc; =2D uout->pd =3D uin->pd; =2D@@ -2470,7 +2470,7 @@ static int m_PDFDoc_getFileName(lua_State * L) =2D uin =3D (udstruct *) luaL_checkudata(L, 1, M_PDFDoc); =2D if (uin->pd !=3D NULL && uin->pd->pc !=3D uin->pc) =2D pdfdoc_changed_error(L); =2D- gs =3D ((PdfDocument *) uin->d)->doc->getFileName(); =2D+ gs =3D (GooString *) ((PdfDocument *) uin->d)->doc->getFileName(); =2D if (gs !=3D NULL) =2D lua_pushlstring(L, gs->getCString(), gs->getLength()); =2D else =2D@@ -2559,7 +2559,7 @@ static int m_PDFDoc_readMetadata(lua_State * L) =2D if (uin->pd !=3D NULL && uin->pd->pc !=3D uin->pc) =2D pdfdoc_changed_error(L); =2D if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) { =2D- gs =3D ((PdfDocument *) uin->d)->doc->readMetadata(); =2D+ gs =3D (GooString *) ((PdfDocument *) uin->d)->doc->readMetadat= a(); =2D if (gs !=3D NULL) =2D lua_pushlstring(L, gs->getCString(), gs->getLength()); =2D else =2D@@ -2577,7 +2577,7 @@ static int m_PDFDoc_getStructTreeRoot(lua_State * = L) =2D if (uin->pd !=3D NULL && uin->pd->pc !=3D uin->pc) =2D pdfdoc_changed_error(L); =2D if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) { =2D- obj =3D ((PdfDocument *) uin->d)->doc->getStructTreeRoot(); =2D+ obj =3D (StructTreeRoot *) ((PdfDocument *) uin->d)->doc->getSt= ructTreeRoot(); =2D uout =3D new_StructTreeRoot_userdata(L); =2D uout->d =3D obj; =2D uout->pc =3D uin->pc; =2D--- texlive-source/texk/web2c/luatexdir/lua/lepdflib.cc.orig 2019-04-= 24 09:41:05.090522664 +0000 =2D+++ texlive-source/texk/web2c/luatexdir/lua/lepdflib.cc 2019-04-24 09:43= :37.119184926 +0000 =2D@@ -994,7 +994,8 @@ =2D pdfdoc_changed_error(L); =2D num =3D luaL_checkint(L, 2); =2D gen =3D luaL_checkint(L, 3); =2D- i =3D ((Catalog *) uin->d)->findPage(num, gen); =2D+ Ref numgen =3D {num, gen}; =2D+ i =3D ((Catalog *) uin->d)->findPage(numgen); =2D if (i > 0) =2D lua_pushinteger(L, i); =2D else =2D@@ -2596,8 +2597,9 @@ =2D pdfdoc_changed_error(L); =2D num =3D luaL_checkint(L, 2); =2D gen =3D luaL_checkint(L, 3); =2D+ Ref numgen =3D {num, gen}; =2D if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) { =2D- i =3D ((PdfDocument *) uin->d)->doc->findPage(num, gen); =2D+ i =3D ((PdfDocument *) uin->d)->doc->findPage(numgen); =2D if (i > 0) =2D lua_pushinteger(L, i); =2D else =2D--- texlive-source/texk/web2c/luatexdir/image/pdftoepdf.w.orig 2019-04-= 24 09:56:38.406498975 +0000 =2D+++ texlive-source/texk/web2c/luatexdir/image/pdftoepdf.w 2019-04-= 24 09:56:57.020081327 +0000 =2D@@ -630,7 +630,7 @@ =2D if (link =3D=3D NULL || !link->isOk()) =2D formatted_error("pdf inclusion","invalid destination '%s'",= img_pagename(idict)); =2D Ref ref =3D link->getPageRef(); =2D- img_pagenum(idict) =3D catalog->findPage(ref.num, ref.gen); =2D+ img_pagenum(idict) =3D catalog->findPage(ref); =2D if (img_pagenum(idict) =3D=3D 0) =2D formatted_error("pdf inclusion","destination is not a page = '%s'",img_pagename(idict)); =2D delete link; diff --git a/gnu/packages/patches/texlive-bin-poppler-0.83.patch b/gnu/pack= ages/patches/texlive-bin-poppler-0.83.patch new file mode 100644 index 0000000000..5e57e3efac =2D-- /dev/null +++ b/gnu/packages/patches/texlive-bin-poppler-0.83.patch @@ -0,0 +1,52 @@ +Fix build with Poppler 0.83 and later. + +Taken from Arch Linux, but adjusted to patch the versioned Poppler +files, as upstream applies it after copying them in place. +https://git.archlinux.org/svntogit/packages.git/tree/trunk/texlive-poppler= -0.83.patch?h=3Dpackages/texlive-bin + +diff -ru texlive-source-orig/texk/web2c/pdftexdir/pdftoepdf-poppler0.76.0.= cc texlive-source/texk/web2c/pdftexdir/pdftoepdf-poppler0.76.0.cc +--- texlive-source-orig/texk/web2c/pdftexdir/pdftoepdf-poppler0.76.0.cc ++++ texlive-source/texk/web2c/pdftexdir/pdftoepdf-poppler0.76.0.cc +@@ -723,7 +723,7 @@ + #endif + // initialize + if (!isInit) { +- globalParams =3D new GlobalParams(); ++ globalParams.reset(new GlobalParams()); + globalParams->setErrQuiet(false); + isInit =3D true; + } +@@ -1108,6 +1108,5 @@ + delete_document(p); + } + // see above for globalParams +- delete globalParams; + } + } +diff -ru texlive-source-orig/texk/web2c/pdftexdir/pdftosrc-poppler0.76.0.c= c texlive-source/texk/web2c/pdftexdir/pdftosrc-poppler0.76.0.cc +--- texlive-source-orig/texk/web2c/pdftexdir/pdftosrc-poppler0.76.0.cc ++++ texlive-source/texk/web2c/pdftexdir/pdftosrc-poppler0.76.0.cc +@@ -79,7 +79,7 @@ + exit(1); + } + fileName =3D new GString(argv[1]); +- globalParams =3D new GlobalParams(); ++ globalParams.reset(new GlobalParams()); + doc =3D new PDFDoc(fileName); + if (!doc->isOk()) { + fprintf(stderr, "Invalid PDF file\n"); +@@ -100,7 +100,7 @@ + if (objnum =3D=3D 0) { + srcStream =3D catalogDict.dictLookup("SourceObject"); + static char const_SourceFile[] =3D "SourceFile"; +- if (!srcStream.isStream(const_SourceFile)) { ++ if (!srcStream.isDict(const_SourceFile)) { + fprintf(stderr, "No SourceObject found\n"); + exit(1); + } +@@ -202,5 +202,4 @@ + fprintf(stderr, "Cross-reference table extracted to %s\n", outnam= e); + fclose(outfile); + delete doc; +- delete globalParams; + } diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index e4346d1232..4ea40126ae 100644 =2D-- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -227,29 +227,29 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-= SYSTEM is used." (define texlive-extra-src (origin (method url-fetch) =2D (uri "ftp://tug.org/historic/systems/texlive/2018/texlive-20180414-e= xtra.tar.xz") + (uri "ftp://tug.org/historic/systems/texlive/2019/texlive-20190410-ext= ra.tar.xz") (sha256 (base32 =2D "0a83kymxc8zmlxjb0y1gf6mx7qnf0hxffwkivwh5yh138y2rfhsv")))) + "13ncf2an4nlqv18lki6y2p6pcsgs1i54zqkhfwprax5j53bk70j8")))) =20 (define texlive-texmf-src (origin (method url-fetch) =2D (uri "ftp://tug.org/historic/systems/texlive/2018/texlive-20180414-t= exmf.tar.xz") + (uri "ftp://tug.org/historic/systems/texlive/2019/texlive-20190410-tex= mf.tar.xz") (sha256 (base32 =2D "1b8zigzg8raxkhhzphcmynf84rbdbj2ym2qkz24v8n0qx82zmqms")))) + "00n4qh9fj8v9zzy3y488hpfq1g3dnnh72y4yjsaikfcqpi59gv62")))) =20 (define-public texlive-bin (package (name "texlive-bin") =2D (version "20180414") + (version "20190410") (source (origin (method url-fetch) =2D (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 =2D "0khyi6h015r2zfqgg0a44a2j7vmr1cy42knw7jbss237yvakc07y")) + "1dfps39q6bdr1zsbp9p74mvalmy3bycihv19sb9c6kg30kprz8nj")) (patches (let ((arch-patch (lambda (name revision hash) @@ -260,14 +260,13 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-= SYSTEM is used." "&id=3D" revision)) (file-name (string-append "texlive-bin-" name)) (sha256 (base32 hash))))) =2D (arch-revision "c4b99aba97213ea554b6592a4916d3c7394a6d7b")) =2D (append (search-patches "texlive-bin-CVE-2018-17407.patch" =2D "texlive-bin-luatex-poppler-compat.pat= ch") =2D (list =2D (arch-patch "pdftex-poppler0.76.patch" arch-revision =2D "15ypbh21amfsdxy7ca825x28lkmmkklxk1w660gpg= vzdi7s70h0b") =2D (arch-patch "xetex-poppler-fixes.patch" arch-revision =2D "1jj1p5zkjljb7id9pjv29cw0cf8mwrgrh4ackgzz9= c200vaqpsvx"))))))) + (arch-revision "49d7fe25e5ea63f136ebc20270c1d8fc9b00041c")) + (list + (arch-patch "pdftex-poppler0.76.patch" arch-revision + "03vc88dz37mjjyaspzv0fik2fp5gp8qv82114869akd1dhszbaa= x") + (search-patch "texlive-bin-poppler-0.83.patch") + (arch-patch "texlive-poppler-0.84.patch" arch-revision + "1ia6cr99krk4ipx4hdi2qdb98bh2h26mckjlpxdzrjnfhlnghks= a")))))) (build-system gnu-build-system) (inputs `(("texlive-extra-src" ,texlive-extra-src) @@ -284,7 +283,7 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-SY= STEM is used." "-checkout")) (sha256 (base32 =2D "0wrjls1y9b4k1z10l9l8w2l3yjcw7v7by2y16kchdpkiyldlkry6")))) + "1cj04svl8bpfwjr4gqfcc04rmklz3aggrxvgj7q5bxrh7c7g18xh")))) ("cairo" ,cairo) ("fontconfig" ,fontconfig) ("fontforge" ,fontforge) @@ -362,18 +361,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)) =2D (add-after 'use-code-for-new-poppler 'use-code-for-even-newer-po= ppler + (add-after 'unpack 'patch-dvisvgm-build-files (lambda _ =2D ;; Adjust for deprecated types in Poppler 0.73 and later. =2D (substitute* (append =2D (find-files "texk/web2c/luatexdir/" "\\.(cc|w)= $") =2D '("texk/web2c/pdftexdir/pdftosrc.cc")) =2D (("GBool") "bool") =2D (("gFalse") "false") =2D (("gTrue") "true") =2D (("getCString") "c_str") =2D (("Guint") "unsigned int") =2D (("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=3Dyes" all) + (string-append all "\nHAVE_LIBGS=3D1"))) #t)) (add-after 'unpack 'disable-failing-test (lambda _ =2D-=20 2.24.1 From=2099efc0cba4526f2f63365817f1d81fc65b9fd046 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 9 Jan 2020 22:38:01 +0100 Subject: [PATCH 6/9] gnu: texlive-bin: Do not build static libraries. * gnu/packages/tex.scm (texlive-bin)[arguments]: Add "--disable-static" in #:configure-flags. =2D-- gnu/packages/tex.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 4ea40126ae..442baf6ed1 100644 =2D-- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -314,7 +314,8 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-SY= STEM is used." (arguments `(#:out-of-source? #t #:configure-flags =2D `("--disable-native-texlive-build" + '("--disable-static" + "--disable-native-texlive-build" "--with-system-cairo" "--with-system-freetype2" "--with-system-gd" =2D-=20 2.24.1 From=2083a54160af4e2c0296bd2fd4ec84d7a4f5eacd04 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 9 Jan 2020 22:38:35 +0100 Subject: [PATCH 7/9] gnu: texlive-bin: Purge unused bundled software from t= he source. * gnu/packages/tex.scm (texlive-bin)[source](modules, snippet): New fields. =2D-- gnu/packages/tex.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 442baf6ed1..b3703d1c4f 100644 =2D-- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -266,7 +266,22 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-S= YSTEM is used." "03vc88dz37mjjyaspzv0fik2fp5gp8qv82114869akd1dhszbaa= x") (search-patch "texlive-bin-poppler-0.83.patch") (arch-patch "texlive-poppler-0.84.patch" arch-revision =2D "1ia6cr99krk4ipx4hdi2qdb98bh2h26mckjlpxdzrjnfhlngh= ksa")))))) + "1ia6cr99krk4ipx4hdi2qdb98bh2h26mckjlpxdzrjnfhlnghks= a")))) + (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-direct= ories)) + (eq? 'directory (stat:type (stat f= ile))))))))) + ;; TODO: Unbundle stuff in texk/dvisvgm/dvisvgm-src/libs too. + #t)))) (build-system gnu-build-system) (inputs `(("texlive-extra-src" ,texlive-extra-src) =2D-=20 2.24.1 From=20a01f0d3d1713e39a2a81f85b7ba79eb899041ac5 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 10 Jan 2020 23:05:07 +0100 Subject: [PATCH 8/9] gnu: Add texlive-hyphen-pali. * gnu/packages/tex.scm (texlive-hyphen-pali): New public variable. =2D-- gnu/packages/tex.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index b3703d1c4f..8469c3032e 100644 =2D-- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1959,6 +1959,19 @@ It ranges from the Val d'Aran within Catalunya, to t= he South Western Italian Alps encompassing the southern half of the French pentagon.") (license license:lppl1.0+))) =20 +(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 =2D-=20 2.24.1 From=202dbafac48e56b2c63e291cdfa0789e24c624cdf3 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 11 Jan 2020 23:53:40 +0100 Subject: [PATCH 9/9] gnu: TeX Live: Update packages to 2019.3. * gnu/packages/tex.scm (texlive-texmf)[version]: Set to 20190410. (texlive)[version]: Likewise. (texlive-union)[native-inputs]: Update "updmap.cfg". (texlive-latex-base)[source]: Adjust for removed files. [arguments]: Ignore one new csplain build. [native-inputs]: Update hash for "texlive-luatexconfig". [inputs]: Add TEXLIVE-HYPHEN-PALI. (texlive-hyphen-package)[native-inputs]: Add RUBY-HYDRA. [arguments]: Rewrite phases for upstream changes. In particular, the langu= age is now detected automatically, rendering the CODE parameter obsolete. (texlive-hyphen-armenian, texlive-hyphen-turkish)[arguments]: Use pre-generated patterns. (texlive-hyphen-basque, texlive-hyphen-turkmen)[arguments]: Likewise. [license]: Adjust for updated source file. (texlive-hyphen-ethiopic, texlive-hyphen-galician)[arguments, license]: Lik= ewise. [native-inputs]: Remove. (texlive-hyphen-german)[source]: Adjust for file rename. (texlive-latex-fancyvrb): Use SIMPLE-TEXLIVE-PACKAGE. (texlive-fonts-ec)[license]: Update URI. (texlive-doi, texlive-pst-text)[source]: Update paths and hash. (texlive-latex-pgf)[native-inputs]: Update "texlive-latex-pgf-generic". (texlive-generic-pdftex)[native-inputs]: Update "pdftex-map". (texlive-latex-pdfx)[native-inputs]: Update "texlive-tex-pdfx". (hyph-utf8-scripts, texlive-docstrip, texlive-unicode-data, texlive-hyphen-base, texlive-fontinst, texlive-cm, texlive-tex-plain, texlive-hyphen-afrikaans, texlive-hyphen-ancientgreek, texlive-hyphen-belarusian, texlive-hyphen-bulgarian, texlive-hyphen-catalan, texlive-hyphen-chinese, texlive-hyphen-churchslavonic, texlive-hyphen-copti= c, texlive-hyphen-croatian, texlive-hyphen-czech, texlive-hyphen-danish, texlive-hyphen-dutch, texlive-hyphen-english, texlive-hyphen-esperanto, texlive-hyphen-estonian, texlive-hyphen-finnish, texlive-hyphen-french, texlive-hyphen-friulan, texlive-hyphen-galician, texlive-hyphen-georgian, texlive-hyphen-greek, texlive-hyphen-hungarian, texlive-hyphen-icelandic, texlive-hyphen-indic, texlive-hyphen-indonesian, texlive-hyphen-interlingua, texlive-hyphen-irish, texlive-hyphen-italian, texlive-hyphen-kurmanji, texlive-hyphen-latin, texlive-hyphen-latvian, texlive-hyphen-lithuanian, texlive-hyphen-mongolian, texlive-hyphen-norwegian, texlive-hyphen-occitan, texlive-hyphen-piedmontese, texlive-hyphen-polish, texlive-hyphen-portugues= e, texlive-hyphen-romanian, texlive-hyphen-romansh, texlive-hyphen-russian, texlive-hyphen-sanskrit, texlive-hyphen-serbian, texlive-hyphen-slovak, texlive-hyphen-slovenian, texlive-hyphen-spanish, texlive-hyphen-swedish, texlive-hyphen-thai, texlive-hyphen-ukrainian, texlive-hyphen-uppersorbian, texlive-hyphen-welsh, texlive-hyph-utf8, texlive-dehyph-exptl, texlive-latex-kpathsea, texlive-latex-filecontents, texlive-latex-oberdisk, texlive-latex-tools, texlive-latex-l3kernel, texlive-latex-l3packages, texlive-latex-fontspec, texlive-latex-amsmath, texlive-latex-babel, texlive-generic-babel-german, texlive-latex-etoolbox, texlive-latex-g-brief, texlive-latex-geometry, texlive-latex-polyglossia, texlive-tex-texinfo, texlive-latex-colortbl, texlive-luatex-fancyhdr, texlive-latex-listings, texlive-latex-eso-pic, texlive-latex-enumitem, texlive-latex-multirow, texlive-latex-overpic, texlive-latex-parskip, texlive-latex-metapost, texlive-latex-acmart, texlive-fonts-media9, texlive-latex-ocgx2, texlive-latex-pgf, texlive-metapost, texlive-latex-koma-script, texlive-generic-listofitems, texlive-latex-bibtex, texlive-context-base, texlive-beamer, texlive-latex-pdfx, texlive-pstricks, texlive-tools, texlive-siunitx): Update hashes. =2D-- gnu/packages/tex.scm | 508 ++++++++++++++----------------------------- 1 file changed, 166 insertions(+), 342 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 8469c3032e..e191e619d8 100644 =2D-- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -8,7 +8,7 @@ ;;; Copyright =C2=A9 2016 Thomas Danckaert ;;; Copyright =C2=A9 2016, 2017, 2018, 2019 Ricardo Wurmus ;;; Copyright =C2=A9 2017 Leo Famulari =2D;;; Copyright =C2=A9 2017 Marius Bakke +;;; Copyright =C2=A9 2017, 2020 Marius Bakke ;;; Copyright =C2=A9 2017, 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright =C2=A9 2018 Danny Milosavljevic ;;; Copyright =C2=A9 2018 Arun Isaac @@ -143,19 +143,17 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-= SYSTEM is used." "-checkout")) (sha256 (base32 =2D "1ix8h637hwhz4vrdhilf84kzzdza0wi8fp26nh7iws0bq08sl517")))) + "0lk7shx768sxvgr85y8bnmmnj8x4bbkgpxrz3z8jp8avi33prw83")))) =20 (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 i= n use." (let ((parent (simple-texlive-package name locations hash #:trivial? #t))) (package (inherit parent) (arguments (substitute-keyword-arguments (package-arguments parent) =2D ((#:modules _ '()) =2D '((guix build gnu-build-system) =2D (guix build utils) =2D (ice-9 match))) ((#:phases phases) `(modify-phases ,phases (replace 'build @@ -168,12 +166,8 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-S= YSTEM is used." (string-append root "/tex/generic/hyph-utf8/loadh= yph")) (ptex (string-append root "/tex/generic/hyph-utf8/patte= rns/ptex")) =2D (filter-expression =2D (match ',code =2D ((? string?) =2D (format #f "\nlanguages.select!{|l| l.code = =3D=3D \"~a\"}\n" ',code)) =2D ((a b ...) =2D (format #f "\nlanguages.select!{|l| [~{\"~a\= ",~}].include? l.code }\n" ',code))))) + (quote + (string-append root "/tex/generic/hyph-utf8/patte= rns/quote"))) (mkdir "scripts") (copy-recursively (assoc-ref inputs "hyph-utf8-scripts") "scripts") @@ -182,45 +176,41 @@ copied to their outputs; otherwise the TEXLIVE-BUILD-= SYSTEM is used." (mkdir-p patterns) (mkdir-p loaders) (mkdir-p ptex) + (mkdir-p quote) =20 ;; Generate plain patterns (with-directory-excursion "scripts" =2D (substitute* "languages.rb" =2D (("../../../tex/generic/") "../tex/generic/")) =2D (substitute* "generate-plain-patterns.rb" =2D ;; Ruby 2 does not need this. =2D (("require 'unicode'") "") =2D (("Unicode.upcase\\(ch\\)") "ch.upcase") =2D ;; Write directly to the output directory =2D (("\\$path_root=3DFile.*") =2D (string-append "$path_root=3D\"" out "/share/tex= mf-dist/\"\n")) =2D ;; Create quote directory when needed =2D (("f =3D File.open\\(\"#\\{\\$path_quote\\}" m) =2D (string-append "require 'fileutils'; FileUtils.m= kdir_p $path_quote;" m)) =2D ;; Only generate patterns for this language. =2D (("languages =3D.*" m) =2D (string-append m filter-expression))) + (substitute* "lib/tex/hyphen/path.rb" + (("^([[:blank:]]+)TeXROOT =3D .*" _ indent) + (string-append indent "TeXROOT =3D \"" + (getcwd) "/..\"\n"))) + + (substitute* "generate-plain-patterns.rb" + ;; Ruby 2 does not need this. + (("require 'unicode'") "") + ;; Write directly to the output directory + (("File\\.join\\(PATH::TXT") + (string-append "File.join(\"" patterns "\"")) + ;; Create quote directory when needed + (("File\\.join\\(PATH::QUOTE") + (string-append "File.join(\"" quote "\""))) (invoke "ruby" "generate-plain-patterns.rb") =20 ;; Build pattern loaders (substitute* "generate-pattern-loaders.rb" =2D (("\\$path_tex_generic=3DFile.*") =2D (string-append "$path_tex_generic=3D\"" root "/t= ex/generic\"\n")) =2D ;; Only generate loader for this language. =2D (("languages =3D.*" m) =2D (string-append m filter-expression))) + (("File\\.join\\(PATH::LOADER") + (string-append "File.join(\"" loaders "\""))) + (invoke "ruby" "generate-pattern-loaders.rb") =20 ;; Build ptex patterns =2D (substitute* "generate-ptex-patterns.rb" =2D (("\\$path_root=3DFile.*") =2D (string-append "$path_root=3D\"" root "\"\n")) =2D ;; Only generate ptex patterns for this language. =2D (("languages =3D.*" m) =2D (string-append m filter-expression))) + (substitute* "generate-ptex-patterns.rb" + (("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")))) =20 @@ -460,7 +450,7 @@ This package contains the binaries.") "texlive-docstrip" (list "/tex/latex/base/docstrip.tex") (base32 =2D "17vdy43d9vknldz7wb69hp33r8awmdvn4xszamvgs5ikcl4cp289") + "1f9sx1lp7v34zwm186msf03q2h28rrg0lh65z59zc0cvqffs6dvb") #:trivial? #t)) (home-page "https://www.ctan.org/texlive") (synopsis "Utility to strip documentation from TeX files.") @@ -475,7 +465,7 @@ documentation from TeX files. It is part of the LaTeX = base.") (list "/tex/generic/unicode-data/" "/doc/generic/unicode-data/") (base32 =2D "1j63kz29arfiydb8r1a53q1r4zyk1yjbcq0w9i93zddczgqzgbfb") + "0zy4v9y667cka5fi4dnc6x500907812y7pcaf63s5qxi8l7khxxy") #:trivial? #t)) (home-page "https://www.ctan.org/pkg/unicode-data") (synopsis "Unicode data and loaders for TeX") @@ -508,7 +498,7 @@ out to date by @code{unicode-letters.tex}. ") "/tex/generic/hyphen/hypht1.tex" "/tex/generic/hyphen/zerohyph.tex") (base32 =2D "002g5zhzbj3ikgg8zidagdp605ac9f4qmfl148mp0mbpz1svk0ni") + "0f19nml4hdx9lh7accqdk1b9ismwfm2523l5zsc4kb4arysgcakz") #:trivial? #t)) (home-page "https://tug.org/texlive/") (synopsis "Core hyphenation support files") @@ -637,7 +627,7 @@ build fonts using the Metafont system.") =20 "/scripts/texlive/fontinst.sh") (base32 =2D "09drlb0krhnizw92xlm5wxzzpgn3shcxd684xlg0zc5p16l47w6= h") + "0lprwib7n2ygfxvrw675vhif7ghyip2x6k70kqs9syp8lqxiizf8") #:trivial? #t))) (package (inherit template) @@ -726,7 +716,7 @@ documents.") "/fonts/map/dvips/cm/cmtext-bsr-interpolated.map" "/doc/fonts/cm/") (base32 =2D "1h0q71paqmg1xjg6k35ni2i6m93kmlq9rdwm913xg9n4qngywl1= 8") + "09mvl94qrwlb9b4pkigi151l256v3djhwl4m5lgvk6yhn5y75zrp") #:trivial? #t))) (package (inherit template) @@ -1288,7 +1278,7 @@ incorporates the e-TeX extensions.") "texlive-tex-plain" (list "/tex/plain/") (base32 =2D "1rrfay4d7lbyj02wlf23mwvbpjd160nwlgryx97hq1vb7dva4swr") + "1m4qpaszwfv7j8a85rlwl7rs4iv5nlj67c1vvn6ysly72h9gjydb") #:trivial? #t)) (home-page "https://www.ctan.org/pkg/plain") (synopsis "Plain TeX format and supporting files") @@ -1304,7 +1294,7 @@ discussed in the book).") "texlive-hyphen-afrikaans" "af" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-af.tex") (base32 =2D "1vb3jccqnn1pm0680yqx52kvz595fmxnwa0cbf8qman6zglsssiw"))) + "1k9k27a27bbrb0gz36191w32l2v6d3zbdh8zhrp4l3ild2pj3n4l"))) (synopsis "Hyphenation patterns for Afrikaans") (description "The package provides hyphenation patterns for the Afrika= ans language.") @@ -1318,7 +1308,7 @@ language.") "/tex/generic/hyphen/grahyph5.tex" "/tex/generic/hyphen/ibyhyph.tex") (base32 =2D "0kwrqsz7wdr1d9kylzwp60ka3wfbj8iad029k5h6y94nb86mf7zv"))) + "01326lb6z0s8krcfgs8i1pnjfrm4gr33rc53gy80f63qbv4ssxrw"))) (synopsis "Hyphenation patterns for ancient Greek") (description "The package provides hyphenation patterns for ancient Greek.") @@ -1327,33 +1317,11 @@ Greek.") (define-public texlive-hyphen-armenian (let ((template (texlive-hyphen-package "texlive-hyphen-armenian" "hy" =2D (list "/source/generic/hyph-utf8/languages/hy/generat= e_patterns_hy.rb") + (list "/tex/generic/hyph-utf8/patterns/tex/hyph-hy.tex") (base32 =2D "0z666y580w1kpxssdanz67ykq257lf11a1mnp1jrn08zijvfrw9= c")))) + "0hzny0npynsb07syxrpbfa5pkpj8r0j51pj64yxyfl1c0bak1fwp"= )))) (package (inherit template) =2D (arguments =2D (substitute-keyword-arguments (package-arguments template) =2D ((#:phases phases) =2D `(modify-phases ,phases =2D (add-before 'build 'build-patterns =2D (lambda _ =2D (let ((target (string-append (getcwd) =2D "/tex/generic/hyph-utf8/pa= tterns/tex"))) =2D (mkdir-p target) =2D (with-directory-excursion "source/generic/hyph-utf8/l= anguages/hy/" =2D (substitute* "generate_patterns_hy.rb" =2D (("\\$file =3D File.new.*") =2D (string-append "$file =3D File.new(\"" target =2D "/hyph-hy.tex\",\"w\")\n"))) =2D (invoke "ruby" "generate_patterns_hy.rb")) =2D #t))) =2D (add-after 'install 'install-hyph-hy.tex =2D (lambda* (#:key inputs outputs #:allow-other-keys) =2D (let* ((out (assoc-ref outputs "out")) =2D (target (string-append out "/share/texmf-dist/te= x"))) =2D (copy-recursively "tex" target) =2D #t))))))) (synopsis "Hyphenation patterns for Armenian") (description "The package provides hyphenation patterns for the Arme= nian language.") @@ -1363,39 +1331,17 @@ language.") (define-public texlive-hyphen-basque (let ((template (texlive-hyphen-package "texlive-hyphen-basque" "eu" =2D (list "/source/generic/hyph-utf8/languages/eu/genera= te_patterns_eu.rb") + (list "/tex/generic/hyph-utf8/patterns/tex/hyph-eu.tex= ") (base32 =2D "1yhsbzf1g9dm70jfixsz51hsfvn26cwfkfxvhg7xv2piynr4v5= 1l")))) + "15w969g1jqzn68l2b2lzf7iv7g3kil02aba3if6cag3qcnq92ra9= ")))) (package (inherit template) =2D (arguments =2D (substitute-keyword-arguments (package-arguments template) =2D ((#:phases phases) =2D `(modify-phases ,phases =2D (add-before 'build 'build-patterns =2D (lambda _ =2D (let ((target (string-append (getcwd) =2D "/tex/generic/hyph-utf8/pa= tterns/tex"))) =2D (mkdir-p target) =2D (with-directory-excursion "source/generic/hyph-utf8/l= anguages/eu/" =2D (substitute* "generate_patterns_eu.rb" =2D (("\\$file =3D File.new.*") =2D (string-append "$file =3D File.new(\"" target =2D "/hyph-eu.tex\",\"w\")\n"))) =2D (invoke "ruby" "generate_patterns_eu.rb")) =2D #t))) =2D (add-after 'install 'install-hyph-eu.tex =2D (lambda* (#:key inputs outputs #:allow-other-keys) =2D (let* ((out (assoc-ref outputs "out")) =2D (target (string-append out "/share/texmf-dist/te= x"))) =2D (copy-recursively "tex" target) =2D #t))))))) (synopsis "Hyphenation patterns for Basque") (description "The package provides hyphenation patterns for the Basq= ue language.") =2D ;; "Free for any purpose". + ;; Similar to Unicode license. (license (license:fsf-free =2D "/source/generic/hyph-utf8/languages/eu/generate_pattern= s_eu.rb"))))) + "/tex/generic/hyph-utf8/patterns/tex/hyph-eu.tex"))))) =20 (define-public texlive-hyphen-belarusian (package @@ -1403,7 +1349,7 @@ language.") "texlive-hyphen-belarusian" "be" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-be.tex") (base32 =2D "1xvffph824rg43gi2xs3ny9gzlp708fyxj9zfhckmg8pzh9vv3n6"))) + "0ppm12wndaxv9da62dwkbnk7w9nijikn6jkc97m76xis338g2h02"))) (synopsis "Hyphenation patterns for Belarusian") (description "The package provides hyphenation patterns for the Belaru= sian language.") @@ -1417,7 +1363,7 @@ language.") "/doc/generic/hyph-utf8/bg/azbukaExtended.tex" "/tex/generic/hyph-utf8/patterns/tex/hyph-bg.tex") (base32 =2D "06dxkk9azsggbri04i6g62lswygzadsx3rpqvbyzvbxc5wxz1dj1"))) + "0ngrgw2rmipxss76rgfk62x9nnsgwmaxxna2jqxxhybai3q39mx5"))) (synopsis "Hyphenation patterns for Bulgarian") (description "The package provides hyphenation patterns for the Bulgar= ian language in T2A and UTF-8 encodings.") @@ -1431,7 +1377,7 @@ language in T2A and UTF-8 encodings.") "texlive-hyphen-catalan" "ca" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ca.tex") (base32 =2D "0cisx76jpw8kpd3an37m9h8ppiysnizgfzl48y9d9n3fvx8jyykb"))) + "10zzlfz5v8d9csg85ibpp2vfvmpqa56vbl85qy5gws099vygpayg"))) (synopsis "Hyphenation patterns for Catalan") (description "The package provides hyphenation patterns for Catalan in T1/EC and UTF-8 encodings.") @@ -1443,7 +1389,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-chinese" "zh-latn-pinyin" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-zh-latn-piny= in.tex") (base32 =2D "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.") @@ -1455,7 +1401,7 @@ Chinese pinyin T1/EC and UTF-8 encodings.") "texlive-hyphen-churchslavonic" "cu" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-cu.tex") (base32 =2D "0xkqlz3ixyl4fxsnzrbxqrb82p0n67rhgpddbiyv3qwfnbr2b5a4"))) + "0fhbwaapq2213msbhgr0d1lw06ihmrqirxj092mn73d8ynl13qlh"))) (synopsis "Hyphenation patterns for Church Slavonic") (description "The package provides hyphenation patterns for Church Slavonic in UTF-8 encoding.") @@ -1468,7 +1414,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 =2D "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.") @@ -1481,7 +1427,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 =2D "129nz2nqilyq2477n2clx20xfbxh1qxm69zg4n2f6c4d4a8711nc"))) + "12n9r2winai15jc622sqdwclgcs1s68r6vcf7ic8vvq0x9qhwc5v"))) (synopsis "Hyphenation patterns for Croatian") (description "The package provides hyphenation patterns for Croatian in T1/EC and UTF-8 encodings.") @@ -1493,7 +1439,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-czech" "cs" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-cs.tex") (base32 =2D "1k5516gbfp1d5p97j247byag9sdgds5zwc11bwxfk58i6zq1v0m6"))) + "1q37s6p8yfyi3rp1azbz421lg4lr4aiki8m631i4x9rmps89m8iq"))) (synopsis "Hyphenation patterns for Czech") (description "The package provides hyphenation patterns for Czech in T= 1/EC and UTF-8 encodings.") @@ -1505,7 +1451,7 @@ and UTF-8 encodings.") "texlive-hyphen-danish" "da" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-da.tex") (base32 =2D "0zxzs1b1723mav76i0wiyq4w82x8715cykvwa2bc60ldc2amv0vs"))) + "1vj8nip64rzcrcg3skm4vqad1ggqwgan74znrdns610wjcm1z9qd"))) (synopsis "Hyphenation patterns for Danish") (description "The package provides hyphenation patterns for Danish in T1/EC and UTF-8 encodings.") @@ -1518,7 +1464,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-dutch" "nl" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-nl.tex") (base32 =2D "0cq46cmgjc4y2x0xs9b0a5zca3jmszv4rkzmrhgjb5z2nm3xkrpi"))) + "1bg9g790ksq5cn8qihai6pacmkp9vpf35h4771z361nvwa40l8yk"))) (synopsis "Hyphenation patterns for Dutch") (description "The package provides hyphenation patterns for Dutch in T= 1/EC and UTF-8 encodings.") @@ -1531,7 +1477,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 =2D "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.") @@ -1545,7 +1491,7 @@ American and British English in ASCII encoding.") "texlive-hyphen-esperanto" "eo" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-eo.tex") (base32 =2D "03xbjbzasznsyf4wd45bya6f4snfmzpdzg5zpvqj5q6gjykdg54k"))) + "1503kzn9bk4mm4ba35cka2hm8rz0v3j5l30v5rrsd4rqgpibcgic"))) (synopsis "Hyphenation patterns for Esperanto") (description "The package provides hyphenation patterns for Esperanto = ISO Latin 3 and UTF-8 encodings.") @@ -1557,7 +1503,7 @@ Latin 3 and UTF-8 encodings.") "texlive-hyphen-estonian" "et" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-et.tex") (base32 =2D "0idl6xajkkgxqngjn19jcfd29is5rhfn59v0z8h4sv8yjv6k934m"))) + "1rdas2450ib02rwy65i69l86nyc9h15bl07xbbwhmhxfnj8zj4v8"))) (synopsis "Hyphenation patterns for Estonian") (description "The package provides hyphenation patterns for Estonian in T1/EC and UTF-8 encodings.") @@ -1567,53 +1513,17 @@ T1/EC and UTF-8 encodings.") (define-public texlive-hyphen-ethiopic (let ((template (texlive-hyphen-package "texlive-hyphen-ethiopic" "mul-ethi" =2D (list "/source/generic/hyph-utf8/languages/mul-ethi/g= enerate_patterns_mul-ethi.lua") + (list "/tex/generic/hyph-utf8/patterns/tex/hyph-mul-eth= i.tex") (base32 =2D "1dp5qn1mhv62kj27lqc7s0ca65z9bziyavkvif9ds5ivk7aq9dr= w")))) + "1b93fc6j4aybh0pgq23hsn1njm6asf7sfz803fbj3ai0whsxd10l"= )))) (package (inherit template) =2D (arguments =2D (substitute-keyword-arguments (package-arguments template) =2D ((#:phases phases) =2D `(modify-phases ,phases =2D (add-before 'build 'build-patterns =2D (lambda* (#:key inputs #:allow-other-keys) =2D (let ((tex (string-append (getcwd) =2D "/tex/generic/hyph-utf8/patte= rns/tex/"))) =2D (mkdir-p tex) =2D (with-directory-excursion "source/generic/hyph-utf8/l= anguages/mul-ethi/" =2D (substitute* "generate_patterns_mul-ethi.lua" =2D (("\"UnicodeData.txt\"") =2D (string-append "\"" =2D (assoc-ref inputs "UnicodeData.tx= t") =2D "\""))) =2D (invoke "texlua" "generate_patterns_mul-ethi.lua") =2D (rename-file "hyph-mul-ethi.tex" =2D (string-append tex "/hyph-mul-ethi.tex= ")) =2D #t)))) =2D (add-after 'install 'install-hyph-mul-ethi.tex =2D (lambda* (#:key inputs outputs #:allow-other-keys) =2D (let* ((out (assoc-ref outputs "out")) =2D (target (string-append out "/share/texmf-dist/te= x"))) =2D (copy-recursively "tex" target) =2D #t))))))) =2D (native-inputs =2D `(,@(package-native-inputs template) =2D ("texlive-bin" ,texlive-bin) =2D ("UnicodeData.txt" =2D ,(origin =2D (method url-fetch) =2D (uri (string-append "http://www.unicode.org/Public/10.0.0/u= cd/" =2D "UnicodeData.txt")) =2D (sha256 =2D (base32 =2D "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 suppo= sed to be linguistically relevant in all cases and should, for proper typograp= hy, be replaced by files tailored to individual languages.") =2D (license license:lppl)))) + (license license:expat)))) =20 (define-public texlive-hyphen-finnish (package @@ -1621,7 +1531,7 @@ be replaced by files tailored to individual languages= .") "texlive-hyphen-finnish" "fi" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-fi.tex") (base32 =2D "03n6s8dwwa5vfk9bbyhcdf7p0bc0d1rrr312hpgbz8jfc9fbgd7n"))) + "1f72b4ydb4zddvw2i004948khmwzigxkdkwfym5v1kkq0183sfpj"))) (synopsis "Hyphenation patterns for Finnish") (description "The package provides hyphenation patterns for Finnish in T1/EC and UTF-8 encodings.") @@ -1633,7 +1543,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-french" "fr" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-fr.tex") (base32 =2D "1q82mmwvy7fdkm42958ajb53w89qkcdwybswxlwcvqngvhpy3zf0"))) + "0jc3kqys6cxjw8x8pzjln7z78l8s7f5rlyrkv7dzr1kiwnwilk9d"))) (synopsis "Hyphenation patterns for French") (description "The package provides hyphenation patterns for French in T1/EC and UTF-8 encodings.") @@ -1645,7 +1555,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-friulan" "fur" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-fur.tex") (base32 =2D "07m975p0ghzs9sjqqgxy7qdkqmgvg4rx4xp08zwm1parqsdlwd5d"))) + "1dlnh8slpf50mryxv7zzbx08xp54zkdfs1j7y37ipwbrajvd740f"))) (synopsis "Hyphenation patterns for Friulan") (description "The package provides hyphenation patterns for Friulan in ASCII encodings.") @@ -1654,50 +1564,15 @@ ASCII encodings.") (define-public texlive-hyphen-galician (let ((template (texlive-hyphen-package "texlive-hyphen-galician" "gl" =2D (list "/source/generic/hyph-utf8/languages/gl/README" =2D "/source/generic/hyph-utf8/languages/gl/glhybio= x.tex" =2D "/source/generic/hyph-utf8/languages/gl/glhyext= r.tex" =2D "/source/generic/hyph-utf8/languages/gl/glhymed= .tex" =2D "/source/generic/hyph-utf8/languages/gl/glhyqui= m.tex" =2D "/source/generic/hyph-utf8/languages/gl/glhytec= .tex" =2D "/source/generic/hyph-utf8/languages/gl/glhyxeo= g.tex" =2D "/source/generic/hyph-utf8/languages/gl/glpatte= r-utf8.tex") + (list "/tex/generic/hyph-utf8/patterns/tex/hyph-gl.tex") (base32 =2D "1yj1gxhkqqlyaand5gd6ij6xwffskryzlbcigdam3871a9p8x18= w")))) + "13zx2r3nrxdr025g2lxrph0ga6wf7cs8dxixn4fhbl6xr1cx028g"= )))) (package (inherit template) =2D (arguments =2D (substitute-keyword-arguments (package-arguments template) =2D ((#:phases phases) =2D `(modify-phases ,phases =2D (add-before 'build 'build-patterns =2D (lambda* (#:key inputs #:allow-other-keys) =2D (let ((tex (string-append (getcwd) =2D "/tex/generic/hyph-utf8/patte= rns/tex/"))) =2D (mkdir-p tex) =2D (with-directory-excursion "source/generic/hyph-utf8/l= anguages/gl/" =2D (setenv "TEXINPUTS" =2D (string-append (getcwd) "//:" =2D (assoc-ref inputs "texlive-m= kpattern") "//")) =2D (invoke "tex" "-ini" "-8bit" "glpatter-utf8.tex") =2D (rename-file "hyph-gl.tex" =2D (string-append tex "/hyph-gl.tex")) =2D #t)))) =2D (add-after 'install 'install-hyph-gl.tex =2D (lambda* (#:key inputs outputs #:allow-other-keys) =2D (let* ((out (assoc-ref outputs "out")) =2D (target (string-append out "/share/texmf-dist/te= x"))) =2D (copy-recursively "tex" target) =2D #t))))))) =2D (native-inputs =2D `(,@(package-native-inputs template) =2D ("texlive-bin" ,texlive-bin) =2D ("texlive-mkpattern" ,texlive-mkpattern))) (synopsis "Hyphenation patterns for Galician") (description "The package provides hyphenation patterns for Galician= in T1/EC and UTF-8 encodings.") =2D ;; glhyextr.tex is the only file in the public domain. =2D (license (list license:lppl1.3 license:public-domain))))) + (license license:lppl1.3)))) =20 (define-public texlive-hyphen-georgian (package @@ -1705,7 +1580,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-georgian" "ka" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ka.tex") (base32 =2D "01zhn6mflpiqw4lyi8dx8syiz5mky9jrxm87cgw31hanis5cml4l"))) + "0l0hk7ka04fr8x11nnw95x151cxyycy0fph772m3a3p8qk4x9wp7"))) (synopsis "Hyphenation patterns for Georgian") (description "The package provides hyphenation patterns for Georgian in T8M, T8K, and UTF-8 encodings.") @@ -1718,12 +1593,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.t= ex" =2D "/tex/generic/hyphen/dehyphn.tex" =2D "/tex/generic/hyphen/dehypht.tex" =2D "/tex/generic/hyphen/dehyphtex.tex" =2D "/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 =2D "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 @@ -1742,7 +1617,7 @@ Swiss German.") "/tex/generic/hyphen/grmhyph5.tex" "/tex/generic/hyphen/grphyph5.tex") (base32 =2D "04626jhlrv2flgdygm7sfv6xpqhfwiavi16gy2ac04iliyk4rypg"))) + "1qyr6m1nh6d4wj68616cfxv4wjpiy1w2rlldxlx2ajzba381w3hf"))) (synopsis "Hyphenation patterns for Greek") (description "This package provides hyphenation patterns for Modern Gr= eek in monotonic and polytonic spelling in LGR and UTF-8 encodings.") @@ -1756,7 +1631,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 =2D "0c81w2569cqsi4j56azwz0lfx16541zhiqgmn3m4iwh7mpx3rji8"))) + "1j1b8kksg9r8nmjyjvvz8fr3hgcrjj6jlybf9p06nwrrwm2r8j8f"))) (synopsis "Hyphenation patterns for Hungarian") (description "This package provides hyphenation patterns for Hungarian= in T1/EC and UTF-8 encodings.") @@ -1769,7 +1644,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-icelandic" "is" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-is.tex") (base32 =2D "1ah1f82lgfhqgid4ngsfiypybx10v8gwxnb12396vfsj3bq6j0ba"))) + "1m9xj41csj3ldym09d82zjbd3345sg2z10d8pxpvhgibf97mb66h"))) (synopsis "Hyphenation patterns for Icelandic") (description "This package provides hyphenation patterns for Icelandic= in T1/EC and UTF-8 encodings.") @@ -1792,7 +1667,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 =2D "1v8zc3wdbkhzjrflndmz4gdj11syz8vrcg0vwvm5bwhkx23g91lv"))) + "02d2kcd3lpk95fykjwhzw9s2a1s2w1skz8h2mmszrz979d1xzhpm"))) (synopsis "Indic hyphenation patterns") (description "This package provides hyphenation patterns for Assamese, Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Oriya, Panjabi, Tam= il @@ -1805,7 +1680,7 @@ and Telugu for Unicode engines.") "texlive-hyphen-indonesian" "id" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-id.tex") (base32 =2D "0mf0hr9c952kb2hmzid7fqg5whshwpribbyndb3ba092wh02abh5"))) + "1r62w02rf0i4z0jgij54d16qjbj0zyfwm9dwdkqka76jrivij83q"))) (synopsis "Indonesian hyphenation patterns") (description "This package provides hyphenation patterns for Indonesian (Bahasa Indonesia) in ASCII encoding. They are probably also @@ -1818,7 +1693,7 @@ usable for Malay (Bahasa Melayu).") "texlive-hyphen-interlingua" "ia" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ia.tex") (base32 =2D "1aihgma3rix4jkc1z5k1lh6hlfrncn66yj0givd3j6xjqflafr2g"))) + "0a9na20vjnzhgjbicaxay0jk4rm5zg1rjyiswr377mjhd9mx5cg3"))) (synopsis "Interlingua hyphenation patterns") (description "This package provides hyphenation patterns for Interling= ua in ASCII encoding.") @@ -1830,7 +1705,7 @@ in ASCII encoding.") "texlive-hyphen-irish" "ga" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ga.tex") (base32 =2D "02k1fykgj3xamczjq16i9fsjjsh78pp5ypmh93p64izk2vymfwk0"))) + "1h1l9jzkpsb91nyhz6s6c9jfrbz8jx5ip8vyq3dkz0rl6g960i6b"))) (synopsis "Irish hyphenation patterns") (description "This package provides hyphenation patterns for Irish (Gaeilge) in T1/EC and UTF-8 encodings.") @@ -1843,7 +1718,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 =2D "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 @@ -1857,7 +1732,7 @@ UNI).") "texlive-hyphen-kurmanji" "kmr" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-kmr.tex") (base32 =2D "1145ykfd0b0hgklindlxdgkqmsnj3cai3cwgllz411yqmrhjc6y9"))) + "01ylbsi5wymrdrxr9b28nmjmcj72mdhqr657lwsb6m9aj33c9ql6"))) (synopsis "Kurmanji hyphenation patterns") (description "This package provides hyphenation patterns for Kurmanji (Northern Kurdish) as spoken in Turkey and by the Kurdish diaspor= a in @@ -1872,7 +1747,7 @@ Europe, in T1/EC and UTF-8 encodings.") "/tex/generic/hyph-utf8/patterns/tex/hyph-la-x-liturgi= c.tex" "/tex/generic/hyph-utf8/patterns/tex/hyph-la.tex") (base32 =2D "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 a= nd v @@ -1893,7 +1768,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-latvian" "lv" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-lv.tex") (base32 =2D "1xbh5s6nwfjbv7g4kmcpjkm02a6s767p7jn9qjcnz5ip0ndl5g66"))) + "00jf8xma4ldz0zpqwma97k9q3j0mqx7qdj6b7baph3n5xgc24aaw"))) (synopsis "Latvian hyphenation patterns") (description "This package provides hyphenation patterns for Latvian in L7X and UTF-8 encodings.") @@ -1906,7 +1781,7 @@ L7X and UTF-8 encodings.") "texlive-hyphen-lithuanian" "lt" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-lt.tex") (base32 =2D "0v9spw0qkygkihj5app2immzqqr98w81pz460bcgvj1ah35jdfsl"))) + "1kfq7j2ajg6nj952s1ygd520sj9z9kl0bqvd291a36ni2b1frzgd"))) (synopsis "Lithuanian hyphenation patterns") (description "This package provides hyphenation patterns for Lithuania= n in L7X and UTF-8 encodings.") @@ -1921,7 +1796,7 @@ L7X and UTF-8 encodings.") (list "/tex/generic/hyph-utf8/patterns/tex/hyph-mn-cyrl-x-lm= c.tex" "/tex/generic/hyph-utf8/patterns/tex/hyph-mn-cyrl.tex") (base32 =2D "0lqq3jgwgnclb1cn3x99xmk90xra9q51b00ypwy5crssmy023hqc"))) + "1y1b91ihrdl9bad3rxlsfjpd9wmyd5zzgci3qv9w8qqk33jxhwya"))) (synopsis "Mongolian hyphenation patterns in Cyrillic script") (description "This package provides hyphenation patterns for Mongolian= in T2A, LMC and UTF-8 encodings.") @@ -1936,7 +1811,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 =2D "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.") @@ -1950,7 +1825,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 =2D "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 Occi= tan @@ -1978,7 +1853,7 @@ T1/EC encoding.") "texlive-hyphen-piedmontese" "pms" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pms.tex") (base32 =2D "00fqzymkg374r3dzf1y82k6b18bqrf688vnjv0vkvw5a45srlb5r"))) + "0xva3l2gwzkqw1sz64k5g5iprhdyr27w1mv8rxp8x62i5y3aqr1k"))) (synopsis "Piedmontese hyphenation patterns") (description "This package provides hyphenation patterns for Piedmonte= se in ASCII encoding. Compliant with 'Gramatica dla lengua piemonteisa' by @@ -1991,7 +1866,7 @@ Camillo Brero.") "texlive-hyphen-polish" "pl" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pl.tex") (base32 =2D "0dzq8ca96q7m5bslh51x8d30pdb86glh2gn3mmvq5ip813ckwh3s"))) + "1c22g99isxapv4xjrmsw24hhp1xb83wbgcxyd8j24mxdnizywxzm"))) (synopsis "Polish hyphenation patterns") (description "This package provides hyphenation patterns for Polish in= QX and UTF-8 encodings.") @@ -2004,7 +1879,7 @@ and UTF-8 encodings.") "texlive-hyphen-portuguese" "pt" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-pt.tex") (base32 =2D "1waxrmm33fd2qfc4kiaiblg8kwzasrvgq4j3l14z733d0hlg4rfz"))) + "00rkjy4p7893zs940bq3s4hp7al0skgxqggj5qfax0bx8karf30b"))) (synopsis "Portuguese hyphenation patterns") (description "This package provides hyphenation patterns for Portugues= e in T1/EC and UTF-8 encodings.") @@ -2016,7 +1891,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-romanian" "ro" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ro.tex") (base32 =2D "12i1vryl51yhdpj163ahfyiy21rjmf4gkqgslpriirdjmyrwrs65"))) + "1ykb5v7ip6p3n34wq8qypfyrap4gg946by5rsl6ab0k5gv6ypsbf"))) (synopsis "Romanian hyphenation patterns") (description "This package provides hyphenation patterns for Romanian = in T1/EC and UTF-8 encodings.") @@ -2029,7 +1904,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-romansh" "rm" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-rm.tex") (base32 =2D "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 @@ -2042,7 +1917,7 @@ Lia Rumantscha (Romansh language society).") "texlive-hyphen-russian" "ru" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-ru.tex") (base32 =2D "09s4vq23x4vff08ykmf08dvcdradjzzwvyys8p2wk6jxaqp980s3"))) + "00sy7qh5f8ryxw36fwbyd1yi2hxhv7hmk99yp7dwh73n4mxv6lpl"))) (synopsis "Russian hyphenation patterns") (description "This package provides hyphenation patterns for Russian in T2A and UTF-8 encodings.") @@ -2055,7 +1930,7 @@ T2A and UTF-8 encodings.") (list "/doc/generic/hyph-utf8/sa/hyphenmin.txt" "/tex/generic/hyph-utf8/patterns/tex/hyph-sa.tex") (base32 =2D "0grnn09l4i5yridx10yhm6dg9sbhgc2pmsp1p6hrcy7lzkqwdvs3"))) + "0gi2qk0wf388h9n25gzhv0cdz67ph83wal8h3iz2sqnpdjsw8kpc"))) (synopsis "Sanskrit hyphenation patterns") (description "This package provides hyphenation patterns for Sanskrit = and Prakrit in longdesc transliteration, and in Devanagari, Bengali, Kannada, @@ -2072,7 +1947,7 @@ Malayalam longdesc and Telugu scripts for Unicode eng= ines.") "/tex/generic/hyph-utf8/patterns/tex/hyph-sh-latn.tex" "/tex/generic/hyph-utf8/patterns/tex/hyph-sr-cyrl.tex") (base32 =2D "0fhdfydyaspb8dwirlf24vn7y9dzwmhsld0mmw0fz1lmcfaj252n"))) + "0pwc9z0m5y6acq1vqm0da9akg156jbhxzvsfp2f8bsz5b99y5z45"))) (synopsis "Serbian hyphenation patterns") (description "This package provides hyphenation patterns for Serbian in T1/EC, T2A and UTF-8 encodings.") @@ -2085,7 +1960,7 @@ T1/EC, T2A and UTF-8 encodings.") "texlive-hyphen-slovak" "sk" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sk.tex") (base32 =2D "1cgw6fmyci3za3vsa49b6m74wqv582w0rpca7s9xva3hqm1m5qdg"))) + "0ppp53bbclp5c8wvx748krvrp5y5053khgkjnnv966a90fvp3vgd"))) (synopsis "Slovak hyphenation patterns") (description "This package provides hyphenation patterns for Slovak in T1/EC and UTF-8 encodings.") @@ -2097,7 +1972,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-slovenian" "sl" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sl.tex") (base32 =2D "1ixf2pxir9xf1gggq9k28xxglsq9bwqlghd9cl4amk5vrn5bjbds"))) + "02n8l9yf4hqyhbpsc1n6b2mggy09z6lq4dcb8ndiwawb6h0mp7s4"))) (synopsis "Slovenian hyphenation patterns") (description "This package provides hyphenation patterns for Slovenian= in T1/EC and UTF-8 encodings.") @@ -2113,7 +1988,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-spanish" "es" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-es.tex") (base32 =2D "0jgs0zzyk2wwrjbx2hqdh5qggrnik9xmsxygbfhlb7gdrcrs0mbj"))) + "1h3yg9vcq0lf7hxv0ahkqmyg269dxjs8m2mz8sgz5l1fxmvahvaj"))) (synopsis "Hyphenation patterns for Spanish") (description "The package provides hyphenation patterns for Spanish in T1/EC and UTF-8 encodings.") @@ -2125,7 +2000,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-swedish" "sv" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-sv.tex") (base32 =2D "12sf9f43zwyzb4cn57yry8r4zmwdc7cfdljn3qwxwrny4m3sw4w8"))) + "1n7incy7n24pix1q2i8c3h7i78zpql5ayhskavlmy6mhd7ayncaw"))) (synopsis "Swedish hyphenation patterns") (description "This package provides hyphenation patterns for Swedish in T1/EC and UTF-8 encodings.") @@ -2137,7 +2012,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-thai" "th" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-th.tex") (base32 =2D "15k1n4xdw8zzd5nrh76s53z4j95gxa4i2h1av5gx5vrjgblzzl97"))) + "00gxcs4jfqifd5cnrjipn77m73fmpw2qms4lp216jj3kz4a7h9kf"))) (synopsis "Thai hyphenation patterns") (description "This package provides hyphenation patterns for Thai in L= TH and UTF-8 encodings.") @@ -2146,33 +2021,11 @@ and UTF-8 encodings.") (define-public texlive-hyphen-turkish (let ((template (texlive-hyphen-package "texlive-hyphen-turkish" "tr" =2D (list "/source/generic/hyph-utf8/languages/tr/generat= e_patterns_tr.rb") + (list "/tex/generic/hyph-utf8/patterns/tex/hyph-tr.tex") (base32 =2D "0rvlhs2z2sn312lqsf44bzknid5dry7d2sl2q1whfvr0y4qj1g8= f")))) + "04sihjgpm31i5bi67rrfp15w3imn7hxwwk70v0vhx053ghxy72vh"= )))) (package (inherit template) =2D (arguments =2D (substitute-keyword-arguments (package-arguments template) =2D ((#:phases phases) =2D `(modify-phases ,phases =2D (add-before 'build 'build-patterns =2D (lambda _ =2D (let ((target (string-append (getcwd) =2D "/tex/generic/hyph-utf8/pa= tterns/tex"))) =2D (mkdir-p target) =2D (with-directory-excursion "source/generic/hyph-utf8/l= anguages/tr/" =2D (substitute* "generate_patterns_tr.rb" =2D (("\\$file =3D File.new.*") =2D (string-append "$file =3D File.new(\"" target =2D "/hyph-tr.tex\",\"w\")\n"))) =2D (invoke "ruby" "generate_patterns_tr.rb")) =2D #t))) =2D (add-after 'install 'install-hyph-tr.tex =2D (lambda* (#:key inputs outputs #:allow-other-keys) =2D (let* ((out (assoc-ref outputs "out")) =2D (target (string-append out "/share/texmf-dist/te= x"))) =2D (copy-recursively "tex" target) =2D #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 f= or @@ -2185,37 +2038,15 @@ compatibility with 8-bit engines.") (define-public texlive-hyphen-turkmen (let ((template (texlive-hyphen-package "texlive-hyphen-turkmen" "tk" =2D (list "/source/generic/hyph-utf8/languages/tk/generat= e_patterns_tk.rb") + (list "/tex/generic/hyph-utf8/patterns/tex/hyph-tk.tex") (base32 =2D "1wlqx8wb0wsqhdv823brc3i8w1vf4m4bkb2vg917j5dq8p8p71a= w")))) + "0g5ip2lw9g47s61mv3cypswc6qm7zy9c4iqq4h19ysvds81adzkr"= )))) (package (inherit template) =2D (arguments =2D (substitute-keyword-arguments (package-arguments template) =2D ((#:phases phases) =2D `(modify-phases ,phases =2D (add-before 'build 'build-patterns =2D (lambda _ =2D (let ((target (string-append (getcwd) =2D "/tex/generic/hyph-utf8/pa= tterns/tex"))) =2D (mkdir-p target) =2D (with-directory-excursion "source/generic/hyph-utf8/l= anguages/tk/" =2D (substitute* "generate_patterns_tk.rb" =2D (("\\$file =3D File.new.*") =2D (string-append "$file =3D File.new(\"" target =2D "/hyph-tr.tex\",\"w\")\n"))) =2D (invoke "ruby" "generate_patterns_tk.rb")) =2D #t))) =2D (add-after 'install 'install-hyph-tk.tex =2D (lambda* (#:key inputs outputs #:allow-other-keys) =2D (let* ((out (assoc-ref outputs "out")) =2D (target (string-append out "/share/texmf-dist/te= x"))) =2D (copy-recursively "tex" target) =2D #t))))))) (synopsis "Hyphenation patterns for Turkmen") (description "The package provides hyphenation patterns for Turkmen = in T1/EC and UTF-8 encodings.") =2D (license license:public-domain)))) + (license license:expat)))) =20 (define-public texlive-hyphen-ukrainian (package @@ -2223,7 +2054,7 @@ T1/EC and UTF-8 encodings.") "texlive-hyphen-ukrainian" "uk" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-uk.tex") (base32 =2D "17z0gmw5svsf5zlhjkckwk4y21g7prfwj473jlqnwcsr8a941gsf"))) + "0fbfhx1fmbshxr4ihsjaqgx251h69h7i288p8gh3w6ysgxr53p60"))) (synopsis "Ukrainian hyphenation patterns") (description "This package provides hyphenation patterns for Ukrainian= in T2A and UTF-8 encodings.") @@ -2236,7 +2067,7 @@ T2A and UTF-8 encodings.") "texlive-hyphen-uppersorbian" "hsb" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-hsb.tex") (base32 =2D "1q42s32cfbynlnzn9hpcldi77fszi5xkn1c85l8xqjmfydqbqdyi"))) + "0x0051wph3sqmzzw6prvjy6bp7gn02rbmys1bmbc210jk3pkylfj"))) (synopsis "Upper Sorbian hyphenation patterns") (description "This package provides hyphenation patterns for Upper Sor= bian in T1/EC and UTF-8 encodings.") @@ -2248,7 +2079,7 @@ in T1/EC and UTF-8 encodings.") "texlive-hyphen-welsh" "cy" (list "/tex/generic/hyph-utf8/patterns/tex/hyph-cy.tex") (base32 =2D "0h8yjj5zdg0hvpb2vx9gi376536nl59hp8w286z1a13diaayg1m2"))) + "1bpxp3jiifdw7waw2idz5j9xgi3526nkxm8mbmsspr4mlf2xyr76"))) (synopsis "Welsh hyphenation patterns") (description "This package provides hyphenation patterns for Welsh in T1/EC and UTF-8 encodings.") @@ -2277,7 +2108,7 @@ T1/EC and UTF-8 encodings.") "/doc/generic/hyph-utf8/img/miktex-languages.png" "/doc/generic/hyph-utf8/img/texlive-collection.png") (base32 =2D "10y8svgk68sivmgzrv8gv137r7kv49cs256cq2wja9ms437pxvbj"))) + "1bar5mc808ch20anhqrdxcwiych359qsvr7mggxpg2l2kq5xdyq0"))) (outputs '("out" "doc")) (build-system gnu-build-system) (arguments @@ -2410,7 +2241,7 @@ converters, will completely supplant the older patter= ns.") (list "/tex/generic/dehyph-exptl/" "/doc/generic/dehyph-exptl/") (base32 =2D "1w2danvvy2f52hcb4acvjks53kcanwxr9s990fap6mj279hpgmh2") + "1fnqc63gz8gvdyfz45bx8dxn1r1rwrypahs3bqd2vlc8ff76xp86") #:trivial? #t)) (propagated-inputs `(("texlive-hyphen-base" ,texlive-hyphen-base) @@ -2517,7 +2348,7 @@ UCY (Omega Unicode Cyrillic), LCY, LWN (OT2), and koi= 8-r.") "/web2c/tcvn-t5.tcx" "/web2c/viscii-t5.tcx") (base32 =2D "0ajfp9kr330lcm2ymr3kl9zn6y2xjkrzpa0c0azc4qdm5jllawb9") + "191i8n3g46p53bb9dkx2ggwpzy7skgg0pbklsrpx8x4ayd86wcaf") #:trivial? #t)) (home-page "https://www.tug.org/texlive/") (synopsis "Files related to the path searching library for TeX") @@ -2550,18 +2381,16 @@ formats.") ;; these are not: "/tex/latex/base/idx.tex" "/tex/latex/base/lablst.tex" =2D "/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" =2D "/tex/latex/base/source2e.tex" "/tex/latex/base/testpage.tex" "/tex/latex/base/texsys.cfg") (base32 =2D "0f8d41wk1gb7i6xq1a10drwhhayc50pg9nwzjkrqnxrv0pcc08w= 5") + "0m0gjb4hbsf2iqkkx3px4f28r2scjvsjv4zb2whkbnb44apyw1f0") #:trivial? #t))) (package (inherit template) @@ -2616,6 +2445,7 @@ formats.") '("aleph aleph" "lamed aleph" "uptex uptex" "eupte= x euptex" "eptex eptex" "ptex ptex" "pdfxmltex pdftex" "pl= atex eptex" "csplain pdftex" "mf mf-nowin" "mex pdftex" "pdf= mex pdftex" + "luacsplain luatex" "cont-en xetex" "cont-en pdftex" "pdfcsplain xet= ex" "pdfcsplain pdftex" "pdfcsplain luatex" "cslatex= pdftex" "mptopdf pdftex" "uplatex euptex" "jadetex pdfte= x" @@ -2674,7 +2504,7 @@ formats.") "/tex/generic/config/luatexiniconfig.tex" "/web2c/texmfcnf.lua") (base32 =2D "0cs67a8wwh4s5p5gn8l49jyccgy7glw8mfq5klgn3dfsl2fdlhk7"))))) + "1gi87wy12r8w8fhx9ajcid382dmqzf6b9070b5nndvbbjrvhwf23"))))) (propagated-inputs `(("texlive-dehyph-exptl" ,texlive-dehyph-exptl) ("texlive-etex" ,texlive-etex) @@ -2719,6 +2549,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) @@ -2760,7 +2591,7 @@ contain.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0swkbxv8vg0yizadfnvrwjb4cj0pn34v9wm6v7wqq903fdav7k7q"))= )) + "1h78zw0vhldx478zs4v86ajg7vpkysd1kg3npc480qqls3q6ba40")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/filecontents")) (home-page "https://www.ctan.org/pkg/filecontents") @@ -2825,19 +2656,13 @@ users, via its Plain TeX version.)") =20 (define-public texlive-latex-fancyvrb (package =2D (name "texlive-latex-fancyvrb") =2D (version (number->string %texlive-revision)) =2D (source (origin =2D (method svn-fetch) =2D (uri (texlive-ref "latex" "fancyvrb")) =2D (file-name (string-append name "-" version "-checkout")) =2D (sha256 =2D (base32 =2D "03l7140y031rr14h02i4z9zqsfvrbn7wzwxbjsrjcgrk6sdr71wv"))= )) =2D (build-system texlive-build-system) =2D (arguments =2D '(#:tex-directory "latex/fancyvrb" =2D #: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 @@ -2990,7 +2815,7 @@ pdf and HTML backends. The package is distributed wi= th the @code{backref} and (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "1m9fg8ddhpsl1212igr9a9fmj012lv780aghjn6fpidg2wqrffmn"))= )) + "0pi2d6gsddcs9wprdbar46s91kdc5fxl1m79g7xrbccsx8s9xbml")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/oberdiek" @@ -3023,7 +2848,7 @@ arrows; record information about document class(es) u= sed; and many more.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0vj7h1fgf1396h4qjdc2m07y08i54gbbfrxl8y327cn3r1n093s6"))= )) + "1wqvn4z0s92h5iqzrvxw7hinzp95avjk9v8lnqbqr4kz6nv4xb9l")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/tools" @@ -3092,7 +2917,7 @@ Live distribution.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0p3fsxap1ilwjz356aq4s5ygwvdscis8bh93g8klf8mhrd8cr2jy"))= )) + "0s77z2cbv841l45qrpf0s8qhzfa4wi689lg7zkw88qg18nzvy0ly")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/l3kernel")) @@ -3116,7 +2941,7 @@ that the LaTeX3 conventions can be used with regular = LaTeX 2e packages.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0pyx0hffiyss363vv7fkrcdiaf7p099xnq0mngzqc7v8v9q849hs"))= )) + "1cv4fk9pabh7mkxhfsdmh4k8xpmzg1psgcsvd11c869m7n3a629h")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/l3packages" @@ -3171,7 +2996,7 @@ programming tools and kernel sup=C2=ADport. Packages= provided in this release are: (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "1p0mkn6iywl0k4m9cx3hnhylpi499inisff3f72pcf349baqsnvq"))= )) + "1223cw029n6zff7pqpwbsq1x8v3w63smczkmnybqxkw5h2za8gbz")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/fontspec" @@ -3354,7 +3179,7 @@ loading fonts by their proper names instead of file n= ames.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0arvk7gn32mshnfdad5qkgf3i1arxq77k3vq7wnpm4nwnrzclxal"))= )) + "0qgk2332dacsxn1z95qzp35gbs7wrzl1ipjdhnmk1r897msm4sf5")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/amsmath")) (home-page "https://www.ctan.org/pkg/amsmath") @@ -3407,7 +3232,7 @@ distribution.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0yhlfiz3fjc8jd46f1zrjj4jig48l8rrzh8cmd8ammml8z9a01z6"))= )) + "1rwqq841i1rxywymzwkw0cw2yhgvxwjx5mgygfasvypwrwll6f6s")))) (build-system texlive-build-system) (arguments '(#:tex-directory "generic/babel" @@ -3464,7 +3289,7 @@ for Canadian and USA text.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0h47s67gnhdaxfgbf8pirp5vw4z6rrhxl8zav803yjxka0096i3y"))= )) + "129f9w41cb6yyrr6kpv3zz9ml6334hyq1wcz7j9jn47p0hlxqfk8")))) (build-system texlive-build-system) (arguments '(#:tex-directory "generic/babel-german")) (home-page "https://www.ctan.org/pkg/babel-german") @@ -3678,7 +3503,7 @@ standard LaTeX packages." (number->string %texlive-revision= ))) (sha256 (base32 =2D "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 @@ -4153,10 +3978,10 @@ to something that's not a float.") (package (inherit (simple-texlive-package "texlive-doi" =2D (list "/doc/latex/doi/README" + (list "/doc/latex/doi/README.md" "/tex/latex/doi/") (base32 =2D "17lnnhfmb8g4nh4fnyc9616h8xg3vjrzmlvfmlfqwwlfpma9xnnw") + "18z9922lqb3hliqn95h883fndqs4lgyi5yqbnq2932ya0imc3j7h") #:trivial? #t)) (home-page "https://www.ctan.org/pkg/doi") (synopsis "Create correct hyperlinks for DOI numbers") @@ -4180,7 +4005,7 @@ hyperlink to the target of the DOI.") (list "/doc/latex/etoolbox/" "/tex/latex/etoolbox/") (base32 =2D "1qg4x5r4ibinl6zy5lq70lv4zcrjsn54n6hwv31k5kl7mwv0mvr3") + "1cc1vw1ach55g4ff4x30by8k1mg01w199ccxvn72f5khlnnxial0") #:trivial? #t)) (home-page "https://www.ctan.org/pkg/etoolbox") (synopsis "e-TeX tools for LaTeX") @@ -4282,7 +4107,7 @@ course of the framed/shaded matter. There is also a = command (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0sikazkg0dpkcpzlbqw8qzxr81paf2f443vsrh14jnw7s4gswvc5"))= )) + "1br4kv9y17cvngp83ykpvy7gy3jqfan5plk7sggcgbdfhndi5dsr")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/g-brief" @@ -4355,7 +4180,7 @@ BibLaTeX, and is considered experimental.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0yw6bjfgsli3s1dldsgb7mkr7lnk329cgdjbgs8z2xn59pmmdsn4"))= )) + "0a8f38c2ds1flxcr0apdpyaaz3k6fyalz6dkbrmcv9srjc40mh3n")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/geometry")) (propagated-inputs @@ -4406,7 +4231,7 @@ array environments; verbatim handling; and syntax dia= grams.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "03ma58z3ypsbp7zgkzb1ylpn2ygr27cxzkf042ns0rif4g8s491f"))= )) + "0na7v4hsyx5s67cpjj2dbnq8j67k8lln6b19hmj631gfs27slss1")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/polyglossia")) (home-page "https://www.ctan.org/pkg/polyglossia") @@ -4452,7 +4277,7 @@ situations where longtable has problems.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "06cf821y1j7jdg93pb41ayigrfwgn0y49d7w1025zlijjxi6bvjp"))= )) + "16jy02m089m7n6v9vbfi4xjgngc1fnvsmmppk8axfwzbhdky3c9c")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -4626,7 +4451,7 @@ copy-and-paste functions work properly.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "190pmq8la2rq07xry8bn8z8yywzxv6fqyqaj7yjfj5rgw6x0mas8"))= )) + "16vd99p01a0y30xr5yf1z2j5da9x8gy21vb30wk08jh31zffbaqj")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/colortbl")) (home-page "https://www.ctan.org/pkg/colortbl") @@ -4685,7 +4510,7 @@ floats, center, flushleft, and flushright, lists, and= pages.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "1xsnzx7vgdfh9zh2m7bjz6bgdpxsgb1kyc19p50vhs34x5nbgsnr"))= )) + "0hrwspqkqfahxyzzsnjyrxlgxj06zw1f3636gx76pvl4xhvdj1cj")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -4763,7 +4588,7 @@ footnotes with symbols rather than numbers.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "1nsn9wp3wl12b36c0sqrim33lf33cr5wky0h4ncnw8lvqgm7h8wf"))= )) + "1fbrhqj22vzakn30j71fc41l8nliqbv1dmxm0zlwi2qjjbq6fwav")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/listings" @@ -4897,7 +4722,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/\ =2Dtexlive-2018.2/Master/texmf-dist/doc/fonts/ec/copyrite.txt")))) +texlive-2019.3/Master/texmf-dist/doc/fonts/ec/copyrite.txt")))) =20 ;; FIXME: the fonts should be built from source, but running "tex aefonts.= tex" ;; fails with obscure TeX-typical error messages. @@ -5092,7 +4917,7 @@ one of the packages @code{calrsfs} and @code{mathrsfs= }.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "1xvmms28mvvfpks9x7lfya2xhh5k8jy3qnlih1mzcnf156xnb89z"))= )) + "0y2y08kr3w6asm9lblj9yywqmhaal36fq71zzcbfsc7cvwf641q7")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/eso-pic")) (home-page "https://www.ctan.org/pkg/eso-pic") @@ -5154,7 +4979,7 @@ splines, and filled circles and ellipses. The packag= e uses @code{tpic} (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0q24b1bkdi9l6bw787bpggww83jh2vj8955aw2m5yccqbx4vgr5r"))= )) + "1vm9xp67hzif0pqab4r3ialf0cyhi0fa4p8kxgp1ymcf85pqip14")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -5186,7 +5011,7 @@ in the form @code{key=3Dvalue} are available, for exa= mple: (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0qlxy47f1f8plgch3jqfsnrdgpyz20sz46yp33i2jwvf9hvfczf0"))= )) + "07vbcp6avdwldr870cwf65av2s9lfyzcpp8gpld53yw6lcxgaipj")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/multirow")) (home-page "https://www.ctan.org/pkg/multirow") @@ -5211,7 +5036,7 @@ entry at the \"natural\" width of its text.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "1rpx4ibjncj5416rg19v0xjbj3z9avhfdfn2gzp8r8sz9vz25c6g"))= )) + "1pr6ym3ad7x14ng7gmhsmywh3685d2cnm5qgyrqbigng2r6fcc1k")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -5247,7 +5072,7 @@ positions; a grid for orientation is available.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "14r6h9hqb0qgccxj5l1208694fx8sb8avmgzps36lsbbpszl7i7m"))= )) + "0j1fhm1m9k6rz80lmch3x44g20y9nm4abaaf8czb0q8hzwlx5aq5")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -5598,7 +5423,7 @@ OT2 encoded fonts, CM bright shaped fonts and Concret= e shaped fonts.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0sf18pc6chgy26p9bxxn44xcqhzjrfb53jxjr2y7l3jb6xllhblq"))= )) + "1xyd57c8z1xi0kbqpbad61flcazz68i9ssxrag0gjvci3irxi8xh")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -5627,7 +5452,7 @@ than the bitmaps Metafont creates.") (uri (texlive-ref "latex" "acmart")) (sha256 (base32 =2D "0n62cs8dhcbn29y9ij1nnyigzr76yhk36kyahhqkkmvbafbys9s7")) + "18rl67p2zhngskisnhv78mksv8q8q658l6igkswzswldixmkpphq")) (file-name (string-append name "-" version "-checkout")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/acmart")) @@ -5865,7 +5690,7 @@ e-TeX.") (file-name (string-append name "-map-" version "-checkout")) (sha256 (base32 =2D "18jvcm0vwpg6wwzijvnb92xx78la45kkh71k6l44425krp2vnwm0")))))) + "03rfif2631pgd8g1ar4xblcdh078kky7fvw3kfsj5a47rxxgicp2")))))) (home-page "https://www.ctan.org/pkg/pdftex") (synopsis "TeX extension for direct creation of PDF") (description @@ -5876,7 +5701,7 @@ directly generate PDF documents instead of DVI.") (define texlive-texmf (package (name "texlive-texmf") =2D (version "20180414") + (version "20190410") (source texlive-texmf-src) (build-system gnu-build-system) (inputs @@ -5953,7 +5778,7 @@ This package contains the complete tree of texmf-dist= data.") (define-public texlive (package (name "texlive") =2D (version "20180414") + (version "20190410") (source #f) (build-system trivial-build-system) (inputs `(("bash" ,bash) ; for wrap-program @@ -6359,7 +6184,7 @@ required: automatic sectioning and pagination, spell = checking and so forth.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0lhb2h5hxjq9alpk4r3gvg21pwyifs4ah6hqzp92k55mkp1xv73j"))= )) + "0s86v2b6b1vky1svmmn8pn0l2gz3v280mvjbr2d9l2sjyarlgz9w")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -6399,7 +6224,7 @@ specification. It replaces the now obsolete @code{mo= vie15} package.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0zp00jg058djx8xp0xqwas92y3j97clkyd8z6pqr890yqy06myqb"))= )) + "1yhp51w8yr10c10pc9196q7hlw80brzqinnqbjw81d0sf2p0llc5")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -6600,7 +6425,7 @@ striking out (line through words) and crossing out (/= // over words).") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "1dq8p10pz8wn0vx412m7d7d5gj1syxly3yqdqvf7lv2xl8zndn5h")))) + "1dscrgwyr71vgx35mzb316xl669arzagfgq50fdv3nxga63959b3")))) (build-system trivial-build-system) (native-inputs `(("texlive-latex-pgf-generic" @@ -6614,7 +6439,7 @@ striking out (line through words) and crossing out (/= // over words).") (file-name (string-append "texlive-latex-pgf-generic" version "= -checkout")) (sha256 (base32 =2D "0xkxw26sjzr5npjpzpr28yygwdbhzpdd0hsk80gjpidhcxmz393i")))))) + "0hk5x2j15n4pps279cmkbjl1dvhasq3mbhna5xdvp2qgh635ahks")))))) (propagated-inputs `(("texlive-latex-xcolor" ,texlive-latex-xcolor))) (arguments @@ -6658,7 +6483,7 @@ produce either PostScript or PDF output.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0nqwf0sr4mf3v9gqa6apv6ml2xhcdwax0vgyf12a672g7rpdyvgm"))= )) + "1vz9zg7s5w52xr323zgglzprfrvba2zvyzf6b8vrdf4wdghlpv4z")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils) @@ -6718,7 +6543,7 @@ typearea (which are the main parts of the bundle).") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0hs28fc0v2l92ad9las9b8xcckyrdrwmyhcx1yzmbr6s7s6nvsx8"))= )) + "1x4wnpca97rnbvvg6wjmbkxxvnfva274q9ahzx746b435q93z3i1")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -6907,7 +6732,7 @@ AMS-LaTeX, AMS-TeX, and plain TeX). The distribution= includes Michael Barr's (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0hnbs0s1znbn32hfcsyijl39z81sdb00jf092a4blqz421qs2mbv")))) + "1wijqq605cbhn2bdaryby3xpkwmnk9ixcrjn5zwlfrxbgfblzfmz")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -6966,7 +6791,7 @@ Support for use with LaTeX is available in @code{free= nfss}, part of (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0rlx4qqijms1n64gjx475kvip8l322fh7v17zkmwp1l1g0w3vlyz"))= )) + "0d7d74giz5knvj4rj6mbzd6c05mwg9jrxab86jxdqbc3jy7cl4kz")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -6992,7 +6817,7 @@ of support information.") (list "/doc/latex/beamer/" "/tex/latex/beamer/") (base32 =2D "00z1a32wkz1ffif7dc8h3ar2fn2hlvfnljgim2szjam2k14l82x3") + "1fqzbkmw2kfxihab8j4dadc3v68xap6v2ghpp2064fna47xlwy1c") #:trivial? #t)) (propagated-inputs `(("texlive-latex-hyperref" ,texlive-latex-hyperref) @@ -7051,7 +6876,7 @@ the file to which it applies.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 =2D "0ikxg8yzq78hy5b9x13d4nah46d0yvmwlqmdri06pygbx116dcac")))) + "18294h0cr05fs424m3x6aq24z5hf5zmiflalkj4kvpmsyyqqsj74")))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/pdfx" @@ -7085,7 +6910,7 @@ the file to which it applies.") (file-name (string-append "texlive-tex-latex-pdfx-" version "-c= heckout")) (sha256 (base32 =2D "14j1zsvqc59ims3sk34v6km8db6cimks28y5fcxcr5mi2ykvj4vf")))))) + "171ffvpkj2fab4ljcxv3l6l5c8ga8zavdhmhfq07id8zyyr619ip")))))) (home-page "https://www.ctan.org/pkg/pdfx") (synopsis "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX") (description @@ -7149,7 +6974,7 @@ change.") "/tex/generic/pstricks/" "/tex/latex/pstricks/") (base32 =2D "04566354c77claxl1sznc490cda0m5gaa5ck6ms4q7mm44rj3rz= k") + "0sdxdd0qi4sccw9il7d4s7jivs24pq99cdzfnrf0gkqjb1y8s7cl") #:trivial? #t))) (package (inherit template) @@ -7173,12 +6998,11 @@ or shading the cells of tables.") (let ((template (simple-texlive-package "texlive-pst-text" (list "/doc/generic/pst-text/" =2D "/source/generic/pst-text/Makefile" "/dvips/pst-text/pst-text.pro" "/tex/generic/pst-text/" "/tex/latex/pst-text/") (base32 =2D "0s2bbkdfy0shqrrkjflrn0x0pnvxzbdc38pjbdfw46wnmnxrnas= m") + "146fpzd1xlqi94q5r48z8ni8qww713yh6nwkbr9pw27mjrqdadb9") #:trivial? #t))) (package (inherit template) @@ -7217,7 +7041,7 @@ LuaTeX (respectively) is not the engine in use.") (list "/doc/latex/tools/" "/source/latex/tools/") (base32 =2D "0v3zqcpy0w5bzy1xdcv1wnxbmxrn1j6x03h3y2af7qmjggph2a0= 9")))) + "1ivhij7171wvrgcjn4wah84wxwpd21d0chh3zxab4pj067c8d0mh"= )))) (package (inherit template) (arguments @@ -7360,7 +7184,7 @@ The behaviour in standalone mode may adjusted using a= configuration file (list "/source/latex/siunitx/siunitx.dtx" "/doc/latex/siunitx/README.md") (base32 =2D "0dmljnxgv2bwl3mi74iil41q03swvrm1b0ziwxlhc4m9lx31b1q1"))) + "11kf6znkgw7y5qmw75qk6px6pqf57bwr53q0673zaiyq20lif96c"))) (build-system texlive-build-system) (arguments '(#:tex-directory "latex/siunitx" =2D-=20 2.24.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl4aVocACgkQoqBt8qM6 VPq7UggAnjbGpLn13X1X2OKcOQqPSGa8nxWdqO548Zyx5SZoI/62ncG86VJOYGvZ vKweq8sbKKBzKC3TUlValzx2Vy+qmIiOH4cWJOz6Gzo2Z4h2eY2M4B5u9yAcTlXg U0eFSVOaKXzTpQLYaZNOY1JuJUQExGV0qqjZnEM+ZXqHzSYOLEOA4OUKNFRu0v0X I2MX8oGNpxcGBhE1VEMHVTJjtUsN/64pH0+0rXmg/rYFmN62mL5lWI7B1vks1E0+ weNylEbA0NHnkofMuPEt0zP+DiUpAXG40t34m0njQNl7Wii6vSGrlzZhwTG3AS4J sHcJxuSkliPicCqU+83uUj58jZm5mQ== =LDVs -----END PGP SIGNATURE----- --==-=-=--