From 719217d77a78de67089b4856aaa8dc00fc7789fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andres=20L=C3=B6h?= Date: Fri, 27 Jan 2006 20:51:41 +0000 Subject: [PATCH] * modified tetex to support extra .sty's from other packages * added lazylist and polytable (both tetex packages) * added lhs2tex ebuild, depending on the two above svn path=/nixpkgs/trunk/; revision=4609 --- pkgs/misc/tex/lazylist/builder.sh | 18 +++++++++++ pkgs/misc/tex/lazylist/default.nix | 15 ++++++++++ pkgs/misc/tex/polytable/builder.sh | 21 +++++++++++++ pkgs/misc/tex/polytable/default.nix | 17 +++++++++++ pkgs/misc/tex/tetex/builder.sh | 6 ++++ pkgs/misc/tex/tetex/default.nix | 4 +++ pkgs/misc/tex/tetex/environment.patch | 35 ++++++++++++++++++++++ pkgs/misc/tex/tetex/setup-hook.sh | 7 +++++ pkgs/system/all-packages-generic.nix | 12 ++++++++ pkgs/tools/typesetting/lhs2tex/builder.sh | 12 ++++++++ pkgs/tools/typesetting/lhs2tex/default.nix | 19 ++++++++++++ 11 files changed, 166 insertions(+) create mode 100644 pkgs/misc/tex/lazylist/builder.sh create mode 100644 pkgs/misc/tex/lazylist/default.nix create mode 100644 pkgs/misc/tex/polytable/builder.sh create mode 100644 pkgs/misc/tex/polytable/default.nix create mode 100644 pkgs/misc/tex/tetex/environment.patch create mode 100644 pkgs/misc/tex/tetex/setup-hook.sh create mode 100644 pkgs/tools/typesetting/lhs2tex/builder.sh create mode 100644 pkgs/tools/typesetting/lhs2tex/default.nix diff --git a/pkgs/misc/tex/lazylist/builder.sh b/pkgs/misc/tex/lazylist/builder.sh new file mode 100644 index 00000000000..f355a55a99f --- /dev/null +++ b/pkgs/misc/tex/lazylist/builder.sh @@ -0,0 +1,18 @@ +source $stdenv/setup + +phases="installPhase" +dontMakeInstall="yes" +prefix="$out" + +preInstall() { + + ensureDir "$out/share/texmf-nix/tex/latex/lazylist" + cp lazylist.sty "$out/share/texmf-nix/tex/latex/lazylist" + +} + +preInstall=preInstall + +genericBuild + + diff --git a/pkgs/misc/tex/lazylist/default.nix b/pkgs/misc/tex/lazylist/default.nix new file mode 100644 index 00000000000..19637793b00 --- /dev/null +++ b/pkgs/misc/tex/lazylist/default.nix @@ -0,0 +1,15 @@ +{stdenv, fetchurl, tetex}: + +stdenv.mkDerivation { + name = "lazylist-1.0a"; + builder = ./builder.sh; + + src = fetchurl { + url = http://www.iai.uni-bonn.de/~loeh/lhs2tex/lazylist-1.0a.tar.bz2; + md5 = "8ef357df5845bd8d6075fca6e1f214ab"; + }; + + buildInputs = [tetex]; + + inherit tetex; +} diff --git a/pkgs/misc/tex/polytable/builder.sh b/pkgs/misc/tex/polytable/builder.sh new file mode 100644 index 00000000000..fa1143edcba --- /dev/null +++ b/pkgs/misc/tex/polytable/builder.sh @@ -0,0 +1,21 @@ +source $stdenv/setup + +phases="installPhase" +dontMakeInstall="yes" +prefix="$out" + +preInstall() { + + ensureDir "$out/share/texmf-nix/tex/latex/polytable" + ensureDir "$out/share/texmf-nix/doc/latex/polytable" + latex polytable.ins + pdflatex polytable.dtx + pdflatex polytable.dtx + cp polytable.sty "$out/share/texmf-nix/tex/latex/polytable" + cp polytable.pdf "$out/share/texmf-nix/doc/latex/polytable" + +} + +preInstall=preInstall + +genericBuild diff --git a/pkgs/misc/tex/polytable/default.nix b/pkgs/misc/tex/polytable/default.nix new file mode 100644 index 00000000000..639656342e2 --- /dev/null +++ b/pkgs/misc/tex/polytable/default.nix @@ -0,0 +1,17 @@ +{stdenv, fetchurl, tetex, lazylist}: + +assert tetex == lazylist.tetex; + +stdenv.mkDerivation { + name = "polytable-0.8.2"; + builder = ./builder.sh; + + src = fetchurl { + url = http://www.iai.uni-bonn.de/~loeh/polytable-0.8.2.tar.gz; + md5 = "c59edf035ae6e19b64b1ae920fea28e7"; + }; + + propagatedBuildInputs = [tetex lazylist]; + + inherit tetex; +} diff --git a/pkgs/misc/tex/tetex/builder.sh b/pkgs/misc/tex/tetex/builder.sh index 7f3dfa3d358..f3fe32fbb70 100644 --- a/pkgs/misc/tex/tetex/builder.sh +++ b/pkgs/misc/tex/tetex/builder.sh @@ -17,4 +17,10 @@ configureFlags="\ --with-system-ncurses \ " +postInstall() { + ensureDir "$out/nix-support" + cp $setupHook $out/nix-support/setup-hook +} +postInstall=postInstall + genericBuild diff --git a/pkgs/misc/tex/tetex/default.nix b/pkgs/misc/tex/tetex/default.nix index c24566a96bb..4e786b1a978 100644 --- a/pkgs/misc/tex/tetex/default.nix +++ b/pkgs/misc/tex/tetex/default.nix @@ -15,4 +15,8 @@ stdenv.mkDerivation { }; buildInputs = [flex bison zlib libpng ncurses ed]; + + patches = [./environment.patch]; + + setupHook = ./setup-hook.sh; } diff --git a/pkgs/misc/tex/tetex/environment.patch b/pkgs/misc/tex/tetex/environment.patch new file mode 100644 index 00000000000..6e652849b77 --- /dev/null +++ b/pkgs/misc/tex/tetex/environment.patch @@ -0,0 +1,35 @@ +diff -rc --exclude=texmf.in tetex-src-3.0.orig/texk/kpathsea/texmf.in-teTeX tetex-src-3.0/texk/kpathsea/texmf.in-teTeX +*** tetex-src-3.0.orig/texk/kpathsea/texmf.in-teTeX 2006-01-27 17:33:11.000000000 +0100 +--- tetex-src-3.0/texk/kpathsea/texmf.in-teTeX 2006-01-27 17:38:35.000000000 +0100 +*************** +*** 104,109 **** +--- 104,115 ---- + % TEXMFCONFIG = @texmf@-config + TEXMFCONFIG = $HOME/.texmf-config + ++ % TEXMFNIX is supposed to be unset. It's used by the Nix ++ % system to add trees during the build of nix-expressions. ++ ++ % TEXMFNIXHOME, for packages in the user environment. ++ TEXMFNIXHOME = $HOME/.nix-profile/share/texmf-nix ++ + % Now, list all the texmf trees. If you have multiple trees you can + % use shell brace notation, like this: + % TEXMF = {$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFMAIN} +*************** +*** 111,117 **** + % + % For texconfig to work properly, TEXMFCONGIG and TEXMFVAR should be named + % explicitly and before all other trees. +! TEXMF = {!!$TEXMFCONFIG,!!$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST} + + % The system trees. These are the trees that are shared by all the users. + SYSTEXMF = $TEXMFLOCAL;$TEXMFMAIN;$TEXMFDIST +--- 117,123 ---- + % + % For texconfig to work properly, TEXMFCONGIG and TEXMFVAR should be named + % explicitly and before all other trees. +! TEXMF = {!!$TEXMFCONFIG,!!$TEXMFVAR,$TEXMFNIX,$TEXMFHOME,$TEXMFNIXHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST} + + % The system trees. These are the trees that are shared by all the users. + SYSTEXMF = $TEXMFLOCAL;$TEXMFMAIN;$TEXMFDIST diff --git a/pkgs/misc/tex/tetex/setup-hook.sh b/pkgs/misc/tex/tetex/setup-hook.sh new file mode 100644 index 00000000000..435b6948e29 --- /dev/null +++ b/pkgs/misc/tex/tetex/setup-hook.sh @@ -0,0 +1,7 @@ +addTeXMFPath () { + if test -d "$1/share/texmf-nix"; then + export TEXMFNIX="${TEXMFNIX}${TEXMFNIX:+:}$1/share/texmf-nix" + fi +} + +envHooks=(${envHooks[@]} addTeXMFPath) diff --git a/pkgs/system/all-packages-generic.nix b/pkgs/system/all-packages-generic.nix index 2e4028c1e55..1215f8daf77 100644 --- a/pkgs/system/all-packages-generic.nix +++ b/pkgs/system/all-packages-generic.nix @@ -244,6 +244,10 @@ rec { inherit fetchurl stdenv ocaml; }; + lhs2tex = (import ../tools/typesetting/lhs2tex) { + inherit fetchurl stdenv ghc tetex polytable; + }; + xmlroff = (import ../tools/typesetting/xmlroff) { inherit fetchurl stdenv pkgconfig libxml2 libxslt popt; inherit (gtkLibs) glib pango gtk; @@ -2130,6 +2134,14 @@ rec { inherit fetchurl stdenv flex bison zlib libpng ncurses ed; }; + lazylist = (import ../misc/tex/lazylist) { + inherit fetchurl stdenv tetex; + }; + + polytable = (import ../misc/tex/polytable) { + inherit fetchurl stdenv tetex lazylist; + }; + ghostscript = (import ../misc/ghostscript) { inherit fetchurl stdenv libjpeg libpng zlib x11; x11Support = false; diff --git a/pkgs/tools/typesetting/lhs2tex/builder.sh b/pkgs/tools/typesetting/lhs2tex/builder.sh new file mode 100644 index 00000000000..d9040220d1d --- /dev/null +++ b/pkgs/tools/typesetting/lhs2tex/builder.sh @@ -0,0 +1,12 @@ +source $stdenv/setup + +postInstall() { + + ensureDir "$out/share/doc/$name" + cp doc/Guide2.pdf $out/share/doc/$name + +} + +postInstall=postInstall + +genericBuild diff --git a/pkgs/tools/typesetting/lhs2tex/default.nix b/pkgs/tools/typesetting/lhs2tex/default.nix new file mode 100644 index 00000000000..aff5b68226f --- /dev/null +++ b/pkgs/tools/typesetting/lhs2tex/default.nix @@ -0,0 +1,19 @@ +{stdenv, fetchurl, tetex, polytable, ghc}: + +assert tetex == polytable.tetex; + +stdenv.mkDerivation { + name = "lhs2tex-1.10pre"; + builder = ./builder.sh; + + src = fetchurl { + url = http://www.iai.uni-bonn.de/~loeh/lhs2tex/lhs2tex-1.10pre.tar.bz2; + md5 = "4fb875cdc0ba8daacc18b97f76aab4bf"; + }; + + buildInputs = [tetex ghc]; + propagatedBuildInputs = [polytable]; + + inherit tetex; +} +