summary refs log tree commit diff
path: root/pkgs/development/libraries/libspectre
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2016-01-13 20:48:28 +0300
committerNikolay Amiantov <ab@fmap.me>2016-01-17 15:50:40 +0300
commitd34a72dfba19e6db6f70023b92544b54e88b81f4 (patch)
treee2be9c7057108de5f816d1b6577095dd9f0359b5 /pkgs/development/libraries/libspectre
parenteaaf988d4552703be38c8acd2597ddf5eae2b181 (diff)
downloadnixpkgs-d34a72dfba19e6db6f70023b92544b54e88b81f4.tar
nixpkgs-d34a72dfba19e6db6f70023b92544b54e88b81f4.tar.gz
nixpkgs-d34a72dfba19e6db6f70023b92544b54e88b81f4.tar.bz2
nixpkgs-d34a72dfba19e6db6f70023b92544b54e88b81f4.tar.lz
nixpkgs-d34a72dfba19e6db6f70023b92544b54e88b81f4.tar.xz
nixpkgs-d34a72dfba19e6db6f70023b92544b54e88b81f4.tar.zst
nixpkgs-d34a72dfba19e6db6f70023b92544b54e88b81f4.zip
libspectre: fix for ghostscript 9.18
Diffstat (limited to 'pkgs/development/libraries/libspectre')
-rw-r--r--pkgs/development/libraries/libspectre/default.nix2
-rw-r--r--pkgs/development/libraries/libspectre/libspectre-0.2.7-gs918.patch42
2 files changed, 44 insertions, 0 deletions
diff --git a/pkgs/development/libraries/libspectre/default.nix b/pkgs/development/libraries/libspectre/default.nix
index 0e5f976c122..5c10fff50ad 100644
--- a/pkgs/development/libraries/libspectre/default.nix
+++ b/pkgs/development/libraries/libspectre/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1v63lqc6bhhxwkpa43qmz8phqs8ci4dhzizyy16d3vkb20m846z8";
   };
 
+  patches = [ ./libspectre-0.2.7-gs918.patch ];
+
   buildInputs = [
     # Need `libgs.so'.
     pkgconfig ghostscript cairo /*for tests*/
diff --git a/pkgs/development/libraries/libspectre/libspectre-0.2.7-gs918.patch b/pkgs/development/libraries/libspectre/libspectre-0.2.7-gs918.patch
new file mode 100644
index 00000000000..e9a4eda192b
--- /dev/null
+++ b/pkgs/development/libraries/libspectre/libspectre-0.2.7-gs918.patch
@@ -0,0 +1,42 @@
+Fixed error namespace for >=ghostscript-gpl-9.18
+
+https://bugs.gentoo.org/563540
+
+--- libspectre-0.2.7/libspectre/spectre-gs.c
++++ libspectre-0.2.7/libspectre/spectre-gs.c
+@@ -43,12 +43,12 @@
+ 	
+ 	if (code <= -100) {
+ 		switch (code) {
+-			case e_Fatal:
++			case gs_error_Fatal:
+ 				fprintf (stderr, "fatal internal error %d", code);
+ 				return TRUE;
+ 				break;
+ 
+-			case e_ExecStackUnderflow:
++			case gs_error_ExecStackUnderflow:
+ 				fprintf (stderr, "stack overflow %d", code);
+ 				return TRUE;
+ 				break;
+@@ -109,9 +109,9 @@
+ 		set = _spectre_strdup_printf ("%d %d translate\n", -x, -y);
+ 		error = gsapi_run_string_continue (ghostscript_instance, set, strlen (set),
+ 						   0, &exit_code);
+-		error = error == e_NeedInput ? 0 : error;
++		error = error == gs_error_NeedInput ? 0 : error;
+ 		free (set);
+-		if (error != e_NeedInput && critic_error_code (error)) {
++		if (error != gs_error_NeedInput && critic_error_code (error)) {
+ 			fclose (fd);
+ 			return FALSE;
+ 		}
+@@ -126,7 +126,7 @@
+ 		read = fread (buf, sizeof (char), to_read, fd);
+ 		error = gsapi_run_string_continue (ghostscript_instance,
+ 						   buf, read, 0, &exit_code);
+-		error = error == e_NeedInput ? 0 : error;
++		error = error == gs_error_NeedInput ? 0 : error;
+ 		left -= read;
+ 	}
+