diff options
Diffstat (limited to 'abs/core/ghostscript')
| -rw-r--r-- | abs/core/ghostscript/PKGBUILD | 25 | ||||
| -rw-r--r-- | abs/core/ghostscript/add_gserrors_h.diff | 43 | ||||
| -rw-r--r-- | abs/core/ghostscript/bug_696246.diff | 203 | ||||
| -rw-r--r-- | abs/core/ghostscript/fix_check_for_using_shared_freetype_lib.diff | 30 | 
4 files changed, 295 insertions, 6 deletions
| diff --git a/abs/core/ghostscript/PKGBUILD b/abs/core/ghostscript/PKGBUILD index f27e992..42dada7 100644 --- a/abs/core/ghostscript/PKGBUILD +++ b/abs/core/ghostscript/PKGBUILD @@ -4,28 +4,41 @@  ### !!! rebuild groff from core that picks up hardcoding the GS versioned font path !!! ###  pkgname=ghostscript -pkgver=9.15 -pkgrel=1 +pkgver=9.18 +pkgrel=6  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') +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) +        ghostscript-sys-zlib.patch +        bug_696246.diff +        add_gserrors_h.diff +        fix_check_for_using_shared_freetype_lib.diff)  #options=('!makeflags')  # http://downloads.ghostscript.com/public/SHA1SUMS -sha1sums=('19f01538d33b9623bc6653d96ea4ec891f14a9d3' -          'e054caf753df4d67221b29a2eac66130653f7556') +sha1sums=('388fea50a38e422a4c6ff27c184491bf5ecb96e1' +          'e054caf753df4d67221b29a2eac66130653f7556' +          'f259eaac3beb0ec346bb2d4d2455e4e3baddecd4' +          'ca686fed1af36d1f9fa866b47ff129c71d6a19ff' +          '8258043b111832fe52989ccb00d6d87285fcad81')  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() { diff --git a/abs/core/ghostscript/add_gserrors_h.diff b/abs/core/ghostscript/add_gserrors_h.diff new file mode 100644 index 0000000..c34e486 --- /dev/null +++ b/abs/core/ghostscript/add_gserrors_h.diff @@ -0,0 +1,43 @@ +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 + diff --git a/abs/core/ghostscript/bug_696246.diff b/abs/core/ghostscript/bug_696246.diff new file mode 100644 index 0000000..4719eb5 --- /dev/null +++ b/abs/core/ghostscript/bug_696246.diff @@ -0,0 +1,203 @@ +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 + diff --git a/abs/core/ghostscript/fix_check_for_using_shared_freetype_lib.diff b/abs/core/ghostscript/fix_check_for_using_shared_freetype_lib.diff new file mode 100644 index 0000000..b5b7b9b --- /dev/null +++ b/abs/core/ghostscript/fix_check_for_using_shared_freetype_lib.diff @@ -0,0 +1,30 @@ +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 + | 
