From d26ca8bc668cf91169b5b2e8abc8734524309243 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Sun, 8 Dec 2019 22:59:45 -0500 Subject: [PATCH 1/2] texlive.bin.dvisvgm: fix for our ghostscript --- pkgs/tools/typesetting/tex/texlive/bin.nix | 15 +++++++++++++++ .../typesetting/tex/texlive/dvisvgm-fix.patch | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/tools/typesetting/tex/texlive/dvisvgm-fix.patch diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix index 8fb155da755..6716b463fa9 100644 --- a/pkgs/tools/typesetting/tex/texlive/bin.nix +++ b/pkgs/tools/typesetting/tex/texlive/bin.nix @@ -261,6 +261,21 @@ dvisvgm = stdenv.mkDerivation { inherit (common) src; + patches = [ + # Fix for ghostscript>=9.27 + # Backport of + # https://github.com/mgieseki/dvisvgm/commit/bc51951bc90b700c28ea018993bdb058e5271e9b + ./dvisvgm-fix.patch + + # Needed for ghostscript>=9.50 + (fetchpatch { + url = "https://github.com/mgieseki/dvisvgm/commit/7b93a9197b69305429183affd24fa40ee04a663a.patch"; + sha256 = "1gmj76ja9xng39wxckhs9q140abixgb8rkrcfv2cdgq786wm3vag"; + stripLen = 1; + extraPrefix = "texk/dvisvgm/dvisvgm-src/"; + }) + ]; + nativeBuildInputs = [ pkgconfig ]; # TODO: dvisvgm still uses vendored dependencies buildInputs = [ core/*kpathsea*/ ghostscript zlib freetype potrace xxHash ]; diff --git a/pkgs/tools/typesetting/tex/texlive/dvisvgm-fix.patch b/pkgs/tools/typesetting/tex/texlive/dvisvgm-fix.patch new file mode 100644 index 00000000000..0e927e24fd0 --- /dev/null +++ b/pkgs/tools/typesetting/tex/texlive/dvisvgm-fix.patch @@ -0,0 +1,16 @@ +diff a/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp b/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp +--- a/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp ++++ b/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp +@@ -107,8 +107,7 @@ const char *PSInterpreter::PSDEFS = + "dmode sysexec<>exc" +-"h get 1(setblendmode)prcmd}def/@pdfpagecount{GS_PDF_ProcSet begin pdfdict begi" +-"n(r)file pdfopen begin pdfpagecount currentdict pdfclose end end end}def/@pdfp" +-"agebox{GS_PDF_ProcSet begin pdfdict begin(r)file pdfopen begin dup dup 1 lt ex" +-"ch pdfpagecount gt or{pop}{pdfgetpage/MediaBox pget pop aload pop}ifelse curre" +-"ntdict pdfclose end end end}def DELAYBIND{.bindnow}if "; ++"h get 1(setblendmode)prcmd}def/@pdfpagecount{(r)file runpdfbegin pdfpagecount " ++"runpdfend}def/@pdfpagebox{(r)file runpdfbegin dup dup 1 lt exch pdfpagecount g" ++"t or{pop}{pdfgetpage/MediaBox pget pop aload pop}ifelse runpdfend}def DELAYBIN" ++"D{.bindnow}if "; From 2f637f4cff9335990f5d951fb2c81ccec71d8929 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Sun, 8 Dec 2019 23:04:03 -0500 Subject: [PATCH 2/2] texlive.bin.dvisvgm: don't provide dependencies that it ignores dvisvgm currently uses its own vendored versions for multiple libraries --- pkgs/tools/typesetting/tex/texlive/bin.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix index 6716b463fa9..d251d55c9f5 100644 --- a/pkgs/tools/typesetting/tex/texlive/bin.nix +++ b/pkgs/tools/typesetting/tex/texlive/bin.nix @@ -278,7 +278,7 @@ dvisvgm = stdenv.mkDerivation { nativeBuildInputs = [ pkgconfig ]; # TODO: dvisvgm still uses vendored dependencies - buildInputs = [ core/*kpathsea*/ ghostscript zlib freetype potrace xxHash ]; + buildInputs = [ core/*kpathsea*/ ghostscript zlib freetype /*potrace xxHash*/ ]; preConfigure = "cd texk/dvisvgm";