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,14 +0,0 @@
Semi-automatic source information updating using "update-upstream-data.sh" script and "src-{,info-}for-*.nix"
1. Recognizing when a pre-existing package uses this mechanism.
Packages using this automatical update mechanism have src-info-for-default.nix and src-for-default.nix next to default.nix. src-info-for-default.nix describes getting the freshest source from upstream web site; src-for-default.nix is a generated file with the current data about used source. Both files define a simple attrSet.
src-info-for-default.nix (for a file grabbed via http) contains at least downloadPage attribute - it is the page we need to look at to find out the latest version. It also contains baseName that is used for automatical generation of package name containing version. It can contain extra data for trickier cases.
src-for-default.nix will contain advertisedUrl (raw URL chosen on the site; its change prompts regeneration of source data), url for fetchurl, hash, version retrieved from the download URL and suggested package name.
2. Updating a package
nixpkgs/pkgs/build-support/upstream-updater directory contains some scripts. The worker script is called update-upstream-data.sh. This script requires main expression name (e.g. default.nix). It can optionally accpet a second parameter, URL which will be used instead of getting one by parsing the downloadPage (version extraction, mirror URL creation etc. will still be run). After running the script, check src-for-default.nix (or replace default.nix with expression name, if there are seceral expressions in the directory) for new version information.

View File

@ -663,7 +663,7 @@ in
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = with pkgs; [ curl ]
++ optional cfg.pdfExport texLiveFull
++ optional cfg.pdfExport texlive.combined.scheme-basic
++ optional (cfg.repositoryType == "darcs") darcs
++ optional (cfg.repositoryType == "mercurial") mercurial
++ optional (cfg.repositoryType == "git") git;

View File

