From 9bf31eaba05c0d7796f076662fb58c2e5ae82df4 Mon Sep 17 00:00:00 2001 From: tuxcoder <tuxcoder+git@o-g.at> Date: Sat, 13 Apr 2024 02:22:19 +0200 Subject: [PATCH 1/2] inkscape: fix path patch fix a bug introduced in 0db4b9956990c9394006214042f31da9f00244d7 by missing the change from `path` to `absolute` for the `location` argument --- pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch b/pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch index 9cd8e4b34cb5..0a28533591e1 100644 --- a/pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch +++ b/pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch @@ -6,7 +6,7 @@ diff -Naur inkscape-1.2.2_2022-12-01_b0a8486541.orig/share/extensions/eps_input. <id>org.inkscape.input.eps</id> <dependency type="extension">org.inkscape.input.pdf</dependency> - <dependency type="executable" location="path">ps2pdf</dependency> -+ <dependency type="executable" location="path">@ghostscript@/bin/ps2pdf</dependency> ++ <dependency type="executable" location="absolute">@ghostscript@/bin/ps2pdf</dependency> <param name="crop" type="bool" gui-hidden="true">true</param> <param name="autorotate" type="optiongroup" appearance="combo" gui-text="Determine page orientation from text direction" gui-description="The PS/EPS importer can try to determine the page orientation such that the majority of the text runs left-to-right."> @@ -18,7 +18,7 @@ diff -Naur inkscape-1.2.2_2022-12-01_b0a8486541.orig/share/extensions/ps_input.i <id>org.inkscape.input.postscript_input</id> <dependency type="extension">org.inkscape.input.pdf</dependency> - <dependency type="executable" location="path">ps2pdf</dependency> -+ <dependency type="executable" location="path">@ghostscript@/bin/ps2pdf</dependency> ++ <dependency type="executable" location="absolute">@ghostscript@/bin/ps2pdf</dependency> <param name="autorotate" type="optiongroup" appearance="combo" gui-text="Determine page orientation from text direction" gui-description="The PS/EPS importer can try to determine the page orientation such that the majority of the text runs left-to-right."> <option value="None">Disabled</option> From fae8ec30eabc4dc29051ab26a37ba1ba89827031 Mon Sep 17 00:00:00 2001 From: tuxcoder <tuxcoder+git@o-g.at> Date: Sat, 13 Apr 2024 09:13:54 +0200 Subject: [PATCH 2/2] inkscape: add unit test for ps2pdf plugin to prevent future regressen add a smal test, to check if ps2pdf plugin is working by createing a .ps / .eps file and converting it back to svg --- .../graphics/inkscape/default.nix | 3 +++ .../graphics/inkscape/test-ps2pdf-plugin.nix | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/applications/graphics/inkscape/test-ps2pdf-plugin.nix diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix index 35000a06de02..fcc56fd14dd0 100644 --- a/pkgs/applications/graphics/inkscape/default.nix +++ b/pkgs/applications/graphics/inkscape/default.nix @@ -3,6 +3,7 @@ , boehmgc , boost , cairo +, callPackage , cmake , desktopToDarwinBundle , fetchurl @@ -172,6 +173,8 @@ stdenv.mkDerivation rec { done ''; + passthru.tests.ps2pdf-plugin = callPackage ./test-ps2pdf-plugin.nix { }; + meta = with lib; { description = "Vector graphics editor"; homepage = "https://www.inkscape.org"; diff --git a/pkgs/applications/graphics/inkscape/test-ps2pdf-plugin.nix b/pkgs/applications/graphics/inkscape/test-ps2pdf-plugin.nix new file mode 100644 index 000000000000..3e55557c860e --- /dev/null +++ b/pkgs/applications/graphics/inkscape/test-ps2pdf-plugin.nix @@ -0,0 +1,27 @@ +{ inkscape, runCommand, writeTextFile }: + +let + svg_file = writeTextFile { + name = "test.svg"; + text = '' +<?xml version="1.0" encoding="UTF-8"?> +<svg width="50" height="50" version="1.1"> + <ellipse cx="1" cy="1" rx="1" ry="1" /> +</svg>''; + }; +in +runCommand "inkscape-test-eps" +{ + nativeBuildInputs = [ inkscape ]; +} '' + echo ps test + inkscape ${svg_file} --export-type=ps -o test.ps + inkscape test.ps -o test.ps.svg + + echo eps test + inkscape ${svg_file} --export-type=eps -o test.eps + inkscape test.eps -o test.eps.svg + + # inkscape does not return an error code, only does not create files + [[ -f test.ps.svg && -f test.eps.svg ]] && touch $out +''