[arch-commits] Commit in ghostscript/repos/extra-x86_64 (7 files)
Andreas Radke
andyrtr at archlinux.org
Sun Nov 1 10:31:07 UTC 2015
Date: Sunday, November 1, 2015 @ 11:31:07
Author: andyrtr
Revision: 249914
archrelease: copy trunk to extra-x86_64
Added:
ghostscript/repos/extra-x86_64/PKGBUILD
(from rev 249913, ghostscript/trunk/PKGBUILD)
ghostscript/repos/extra-x86_64/add_gserrors_h.diff
(from rev 249913, ghostscript/trunk/add_gserrors_h.diff)
ghostscript/repos/extra-x86_64/bug_696246.diff
(from rev 249913, ghostscript/trunk/bug_696246.diff)
ghostscript/repos/extra-x86_64/ghostscript-sys-zlib.patch
(from rev 249913, ghostscript/trunk/ghostscript-sys-zlib.patch)
Deleted:
ghostscript/repos/extra-x86_64/PKGBUILD
ghostscript/repos/extra-x86_64/bug_696246.diff
ghostscript/repos/extra-x86_64/ghostscript-sys-zlib.patch
----------------------------+
PKGBUILD | 186 ++++++++++---------
add_gserrors_h.diff | 43 ++++
bug_696246.diff | 406 +++++++++++++++++++++----------------------
ghostscript-sys-zlib.patch | 50 ++---
4 files changed, 366 insertions(+), 319 deletions(-)
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2015-11-01 10:30:58 UTC (rev 249913)
+++ PKGBUILD 2015-11-01 10:31:07 UTC (rev 249914)
@@ -1,91 +0,0 @@
-# $Id$
-# Maintainer: AndyRTR <andyrtr at archlinux.org>
-
-### !!! rebuild groff from core that picks up hardcoding the GS versioned font path !!! ###
-
-pkgname=ghostscript
-pkgver=9.18
-pkgrel=3
-pkgdesc="An interpreter for the PostScript language"
-arch=('i686' 'x86_64')
-license=('AGPL' 'custom')
-depends=('libxt' 'libcups' 'fontconfig' 'jasper' 'zlib' 'libpng>=1.5.7' 'libjpeg'
- 'libtiff>=4.0.0' 'lcms2' 'dbus' 'libpaper')
-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)
-#options=('!makeflags')
-# http://downloads.ghostscript.com/public/SHA1SUMS
-sha1sums=('388fea50a38e422a4c6ff27c184491bf5ecb96e1'
- 'e054caf753df4d67221b29a2eac66130653f7556'
- 'f259eaac3beb0ec346bb2d4d2455e4e3baddecd4')
-
-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
-}
-
-build() {
- cd ghostscript-${pkgver}
-
- # force it to use system-libs
- # keep heavily patched included openjpeg, leads to segfault with system openjpeg
- # https://bugs.archlinux.org/task/38226
- rm -rf jpeg libpng zlib jasper expat tiff lcms lcms2 freetype cups/libs # jbig2dec is in community
-
- autoconf --force
-
- ./configure --prefix=/usr \
- --enable-dynamic \
- --with-ijs \
- --with-jbig2dec \
- --with-omni \
- --with-x \
- --with-drivers=ALL\
- --with-fontpath=/usr/share/fonts/Type1:/usr/share/fonts \
- --enable-fontconfig \
- --enable-freetype \
- --enable-openjpeg \
- --without-luratech \
- --without-omni \
- --with-system-libtiff \
- --with-libpaper \
- --disable-compile-inits #--help # needed for linking with system-zlib
- make
-
- # Build IJS
- cd ijs
- sed -i "s:AM_PROG_CC_STDC:AC_PROG_CC:g" configure.ac
- ./autogen.sh
- ./configure --prefix=/usr --enable-shared --disable-static
- make
-}
-
-package() {
- cd ghostscript-${pkgver}
- make DESTDIR="${pkgdir}" \
- cups_serverroot="${pkgdir}"/etc/cups \
- 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 -D -m644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
-
- # remove unwanted localized man-pages
- rm -rf "$pkgdir"/usr/share/man/[^man1]*
-
- # install IJS
- cd ijs
- make DESTDIR="${pkgdir}" install
-
- # remove filters that are now maintained in cups-filters as upstream home
- rm -rf "$pkgdir"/usr/lib/cups/filter/{gstopxl,gstoraster}
-}
Copied: ghostscript/repos/extra-x86_64/PKGBUILD (from rev 249913, ghostscript/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2015-11-01 10:31:07 UTC (rev 249914)
@@ -0,0 +1,95 @@
+# $Id$
+# Maintainer: AndyRTR <andyrtr at archlinux.org>
+
+### !!! rebuild groff from core that picks up hardcoding the GS versioned font path !!! ###
+
+pkgname=ghostscript
+pkgver=9.18
+pkgrel=4
+pkgdesc="An interpreter for the PostScript language"
+arch=('i686' 'x86_64')
+license=('AGPL' 'custom')
+depends=('libxt' 'libcups' 'fontconfig' 'jasper' 'zlib' 'libpng>=1.5.7' 'libjpeg'
+ 'libtiff>=4.0.0' 'lcms2' 'dbus' 'libpaper')
+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)
+#options=('!makeflags')
+# http://downloads.ghostscript.com/public/SHA1SUMS
+sha1sums=('388fea50a38e422a4c6ff27c184491bf5ecb96e1'
+ 'e054caf753df4d67221b29a2eac66130653f7556'
+ 'f259eaac3beb0ec346bb2d4d2455e4e3baddecd4'
+ 'ca686fed1af36d1f9fa866b47ff129c71d6a19ff')
+
+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
+}
+
+build() {
+ cd ghostscript-${pkgver}
+
+ # force it to use system-libs
+ # keep heavily patched included openjpeg, leads to segfault with system openjpeg
+ # https://bugs.archlinux.org/task/38226
+ rm -rf jpeg libpng zlib jasper expat tiff lcms lcms2 freetype cups/libs # jbig2dec is in community
+
+ autoconf --force
+
+ ./configure --prefix=/usr \
+ --enable-dynamic \
+ --with-ijs \
+ --with-jbig2dec \
+ --with-omni \
+ --with-x \
+ --with-drivers=ALL\
+ --with-fontpath=/usr/share/fonts/Type1:/usr/share/fonts \
+ --enable-fontconfig \
+ --enable-freetype \
+ --enable-openjpeg \
+ --without-luratech \
+ --without-omni \
+ --with-system-libtiff \
+ --with-libpaper \
+ --disable-compile-inits #--help # needed for linking with system-zlib
+ make
+
+ # Build IJS
+ cd ijs
+ sed -i "s:AM_PROG_CC_STDC:AC_PROG_CC:g" configure.ac
+ ./autogen.sh
+ ./configure --prefix=/usr --enable-shared --disable-static
+ make
+}
+
+package() {
+ cd ghostscript-${pkgver}
+ make DESTDIR="${pkgdir}" \
+ cups_serverroot="${pkgdir}"/etc/cups \
+ 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 -D -m644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+
+ # remove unwanted localized man-pages
+ rm -rf "$pkgdir"/usr/share/man/[^man1]*
+
+ # install IJS
+ cd ijs
+ make DESTDIR="${pkgdir}" install
+
+ # remove filters that are now maintained in cups-filters as upstream home
+ rm -rf "$pkgdir"/usr/lib/cups/filter/{gstopxl,gstoraster}
+}
Copied: ghostscript/repos/extra-x86_64/add_gserrors_h.diff (from rev 249913, ghostscript/trunk/add_gserrors_h.diff)
===================================================================
--- add_gserrors_h.diff (rev 0)
+++ add_gserrors_h.diff 2015-11-01 10:31:07 UTC (rev 249914)
@@ -0,0 +1,43 @@
+From feafe5e540a0545ec5d28f3f66bb542056bba495 Mon Sep 17 00:00:00 2001
+From: Chris Liddell <chris.liddell at 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
+
Deleted: bug_696246.diff
===================================================================
--- bug_696246.diff 2015-11-01 10:30:58 UTC (rev 249913)
+++ bug_696246.diff 2015-11-01 10:31:07 UTC (rev 249914)
@@ -1,203 +0,0 @@
-From: Chris Liddell <chris.liddell at 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 at 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 at 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 at 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 at 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
-
Copied: ghostscript/repos/extra-x86_64/bug_696246.diff (from rev 249913, ghostscript/trunk/bug_696246.diff)
===================================================================
--- bug_696246.diff (rev 0)
+++ bug_696246.diff 2015-11-01 10:31:07 UTC (rev 249914)
@@ -0,0 +1,203 @@
+From: Chris Liddell <chris.liddell at 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 at 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 at 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 at 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 at 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
+
Deleted: ghostscript-sys-zlib.patch
===================================================================
--- ghostscript-sys-zlib.patch 2015-11-01 10:30:58 UTC (rev 249913)
+++ ghostscript-sys-zlib.patch 2015-11-01 10:31:07 UTC (rev 249914)
@@ -1,25 +0,0 @@
-diff -up ghostscript-9.12/configure.ac.sys-zlib ghostscript-9.12/configure.ac
---- ghostscript-9.12/configure.ac.sys-zlib 2014-03-26 11:48:54.983972222 +0000
-+++ ghostscript-9.12/configure.ac 2014-03-26 11:49:36.807230531 +0000
-@@ -854,7 +854,7 @@ AC_MSG_CHECKING([for local zlib source])
- dnl zlib is needed for language level 3, and libpng
- # we must define ZLIBDIR regardless because png.mak does a -I$(ZLIBDIR)
- # this seems a harmless default
--ZLIBDIR=src
-+ZLIBDIR=$includedir
- AUX_SHARED_ZLIB=
-
- if test -d $srcdir/zlib; then
-diff -up ghostscript-9.12/configure.sys-zlib ghostscript-9.12/configure
---- ghostscript-9.12/configure.sys-zlib 2014-03-26 11:49:45.547284521 +0000
-+++ ghostscript-9.12/configure 2014-03-26 11:49:56.171350127 +0000
-@@ -6254,7 +6254,7 @@ fi
- $as_echo_n "checking for local zlib source... " >&6; }
- # we must define ZLIBDIR regardless because png.mak does a -I$(ZLIBDIR)
- # this seems a harmless default
--ZLIBDIR=src
-+ZLIBDIR=$includedir
- AUX_SHARED_ZLIB=
-
- if test -d $srcdir/zlib; then
-
Copied: ghostscript/repos/extra-x86_64/ghostscript-sys-zlib.patch (from rev 249913, ghostscript/trunk/ghostscript-sys-zlib.patch)
===================================================================
--- ghostscript-sys-zlib.patch (rev 0)
+++ ghostscript-sys-zlib.patch 2015-11-01 10:31:07 UTC (rev 249914)
@@ -0,0 +1,25 @@
+diff -up ghostscript-9.12/configure.ac.sys-zlib ghostscript-9.12/configure.ac
+--- ghostscript-9.12/configure.ac.sys-zlib 2014-03-26 11:48:54.983972222 +0000
++++ ghostscript-9.12/configure.ac 2014-03-26 11:49:36.807230531 +0000
+@@ -854,7 +854,7 @@ AC_MSG_CHECKING([for local zlib source])
+ dnl zlib is needed for language level 3, and libpng
+ # we must define ZLIBDIR regardless because png.mak does a -I$(ZLIBDIR)
+ # this seems a harmless default
+-ZLIBDIR=src
++ZLIBDIR=$includedir
+ AUX_SHARED_ZLIB=
+
+ if test -d $srcdir/zlib; then
+diff -up ghostscript-9.12/configure.sys-zlib ghostscript-9.12/configure
+--- ghostscript-9.12/configure.sys-zlib 2014-03-26 11:49:45.547284521 +0000
++++ ghostscript-9.12/configure 2014-03-26 11:49:56.171350127 +0000
+@@ -6254,7 +6254,7 @@ fi
+ $as_echo_n "checking for local zlib source... " >&6; }
+ # we must define ZLIBDIR regardless because png.mak does a -I$(ZLIBDIR)
+ # this seems a harmless default
+-ZLIBDIR=src
++ZLIBDIR=$includedir
+ AUX_SHARED_ZLIB=
+
+ if test -d $srcdir/zlib; then
+
More information about the arch-commits
mailing list