758e85cfac
- Generate a forwarder scripts only for executable files. This change removes the broken 'man' script, for example. - Run the real binaries with 'exec'. - Use $SHELL to interpret the forwarder scripts rather than /bin/sh. - Indent consistently with blanks. - Removed some debug output from the build expression. svn path=/nixpkgs/trunk/; revision=27679
71 lines
2.2 KiB
Nix
71 lines
2.2 KiB
Nix
args : with args;
|
|
rec {
|
|
phaseNames = ["doAggregate"];
|
|
name = "TeXLive-linkdir";
|
|
|
|
buildInputs = lib.closePropagation paths;
|
|
|
|
doAggregate = fullDepEntry (''
|
|
|
|
ensureDir $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}"
|
|
ensureDir $out/"$(dirname "$REPLY")"
|
|
ln -fs $currentPath/"$REPLY" $out/"$REPLY"
|
|
echo
|
|
done | while read; do head -n 99 >/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 -r $out/texmf-config
|
|
find $out/texmf/ -type d | while read; do
|
|
REPLY="''${REPLY#$out/texmf}"
|
|
ensureDir $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 $out/texmf*/ls-R
|
|
for i in web2c texconfig fonts/map; do
|
|
cp -r $out/texmf/$i/* $out/texmf-config/$i || true
|
|
done
|
|
|
|
TEXMFCONFIG=$out/texmf-config HOME=$PWD PATH=$PATH:$out/bin updmap --syncwithtrees
|
|
PATH=$PATH:$out/bin mktexlsr $out/texmf*
|
|
TEXMFCONFIG=$out/texmf-config HOME=$PWD PATH=$PATH:$out/bin updmap --syncwithtrees
|
|
PATH=$PATH:$out/bin mktexlsr $out/texmf*
|
|
'') ["minInit" "defEnsureDir" "addInputs"];
|
|
|
|
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.
|
|
'';
|
|
};
|
|
}
|