- 8.61 (bug #402481).

- Build with --disable-compile-inits (bug #402501).
- Add %{_datadir}/fonts to fontpath (bug #402481).
- Restore the cidfmap-switching bits (bug #402481).
This commit is contained in:
Tim Waugh 2007-11-28 13:49:07 +00:00
parent 859144bcc7
commit 11938abb22
8 changed files with 67 additions and 309 deletions

View File

@ -20,3 +20,4 @@ espgs-8.15.3-source.tar.bz2
espgs-8.15.4-source.tar.bz2
ghostscript-8.60-r8117.tar.bz2
ghostscript-8.60.tar.bz2
ghostscript-8.61.tar.bz2

View File

@ -1,10 +0,0 @@
%!
% Don't change following line. We should ensure that the original one is surely loaded.
(FAPIcidfmap.GS) .runlibfile
% following lines are for CJK fonts.
(FAPIcidfmap.ja) .runlibfileifexists
(FAPIcidfmap.ko) .runlibfileifexists
(FAPIcidfmap.zh_CN) .runlibfileifexists
(FAPIcidfmap.zh_TW) .runlibfileifexists
% must be at the bottom of line to allow people overriding everything.
(FAPIcidfmap.local) .runlibfileifexists

View File

@ -1,6 +1,6 @@
diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
--- gs-orig/src/gdevijs.c 2007-04-24 13:00:22.000000000 +0100
+++ gs-krgb/src/gdevijs.c 2007-04-27 14:44:05.000000000 +0100
diff -up ghostscript-8.61/src/gdevijs.c.ijs-krgb ghostscript-8.61/src/gdevijs.c
--- ghostscript-8.61/src/gdevijs.c.ijs-krgb 2007-09-25 14:31:24.000000000 +0100
+++ ghostscript-8.61/src/gdevijs.c 2007-11-23 09:23:00.000000000 +0000
@@ -23,15 +23,50 @@
* which is a security risk, since any program can be run.
* You should use -dSAFER which sets .LockSafetyParams to true
@ -52,22 +52,22 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
/* This should go into gdevprn.h, or, better yet, gdevprn should
acquire an API for changing resolution. */
int gdev_prn_maybe_realloc_memory(gx_device_printer *pdev,
@@ -49,6 +84,14 @@
private dev_proc_put_params(gsijs_put_params);
private dev_proc_finish_copydevice(gsijs_finish_copydevice);
@@ -49,6 +84,14 @@ static dev_proc_get_params(gsijs_get_par
static dev_proc_put_params(gsijs_put_params);
static dev_proc_finish_copydevice(gsijs_finish_copydevice);
+/* Following definitions are for krgb support. */
+private dev_proc_create_buf_device(gsijs_create_buf_device);
+private dev_proc_fill_rectangle(gsijs_fill_rectangle);
+private dev_proc_copy_mono(gsijs_copy_mono);
+private dev_proc_fill_mask(gsijs_fill_mask);
+private dev_proc_fill_path(gsijs_fill_path);
+private dev_proc_stroke_path(gsijs_stroke_path);
+static dev_proc_create_buf_device(gsijs_create_buf_device);
+static dev_proc_fill_rectangle(gsijs_fill_rectangle);
+static dev_proc_copy_mono(gsijs_copy_mono);
+static dev_proc_fill_mask(gsijs_fill_mask);
+static dev_proc_fill_path(gsijs_fill_path);
+static dev_proc_stroke_path(gsijs_stroke_path);
+
private const gx_device_procs gsijs_procs = {
static const gx_device_procs gsijs_procs = {
gsijs_open,
NULL, /* get_initial_matrix */
@@ -123,6 +166,15 @@
@@ -123,6 +166,15 @@ struct gx_device_ijs_s {
IjsClientCtx *ctx;
int ijs_version;
@ -83,7 +83,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
};
#define DEFAULT_DPI 74 /* See gsijs_set_resolution() below. */
@@ -150,7 +202,13 @@
@@ -150,7 +202,13 @@ gx_device_ijs gs_ijs_device =
FALSE, /* Tumble_set */
NULL, /* IjsClient *ctx */
@ -98,7 +98,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
};
@@ -166,12 +224,299 @@
@@ -166,12 +224,299 @@ static int gsijs_read_string(gs_param_li
/**************************************************************************/
@ -117,7 +117,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
+ 0x01 /* 7 */
+};
+
+private int gsijs_fill_rectangle(gx_device * dev, int x, int y, int w, int h,
+static int gsijs_fill_rectangle(gx_device * dev, int x, int y, int w, int h,
+ gx_color_index color)
+{
+ gx_device_ijs *ijsdev = (gx_device_ijs *)((gx_device_forward *)dev)->target;
@ -179,7 +179,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
+ return (*ijsdev->prn_procs.fill_rectangle)(dev, x, y, w, h, color);
+}
+
+private int gsijs_copy_mono(gx_device * dev, const byte * data,
+static int gsijs_copy_mono(gx_device * dev, const byte * data,
+ int dx, int draster, gx_bitmap_id id,
+ int x, int y, int w, int height, gx_color_index zero, gx_color_index one)
+{
@ -256,7 +256,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
+
+/* ---------------- High-level graphic procedures ---------------- */
+
+private int gsijs_fill_mask(gx_device * dev,
+static int gsijs_fill_mask(gx_device * dev,
+ const byte * data, int dx, int raster, gx_bitmap_id id,
+ int x, int y, int w, int h,
+ const gx_drawing_color * pdcolor, int depth,
@ -278,7 +278,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
+ return code;
+}
+
+private int gsijs_fill_path(gx_device * dev, const gs_imager_state * pis,
+static int gsijs_fill_path(gx_device * dev, const gs_imager_state * pis,
+ gx_path * ppath, const gx_fill_params * params,
+ const gx_drawing_color * pdcolor,
+ const gx_clip_path * pcpath)
@ -295,7 +295,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
+ return 0;
+}
+
+private int gsijs_stroke_path(gx_device * dev, const gs_imager_state * pis,
+static int gsijs_stroke_path(gx_device * dev, const gs_imager_state * pis,
+ gx_path * ppath, const gx_stroke_params * params,
+ const gx_drawing_color * pdcolor,
+ const gx_clip_path * pcpath)
@ -314,7 +314,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
+
+/* ---------------- krgb banding playback procedures ---------------- */
+
+private int gsijs_get_bits(gx_device_printer * pdev, int y, byte * str, byte ** actual_data)
+static int gsijs_get_bits(gx_device_printer * pdev, int y, byte * str, byte ** actual_data)
+{
+ gx_device_ijs *ijsdev = (gx_device_ijs *)pdev;
+ gx_device_clist_common *cdev = (gx_device_clist_common *)pdev;
@ -332,7 +332,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
+ return gdev_prn_get_bits(pdev, y, str, actual_data); /* get raster from regular band */
+}
+
+private int gsijs_k_get_bits(gx_device_printer * pdev, int y, byte ** actual_data)
+static int gsijs_k_get_bits(gx_device_printer * pdev, int y, byte ** actual_data)
+{
+ gx_device_ijs *ijsdev = (gx_device_ijs *)pdev;
+ gx_device_clist_common *cdev = (gx_device_clist_common *)pdev;
@ -346,7 +346,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
+ return 0;
+}
+
+private int gsijs_create_buf_device(gx_device **pbdev, gx_device *target,
+static int gsijs_create_buf_device(gx_device **pbdev, gx_device *target,
+ const gx_render_plane_t *render_plane, gs_memory_t *mem, gx_band_complexity_t *band_complexity)
+{
+ gx_device_ijs *ijsdev = (gx_device_ijs *)target;
@ -369,7 +369,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
+}
+
+/* See if IJS server supports krgb. */
+private int
+static int
+gsijs_set_krgb_mode(gx_device_ijs *ijsdev)
+{
+ char buf[256];
@ -401,9 +401,9 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
+
+/* ------ Private definitions ------ */
private int
static int
gsijs_parse_wxh (const char *val, int size, double *pw, double *ph)
@@ -209,34 +554,6 @@
@@ -209,34 +554,6 @@ gsijs_parse_wxh (const char *val, int si
}
/**
@ -412,7 +412,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
- * This version is specialized for hpijs 1.0 through 1.0.2, and
- * accommodates a number of quirks.
- **/
-private int
-static int
-gsijs_set_generic_params_hpijs(gx_device_ijs *ijsdev)
-{
- char buf[256];
@ -437,8 +437,8 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
-/**
* gsijs_set_generic_params: Set generic IJS parameters.
**/
private int
@@ -247,9 +564,6 @@
static int
@@ -247,9 +564,6 @@ gsijs_set_generic_params(gx_device_ijs *
int i, j;
char *value;
@ -448,7 +448,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
/* Split IjsParams into separate parameters and send to ijs server */
value = NULL;
for (i=0, j=0; (j < ijsdev->IjsParams_size) && (i < sizeof(buf)-1); j++) {
@@ -290,68 +604,6 @@
@@ -290,68 +604,6 @@ gsijs_set_generic_params(gx_device_ijs *
}
/**
@ -457,7 +457,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
- * This version is specialized for hpijs 1.0 through 1.0.2, and
- * accommodates a number of quirks.
- **/
-private int
-static int
-gsijs_set_margin_params_hpijs(gx_device_ijs *ijsdev)
-{
- char buf[256];
@ -516,8 +516,8 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
-/**
* gsijs_set_margin_params: Do margin negotiation with IJS server.
**/
private int
@@ -362,9 +614,6 @@
static int
@@ -362,9 +614,6 @@ gsijs_set_margin_params(gx_device_ijs *i
int i, j;
char *value;
@ -527,7 +527,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
/* Split IjsParams into separate parameters and send to ijs server */
value = NULL;
for (i=0, j=0; (j < ijsdev->IjsParams_size) && (i < sizeof(buf)-1); j++) {
@@ -531,12 +780,18 @@
@@ -531,12 +780,18 @@ gsijs_open(gx_device *dev)
char buf[256];
bool use_outputfd;
int fd = -1;
@ -546,7 +546,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
/* Decide whether to use OutputFile or OutputFD. Note: how to
determine this is a tricky question, so we just allow the
user to set it.
@@ -551,6 +806,8 @@
@@ -551,6 +806,8 @@ gsijs_open(gx_device *dev)
if (code < 0)
return code;
@ -555,7 +555,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
if (use_outputfd) {
/* Note: dup() may not be portable to all interesting IJS
platforms. In that case, this branch should be #ifdef'ed out.
@@ -610,6 +867,9 @@
@@ -610,6 +867,9 @@ gsijs_open(gx_device *dev)
if (code >= 0)
code = gsijs_set_margin_params(ijsdev);
@ -565,11 +565,11 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
return code;
}
@@ -690,21 +950,6 @@
@@ -690,21 +950,6 @@ gsijs_raster_width(gx_device *pdev)
return min(width, end);
}
-private int ijs_all_white(unsigned char *data, int size)
-static int ijs_all_white(unsigned char *data, int size)
-{
- int clean = 1;
- int i;
@ -587,7 +587,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
/* Print a page. Don't use normal printer gdev_prn_output_page
* because it opens the output file.
*/
@@ -715,8 +960,10 @@
@@ -715,8 +960,10 @@ gsijs_output_page(gx_device *dev, int nu
gx_device_printer *pdev = (gx_device_printer *)dev;
int raster = gdev_prn_raster(pdev);
int ijs_width, ijs_height;
@ -599,7 +599,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
unsigned char *data;
char buf[256];
double xres = pdev->HWResolution[0];
@@ -732,13 +979,23 @@
@@ -732,13 +979,23 @@ gsijs_output_page(gx_device *dev, int nu
/* Determine bitmap width and height */
ijs_height = gdev_prn_print_scan_lines(dev);
@ -627,7 +627,7 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
/* Required page parameters */
sprintf(buf, "%d", n_chan);
gsijs_client_set_param(ijsdev, "NumChan", buf);
@@ -747,44 +1004,71 @@
@@ -747,44 +1004,71 @@ gsijs_output_page(gx_device *dev, int nu
/* This needs to become more sophisticated for DeviceN. */
strcpy(buf, (n_chan == 4) ? "DeviceCMYK" :
@ -719,11 +719,11 @@ diff -uraN gs-orig/src/gdevijs.c gs-krgb/src/gdevijs.c
gs_free_object(pdev->memory, data, "gsijs_output_page");
endcode = (pdev->buffer_space && !pdev->is_async_renderer ?
@@ -1090,7 +1374,6 @@
@@ -1090,7 +1374,6 @@ gsijs_client_set_param(gx_device_ijs *ij
dprintf2("ijs: Can't set parameter %s=%s\n", key, value);
return code;
}
-
private int
static int
gsijs_set_color_format(gx_device_ijs *ijsdev)

View File

@ -1,48 +0,0 @@
diff -up ghostscript-8.60/jasper/src/libjasper/jp2/jp2_cod.c.CVE-2007-2721 ghostscript-8.60/jasper/src/libjasper/jp2/jp2_cod.c
--- ghostscript-8.60/jasper/src/libjasper/jp2/jp2_cod.c.CVE-2007-2721 2006-02-08 06:21:28.000000000 +0000
+++ ghostscript-8.60/jasper/src/libjasper/jp2/jp2_cod.c 2007-10-23 14:15:01.000000000 +0100
@@ -247,7 +247,7 @@ jp2_box_t *jp2_box_get(jas_stream_t *in)
box = 0;
tmpstream = 0;
- if (!(box = jas_malloc(sizeof(jp2_box_t)))) {
+ if (!(box = jas_calloc(1, sizeof(jp2_box_t)))) {
goto error;
}
box->ops = &jp2_boxinfo_unk.ops;
diff -up ghostscript-8.60/jasper/src/libjasper/jpc/jpc_cs.c.CVE-2007-2721 ghostscript-8.60/jasper/src/libjasper/jpc/jpc_cs.c
--- ghostscript-8.60/jasper/src/libjasper/jpc/jpc_cs.c.CVE-2007-2721 2006-02-08 06:21:28.000000000 +0000
+++ ghostscript-8.60/jasper/src/libjasper/jpc/jpc_cs.c 2007-10-23 14:15:01.000000000 +0100
@@ -991,7 +991,10 @@ static int jpc_qcx_getcompparms(jpc_qcxc
compparms->numstepsizes = (len - n) / 2;
break;
}
-if (compparms->numstepsizes > 0) {
+if (compparms->numstepsizes > 3 * JPC_MAXRLVLS + 1) {
+ jpc_qcx_destroycompparms(compparms);
+ return -1;
+ } else if (compparms->numstepsizes > 0) {
compparms->stepsizes = jas_malloc(compparms->numstepsizes *
sizeof(uint_fast32_t));
assert(compparms->stepsizes);
diff -up ghostscript-8.60/jasper/src/libjasper/jpc/jpc_dec.c.CVE-2007-2721 ghostscript-8.60/jasper/src/libjasper/jpc/jpc_dec.c
--- ghostscript-8.60/jasper/src/libjasper/jpc/jpc_dec.c.CVE-2007-2721 2006-12-06 22:25:01.000000000 +0000
+++ ghostscript-8.60/jasper/src/libjasper/jpc/jpc_dec.c 2007-10-23 14:15:01.000000000 +0100
@@ -1219,7 +1219,7 @@ static int jpc_dec_process_siz(jpc_dec_t
dec->numhtiles = JPC_CEILDIV(dec->xend - dec->tilexoff, dec->tilewidth);
dec->numvtiles = JPC_CEILDIV(dec->yend - dec->tileyoff, dec->tileheight);
dec->numtiles = dec->numhtiles * dec->numvtiles;
- if (!(dec->tiles = jas_malloc(dec->numtiles * sizeof(jpc_dec_tile_t)))) {
+ if (!(dec->tiles = jas_calloc(dec->numtiles, sizeof(jpc_dec_tile_t)))) {
return -1;
}
@@ -1243,7 +1243,7 @@ static int jpc_dec_process_siz(jpc_dec_t
tile->pkthdrstreampos = 0;
tile->pptstab = 0;
tile->cp = 0;
- if (!(tile->tcomps = jas_malloc(dec->numcomps *
+ if (!(tile->tcomps = jas_calloc(dec->numcomps,
sizeof(jpc_dec_tcomp_t)))) {
return -1;
}

View File

@ -1,166 +0,0 @@
From: alexcher <alexcher@a1074d23-0009-0410-80fe-cf8c14f379e6>
Date: Sat, 8 Sep 2007 22:31:20 +0000 (+0000)
Subject: Declare Ghostscript as _LARGEFILE64_SOURCE program, i.e. request transitional
X-Git-Url: http://git.infradead.org/?p=ghostscript.git;a=commitdiff_plain;h=0513d1b9542d37e7134d36e49222b12ef469b722
Declare Ghostscript as _LARGEFILE64_SOURCE program, i.e. request transitional
interface to large file support. Check for mkstemp64() availability specially.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk/gs@8232 a1074d23-0009-0410-80fe-cf8c14f379e6
---
diff --git a/src/Makefile.in b/src/Makefile.in
index c1e3c3b..5590f9a 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -120,8 +120,11 @@ GENOPT=
#
# -DHAVE_FILE64
# use marked versions of the stdio FILE calls, fopen64() et al.
+#
+# -DHAVE_MKSTEMP64
+# use non-standard function mkstemp64()
-CAPOPT= @HAVE_MKSTEMP@ @HAVE_HYPOT@ @HAVE_FILE64@ @HAVE_FONTCONFIG@
+CAPOPT= @HAVE_MKSTEMP@ @HAVE_HYPOT@ @HAVE_FILE64@ @HAVE_MKSTEMP64@ @HAVE_FONTCONFIG@
# Define the name of the executable file.
diff --git a/src/configure.ac b/src/configure.ac
index 10658c5..ffde250 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -924,6 +924,9 @@ AC_SUBST(HAVE_HYPOT)
AC_CHECK_FUNCS([fopen64], [HAVE_FILE64=-DHAVE_FILE64])
AC_SUBST(HAVE_FILE64)
+AC_CHECK_FUNCS([mkstemp64], [HAVE_MKSTEMP64=-DHAVE_MKSTEMP64])
+AC_SUBST(HAVE_MKSTEMP64)
+
AC_PROG_GCC_TRADITIONAL
dnl NB: We don't actually provide autoconf-switched fallbacks for any
diff --git a/src/gp_unifs.c b/src/gp_unifs.c
index 6b6a85c..ac555b5 100644
--- a/src/gp_unifs.c
+++ b/src/gp_unifs.c
@@ -88,18 +88,22 @@ gp_open_scratch_file_generic(const char *prefix, char fname[gp_file_name_sizeof]
/* save the old filename template in case mkstemp fails */
memcpy(ofname, fname, gp_file_name_sizeof);
-#if defined(HAVE_FILE64) && !defined(_LARGEFILE64_SOURCE)
- if (b64)
- file = mkstemp64(fname);
- else
+#ifdef HAVE_MKSTEMP64
+ file = (b64 ? mkstemp64 : mkstemp)(fname);
+#else
+ file = mkstemp(fname);
#endif
- file = mkstemp(fname);
-
- /* Fixme : what to do with b64 and 32-bit mkstemp? Unimplemented. */
if (file < -1) {
eprintf1("**** Could not open temporary file %s\n", ofname);
return NULL;
}
+#if defined(O_LARGEFILE) && defined(__hpux)
+ if (b64)
+ fcntl(file, F_SETFD, fcntl(file, F_GETFD) | O_LARGEFILE);
+#else
+ /* Fixme : what to do with b64 and 32-bit mkstemp? Unimplemented. */
+#endif
+
fp = fdopen(file, mode);
if (fp == NULL)
close(file);
@@ -479,10 +483,10 @@ gp_enumerate_files_close(file_enum * pfen)
FILE *gp_fopen_64(const char *filename, const char *mode)
{
-#if defined(_LARGEFILE64_SOURCE) || !defined(HAVE_FILE64)
- return fopen(filename, mode);
-#else
+#if defined(HAVE_FILE64)
return fopen64(filename, mode);
+#else
+ return fopen(filename, mode);
#endif
}
@@ -497,22 +501,22 @@ FILE *gp_open_scratch_file_64(const char *prefix,
int64_t gp_ftell_64(FILE *strm)
{
-#if defined(_LARGEFILE64_SOURCE) || !defined(HAVE_FILE64)
- return ftello(strm);
-#else
+#if defined(HAVE_FILE64)
return ftello64(strm);
+#else
+ return ftello(strm);
#endif
}
int gp_fseek_64(FILE *strm, int64_t offset, int origin)
{
-#if defined(_LARGEFILE64_SOURCE) || !defined(HAVE_FILE64)
+#if defined(HAVE_FILE64)
+ return fseeko64(strm, offset, origin);
+#else
off_t offset1 = (off_t)offset;
if (offset != offset1)
return -1;
return fseeko(strm, offset1, origin);
-#else
- return fseeko64(strm, offset, origin);
#endif
}
diff --git a/src/stdpre.h b/src/stdpre.h
index acb61c1..c17cdbf 100644
--- a/src/stdpre.h
+++ b/src/stdpre.h
@@ -17,6 +17,9 @@
#ifndef stdpre_INCLUDED
# define stdpre_INCLUDED
+/* Ghostscript uses transitional LFS functions. */
+#define _LARGEFILE64_SOURCE 1
+
/*
* Here we deal with the vagaries of various C compilers. We assume that:
* ANSI-standard Unix compilers define __STDC__.
From: alexcher <alexcher@a1074d23-0009-0410-80fe-cf8c14f379e6>
Date: Wed, 5 Sep 2007 19:21:05 +0000 (+0000)
Subject: Replace non-standard function call fdopen64() with fdopen(). The former
X-Git-Url: http://git.infradead.org/?p=ghostscript.git;a=commitdiff_plain;h=dc01761c07d210974d829c35c33a8886c33b0488
Replace non-standard function call fdopen64() with fdopen(). The former
is not available on most platforms and not needed anyway because O_LARGEFILE
flag is set earlier in the code. Bug 689175.
DIFFERENCES:
None
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk/gs@8229 a1074d23-0009-0410-80fe-cf8c14f379e6
---
diff --git a/src/gpmisc.c b/src/gpmisc.c
index f963d82..303fac2 100644
--- a/src/gpmisc.c
+++ b/src/gpmisc.c
@@ -93,11 +93,7 @@ gp_fopentemp_generic(const char *fname, const char *mode, bool b64)
* fdopen as (char *), rather than following the POSIX.1 standard,
* which defines it as (const char *). Patch this here.
*/
-#if defined (O_LARGEFILE)
- file = (b64 ? fdopen64 : fdopen)(fildes, (char *)mode); /* still really const */
-#else
file = fdopen(fildes, (char *)mode); /* still really const */
-#endif
if (file == 0)
close(fildes);
return file;

View File

@ -1,6 +1,8 @@
--- ghostscript-8.60-r8112/ijs/ijs-config.in.multilib 2002-01-31 19:09:46.000000000 +0000
+++ ghostscript-8.60-r8112/ijs/ijs-config.in 2007-07-10 17:46:44.000000000 +0100
@@ -43,8 +43,7 @@
diff -up ghostscript-8.61/ijs/Makefile.am.multilib ghostscript-8.61/ijs/Makefile.am
diff -up ghostscript-8.61/ijs/ijs-config.in.multilib ghostscript-8.61/ijs/ijs-config.in
--- ghostscript-8.61/ijs/ijs-config.in.multilib 2002-01-31 19:09:46.000000000 +0000
+++ ghostscript-8.61/ijs/ijs-config.in 2007-11-23 09:19:18.000000000 +0000
@@ -43,8 +43,7 @@ while test $# -gt 0; do
echo $includes
;;
--libs)
@ -10,14 +12,3 @@
;;
*)
echo "${usage}" 1>&2
--- ghostscript-8.60-r8112/ijs/Makefile.am.multilib 2007-07-10 18:00:36.000000000 +0100
+++ ghostscript-8.60-r8112/ijs/Makefile.am 2007-07-10 18:00:39.000000000 +0100
@@ -34,7 +34,7 @@
pkgincludedir=$(includedir)/ijs
m4datadir = $(datadir)/aclocal
-pkgconfigdatadir = $(prefix)/lib/pkgconfig
+pkgconfigdatadir = $(libdir)/pkgconfig
lib_LTLIBRARIES = libijs.la

View File

@ -1,17 +1,16 @@
%define gs_ver 8.60
%define gs_dot_ver 8.60
%define gs_ver 8.61
%define gs_dot_ver 8.61
%{expand: %%define build_with_freetype %{?_with_freetype:1}%{!?_with_freetype:0}}
Summary: A PostScript(TM) interpreter and renderer.
Name: ghostscript
Version: %{gs_ver}
Release: 5%{?dist}
Release: 1%{?dist}
License: GPLv2
URL: http://www.ghostscript.com/
Group: Applications/Publishing
Source0: ghostscript-%{gs_ver}.tar.bz2
Source1: FAPIcidfmap
Source2: CIDFnmap
Source4: cidfmap
@ -20,8 +19,6 @@ Patch2: ghostscript-scripts.patch
Patch3: ghostscript-noopt.patch
Patch4: ghostscript-fPIC.patch
Patch5: http://www.openprinting.org/download/printing/esp-gpl-ghostscript-merge/ghostscript-8.57-ijs-krgb.patch
Patch6: ghostscript-mkstemp64.patch
Patch7: ghostscript-CVE-2007-2721.patch
Requires: urw-fonts >= 1.1, ghostscript-fonts
BuildRequires: libjpeg-devel, libXt-devel
@ -90,12 +87,6 @@ A GTK-enabled version of Ghostscript, called 'gsx'.
# IJS KRGB patch.
%patch5 -p1 -b .ijs-krgb
# From upstream.
%patch6 -p1 -b .mkstemp64
# Applied patch from upstream to fix CVE-2007-2721 (bug #346511).
%patch7 -p1 -b .CVE-2007-2721
# Convert manual pages to UTF-8
from8859_1() {
iconv -f iso-8859-1 -t utf-8 < "$1" > "${1}_"
@ -117,7 +108,7 @@ for path in \
%{_datadir}/fonts/default/Type1 \
%{_datadir}/fonts/default/amspsfnt/pfb \
%{_datadir}/fonts/default/cmpsfont/pfb \
%{_datadir}/fonts/japanese \
%{_datadir}/fonts \
%{_datadir}/%{name}/conf.d \
%{_sysconfdir}/%{name} \
%{_sysconfdir}/%{name}/%{gs_dot_ver}
@ -125,7 +116,7 @@ do
FONTPATH="$FONTPATH${FONTPATH:+:}$path"
done
%configure --with-ijs --enable-dynamic --with-fontpath="$FONTPATH" \
--with-drivers=ALL
--with-drivers=ALL --disable-compile-inits
# Build IJS
cd ijs
@ -156,14 +147,15 @@ make install soinstall \
prefix=$RPM_BUILD_ROOT%{_prefix} \
mandir=$RPM_BUILD_ROOT%{_mandir} \
datadir=$RPM_BUILD_ROOT%{_datadir} \
gsincludedir=$RPM_BUILD_ROOT%{_includedir}/ghostscript \
bindir=$RPM_BUILD_ROOT%{_bindir} \
libdir=$RPM_BUILD_ROOT%{_libdir} \
docdir=$RPM_BUILD_ROOT%{_docdir}/%{name}-%{gs_dot_ver} \
gsdir=$RPM_BUILD_ROOT%{_datadir}/%{name} \
gsdatadir=$RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver} \
gssharedir=$RPM_BUILD_ROOT%{_libdir}/%{name}/%{gs_dot_ver} \
CUPSSERVER=$RPM_BUILD_ROOT`cups-config --serverbin` \
CUPSCONFIG=$RPM_BUILD_ROOT`cups-config --serverroot` \
CUPSSERVERROOT=$RPM_BUILD_ROOT`cups-config --serverroot` \
CUPSSERVERBIN=$RPM_BUILD_ROOT`cups-config --serverbin` \
CUPSDATA=$RPM_BUILD_ROOT`cups-config --datadir`
mv -f $RPM_BUILD_ROOT%{_bindir}/gsc $RPM_BUILD_ROOT%{_bindir}/gs
@ -175,20 +167,12 @@ cd ..
echo ".so man1/gs.1" > $RPM_BUILD_ROOT/%{_mandir}/man1/ghostscript.1
ln -sf gs $RPM_BUILD_ROOT/usr/bin/ghostscript
###
### None of this works at the moment because runlibfileifexists is missing
###
if false; then
# Rename an original FAPIcidfmap to FAPIcidfmap.GS
mv $RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver}/lib/FAPIcidfmap{,.GS}
# Rename an original cidfmap to cidfmap.GS
mv $RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver}/lib/cidfmap{,.GS}
# Install our own FAPIcidfmap/cidfmap to allow the separated
# FAPIcidfmap/cidfmap which the font packages own.
install -m0644 %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver}/lib/FAPIcidfmap
# Install our own cidfmap to allow the separated
# cidfmap which the font packages own.
install -m0644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver}/lib/CIDFnmap
install -m0644 %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver}/lib/cidfmap
fi #false
# Header files.
mkdir -p $RPM_BUILD_ROOT%{_includedir}/ghostscript
@ -214,7 +198,6 @@ rm -rf $RPM_BUILD_ROOT%{_datadir}/ghostscript/Resource
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/conf.d
mkdir -p $RPM_BUILD_ROOT/etc/ghostscript/%{gs_dot_ver}
touch $RPM_BUILD_ROOT/etc/ghostscript/%{gs_dot_ver}/Fontmap.local
touch $RPM_BUILD_ROOT/etc/ghostscript/%{gs_dot_ver}/FAPIfontmap.local
touch $RPM_BUILD_ROOT/etc/ghostscript/%{gs_dot_ver}/cidfmap.local
touch $RPM_BUILD_ROOT/etc/ghostscript/%{gs_dot_ver}/CIDFnmap.local
@ -274,6 +257,12 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/libgs.so
%changelog
* Wed Nov 28 2007 Tim Waugh <twaugh@redhat.com> 8.61-1
- 8.61 (bug #402481).
- Build with --disable-compile-inits (bug #402501).
- Add %%{_datadir}/fonts to fontpath (bug #402481).
- Restore the cidfmap-switching bits (bug #402481).
* Tue Oct 23 2007 Tim Waugh <twaugh@redhat.com> 8.60-5
- Applied patch from upstream to fix CVE-2007-2721 (bug #346511).

View File

@ -1,3 +1,4 @@
2fbae60417d42779f6488ab897dcaaf6 acro5-cmaps-2001.tar.gz
dfc93dd2aaaf2b86d2fd55f654c13261 adobe-cmaps-200406.tar.gz
89fc0a90e67caf151a9d6855200c68ca ghostscript-8.60.tar.bz2
abff0506cd249cba3ad862d8fe4f6474 ghostscript-8.61.tar.bz2