extra/ghostscript to 9.19-1

This commit is contained in:
Kevin Mihelich 2016-03-28 13:29:51 +00:00
parent c0ad9113df
commit b608b1c27a
4 changed files with 9 additions and 299 deletions

View file

@ -4,11 +4,9 @@
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - build v7 and v8 with -fPIC
### !!! rebuild groff from core that picks up hardcoding the GS versioned font path !!! ###
pkgname=ghostscript
pkgver=9.18
pkgrel=6
pkgver=9.19
pkgrel=1
pkgdesc="An interpreter for the PostScript language"
arch=('i686' 'x86_64')
license=('AGPL' 'custom')
@ -18,30 +16,18 @@ makedepends=('gtk3' 'gnutls' 'hardening-wrapper')
optdepends=('texlive-core: needed for dvipdf'
'gtk3: needed for gsx')
url="http://www.ghostscript.com/"
source=(http://downloads.ghostscript.com/public/ghostscript-${pkgver}.tar.bz2
ghostscript-sys-zlib.patch
bug_696246.diff
add_gserrors_h.diff
fix_check_for_using_shared_freetype_lib.diff)
source=(https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${pkgver/./}/ghostscript-${pkgver}.tar.bz2
#http://downloads.ghostscript.com/public/ghostscript-${pkgver}.tar.bz2
ghostscript-sys-zlib.patch)
#options=('!makeflags')
# http://downloads.ghostscript.com/public/SHA1SUMS
sha1sums=('388fea50a38e422a4c6ff27c184491bf5ecb96e1'
'e054caf753df4d67221b29a2eac66130653f7556'
'f259eaac3beb0ec346bb2d4d2455e4e3baddecd4'
'ca686fed1af36d1f9fa866b47ff129c71d6a19ff'
'8258043b111832fe52989ccb00d6d87285fcad81')
# https://github.com/ArtifexSoftware/ghostpdl-downloads/releases
sha1sums=('202e234d54a4ccd667b57c9ae8b48bd65fafd503'
'e054caf753df4d67221b29a2eac66130653f7556')
prepare() {
cd ghostscript-${pkgver}
# fix build with system zlib
patch -Np1 -i ${srcdir}/ghostscript-sys-zlib.patch
# fix http://bugs.ghostscript.com/show_bug.cgi?id=696246 - FS#46637, FS#46734?
patch -Np1 -i ${srcdir}/bug_696246.diff
# add a missing header; FS#46928
patch -Np1 -i ${srcdir}/add_gserrors_h.diff
# fix use system freetype - FS#46744
# http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=8f5d28536e4518716fdfe974e580194c8f57871d
patch -Np1 -i ${srcdir}/fix_check_for_using_shared_freetype_lib.diff
}
build() {
@ -89,7 +75,7 @@ package() {
cups_serverbin="${pkgdir}"/usr/lib/cups install install-so
# install missing doc files # http://bugs.archlinux.org/task/18023
install -m 644 "${srcdir}"/ghostscript-${pkgver}/doc/{Ps2ps2.htm,gs-vms.hlp,gsdoc.el,pscet_status.txt} "${pkgdir}"/usr/share/ghostscript/$pkgver/doc/
install -m 644 "${srcdir}"/ghostscript-${pkgver}/doc/{VectorDevices.htm,gs-vms.hlp,gsdoc.el,pscet_status.txt} "${pkgdir}"/usr/share/ghostscript/$pkgver/doc/
install -D -m644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE

View file

@ -1,43 +0,0 @@
From feafe5e540a0545ec5d28f3f66bb542056bba495 Mon Sep 17 00:00:00 2001
From: Chris Liddell <chris.liddell@artifex.com>
Date: Fri, 23 Oct 2015 10:16:11 +0100
Subject: [PATCH] Bug 696301: add gserrors.h to the installed files
for the so-install target.
Also remove a spurious (copy'n'paste error) comment.
No cluster differences
---
base/gserrors.h | 2 +-
base/unix-dll.mak | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/base/gserrors.h b/base/gserrors.h
index 5f18081..cdebb38 100644
--- a/base/gserrors.h
+++ b/base/gserrors.h
@@ -25,7 +25,7 @@
/* We don't use a typedef internally to avoid a lot of casting. */
enum gs_error_type {
- gs_error_ok = 0, /* unknown error */
+ gs_error_ok = 0,
gs_error_unknownerror = -1, /* unknown error */
gs_error_dictfull = -2,
gs_error_dictstackoverflow = -3,
diff --git a/base/unix-dll.mak b/base/unix-dll.mak
index 7b67aa1..73b4fa9 100644
--- a/base/unix-dll.mak
+++ b/base/unix-dll.mak
@@ -186,6 +186,7 @@ install-so-subtarget: so-subtarget
ln -s $(GS_SONAME_MAJOR_MINOR) $(DESTDIR)$(libdir)/$(GS_SONAME_MAJOR)
$(INSTALL_DATA) $(PSSRC)iapi.h $(DESTDIR)$(gsincludedir)iapi.h
$(INSTALL_DATA) $(PSSRC)ierrors.h $(DESTDIR)$(gsincludedir)ierrors.h
+ $(INSTALL_DATA) $(GLSRC)gserrors.h $(DESTDIR)$(gsincludedir)gserrors.h
$(INSTALL_DATA) $(DEVSRC)gdevdsp.h $(DESTDIR)$(gsincludedir)gdevdsp.h
soinstall:
--
2.5.1

View file

@ -1,203 +0,0 @@
From: Chris Liddell <chris.liddell@artifex.com>
Date: Fri, 9 Oct 2015 09:54:10 +0000 (+0100)
Subject: Bug 696246: devijs account for device sublassing.
X-Git-Url: http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff_plain;h=b68e05c3
Bug 696246: devijs account for device sublassing.
The IJS device wasn't coping with the possibility it had been subclassed.
No cluster differences
---
diff --git a/devices/gdevijs.c b/devices/gdevijs.c
index 5520716..a2e21ea 100644
--- a/devices/gdevijs.c
+++ b/devices/gdevijs.c
@@ -827,6 +827,10 @@ gsijs_open(gx_device *dev)
if (code < 0)
return code;
+ while (dev->child)
+ dev = dev->child;
+ ijsdev = (gx_device_ijs *)dev;
+
if (use_outputfd) {
/* Note: dup() may not be portable to all interesting IJS
platforms. In that case, this branch should be #ifdef'ed out.
From: Chris Liddell <chris.liddell@artifex.com>
Date: Fri, 9 Oct 2015 11:54:44 +0000 (+0100)
Subject: Bug 696246: patch the memory manager fields for sublassed devices.
X-Git-Url: http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff_plain;h=95553954
Bug 696246: patch the memory manager fields for sublassed devices.
When we subclass a device, we were patching the "visible" type field - that is,
the one referenced directly in the device structure. We were not patching
the type information in the memory object header so, in particular, the
garbage collector could end up calling the wrong methods for the subclassed
device.
No cluster differences.
---
diff --git a/base/gdevdflt.c b/base/gdevdflt.c
index 5768937..305f89d 100644
--- a/base/gdevdflt.c
+++ b/base/gdevdflt.c
@@ -17,6 +17,8 @@
#include "math_.h"
#include "memory_.h"
#include "gx.h"
+#include "gsstruct.h"
+#include "gxobj.h"
#include "gserrors.h"
#include "gsropt.h"
#include "gxcomp.h"
@@ -26,6 +28,7 @@
#include "gstrans.h" /* For gs_pdf14trans_t */
#include "gxistate.h" /* for gs_image_state_s */
+
/* defined in gsdpram.c */
int gx_default_get_param(gx_device *dev, char *Param, void *list);
@@ -1294,6 +1297,11 @@ int gx_device_subclass(gx_device *dev_to_subclass, gx_device *new_prototype, uns
ptr1 = ((char *)new_prototype) + sizeof(gx_device);
memcpy(ptr, ptr1, new_prototype->params_size - sizeof(gx_device));
+ /* We have to patch up the "type" parameters that the memory manage/garbage
+ * collector will use, as well.
+ */
+ (((obj_header_t *)dev_to_subclass) - 1)->o_type = new_prototype->stype;
+
/* If the original device's stype structure was dynamically allocated, we need
* to 'fixup' the contents, it's procs need to point to the new device's procs
* for instance.
diff --git a/base/lib.mak b/base/lib.mak
index de78333..09b70e5 100644
--- a/base/lib.mak
+++ b/base/lib.mak
@@ -1210,7 +1210,7 @@ $(GLOBJ)gdevdsha.$(OBJ) : $(GLSRC)gdevdsha.c $(AK) $(gx_h)\
$(GLOBJ)gdevdflt.$(OBJ) : $(GLSRC)gdevdflt.c $(AK) $(gx_h)\
$(gserrors_h) $(gsropt_h) $(gxcomp_h) $(gxdevice_h) $(gxdevsop_h) $(math__h)\
- $(MAKEDIRS)
+ $(gsstruct_h) $(gxobj_h) $(MAKEDIRS)
$(GLCC) $(GLO_)gdevdflt.$(OBJ) $(C_) $(GLSRC)gdevdflt.c
$(GLOBJ)gdevdgbr.$(OBJ) : $(GLSRC)gdevdgbr.c $(AK) $(gx_h)\
From 007bd77d08d800e6b07274d62e3c91be7c4a3f47 Mon Sep 17 00:00:00 2001
From: Ken Sharp <ken.sharp@artifex.com>
Date: Mon, 12 Oct 2015 16:36:11 +0100
Subject: [PATCH] Guard against NULL 'base' for non-clist devices
Bug #696246 "Ghostscript 9.18 with -dFirstPage/-dLastPage fails for ijs and some x11 devices"
This is actually for the plib device. This device is currently (this will
change in the next commit) set to BandingAuto, despite the fact that the
device only works in banding mode.
This can lead to use arriving in gdev_mem_open_scan_lines with all of
mdev->bitmap_memory, mdev->line_pointers_memory and mdev->base being set to
NULL. The code didn't check and assumed that mdev->base was valid, which
led to a later seg fault.
Here we just check to make sure it isn't NULL and return an error if it is.
This doesn't prevent the possibility of garbage uninitialised values, but
there's not much we can do to check that at this stage, devices are supposed
to be initialised to 0 so this 'shouldn't' happen.
No differences expected.
---
base/gdevmem.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/base/gdevmem.c b/base/gdevmem.c
index 3019451f..507fa19 100644
--- a/base/gdevmem.c
+++ b/base/gdevmem.c
@@ -471,6 +471,9 @@ gdev_mem_open_scan_lines(gx_device_memory *mdev, int setup_height)
line_pointers_adjacent = false;
}
if (line_pointers_adjacent) {
+ if (mdev->base == 0)
+ return_error(gs_error_rangecheck);
+
gdev_mem_bits_size(mdev, mdev->width, mdev->height, &size);
mdev->line_ptrs = (byte **)(mdev->base + size);
}
--
2.5.1
From 1bdbe4f87dc57648821e613ebcc591b84e8b35b3 Mon Sep 17 00:00:00 2001
From: Ken Sharp <ken.sharp@artifex.com>
Date: Mon, 12 Oct 2015 16:38:09 +0100
Subject: [PATCH] Ensure plib devices always use the clist
Bug #696246 "Ghostscript 9.18 with -dFirstPage/-dLastPage fails for ijs and some x11 devices"
the plib* class of devices only work if clist is present, but previously
they left the banding_type set to 'auto', which meant that under some
conditions we did not use the clist, leading to a seg fault.
This commit simply forces banding_type to be 'BandingAlways'.
No differences expected.
---
devices/gdevplib.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/devices/gdevplib.c b/devices/gdevplib.c
index 51bd7ea..87c6f46 100644
--- a/devices/gdevplib.c
+++ b/devices/gdevplib.c
@@ -691,6 +691,8 @@ plib_open(gx_device * pdev)
bdev->printer_procs.buf_procs.size_buf_device = plib_size_buf_device;
pdev->is_planar = 1;
+ bdev->space_params.banding_type = BandingAlways;
+
/* You might expect us to call gdev_prn_open_planar rather than
* gdev_prn_open, but if we do that, it overwrites the 2 function
* pointers we've just overwritten! */
--
2.5.1
From 5571ddfa377c5d7d98f55af40e693814ac287ae4 Mon Sep 17 00:00:00 2001
From: Ken Sharp <ken.sharp@artifex.com>
Date: Mon, 12 Oct 2015 16:40:10 +0100
Subject: [PATCH] prevent rinkj device crash when misconfigured (no SetupFile)
Bug #696246 "Ghostscript 9.18 with -dFirstPage/-dLastPage fails for ijs and some x11 devices"
The rinkj device requires a SetupFile to be given as a device parameter,
however it doesn't actually check to see if one is given, and just tries
to open the filename, with a predictable crash when none is given.
Here we check the filename and attempt to ensure it is both present and
minimally valid.
No differences expected.
---
devices/gdevrinkj.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/devices/gdevrinkj.c b/devices/gdevrinkj.c
index f55bc60..12c396a 100644
--- a/devices/gdevrinkj.c
+++ b/devices/gdevrinkj.c
@@ -1193,6 +1193,10 @@ rinkj_print_page(gx_device_printer *pdev, FILE *file)
int code = 0;
RinkjDevice *cmyk_dev;
+ if (rdev->setup_fn == 0 || rdev->setup_fn[0] == 0) {
+ emprintf(rdev->memory, "Error, SetupFile not defined, output aborted\n");
+ return 0;
+ }
cmyk_dev = rinkj_init(rdev, file);
if (cmyk_dev == 0)
return gs_note_error(gs_error_ioerror);
--
2.5.1

View file

@ -1,30 +0,0 @@
From 8f5d28536e4518716fdfe974e580194c8f57871d Mon Sep 17 00:00:00 2001
From: Chris Liddell <chris.liddell@artifex.com>
Date: Thu, 7 Jan 2016 09:03:10 +0000
Subject: [PATCH] Bug 696281: fix check for using shared freetype lib
When I changed the initial value of the Freetype source path variable (to reduce
the risk of header search path problems), I neglected to fix the logic for
falling back to the system's libfreetype2.
Credit to Rodrigo Rivas Costa for spotting the problem.
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 0c97fcc..f533e46 100644
--- a/configure.ac
+++ b/configure.ac
@@ -811,7 +811,7 @@ if test x"$enable_fapi" != xno; then
fi
done
- if test -z $FTSRCDIR; then
+ if test x"$FTSRCDIR" = x"src"; then
AC_MSG_RESULT([no])
if test "x$PKGCONFIG" != x; then
AC_MSG_CHECKING(for system freetype2 >= 2.4.2 with pkg-config)
--
2.6.3