From 51b02415a015d9889c348a6eb5a2c9ca1cd5b195 Mon Sep 17 00:00:00 2001 From: Tim Waugh Date: Thu, 26 Aug 2010 14:46:34 +0100 Subject: [PATCH 1/2] More upstream fixes for bug #599564. --- ghostscript-SEARCH_HERE_FIRST.patch | 216 +++++++++++++++++++++++++--- ghostscript.spec | 5 +- 2 files changed, 199 insertions(+), 22 deletions(-) diff --git a/ghostscript-SEARCH_HERE_FIRST.patch b/ghostscript-SEARCH_HERE_FIRST.patch index d69ce80..79335f3 100644 --- a/ghostscript-SEARCH_HERE_FIRST.patch +++ b/ghostscript-SEARCH_HERE_FIRST.patch @@ -1,6 +1,6 @@ diff -up ghostscript-8.71/base/bcwin32.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/bcwin32.mak --- ghostscript-8.71/base/bcwin32.mak.SEARCH_HERE_FIRST 2009-11-05 22:24:30.000000000 +0000 -+++ ghostscript-8.71/base/bcwin32.mak 2010-08-25 16:00:06.732142141 +0100 ++++ ghostscript-8.71/base/bcwin32.mak 2010-08-26 14:42:24.564965845 +0100 @@ -78,13 +78,10 @@ GS_LIB_DEFAULT=$(GSROOTDIR)/Resource/Ini # Define whether or not searching for initialization files should always @@ -19,7 +19,7 @@ diff -up ghostscript-8.71/base/bcwin32.mak.SEARCH_HERE_FIRST ghostscript-8.71/ba # Define the name of the interpreter initialization file. diff -up ghostscript-8.71/base/macos-mcp.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/macos-mcp.mak --- ghostscript-8.71/base/macos-mcp.mak.SEARCH_HERE_FIRST 2009-11-05 22:24:30.000000000 +0000 -+++ ghostscript-8.71/base/macos-mcp.mak 2010-08-25 16:00:06.735142115 +0100 ++++ ghostscript-8.71/base/macos-mcp.mak 2010-08-26 14:42:24.565965206 +0100 @@ -53,12 +53,9 @@ GS_DOCDIR=:doc # Define whether or not searching for initialization files should always @@ -37,7 +37,7 @@ diff -up ghostscript-8.71/base/macos-mcp.mak.SEARCH_HERE_FIRST ghostscript-8.71/ # (There is no reason to change this.) diff -up ghostscript-8.71/base/macosx.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/macosx.mak --- ghostscript-8.71/base/macosx.mak.SEARCH_HERE_FIRST 2008-10-02 20:33:22.000000000 +0100 -+++ ghostscript-8.71/base/macosx.mak 2010-08-25 16:00:06.745019041 +0100 ++++ ghostscript-8.71/base/macosx.mak 2010-08-26 14:42:24.567964998 +0100 @@ -78,12 +78,9 @@ GS_LIB_DEFAULT=$(gsdatadir)/Resource/Ini # Define whether or not searching for initialization files should always @@ -55,7 +55,7 @@ diff -up ghostscript-8.71/base/macosx.mak.SEARCH_HERE_FIRST ghostscript-8.71/bas # (There is no reason to change this.) diff -up ghostscript-8.71/base/Makefile.in.SEARCH_HERE_FIRST ghostscript-8.71/base/Makefile.in --- ghostscript-8.71/base/Makefile.in.SEARCH_HERE_FIRST 2009-12-18 07:04:10.000000000 +0000 -+++ ghostscript-8.71/base/Makefile.in 2010-08-25 16:00:06.767101477 +0100 ++++ ghostscript-8.71/base/Makefile.in 2010-08-26 14:42:24.568840684 +0100 @@ -96,12 +96,9 @@ GS_CACHE_DIR="~/.ghostscript/cache/" # Define whether or not searching for initialization files should always @@ -73,7 +73,7 @@ diff -up ghostscript-8.71/base/Makefile.in.SEARCH_HERE_FIRST ghostscript-8.71/ba # (There is no reason to change this.) diff -up ghostscript-8.71/base/msvclib.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/msvclib.mak --- ghostscript-8.71/base/msvclib.mak.SEARCH_HERE_FIRST 2010-01-07 10:53:36.000000000 +0000 -+++ ghostscript-8.71/base/msvclib.mak 2010-08-25 16:00:06.790017275 +0100 ++++ ghostscript-8.71/base/msvclib.mak 2010-08-26 14:42:24.570840275 +0100 @@ -49,13 +49,10 @@ GS_LIB_DEFAULT=$(GSROOTDIR)/Resource/Ini # Define whether or not searching for initialization files should always @@ -92,7 +92,7 @@ diff -up ghostscript-8.71/base/msvclib.mak.SEARCH_HERE_FIRST ghostscript-8.71/ba # Define the name of the interpreter initialization file. diff -up ghostscript-8.71/base/openvms.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/openvms.mak --- ghostscript-8.71/base/openvms.mak.SEARCH_HERE_FIRST 2009-11-05 22:24:30.000000000 +0000 -+++ ghostscript-8.71/base/openvms.mak 2010-08-25 16:00:06.819017200 +0100 ++++ ghostscript-8.71/base/openvms.mak 2010-08-26 14:42:24.571840163 +0100 @@ -68,12 +68,9 @@ GS_LIB_DEFAULT=GS_ROOT:[RESOURCE.INIT],G # Define whether or not searching for initialization files should always @@ -110,7 +110,7 @@ diff -up ghostscript-8.71/base/openvms.mak.SEARCH_HERE_FIRST ghostscript-8.71/ba # (There is no reason to change this.) diff -up ghostscript-8.71/base/openvms.mmk.SEARCH_HERE_FIRST ghostscript-8.71/base/openvms.mmk --- ghostscript-8.71/base/openvms.mmk.SEARCH_HERE_FIRST 2009-01-08 09:17:18.000000000 +0000 -+++ ghostscript-8.71/base/openvms.mmk 2010-08-25 16:00:06.834017369 +0100 ++++ ghostscript-8.71/base/openvms.mmk 2010-08-26 14:42:24.572840641 +0100 @@ -73,12 +73,9 @@ GS_LIB_DEFAULT=GS_LIB # Define whether or not searching for initialization files should always @@ -128,7 +128,7 @@ diff -up ghostscript-8.71/base/openvms.mmk.SEARCH_HERE_FIRST ghostscript-8.71/ba # (There is no reason to change this.) diff -up ghostscript-8.71/base/ugcclib.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/ugcclib.mak --- ghostscript-8.71/base/ugcclib.mak.SEARCH_HERE_FIRST 2008-11-05 20:41:22.000000000 +0000 -+++ ghostscript-8.71/base/ugcclib.mak 2010-08-25 16:00:06.842017457 +0100 ++++ ghostscript-8.71/base/ugcclib.mak 2010-08-26 14:42:24.573840607 +0100 @@ -30,7 +30,7 @@ gsdir = /usr/local/share/ghostscript gsdatadir = $(gsdir)/$(GS_DOT_VERSION) GS_DOCDIR=$(gsdatadir)/doc @@ -140,7 +140,7 @@ diff -up ghostscript-8.71/base/ugcclib.mak.SEARCH_HERE_FIRST ghostscript-8.71/ba #GENOPT=-DDEBUG diff -up ghostscript-8.71/base/unixansi.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/unixansi.mak --- ghostscript-8.71/base/unixansi.mak.SEARCH_HERE_FIRST 2009-11-05 22:24:30.000000000 +0000 -+++ ghostscript-8.71/base/unixansi.mak 2010-08-25 16:00:06.858017358 +0100 ++++ ghostscript-8.71/base/unixansi.mak 2010-08-26 14:42:24.575840435 +0100 @@ -73,12 +73,9 @@ GS_LIB_DEFAULT=$(gsdatadir)/Resource/Ini # Define whether or not searching for initialization files should always @@ -158,7 +158,7 @@ diff -up ghostscript-8.71/base/unixansi.mak.SEARCH_HERE_FIRST ghostscript-8.71/b # (There is no reason to change this.) diff -up ghostscript-8.71/base/unix-gcc.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/unix-gcc.mak --- ghostscript-8.71/base/unix-gcc.mak.SEARCH_HERE_FIRST 2009-11-11 15:50:28.000000000 +0000 -+++ ghostscript-8.71/base/unix-gcc.mak 2010-08-25 16:00:06.888017760 +0100 ++++ ghostscript-8.71/base/unix-gcc.mak 2010-08-26 14:42:24.576840199 +0100 @@ -77,12 +77,9 @@ GS_LIB_DEFAULT=$(gsdatadir)/Resource/Ini # Define whether or not searching for initialization files should always @@ -176,7 +176,7 @@ diff -up ghostscript-8.71/base/unix-gcc.mak.SEARCH_HERE_FIRST ghostscript-8.71/b # (There is no reason to change this.) diff -up ghostscript-8.71/base/watclib.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/watclib.mak --- ghostscript-8.71/base/watclib.mak.SEARCH_HERE_FIRST 2009-01-08 09:17:18.000000000 +0000 -+++ ghostscript-8.71/base/watclib.mak 2010-08-25 16:00:06.896017307 +0100 ++++ ghostscript-8.71/base/watclib.mak 2010-08-26 14:42:24.577840314 +0100 @@ -20,7 +20,7 @@ AROOTDIR=c:/gs GSROOTDIR=$(AROOTDIR)/gs$(GS_DOT_VERSION) GS_DOCDIR=$(GSROOTDIR)/doc @@ -188,7 +188,7 @@ diff -up ghostscript-8.71/base/watclib.mak.SEARCH_HERE_FIRST ghostscript-8.71/ba !ifndef DEBUG diff -up ghostscript-8.71/base/watcw32.mak.SEARCH_HERE_FIRST ghostscript-8.71/base/watcw32.mak --- ghostscript-8.71/base/watcw32.mak.SEARCH_HERE_FIRST 2009-11-05 22:24:30.000000000 +0000 -+++ ghostscript-8.71/base/watcw32.mak 2010-08-25 16:00:06.914017272 +0100 ++++ ghostscript-8.71/base/watcw32.mak 2010-08-26 14:42:24.578840893 +0100 @@ -54,11 +54,8 @@ GS_LIB_DEFAULT=$(GSROOTDIR)/Resource/Ini # Define whether or not searching for initialization files should always # look in the current directory first. This leads to well-known security @@ -204,7 +204,7 @@ diff -up ghostscript-8.71/base/watcw32.mak.SEARCH_HERE_FIRST ghostscript-8.71/ba # (There is no reason to change this.) diff -up ghostscript-8.71/doc/Use.htm.SEARCH_HERE_FIRST ghostscript-8.71/doc/Use.htm --- ghostscript-8.71/doc/Use.htm.SEARCH_HERE_FIRST 2010-02-10 18:17:48.000000000 +0000 -+++ ghostscript-8.71/doc/Use.htm 2010-08-25 16:00:06.949017319 +0100 ++++ ghostscript-8.71/doc/Use.htm 2010-08-26 14:42:24.583840122 +0100 @@ -823,8 +823,8 @@ file name specifies an absolute path. using the name given. Otherwise it tries directories in this order: @@ -253,7 +253,7 @@ diff -up ghostscript-8.71/doc/Use.htm.SEARCH_HERE_FIRST ghostscript-8.71/doc/Use

