From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roel Janssen Subject: Re: [PATCH] gnu: Add texmaker. Date: Tue, 24 May 2016 21:34:32 +0200 Message-ID: <87y46z6yif.fsf@gnu.org> References: <87posdzltg.fsf@gnu.org> <878tz0mpdd.fsf@gnu.org> <874m9owh78.fsf@gnu.org> <87shx7ainc.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:56375) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b5I6L-0007EA-2H for guix-devel@gnu.org; Tue, 24 May 2016 15:34:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b5I6F-0003kx-LV for guix-devel@gnu.org; Tue, 24 May 2016 15:34:47 -0400 In-reply-to: <87shx7ainc.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: Guix-devel --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-gnu-Rename-texlive-module-to-tex.patch Content-Transfer-Encoding: 8bit >From d8638ddcfa7357168f542f626579eba9b6c5286b Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Tue, 24 May 2016 21:18:53 +0200 Subject: [PATCH 1/2] gnu: Rename texlive module to tex. * gnu/local.mk (GNU_SYSTEM_MODULES): Rename texlive.scm to tex.scm. * gnu/packages/texlive.scm: Rename file to tex.scm. * gnu/packages/tex.scm: Renamed from texlive.scm. * gnu/packages/algebra.scm: Adjust accordingly. * gnu/packages/docbook.scm: Likewise. * gnu/packages/engineering.scm: Likewise. * gnu/packages/gettext.scm: Likewise. * gnu/packages/gnome.scm: Likewise. * gnu/packages/lisp.scm: Likewise. * gnu/packages/maths.scm: Likewise. * gnu/packages/music.scm: Likewise. * gnu/packages/ocaml.scm: Likewise. * gnu/packages/photo.scm: Likewise. * gnu/packages/plotutils.scm: Likewise. * gnu/packages/python.scm: Likewise. * gnu/packages/scheme.scm: Likewise. --- gnu/local.mk | 2 +- gnu/packages/algebra.scm | 2 +- gnu/packages/docbook.scm | 2 +- gnu/packages/engineering.scm | 2 +- gnu/packages/gettext.scm | 2 +- gnu/packages/gnome.scm | 2 +- gnu/packages/lisp.scm | 2 +- gnu/packages/maths.scm | 2 +- gnu/packages/music.scm | 2 +- gnu/packages/ocaml.scm | 2 +- gnu/packages/photo.scm | 2 +- gnu/packages/plotutils.scm | 2 +- gnu/packages/python.scm | 2 +- gnu/packages/scheme.scm | 2 +- gnu/packages/tex.scm | 389 +++++++++++++++++++++++++++++++++++++++++++ gnu/packages/texlive.scm | 389 ------------------------------------------- 16 files changed, 403 insertions(+), 403 deletions(-) create mode 100644 gnu/packages/tex.scm delete mode 100644 gnu/packages/texlive.scm diff --git a/gnu/local.mk b/gnu/local.mk index 9cd9699..d836a88 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -325,7 +325,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/telephony.scm \ %D%/packages/terminals.scm \ %D%/packages/texinfo.scm \ - %D%/packages/texlive.scm \ + %D%/packages/tex.scm \ %D%/packages/textutils.scm \ %D%/packages/time.scm \ %D%/packages/tls.scm \ diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 53f6f3e..9518e65 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -37,7 +37,7 @@ #:use-module (gnu packages flex) #:use-module (gnu packages python) #:use-module (gnu packages tcsh) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages xiph) #:use-module (gnu packages xorg) #:use-module ((guix licenses) #:prefix license:) diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index 2bd86fe..b8a8ba6 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -23,7 +23,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages imagemagick) #:use-module (gnu packages inkscape) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages python) #:use-module (gnu packages base) #:use-module (gnu packages xml) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index c519ca5..4673715 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -52,7 +52,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) #:use-module (gnu packages tcl) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (srfi srfi-1)) (define-public librecad diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm index 50d480a..34338f9 100644 --- a/gnu/packages/gettext.scm +++ b/gnu/packages/gettext.scm @@ -28,7 +28,7 @@ #:use-module (guix build-system perl) #:use-module (gnu packages docbook) #:use-module (gnu packages perl) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages xml)) ;; Use that name to avoid clashes with Guile's 'gettext' procedure. diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c5d53d1..04d9bb7 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -97,7 +97,7 @@ #:use-module (gnu packages geeqie) #:use-module (gnu packages gl) #:use-module (gnu packages compression) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages webkit) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 85f3f3c..e349907 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -26,7 +26,7 @@ #:use-module (guix packages) #:use-module (gnu packages readline) #:use-module (gnu packages texinfo) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages m4) #:use-module (guix download) #:use-module (guix git-download) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 19ed44f..80e48ca 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -81,7 +81,7 @@ #:use-module (gnu packages tcsh) #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages tls) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index f2787ee..50f9a70 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -85,7 +85,7 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages web) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index aafae51..a0a4b93 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -38,7 +38,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages compression) #:use-module (gnu packages xorg) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages ghostscript) #:use-module (gnu packages lynx) #:use-module (gnu packages perl) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 2592565..4b21926 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -43,7 +43,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages readline) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages web) #:use-module (gnu packages xfig) #:use-module (gnu packages xml)) diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index 5871fb0..3edb25a 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -38,7 +38,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages texinfo) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages compression) #:use-module (gnu packages)) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 602da2d..61c55e2 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -68,7 +68,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages readline) #:use-module (gnu packages statistics) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index c378dc3..6baee2b 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -35,7 +35,7 @@ #:use-module (gnu packages databases) #:use-module (gnu packages emacs) #:use-module (gnu packages texinfo) - #:use-module (gnu packages texlive) + #:use-module (gnu packages tex) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages pkg-config) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm new file mode 100644 index 0000000..eab85f1 --- /dev/null +++ b/gnu/packages/tex.scm @@ -0,0 +1,389 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge +;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2015 Mark H Weaver +;;; +;;; 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 tex) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages bash) + #: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 image) + #:use-module (gnu packages lua) + #:use-module (gnu packages multiprecision) + #: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 xdisorg) + #:use-module (gnu packages zip) + #:autoload (gnu packages texinfo) (texinfo) + #:use-module (ice-9 ftw) + #:use-module (srfi srfi-1)) + +(define texlive-extra-src + (origin + (method url-fetch) + (uri "ftp://tug.org/historic/systems/texlive/2015/texlive-20150523-extra.tar.xz") + (sha256 (base32 + "1dkhhacga8h1v2m9xv1w02glbdda2m8lfp1la1y1zb9yjj8jsa6i")))) + +(define texlive-texmf-src + (origin + (method url-fetch) + (uri "ftp://tug.org/historic/systems/texlive/2015/texlive-20150523-texmf.tar.xz") + (sha256 (base32 + "1a3hpcg6x69ysqx432v6sk4alg0x34813cwk41frmvzprdajpyqy")))) + +(define texlive-bin + (package + (name "texlive-bin") + (version "2015") + (source + (origin + (method url-fetch) + (uri "ftp://tug.org/historic/systems/texlive/2015/texlive-20150521-source.tar.xz") + (sha256 (base32 + "0sa6kmz4jwhv6lw702gxszhhjkvw071wba0ngk1c76g8vixwv6zd")))) + (build-system gnu-build-system) + (inputs + `(("texlive-extra-src" ,texlive-extra-src) + ("cairo" ,cairo) + ("fontconfig" ,fontconfig) + ("fontforge" ,fontforge) + ("freetype" ,freetype) + ("gd" ,gd) + ("gmp" ,gmp) + ("ghostscript" ,ghostscript) + ("graphite2" ,graphite2) + ("harfbuzz" ,harfbuzz) + ("icu4c" ,icu4c) + ("libpaper" ,libpaper) + ("libpng" ,libpng) + ("libxaw" ,libxaw) + ("libxt" ,libxt) + ("mpfr" ,mpfr) + ("perl" ,perl) + ("pixman" ,pixman) + ("poppler" ,poppler) + ("potrace" ,potrace) + ("python" ,python-2) ; incompatible with Python 3 (print syntax) + ("ruby" ,ruby) + ("tcsh" ,tcsh) + ("teckit" ,teckit) + ("zlib" ,zlib) + ("zziplib" ,zziplib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (arguments + `(#:out-of-source? #t + #:configure-flags + `("--disable-native-texlive-build" + "--with-system-cairo" + "--with-system-freetype2" + "--with-system-gd" + "--with-system-gmp" + "--with-system-graphite2" + "--with-system-harfbuzz" + "--with-system-icu" + "--with-system-libgs" + "--with-system-libpaper" + "--with-system-libpng" + "--with-system-mpfr" + "--with-system-pixman" + "--with-system-poppler" + "--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 + (modify-phases %standard-phases + (add-after 'install 'postint + (lambda* (#:key inputs outputs #:allow-other-keys #:rest args) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share")) + (texlive-extra (assoc-ref inputs "texlive-extra-src")) + (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 share "/man/man1/") + (symlink "luatex.1" "lualatex.1")) + ;; 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" share)))))))) + (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. + +This package contains the binaries.") + (license (license:fsf-free "http://tug.org/texlive/copying.html")) + (home-page "http://www.tug.org/texlive/"))) + +(define texlive-texmf + (package + (name "texlive-texmf") + (version "2015") + (source texlive-texmf-src) + (build-system gnu-build-system) + (inputs + `(("texlive-bin" ,texlive-bin) + ("lua" ,lua) + ("perl" ,perl) + ("python" ,python-2) ; incompatible with Python 3 (print syntax) + ("ruby" ,ruby) + ("tcsh" ,tcsh))) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:phases + (modify-phases (map (cut assq <> %standard-phases) + '(set-paths unpack patch-source-shebangs)) + (add-after 'patch-source-shebangs 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((share (string-append (assoc-ref outputs "out") "/share"))) + (mkdir-p share) + (system* "mv" "texmf-dist" share)))) + (add-after 'install 'texmf-config + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share")) + (texmfroot (string-append share "/texmf-dist/web2c")) + (texmfcnf (string-append texmfroot "/texmf.cnf")) + (texlive-bin (assoc-ref inputs "texlive-bin")) + (texbin (string-append texlive-bin "/bin")) + (tlpkg (string-append texlive-bin "/share/tlpkg"))) + ;; Register SHARE as TEXMFROOT in texmf.cnf. + (substitute* texmfcnf + (("TEXMFROOT = \\$SELFAUTOPARENT") + (string-append "TEXMFROOT = " share))) + ;; Register paths in texmfcnf.lua, needed for context. + (substitute* (string-append texmfroot "/texmfcnf.lua") + (("selfautodir:") out) + (("selfautoparent:") (string-append share "/"))) + ;; Set path to TeXLive Perl modules + (setenv "PERL5LIB" + (string-append (getenv "PERL5LIB") ":" tlpkg)) + ;; Configure the texmf-dist tree; inspired from + ;; http://slackbuilds.org/repository/13.37/office/texlive/ + (setenv "PATH" (string-append (getenv "PATH") ":" texbin)) + (setenv "TEXMFCNF" texmfroot) + (system* "updmap-sys" "--nohash" "--syncwithtrees") + (system* "mktexlsr") + (system* "fmtutil-sys" "--all"))))))) + (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. + +This package contains the complete tree of texmf-dist data.") + (license (license:fsf-free "http://tug.org/texlive/copying.html")) + (home-page "http://www.tug.org/texlive/"))) + +(define-public texlive + (package + (name "texlive") + (version "2015") + (source #f) + (build-system trivial-build-system) + (inputs `(("bash" ,bash) ; for wrap-program + ("texlive-bin" ,texlive-bin) + ("texlive-texmf" ,texlive-texmf))) + (arguments + `(#:modules ((guix build utils)) + #:builder + ;; Build the union of texlive-bin and texlive-texmf, but take the + ;; conflicting subdirectory share/texmf-dist from texlive-texmf. + (begin + (use-modules (guix build utils)) + (let ((out (assoc-ref %outputs "out")) + (bin (assoc-ref %build-inputs "texlive-bin")) + (texmf (assoc-ref %build-inputs "texlive-texmf")) + (bash (assoc-ref %build-inputs "bash"))) + (mkdir out) + (with-directory-excursion out + (for-each + (lambda (name) + (symlink (string-append bin "/" name) name)) + '("include" "lib")) + (mkdir "bin") + (with-directory-excursion "bin" + (setenv "PATH" (string-append bash "/bin")) + (for-each + (lambda (name) + (symlink name (basename name)) + (wrap-program + (basename name) + `("TEXMFCNF" = + (,(string-append texmf "/share/texmf-dist/web2c"))))) + (find-files (string-append bin "/bin/") ""))) + (mkdir "share") + (with-directory-excursion "share" + (for-each + (lambda (name) + (symlink (string-append bin "/share/" name) name)) + '("info" "man" "tlpkg")) + (for-each + (lambda (name) + (symlink (string-append texmf "/share/" name) name)) + '("texmf-dist" "texmf-var")))))))) + (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. + +This package contains the complete TeX Live distribution.") + (license (license:fsf-free "http://tug.org/texlive/copying.html")) + (home-page "http://www.tug.org/texlive/"))) + + +;; texlive-texmf-minimal is a pruned, small version of the texlive tree, +;; in particular dropping documentation and fonts. +(define texlive-texmf-minimal + (package (inherit texlive-texmf) + (name "texlive-texmf-minimal") + (arguments + (substitute-keyword-arguments + (package-arguments texlive-texmf) + ((#:modules modules) + `((ice-9 ftw) + (srfi srfi-1) + ,@modules)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'prune + (lambda _ + (define (delete subdir exclude) + "Delete all files and directories in SUBDIR except for those +given in the list EXCLUDE." + (with-directory-excursion subdir + (for-each delete-file-recursively + (lset-difference equal? + (scandir ".") + (append '("." "..") + exclude))))) + (with-directory-excursion "texmf-dist" + (for-each delete-file-recursively + '("doc" "source" "tex4ht")) + ;; Delete all subdirectories of "fonts", except for "tfm" and + ;; any directories named "cm". + (delete "fonts" '("afm" "map" "pk" "source" "tfm" "type1")) + (delete "fonts/afm" '("public")) + (delete "fonts/afm/public" '("amsfonts")) + (delete "fonts/afm/public/amsfonts" '("cm")) + (delete "fonts/map" '("dvips")) + (delete "fonts/map/dvips" '("cm")) + (delete "fonts/source" '("public")) + (delete "fonts/source/public" '("cm")) + (delete "fonts/tfm" '("public")) + (delete "fonts/type1" '("public")) + (delete "fonts/type1/public" '("amsfonts")) + (delete "fonts/type1/public/amsfonts" '("cm"))) + #t)))))) + (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. + +This package contains a small subset of the texmf-dist data."))) + + +;; texlive-minimal is the same as texlive, but using texlive-texmf-minimal +;; instead of the full texlive-texmf. It can be used, for instance, as a +;; native input to packages that need texlive to build their documentation. +(define-public texlive-minimal + (package (inherit texlive) + (name "texlive-minimal") + (inputs + `(("texlive-texmf" ,texlive-texmf-minimal) + ,@(alist-delete "texlive-texmf" (package-inputs texlive)))) + (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. + +This package contains a small working part of the TeX Live distribution."))) + + +(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+))) diff --git a/gnu/packages/texlive.scm b/gnu/packages/texlive.scm deleted file mode 100644 index cbcb6c8..0000000 --- a/gnu/packages/texlive.scm +++ /dev/null @@ -1,389 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge -;;; Copyright © 2014 Eric Bavier -;;; Copyright © 2015 Mark H Weaver -;;; -;;; 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) #:prefix license:) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix build-system trivial) - #:use-module (guix utils) - #:use-module (gnu packages) - #:use-module (gnu packages bash) - #: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 image) - #:use-module (gnu packages lua) - #:use-module (gnu packages multiprecision) - #: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 xdisorg) - #:use-module (gnu packages zip) - #:autoload (gnu packages texinfo) (texinfo) - #:use-module (ice-9 ftw) - #:use-module (srfi srfi-1)) - -(define texlive-extra-src - (origin - (method url-fetch) - (uri "ftp://tug.org/historic/systems/texlive/2015/texlive-20150523-extra.tar.xz") - (sha256 (base32 - "1dkhhacga8h1v2m9xv1w02glbdda2m8lfp1la1y1zb9yjj8jsa6i")))) - -(define texlive-texmf-src - (origin - (method url-fetch) - (uri "ftp://tug.org/historic/systems/texlive/2015/texlive-20150523-texmf.tar.xz") - (sha256 (base32 - "1a3hpcg6x69ysqx432v6sk4alg0x34813cwk41frmvzprdajpyqy")))) - -(define texlive-bin - (package - (name "texlive-bin") - (version "2015") - (source - (origin - (method url-fetch) - (uri "ftp://tug.org/historic/systems/texlive/2015/texlive-20150521-source.tar.xz") - (sha256 (base32 - "0sa6kmz4jwhv6lw702gxszhhjkvw071wba0ngk1c76g8vixwv6zd")))) - (build-system gnu-build-system) - (inputs - `(("texlive-extra-src" ,texlive-extra-src) - ("cairo" ,cairo) - ("fontconfig" ,fontconfig) - ("fontforge" ,fontforge) - ("freetype" ,freetype) - ("gd" ,gd) - ("gmp" ,gmp) - ("ghostscript" ,ghostscript) - ("graphite2" ,graphite2) - ("harfbuzz" ,harfbuzz) - ("icu4c" ,icu4c) - ("libpaper" ,libpaper) - ("libpng" ,libpng) - ("libxaw" ,libxaw) - ("libxt" ,libxt) - ("mpfr" ,mpfr) - ("perl" ,perl) - ("pixman" ,pixman) - ("poppler" ,poppler) - ("potrace" ,potrace) - ("python" ,python-2) ; incompatible with Python 3 (print syntax) - ("ruby" ,ruby) - ("tcsh" ,tcsh) - ("teckit" ,teckit) - ("zlib" ,zlib) - ("zziplib" ,zziplib))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (arguments - `(#:out-of-source? #t - #:configure-flags - `("--disable-native-texlive-build" - "--with-system-cairo" - "--with-system-freetype2" - "--with-system-gd" - "--with-system-gmp" - "--with-system-graphite2" - "--with-system-harfbuzz" - "--with-system-icu" - "--with-system-libgs" - "--with-system-libpaper" - "--with-system-libpng" - "--with-system-mpfr" - "--with-system-pixman" - "--with-system-poppler" - "--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 - (modify-phases %standard-phases - (add-after 'install 'postint - (lambda* (#:key inputs outputs #:allow-other-keys #:rest args) - (let* ((out (assoc-ref outputs "out")) - (share (string-append out "/share")) - (texlive-extra (assoc-ref inputs "texlive-extra-src")) - (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 share "/man/man1/") - (symlink "luatex.1" "lualatex.1")) - ;; 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" share)))))))) - (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. - -This package contains the binaries.") - (license (license:fsf-free "http://tug.org/texlive/copying.html")) - (home-page "http://www.tug.org/texlive/"))) - -(define texlive-texmf - (package - (name "texlive-texmf") - (version "2015") - (source texlive-texmf-src) - (build-system gnu-build-system) - (inputs - `(("texlive-bin" ,texlive-bin) - ("lua" ,lua) - ("perl" ,perl) - ("python" ,python-2) ; incompatible with Python 3 (print syntax) - ("ruby" ,ruby) - ("tcsh" ,tcsh))) - (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-26)) - #:phases - (modify-phases (map (cut assq <> %standard-phases) - '(set-paths unpack patch-source-shebangs)) - (add-after 'patch-source-shebangs 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((share (string-append (assoc-ref outputs "out") "/share"))) - (mkdir-p share) - (system* "mv" "texmf-dist" share)))) - (add-after 'install 'texmf-config - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (share (string-append out "/share")) - (texmfroot (string-append share "/texmf-dist/web2c")) - (texmfcnf (string-append texmfroot "/texmf.cnf")) - (texlive-bin (assoc-ref inputs "texlive-bin")) - (texbin (string-append texlive-bin "/bin")) - (tlpkg (string-append texlive-bin "/share/tlpkg"))) - ;; Register SHARE as TEXMFROOT in texmf.cnf. - (substitute* texmfcnf - (("TEXMFROOT = \\$SELFAUTOPARENT") - (string-append "TEXMFROOT = " share))) - ;; Register paths in texmfcnf.lua, needed for context. - (substitute* (string-append texmfroot "/texmfcnf.lua") - (("selfautodir:") out) - (("selfautoparent:") (string-append share "/"))) - ;; Set path to TeXLive Perl modules - (setenv "PERL5LIB" - (string-append (getenv "PERL5LIB") ":" tlpkg)) - ;; Configure the texmf-dist tree; inspired from - ;; http://slackbuilds.org/repository/13.37/office/texlive/ - (setenv "PATH" (string-append (getenv "PATH") ":" texbin)) - (setenv "TEXMFCNF" texmfroot) - (system* "updmap-sys" "--nohash" "--syncwithtrees") - (system* "mktexlsr") - (system* "fmtutil-sys" "--all"))))))) - (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. - -This package contains the complete tree of texmf-dist data.") - (license (license:fsf-free "http://tug.org/texlive/copying.html")) - (home-page "http://www.tug.org/texlive/"))) - -(define-public texlive - (package - (name "texlive") - (version "2015") - (source #f) - (build-system trivial-build-system) - (inputs `(("bash" ,bash) ; for wrap-program - ("texlive-bin" ,texlive-bin) - ("texlive-texmf" ,texlive-texmf))) - (arguments - `(#:modules ((guix build utils)) - #:builder - ;; Build the union of texlive-bin and texlive-texmf, but take the - ;; conflicting subdirectory share/texmf-dist from texlive-texmf. - (begin - (use-modules (guix build utils)) - (let ((out (assoc-ref %outputs "out")) - (bin (assoc-ref %build-inputs "texlive-bin")) - (texmf (assoc-ref %build-inputs "texlive-texmf")) - (bash (assoc-ref %build-inputs "bash"))) - (mkdir out) - (with-directory-excursion out - (for-each - (lambda (name) - (symlink (string-append bin "/" name) name)) - '("include" "lib")) - (mkdir "bin") - (with-directory-excursion "bin" - (setenv "PATH" (string-append bash "/bin")) - (for-each - (lambda (name) - (symlink name (basename name)) - (wrap-program - (basename name) - `("TEXMFCNF" = - (,(string-append texmf "/share/texmf-dist/web2c"))))) - (find-files (string-append bin "/bin/") ""))) - (mkdir "share") - (with-directory-excursion "share" - (for-each - (lambda (name) - (symlink (string-append bin "/share/" name) name)) - '("info" "man" "tlpkg")) - (for-each - (lambda (name) - (symlink (string-append texmf "/share/" name) name)) - '("texmf-dist" "texmf-var")))))))) - (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. - -This package contains the complete TeX Live distribution.") - (license (license:fsf-free "http://tug.org/texlive/copying.html")) - (home-page "http://www.tug.org/texlive/"))) - - -;; texlive-texmf-minimal is a pruned, small version of the texlive tree, -;; in particular dropping documentation and fonts. -(define texlive-texmf-minimal - (package (inherit texlive-texmf) - (name "texlive-texmf-minimal") - (arguments - (substitute-keyword-arguments - (package-arguments texlive-texmf) - ((#:modules modules) - `((ice-9 ftw) - (srfi srfi-1) - ,@modules)) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'prune - (lambda _ - (define (delete subdir exclude) - "Delete all files and directories in SUBDIR except for those -given in the list EXCLUDE." - (with-directory-excursion subdir - (for-each delete-file-recursively - (lset-difference equal? - (scandir ".") - (append '("." "..") - exclude))))) - (with-directory-excursion "texmf-dist" - (for-each delete-file-recursively - '("doc" "source" "tex4ht")) - ;; Delete all subdirectories of "fonts", except for "tfm" and - ;; any directories named "cm". - (delete "fonts" '("afm" "map" "pk" "source" "tfm" "type1")) - (delete "fonts/afm" '("public")) - (delete "fonts/afm/public" '("amsfonts")) - (delete "fonts/afm/public/amsfonts" '("cm")) - (delete "fonts/map" '("dvips")) - (delete "fonts/map/dvips" '("cm")) - (delete "fonts/source" '("public")) - (delete "fonts/source/public" '("cm")) - (delete "fonts/tfm" '("public")) - (delete "fonts/type1" '("public")) - (delete "fonts/type1/public" '("amsfonts")) - (delete "fonts/type1/public/amsfonts" '("cm"))) - #t)))))) - (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. - -This package contains a small subset of the texmf-dist data."))) - - -;; texlive-minimal is the same as texlive, but using texlive-texmf-minimal -;; instead of the full texlive-texmf. It can be used, for instance, as a -;; native input to packages that need texlive to build their documentation. -(define-public texlive-minimal - (package (inherit texlive) - (name "texlive-minimal") - (inputs - `(("texlive-texmf" ,texlive-texmf-minimal) - ,@(alist-delete "texlive-texmf" (package-inputs texlive)))) - (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. - -This package contains a small working part of the TeX Live distribution."))) - - -(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+))) -- 2.8.3 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0002-gnu-Add-texmaker.patch Content-Transfer-Encoding: 8bit >From 1a7e23191fe4371f6d65b04b839f5fbb464e054a Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Tue, 24 May 2016 21:23:31 +0200 Subject: [PATCH 2/2] gnu: Add texmaker. * gnu/packages/tex.scm (texmaker): New variable. --- gnu/packages/tex.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index eab85f1..c1ab8b3 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2016 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -40,6 +41,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages qt) #:use-module (gnu packages ruby) #:use-module (gnu packages tcsh) #:use-module (gnu packages base) @@ -387,3 +389,40 @@ 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+))) + +(define-public texmaker + (package + (name "texmaker") + (version "4.5") + (source (origin + (method url-fetch) + (uri (string-append "http://www.xm1math.net/texmaker/texmaker-" + version ".tar.bz2")) + (sha256 + (base32 + "056njk6j8wma23mlp7xa3rgfaxx0q8ynwx8wkmj7iy0b85p9ds9c")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Qt has its own configuration utility. + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (zero? (system* "qmake" + (string-append "PREFIX=" out) + (string-append "DESKTOPDIR=" out + "/share/applications") + (string-append "ICONDIR=" out "/share/pixmaps") + "texmaker.pro")))))))) + (inputs + `(("poppler-qt5" ,poppler-qt5) + ("qt" ,qt) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://www.xm1math.net/texmaker/") + (synopsis "LaTeX editor") + (description "Texmaker is a program that integrates many tools needed to +develop documents with LaTeX, in a single application.") + (license license:gpl2+))) -- 2.8.3 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Ludovic Courtès writes: > Roel Janssen skribis: > >> From fc657a31b4a52628c09a0b634c49b71cce2230bc Mon Sep 17 00:00:00 2001 >> From: Roel Janssen >> Date: Tue, 24 May 2016 00:14:59 +0200 >> Subject: [PATCH 1/2] gnu: Rename texlive to tex. >> >> * gnu/local.mk (GNU_SYSTEM_MODULES): Rename texlive.scm to tex.scm. >> * gnu/packages/texlive.scm: Rename file to tex.scm. >> * gnu/packages/tex.scm: Renamed from texlive.scm. >> * gnu/packages/algebra.scm: Rename texlive to tex. > > Here I’d just put “Adjust accordingly.” > >> * gnu/packages/docbook.scm: Rename texlive to tex. >> * gnu/packages/engineering.scm: Rename texlive to tex. > > … and here “Likewise.” is enough. > > Apart from that LGTM! I've changed the commit message. Hopefully it's how you envisioned it should be. I modified the first line to be more clear about what is to be renamed (the module, not the package). This version of the patch also renames Efraim Flashner's recent addition of texlive in photo.scm. >> From f54915ab4ab70133adced8fd71649918e38ba659 Mon Sep 17 00:00:00 2001 >> From: Roel Janssen >> Date: Tue, 24 May 2016 00:16:05 +0200 >> Subject: [PATCH 2/2] gnu: Add texmaker. >> >> * gnu/packages/tex.scm (texmaker): New variable. > > OK. > > I think it would help now if you could access the repo directly. :-) > > What’s your Savannah account? Please make sure to upload your current > OpenPGP public key there. Thanks! My Savannah username is roelj. I've created a new PGP key and updated my account's public key accordingly. May I sign and push these patches? Kind regards, Roel Janssen --=-=-=--