From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48651) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJHRd-00087k-PM for guix-patches@gnu.org; Fri, 09 Jun 2017 06:47:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dJHRc-0000Vm-5i for guix-patches@gnu.org; Fri, 09 Jun 2017 06:47:09 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:33293) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dJHRc-0000Ve-1v for guix-patches@gnu.org; Fri, 09 Jun 2017 06:47:08 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dJHRb-0006G4-SF for guix-patches@gnu.org; Fri, 09 Jun 2017 06:47:07 -0400 Subject: bug#27296: [PATCH 13/35] gnu: Add texlive-latex-base. Resent-Message-ID: From: Ricardo Wurmus Date: Fri, 9 Jun 2017 12:45:37 +0200 Message-Id: <20170609104559.17416-13-rekado@elephly.net> In-Reply-To: <20170609104559.17416-1-rekado@elephly.net> References: <20170609104559.17416-1-rekado@elephly.net> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 27296@debbugs.gnu.org Cc: Ricardo Wurmus * gnu/packages/tex.scm (texlive-latex-base): New variable. (texlive-ref): New procedure. --- gnu/packages/tex.scm | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index c9d6d058e..9ff0f234e 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -689,6 +689,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") -- 2.12.2