summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2008-03-20 09:52:08 +0000
committerMichael Raskin <7c6f434c@mail.ru>2008-03-20 09:52:08 +0000
commit77d61d38b59a921c3b043aaaa6623eed69ca3dbd (patch)
tree1c870a85f36a12384784c8e9d95464a9233285f2
parentc251639ab10a4e7ad3e508b0492262f131cbd0cf (diff)
downloadnixpkgs-77d61d38b59a921c3b043aaaa6623eed69ca3dbd.tar
nixpkgs-77d61d38b59a921c3b043aaaa6623eed69ca3dbd.tar.gz
nixpkgs-77d61d38b59a921c3b043aaaa6623eed69ca3dbd.tar.bz2
nixpkgs-77d61d38b59a921c3b043aaaa6623eed69ca3dbd.tar.lz
nixpkgs-77d61d38b59a921c3b043aaaa6623eed69ca3dbd.tar.xz
nixpkgs-77d61d38b59a921c3b043aaaa6623eed69ca3dbd.tar.zst
nixpkgs-77d61d38b59a921c3b043aaaa6623eed69ca3dbd.zip
Added TeXLive; still some troubles with texmf; just not to break nix-env -qas *
svn path=/nixpkgs/trunk/; revision=11216
-rw-r--r--pkgs/misc/tex/texlive/default.nix75
-rw-r--r--pkgs/misc/tex/texlive/setup-hook.sh7
2 files changed, 82 insertions, 0 deletions
diff --git a/pkgs/misc/tex/texlive/default.nix b/pkgs/misc/tex/texlive/default.nix
new file mode 100644
index 00000000000..cc0264b8515
--- /dev/null
+++ b/pkgs/misc/tex/texlive/default.nix
@@ -0,0 +1,75 @@
+args : with args; with builderDefs {src="";} null;
+	let localDefs = builderDefs (rec {
+		src = /* put a fetchurl here */
+		fetchurl {
+			url = debian://pool/main/t/texlive-bin/texlive-bin_2007.orig.tar.gz;
+			sha256 = "1fz5lqbigdrdg0pmaynissd7wn59p2yj9f203nl93dcpffrapxjv";
+		};
+		texmfSrc = 
+		fetchurl {
+			url = debian://pool/main/t/texlive-base/texlive-base_2007.orig.tar.gz;
+			sha256 = "16a4dyliidk43qj0m4gpsl9ln7nqsdcdx1lkbk4wrm03xpx87zvh";
+		};
+
+		setupHook = ./setup-hook.sh;
+
+		doInstall = FullDepEntry (''
+			ensureDir $out
+			ensureDir $out/nix-support 
+			cp ${setupHook} $out/nix-support/setup-hook.sh
+			ensureDir $out/share
+			tar xf ${texmfSrc} -C $out/share --strip-components=1
+			cd build/source
+			sed -e s@/usr/bin/@@g -i $(grep /usr/bin/ -rl . )
+			sed -e '/ubidi_open/i#include <unicode/urename.h>' -i $(find . -name configure)
+			sed -e s@ncurses/curses.h@curses.h@g -i $(grep ncurses/curses.h -rl . ) 
+			NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${stdenv.glibc}/include"
+			NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype}/include/freetype2"
+			echo NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${icu}/include/unicode"
+			NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${icu}/include/layout";
+			NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${stdenv.glibc}/include"
+			./configure --prefix=$out \
+				--with-x11 \
+				--with-system-zlib \
+				--with-system-freetype2 \
+				--with-system-t1lib \
+				--with-system-pnglib \
+				--with-system-gd \
+				--with-system-icu \
+				--with-system-ncurses \
+				--enable-ipc \
+				--with-mktexfmt
+			make 
+			make install
+			mv $out/bin $out/libexec
+			ensureDir $out/bin
+			for i in $out/libexec/*/*; do
+				echo -ne "#! /bin/sh\\n$i \"\$@\"" >$out/bin/$(basename $i)
+				chmod a+x $out/bin/$(basename $i)
+			done
+			texmf_var=$(mktemp -d /var/tmp/texmf-varXXXXXXXX)
+			mv $out/share/texmf-var/* $texmf_var/ 			
+			chmod -R a+rwX $texmf_var
+			ln -s $texmf_var $out/share/texmf-var
+			ln -s $out/share/texmf $out/share/texmf-config
+		'') ["minInit" "defEnsureDir" "doUnpack" "addInputs"];
+		buildInputs = [zlib bzip2 ncurses libpng ed flex bison libX11 xproto 
+			freetype t1lib gd libXaw icu ghostscript 
+			libXt libXpm libXmu libXext xextproto perl libSM 
+			libICE];
+		configureFlags = [];
+	}) args null; /* null is a terminator for sumArgs */
+	in with localDefs;
+stdenv.mkDerivation rec {
+	name = "TeXLive-core-2007";
+	builder = writeScript (name + "-builder")
+		(textClosure localDefs 
+			[doInstall doForceShare doPropagate]);
+	meta = {
+		description = "
+		TeX distribution.
+";
+		inherit src;
+		srcs = [texmfSrc];
+	};
+}
diff --git a/pkgs/misc/tex/texlive/setup-hook.sh b/pkgs/misc/tex/texlive/setup-hook.sh
new file mode 100644
index 00000000000..d79c4fae419
--- /dev/null
+++ b/pkgs/misc/tex/texlive/setup-hook.sh
@@ -0,0 +1,7 @@
+addTeXMFPath () {
+    if test -d "$1/share/texmf-nix"; then
+        export TEXINPUTS="${TEXINPUTS}${TEXINPUTS:+:}$1/share/texmf-nix//:"
+    fi
+}
+
+envHooks=(${envHooks[@]} addTeXMFPath)