[arch-commits] Commit in ghostscript/repos (5 files)

Andreas Radke andyrtr at archlinux.org
Thu Sep 6 15:12:12 UTC 2018


    Date: Thursday, September 6, 2018 @ 15:12:11
  Author: andyrtr
Revision: 333809

archrelease: copy trunk to testing-x86_64

Added:
  ghostscript/repos/testing-x86_64/
  ghostscript/repos/testing-x86_64/0001_ICC_profile_validation.patch
    (from rev 333808, ghostscript/trunk/0001_ICC_profile_validation.patch)
  ghostscript/repos/testing-x86_64/0002_retain_LockSafetyParams_through_failed_installpagedevice.patch
    (from rev 333808, ghostscript/trunk/0002_retain_LockSafetyParams_through_failed_installpagedevice.patch)
  ghostscript/repos/testing-x86_64/0003_Fix_SEGV_seen_in_all-devices_test.patch
    (from rev 333808, ghostscript/trunk/0003_Fix_SEGV_seen_in_all-devices_test.patch)
  ghostscript/repos/testing-x86_64/PKGBUILD
    (from rev 333808, ghostscript/trunk/PKGBUILD)

---------------------------------------------------------------------+
 0001_ICC_profile_validation.patch                                   |   80 +++++++
 0002_retain_LockSafetyParams_through_failed_installpagedevice.patch |   69 ++++++
 0003_Fix_SEGV_seen_in_all-devices_test.patch                        |   40 +++
 PKGBUILD                                                            |  110 ++++++++++
 4 files changed, 299 insertions(+)

Copied: ghostscript/repos/testing-x86_64/0001_ICC_profile_validation.patch (from rev 333808, ghostscript/trunk/0001_ICC_profile_validation.patch)
===================================================================
--- testing-x86_64/0001_ICC_profile_validation.patch	                        (rev 0)
+++ testing-x86_64/0001_ICC_profile_validation.patch	2018-09-06 15:12:11 UTC (rev 333809)
@@ -0,0 +1,80 @@
+From bc3df0773fccf4b4906a3e59652ad646ea0fee91 Mon Sep 17 00:00:00 2001
+From: Chris Liddell <chris.liddell at artifex.com>
+Date: Tue, 4 Sep 2018 17:01:08 +0100
+Subject: [PATCH] For ICC profile validation, have cups id iteself as DeviceN
+
+Give the range of color spaces and models that cups supports, we can't
+reasonably provide (or expect others to provide) output ICC profiles for all
+cases.
+
+For the purpose of profile validation, have it claim to be DeviceN and benefit
+from the extra tolerance in profiles allowed for that class of device.
+---
+ cups/gdevcups.c  | 15 ++++++++++++++-
+ devices/devs.mak |  2 +-
+ 2 files changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/cups/gdevcups.c b/cups/gdevcups.c
+index c1574f8..decd8eb 100644
+--- a/cups/gdevcups.c
++++ b/cups/gdevcups.c
+@@ -70,6 +70,7 @@
+ #include "std.h"                /* to stop stdlib.h redefining types */
+ #include "gdevprn.h"
+ #include "gsparam.h"
++#include "gxdevsop.h"
+ #include "arch.h"
+ #include "gsicc_manage.h"
+ 
+@@ -252,6 +253,7 @@ private int cups_put_params(gx_device *, gs_param_list *);
+ private int cups_set_color_info(gx_device *);
+ private dev_proc_sync_output(cups_sync_output);
+ private prn_dev_proc_get_space_params(cups_get_space_params);
++private int cups_spec_op(gx_device *dev_, int op, void *data, int datasize);
+ 
+ #ifdef dev_t_proc_encode_color
+ private cm_map_proc_gray(cups_map_gray);
+@@ -392,7 +394,7 @@ private gx_device_procs	cups_procs =
+    NULL,				/* push_transparency_state */
+    NULL,				/* pop_transparency_state */
+    NULL,                                /* put_image */
+-
++   cups_spec_op
+ };
+ 
+ #define prn_device_body_copies(dtype, procs, dname, w10, h10, xdpi, ydpi, lo, to, lm, bm, rm, tm, ncomp, depth, mg, mc, dg, dc, print_pages)\
+@@ -5927,6 +5929,17 @@ cups_print_planar(gx_device_printer *pdev,
+   return (0);
+ }
+ 
++private int
++cups_spec_op(gx_device *dev_, int op, void *data, int datasize)
++{
++    /* Although not strictly DeviceN, the range of color models
++       this device supports presets similar issues.
++     */
++    if (op == gxdso_supports_devn) {
++        return true;
++    }
++    return gx_default_dev_spec_op(dev_, op, data, datasize);
++}
+ 
+ /*
+  */
+diff --git a/devices/devs.mak b/devices/devs.mak
+index c85604c..e8654e5 100644
+--- a/devices/devs.mak
++++ b/devices/devs.mak
+@@ -1860,7 +1860,7 @@ $(DD)pwgraster.dev : $(lcups_dev) $(lcupsi_dev) $(cups_) $(GDEV) \
+ 	$(ADDMOD) $(DD)pwgraster -include $(lcups_dev)
+ 	$(ADDMOD) $(DD)pwgraster -include $(lcupsi_dev)
+ 
+-$(DEVOBJ)gdevcups.$(OBJ) : $(LCUPSSRCDIR)$(D)gdevcups.c $(std_h) $(DEVS_MAK) $(MAKEDIRS)
++$(DEVOBJ)gdevcups.$(OBJ) : $(LCUPSSRCDIR)$(D)gdevcups.c $(std_h) $(gxdevsop_h) $(DEVS_MAK) $(MAKEDIRS)
+ 	$(CUPS_CC) $(DEVO_)gdevcups.$(OBJ) $(C_) $(CFLAGS) $(CUPSCFLAGS) \
+ 	    $(I_)$(GLSRC) \
+ 	    $(I_)$(DEVSRC) \
+-- 
+2.9.1
+
+

