From d34a72dfba19e6db6f70023b92544b54e88b81f4 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Wed, 13 Jan 2016 20:48:28 +0300 Subject: [PATCH] libspectre: fix for ghostscript 9.18 --- .../libraries/libspectre/default.nix | 2 + .../libspectre/libspectre-0.2.7-gs918.patch | 42 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 pkgs/development/libraries/libspectre/libspectre-0.2.7-gs918.patch diff --git a/pkgs/development/libraries/libspectre/default.nix b/pkgs/development/libraries/libspectre/default.nix index 0e5f976c1224..5c10fff50ad3 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 000000000000..e9a4eda192ba --- /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; + } +