Fix #4210: Remove builderDefs

This was one of the ways to build packages, we are trying
hard to minimize different ways so it's easier for newcomers
to learn only one way.

This also:

- removes texLive (old), fixes #14807
- removed upstream-updater, if that code is still used it should be in
  separate repo
- changes a few packages like gitit/mit-scheme to use new texlive
This commit is contained in:
Domen Kožar
2016-08-31 11:34:46 +02:00
parent 557b329608
commit da421bc75f
21 changed files with 5 additions and 1324 deletions

View File

@@ -1,87 +0,0 @@
args @ {poppler, perl, makeWrapper, ... }: with args;
rec {
name = "TeXLive-linkdir";
buildInputs = lib.closePropagation paths
++ [perl]
++ stdenv.lib.optional stdenv.isDarwin makeWrapper;
phaseNames = [ "doAggregate" ];
doAggregate = fullDepEntry (''
set +o pipefail
mkdir -p $out/bin
for currentPath in ${lib.concatStringsSep " " buildInputs}; do
echo Symlinking "$currentPath"
find $currentPath/share/info $currentPath/share/man $(echo $currentPath/texmf*/) -type d | while read; do
REPLY="''${REPLY#$currentPath}"
mkdir -p $out/"$REPLY"
done
find $currentPath/share/info $currentPath/share/man $(echo $currentPath/texmf*/) ! -type d | while read; do
REPLY="''${REPLY#$currentPath}"
ln -fs $currentPath/"$REPLY" $out/"$REPLY"
echo
done | while read; do head -n 999 >/dev/null; echo -n .; done
for i in "$currentPath/bin/"* :; do
test "$i" != : || continue
echo -ne "#! $SHELL\\nexec $i \"\$@\"" > "$out/bin/$(basename "$i")" && \
chmod a+x "$out/bin/$(basename "$i")"
done
echo
cp -Trfp $currentPath/libexec $out/libexec || true
done
ln -s $out/texmf* $out/share/
rm -rf $out/texmf-config
find $out/texmf*/ -type d | while read; do
REPLY="''${REPLY#$out/texmf}"
mkdir -p $out/texmf-config/"$REPLY"
done
for i in $out/libexec/*/* :; do
test "$i" = : && continue;
test -f "$i" && \
test -x "$i" && \
echo -ne "#! $SHELL\\nexec $i \"\$@\"" >$out/bin/$(basename $i) && \
chmod a+x $out/bin/$(basename $i)
done
rm -f $out/texmf*/ls-R
for i in web2c texconfig fonts/map; do
mkdir -p $out/texmf-config/$i
cp -Lr $out/texmf*/$i/* $out/texmf-config/$i || true
done
chmod -R u+w $out/texmf-config
yes | TEXMFCONFIG=$out/texmf-config HOME=$PWD PATH=$PATH:$out/bin updmap --syncwithtrees
yes | PATH=$PATH:$out/bin mktexlsr $out/texmf*
yes | TEXMFCONFIG=$out/texmf-config HOME=$PWD PATH=$PATH:$out/bin updmap --syncwithtrees
yes | PATH=$PATH:$out/bin mktexlsr $out/texmf*
'' + stdenv.lib.optionalString stdenv.isDarwin ''
# did the same thing in texLive, but couldn't get it to carry to the
# binaries installed by texLiveFull
for prog in $out/bin/*; do
wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler.out}/lib"
done
'' ) [ "minInit" "defEnsureDir" "addInputs" ];
preferLocalBuild = true;
meta = {
description = "TeX distribution directory";
longDescription = ''
Here all the files from different TeX-related
packages are collected in one directory. Of
course, mktexlsr is called. Later placed
directories take precedence. It is supposed that
share and libexec are symlinked, and bin is
recreated with wrappers for libexec-located
linked binaries.
'';
};
}

View File

@@ -1,25 +0,0 @@
args @ {texLiveLatexXColor, texLivePGF, texLive, ...}: with args;
rec {
name = "texlive-beamer-2013";
src = fetchurl {
url = mirror://debian/pool/main/l/latex-beamer/latex-beamer_3.24.orig.tar.gz;
sha256 = "0rzjlbs67kzmvlh7lwga4yxgddvrvfkkhhx1ajdn4lqy2w9zxiv8";
};
buildInputs = [texLive];
propagatedBuildInputs = [texLiveLatexXColor texLivePGF];
phaseNames = ["doCopy"];
doCopy = fullDepEntry (''
mkdir -p $out/share/
mkdir -p $out/texmf-dist/tex/latex/beamer
cp -r * $out/texmf-dist/tex/latex/beamer
ln -s $out/texmf* $out/share/
'') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
meta = {
description = "Extra components for TeXLive: beamer class";
maintainers = [ stdenv.lib.maintainers.mornfall stdenv.lib.maintainers.jwiegley ];
};
}

View File

@@ -1,35 +0,0 @@
args @ {texLive, ...}: with args;
rec {
name = "texlive-cm-super-2009";
src = fetchurl {
url = mirror://debian/pool/main/c/cm-super/cm-super_0.3.4.orig.tar.gz;
sha256 = "0zrq4sr9ank35svkz3cfd7f978i9c8xbzdqm2c8kvxia2753v082";
};
phaseNames = ["doCopy"];
doCopy = fullDepEntry (''
mkdir -p $out/share/
mkdir -p $out/texmf-dist/fonts/enc
mkdir -p $out/texmf-dist/fonts/map
mkdir -p $out/texmf-dist/fonts/type1/public/cm-super
cp pfb/*.pfb $out/texmf-dist/fonts/type1/public/cm-super
mkdir -p $out/texmf-dist/dvips/cm-super
cp dvips/*.{map,enc} $out/texmf-dist/dvips/cm-super
cp dvips/*.enc $out/texmf-dist/fonts/enc
cp dvips/*.map $out/texmf-dist/fonts/map
mkdir -p $out/texmf-dist/dvipdfm/config
cp dvipdfm/*.map $out/texmf-dist/dvipdfm/config
ln -s $out/texmf* $out/share/
'') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
buildInputs = [texLive];
meta = {
description = "Extra components for TeXLive: CM-Super fonts";
maintainers = [ args.lib.maintainers.raskin ];
# Actually, arch-independent..
hydraPlatforms = [];
};
}

View File

@@ -1,25 +0,0 @@
args @ { texLive, ... }: with args;
rec {
name = "context-2014.05.21";
src = fetchurl {
url = mirror://debian/pool/main/c/context/context_2014.05.21.20140528.orig.tar.gz;
sha256 = "1d744xrsjyl52x2xbh87k5ad826mzz8yqmhdznrmqrhk3qpjkzic";
};
buildInputs = [texLive];
phaseNames = ["doCopy"];
doCopy = fullDepEntry (''
mkdir -p $out/share/
mkdir -p $out/texmf-dist
cp -r * $out/texmf-dist
ln -s $out/texmf* $out/share/
'') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
meta = {
description = "ConTEXt TeX wrapper";
};
}

View File

@@ -1,161 +0,0 @@
args @ {
builderDefs, zlib, bzip2, ncurses, libpng, ed, lesstif, ruby, potrace
, gd, t1lib, freetype, icu, perl, expat, curl, xz, pkgconfig, zziplib, texinfo
, libjpeg, bison, python, fontconfig, flex, poppler, libpaper, graphite2
, makeWrapper, gmp, mpfr, xpdf, config
, libXaw, libX11, xproto, libXt, libXpm
, libXmu, libXext, xextproto, libSM, libICE
, ... }: with args;
rec {
src = assert config.allowTexliveBuilds or true; fetchurl {
url = mirror://debian/pool/main/t/texlive-bin/texlive-bin_2014.20140926.35254.orig.tar.xz;
sha256 = "1c39x059jhn5jsy6i9j3akjbkm1kmmzssy1jyi1aw20rl2vp86w3";
};
texmfVersion = "2014.20141024";
texmfSrc = fetchurl {
url = "mirror://debian/pool/main/t/texlive-base/texlive-base_${texmfVersion}.orig.tar.xz";
sha256 = "1a6968myfi81s76n9p1qljgpwia9mi55pkkz1q6lbnwybf97akj1";
};
langTexmfVersion = "2014.20141024";
langTexmfSrc = fetchurl {
url = "mirror://debian/pool/main/t/texlive-lang/texlive-lang_${langTexmfVersion}.orig.tar.xz";
sha256 = "1ydz5m1v40n34g1l31r3vqg74rbr01x2f80drhz4igh21fm7zzpa";
};
passthru = { inherit texmfSrc langTexmfSrc; };
setupHook = ./setup-hook.sh;
doMainBuild = fullDepEntry ( stdenv.lib.optionalString stdenv.isDarwin ''
export DYLD_LIBRARY_PATH="${poppler.out}/lib"
'' + ''
mkdir -p $out
mkdir -p $out/nix-support
cp ${setupHook} $out/nix-support/setup-hook.sh
mkdir -p $out/share
tar xf ${texmfSrc} -C $out --strip-components=1
tar xf ${langTexmfSrc} -C $out --strip-components=1
sed -e s@/usr/bin/@@g -i $(grep /usr/bin/ -rl . )
sed -e 's@dehypht-x-2013-05-26@dehypht-x-2014-05-21@' -i $(grep 'dehypht-x' -rl $out )
sed -e 's@dehyphn-x-2013-05-26@dehyphn-x-2014-05-21@' -i $(grep 'dehyphn-x' -rl $out )
sed -e 's@\<env ruby@${ruby}/bin/ruby@' -i $(grep 'env ruby' -rl . )
sed -e 's@\<env perl@${perl}/bin/perl@' -i $(grep 'env perl' -rl . )
sed -e 's@\<env python@${python}/bin/python@' -i $(grep 'env python' -rl . )
sed -e '/ubidi_open/i#include <unicode/urename.h>' -i $(find . -name configure)
sed -e 's/-lttf/-lfreetype/' -i $(find . -name configure)
# sed -e s@ncurses/curses.h@curses.h@g -i $(grep ncurses/curses.h -rl . )
sed -e '1i\#include <string.h>\n\#include <stdlib.h>' -i $( find libs/teckit -name '*.cpp' -o -name '*.c' )
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${icu.dev}/include/layout";
./Build --prefix="$out" --datadir="$out/share" --mandir="$out/share/man" --infodir="$out/share/info" \
${args.lib.concatStringsSep " " configureFlags}
cd Work
'' ) [ "minInit" "doUnpack" "addInputs" "defEnsureDir" ];
promoteLibexec = fullDepEntry (''
mkdir -p $out/libexec/
mv $out/bin $out/libexec/$(uname -m)
mkdir -p $out/bin
for i in "$out/libexec/"* "$out/libexec/"*"/"* ; do
test \( \! -d "$i" \) -a \( -x "$i" -o -L "$i" \) || continue
if [ -x "$i" ]; then
echo -ne "#! $SHELL\\nexec $i \"\$@\"" >$out/bin/$(basename $i)
chmod a+x $out/bin/$(basename $i)
else
mv "$i" "$out/libexec"
ln -s "$(readlink -f "$out/libexec/$(basename "$i")")" "$out/bin/$(basename "$i")";
ln -sf "$(readlink -f "$out/libexec/$(basename "$i")")" "$out/libexec/$(uname -m)/$(basename "$i")";
rm "$out/libexec/$(basename "$i")"
fi;
done
'') ["doMakeInstall"];
doPostInstall = fullDepEntry( ''
cp -r "$out/"texmf* "$out/share/" || true
rm -rf "$out"/texmf*
[ -d $out/share/texmf-config ] || ln -s $out/share/texmf-dist $out/share/texmf-config
ln -s "$out"/share/texmf* "$out"/
PATH=$PATH:$out/bin mktexlsr $out/share/texmf*
yes | HOME=. PATH=$PATH:$out/bin updmap-sys --syncwithtrees || echo $?
# Prebuild the format files, as it used to be done with TeXLive 2007.
# Luatex currently fails this way:
#
# This is a summary of all `failed' messages:
# `luatex -ini -jobname=luatex -progname=luatex luatex.ini' failed
# `luatex -ini -jobname=dviluatex -progname=dviluatex dviluatex.ini' failed
#
# I find it acceptable, hence the "|| true".
echo "building format files..."
mkdir -p "$out/share/texmf-var/web2c"
ln -sf "$out"/out/share/texmf* "$out"/
PATH="$PATH:$out/bin" fmtutil-sys --all || true
PATH=$PATH:$out/bin mktexlsr $out/share/texmf*
'' + stdenv.lib.optionalString stdenv.isDarwin ''
for prog in "$out/bin/"*; do
wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${poppler.out}/lib"
done
'' ) [ "minInit" "defEnsureDir" "doUnpack" "doMakeInstall" "promoteLibexec" "patchShebangsInterim"];
patchShebangsInterimBin = doPatchShebangs ''$out/bin/'';
patchShebangsInterimLibexec = doPatchShebangs ''$out/libexec/'';
patchShebangsInterimShareTexmfDist = doPatchShebangs ''$out/share/texmf-dist/scripts/'';
patchShebangsInterimTexmfDist = doPatchShebangs ''$out/texmf-dist/scripts/'';
patchShebangsInterim = fullDepEntry ("") ["patchShebangsInterimBin"
"patchShebangsInterimLibexec" "patchShebangsInterimTexmfDist"
"patchShebangsInterimShareTexmfDist"];
buildInputs = [ zlib bzip2 ncurses libpng flex bison libX11.out libICE xproto
freetype t1lib gd libXaw icu ghostscript ed libXt libXpm libXmu libXext
xextproto perl libSM ruby expat curl libjpeg python fontconfig xz pkgconfig
poppler libpaper graphite2 lesstif zziplib harfbuzz texinfo potrace gmp mpfr
xpdf ]
++ stdenv.lib.optionals stdenv.isDarwin [ makeWrapper ]
;
configureFlags = [ "--with-x11" "--enable-ipc" "--with-mktexfmt"
"--enable-shared" "--disable-native-texlive-build" "--with-system-zziplib"
"--with-system-libgs" "--with-system-t1lib" "--with-system-freetype2"
"--with-system-freetype=no" "--disable-ttf2pk" "--enable-ttf2pk2" ]
++ stdenv.lib.optionals stdenv.isDarwin [
# TODO: We should be able to fix these tests
"--disable-devnag"
# jww (2014-06-02): The following fails with:
# FAIL: tests/dvisvgm
# ===================
#
# dyld: Library not loaded: libgs.dylib.9.06
# Referenced from: .../Work/texk/dvisvgm/.libs/dvisvgm
# Reason: image not found
"--disable-dvisvgm"
];
phaseNames = [ "addInputs" "doMainBuild" "doMakeInstall" "doPostInstall" ];
name = "texlive-core-2014";
meta = with stdenv.lib; {
description = "A TeX distribution";
homepage = http://www.tug.org/texlive;
license = stdenv.lib.licenses.gpl2;
maintainers = with maintainers; [ lovek323 raskin jwiegley ];
platforms = platforms.unix;
hydraPlatforms = [];
broken = true; # https://github.com/NixOS/nixpkgs/issues/14807
};
}

View File

@@ -1,26 +0,0 @@
args @ { texLive, xz, ... }: with args;
rec {
name = "texlive-extra-2014";
version = "2014.20141024";
src = fetchurl {
url = "mirror://debian/pool/main/t/texlive-extra/texlive-extra_${version}.orig.tar.xz";
sha256 = "190p5v6madcgkxjmfal0pcylfz88zi6yaixky0vrcz1kbvxqlcb9";
};
buildInputs = [texLive xz];
phaseNames = ["doCopy"];
doCopy = fullDepEntry (''
mkdir -p $out/share
cp -r texmf* $out/
ln -s $out/texmf* $out/share
'') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
meta = {
description = "Extra components for TeXLive";
maintainers = [ args.lib.maintainers.raskin args.lib.maintainers.jwiegley ];
# Actually, arch-independent..
hydraPlatforms = [];
};
}

View File

@@ -1,24 +0,0 @@
args @ {texLive, unzip, ...}: with args;
rec {
version = "1.5.1";
name = "moderncv-${version}";
src = fetchurl {
url = "https://launchpad.net/moderncv/trunk/${version}/+download/moderncv-${version}.zip";
sha256 = "0k26s0z8hmw3h09vnpndim7gigwh8q6n9nbbihb5qbrw5qg2yqck";
};
buildInputs = [texLive unzip];
phaseNames = ["doCopy"];
doCopy = fullDepEntry (''
mkdir -p $out/texmf-dist/tex/latex/moderncv $out/texmf-dist/doc $out/share
mv *.cls *.sty $out/texmf-dist/tex/latex/moderncv/
mv examples $out/texmf-dist/doc/moderncv
ln -s $out/texmf* $out/share/
'') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
meta = {
description = "The moderncv class for TeXLive";
# Actually, arch-independent..
hydraPlatforms = [];
};
}

View File

@@ -1,24 +0,0 @@
args @ {texLive, unzip, ...}: with args;
rec {
version = "0.9";
name = "moderntimeline-${version}";
src = fetchurl {
url = "https://github.com/raphink/moderntimeline/archive/v0.9.zip";
sha256 = "1h1sfdh0whb74y6f999hs80flwpdbs2n4n2b9c450rvs1y7abcml";
};
buildInputs = [texLive unzip];
phaseNames = ["doCopy"];
doCopy = fullDepEntry (''
mkdir -p $out/texmf-dist/tex/latex/moderntimeline $out/texmf-dist/doc/moderntimeline $out/share
mv *.dtx *.ins $out/texmf-dist/tex/latex/moderntimeline/
mv *.md $out/texmf-dist/doc/moderntimeline/
ln -s $out/texmf* $out/share/
'') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
meta = {
description = "The moderntimeline extensions for moderncv";
# Actually, arch-independent..
hydraPlatforms = [];
};
}

View File

@@ -1,7 +0,0 @@
addTeXMFPath () {
if test -d "$1/share/texmf-nix"; then
export TEXINPUTS="${TEXINPUTS}${TEXINPUTS:+:}$1/share/texmf-nix//:"
fi
}
envHooks+=(addTeXMFPath)

View File

@@ -1,37 +0,0 @@
args @ {texLive, ... }: with args;
rec {
name = "texlive-latex-xcolor-2007";
src = fetchurl {
url = mirror://debian/pool/main/l/latex-xcolor/latex-xcolor_2.11.orig.tar.gz;
sha256 = "0z78xfn5iq5ncg82sd6v2qrxs8p9hs3m4agaz90p4db5dvk2w0mn";
};
buildInputs = [texLive];
phaseNames = ["doCopy"];
doCopy = fullDepEntry (''
export HOME=$PWD
mkdir -p $out/share/
mkdir -p $out/texmf-dist/tex/latex/xcolor
mkdir -p $out/texmf-dist/dvips/xcolor
latex xcolor.ins
cp *.sty *.def $out/texmf-dist/tex/latex/xcolor
cp *.pro $out/texmf-dist/dvips/xcolor
#latex xcolor.dtx
#latex xcolor.dtx
#makeindex -s gind.ist xcolor.idx
#latex xcolor.dtx
#latex xcolor.dtx
rm *.sty *.pro *.ins *.def *.dtx
mkdir -p $out/texmf-dist/doc/latex-xcolor
cp * $out/texmf-dist/doc/latex-xcolor
ln -s $out/texmf* $out/share/
'') ["minInit" "doUnpack" "defEnsureDir" "addInputs"];
meta = {
description = "Extra components for TeXLive: LaTeX color support";
};
}