Copied: ghostscript/repos/testing-x86_64/0002_retain_LockSafetyParams_through_failed_installpagedevice.patch (from rev 333808, ghostscript/trunk/0002_retain_LockSafetyParams_through_failed_installpagedevice.patch)
===================================================================
--- testing-x86_64/0002_retain_LockSafetyParams_through_failed_installpagedevice.patch	                        (rev 0)
+++ testing-x86_64/0002_retain_LockSafetyParams_through_failed_installpagedevice.patch	2018-09-06 15:12:11 UTC (rev 333809)
@@ -0,0 +1,69 @@
+From 5812b1b78fc4d36fdc293b7859de69241140d590 Mon Sep 17 00:00:00 2001
+From: Chris Liddell <chris.liddell at artifex.com>
+Date: Tue, 4 Sep 2018 23:18:46 +0100
+Subject: [PATCH] Bug 699714: retain .LockSafetyParams through failed
+ .installpagedevice
+
+In the event that the .trysetparams fails during .installpagedevice, catch the
+error, and ensure that at least the .LockSafetyParams is set.
+---
+ Resource/Init/gs_setpd.ps | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/Resource/Init/gs_setpd.ps b/Resource/Init/gs_setpd.ps
+index bba3c8c..aee9614 100644
+--- a/Resource/Init/gs_setpd.ps
++++ b/Resource/Init/gs_setpd.ps
+@@ -95,12 +95,19 @@ level2dict begin
+  {	% Since setpagedevice doesn't create new device objects,
+         % we must (carefully) reinstall the old parameters in
+         % the same device.
+-   .currentpagedevice pop //null currentdevice //null .trysetparams
++   .currentpagedevice pop //null currentdevice //null
++   {.trysetparams} .internalstopped
++   {
++     //null
++   } if
+    dup type /booleantype eq
+     { pop pop }
+-    {		% This should never happen!
++    {
+       SETPDDEBUG { (Error in .trysetparams!) = pstack flush } if
+       cleartomark pop pop pop
++      % if resetting the entire device state failed, at least put back the se
++      currentdevice //null //false mark /.LockSafetyParams .currentpagedevice pop
++      /.LockSafetyParams .knownget not {//false} if .putdeviceparamsonly
+       /.installpagedevice cvx /rangecheck signalerror
+     }
+    ifelse pop pop
+-- 
+2.9.1
+
+
+From e914f1da46e33decc534486598dc3eadf69e6efb Mon Sep 17 00:00:00 2001
+From: Chris Liddell <chris.liddell at artifex.com>
+Date: Wed, 5 Sep 2018 08:44:41 +0100
+Subject: [PATCH] Fix incomplete comment from previous commit
+
+---
+ Resource/Init/gs_setpd.ps | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Resource/Init/gs_setpd.ps b/Resource/Init/gs_setpd.ps
+index aee9614..b75c431 100644
+--- a/Resource/Init/gs_setpd.ps
++++ b/Resource/Init/gs_setpd.ps
+@@ -105,7 +105,8 @@ level2dict begin
+     {
+       SETPDDEBUG { (Error in .trysetparams!) = pstack flush } if
+       cleartomark pop pop pop
+-      % if resetting the entire device state failed, at least put back the se
++      % if resetting the entire device state failed, at least put back the
++      % security related key
+       currentdevice //null //false mark /.LockSafetyParams .currentpagedevice pop
+       /.LockSafetyParams .knownget not {//false} if .putdeviceparamsonly
+       /.installpagedevice cvx /rangecheck signalerror
+-- 
+2.9.1
+
+

Copied: ghostscript/repos/testing-x86_64/0003_Fix_SEGV_seen_in_all-devices_test.patch (from rev 333808, ghostscript/trunk/0003_Fix_SEGV_seen_in_all-devices_test.patch)
===================================================================
--- testing-x86_64/0003_Fix_SEGV_seen_in_all-devices_test.patch	                        (rev 0)
+++ testing-x86_64/0003_Fix_SEGV_seen_in_all-devices_test.patch	2018-09-06 15:12:11 UTC (rev 333809)
@@ -0,0 +1,40 @@
+From 68eca5e94e6f63f4392b15581ad41af52e0edfd9 Mon Sep 17 00:00:00 2001
+From: Robin Watts <robin.watts at artifex.com>
+Date: Thu, 6 Sep 2018 12:56:51 +0100
+Subject: [PATCH] Fix SEGV seen in all-devices test with plank
+ examples/ridt91.eps
+
+Silly typo in the contone fill code for the landscape flippedy
+color cache case.
+---
+ base/gximono.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/base/gximono.c b/base/gximono.c
+index 2971f40..276db69 100644
+--- a/base/gximono.c
++++ b/base/gximono.c
+@@ -1222,8 +1222,8 @@ image_render_mono_ht(gx_image_enum * penum_orig, const byte * buffer, int data_x
+                                 dev_value = &(color_cache[*psrc * spp_out]);
+                                 for (j = 0; j < spp_out; j++) {
+                                     *(devc_contone[j] + position) = dev_value[j];
+-                                    position -= LAND_BITS;
+                                 }
++                                position -= LAND_BITS;
+                                 xr--;
+                             }           /* at loop exit xn will be <= xr */
+                             psrc++;
+@@ -1259,8 +1259,8 @@ image_render_mono_ht(gx_image_enum * penum_orig, const byte * buffer, int data_x
+                                 dev_value = &(color_cache[*psrc * spp_out]);
+                                 for (j = 0; j < spp_out; j++) {
+                                     *(devc_contone[j] + position) = dev_value[j];
+-                                    devc_contone[j] += LAND_BITS;
+                                 }
++                                position += LAND_BITS;
+                                 xr++;
+                             }           /* at loop exit xn will be >= xr */
+                             psrc++;
+-- 
+2.9.1
+
+

Copied: ghostscript/repos/testing-x86_64/PKGBUILD (from rev 333808, ghostscript/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD	                        (rev 0)
+++ testing-x86_64/PKGBUILD	2018-09-06 15:12:11 UTC (rev 333809)
@@ -0,0 +1,110 @@
+# $Id$
+# Maintainer: AndyRTR <andyrtr at archlinux.org>
+
+pkgbase=ghostscript
+pkgname=(ghostscript ghostxps ghostpcl)
+pkgver=9.24
+pkgrel=3
+pkgdesc="An interpreter for the PostScript language"
+url="https://www.ghostscript.com/"
+arch=('x86_64')
+license=('AGPL3' 'custom')
+depends=('libxt' 'libcups' 'fontconfig' 'zlib' 'libpng' 'libjpeg' 'jbig2dec'
+         'libtiff' 'lcms2' 'dbus' 'libpaper' 'ijs' 'openjpeg2')
+makedepends=('gtk3' 'gnutls' 'glu' 'freeglut')
+# https://github.com/ArtifexSoftware/ghostpdl-downloads/releases
+source=(https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${pkgver/./}/ghostpdl-${pkgver}.tar.gz
+       0001_ICC_profile_validation.patch
+       0002_retain_LockSafetyParams_through_failed_installpagedevice.patch
+       0003_Fix_SEGV_seen_in_all-devices_test.patch)
+sha512sums=('d3aae0d6f9d4f56392078d5034e278afa4f436f4b0977aeab0b9fbba8282e6598bf4532494f7df28f752d4cd1ea4c985e8f3e47db9be40cdf885b17f16731d75'
+            '6cfdd351e8e84968c20cf8f15e01a09a215b6132af89ca0e392716638d925a0f750dab3dbcbdf44f200fb9cc419be5dadccffc226c9a405e888f3580f98cf4ea'
+            '670ccf36927904fc2e918847baf082753d3b4b81fd0ee2347feb6de5a0ab77eb9c00cb640fcb3c7a0f395694112f3921775a6f614bec08e3d4452155b030951e'
+            '45be77dc890d9d251541d44fe0ad860a7d83d969ce697bbb32cb469d8837417020f1a017ae7aecbb8fbb45647ad9c3e6f92d321c2adfe6c8b3412c580f4058c5')
+
+prepare() {
+  cd ghostpdl-${pkgver}
+
+  # force it to use system-libs
+  rm -r cups/libs expat ijs jbig2dec jpeg lcms2mt libpng openjpeg tiff zlib
+  # using tree freetype because of https://bugs.archlinux.org/task/56849
+  # lcms2mt is the new lcms2 fork aimed to replace lcms2 in a thread safe way
+
+  # https://bugs.ghostscript.com/show_bug.cgi?id=699713
+  patch -Np1 -i ../0001_ICC_profile_validation.patch
+  # apply more upstream fixes to solve various crashes
+  patch -Np1 -i ../0002_retain_LockSafetyParams_through_failed_installpagedevice.patch
+  patch -Np1 -i ../0003_Fix_SEGV_seen_in_all-devices_test.patch
+}
+
+build() {
+  cd ghostpdl-${pkgver}
+
+  ./configure --prefix=/usr \
+              --enable-dynamic \
+              --with-ijs \
+              --with-jbig2dec \
+              --with-x \
+              --with-drivers=ALL \
+              --with-fontpath=/usr/share/fonts/gsfonts \
+              --enable-fontconfig \
+              --enable-freetype \
+              --enable-openjpeg \
+              --without-luratech \
+              --with-system-libtiff \
+              --with-libpaper \
+              --disable-compile-inits #--help # needed for linking with system-zlib
+
+  make so-only
+}
+
+package_ghostscript() {
+  optdepends=('texlive-core:      needed for dvipdf'
+              'gtk3:              needed for gsx')
+
+  cd ghostpdl-${pkgver}
+
+  make DESTDIR="${pkgdir}" \
+       CUPSSERVERROOT="${pkgdir}$(cups-config --serverroot)" \
+       CUPSSERVERBIN="${pkgdir}$(cups-config --serverbin)" \
+       soinstall
+  ln -s gsc "${pkgdir}"/usr/bin/gs
+
+  # remove useless broken doc/ symlink - FS#59507
+  rm -f "${pkgdir}"/usr/share/ghostscript/${pkgver}/doc
+
+  # remove unwanted localized manpages
+  rm -r "${pkgdir}"/usr/share/man/de
+
+  install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE
+}
+
+package_ghostxps() {
+  pkgdesc="${pkgdesc/PostScript/XPS document}"
+  depends=("ghostscript=${pkgver}-${pkgrel}")
+
+  cd ghostpdl-${pkgver}
+
+  install -Dt "${pkgdir}"/usr/bin sobin/gxpsc
+  ln -s gxpsc "${pkgdir}"/usr/bin/gxps
+
+  install -Dt "${pkgdir}"/usr/lib sobin/libgxps.so.${pkgver%.*}
+  ln -s libgxps.so.${pkgver%.*} "${pkgdir}"/usr/lib/libgxps.so.${pkgver%rc*}
+
+  install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE
+}
+
+package_ghostpcl() {
+  pkgdesc="${pkgdesc/PostScript/PCL 6}"
+  depends=("ghostscript=${pkgver}-${pkgrel}")
+
+  cd ghostpdl-${pkgver}
+
+  install -Dt "${pkgdir}"/usr/bin sobin/gpcl6c
+  ln -sf gpcl6c "${pkgdir}"/usr/bin/gpcl6
+
+  install -Dt "${pkgdir}"/usr/lib sobin/libgpcl6.so.${pkgver%.*}
+  ln -s libgpcl6.so.${pkgver%.*} "${pkgdir}"/usr/lib/libgpcl6.so.${pkgver%rc*}
+
+  install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 LICENSE
+}



More information about the arch-commits mailing list