@ -1,607 +0,0 @@
args @ {stringsWithDeps, lib, stdenv, writeScript, fetchurl, fetchmtn, fetchgit, ...}: with args; with stringsWithDeps; with lib;
let inherit (builtins) head tail trace; in
(rec
{
inherit writeScript;
src = attrByPath ["src"] "" args;
addSbinPath = attrByPath ["addSbinPath"] false args;
forceShare = if args ? forceShare then args.forceShare else ["man" "doc" "info"];
forceCopy = ["COPYING" "LICENSE" "DISTRIBUTION" "LEGAL"
"README" "AUTHORS" "ChangeLog" "CHANGES" "LICENCE" "COPYRIGHT"] ++
(optional (attrByPath ["forceCopyDoc"] true args) "doc");
hasSuffixHack = a: b: hasSuffix (a+(substring 0 0 b)) ((substring 0 0 a)+b);
archiveType = s:
(if hasSuffixHack ".tar" s then "tar"
else if (hasSuffixHack ".tar.gz" s) || (hasSuffixHack ".tgz" s) then "tgz"
else if (hasSuffixHack ".tar.bz2" s) || (hasSuffixHack ".tbz2" s) ||
(hasSuffixHack ".tbz" s) then "tbz2"
else if hasSuffixHack ".tar.Z" s then "tZ"
else if hasSuffixHack ".tar.lzma" s then "tar.lzma"
else if hasSuffixHack ".tar.xz" s then "tar.xz"
else if hasSuffixHack ".rar" s then "rar"
else if (hasSuffixHack ".zip" s) || (hasSuffixHack ".ZIP" s) then "zip"
else if hasSuffixHack "-cvs-export" s then "cvs-dir"
else if hasSuffixHack "-git-export" s then "git-dir"
else if hasSuffixHack ".nar.bz2" s then "narbz2"
else if hasSuffixHack ".rpm" s then "rpm"
# Mostly for manually specified directories..
else if hasSuffixHack "/" s then "dir"
# Last block - for single files!! It should be always after .tar.*
else if hasSuffixHack ".bz2" s then "plain-bz2"
else if hasSuffixHack ".gz" s then "plain-gz"
# For bootstrap calls
else if (s ==("" + (substring 0 0 s))) then "empty"
else (abort "unknown archive type : ${s}"));
# changing this ? see [1]
defAddToSearchPath = fullDepEntry ("
addToSearchPathWithCustomDelimiter() {
local delimiter=\$1
local varName=\$2
local needDir=\$3
local addDir=\${4:-\$needDir}
local prefix=\$5
if [ -d \$prefix\$needDir ]; then
if [ -z \${!varName} ]; then
eval export \${varName}=\${prefix}\$addDir
else
eval export \${varName}=\${!varName}\${delimiter}\${prefix}\$addDir
fi
fi
}
addToSearchPath()
{
addToSearchPathWithCustomDelimiter \"\${PATH_DELIMITER}\" \"\$@\"
}
") ["defNest"];
# changing this ? see [1]
defNest = noDepEntry ("
nestingLevel=0
startNest() {
nestingLevel=\$((\$nestingLevel + 1))
echo -en \"\\e[\$1p\"
}
stopNest() {
nestingLevel=\$((\$nestingLevel - 1))
echo -en \"\\e[q\"
}
header() {
startNest \"\$2\"
echo \"\$1\"
}
# Make sure that even when we exit abnormally, the original nesting
# level is properly restored.
closeNest() {
while test \$nestingLevel -gt 0; do
stopNest
done
}
trap \"closeNest\" EXIT
");
# changing this ? see [1]
minInit = fullDepEntry ("
${stdenv.preHook}
set -e
NIX_CC=${stdenv.cc}
export SHELL=${stdenv.shell}
PATH_DELIMITER=':'
# Set up the initial path.
PATH=
for i in \$NIX_CC ${toString stdenv.initialPath}; do
PATH=\$PATH\${PATH:+\"\${PATH_DELIMITER}\"}\$i/bin
done
export TZ=UTC
prefix=${if args ? prefix then (toString args.prefix) else "\$out"}
") ["defNest" "defAddToSearchPath"];
# if you change this rewrite using '' instead of "" to get rid of indentation in builder scripts
addInputs = fullDepEntry ("
# Recursively find all build inputs.
findInputs()
{
local pkg=\$1
case \$pkgs in
*\\ \$pkg\\ *)
return 0
;;
esac
pkgs=\"\$pkgs \$pkg \"
echo \$pkg
if test -f \$pkg/nix-support/setup-hook; then
source \$pkg/nix-support/setup-hook
fi
}
pkgs=\"\"
for i in \$NIX_CC ${toString realBuildInputs}; do
findInputs \$i
done
# Set the relevant environment variables to point to the build inputs
# found above.
addToEnv()
{
local pkg=\$1
"+
(if !((args ? ignoreFailedInputs) && (args.ignoreFailedInputs == 1)) then "
if [ -e \$1/nix-support/failed ]; then
echo \"failed input \$1\" >&2
fail
fi
" else "")
+(if addSbinPath then "
if test -d \$1/sbin; then
export _PATH=\$_PATH\${_PATH:+\"\${PATH_DELIMITER}\"}\$1/sbin
fi
" else "")
+"
if test -d \$1/bin; then
export _PATH=\$_PATH\${_PATH:+\"\${PATH_DELIMITER}\"}\$1/bin
fi
for i in \"\${envHooks[@]}\"; do
\$i \$pkg
done
}
for i in \$pkgs; do
addToEnv \$i
done
# Add the output as an rpath.
if test \"\$NIX_NO_SELF_RPATH\" != \"1\"; then
export NIX_LDFLAGS=\"-rpath \$out/lib \$NIX_LDFLAGS\"
fi
PATH=\$_PATH\${_PATH:+\"\${PATH_DELIMITER}\"}\$PATH
") ["minInit"];
# changing this ? see [1]
defEnsureDir = fullDepEntry ("
# Ensure that the given directories exists.
ensureDir() {
local dir
for dir in \"\$@\"; do
if ! test -x \"\$dir\"; then mkdir -p \"\$dir\"; fi
done
}
") ["minInit"];
# changing this ? see [1]
toSrcDir = s : fullDepEntry ((if (archiveType s) == "tar" then "
tar xvf '${s}'
cd \"\$(tar tf '${s}' | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tgz" then "
tar xvzf '${s}'
cd \"\$(tar tzf '${s}' | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tbz2" then "
tar xvjf '${s}'
cd \"\$(tar tjf '${s}' | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tZ" then "
uncompress < '${s}' | tar x
cd \"\$(uncompress < '${s}' | tar t | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tar.lzma" then "
unlzma -d -c <'${s}' | tar xv
cd \"\$(unlzma -d -c <'${s}' | tar t | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "tar.xz" then "
xz -d -c <'${s}' | tar xv
cd \"\$(xz -d -c <'${s}' | tar t | head -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "rar" then "
unrar x '${s}'
cd \"$(unrar lb '${s}' | tail -1 | sed -e 's@/.*@@' )\"
" else if (archiveType s) == "zip" then "
unzip '${s}'
cd \"$( unzip -lqq '${s}' | tail -1 |
sed -e 's@^\\(\\s\\+[-0-9:]\\+\\)\\{3,3\\}\\s\\+\\([^/]\\+\\)/.*@\\2@' )\"
" else if (archiveType s) == "cvs-dir" then "
cp -r '${s}' .
cd \$(basename ${s})
chmod u+rwX -R .
" else if (archiveType s) == "git-dir" then "
cp -r '${s}' .
cd \$(basename ${s})
chmod u+rwX -R .
" else if (archiveType s) == "dir" then "
cp -r '${s}' .
cd \$(basename ${s})
chmod u+rwX -R .
" else if (archiveType s) == "narbz2" then "
bzip2 <${s} | nix-store --restore \$PWD/\$(basename ${s} .nar.bz2)
cd \$(basename ${s} .nar.bz2)
" else if (archiveType s) == "rpm" then ''
rpm2cpio ${s} > ${s}.cpio
cpio -iv < ${s}.cpio
test -f *.tar.* && tar -xvf *.tar.*
test -d */ && cd */
'' else if (archiveType s) == "plain-bz2" then "
mkdir \$PWD/\$(basename ${s} .bz2)
NAME=\$(basename ${s} .bz2)
bzip2 -d <${s} > \$PWD/\$(basename ${s} .bz2)/\${NAME#*-}
cd \$(basename ${s} .bz2)
" else if (archiveType s) == "plain-gz" then "
mkdir \$PWD/\$(basename ${s} .gz)
NAME=\$(basename ${s} .gz)
gzip -d <${s} > \$PWD/\$(basename ${s} .gz)/\${NAME#*-}
cd \$(basename ${s} .gz)
" else if (archiveType s) == "empty" then "
echo No source to unpack - doing nothing ..
" else (abort "unknown archive type : ${s}"))+
# goSrcDir is typically something like "cd mysubdir" .. but can be anything else
(if args ? goSrcDir then args.goSrcDir else "")
) ["minInit"];
configureCommand = attrByPath ["configureCommand"] "./configure" args;
# changing this ? see [1]
doConfigure = fullDepEntry ("
${configureCommand} --prefix=\"\$prefix\" ${toString configureFlags}
") ["minInit" "addInputs" "doUnpack"];
# changing this ? see [1]
doIntltool = fullDepEntry ("
mkdir -p config
intltoolize --copy --force
") ["minInit" "addInputs" "doUnpack"];
# changing this ? see [1]
doAutotools = fullDepEntry ("
mkdir -p config
libtoolize --copy --force
aclocal --force
#Some packages do not need this
autoheader || true;
automake --add-missing --copy
autoconf
")["minInit" "addInputs" "doUnpack"];
# changing this ? see [1]
doAutogen = fullDepEntry (''
./autogen.sh
'')["minInit" "addInputs" "doUnpack"];
# changing this ? see [1]
doMake = fullDepEntry ("
make ${toString makeFlags}
") ["minInit" "addInputs" "doUnpack"];
doUnpack = toSrcDir (toString src);
# changing this ? see [1]
installPythonPackage = fullDepEntry ("
python setup.py install --prefix=\"\$prefix\"
") ["minInit" "addInputs" "doUnpack"];
doPythonConfigure = fullDepEntry (''
pythonVersion=$(toPythonPath "$prefix")
pythonVersion=''${pythonVersion#*/lib/python}
pythonVersion=''${pythonVersion%%/site-packages}
${if args ? extraPythonConfigureCommand then
args.extraPythonConfigureCommand
else ""}
python configure.py -b "$prefix/bin" -d "$(toPythonPath "$prefix")" -v "$prefix/share/sip" ${toString configureFlags}
'') ["minInit" "addInputs" "doUnpack"];
# changing this ? see [1]
doMakeInstall = fullDepEntry ("
make ${toString (attrByPath ["makeFlags"] "" args)} "+
"${toString (attrByPath ["installFlags"] "" args)} install") ["doMake"];
# changing this ? see [1]
doForceShare = fullDepEntry ("
mkdir -p \"\$prefix/share\"
for d in ${toString forceShare}; do
if [ -d \"\$prefix/\$d\" -a ! -d \"\$prefix/share/\$d\" ]; then
mv -v \"\$prefix/\$d\" \"\$prefix/share\"
ln -sv share/\$d \"\$prefix\"
fi;
done;
") ["minInit" "defEnsureDir"];
doForceCopy = fullDepEntry (''
name="$(basename $out)"
name="''${name#*-}"
mkdir -p "$prefix/share/$name"
for f in ${toString forceCopy}; do
cp -r "$f" "$prefix/share/$name/$f" || true
done;
'') ["minInit" "defEnsureDir"];
doDump = n: noDepEntry "echo Dump number ${n}; set";
saveEnv = noDepEntry ''export > "$TMP/env-vars" || true'';
doDumpBuildInputs = noDepEntry (''
echo "${toString realBuildInputs}"
'');
patchFlags = if args ? patchFlags then args.patchFlags else "-p1";
patches = attrByPath ["patches"] [] args;
toPatchCommand = s: "cat ${s} | patch ${toString patchFlags}";
doPatch = fullDepEntry (concatStringsSep ";"
(map toPatchCommand patches)
) ["minInit" "doUnpack"];
envAdderInner = s: x: if x==null then s else y:
a: envAdderInner (s+"echo export ${x}='\"'\"\$${x}:${y}\";'\"'\n") a;
envAdder = envAdderInner "";
envAdderList = l: if l==[] then "" else
"echo export ${head l}='\"'\"\\\$${head l}:${head (tail l)}\"'\"';\n" +
envAdderList (tail (tail l));
# changing this ? see [1]
wrapEnv = cmd: env: "
mv \"${cmd}\" \"${cmd}-orig\";
touch \"${cmd}\";
chmod a+rx \"${cmd}\";
(${envAdderList env}
echo '\"'\"${cmd}-orig\"'\"' '\"'\\\$@'\"' \n) > \"${cmd}\"";
doWrap = cmd: fullDepEntry (wrapEnv cmd (attrByPath ["wrappedEnv"] [] args)) ["minInit"];
makeManyWrappers = wildcard : wrapperFlags : fullDepEntry (''
for i in ${wildcard}; do
wrapProgram "$i" ${wrapperFlags}
done
'') ["minInit" "addInputs" "defEnsureDir"];
wrapBinContentsPython = (makeManyWrappers
''$out/bin/*''
pythonWrapperArguments
);
pythonWrapperArguments =
(''--prefix PYTHONPATH : $(toPythonPath $out)'' +
''''${PYTHONPATH:+ --prefix PYTHONPATH : $PYTHONPATH}'');
preservePathWrapperArguments = ''''${PATH:+ --prefix PATH : $PATH }'';
doPropagate = fullDepEntry ("
mkdir -p \$out/nix-support
echo '${toString (attrByPath ["propagatedBuildInputs"] [] args)}' >\$out/nix-support/propagated-build-inputs
") ["minInit" "defEnsureDir"];
cmakeFlags = attrByPath ["cmakeFlags"] [] args;
cmakeRPathFlag = if attrByPath ["cmakeSkipRpath "] true args then " -DCMAKE_SKIP_BUILD_RPATH=ON " else "";
cmakeBuildDir = attrByPath ["cmakeBuildDir"] "build" args;
doCmake = fullDepEntry (''
mkdir ${cmakeBuildDir}
cd ${cmakeBuildDir}
cmake -D CMAKE_INSTALL_PREFIX="$out" ${cmakeRPathFlag}${toString cmakeFlags} ..
'') ["minInit" "addInputs" "doUnpack"];
doScons = fullDepEntry (''
mkdir -p $out
${if (attrByPath ["sconsCleanEnv"] false args)
then ""
else ''
sed -e '1iimport os' -i SConstruct
sed -e 's/env *= *Environment *.*/&; env['"'"'ENV'"'"']=os.environ;/' -i SConstruct
''
}
scons ${toString (attrByPath ["sconsFlags"] [] args)} PREFIX=$out
scons ${toString (attrByPath ["sconsFlags"] [] args)} PREFIX=$out install
'') ["minInit" "doUnpack" "addInputs" "defEnsureDir"];
/*debug = x:(trace x x);
debugX = x:(trace (toXML x) x);*/
makeNest = x: if x == defNest.text then x else "startNest\n" + x + "\nstopNest\n";
textClosure = a: steps: textClosureMap makeNest a (["defNest"] ++ steps);
inherit noDepEntry fullDepEntry packEntry;
defList = attrByPath ["defList"] [] args;
getVal = getValue args defList;
check = checkFlag args;
reqsList = attrByPath ["reqsList"] [] args;
buildInputsNames = filter (x: null != getVal x)
(uniqList {inputList =
(concatLists (map
(x: if x==[] then [] else builtins.tail x)
reqsList));});
configFlags = attrByPath ["configFlags"] [] args;
buildFlags = attrByPath ["buildFlags"] [] args;
nameSuffixes = attrByPath ["nameSuffixes"] [] args;
autoBuildInputs = assert (checkReqs args defList reqsList);
filter (x: x!=null) (map getVal buildInputsNames);
autoConfigureFlags = condConcat "" configFlags check;
autoMakeFlags = condConcat "" buildFlags check;
useConfig = attrByPath ["useConfig"] false args;
realBuildInputs =
lib.closePropagation ((if useConfig then
autoBuildInputs else
attrByPath ["buildInputs"] [] args)++
(attrByPath ["propagatedBuildInputs"] [] args));
configureFlags = if useConfig then autoConfigureFlags else
attrByPath ["configureFlags"] "" args;
makeFlags = if useConfig then autoMakeFlags else attrByPath ["makeFlags"] "" args;
inherit lib;
surroundWithCommands = x : before : after : {deps=x.deps; text = before + "\n" +
x.text + "\n" + after ;};
createDirs = fullDepEntry (concatStringsSep ";"
(map (x: "mkdir -p ${x}") (attrByPath ["neededDirs"] [] args))
) ["minInit" "defEnsureDir"];
copyExtraDoc = fullDepEntry (''
name="$(basename $out)"
name="''${name#*-}"
mkdir -p "$out/share/doc/$name"
'' + (concatStringsSep ";"
(map
(x: ''cp "${x}" "$out/share/doc/$name" || true;'')
(attrByPath ["extraDoc"] [] args)))) ["minInit" "defEnsureDir" "doUnpack"];
realPhaseNames =
(optional ([] != attrByPath ["neededDirs"] [] args) "createDirs")
++
(attrByPath ["phaseNames"] [] args)
++
["doForceShare" "doPropagate" "doForceCopy"]
++
(optional ([] != attrByPath ["extraDoc"] [] args) "copyExtraDoc")
++
(optional (attrByPath ["doCheck"] false args) "doMakeCheck")
++
(optional (attrByPath ["alwaysFail"] false args) "doFail")
;
doFail = noDepEntry "
echo 'Failing to keep builddir (and to invalidate result).'
a() { return 127; } ; a ;
";
doMakeCheck = fullDepEntry (''
make check
'') ["minInit"];
extraDerivationAttrs = lib.attrByPath ["extraDerivationAttrs"] {} args;
# for overrides..
builderDefsArgs = args;
innerBuilderDefsPackage = bd: args: (
let localDefs = bd.passthru.function args; in
stdenv.mkDerivation ((rec {
inherit (localDefs) name;
buildCommand = textClosure localDefs localDefs.realPhaseNames;
meta = localDefs.meta;
passthru = localDefs.passthru // {inherit (localDefs) src; };
}) // (if localDefs ? propagatedBuildInputs then {
inherit (localDefs) propagatedBuildInputs;
} else {}) // extraDerivationAttrs)
);
builderDefsPackage = bd: func:
if builtins.isFunction func then
(foldArgs
(x: y: ((func (bd // x // y)) // y))
(innerBuilderDefsPackage bd)
{})
else
(builderDefsPackage bd (import (toString func)))
;
generateFontsFromSFD = fullDepEntry (''
for i in *.sfd; do
echo $i;
fontforge -c \
'Open($1);
${optionalString (args ? extraFontForgeCommands) args.extraFontForgeCommands
}Reencode("unicode");
${optionalString (attrByPath ["createTTF"] true args) ''Generate($1:r + ".ttf");''}
${optionalString (attrByPath ["createOTF"] true args) ''Generate($1:r + ".otf");''}
Reencode("TeX-Base-Encoding");
${optionalString (attrByPath ["createAFM"] true args) ''Generate($1:r + ".afm");''}
${optionalString (attrByPath ["createPFM"] true args) ''Generate($1:r + ".pfm");''}
${optionalString (attrByPath ["createPFB"] true args) ''Generate($1:r + ".pfb");''}
${optionalString (attrByPath ["createMAP"] true args) ''Generate($1:r + ".map");''}
${optionalString (attrByPath ["createENC"] true args) ''Generate($1:r + ".enc");''}
' $i;
done
'') ["minInit" "addInputs" "doUnpack"];
installFonts =
let retrievedName = (if args ? name then args.name else ""); in
fullDepEntry (''
mkdir -p $out/share/fonts/truetype/public/${retrievedName}
mkdir -p $out/share/fonts/opentype/public/${retrievedName}
mkdir -p $out/share/fonts/type1/public/${retrievedName}
mkdir -p $out/share/texmf/fonts/enc/${retrievedName}
mkdir -p $out/share/texmf/fonts/map/${retrievedName}
find -name '*.ttf' -exec cp {} $out/share/fonts/truetype/public/${retrievedName} \;
find -name '*.otf' -exec cp {} $out/share/fonts/opentype/public/${retrievedName} \;
find -name '*.pfm' -o -name '*.afm' -o -name '*.pfb' -exec cp {} $out/share/fonts/type1/public/${retrievedName} \;
find -name '*.enc' -exec cp {} $out/share/texmf/fonts/enc/${retrievedName} \;
find -name '*.map' -exec cp {} $out/share/texmf/fonts/map/${retrievedName} \;
'') ["minInit" "defEnsureDir"];
simplyShare = shareName: fullDepEntry (''
mkdir -p $out/share
cp -r . $out/share/${shareName}
'') ["doUnpack" "defEnsureDir"];
doPatchShebangs = dir: fullDepEntry (''
patchShebangFun() {
# Rewrite all script interpreter file names (`#! /path') under the
# specified directory tree to paths found in $PATH. E.g.,
# /bin/sh will be rewritten to /nix/store/<hash>-some-bash/bin/sh.
# Interpreters that are already in the store are left untouched.
echo "patching script interpreter paths"
local f
for f in $(find "${dir}" -xtype f -perm -0100); do
local oldPath=$(sed -ne '1 s,^#![ ]*\([^ ]*\).*$,\1,p' "$f")
if test -n "$oldPath" -a "''${oldPath:0:''${#NIX_STORE}}" != "$NIX_STORE"; then
local newPath=$(type -P $(basename $oldPath) || true)
if test -n "$newPath" -a "$newPath" != "$oldPath"; then
echo "$f: interpreter changed from $oldPath to $newPath"
sed -i "1 s,$oldPath,$newPath," "$f"
else
echo "$f: not changing interpreter from $oldPath"
fi
fi
done
}
patchShebangFun;
'') ["minInit"];
createPythonInstallationTarget = fullDepEntry (''
mkdir -p $(toPythonPath $out)
export PYTHONPATH=$PYTHONPATH''${PYTHONPATH:+:}$(toPythonPath $out)
'') ["minInit" "addInputs" "defEnsureDir"];
fetchUrlFromSrcInfo = srcInfo: fetchurl ({
url = srcInfo.url;
sha256 = srcInfo.hash;
} //
(if srcInfo ? downloadName then {name = srcInfo.downloadName;} else {}));
fetchGitFromSrcInfo = srcInfo: fetchgit {
url = srcInfo.url;
rev = srcInfo.rev;
sha256 = srcInfo.hash;
};
}) // args
# [1]: rewrite using '' instead of " so that indentation gets stripped. It's
# only about some spaces but in the end they will sum up

View File

@ -1,48 +0,0 @@
x@{builderDefsPackage
(abort "Specify dependencies")
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[(abort "Specify helper argument names")];
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
baseName="${abort ''Specify package name''}";
version="";
name="${baseName}-${version}";
url="${name}";
hash="";
};
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.hash;
};
inherit (sourceInfo) name version;
inherit buildInputs;
/* doConfigure should be removed if not needed */
phaseNames = ["doConfigure" "doMakeInstall"];
meta = {
description = "${abort ''Specify description''}";
maintainers = with a.lib.maintainers;
[
(abort "Specify maintainers")
];
platforms = with a.lib.platforms;
(abort "Specify platforms");
license = a.lib.licenses.(abort "Specify license");
};
passthru = {
updateInfo = {
downloadPage = "${abort ''Specify download page''}";
};
};
}) x

View File

@ -1,26 +0,0 @@
a :
let
s = import ./src-for-default.nix;
buildInputs = with a; [
];
in
rec {
src = a.fetchUrlFromSrcInfo s;
inherit (s) name;
inherit buildInputs;
configureFlags = [];
/* doConfigure should be removed if not needed */
phaseNames = ["doConfigure" "doMakeInstall"];
meta = {
description = "${abort "Specify description"}";
maintainers = [
a.lib.maintainers.(abort "Specify maintainer")
];
platforms = with a.lib.platforms;
(abort "Specify supported platforms");
};
}

View File

@ -1,22 +0,0 @@
args : with args; let localDefs = builderDefs (args // rec {
src = /* put a fetchurl here */
(abort "Specify source");
useConfig = true;
reqsList = [
["true" ]
["false"]
];
/* List consisiting of an even number of strings; "key" "value" */
configFlags = [
];
}) args null; /* null is a terminator for sumArgs */
in with localDefs;
stdenv.mkDerivation rec {
name = "${(abort "Specify name")}"+version;
builder = writeScript (name + "-builder")
(textClosure localDefs [(abort "Check phases") doMakeInstall doForceShare doPropagate]);
meta = {
description = "${(abort "Specify description")}";
inherit src;
};
}

View File

@ -1,26 +0,0 @@
a :
let
fetchurl = a.fetchurl;
version = a.lib.attrByPath ["version"] "" a;
buildInputs = with a; [
];
in
rec {
src = /* Here a fetchurl expression goes */;
inherit buildInputs;
configureFlags = [];
/* doConfigure should be removed if not needed */
phaseNames = ["doConfigure" "doMakeInstall"];
name = "${abort "Specify name"}-" + version;
meta = {
description = "${abort "Specify description"}";
maintainers = [
a.lib.maintainers.(abort "Specify maintainer")
];
};
}

View File

@ -1,21 +0,0 @@
#! /bin/sh
[ -n "$2" ] && NIXPKGS_ALL="$2";
[ -z "$NIXPKGS_ALL" ] && [ -d "/etc/nixos/nixpkgs" ] && NIXPKGS_ALL="/etc/nixos/nixpkgs";
[ -z "$NIXPKGS_ALL" ] && [ -d "$HOME/nixpkgs" ] && NIXPKGS_ALL="$HOME/nixpkgs";
[ -z "$NIXPKGS_ALL" ] && {
echo "Cannot find Nixpkgs source. Please specify it via NIXPKGS_ALL or second command line argument"
exit 1
};
derivation="$(nix-instantiate --show-trace - << EOF
let
pkgs = import "${NIXPKGS_ALL}" {};
attrSet = import "${1}";
in
pkgs.attrSetToDir attrSet
EOF
)"
echo "Derivation is: $derivation" >&2
output="$(nix-store -r "$derivation")"
echo "$output/attributes"

View File

@ -1,49 +0,0 @@
{stdenv, fetchurl, gfortran, readline, ncurses, perl, flex,
bison, autoconf, automake, sourceFromHead, config, lib, atlas, gperf, python, glibc, gnuplot, texinfo, texLive, qhull, libX11}:
let commonBuildInputs = [gfortran readline ncurses perl glibc qhull libX11 texinfo]; in
stdenv.mkDerivation ({
NIX_LDFLAGS = "-lpthread";
configureFlags = "--enable-readline --enable-dl";
meta = {
description = "High-level interactive language for numerical computations";
homepage = http://www.octave.org;
license = stdenv.lib.licenses.gpl3;
};
} // (
if config.octave.devVersion or false then {
name = "octave-hg"; # developement version mercurial repo
# REGION AUTO UPDATE: { name="octave"; type = "hg"; url = "http://www.octave.org/hg/octave"; }
src = sourceFromHead "octave-03b414516dd8.tar.gz"
(fetchurl { url = "http://mawercer.de/~nix/repos/octave-03b414516dd8.tar.gz"; sha256 = "30877f1e2ff1a456e7a76153aabf7c59ce7c7a8b63eda0515b1eead6a4351ce7"; });
# END
# HOME is set to $TMP because octave needs to access ${HOME}/.octave_hist while running targets
# in doc/interpreter.. Maybe this can be done better. This hack is fastest :)
preConfigure = ''
# glob is contained in glibc! Don't know why autotools want to use -lglob
sed -i 's/-lglob//' configure.in
./autogen.sh
export HOME=$TMP
'';
buildInputs = commonBuildInputs ++ [ flex bison autoconf automake gperf gnuplot texLive ]
++ lib.optionals (config.octave.atlas or true) [ python atlas ];
# it does build, but documentation doesn't.. So just remove that directory
# from the buildfile
buildPhase = ''
sed -i octMakefile \
-e 's/^\(INSTALL_SUBDIRS = .*\)doc \(.*\)$/\1 \2/' \
-e 's/^\(SUBDIRS = .*\)doc \(.*\)$/\1 \2/' \
-e 's/\$(MAKE) -C doc/#/'
make
'';
} else {
name = "octave-3.1.55";
src = fetchurl {
url = ftp://ftp.octave.org/pub/octave/bleeding-edge/octave-3.1.55.tar.bz2;
sha256 = "1lm4v85kdic4n5yxwzrdb0v6dc6nw06ljgx1q8hfkmi146kpg7s6";
};
buildInputs = commonBuildInputs ++ [ flex bison autoconf automake python ]
++ lib.optionals (config.octave.atlas or true) [ python atlas ];
}
))

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";
};
}

View File

@ -88,10 +88,6 @@ in
# inside the set for derivations.
recurseIntoAttrs = attrs: attrs // { recurseForDerivations = true; };
builderDefs = lib.composedArgsAndFun (callPackage ../build-support/builder-defs/builder-defs.nix) {};
builderDefsPackage = builderDefs.builderDefsPackage builderDefs;
stringsWithDeps = lib.stringsWithDeps;
@ -104,10 +100,6 @@ in
### BUILD SUPPORT
attrSetToDir = arg: callPackage ../build-support/upstream-updater/attrset-to-dir.nix {
theAttrSet = arg;
};
autoreconfHook = makeSetupHook
{ substitutions = { inherit autoconf automake gettext libtool; }; }
../build-support/setup-hooks/autoreconf.sh;
@ -4934,7 +4926,10 @@ in
microscheme = callPackage ../development/compilers/microscheme { };
mitscheme = callPackage ../development/compilers/mit-scheme { };
mitscheme = callPackage ../development/compilers/mit-scheme {
texLive = texlive.combine { inherit (texlive) scheme-small; };
texinfo = texinfo5;
};
mkcl = callPackage ../development/compilers/mkcl {};
@ -5839,9 +5834,6 @@ in
qt = qt4;
}));
# mercurial (hg) bleeding edge version
octaveHG = callPackage ../development/interpreters/octave/hg.nix { };
ocropus = callPackage ../applications/misc/ocropus { };
inherit (callPackages ../development/interpreters/perl {}) perl perl520 perl522;
@ -17344,50 +17336,6 @@ in
texlive = recurseIntoAttrs
(callPackage ../tools/typesetting/tex/texlive-new { });
texLive = builderDefsPackage (callPackage ../tools/typesetting/tex/texlive) {
ghostscript = ghostscriptX;
harfbuzz = harfbuzz.override {
withIcu = true; withGraphite2 = true;
};
};
texLiveFull = lib.setName "texlive-full" (texLiveAggregationFun {
paths = [ texLive texLiveExtra lmodern texLiveCMSuper texLiveLatexXColor
texLivePGF texLiveBeamer texLiveModerncv tipa tex4ht texinfo
texLiveModerntimeline texLiveContext ];
});
/* Look in configurations/misc/raskin.nix for usage example (around revisions
where TeXLive was added)
(texLiveAggregationFun {
paths = [texLive texLiveExtra texLiveCMSuper
texLiveBeamer
];
})
You need to use texLiveAggregationFun to regenerate, say, ls-R (TeX-related file list)
Just installing a few packages doesn't work.
*/
texLiveAggregationFun = params:
builderDefsPackage (callPackage ../tools/typesetting/tex/texlive/aggregate.nix) params;
texLiveContext = builderDefsPackage (callPackage ../tools/typesetting/tex/texlive/context.nix) {};
texLiveExtra = builderDefsPackage (callPackage ../tools/typesetting/tex/texlive/extra.nix) {};
texLiveCMSuper = builderDefsPackage (callPackage ../tools/typesetting/tex/texlive/cm-super.nix) {};
texLiveLatexXColor = builderDefsPackage (callPackage ../tools/typesetting/tex/texlive/xcolor.nix) {};
texLivePGF = pgf3;
texLiveBeamer = builderDefsPackage (callPackage ../tools/typesetting/tex/texlive/beamer.nix) {};
texLiveModerncv = builderDefsPackage (callPackage ../tools/typesetting/tex/texlive/moderncv.nix) {};
texLiveModerntimeline = builderDefsPackage (callPackage ../tools/typesetting/tex/texlive/moderntimeline.nix) {};
ib-tws = callPackage ../applications/office/ib/tws { jdk=oraclejdk8; };
ib-controller = callPackage ../applications/office/ib/controller { jdk=oraclejdk8; };

View File

@ -154,9 +154,6 @@ with import ./release-lib.nix { inherit supportedSystems; };
sysvtools = linux;
tcl = linux;
tcpdump = linux;
texLive = linux;
texLiveBeamer = linux;
texLiveExtra = linux;
texinfo = all;
time = linux;
tinycc = linux;