From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Enge Subject: Re: Texlive Date: Tue, 5 Feb 2013 20:30:03 +0100 Message-ID: <201302052030.04032.andreas@enge.fr> References: <201302031756.11314.andreas@enge.fr> <87ip691c95.fsf@gnu.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_82VERg/oS+6l7Ti" Return-path: Received: from eggs.gnu.org ([208.118.235.92]:38648) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U2oDr-0004Ge-50 for bug-guix@gnu.org; Tue, 05 Feb 2013 14:30:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U2oDn-0006ZM-VF for bug-guix@gnu.org; Tue, 05 Feb 2013 14:30:27 -0500 In-Reply-To: <87ip691c95.fsf@gnu.org> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: Ludovic =?utf-8?q?Court=C3=A8s?= Cc: bug-guix@gnu.org --Boundary-00=_82VERg/oS+6l7Ti Content-Type: multipart/alternative; boundary="Boundary-01=_82VERFf83z/VPaZ" Content-Transfer-Encoding: 7bit --Boundary-01=_82VERFf83z/VPaZ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hello, attached what I think could be the final version, once the license question is decided. Andreas --Boundary-01=_82VERFf83z/VPaZ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 7bit

Hello,

 

attached what I think could be the final version, once the license question is decided.

 

Andreas

 

 

--Boundary-01=_82VERFf83z/VPaZ-- --Boundary-00=_82VERg/oS+6l7Ti Content-Type: text/x-scheme; charset="UTF-8"; name="texlive.scm" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="texlive.scm" ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2013 Andreas Enge ;;; ;;; 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 (gnu packages texlive) #:use-module ((guix licenses) #:renamer (symbol-prefix-proc '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 freetype) #:use-module (gnu packages ghostscript) #:use-module (gnu packages icu4c) #:use-module (gnu packages libpng) #: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 zip)) (define texlive-extra-src (origin (method url-fetch) (uri "ftp://tug.org/historic/systems/texlive/2012/texlive-20120701-extr= a.tar.xz") (sha256 (base32 "0cb8fnv4x281gy5ka779f00ssdmdpjj4x3pkh9j9vq45hrwg3522")))) (define texlive-texmf-src (origin (method url-fetch) (uri "ftp://tug.org/historic/systems/texlive/2012/texlive-20120701-texm= f.tar.xz") (sha256 (base32 "1fn1dg9k7pnh8a80j23zfkbrfnqyc4c2w4ss30dpkqj490nxsywq")))) (define-public texlive (package (name "texlive") (version "2012") (source (origin (method url-fetch) (uri "ftp://tug.org/historic/systems/texlive/2012/texlive-20120= 701-source.tar.xz") (sha256 (base32 "10bcrdfsqnc6y3gqcb8ndnjy07i5kz63as39irbq4gmcbmyn2rln"= )))) (build-system gnu-build-system) (inputs `(("texlive-extra-src" ,texlive-extra-src) ("texlive-texmf-src" ,texlive-texmf-src) ("fontconfig" ,fontconfig) ("freetype" ,freetype) ("icu4c" ,icu4c) ("ghostscript" ,ghostscript) ("libpng" ,libpng) ("perl" ,perl) ("poppler" ,poppler) ("pkg-config" ,pkg-config) ;; FIXME: Add interpreters csh, fontforge and ruby, ;; once they are available. ("python" ,python) ("teckit" ,teckit) ("t1lib" ,t1lib) ("zlib" ,zlib) ("zziplib" ,zziplib))) (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: ;; "make install" creates symbolic links to scripts in this place. ,(string-append "--datarootdir=3D" (assoc-ref %outputs "data")) ,(string-append "--infodir=3D" (assoc-ref %outputs "out") "/share/= info") ,(string-append "--mandir=3D" (assoc-ref %outputs "out") "/share/m= an") "--without-x" ; FIXME: Drop as soon as X is available. "--with-system-freetype2" ;; "--with-system-gd" ;; "--with-system-graphite" "--with-system-icu" "--with-system-libgs" "--with-system-libpng" "--with-system-poppler" "--with-system-t1lib" "--with-system-teckit" "--with-system-xpdf" "--with-system-zlib" "--with-system-zziplib") #: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) (let ((texlive-extra (assoc-ref inputs "texlive-extra-src")) (texlive-texmf (assoc-ref inputs "texlive-texmf-src")) (out (assoc-ref outputs "out")) (data (assoc-ref outputs "data")) (unpack (assoc-ref %standard-phases 'unpack)) (patch-source-shebangs (assoc-ref %standard-phases 'patch-source-shebangs))) ;; Create symbolic links for the latex variants and their ;; man pages. (with-directory-excursion (string-append out "/bin/") (for-each symlink '("pdftex" "pdftex" "xetex" "luatex") '("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")) (system* "rm" "-r" (string-append data "/texmf-dist")) ;; Unpack texlive-extra and install tlpkg. (mkdir "texlive-extra") (with-directory-excursion "texlive-extra" (apply unpack (list #:source texlive-extra)) (apply patch-source-shebangs (list #:source texlive-extra)) (system* "mv" "tlpkg" data) (chdir "..")) ;; Unpack and install texlive-texmf. (mkdir "texlive-texmf") (with-directory-excursion "texlive-texmf" (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" (("TEXMFROOT =3D \\$SELFAUTOPARENT") (string-append "TEXMFROOT =3D " 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")))) (alist-cons-after 'patch-shebangs 'texconfig (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) ;; Configure the texlive system; inspired from ;; http://slackbuilds.org/repository/13.37/office/texlive/ (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin")) (system* "updmap-sys" "--nohash" "--syncwithtrees") (system* "mktexlsr") (system* "fmtutil-sys" "--all"))) %standard-phases))))) (synopsis "Tex Live, a package of the TeX typesetting system") (description "TeX Live provides a comprehensive TeX document production system. It includes all the major TeX-related programs, macro packages, and fonts that are free software, including support for many languages around the world.") (license license:fsf) (home-page "http://www.tug.org/texlive/"))) --Boundary-00=_82VERg/oS+6l7Ti--