diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index 6444537cac29..ec0ab074625d 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -4,6 +4,7 @@
, boost
, cairo
, cmake
+, desktopToDarwinBundle
, fetchurl
, gettext
, ghostscript
@@ -78,16 +79,15 @@ stdenv.mkDerivation rec {
# e.g., those from the "Effects" menu.
python3 = "${python3Env}/bin/python";
})
+ (substituteAll {
+ # Fix path to ps2pdf binary
+ src = ./fix-ps2pdf-path.patch;
+ inherit ghostscript;
+ })
];
postPatch = ''
patchShebangs share/extensions
- substituteInPlace share/extensions/eps_input.inx \
- --replace "location=\"path\">ps2pdf" "location=\"absolute\">${ghostscript}/bin/ps2pdf"
- substituteInPlace share/extensions/ps_input.inx \
- --replace "location=\"path\">ps2pdf" "location=\"absolute\">${ghostscript}/bin/ps2pdf"
- substituteInPlace share/extensions/ps_input.py \
- --replace "call('ps2pdf'" "call('${ghostscript}/bin/ps2pdf'"
patchShebangs share/templates
patchShebangs man/fix-roff-punct
@@ -107,7 +107,9 @@ stdenv.mkDerivation rec {
] ++ (with perlPackages; [
perl
XMLParser
- ]);
+ ]) ++ lib.optionals stdenv.isDarwin [
+ desktopToDarwinBundle
+ ];
buildInputs = [
boehmgc
diff --git a/pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch b/pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch
new file mode 100644
index 000000000000..9cd8e4b34cb5
--- /dev/null
+++ b/pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch
@@ -0,0 +1,36 @@
+diff -Naur inkscape-1.2.2_2022-12-01_b0a8486541.orig/share/extensions/eps_input.inx inkscape-1.2.2_2022-12-01_b0a8486541/share/extensions/eps_input.inx
+--- inkscape-1.2.2_2022-12-01_b0a8486541.orig/share/extensions/eps_input.inx 2023-08-02 22:22:32.000000000 +0400
++++ inkscape-1.2.2_2022-12-01_b0a8486541/share/extensions/eps_input.inx 2023-08-02 22:23:34.000000000 +0400
+@@ -3,7 +3,7 @@
+ EPS Input
+ org.inkscape.input.eps
+ org.inkscape.input.pdf
+- ps2pdf
++ @ghostscript@/bin/ps2pdf
+ true
+
+diff -Naur inkscape-1.2.2_2022-12-01_b0a8486541.orig/share/extensions/ps_input.inx inkscape-1.2.2_2022-12-01_b0a8486541/share/extensions/ps_input.inx
+--- inkscape-1.2.2_2022-12-01_b0a8486541.orig/share/extensions/ps_input.inx 2023-08-02 22:22:33.000000000 +0400
++++ inkscape-1.2.2_2022-12-01_b0a8486541/share/extensions/ps_input.inx 2023-08-02 22:24:00.000000000 +0400
+@@ -3,7 +3,7 @@
+ PostScript Input
+ org.inkscape.input.postscript_input
+ org.inkscape.input.pdf
+- ps2pdf
++ @ghostscript@/bin/ps2pdf
+
+
+diff -Naur inkscape-1.2.2_2022-12-01_b0a8486541.orig/share/extensions/ps_input.py inkscape-1.2.2_2022-12-01_b0a8486541/share/extensions/ps_input.py
+--- inkscape-1.2.2_2022-12-01_b0a8486541.orig/share/extensions/ps_input.py 2023-08-02 22:22:32.000000000 +0400
++++ inkscape-1.2.2_2022-12-01_b0a8486541/share/extensions/ps_input.py 2023-08-02 22:23:48.000000000 +0400
+@@ -79,7 +79,7 @@
+ else:
+ try:
+ call(
+- "ps2pdf",
++ "@ghostscript@/bin/ps2pdf",
+ crop,
+ "-dAutoRotatePages=/" + self.options.autorotate,
+ input_file,