Merge pull request #116808 from veprbl/pr/texlive_dvipng_set_gs
texlive.bin.dvipng: refactor gs hardcoding, add a test for it
This commit is contained in:
commit
6869845ff1
2 changed files with 45 additions and 7 deletions
|
@ -1,4 +1,4 @@
|
||||||
{ runCommandNoCC, fetchurl, file, texlive }:
|
{ runCommandNoCC, fetchurl, file, texlive, writeShellScript }:
|
||||||
|
|
||||||
{
|
{
|
||||||
chktex = runCommandNoCC "texlive-test-chktex" {
|
chktex = runCommandNoCC "texlive-test-chktex" {
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# https://github.com/NixOS/nixpkgs/issues/75605
|
# https://github.com/NixOS/nixpkgs/issues/75605
|
||||||
dvipng = runCommandNoCC "texlive-test-dvipng" {
|
dvipng.basic = runCommandNoCC "texlive-test-dvipng-basic" {
|
||||||
nativeBuildInputs = [ file texlive.combined.scheme-medium ];
|
nativeBuildInputs = [ file texlive.combined.scheme-medium ];
|
||||||
input = fetchurl {
|
input = fetchurl {
|
||||||
name = "test_dvipng.tex";
|
name = "test_dvipng.tex";
|
||||||
|
@ -38,6 +38,47 @@
|
||||||
mv document*.png "$out"/
|
mv document*.png "$out"/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
# test dvipng's limited capability to render postscript specials via GS
|
||||||
|
dvipng.ghostscript = runCommandNoCC "texlive-test-ghostscript" {
|
||||||
|
nativeBuildInputs = [ file (with texlive; combine { inherit scheme-small dvipng; }) ];
|
||||||
|
input = builtins.toFile "postscript-sample.tex" ''
|
||||||
|
\documentclass{minimal}
|
||||||
|
\begin{document}
|
||||||
|
Ni
|
||||||
|
\special{ps:
|
||||||
|
newpath
|
||||||
|
0 0 moveto
|
||||||
|
7 7 rlineto
|
||||||
|
0 7 moveto
|
||||||
|
7 -7 rlineto
|
||||||
|
stroke
|
||||||
|
showpage
|
||||||
|
}
|
||||||
|
\end{document}
|
||||||
|
'';
|
||||||
|
gs_trap = writeShellScript "gs_trap.sh" ''
|
||||||
|
exit 1
|
||||||
|
'';
|
||||||
|
} ''
|
||||||
|
cp "$gs_trap" ./gs
|
||||||
|
export PATH=$PWD:$PATH
|
||||||
|
# check that the trap works
|
||||||
|
gs && exit 1
|
||||||
|
|
||||||
|
cp "$input" ./document.tex
|
||||||
|
|
||||||
|
latex document.tex
|
||||||
|
dvipng -T 1in,1in -strict -picky document.dvi
|
||||||
|
for f in document*.png; do
|
||||||
|
file "$f" | tee output
|
||||||
|
grep PNG output
|
||||||
|
done
|
||||||
|
|
||||||
|
mkdir "$out"
|
||||||
|
mv document*.png "$out"/
|
||||||
|
'';
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/NixOS/nixpkgs/issues/75070
|
# https://github.com/NixOS/nixpkgs/issues/75070
|
||||||
dvisvgm = runCommandNoCC "texlive-test-dvisvgm" {
|
dvisvgm = runCommandNoCC "texlive-test-dvisvgm" {
|
||||||
nativeBuildInputs = [ file texlive.combined.scheme-medium ];
|
nativeBuildInputs = [ file texlive.combined.scheme-medium ];
|
||||||
|
|
|
@ -281,12 +281,9 @@ dvipng = stdenv.mkDerivation {
|
||||||
configureFlags = common.configureFlags
|
configureFlags = common.configureFlags
|
||||||
++ [ "--with-system-kpathsea" "--with-gs=yes" "--disable-debug" ];
|
++ [ "--with-system-kpathsea" "--with-gs=yes" "--disable-debug" ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
GS="${ghostscript}/bin/gs";
|
||||||
|
|
||||||
# I didn't manage to hardcode gs location by configureFlags
|
enableParallelBuilding = true;
|
||||||
postInstall = ''
|
|
||||||
wrapProgram "$out/bin/dvipng" --prefix PATH : '${ghostscript}/bin'
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue