From 9d913b251be14f36ec6660b3375758ed191bc2e2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 4 Jun 2017 12:23:07 +0200 Subject: gnu: Add texlive-dvips. * gnu/packages/tex.scm (%texlive-tag, %texlive-revision, texlive-dvips): New variables. --- gnu/packages/tex.scm | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 7839e16b27..b1adec5d99 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Federico Beffa ;;; Copyright © 2016 Thomas Danckaert -;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +32,7 @@ #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (guix git-download) + #:use-module (guix svn-download) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages bash) @@ -179,6 +180,44 @@ This package contains the binaries.") (license (license:fsf-free "https://www.tug.org/texlive/copying.html")) (home-page "https://www.tug.org/texlive/"))) +;; These variables specify the SVN tag and the matching SVN revision. +(define %texlive-tag "texlive-2017.0") +(define %texlive-revision 44445) + +(define-public texlive-dvips + (package + (name "texlive-dvips") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/dvips")) + (revision %texlive-revision))) + (sha256 + (base32 + "1k11yvz4q95bxyxczwvd4r177h6a2gg03xmf51kmgjgz8an2gq2w")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/dvips"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/dvips") + (synopsis "DVI to PostScript drivers") + (description "This package provides files needed for converting DVI files +to PostScript.") + ;; Various free software licenses apply to individual files. + (license (list license:lppl1.3c+ + license:expat + license:lgpl3+)))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 99952c538b5931bca814b47d840ce83e41e46f4e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 4 Jun 2017 18:25:02 +0200 Subject: gnu: Add texlive-generic-unicode-data. * gnu/packages/tex.scm (texlive-generic-unicode-date): New variable. --- gnu/packages/tex.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index b1adec5d99..9e05eee516 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -218,6 +218,44 @@ to PostScript.") license:expat license:lgpl3+)))) +(define-public texlive-generic-unicode-data + (package + (name "texlive-generic-unicode-data") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/generic/unicode-data")) + (revision %texlive-revision))) + (sha256 + (base32 + "0ivrhp6jz31pl4z841g4ws41lmvdiwz4sslmhf02inlib79gz6r2")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/generic/unicode-data"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://www.ctan.org/pkg/unicode-data") + (synopsis "Unicode data and loaders for TeX") + (description "This bundle provides generic access to Unicode Consortium +data for TeX use. It contains a set of text files provided by the Unicode +Consortium which are currently all from Unicode 8.0.0, with the exception of +@code{MathClass.txt} which is not currently part of the Unicode Character +Database. Accompanying these source data are generic TeX loader files +allowing this data to be used as part of TeX runs, in particular in building +format files. Currently there are two loader files: one for general character +set up and one for initializing XeTeX character classes as has been carried +out to date by @code{unicode-letters.tex}. ") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 9e99b1b41ba007124861092ad4bd0995e25abd2a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 02:57:11 +0200 Subject: gnu: Add texlive-generic-dehyph-exptl. * gnu/packages/tex.scm (texlive-generic-dehyph-exptl): New variable. --- gnu/packages/tex.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 9e05eee516..7e4d29be53 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -256,6 +256,41 @@ set up and one for initializing XeTeX character classes as has been carried out to date by @code{unicode-letters.tex}. ") (license license:lppl1.3c+))) +(define-public texlive-generic-dehyph-exptl + (package + (name "texlive-generic-dehyph-exptl") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/generic/dehyph-exptl")) + (revision %texlive-revision))) + (sha256 + (base32 + "1l9wgv99qq0ysvlxqpj4g8bl0dywbzra4g8m2kmpg2fb0i0hczap")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/generic/dehyph-exptl"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://projekte.dante.de/Trennmuster/WebHome") + (synopsis "Hyphenation patterns for German") + (description "The package provides experimental hyphenation patterns for +the German language, covering both traditional and reformed orthography. The +patterns can be used with packages Babel and hyphsubst from the Oberdiek +bundle.") + ;; Hyphenation patterns are under the Expat license; documentation is + ;; under LPPL. + (license (list license:expat license:lppl)))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 453aae663b9f601093755f4fa89a342a361c6ded Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 02:57:47 +0200 Subject: gnu: Add texlive-generic-tex-ini-files. * gnu/packages/tex.scm (texlive-generic-tex-ini-files): New variable. --- gnu/packages/tex.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 7e4d29be53..b798590fe7 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -291,6 +291,40 @@ bundle.") ;; under LPPL. (license (list license:expat license:lppl)))) +(define-public texlive-generic-tex-ini-files + (package + (name "texlive-generic-tex-ini-files") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/generic/tex-ini-files")) + (revision %texlive-revision))) + (sha256 + (base32 + "1wh42n1lmzcvi3g6mm31nm3yd5ha5bl260xqc444jg1m9fdp3wz5")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/generic/tex-ini-files"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://ctan.org/pkg/tex-ini-files") + (synopsis "Files for creating TeX formats") + (description "This bundle provides a collection of model \".ini\" files +for creating TeX formats. These files are commonly used to introduced +distribution-dependent variations in formats. They are also used to +allow existing format source files to be used with newer engines, for example +to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.") + (license license:public-domain))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 9b134da86a67487ded9495d4aac84fc95b1d9bd4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 02:58:16 +0200 Subject: gnu: Add texlive-generic-hyph-utf8. * gnu/packages/tex.scm (texlive-generic-hyph-utf8): New variable. --- gnu/packages/tex.scm | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index b798590fe7..20b5a35baf 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -325,6 +325,62 @@ allow existing format source files to be used with newer engines, for example to adapt the plain e-TeX source file to work with XeTeX and LuaTeX.") (license license:public-domain))) +(define-public texlive-generic-hyph-utf8 + (package + (name "texlive-generic-hyph-utf8") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/generic/hyph-utf8")) + (revision %texlive-revision))) + (sha256 + (base32 + "0ghizcz7ps16dzfqf66wwg5i181assc6qsm0g7g5dbmp909931vi")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/generic/hyph-utf8"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "http://ctan.org/pkg/hyph-utf8") + (synopsis "Hyphenation patterns expressed in UTF-8") + (description "Modern native UTF-8 engines such as XeTeX and LuaTeX need +hyphenation patterns in UTF-8 format, whereas older systems require +hyphenation patterns in the 8-bit encoding of the font in use (such encodings +are codified in the LaTeX scheme with names like OT1, T2A, TS1, OML, LY1, +etc). The present package offers a collection of conversions of existing +patterns to UTF-8 format, together with converters for use with 8-bit fonts in +older systems. Since hyphenation patterns for Knuthian-style TeX systems are +only read at iniTeX time, it is hoped that the UTF-8 patterns, with their +converters, will completely supplant the older patterns.") + ;; Individual files each have their own license. Most of these files are + ;; independent hyphenation patterns. + (license (list license:lppl1.0+ + license:lppl1.2+ + license:lppl1.3 + license:lppl1.3+ + license:lppl1.3a+ + license:lgpl2.1 + license:lgpl2.1+ + license:lgpl3+ + license:gpl2+ + license:gpl3+ + license:mpl1.1 + license:asl2.0 + license:expat + license:bsd-3 + license:cc0 + license:public-domain + license:wtfpl2)))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 8ada0f0b3a16390486d83502f35d46d603fe393a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 4 Jun 2017 12:34:02 +0200 Subject: gnu: Add texlive-metafont-base. * gnu/packages/tex.scm (texlive-metafont-base): New variable. --- gnu/packages/tex.scm | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 20b5a35baf..5a92b3ed14 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -381,6 +381,57 @@ converters, will completely supplant the older patterns.") license:public-domain license:wtfpl2)))) +(define-public texlive-metafont-base + (package + (name "texlive-metafont-base") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/metafont")) + (revision %texlive-revision))) + (sha256 + (base32 + "1yl4n8cn5xqk2nc22zgzq6ymd7bhm6xx1mz3azip7i3ki4bhb5q5")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no test target + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((cwd (getcwd))) + (setenv "MFINPUTS" + (string-append cwd "/base:" + cwd "/misc:" + cwd "/roex:" + cwd "/feynmf:" + cwd "/mfpic:" + cwd "/config"))) + (mkdir "build") + (with-directory-excursion "build" + (zero? (system* "inimf" "mf.mf"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (base (string-append out "/share/texmf-dist/web2c")) + (mf (string-append out "/share/texmf-dist/metafont/base"))) + (mkdir-p base) + (mkdir-p mf) + (install-file "build/mf.base" base) + (copy-recursively "base" mf) + #t)))))) + (native-inputs + `(("texlive-bin" ,texlive-bin))) + (home-page "http://www.ctan.org/pkg/metafont") + (synopsis "Metafont base files") + (description "This package provides the Metafont base files needed to +build fonts using the Metafont system.") + (license license:knuth))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 3c4f1ec754caa9082f8e6e6937790f1c331b6baf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 4 Jun 2017 15:46:07 +0200 Subject: gnu: Add texlive-fonts-cm. * gnu/packages/tex.scm (texlive-fonts-cm): New variable. --- gnu/packages/tex.scm | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 5a92b3ed14..f3aef6fc4d 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -432,6 +432,74 @@ converters, will completely supplant the older patterns.") build fonts using the Metafont system.") (license license:knuth))) +(define-public texlive-fonts-cm + (package + (name "texlive-fonts-cm") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/source/public/cm")) + (revision %texlive-revision))) + (sha256 + (base32 + "045k5b9rdmbxpy1a3006l1x96z1rd18vg3cwrvnld9bqybw5qz44")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26)) + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((mf (assoc-ref inputs "texlive-metafont-base"))) + ;; Tell mf where to find mf.base + (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c")) + ;; Tell mf where to look for source files + (setenv "MFINPUTS" + (string-append (getcwd) ":" + mf "/share/texmf-dist/metafont/base"))) + (mkdir "build") + (every (lambda (font) + (format #t "building font ~a\n" font) + (zero? (system* "mf" "-progname=mf" + "-output-directory=build" + (string-append "\\" + "mode:=ljfour; " + "mag:=1; " + "batchmode; " + "input " + (basename font ".mf"))))) + (find-files "." "cm(.*[0-9]+.*|inch)\\.mf$")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (tfm (string-append + out "/share/texmf-dist/fonts/tfm/public/cm")) + (mf (string-append + out "/share/texmf-dist/fonts/source/public/cm"))) + (for-each (cut install-file <> tfm) + (find-files "build" "\\.*")) + (for-each (cut install-file <> mf) + (find-files "." "\\.mf")) + #t)))))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("texlive-metafont-base" ,texlive-metafont-base))) + (home-page "http://www.ctan.org/pkg/cm") + (synopsis "Computer Modern fonts for TeX") + (description "This package provides the Computer Modern fonts by Donald +Knuth. The Computer Modern font family is a large collection of text, +display, and mathematical fonts in a range of styles, based on Monotype Modern +8A.") + (license license:knuth))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 5ebba61a295443951e9954fe1bfea411e645c530 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 03:03:48 +0200 Subject: gnu: Add texlive-fonts-knuth-lib. * gnu/packages/tex.scm (texlive-fonts-knuth-lib): New variable. --- gnu/packages/tex.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index f3aef6fc4d..41e48d76d0 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -500,6 +500,69 @@ display, and mathematical fonts in a range of styles, based on Monotype Modern 8A.") (license license:knuth))) +(define-public texlive-fonts-knuth-lib + (package + (name "texlive-fonts-knuth-lib") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/source/public/knuth-lib")) + (revision %texlive-revision))) + (sha256 + (base32 + "0in9aqyi8jkyf9d16z0li50z5fpwj1iwgwm83gmvwqcf7chfs04y")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((mf (assoc-ref inputs "texlive-metafont-base"))) + ;; Tell mf where to find mf.base + (setenv "MFBASES" + (string-append mf "/share/texmf-dist/web2c")) + ;; Tell mf where to look for source files + (setenv "MFINPUTS" + (string-append (getcwd) ":" + mf "/share/texmf-dist/metafont/base"))) + (mkdir "build") + (zero? (system* "mf" "-progname=mf" + "-output-directory=build" + (string-append "\\" + "mode:=ljfour; " + "mag:=1; " + "batchmode; " + "input manfnt"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (tfm (string-append + out "/share/texmf-dist/fonts/tfm/public/knuth-lib")) + (mf (string-append + out "/share/texmf-dist/fonts/source/public/knuth-lib"))) + (for-each (cut install-file <> tfm) + (find-files "build" "\\.*")) + (for-each (cut install-file <> mf) + (find-files "." "\\.mf")) + #t)))))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("texlive-metafont-base" ,texlive-metafont-base))) + (home-page "https://www.ctan.org/pkg/knuth-lib") + (synopsis "Small library of METAFONT sources") + (description "This is a collection of core TeX and METAFONT macro files +from Donald Knuth, including the plain format, plain base, and the MF logo +fonts.") + (license license:knuth))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From a00d593315cc14b1cce86f92cf992d10207562ed Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 4 Jun 2017 15:47:17 +0200 Subject: gnu: Add texlive-fonts-latex. * gnu/packages/tex.scm (texlive-fonts-latex): New variable. --- gnu/packages/tex.scm | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 41e48d76d0..8b6bfe6fac 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -563,6 +563,80 @@ from Donald Knuth, including the plain format, plain base, and the MF logo fonts.") (license license:knuth))) +(define-public texlive-fonts-latex + (package + (name "texlive-fonts-latex") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/fonts/source/public/latex-fonts")) + (revision %texlive-revision))) + (sha256 + (base32 + "0ypsm4xv9cw0jckk2qc7gi9hcmhf31mrg56pz3llyx3yd9vq2lps")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26)) + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((mf (assoc-ref inputs "texlive-metafont-base"))) + ;; Tell mf where to find mf.base + (setenv "MFBASES" (string-append mf "/share/texmf-dist/web2c")) + ;; Tell mf where to look for source files + (setenv "MFINPUTS" + (string-append (getcwd) ":" + mf "/share/texmf-dist/metafont/base:" + (assoc-ref inputs "texlive-fonts-cm") + "/share/texmf-dist/fonts/source/public/cm"))) + (mkdir "build") + (every (lambda (font) + (format #t "building font ~a\n" font) + (zero? (system* "mf" "-progname=mf" + "-output-directory=build" + (string-append "\\" + "mode:=ljfour; " + "mag:=1; " + "batchmode; " + "input " font)))) + '("icmcsc10" "icmex10" "icmmi8" "icmsy8" "icmtt8" + "ilasy8" "ilcmss8" "ilcmssb8" "ilcmssi8" + "lasy5" "lasy6" "lasy7" "lasy8" "lasy9" "lasy10" "lasyb10" + "lcircle10" "lcirclew10" "lcmss8" "lcmssb8" "lcmssi8" + "line10" "linew10")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (tfm (string-append + out "/share/texmf-dist/fonts/tfm/public/latex-fonts")) + (mf (string-append + out "/share/texmf-dist/fonts/source/public/latex-fonts"))) + (for-each (cut install-file <> tfm) + (find-files "build" "\\.*")) + (for-each (cut install-file <> mf) + (find-files "." "\\.mf")) + #t)))))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("texlive-metafont-base" ,texlive-metafont-base) + ("texlive-fonts-cm" ,texlive-fonts-cm))) + (home-page "http://www.ctan.org/pkg/latex-fonts") + (synopsis "Collection of fonts used in LaTeX distributions") + (description "This is a collection of fonts for use with standard LaTeX +packages and classes. It includes invisible fonts (for use with the slides +class), line and circle fonts (for use in the picture environment) and LaTeX +symbol fonts.") + (license license:lppl1.2+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 566e95f7a84cdff440349be074d42a6b250785ca Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 09:26:00 +0200 Subject: gnu: Add texlive-tex-plain. * gnu/packages/tex.scm (texlive-tex-plain): New variable. --- gnu/packages/tex.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 8b6bfe6fac..294225c4cb 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -637,6 +637,41 @@ class), line and circle fonts (for use in the picture environment) and LaTeX symbol fonts.") (license license:lppl1.2+))) +;; This provides etex.src which is needed to build various formats, including +;; luatex.fmt and pdflatex.fmt +(define-public texlive-tex-plain + (package + (name "texlive-tex-plain") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/plain")) + (revision %texlive-revision))) + (sha256 + (base32 + "1ifmbyl3ir8k0v1g25xjb5rcyy5vhj8a3fa2088nczga09hna5vn")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/plain"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "https://www.ctan.org/pkg/plain") + (synopsis "Plain TeX format and supporting files") + (description + "Contains files used to build the Plain TeX format, as described in the +TeXbook, together with various supporting files (some also discussed in the +book).") + (license license:knuth))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 010f476fda242aa6f05384aee88ba7d37979213f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 10:48:40 +0200 Subject: gnu: Add texlive-latex-base. * gnu/packages/tex.scm (texlive-latex-base): New variable. (texlive-ref): New procedure. --- gnu/packages/tex.scm | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 294225c4cb..9c791ffa10 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -672,6 +672,153 @@ TeXbook, together with various supporting files (some also discussed in the book).") (license license:knuth))) +(define (texlive-ref component id) + "Return a object for the package ID, which is part of the +given Texlive COMPONENT." + (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "source/" component "/" id)) + (revision %texlive-revision))) + +(define-public texlive-latex-base + (let ((texlive-dir + (lambda (dir hash) + (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + dir)) + (revision %texlive-revision))) + (sha256 (base32 hash)))))) + (package + (name "texlive-latex-base") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "base")) + (sha256 + (base32 + "1h9pir2hz6i9avc4lrl733p3zf4rpkg8537x1zdbhs91hvhikw9k")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 match) + (srfi srfi-1) + (srfi srfi-26)) + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + ;; Find required fonts + (setenv "TFMFONTS" + (string-append (assoc-ref inputs "texlive-fonts-cm") + "/share/texmf-dist/fonts/tfm/public/cm:" + (assoc-ref inputs "texlive-fonts-latex") + "/share/texmf-dist/fonts/tfm/public/latex-fonts:" + (assoc-ref inputs "texlive-fonts-knuth-lib") + "/share/texmf-dist/fonts/tfm/public/knuth-lib")) + (setenv "TEXINPUTS" + (string-append + (getcwd) ":" + (getcwd) "/build:" + (string-join + (append-map (match-lambda + ((_ . dir) + (find-files dir + (lambda (_ stat) + (eq? 'directory (stat:type stat))) + #:directories? #t + #:stat stat))) + inputs) + ":"))) + + ;; Create an empty texsys.cfg, because latex.ltx wants to include + ;; it. This file must exist and it's fine if it's empty. + (with-output-to-file "texsys.cfg" + (lambda _ (format #t "%"))) + + (mkdir "build") + (mkdir "web2c") + (and (zero? (system* "luatex" "-ini" "-interaction=batchmode" + "-output-directory=build" + "unpack.ins")) + ;; LaTeX and XeTeX require e-TeX, which is enabled only in + ;; extended mode (activated with a leading asterisk). We + ;; should not use luatex here, because that would make the + ;; generated format files incompatible with any other TeX + ;; engine. + + ;; FIXME: XeTeX fails to build because neither + ;; \XeTeXuseglyphmetrics nor \XeTeXdashbreakstate are + ;; defined. + (every + (lambda (format) + (zero? (system* "latex" "-ini" "-interaction=batchmode" + "-output-directory=web2c" + "-translate-file=cp227.tcx" + (string-append "*" format ".ini")))) + '("latex" ;"xetex" + )) + (every + (lambda (format) + (zero? (system* "luatex" "-ini" "-interaction=batchmode" + "-output-directory=web2c" + (string-append format ".ini")))) + '("dviluatex" "dvilualatex" "luatex" "lualatex" "xelatex"))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (target (string-append + out "/share/texmf-dist/tex/latex/base")) + (web2c (string-append + out "/share/texmf-dist/web2c"))) + (mkdir-p target) + (mkdir-p web2c) + (for-each delete-file (find-files "." "\\.(log|aux)$")) + (for-each (cut install-file <> target) + (find-files "build" ".*")) + (for-each (cut install-file <> web2c) + (find-files "web2c" ".*")) + #t)))))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("texlive-generic-unicode-data" ,texlive-generic-unicode-data) + ("texlive-generic-dehyph-exptl" ,texlive-generic-dehyph-exptl) + ("texlive-generic-tex-ini-files" ,texlive-generic-tex-ini-files) + ("texlive-latex-latexconfig" + ,(texlive-dir "tex/latex/latexconfig/" + "1zb3j49cj8p75yph6c8iysjp7qbdvghwf0mn9j0l7qq3qkbz2xaf")) + ("texlive-generic-hyph-utf8" ,texlive-generic-hyph-utf8) + ("texlive-generic-hyphen" + ,(texlive-dir "tex/generic/hyphen/" + "0xim36wybw2625yd0zwlp9m2c2xrcybw58gl4rih9nkph0wqwwhd")) + ("texlive-generic-ruhyphen" + ,(texlive-dir "tex/generic/ruhyphen/" + "14rjkpl4zkjqs13rcf9kcd24mn2kx7i1jbdwxq8ds94bi66ylzsd")) + ("texlive-generic-ukrhyph" + ,(texlive-dir "tex/generic/ukrhyph/" + "1cfwdg2rhbayl3w0x1xqd36d45zbc96f029myp13s7cb6kbmbppv")) + ("texlive-generic-config" + ,(texlive-dir "tex/generic/config/" + "19vj088p4kkp6xll0141m4kl6ssgdzhs3g10i232khb07aqiag8s")) + ("texlive-tex-plain" ,texlive-tex-plain) + ("texlive-fonts-cm" ,texlive-fonts-cm) + ("texlive-fonts-latex" ,texlive-fonts-latex) + ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib))) + (home-page "http://www.ctan.org/pkg/latex-base") + (synopsis "Base sources of LaTeX") + (description + "This bundle comprises the source of LaTeX itself, together with several +packages which are considered \"part of the kernel\". This bundle, together +with the required packages, constitutes what every LaTeX distribution should +contain.") + (license license:lppl1.3c+)))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 205794c8684076696a3e474a6c9f6d53460b744d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:46:14 +0200 Subject: build-system: Add 'texlive-build-system'. * guix/build-system/texlive.scm: New file. * guix/build/texlive-build-system.scm: New file. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document it. * gnu/packages/tex.scm (%texlive-tag, %texlive-revision): Remove variables. (texlife-ref): Remove procedure. --- Makefile.am | 3 + doc/guix.texi | 19 +++++ gnu/packages/tex.scm | 14 +-- guix/build-system/texlive.scm | 164 ++++++++++++++++++++++++++++++++++++ guix/build/texlive-build-system.scm | 89 +++++++++++++++++++ 5 files changed, 276 insertions(+), 13 deletions(-) create mode 100644 guix/build-system/texlive.scm create mode 100644 guix/build/texlive-build-system.scm (limited to 'gnu/packages/tex.scm') diff --git a/Makefile.am b/Makefile.am index 1be09d7637..436a003411 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,6 +6,7 @@ # Copyright © 2016, 2017 Mark H Weaver # Copyright © 2017 Mathieu Othacehe # Copyright © 2017 Leo Famulari +# Copyright © 2017 Ricardo Wurmus # # This file is part of GNU Guix. # @@ -87,6 +88,7 @@ MODULES = \ guix/build-system/waf.scm \ guix/build-system/r.scm \ guix/build-system/ruby.scm \ + guix/build-system/texlive.scm \ guix/build-system/trivial.scm \ guix/ftp-client.scm \ guix/http-client.scm \ @@ -114,6 +116,7 @@ MODULES = \ guix/build/ocaml-build-system.scm \ guix/build/r-build-system.scm \ guix/build/ruby-build-system.scm \ + guix/build/texlive-build-system.scm \ guix/build/waf-build-system.scm \ guix/build/haskell-build-system.scm \ guix/build/store-copy.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index b5538e0195..056059d04b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3580,6 +3580,25 @@ are run after installation using the R function @code{tools::testInstalledPackage}. @end defvr +@defvr {Scheme Variable} texlive-build-system +This variable is exported by @code{(guix build-system texlive)}. It is +used to build TeX packages in batch mode with a specified engine. The +build system sets the @code{TEXINPUTS} variable to find all TeX source +files in the inputs. + +By default it runs @code{luatex} on all files ending on @code{ins}. A +different engine and format can be specified with the +@code{#:tex-format} argument. Different build targets can be specified +with the @code{#:build-targets} argument, which expects a list of file +names. The build system adds only @code{texlive-bin} and +@code{texlive-latex-base} (both from @code{(gnu packages tex}) to the +inputs. Both can be overridden with the arguments @code{#:texlive-bin} +and @code{#:texlive-latex-base}, respectively. + +The @code{#:tex-directory} parameter tells the build system where to +install the built files under the texmf tree. +@end defvr + @defvr {Scheme Variable} ruby-build-system This variable is exported by @code{(guix build-system ruby)}. It implements the RubyGems build procedure used by Ruby packages, which diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 9c791ffa10..faf949862f 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -30,6 +30,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix build-system trivial) + #:use-module (guix build-system texlive) #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix svn-download) @@ -180,10 +181,6 @@ This package contains the binaries.") (license (license:fsf-free "https://www.tug.org/texlive/copying.html")) (home-page "https://www.tug.org/texlive/"))) -;; These variables specify the SVN tag and the matching SVN revision. -(define %texlive-tag "texlive-2017.0") -(define %texlive-revision 44445) - (define-public texlive-dvips (package (name "texlive-dvips") @@ -672,15 +669,6 @@ TeXbook, together with various supporting files (some also discussed in the book).") (license license:knuth))) -(define (texlive-ref component id) - "Return a object for the package ID, which is part of the -given Texlive COMPONENT." - (svn-reference - (url (string-append "svn://www.tug.org/texlive/tags/" - %texlive-tag "/Master/texmf-dist/" - "source/" component "/" id)) - (revision %texlive-revision))) - (define-public texlive-latex-base (let ((texlive-dir (lambda (dir hash) diff --git a/guix/build-system/texlive.scm b/guix/build-system/texlive.scm new file mode 100644 index 0000000000..d4085ea7e8 --- /dev/null +++ b/guix/build-system/texlive.scm @@ -0,0 +1,164 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ricardo Wurmus +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build-system texlive) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (guix svn-download) + #:use-module (ice-9 match) + #:export (%texlive-build-system-modules + texlive-build + texlive-build-system + texlive-ref + %texlive-tag + %texlive-revision)) + +;; Commentary: +;; +;; Standard build procedure for Texlive packages. +;; +;; Code: + +;; These variables specify the SVN tag and the matching SVN revision. +(define %texlive-tag "texlive-2017.0") +(define %texlive-revision 44445) + +(define (texlive-ref component id) + "Return a object for the package ID, which is part of the +given Texlive COMPONENT." + (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "source/" component "/" id)) + (revision %texlive-revision))) + +(define %texlive-build-system-modules + ;; Build-side modules imported by default. + `((guix build texlive-build-system) + ,@%gnu-build-system-modules)) + +(define (default-texlive-bin) + "Return the default texlive-bin package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((tex-mod (resolve-interface '(gnu packages tex)))) + (module-ref tex-mod 'texlive-bin))) + +(define (default-texlive-latex-base) + "Return the default texlive-latex-base package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((tex-mod (resolve-interface '(gnu packages tex)))) + (module-ref tex-mod 'texlive-latex-base))) + +(define* (lower name + #:key + source inputs native-inputs outputs + system target + (texlive-latex-base (default-texlive-latex-base)) + (texlive-bin (default-texlive-bin)) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + '(#:source #:target #:inputs #:native-inputs + #:texlive-latex-base #:texlive-bin)) + + (bag + (name name) + (system system) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (build-inputs `(("texlive-bin" ,texlive-bin) + ("texlive-latex-base" ,texlive-latex-base) + ,@native-inputs)) + (outputs outputs) + (build texlive-build) + (arguments (strip-keyword-arguments private-keywords arguments)))) + +(define* (texlive-build store name inputs + #:key + (tests? #f) + tex-directory + (build-targets #f) + (tex-format "luatex") + (phases '(@ (guix build texlive-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (substitutable? #t) + (imported-modules %texlive-build-system-modules) + (modules '((guix build texlive-build-system) + (guix build utils)))) + "Build SOURCE with INPUTS." + (define builder + `(begin + (use-modules ,@modules) + (texlive-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:tex-directory ,tex-directory + #:build-targets ,build-targets + #:tex-format ,tex-format + #:system ,system + #:tests? ,tests? + #:phases ,phases + #:outputs %outputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:inputs %build-inputs))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system #:graft? #f))))) + + (build-expression->derivation store name builder + #:inputs inputs + #:system system + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build + #:substitutable? substitutable?)) + +(define texlive-build-system + (build-system + (name 'texlive) + (description "The build system for TeX Live packages") + (lower lower))) + +;;; texlive.scm ends here diff --git a/guix/build/texlive-build-system.scm b/guix/build/texlive-build-system.scm new file mode 100644 index 0000000000..c1fd9fd9af --- /dev/null +++ b/guix/build/texlive-build-system.scm @@ -0,0 +1,89 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ricardo Wurmus +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build texlive-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (%standard-phases + texlive-build)) + +;; Commentary: +;; +;; Builder-side code of the standard build procedure for TeX Live packages. +;; +;; Code: + +(define (compile-with-latex format file) + (zero? (system* format + "-interaction=batchmode" + "-output-directory=build" + (string-append "&" format) + file))) + +(define* (build #:key inputs build-targets tex-format #:allow-other-keys) + ;; Find additional tex and sty files + (setenv "TEXINPUTS" + (string-append + (getcwd) ":" (getcwd) "/build:" + (string-join + (append-map (match-lambda + ((_ . dir) + (find-files dir + (lambda (_ stat) + (eq? 'directory (stat:type stat))) + #:directories? #t + #:stat stat))) + inputs) + ":"))) + (setenv "TEXFORMATS" + (string-append (assoc-ref inputs "texlive-latex-base") + "/share/texmf-dist/web2c/")) + (setenv "LUAINPUTS" + (string-append (assoc-ref inputs "texlive-latex-base") + "/share/texmf-dist/tex/latex/base/")) + (mkdir "build") + (every (cut compile-with-latex tex-format <>) + (if build-targets build-targets + (find-files "." "\\.ins$")))) + +(define* (install #:key outputs tex-directory #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (target (string-append + out "/share/texmf-dist/tex/" tex-directory))) + (mkdir-p target) + (for-each delete-file (find-files "." "\\.(log|aux)$")) + (for-each (cut install-file <> target) + (find-files "build" ".*")) + #t)) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'configure) + (replace 'build build) + (delete 'check) + (replace 'install install))) + +(define* (texlive-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given TeX Live package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; texlive-build-system.scm ends here -- cgit v1.2.3 From 3e485ed2fa0e64b058335d33a6c9e47896a54efd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:51:36 +0200 Subject: gnu: Add texlive-latex-filecontents. * gnu/packages/tex.scm (texlive-latex-filecontents): New variable. --- gnu/packages/tex.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index faf949862f..3b14b0f2b5 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -807,6 +807,30 @@ with the required packages, constitutes what every LaTeX distribution should contain.") (license license:lppl1.3c+)))) +(define-public texlive-latex-filecontents + (package + (name "texlive-latex-filecontents") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "filecontents")) + (sha256 + (base32 + "0swkbxv8vg0yizadfnvrwjb4cj0pn34v9wm6v7wqq903fdav7k7q")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/filecontents")) + (home-page "http://www.ctan.org/pkg/filecontents") + (synopsis "Extended filecontents and filecontents* environments") + (description + "LaTeX2e's @code{filecontents} and @code{filecontents*} environments +enable a LaTeX source file to generate external files as it runs through +LaTeX. However, there are two limitations of these environments: they refuse +to overwrite existing files, and they can only be used in the preamble of a +document. The filecontents package removes these limitations, letting you +overwrite existing files and letting you use @code{filecontents} / +@code{filecontents*} anywhere.") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 1193aa896fbcff184f21714dd0265ec20471092c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:51:59 +0200 Subject: gnu: Add texlive-generic-ifxetex. * gnu/packages/tex.scm (texlive-generic-ifxetex): New variable. --- gnu/packages/tex.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 3b14b0f2b5..68d8f66f21 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -831,6 +831,30 @@ overwrite existing files and letting you use @code{filecontents} / @code{filecontents*} anywhere.") (license license:lppl1.3c+))) +(define-public texlive-generic-ifxetex + (package + (name "texlive-generic-ifxetex") + (version "0.6") + (source (origin + (method svn-fetch) + (uri (texlive-ref "generic" "ifxetex")) + (sha256 + (base32 + "0w2xj7n0szavj329kds09q626szkc378p3w0sk022q0ln4ksz86d")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "generic/ifxetex" + #:tex-format "xelatex")) + (inputs + `(("texlive-latex-filecontents" ,texlive-latex-filecontents))) + (home-page "http://www.ctan.org/pkg/ifxetex") + (synopsis "Am I running under XeTeX?") + (description + "This is a simple package which provides an @code{\\ifxetex} conditional, +so that other code can determine that it is running under XeTeX. The package +requires the etexe-TeX extensions to the TeX primitive set.") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 437822a11de82bb9bd581dbeb948b484739beee7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:53:39 +0200 Subject: gnu: Add texlive-latex-fancyvrb. * gnu/packages/tex.scm (texlive-latex-fancyvrb): New variable. --- gnu/packages/tex.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 68d8f66f21..ce4b6c9b63 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -855,6 +855,33 @@ so that other code can determine that it is running under XeTeX. The package requires the etexe-TeX extensions to the TeX primitive set.") (license license:lppl1.3c+))) +(define-public texlive-latex-fancyvrb + (package + (name "texlive-latex-fancyvrb") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "fancyvrb")) + (sha256 + (base32 + "03l7140y031rr14h02i4z9zqsfvrbn7wzwxbjsrjcgrk6sdr71wv")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/fancyvrb" + ;; We exclude "fvrb-ex" to avoid a dependency on texlive-luaotfload and + ;; thus texlive-luatex-lualibs. + #:build-targets '("fancyvrb.ins"))) + (home-page "http://www.ctan.org/pkg/fancyvrb") + (synopsis "Sophisticated verbatim text") + (description + "This package provides tools for the flexible handling of verbatim text +including: verbatim commands in footnotes; a variety of verbatim environments +with many parameters; ability to define new customized verbatim environments; +save and restore verbatim text and environments; write and read files in +verbatim mode; build \"example\" environments (showing both result and +verbatim source).") + (license license:lppl1.0+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 4eebd2cdde6baa1d5cfaeb31a0bb03149e8db1d8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:54:06 +0200 Subject: gnu: Add texlive-latex-graphics. * gnu/packages/tex.scm (texlive-latex-graphics): New variable. --- gnu/packages/tex.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index ce4b6c9b63..640f8fd4db 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -882,6 +882,70 @@ verbatim mode; build \"example\" environments (showing both result and verbatim source).") (license license:lppl1.0+))) +(define-public texlive-latex-graphics + (package + (name "texlive-latex-graphics") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "graphics")) + (sha256 + (base32 + "17ka701xr9nqsjlhz30hphr8d9j4zzwgv5zl5r2f118yzqh9c34v")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/graphics" + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-config + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((cfg (assoc-ref inputs "graphics-cfg")) + (target (string-append (assoc-ref outputs "out") + "/share/texmf-dist/tex/latex/graphics-cfg"))) + (mkdir-p target) + (install-file (string-append cfg "/graphics.cfg") target) + (install-file (string-append cfg "/color.cfg") target) + #t))) + (add-after 'install 'install-defs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((def (assoc-ref inputs "graphics-def")) + (target (string-append (assoc-ref outputs "out") + "/share/texmf-dist/tex/latex/graphics-def"))) + (mkdir-p target) + (copy-recursively def target) + #t)))))) + (native-inputs + `(("graphics-cfg" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/latex3/graphics-cfg.git") + (commit "19d1238af17df376cd46333b229579b0f7f3a41f"))) + (sha256 + (base32 + "12kbgbm52gmmgn8zajb74s8n5rvnxcfdvs3iyj8vcw5vrsw5i6mh")))) + ("graphics-def" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/graphics-def")) + (revision %texlive-revision))) + (sha256 + (base32 + "1q5l0x3jsy74v0zq4c9g0x0rb9jfzf7cbhdzkbchyydv49iav802")))))) + (home-page "http://www.ctan.org/pkg/latex-graphics") + (synopsis "LaTeX standard graphics bundle") + (description + "This is a collection of LaTeX packages for producing color, including +graphics (e.g. PostScript) files, and rotation and scaling of text in LaTeX +documents. It comprises the packages color, graphics, graphicx, trig, epsfig, +keyval, and lscape.") + ;; The configuration files are released under CC0. + (license (list license:lppl1.3c+ + license:cc0)))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From f5a6af42b955c21da0b62d0ac8240a26160e6c52 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:54:26 +0200 Subject: gnu: Add texlive-latex-xcolor. * gnu/packages/tex.scm (texlive-latex-xcolor): New variable. --- gnu/packages/tex.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 640f8fd4db..b5612be243 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -946,6 +946,30 @@ keyval, and lscape.") (license (list license:lppl1.3c+ license:cc0)))) +(define-public texlive-latex-xcolor + (package + (name "texlive-latex-xcolor") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "xcolor")) + (sha256 + (base32 + "01n613s7bcrd2n4jfawm0k4nn2ny3aaifp2jjfif3lz4sbv31494")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/xcolor")) + (home-page "http://www.ctan.org/pkg/xcolor") + (synopsis "Driver-independent color extensions for LaTeX and pdfLaTeX") + (description + "The package starts from the basic facilities of the colorcolor package, +and provides easy driver-independent access to several kinds of color tints, +shades, tones, and mixes of arbitrary colors. It allows a user to select a +document-wide target color model and offers complete tools for conversion +between eight color models. Additionally, there is a command for alternating +row colors plus repeated non-aligned material (like horizontal lines) in +tables.") + (license license:lppl1.2+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 4d660fdf1c14f29156d446ab1e187b238674acfb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:55:35 +0200 Subject: gnu: Add texlive-latex-hyperref. * gnu/packages/tex.scm (texlive-latex-hyperref): New variable. --- gnu/packages/tex.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index b5612be243..38317501a2 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -970,6 +970,34 @@ row colors plus repeated non-aligned material (like horizontal lines) in tables.") (license license:lppl1.2+))) +(define-public texlive-latex-hyperref + (package + (name "texlive-latex-hyperref") + (version "6.84a2") + ;; The sources in the TeX Live SVN repository do not contain hluatex.dtx, + ;; so we fetch the release from GitHub. + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ho-tex/hyperref/" + "archive/release-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1d3rmjgzh0025a1dza55zb6nzzlgd1y9snwx45wq1c1vf42m79h2")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/hyperref")) + (home-page "http://www.ctan.org/pkg/hyperref") + (synopsis "Extensive support for hypertext in LaTeX") + (description + "The hyperref package is used to handle cross-referencing commands in +LaTeX to produce hypertext links in the document. The package provides +backends for the special set defined for HyperTeX DVI processors; for embedded +pdfmark commands for processing by Acrobat Distiller (dvips and dvipsone); for +dviwindo; for PDF control within pdfTeX and dvipdfm; for TeX4ht; and for VTeX +pdf and HTML backends. The package is distributed with the backref and +nameref packages, which make use of the facilities of hyperref.") + (license license:lppl1.3+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From c3455b7d10f5872554c6df2fd765bf7dc4c21cdb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:56:01 +0200 Subject: gnu: Add texlive-latex-oberdiek. * gnu/packages/tex.scm (texlive-latex-oberdiek): New variable. --- gnu/packages/tex.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 38317501a2..7fbb14274c 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -998,6 +998,35 @@ pdf and HTML backends. The package is distributed with the backref and nameref packages, which make use of the facilities of hyperref.") (license license:lppl1.3+))) +(define-public texlive-latex-oberdiek + (package + (name "texlive-latex-oberdiek") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "oberdiek")) + (sha256 + (base32 + "0aswvsxgsn709xmvpcg50d2xl7vcy1ckdxb9c1cligqqfjjvviqf")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/oberdiek" + #:phases + (modify-phases %standard-phases + ;; "ifpdf.ins" is not generated, so we cannot process it. + (add-after 'unpack 'do-not-process-ifpdf.ins + (lambda _ + (substitute* "oberdiek.ins" + (("\\\\batchinput\\{ifpdf.ins\\}") "")) + #t))))) + (home-page "http://www.ctan.org/pkg/oberdiek") + (synopsis "Bundle of packages submitted by Heiko Oberdiek") + (description + "The bundle comprises various LaTeX packages, providing among others: +better accessibility support for PDF files; extensible chemists reaction +arrows; record information about document class(es) used; and many more.") + (license license:lppl1.3+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From f2536af288e109b7c7eb383fd5881985d5b53f21 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 11:56:22 +0200 Subject: gnu: Add texlive-latex-tools. * gnu/packages/tex.scm (texlive-latex-tools): New variable. --- gnu/packages/tex.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 7fbb14274c..623cc34b30 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1027,6 +1027,31 @@ better accessibility support for PDF files; extensible chemists reaction arrows; record information about document class(es) used; and many more.") (license license:lppl1.3+))) +(define-public texlive-latex-tools + (package + (name "texlive-latex-tools") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "tools")) + (sha256 + (base32 + "052a0pch2k5zls5jlay9xxcf93rw3i60a2x28y3ip3rhbsv3xgiz")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/tools" + #:build-targets '("tools.ins"))) + (home-page "http://www.ctan.org/pkg/latex-tools") + (synopsis "LaTeX standard tools bundle") + (description + "This package is a collection of (variously) simple tools provided as +part of the LaTeX required tools distribution, comprising the following +packages: afterpage, array, bm, calc, dcolumn, delarray, enumerate, fileerr, +fontsmpl, ftnright, hhline, indentfirst, layout, longtable, multicol, +rawfonts, showkeys, somedefs, tabularx, theorem, trace, varioref, verbatim, +xr, and xspace.") + (license license:lppl1.3+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 35adcc3a86f6c40753caf4ca3d069645ec58487b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:26:39 +0200 Subject: gnu: Add texlive-latex-url. * gnu/packages/tex.scm (texlive-latex-url): New variable. --- gnu/packages/tex.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 623cc34b30..842310a7f3 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1052,6 +1052,45 @@ rawfonts, showkeys, somedefs, tabularx, theorem, trace, varioref, verbatim, xr, and xspace.") (license license:lppl1.3+))) +(define-public texlive-latex-url + (package + (name "texlive-latex-url") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/url")) + (revision %texlive-revision))) + (sha256 + (base32 + "184s2543cwia5l7iibhlkl1ffbncfhjpv5p56zq0c15by5sghlac")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/latex/url"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "https://www.ctan.org/pkg/url") + (synopsis "Verbatim with URL-sensitive line breaks") + (description "The command @code{\\url} is a form of verbatim command that +allows linebreaks at certain characters or combinations of characters, accepts +reconfiguration, and can usually be used in the argument to another command. +The command is intended for email addresses, hypertext links, +directories/paths, etc., which normally have no spaces, so by default the +package ignores spaces in its argument. However, a package option allows +spaces, which is useful for operating systems where spaces are a common part +of file names.") + ;; The license header states that it is under LPPL version 2 or later, but + ;; the latest version is 1.3c. + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From a5b1ef84b5a1b3ccba7a5a291503522ea7ca5ef3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:26:59 +0200 Subject: gnu: Add texlive-latex-l3kernel. * gnu/packages/tex.scm (texlive-latex-l3kernel): New variable. --- gnu/packages/tex.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 842310a7f3..44f76aad88 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1091,6 +1091,29 @@ of file names.") ;; the latest version is 1.3c. (license license:lppl1.3c+))) +(define-public texlive-latex-l3kernel + (package + (name "texlive-latex-l3kernel") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "l3kernel")) + (sha256 + (base32 + "0ndqw0flhl20f4ny5lssp8rqpnj5kglyg59whbdrxbh2zc7w7j0b")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/l3kernel")) + (home-page "http://www.ctan.org/pkg/l3kernel") + (synopsis "LaTeX3 programmers’ interface") + (description + "The l3kernel bundle provides an implementation of the LaTeX3 +programmers’ interface, as a set of packages that run under LaTeX 2e. The +interface provides the foundation on which the LaTeX3 kernel and other future +code are built: it is an API for TeX programmers. The packages are set up so +that the LaTeX3 conventions can be used with regular LaTeX 2e packages.") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From cc09d48bab1982fad4659b9ec1d8fb20250f3bee Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:27:22 +0200 Subject: gnu: Add texlive-latex-l3packages. * gnu/packages/tex.scm (texlive-latex-l3packages): New variable. --- gnu/packages/tex.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 44f76aad88..06cb4f4371 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1114,6 +1114,53 @@ code are built: it is an API for TeX programmers. The packages are set up so that the LaTeX3 conventions can be used with regular LaTeX 2e packages.") (license license:lppl1.3c+))) +(define-public texlive-latex-l3packages + (package + (name "texlive-latex-l3packages") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "l3packages")) + (sha256 + (base32 + "1p1y9my6ccmp2ab91fzqqgih8ifrk4y3wyh397kagiq9f6a6v91f")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/l3packages" + #:phases + (modify-phases %standard-phases + ;; All package sources are in sub-directories, so we need to add them + ;; to TEXINPUTS. + (add-after 'unpack 'set-TEXINPUTS + (lambda _ + (let ((cwd (getcwd))) + (setenv "TEXINPUTS" + (string-append cwd "/l3keys2e:" + cwd "/xparse:" + cwd "/xfrac:" + cwd "/xfp:" + cwd "/xtemplate"))) + #t))))) + (inputs + `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel))) + (home-page "http://www.ctan.org/pkg/l3packages") + (synopsis "High-level LaTeX3 concepts") + (description + "This bundle holds prototype implementations of concepts for a LaTeX +designer interface, to be used with the experimental LaTeX kernel as +programming tools and kernel sup­port. Packages provided in this release are: + +@enumerate +@item l3keys2e, which makes the facilities of the kernel module l3keys + available for use by LaTeX 2e packages; +@item xfrac, which provides flexible splitlevel fractions; +@item xparse, which provides a high-level interface for declaring document + commands; and +@item xtemplate, which provides a means of defining generic functions using a + key-value syntax. +@end enumerate\n") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 58308491cb2593cb745689472762d89f2fea1d57 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:27:43 +0200 Subject: gnu: Add texlive-latex-fontspec. * gnu/packages/tex.scm (texlive-latex-fontspec): New variable. --- gnu/packages/tex.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 06cb4f4371..59e74c9455 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1161,6 +1161,31 @@ programming tools and kernel sup­port. Packages provided in this release are: @end enumerate\n") (license license:lppl1.3c+))) +(define-public texlive-latex-fontspec + (package + (name "texlive-latex-fontspec") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "fontspec")) + (sha256 + (base32 + "1rx43y5xmjqvc27pjdnmqwp4pcw3czcfd6nfpmzc1gnqfl1hlc0q")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/fontspec" + #:build-targets '("fontspec.dtx"))) + (inputs + `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel))) + (home-page "http://www.ctan.org/pkg/fontspec") + (synopsis "Advanced font selection in XeLaTeX and LuaLaTeX") + (description + "Fontspec is a package for XeLaTeX and LuaLaTeX. It provides an +automatic and unified interface to feature-rich AAT and OpenType fonts through +the NFSS in LaTeX running on XeTeX or LuaTeX engines. The package requires +the l3kernel and xparse bundles from the LaTeX 3 development team.") + (license license:lppl1.3+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From e93f472d53f146f228478c4cd50b8b407d425029 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:28:09 +0200 Subject: gnu: Add texlive-luatex-lualibs. * gnu/packages/tex.scm (texlive-luatex-lualibs): New variable. --- gnu/packages/tex.scm | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 59e74c9455..e4b0e76948 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -61,7 +61,7 @@ #:use-module (gnu packages zip) #:autoload (gnu packages texinfo) (texinfo) #:use-module (ice-9 ftw) - #:use-module (srfi srfi-1)) + #:use-module ((srfi srfi-1) #:hide (zip))) (define texlive-extra-src (origin @@ -1186,6 +1186,43 @@ the NFSS in LaTeX running on XeTeX or LuaTeX engines. The package requires the l3kernel and xparse bundles from the LaTeX 3 development team.") (license license:lppl1.3+))) +;; The SVN directory contains little more than a dtx file that generates three +;; of the many lua files that should be installed as part of this package. +;; This is why we take the release from GitHub instead. +(define-public texlive-luatex-lualibs + (package + (name "texlive-luatex-lualibs") + (version "2.5") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/lualatex/lualibs/" + "releases/download/v" + version "/lualibs.zip")) + (sha256 + (base32 + "1xx9blvrmx9hyhrl345lpai9m6xxnw997261a1ahn1bm5r2j5fqy")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list (string-append "DESTDIR=" + (assoc-ref %outputs "out") + "/share/texmf-dist")) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("unzip" ,unzip) + ("zip" ,zip))) + (home-page "https://github.com/lualatex/lualibs") + (synopsis "Lua modules for general programming (in the (La)TeX world)") + (description + "Lualibs is a collection of Lua modules useful for general programming. +The bundle is based on Lua modules shipped with ConTeXt, and made available in +this bundle for use independent of ConTeXt.") + ;; GPL version 2 only + (license license:gpl2))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 2573163a127950b976adf83d8b10d3c8ded9ed76 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:29:51 +0200 Subject: gnu: Add texlive-latex-amsmath. * gnu/packages/tex.scm (texlive-latex-amsmath): New variable. --- gnu/packages/tex.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index e4b0e76948..8fb5c8b56f 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1223,6 +1223,34 @@ this bundle for use independent of ConTeXt.") ;; GPL version 2 only (license license:gpl2))) +(define-public texlive-latex-amsmath + (package + (name "texlive-latex-amsmath") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "amsmath")) + (sha256 + (base32 + "178ywjpdlv78qmfzqdyn6gy14620zjsn2q9wap76fbr9s4hw6dba")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/amsmath")) + (home-page "http://www.ctan.org/pkg/amsmath") + (synopsis "AMS mathematical facilities for LaTeX") + (description + "This is the principal package in the AMS-LaTeX distribution. It adapts +for use in LaTeX most of the mathematical features found in AMS-TeX; it is +highly recommended as an adjunct to serious mathematical typesetting in LaTeX. +When amsmath is loaded, AMS-LaTeX packages @code{amsbsyamsbsy} (for bold +symbols), @code{amsopnamsopn} (for operator names) and +@code{amstextamstext} (for text embedded in mathematics) are also loaded. +This package is part of the LaTeX required distribution; however, several +contributed packages add still further to its appeal; examples are +@code{empheqempheq}, which provides functions for decorating and highlighting +mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar) +definitions.") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 18e366e856645a8095974d2fa738e13af66f1ad4 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:30:07 +0200 Subject: gnu: Add texlive-latex-amscls. * gnu/packages/tex.scm (texlive-latex-amscls): New variable. --- gnu/packages/tex.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 8fb5c8b56f..da86650299 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1251,6 +1251,29 @@ mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar) definitions.") (license license:lppl1.3c+))) +(define-public texlive-latex-amscls + (package + (name "texlive-latex-amscls") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "amscls")) + (sha256 + (base32 + "0jmcr37mcdi7drczppvr6lmz5d5yd9m67ii79gp2nglg1xpw934j")))) + (build-system texlive-build-system) + (arguments + `(#:tex-directory "latex/amscls")) + (home-page "http://www.ctan.org/pkg/amscls") + (synopsis "AMS document classes for LaTeX") + (description + "This bundle contains three AMS classes: @code{amsartamsart} (for writing +articles for the AMS), @code{amsbookamsbook} (for books) and +@code{amsprocamsproc} (for proceedings), together with some supporting +material. The material is made available as part of the AMS-LaTeX +distribution.") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From f84d5a09d4c02404351547615521def0a041fafa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:30:26 +0200 Subject: gnu: Add texlive-latex-babel. * gnu/packages/tex.scm (texlive-latex-babel): New variable. --- gnu/packages/tex.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index da86650299..8351262bbc 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1274,6 +1274,40 @@ material. The material is made available as part of the AMS-LaTeX distribution.") (license license:lppl1.3c+))) +(define-public texlive-latex-babel + (package + (name "texlive-latex-babel") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "babel")) + (sha256 + (base32 + "1n3i5adsyy7jw0imnzrm2i8wkf73i3mjk9h3ic8cb9cd19i4r9r3")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/babel" + #:phases + (modify-phases %standard-phases + ;; This package tries to produce babel.aux twice but refuses to + ;; overwrite the first one. + (add-before 'build 'fix-ins + (lambda _ + (substitute* "babel.ins" + (("askonceonly") "askforoverwritefalse")) + #t))))) + (home-page "http://www.ctan.org/pkg/babel") + (synopsis "Multilingual support for Plain TeX or LaTeX") + (description + "The package manages culturally-determined typographical (and other) +rules, and hyphenation patterns for a wide range of languages. A document may +select a single language to be supported, or it may select several, in which +case the document may switch from one language to another in a variety of +ways. Babel uses contributed configuration files that provide the detail of +what has to be done for each language. Users of XeTeX are advised to use the +polyglossia package rather than Babel.") + (license license:lppl1.3+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 93286d385731eba85b2cf44d528b38ccfa3f1319 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:30:47 +0200 Subject: gnu: texlive-latex-cyrillic. * gnu/packages/tex.scm (texlive-latex-cyrillic): New variable. --- gnu/packages/tex.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 8351262bbc..17cf78a292 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1308,6 +1308,28 @@ what has to be done for each language. Users of XeTeX are advised to use the polyglossia package rather than Babel.") (license license:lppl1.3+))) +(define-public texlive-latex-cyrillic + (package + (name "texlive-latex-cyrillic") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "cyrillic")) + (sha256 + (base32 + "1mdhl35hwas68ki56qqngzar37dwv4mm64l2canihr255bz34lbv")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/cyrillic")) + (home-page "http://www.ctan.org/pkg/latex-cyrillic") + (synopsis "Support for Cyrillic fonts in LaTeX") + (description + "This bundle of macros files provides macro support (including font +encoding macros) for the use of Cyrillic characters in fonts encoded under the +T2* and X2 encodings. These encodings cover (between them) pretty much every +language that is written in a Cyrillic alphabet.") + (license license:lppl1.3c+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 83fe6231cb7de30ce8c17138938dcd8d77b6336e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:31:03 +0200 Subject: gnu: Add texlive-latex-psnfss. * gnu/packages/tex.scm (texlive-latex-psnfss): New variable. --- gnu/packages/tex.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 17cf78a292..5e9370b386 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1330,6 +1330,30 @@ T2* and X2 encodings. These encodings cover (between them) pretty much every language that is written in a Cyrillic alphabet.") (license license:lppl1.3c+))) +(define-public texlive-latex-psnfss + (package + (name "texlive-latex-psnfss") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "psnfss")) + (sha256 + (base32 + "1920dcq8613yzprasbg80fh4fcjcidvvl54wkx438nimyxcri7qz")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "latex/psnfss")) + (home-page "http://www.ctan.org/pkg/psnfss") + (synopsis "Font support for common PostScript fonts") + (description + "The PSNFSS collection includes a set of files that provide a complete +working setup of the LaTeX font selection scheme (NFSS2) for use with common +PostScript fonts. It covers the so-called \"Base\" fonts (which are built +into any Level 2 PostScript printing device and the Ghostscript interpreter) +and a number of free fonts. It provides font definition files, macros and +font metrics. The bundle as a whole is part of the LaTeX required set of +packages.") + (license license:lppl1.2+))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From cb7bc20a4da7fab4fd8f31c8a2837987b0b8808e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:31:45 +0200 Subject: gnu: Add texlive-union. * gnu/packages/tex.scm (texlive-union): New procedure. --- gnu/packages/tex.scm | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 5e9370b386..e89f5b0c68 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -61,6 +61,7 @@ #:use-module (gnu packages zip) #:autoload (gnu packages texinfo) (texinfo) #:use-module (ice-9 ftw) + #:use-module (ice-9 match) #:use-module ((srfi srfi-1) #:hide (zip))) (define texlive-extra-src @@ -1354,6 +1355,91 @@ font metrics. The bundle as a whole is part of the LaTeX required set of packages.") (license license:lppl1.2+))) +(define-public texlive-union + (lambda* (#:optional (packages '())) + "Return 'texlive-union' package which is a union of PACKAGES and the +standard LaTeX packages." + (let ((default-packages + (list texlive-bin + texlive-dvips + texlive-fonts-cm + texlive-fonts-latex + texlive-metafont-base + texlive-latex-base + ;; LaTeX packages from the "required" set. + texlive-latex-amsmath + texlive-latex-amscls + texlive-latex-babel + texlive-latex-cyrillic + texlive-latex-graphics + texlive-latex-psnfss + texlive-latex-tools))) + (package + (name "texlive-union") + (version (number->string %texlive-revision)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union) + (guix build utils) + (guix build texlive-build-system) + (guix build gnu-build-system) + (guix build gremlin) + (guix elf)) + #:builder + (begin + (use-modules (ice-9 match) + (srfi srfi-26) + (guix build union) + (guix build utils) + (guix build texlive-build-system)) + (let* ((out (assoc-ref %outputs "out")) + (texmf.cnf (string-append out "/share/texmf-dist/web2c/texmf.cnf"))) + ;; Build a modifiable union of all inputs (but exclude bash) + (match (filter (match-lambda + ((name . _) + (not (string=? "bash" name)))) + %build-inputs) + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories + #:create-all-directories? #t))) + + ;; The configuration file "texmf.cnf" is provided by the + ;; "texlive-bin" package. We take it and override only the + ;; setting for TEXMFROOT and TEXMF. This file won't be consulted + ;; by default, though, so we still need to set TEXMFCNF. + (substitute* texmf.cnf + (("^TEXMFROOT = .*") + (string-append "TEXMFROOT = " out "/share\n")) + (("^TEXMF = .*") + "TEXMF = $TEXMFROOT/share/texmf-dist\n")) + (setenv "PATH" (string-append (assoc-ref %build-inputs "bash") + "/bin")) + (for-each + (cut wrap-program <> + `("TEXMFCNF" ":" = (,(dirname texmf.cnf))) + `("TEXMF" ":" = (,(string-append out "/share/texmf-dist")))) + (find-files (string-append out "/bin") ".*")) + #t)))) + (inputs + `(("bash" ,bash) + ,@(map (lambda (package) + (list (package-name package) package)) + (append default-packages packages)))) + (home-page (package-home-page texlive-bin)) + (synopsis "Union of TeX Live packages") + (description "This package provides a subset of the TeX Live +distribution.") + (license (fold (lambda (package result) + (match (package-license package) + ((lst ...) + (append lst result)) + ((? license:license? license) + (cons license result)))) + '() + (append default-packages packages))))))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 9d4f8dc289c80e23c8770b340c452693feccbe3b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:33:49 +0200 Subject: gnu: Add texlive-tiny. * gnu/packages/tex.scm (texlive-tiny): New variable. --- gnu/packages/tex.scm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index e89f5b0c68..90b1bcad72 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -1440,6 +1440,13 @@ distribution.") '() (append default-packages packages))))))) +(define-public texlive-tiny + (package + (inherit (texlive-union)) + (name "texlive-tiny") + (description "This is a very limited subset of the TeX Live distribution. +It includes little more than the required set of LaTeX packages."))) + (define texlive-texmf (package (name "texlive-texmf") -- cgit v1.2.3 From 3abe72bdb4b5228efdc661ab4fb545376f1abb6e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 16 Jun 2017 08:48:37 +0200 Subject: gnu: texlive-bin: Export variable. This is needed by the texlive build system. * gnu/packages/tex.scm (texlive-bin): Export variable. --- gnu/packages/tex.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages/tex.scm') diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 90b1bcad72..71aa5c7f3a 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -80,7 +80,7 @@ (sha256 (base32 "1dv8vgfzpczqw82hv9g7a8djhhyzywljmrarlcyy6g2qi5q51glr")))) -(define texlive-bin +(define-public texlive-bin (package (name "texlive-bin") (version "2016") -- cgit v1.2.3