Setting parameters

diff -up ghostscript-8.71/man/gs.1.SEARCH_HERE_FIRST ghostscript-8.71/man/gs.1 --- ghostscript-8.71/man/gs.1.SEARCH_HERE_FIRST 2010-02-10 18:17:48.000000000 +0000 -+++ ghostscript-8.71/man/gs.1 2010-08-25 16:00:06.952017346 +0100 ++++ ghostscript-8.71/man/gs.1 2010-08-26 14:42:24.586965259 +0100 @@ -208,6 +208,12 @@ whereas \fB\-sname=35\fR is equivalent t .br /name (35) def @@ -269,7 +269,7 @@ diff -up ghostscript-8.71/man/gs.1.SEARCH_HERE_FIRST ghostscript-8.71/man/gs.1 equivalent of \fB\-dQUIET\fR. diff -up ghostscript-8.71/psi/msvc32.mak.SEARCH_HERE_FIRST ghostscript-8.71/psi/msvc32.mak --- ghostscript-8.71/psi/msvc32.mak.SEARCH_HERE_FIRST 2010-02-02 18:14:37.000000000 +0000 -+++ ghostscript-8.71/psi/msvc32.mak 2010-08-25 16:00:06.954017446 +0100 ++++ ghostscript-8.71/psi/msvc32.mak 2010-08-26 14:42:24.588840343 +0100 @@ -100,13 +100,10 @@ GS_LIB_DEFAULT=$(GSROOTDIR)/Resource/Ini # Define whether or not searching for initialization files should always @@ -288,7 +288,7 @@ diff -up ghostscript-8.71/psi/msvc32.mak.SEARCH_HERE_FIRST ghostscript-8.71/psi/ # Define the name of the interpreter initialization file. diff -up ghostscript-8.71/psi/os2.mak.SEARCH_HERE_FIRST ghostscript-8.71/psi/os2.mak --- ghostscript-8.71/psi/os2.mak.SEARCH_HERE_FIRST 2009-11-05 22:24:30.000000000 +0000 -+++ ghostscript-8.71/psi/os2.mak 2010-08-25 16:00:06.956017546 +0100 ++++ ghostscript-8.71/psi/os2.mak 2010-08-26 14:42:24.590840867 +0100 @@ -54,12 +54,9 @@ GS_LIB_DEFAULT=$(GSROOTDIR)/Resource/Ini # Define whether or not searching for initialization files should always @@ -306,8 +306,23 @@ diff -up ghostscript-8.71/psi/os2.mak.SEARCH_HERE_FIRST ghostscript-8.71/psi/os2 # (There is no reason to change this.) diff -up ghostscript-8.71/psi/zfile.c.SEARCH_HERE_FIRST ghostscript-8.71/psi/zfile.c --- ghostscript-8.71/psi/zfile.c.SEARCH_HERE_FIRST 2009-10-04 13:42:07.000000000 +0100 -+++ ghostscript-8.71/psi/zfile.c 2010-08-25 16:02:45.521018186 +0100 -@@ -903,6 +903,91 @@ check_file_permissions_aux(i_ctx_t *i_ct ++++ ghostscript-8.71/psi/zfile.c 2010-08-26 14:42:24.593842556 +0100 +@@ -486,8 +486,13 @@ zstatus(i_ctx_t *i_ctx_p) + struct stat fstat; + int code = parse_file_name(op, &pname, i_ctx_p->LockFilePermissions); + +- if (code < 0) ++ if (code < 0) { ++ if (code == e_undefinedfilename) { ++ make_bool(op, 0); ++ code = 0; ++ } + return code; ++ } + code = gs_terminate_file_name(&pname, imemory, "status"); + if (code < 0) + return code; +@@ -903,6 +908,91 @@ check_file_permissions_aux(i_ctx_t *i_ct } @@ -399,7 +414,7 @@ diff -up ghostscript-8.71/psi/zfile.c.SEARCH_HERE_FIRST ghostscript-8.71/psi/zfi /* Return a file object of of the file searched for using the search paths. */ /* The fname cannot contain a device part (%...%) but the lib paths might. */ /* The startup code calls this to open the initialization file gs_init.ps. */ -@@ -917,8 +1002,9 @@ lib_file_open(gs_file_path_ptr lib_path +@@ -917,8 +1007,9 @@ lib_file_open(gs_file_path_ptr lib_path bool search_with_no_combine = false; bool search_with_combine = false; char fmode[4] = { 'r', 0, 0, 0 }; /* room for binary suffix */ @@ -410,7 +425,7 @@ diff -up ghostscript-8.71/psi/zfile.c.SEARCH_HERE_FIRST ghostscript-8.71/psi/zfi /* when starting arg files (@ files) iodev_default is not yet set */ if (iodev == 0) -@@ -932,75 +1018,36 @@ lib_file_open(gs_file_path_ptr lib_path +@@ -932,75 +1023,36 @@ lib_file_open(gs_file_path_ptr lib_path search_with_no_combine = starting_arg_file; search_with_combine = true; } @@ -516,9 +531,168 @@ diff -up ghostscript-8.71/psi/zfile.c.SEARCH_HERE_FIRST ghostscript-8.71/psi/zfi } return_error(e_undefinedfilename); } +diff -up ghostscript-8.71/Resource/Init/gs_fonts.ps.SEARCH_HERE_FIRST ghostscript-8.71/Resource/Init/gs_fonts.ps +--- ghostscript-8.71/Resource/Init/gs_fonts.ps.SEARCH_HERE_FIRST 2008-08-08 05:22:38.000000000 +0100 ++++ ghostscript-8.71/Resource/Init/gs_fonts.ps 2010-08-26 14:42:24.606840016 +0100 +@@ -939,7 +939,7 @@ $error /SubstituteFont { } put + if + } + { % Font file name +- .loadfontloop { true exit } if ++ //true .loadfontloop { //true exit } if + } + ifelse + } +@@ -982,39 +982,47 @@ $error /SubstituteFont { } put + /.genericrfn where { + pop + pop dup .fonttempstring /FontResourceDir getsystemparam .genericrfn +- .loadfontloop { ++ //false .loadfontloop { + //true + } { +- dup .nametostring .loadfontloop ++ dup .nametostring ++ //true .loadfontloop + } ifelse + } { +- .loadfontloop ++ //true .loadfontloop + } ifelse + } bind def +-/.loadfontloop { % .loadfontloop ++/.loadfontloop { % .loadfontloop + % true + % -or- + % false + % See above regarding the use of 'loop'. + { % Is the font name a string? +- dup type /stringtype ne +- { QUIET not ++ 1 index type /stringtype ne ++ { pop ++ QUIET not + { (Can't find font with non-string name: ) print dup =only (.) = flush + } +- if pop false exit +- } +- if +- % Can we open the file? +- findlibfile not +- { QUIET not ++ if pop //false exit ++ } if ++ ++ % check ++ { ++ findlibfile not ++ } { ++ dup (r) { file } stopped { ++ pop pop //true ++ } { ++ //false ++ } ifelse ++ } ifelse { ++ QUIET not + { (Can't find \(or can't open\) font file ) print dup print + (.) = flush + } + if pop false exit +- } +- if +- +- % Stack: fontname fontfilename fontfile ++ } if ++ % Stack: fontname fontfilename fontfile + DISKFONTS + { .currentglobal true .setglobal + 2 index (r) file +diff -up ghostscript-8.71/Resource/Init/gs_res.ps.SEARCH_HERE_FIRST ghostscript-8.71/Resource/Init/gs_res.ps +--- ghostscript-8.71/Resource/Init/gs_res.ps.SEARCH_HERE_FIRST 2010-01-31 20:30:13.000000000 +0000 ++++ ghostscript-8.71/Resource/Init/gs_res.ps 2010-08-26 14:43:57.159839992 +0100 +@@ -287,7 +287,8 @@ systemdict begin + } { + (Resource) search { + exch concatstrings +- exch 0 1 getinterval concatstrings exit ++ exch pop ++ .file_name_separator concatstrings exit + } { + pop + } ifelse +@@ -557,46 +558,29 @@ status { + { forall } 0 get + currentdict end 2 .execn begin + } bind +-/.file_name_is_iodevice_or_absolute +-{ { +- dup length 0 gt { +- dup 0 get (%) 0 get eq { +- pop true exit +- } if +- } if +- .file_name_is_absolute exit +- } loop +-} bind def +-/ResourceFileName +- { % /in (scr) +- exch //.rfnstring cvs % (scr) (n) +- /GenericResourcePathSep getsystemparam exch % (scr) (/) (n) +- Category .namestring % (scr) (/) (n) (c) +- 3 1 roll % (scr) (c) (/) (n) +- concatstrings concatstrings % (scr) (c/n) +- /GenericResourceDir getsystemparam //.file_name_is_iodevice_or_absolute exec not { +- /GenericResourceDir getsystemparam exch concatstrings +- findlibfile +- { % (scr) (p/c/n) file +- pop exch copy true % (p/c/n) true +- } { % (scr) (c/n) +- false % (scr) (c/n) false +- } ifelse +- } { % (scr) (c/n) +- false % (scr) (c/n) false +- } ifelse +- not { % (scr) (c/n) +- /GenericResourceDir getsystemparam % (scr) (c/n) (d/) +- dup length exch % (scr) (c/n) Ld (d/) +- 3 index copy pop % (scr') (c/n) Ld +- 1 index length % (scr') (c/n) Ld Lcn +- 3 index 3 copy pop % (scr') (c/n) Ld Lcn (scr') Ld Lcn +- getinterval % (scr') (c/n) Ld Lcn (scr[Ld:Lcn]) +- 4 3 roll exch % (scr') Ld Lcn (c/n) (scr[Ld:Lcn]) +- copy pop % (scr'') Ld Lcn +- add 0 exch getinterval % (scr''[0:Ld+Lcn]) +- } if +- } bind ++ ++/ResourceFileName { % /in (scr) --> (p/c/n) ++ exch //.rfnstring cvs % (scr) (n) ++ /GenericResourcePathSep getsystemparam exch % (scr) (/) (n) ++ Category .namestring % (scr) (/) (n) (c) ++ 3 1 roll % (scr) (c) (/) (n) ++ concatstrings concatstrings % (scr) (c/n) ++ /GenericResourceDir getsystemparam 1 index % (scr) (c/n) (p/) (c/n) ++ concatstrings % (scr) (c/n) (p/c/n) ++ dup status { ++ pop pop pop pop exch pop % (scr) (p/c/n) ++ } { ++ exch % (scr) (p/c/n) (c/n) ++ .libfile { ++ dup .filename pop % (scr) (p/c/n) file (p/c/n') ++ exch closefile % (scr) (p/c/n) (p/c/n') ++ exch pop % (scr) (p/c/n') ++ } { ++ pop % (scr) (p/c/n) ++ } ifelse ++ } ifelse ++ exch copy % (p/c/n) ++} bind + + % Additional entries + diff -up ghostscript-8.71/toolbin/msvcxml.bat.SEARCH_HERE_FIRST ghostscript-8.71/toolbin/msvcxml.bat --- ghostscript-8.71/toolbin/msvcxml.bat.SEARCH_HERE_FIRST 2009-01-26 17:16:47.000000000 +0000 -+++ ghostscript-8.71/toolbin/msvcxml.bat 2010-08-25 16:00:06.959017477 +0100 ++++ ghostscript-8.71/toolbin/msvcxml.bat 2010-08-26 14:42:24.619840359 +0100 @@ -1428,7 +1428,7 @@ echo ^ echo ^ diff --git a/ghostscript.spec b/ghostscript.spec index e06b52e..ae4c0af 100644 --- a/ghostscript.spec +++ b/ghostscript.spec @@ -5,7 +5,7 @@ Summary: A PostScript interpreter and renderer. Name: ghostscript Version: %{gs_ver} -Release: 10%{?dist} +Release: 11%{?dist} # Included CMap data is Redistributable, no modification permitted, # see http://bugzilla.redhat.com/487510 @@ -366,6 +366,9 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libgs.so %changelog +* Thu Aug 26 2010 Tim Waugh 8.71-11 +- More upstream fixes for bug #599564. + * Wed Aug 25 2010 Tim Waugh 8.71-10 - Fix implementation of -P- (bug #599564). - Use -P- and -dSAFER in scripts (bug #599564). From c755f33188cc89bd9351cd08fa71e477d06f281a Mon Sep 17 00:00:00 2001 From: Tim Waugh Date: Thu, 26 Aug 2010 14:54:26 +0100 Subject: [PATCH 2/2] Avoid epstopdf failure using upstream patch (bug #627390). --- ghostscript-epstopdf-failure.patch | 50 ++++++++++++++++++++++++++++++ ghostscript.spec | 5 +++ 2 files changed, 55 insertions(+) create mode 100644 ghostscript-epstopdf-failure.patch diff --git a/ghostscript-epstopdf-failure.patch b/ghostscript-epstopdf-failure.patch new file mode 100644 index 0000000..44b8149 --- /dev/null +++ b/ghostscript-epstopdf-failure.patch @@ -0,0 +1,50 @@ +diff -up ghostscript-8.71/base/seexec.c.epstopdf-failure ghostscript-8.71/base/seexec.c +--- ghostscript-8.71/base/seexec.c.epstopdf-failure 2009-08-14 05:12:58.000000000 +0100 ++++ ghostscript-8.71/base/seexec.c 2010-08-26 14:53:05.662840885 +0100 +@@ -165,7 +165,11 @@ hp: r = *pr; + r.limit = r.ptr + ss->hex_left; + status = s_hex_process(&r, pw, &ss->odd, + (ss->is_leading_space ? hex_ignore_leading_whitespace : hex_break_on_whitespace)); +- ss->is_leading_space = (status == 2); ++ if (status == 2) { ++ ss->is_leading_space = true; ++ status = 1; ++ } else ++ ss->is_leading_space = false; + pr->ptr = r.ptr; + ss->hex_left -= r.ptr - start; + /* +diff -up ghostscript-8.71/base/sstring.c.epstopdf-failure ghostscript-8.71/base/sstring.c +--- ghostscript-8.71/base/sstring.c.epstopdf-failure 2009-08-13 20:04:34.000000000 +0100 ++++ ghostscript-8.71/base/sstring.c 2010-08-26 14:53:05.663840592 +0100 +@@ -355,8 +355,12 @@ const stream_template s_PSSD_template = + /* ------ Utilities ------ */ + + /* +- * Convert hex data to binary. Return 1 if we filled the string, 0 if +- * we ran out of input data before filling the string, or ERRC on error. ++ * Convert hex data to binary. ++ * Return 1 if we filled the string, ++ * 0 if we ran out of input data before filling the string, ++ * 2 if hex_break_on_whitespace is on and we encounrered ++ * a white space. ++ * ERRC on error. + * The caller must set *odd_digit to -1 before the first call; + * after each call, if an odd number of hex digits has been read (total), + * *odd_digit is the odd digit value, otherwise *odd_digit = -1. +diff -up ghostscript-8.71/psi/iscan.c.epstopdf-failure ghostscript-8.71/psi/iscan.c +--- ghostscript-8.71/psi/iscan.c.epstopdf-failure 2009-11-11 13:52:23.000000000 +0000 ++++ ghostscript-8.71/psi/iscan.c 2010-08-26 14:53:05.665840572 +0100 +@@ -329,9 +329,9 @@ scan_handle_refill(i_ctx_t *i_ctx_p, sca + rstate, 1, cont); + } + } +- /* No more data available, but no exception. How can this be? */ +- lprintf("Can't refill scanner input buffer!"); +- return_error(e_Fatal); ++ /* No more data available, but no exception. */ ++ /* A filter is consuming headers but returns nothing. */ ++ return 0; + } + + /* diff --git a/ghostscript.spec b/ghostscript.spec index ae4c0af..867caf0 100644 --- a/ghostscript.spec +++ b/ghostscript.spec @@ -38,6 +38,7 @@ Patch20: ghostscript-CVE-2010-1628.patch Patch21: ghostscript-jbig2-image-refcount.patch Patch22: ghostscript-SEARCH_HERE_FIRST.patch Patch23: ghostscript--P-.patch +Patch24: ghostscript-epstopdf-failure.patch Requires: urw-fonts >= 1.1, ghostscript-fonts BuildRequires: xz @@ -178,6 +179,9 @@ rm -rf libpng zlib jpeg jasper # Use -P- and -dSAFER in scripts (bug #599564). %patch23 -p1 -b .-P- +# Avoid epstopdf failure using upstream patch (bug #627390). +%patch24 -p1 -b .epstopdf-failure + # Convert manual pages to UTF-8 from8859_1() { iconv -f iso-8859-1 -t utf-8 < "$1" > "${1}_" @@ -367,6 +371,7 @@ rm -rf $RPM_BUILD_ROOT %changelog * Thu Aug 26 2010 Tim Waugh 8.71-11 +- Avoid epstopdf failure using upstream patch (bug #627390). - More upstream fixes for bug #599564. * Wed Aug 25 2010 Tim Waugh 8.71-10