X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/a9db7d10b6e4e86fb2b87a4161db3b1f202002fd..54af5f55180f6544b573bc6830fe45425369015c:/gnu/packages/texlive.scm diff --git a/gnu/packages/texlive.scm b/gnu/packages/texlive.scm index 090d342054..f757350135 100644 --- a/gnu/packages/texlive.scm +++ b/gnu/packages/texlive.scm @@ -1,5 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Andreas Enge +;;; Copyright © 2013, 2014 Andreas Enge +;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2015 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,100 +19,114 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages texlive) - #:use-module ((guix licenses) - #:renamer (symbol-prefix-proc 'license:)) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages compression) #:use-module (gnu packages fontutils) + #:use-module (gnu packages gd) #:use-module (gnu packages ghostscript) + #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) - #:use-module (gnu packages libpng) + #:use-module (gnu packages image) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages ruby) #:use-module (gnu packages tcsh) + #:use-module (gnu packages base) #:use-module (gnu packages xorg) - #:use-module (gnu packages zip)) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages zip) + #:autoload (gnu packages texinfo) (texinfo)) (define texlive-extra-src (origin (method url-fetch) - (uri "ftp://tug.org/historic/systems/texlive/2012/texlive-20120701-extra.tar.xz") + (uri "ftp://tug.org/historic/systems/texlive/2014/texlive-20140525-extra.tar.xz") (sha256 (base32 - "0cb8fnv4x281gy5ka779f00ssdmdpjj4x3pkh9j9vq45hrwg3522")))) + "1zlnjysvxskcy05iva6jfklirwv12wqyn3ia119a7xnqlvhpqz33")))) (define texlive-texmf-src (origin (method url-fetch) - (uri "ftp://tug.org/historic/systems/texlive/2012/texlive-20120701-texmf.tar.xz") + (uri "ftp://tug.org/historic/systems/texlive/2014/texlive-20140525-texmf.tar.xz") (sha256 (base32 - "1fn1dg9k7pnh8a80j23zfkbrfnqyc4c2w4ss30dpkqj490nxsywq")))) + "0qsr55ms1278dhmgixs5qqwd4fxhh369ihkki6wgh8xaqm8p48p0")))) (define-public texlive (package (name "texlive") - (version "2012") + (version "2014") (source (origin (method url-fetch) - (uri "ftp://tug.org/historic/systems/texlive/2012/texlive-20120701-source.tar.xz") + (uri "ftp://tug.org/historic/systems/texlive/2014/texlive-20140525-source.tar.xz") (sha256 (base32 - "10bcrdfsqnc6y3gqcb8ndnjy07i5kz63as39irbq4gmcbmyn2rln")))) + "1glmaw2jv42grbsn05kay825j66scimjqqc32776bb1356q4xfq8")))) (build-system gnu-build-system) (inputs `(("texlive-extra-src" ,texlive-extra-src) ("texlive-texmf-src" ,texlive-texmf-src) + ("cairo" ,cairo) ("fontconfig" ,fontconfig) + ("fontforge" ,fontforge) ("freetype" ,freetype) - ("icu4c" ,icu4c) + ("gd" ,gd) ("ghostscript" ,ghostscript) + ("graphite2" ,graphite2) + ("harfbuzz" ,harfbuzz) + ("icu4c" ,icu4c) + ("libpaper" ,libpaper) ("libpng" ,libpng) ("libxaw" ,libxaw) ("libxt" ,libxt) ("perl" ,perl) + ("pixman" ,pixman) ("poppler" ,poppler) - ("pkg-config" ,pkg-config) - ;; FIXME: Add interpreters fontforge and ruby, - ;; once they are available. - ("python" ,python) + ("potrace" ,potrace) + ("python" ,python-2) ; incompatible with Python 3 (print syntax) + ("ruby" ,ruby) ("tcsh" ,tcsh) ("teckit" ,teckit) - ("t1lib" ,t1lib) ("zlib" ,zlib) ("zziplib" ,zziplib))) + (native-inputs + `(("pkg-config" ,pkg-config))) (outputs '("out" "data")) (arguments `(#:out-of-source? #t #:configure-flags `("--disable-native-texlive-build" - ;; Although the texmf and texmf-dist data is taken from - ;; texlive-texmf, setting datarootdir is still useful: + ;; Although the texmf-dist data is taken from texlive-texmf, + ;; setting datarootdir is still useful: ;; "make install" creates symbolic links to scripts in this place. ,(string-append "--datarootdir=" (assoc-ref %outputs "data")) ,(string-append "--infodir=" (assoc-ref %outputs "out") "/share/info") ,(string-append "--mandir=" (assoc-ref %outputs "out") "/share/man") + "--with-system-cairo" "--with-system-freetype2" - ;; "--with-system-gd" - ;; "--with-system-graphite" + "--with-system-gd" + "--with-system-graphite2" + "--with-system-harfbuzz" "--with-system-icu" "--with-system-libgs" + "--with-system-libpaper" "--with-system-libpng" + "--with-system-pixman" "--with-system-poppler" - "--with-system-t1lib" + "--with-system-potrace" "--with-system-teckit" "--with-system-xpdf" "--with-system-zlib" "--with-system-zziplib") + + ;; Disable tests on mips64 to cope with a failure of luajiterr.test. + ;; XXX FIXME fix luajit properly on mips64. + #:tests? ,(not (string-prefix? "mips64" (or (%current-target-system) + (%current-system)))) #:phases - (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys #:rest args) - (let ((configure (assoc-ref %standard-phases 'configure))) - (substitute* "utils/psutils/Makefile.in" - (("/usr/bin/env perl") (which "perl"))) - (apply configure args))) (alist-cons-after 'install 'postinst (lambda* (#:key inputs outputs #:allow-other-keys #:rest args) @@ -129,9 +145,8 @@ '("latex" "pdflatex" "xelatex" "lualatex"))) (with-directory-excursion (string-append out "/share/man/man1/") (symlink "luatex.1" "lualatex.1")) - ;; Delete texmf and texmf-dist from "data", since they - ;; will be reinstalled from texlive-texmf. - (system* "rm" "-r" (string-append data "/texmf")) + ;; Delete texmf-dist from "data", since it will be reinstalled + ;; from texlive-texmf. (system* "rm" "-r" (string-append data "/texmf-dist")) ;; Unpack texlive-extra and install tlpkg. (mkdir "texlive-extra") @@ -146,18 +161,17 @@ (apply unpack (list #:source texlive-texmf)) (apply patch-source-shebangs (list #:source texlive-texmf)) ;; Register "data" for kpathsea in texmf.cnf. - (substitute* "texmf/web2c/texmf.cnf" + (substitute* "texmf-dist/web2c/texmf.cnf" (("TEXMFROOT = \\$SELFAUTOPARENT") (string-append "TEXMFROOT = " data))) - (system* "mv" "texmf" data) (system* "mv" "texmf-dist" data) (chdir "..")) ;; texmf.cnf must also be placed in "out", since kpsewhich does ;; not know about "data" until it has found this file. - (mkdir (string-append out "/share/texmf")) - (mkdir (string-append out "/share/texmf/web2c")) - (copy-file (string-append data "/texmf/web2c/texmf.cnf") - (string-append out "/share/texmf/web2c/texmf.cnf")))) + (mkdir (string-append out "/share/texmf-dist")) + (mkdir (string-append out "/share/texmf-dist/web2c")) + (copy-file (string-append data "/texmf-dist/web2c/texmf.cnf") + (string-append out "/share/texmf-dist/web2c/texmf.cnf")))) (alist-cons-after 'patch-shebangs 'texconfig (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -167,7 +181,7 @@ (system* "updmap-sys" "--nohash" "--syncwithtrees") (system* "mktexlsr") (system* "fmtutil-sys" "--all"))) - %standard-phases))))) + %standard-phases)))) (synopsis "Tex Live, a package of the TeX typesetting system") (description "TeX Live provides a comprehensive TeX document production system. @@ -176,3 +190,33 @@ that are free software, including support for many languages around the world.") (license (license:fsf-free "http://tug.org/texlive/copying.html")) (home-page "http://www.tug.org/texlive/"))) + +(define-public rubber + (package + (name "rubber") + (version "1.1") + (source (origin + (method url-fetch) + (uri (list (string-append "https://launchpad.net/rubber/trunk/" + version "/+download/rubber-" + version ".tar.gz") + (string-append "http://ebeffara.free.fr/pub/rubber-" + version ".tar.gz"))) + (sha256 + (base32 + "1xbkv8ll889933gyi2a5hj7hhh216k04gn8fwz5lfv5iz8s34gbq")))) + (build-system gnu-build-system) + (arguments '(#:tests? #f)) ; no `check' target + (inputs `(("texinfo" ,texinfo) + ("python" ,python-2) ; incompatible with Python 3 (print syntax) + ("which" ,which))) + (home-page "https://launchpad.net/rubber") + (synopsis "Wrapper for LaTeX and friends") + (description + "Rubber is a program whose purpose is to handle all tasks related to the +compilation of LaTeX documents. This includes compiling the document itself, +of course, enough times so that all references are defined, and running BibTeX +to manage bibliographic references. Automatic execution of dvips to produce +PostScript documents is also included, as well as usage of pdfLaTeX to produce +PDF documents.") + (license license:gpl2+)))