9.08rc1. CUPS filters moved to the cups-filters package.

This commit is contained in:
Tim Waugh 2013-08-12 17:03:34 +01:00
parent 08e89d9f23
commit 5e3e208813
9 changed files with 22 additions and 28692 deletions

View File

@ -1,29 +0,0 @@
diff -up ghostscript-9.07/cups/gstoraster.c.cups-colord ghostscript-9.07/cups/gstoraster.c
--- ghostscript-9.07/cups/gstoraster.c.cups-colord 2013-07-01 17:06:10.977743028 +0100
+++ ghostscript-9.07/cups/gstoraster.c 2013-07-01 17:18:36.597852666 +0100
@@ -596,11 +596,21 @@ main (int argc, char **argv, char *envp[
qualifier = colord_get_qualifier_for_ppd (ppd);
if (qualifier != NULL) {
+ const char *env_printer = getenv("PRINTER");
+ char *device_id;
- fprintf(stderr, "DEBUG: PPD uses qualifier '%s.%s.%s'\n",
- qualifier[0], qualifier[1], qualifier[2]);
- icc_profile = colord_get_profile_for_device_id (getenv("PRINTER"),
- (const char**) qualifier);
+ if (env_printer) {
+ device_id = malloc (5 + strlen (env_printer) + 1);
+ if (device_id) {
+ strcpy (device_id, "cups-");
+ strcpy (device_id + 5, env_printer);
+ fprintf(stderr, "DEBUG: PPD uses qualifier '%s.%s.%s'\n",
+ qualifier[0], qualifier[1], qualifier[2]);
+ icc_profile = colord_get_profile_for_device_id (device_id,
+ (const char**) qualifier);
+ free (device_id);
+ }
+ }
/* fall back to the PPD */
if (icc_profile == NULL)

View File

@ -1,15 +0,0 @@
diff -up ghostscript-9.05/cups/cups.mak.cups-filters ghostscript-9.05/cups/cups.mak
--- ghostscript-9.05/cups/cups.mak.cups-filters 2012-02-08 08:48:50.000000000 +0000
+++ ghostscript-9.05/cups/cups.mak 2012-02-09 11:42:22.211731587 +0000
@@ -56,9 +56,9 @@ install-cups: cups
$(INSTALL_PROGRAM) $(GSTORASTER_XE) $(DESTDIR)$(CUPSSERVERBIN)/filter; \
fi
$(INSTALL_PROGRAM) cups/gstopxl $(DESTDIR)$(CUPSSERVERBIN)/filter
- -mkdir -p $(DESTDIR)$(CUPSSERVERROOT)
+ -mkdir -p $(DESTDIR)$(CUPSDATA)/mime
if [ "$(CUPSPDFTORASTER)" = "1" ]; then \
- $(INSTALL_DATA) cups/gstoraster.convs $(DESTDIR)$(CUPSSERVERROOT); \
+ $(INSTALL_DATA) cups/gstoraster.convs $(DESTDIR)$(CUPSDATA)/mime; \
fi
-mkdir -p $(DESTDIR)$(CUPSDATA)/model
$(INSTALL_DATA) cups/pxlcolor.ppd $(DESTDIR)$(CUPSDATA)/model

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +1,7 @@
diff -up ghostscript-9.07/base/gsicc_manage.c.icc-missing-check ghostscript-9.07/base/gsicc_manage.c
--- ghostscript-9.07/base/gsicc_manage.c.icc-missing-check 2013-02-14 07:58:13.000000000 +0000
+++ ghostscript-9.07/base/gsicc_manage.c 2013-02-14 17:15:48.974654828 +0000
@@ -144,6 +144,8 @@ gsicc_set_iccsmaskprofile(const char *pn
if (str != NULL) {
icc_profile = gsicc_profile_new(str, mem, pname, namelen);
code = sfclose(str);
+ }
+ if (str != NULL && icc_profile != NULL) {
/* Get the profile handle */
icc_profile->profile_handle =
gsicc_get_profile_handle_buffer(icc_profile->buffer,
@@ -593,6 +595,8 @@ gsicc_set_srcgtag_struct(gsicc_manager_t
diff -up ghostscript-9.08rc1/base/gsicc_manage.c.icc-missing-check ghostscript-9.08rc1/base/gsicc_manage.c
--- ghostscript-9.08rc1/base/gsicc_manage.c.icc-missing-check 2013-08-09 14:12:18.000000000 +0100
+++ ghostscript-9.08rc1/base/gsicc_manage.c 2013-08-09 16:54:11.167695694 +0100
@@ -599,6 +599,8 @@ gsicc_set_srcgtag_struct(gsicc_manager_t
icc_profile =
gsicc_profile_new(str, mem, curr_ptr, strlen(curr_ptr));
code = sfclose(str);
@ -19,12 +10,3 @@ diff -up ghostscript-9.07/base/gsicc_manage.c.icc-missing-check ghostscript-9.07
gsicc_init_profile_info(icc_profile);
cmm = gsCMM_DEFAULT;
/* Check if this object is a devicelink profile.
@@ -1516,6 +1520,8 @@ gsicc_set_device_profile(gx_device * pde
icc_profile =
gsicc_profile_new(str, mem, file_name, strlen(file_name));
code = sfclose(str);
+ }
+ if (str != NULL && icc_profile != NULL) {
if (pro_enum < gsPROOFPROFILE) {
if_debug1m(gs_debug_flag_icc, mem,
"[icc] Setting device profile %d\n", pro_enum);

View File

@ -1,51 +0,0 @@
diff -up ghostscript-9.06/base/gdevpdtd.c.pdfwrite-segfault ghostscript-9.06/base/gdevpdtd.c
--- ghostscript-9.06/base/gdevpdtd.c.pdfwrite-segfault 2012-08-08 09:01:36.000000000 +0100
+++ ghostscript-9.06/base/gdevpdtd.c 2013-05-16 09:28:07.410407852 +0100
@@ -699,7 +699,7 @@ pdf_write_FontDescriptor(gx_device_pdf *
if (code < 0)
return code;
}
- if (pfd->embed) {
+ if (pfd->embed && pfd->base_font->FontFile) {
code = pdf_write_FontFile_entry(pdev, pfd->base_font);
if (code < 0)
return code;
diff -up ghostscript-9.06/base/gxtype1.c.pdfwrite-segfault ghostscript-9.06/base/gxtype1.c
--- ghostscript-9.06/base/gxtype1.c.pdfwrite-segfault 2012-08-08 09:01:36.000000000 +0100
+++ ghostscript-9.06/base/gxtype1.c 2013-05-16 09:28:07.409407814 +0100
@@ -371,7 +371,7 @@ gs_type1_piece_codes(/*const*/ gs_font_t
const byte *cip, *end;
crypt_state state;
int c, hhints = 0, vhints = 0;
- int code;
+ int code, call_depth = 0;
CLEAR_CSTACK(cstack, csp);
cip = pgd->bits.data;
@@ -450,6 +450,7 @@ gs_type1_piece_codes(/*const*/ gs_font_t
}
break;
case c2_callgsubr:
+ call_depth++;
c = fixed2int_var(*csp) + pdata->gsubrNumberBias;
code = pdata->procs.subr_data
(pfont, c, true, &ipsp[1].cs_data);
@@ -462,6 +463,7 @@ gs_type1_piece_codes(/*const*/ gs_font_t
end = ipsp->cs_data.bits.data + ipsp->cs_data.bits.size;
goto call;
case c_callsubr:
+ call_depth++;
c = fixed2int_var(*csp) + pdata->subroutineNumberBias;
code = pdata->procs.subr_data
(pfont, c, false, &ipsp[1].cs_data);
@@ -474,6 +476,10 @@ gs_type1_piece_codes(/*const*/ gs_font_t
end = ipsp->cs_data.bits.data + ipsp->cs_data.bits.size;
goto call;
case c_return:
+ if (call_depth == 0)
+ return (gs_note_error(gs_error_invalidfont));
+ else
+ call_depth--;
gs_glyph_data_free(&ipsp->cs_data, "gs_type1_piece_codes");
--ipsp;
if (ipsp < ipstack)

View File

@ -1,6 +1,6 @@
diff -up ghostscript-9.06/Resource/Init/gs_fonts.ps.runlibfileifexists ghostscript-9.06/Resource/Init/gs_fonts.ps
--- ghostscript-9.06/Resource/Init/gs_fonts.ps.runlibfileifexists 2012-08-08 09:01:36.000000000 +0100
+++ ghostscript-9.06/Resource/Init/gs_fonts.ps 2012-08-09 08:23:46.750732348 +0100
diff -up ghostscript-9.08rc1/Resource/Init/gs_fonts.ps.runlibfileifexists ghostscript-9.08rc1/Resource/Init/gs_fonts.ps
--- ghostscript-9.08rc1/Resource/Init/gs_fonts.ps.runlibfileifexists 2013-08-09 14:12:18.000000000 +0100
+++ ghostscript-9.08rc1/Resource/Init/gs_fonts.ps 2013-08-12 18:05:02.065802147 +0100
@@ -95,10 +95,19 @@ userdict /Fontmap .FontDirectory maxleng
% stack: dict file fontname filename|aliasname
1 index type /stringtype eq
@ -24,10 +24,10 @@ diff -up ghostscript-9.06/Resource/Init/gs_fonts.ps.runlibfileifexists ghostscri
} {
% This is a real entry.
% Read and pop tokens until a semicolon.
diff -up ghostscript-9.06/Resource/Init/gs_init.ps.runlibfileifexists ghostscript-9.06/Resource/Init/gs_init.ps
--- ghostscript-9.06/Resource/Init/gs_init.ps.runlibfileifexists 2012-08-08 09:01:36.000000000 +0100
+++ ghostscript-9.06/Resource/Init/gs_init.ps 2012-08-09 08:23:46.750732348 +0100
@@ -678,6 +678,14 @@ systemdict /internaldict dup .makeintern
diff -up ghostscript-9.08rc1/Resource/Init/gs_init.ps.runlibfileifexists ghostscript-9.08rc1/Resource/Init/gs_init.ps
--- ghostscript-9.08rc1/Resource/Init/gs_init.ps.runlibfileifexists 2013-08-09 14:12:18.000000000 +0100
+++ ghostscript-9.08rc1/Resource/Init/gs_init.ps 2013-08-12 18:05:02.065802147 +0100
@@ -680,6 +680,14 @@ systemdict /internaldict dup .makeintern
{ /undefinedfilename signalerror }
ifelse
} bind def
@ -42,7 +42,7 @@ diff -up ghostscript-9.06/Resource/Init/gs_init.ps.runlibfileifexists ghostscrip
/selectdevice
{ finddevice setdevice .setdefaultscreen } bind def
/signalerror % <object> <errorname> signalerror -
@@ -846,6 +854,7 @@ userdict /.currentresourcefile //null pu
@@ -848,6 +856,7 @@ userdict /.currentresourcefile //null pu
} bind def
% Temporarily substitute it for the real runlibfile.
/.runlibfile /runlibfile load def

View File

@ -1,61 +0,0 @@
diff -up ghostscript-9.07/Resource/Init/gs_ttf.ps.strange-fonts ghostscript-9.07/Resource/Init/gs_ttf.ps
--- ghostscript-9.07/Resource/Init/gs_ttf.ps.strange-fonts 2013-02-14 07:58:16.000000000 +0000
+++ ghostscript-9.07/Resource/Init/gs_ttf.ps 2013-06-18 16:09:49.904150294 +0100
@@ -41,21 +41,17 @@
% Closes the file in either case.
/.findnonttfontvalue /.findfontvalue load def
/.findfontvalue {
- 1 index read {
- 2 index 1 index unread
- % beginning with binary 0 or 't' (TrueType), or 'O' (OpenType)
- dup 0 eq 1 index (O) 0 get eq or exch (t) 0 get eq or {
+ 1 index .is_ttf_or_otf {
% If this is a font at all, it's a TrueType font.
dup /FontType eq {
pop closefile 42 //true
} {
dup /FontName eq { pop .findttfontname } { pop closefile //false } ifelse
} ifelse
- } {
+ } {
% Not a TrueType font.
.findnonttfontvalue
- } ifelse
- } { pop closefile //false } ifelse
+ } ifelse
} bind def
% <file> .findttfontname <fname> true
@@ -65,7 +61,9 @@
//true 0 .loadttfonttables
tabdict /name .knownget {
dup 8 getu32 f exch setfileposition
- 12 getu32 string f exch readstring pop
+ 12 getu32
+ dup 65535 gt { pop 65535 } if % protect against extremely large name
+ string f exch readstring pop
dup
6 findname not {
4 findname % Try FullName
@@ -82,6 +80,7 @@
% Load a font file that might be a TrueType font.
/tt_tag_dict << <00010000> 0 (true) 0 (typ1) 0 (ttcf) 0 >> readonly def
+/ttf_otf_tag_dict << <00010000> 0 (true) 0 (typ1) 0 (ttcf) 0 (OTTO) 0>> readonly def
% <file> .loadfontfile -
/.loadnonttfontfile /.loadfontfile load def
@@ -95,7 +94,13 @@
} ifelse
} bind def
+% <file> .istruetypefont <bool>
+/.is_ttf_or_otf {
+ dup 0 setfileposition (1234) .peekstring { //ttf_otf_tag_dict exch known } { //false } ifelse
+} bind def
+
currentdict /tt_tag_dict .undef
+currentdict /ttf_otf_tag_dict .undef
% ---------------- Automatic Type 42 generation ---------------- %

View File

@ -1,12 +0,0 @@
diff -up ghostscript-9.07/psi/zfapi.c.zfapi-crash ghostscript-9.07/psi/zfapi.c
--- ghostscript-9.07/psi/zfapi.c.zfapi-crash 2013-07-08 12:27:53.136718093 +0100
+++ ghostscript-9.07/psi/zfapi.c 2013-07-08 12:28:17.241826842 +0100
@@ -2141,6 +2141,8 @@ FAPI_char(i_ctx_t *i_ctx_p, bool bBuildG
/* initialise the FAPI font, this includes language specific stuff */
I->ff = ps_ff_stub;
+ I->client_ctx_p = i_ctx_p;
+
if (bBuildGlyph && !bCID) {
if (r_type(op) != t_name) {
name_enter_string(imemory, ".notdef", op);

View File

@ -1,18 +1,20 @@
%define gs_ver 9.07
%define gs_dot_ver 9.07
%define gs_ver 9.08
%define gs_dot_ver 9.08
%define rcver rc1
%define dotrcver %{?rcver:.}%{?rcver}
%{expand: %%define build_with_freetype %{?_with_freetype:1}%{!?_with_freetype:0}}
Summary: A PostScript interpreter and renderer
Name: ghostscript
Version: %{gs_ver}
Release: 12%{?dist}
Release: 0%{?dotrcver}.1%{?dist}
# Included CMap data is Redistributable, no modification permitted,
# see http://bugzilla.redhat.com/487510
License: AGPLv3+ and Redistributable, no modification permitted
URL: http://www.ghostscript.com/
Group: Applications/Publishing
Source0: http://downloads.ghostscript.com/public/ghostscript-%{gs_ver}.tar.bz2
Source0: http://downloads.ghostscript.com/public/ghostscript-%{gs_ver}%{?rcver}.tar.gz
Source2: CIDFnmap
Source4: cidfmap
@ -21,16 +23,10 @@ Patch2: ghostscript-scripts.patch
Patch3: ghostscript-noopt.patch
Patch4: ghostscript-runlibfileifexists.patch
Patch5: ghostscript-icc-missing-check.patch
Patch6: ghostscript-cups-filters.patch
Patch7: ghostscript-Fontmap.local.patch
Patch8: ghostscript-iccprofiles-initdir.patch
Patch9: ghostscript-gdevcups-debug-uninit.patch
Patch10: ghostscript-gs_sprintf.patch
Patch11: ghostscript-pdfwrite-segfault.patch
Patch12: ghostscript-strange-fonts.patch
Patch13: ghostscript-wrf-snprintf.patch
Patch14: ghostscript-cups-colord.patch
Patch15: ghostscript-zfapi-crash.patch
Requires: urw-fonts >= 1.1, ghostscript-fonts
Requires: poppler-data
@ -97,17 +93,8 @@ Group: Applications/Publishing
%description gtk
A GTK-enabled version of Ghostscript, called 'gsx'.
%package cups
Summary: CUPS filter for interpreting PostScript and PDF
Requires: %{name} = %{version}-%{release}
Requires: cups
Group: System Environment/Daemons
%description cups
CUPS filter and conversion rules for interpreting PostScript and PDF.
%prep
%setup -q -n %{name}-%{gs_ver}
%setup -q -n %{name}-%{gs_ver}%{?rcver}
rm -rf expat freetype icclib jasper jpeg lcms lcms2 libpng openjpeg zlib cups/libs
# Fix ijs-config not to have multilib conflicts (bug #192672)
@ -125,9 +112,6 @@ rm -rf expat freetype icclib jasper jpeg lcms lcms2 libpng openjpeg zlib cups/li
# Fixed missing error check when setting ICC profile.
%patch5 -p1 -b .icc-missing-check
# Install CUPS filter convs files in the correct place.
%patch6 -p1 -b .cups-filters
# Restored Fontmap.local patch, incorrectly dropped after
# ghostscript-8.15.4-3 (bug #610301).
# Note: don't use -b here to avoid the backup file ending up in the
@ -140,27 +124,9 @@ rm -rf expat freetype icclib jasper jpeg lcms lcms2 libpng openjpeg zlib cups/li
# gdevcups: don't use uninitialized variables in debugging output.
%patch9 -p1 -b .gdevcups-debug-uninit
# Back-ported locale fix (bug #961149).
%patch10 -p1 -b .gs_sprintf
# Upstream patch to fix pdfwrite segfault (bug #962120).
%patch11 -p1 -b .pdfwrite-segfault
# Upstream patch from bug #690692 to handle strange fonts (bug #969660).
%patch12 -p1 -b .strange-fonts
# Use more caution when converting floats to strings (bug #980085).
%patch13 -p1 -b .wrf-snprintf
# Use correct colord device ID in gstoraster.
%patch14 -p1 -b .cups-colord
# Upstream patch from bug #693921 to avoid zfapi crash (bug #969785).
%patch15 -p1 -b .zfapi-crash
# Remove pdfopt man pages which were mistakenly left in (bug #963882).
rm man/{de/,}pdfopt.1
# Convert manual pages to UTF-8
from8859_1() {
iconv -f iso-8859-1 -t utf-8 < "$1" > "${1}_"
@ -339,12 +305,6 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root)
%{_bindir}/gsx
%files cups
%defattr(-,root,root)
%{_datadir}/cups/model/pxl*
%{_datadir}/cups/mime/*.convs
%{_cups_serverbin}/filter/*
%files devel
%defattr(-,root,root)
%dir %{_includedir}/ghostscript
@ -357,6 +317,9 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/libgs.so
%changelog
* Mon Aug 12 2013 Tim Waugh <twaugh@redhat.com> 9.08-0.rc1.1
- 9.08rc1. CUPS filters moved to the cups-filters package.
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 9.07-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild