Debian

Available patches from Ubuntu

To see Ubuntu differences wrt. to Debian, write down a grep-dctrl query identifying the packages you're interested in:
grep-dctrl -n -sPackage Sources.Debian
(e.g. -FPackage linux-ntfs or linux-ntfs)

Modified packages are listed below:

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: ghostscript

ghostscript (9.26~dfsg+0-0ubuntu8) eoan; urgency=medium * SECURITY UPDATE: code execution vulnerability - debian/patches/CVE-2019-3839-1.patch: hide pdfdict and GS_PDF_ProcSet in Resource/Init/pdf_base.ps, Resource/Init/pdf_draw.ps, Resource/Init/pdf_font.ps, Resource/Init/pdf_main.ps, Resource/Init/pdf_ops.ps, Resource/Init/pdf_sec.ps. - debian/patches/CVE-2019-3839-2.patch: fix lib/pdf2dsc.ps to use documented Ghostscript pdf procedures in lib/pdf2dsc.ps. - CVE-2019-3839 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Tue, 07 May 2019 11:28:11 -0400 ghostscript (9.26~dfsg+0-0ubuntu7) disco; urgency=medium * SECURITY UPDATE: superexec operator is available - debian/patches/CVE-2019-3835-pre1.patch: Have gs_cet.ps run from gs_init.ps in Resource/Init/gs_cet.ps, Resource/Init/gs_init.ps. - debian/patches/CVE-2019-3835-pre2.patch: Undef /odef in Resource/Init/gs_cet.ps, Resource/Init/gs_init.ps. - debian/patches/CVE-2019-3835-1.patch: restrict superexec and remove it in Resource/Init/gs_cet.ps, Resource/Init/gs_dps1.ps, Resource/Init/gs_fonts.ps, Resource/Init/gs_init.ps, Resource/Init/gs_ttf.ps, Resource/Init/gs_type1.ps. - debian/patches/CVE-2019-3835-2.patch: obliterate superexec in Resource/Init/gs_init.ps, psi/icontext.c, psi/icstate.h, psi/zcontrol.c, psi/zdict.c, psi/zgeneric.c. - CVE-2019-3835 * SECURITY UPDATE: forceput in DefineResource is still accessible - debian/patches/CVE-2019-3838-1.patch: make a transient proc executeonly in Resource/Init/gs_res.ps. - debian/patches/CVE-2019-3838-2.patch: an extra transient proc needs executeonly in Resource/Init/gs_res.ps. - CVE-2019-3838 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Thu, 21 Mar 2019 13:15:30 -0400 ghostscript (9.26~dfsg+0-0ubuntu6) disco; urgency=medium * SECURITY REGRESSION: Previous regression fix causes blue background (LP: #1817308) - debian/patches/lp1815339-2.patch: properly map RGBW color space in cups/gdevcups.c. -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Mon, 25 Feb 2019 09:29:45 -0500 ghostscript (9.26~dfsg+0-0ubuntu5) disco; urgency=medium * SECURITY REGRESSION: High RIP_MAX_CACHE makes cups output device fail (LP: #1815339) - debian/patches/lp1815339.patch: fix logic in cups/gdevcups.c. -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 20 Feb 2019 10:37:16 +0100 ghostscript (9.26~dfsg+0-0ubuntu4) disco; urgency=medium * SECURITY UPDATE: code execution vulnerability - debian/patches/CVE-2019-6116.patch: address .force* operators exposure in Resource/Init/gs_diskn.ps, Resource/Init/gs_dps1.ps, Resource/Init/gs_fntem.ps, Resource/Init/gs_fonts.ps, Resource/Init/gs_init.ps, Resource/Init/gs_lev2.ps, Resource/Init/gs_pdfwr.ps, Resource/Init/gs_res.ps, Resource/Init/gs_setpd.ps, Resource/Init/pdf_base.ps, Resource/Init/pdf_draw.ps, Resource/Init/pdf_font.ps, Resource/Init/pdf_main.ps, Resource/Init/pdf_ops.ps, psi/int.mak, psi/interp.c, psi/istack.c, psi/istack.h. - CVE-2019-6116 * debian/libgs9.symbols: added new symbol. -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 23 Jan 2019 13:02:37 -0500 ghostscript (9.26~dfsg+0-0ubuntu3) disco; urgency=low * Backported upstream patch to prevent crashes when calling Ghostscript with a PDF file and "-dLastPage=1" (LP: #1806517, upstream bug #700315). -- Till Kamppeter <till.kamppeter@gmail.com> Wed, 5 Dec 2018 16:47:06 +0100 ghostscript (9.26~dfsg+0-0ubuntu2) disco; urgency=low * Backported upstream patch to make Duplex on non-default page sizes work (on certain PostScript printers, upstream bug #700232). -- Till Kamppeter <till.kamppeter@gmail.com> Thu, 29 Nov 2018 22:52:06 +0100 ghostscript (9.26~dfsg+0-0ubuntu1) disco; urgency=medium * SECURITY UPDATE: Updated to 9.26 to fix multiple security issues - CVE-2018-19409 - CVE-2018-19475 - CVE-2018-19476 - CVE-2018-19477 * Removed patches included in new version: - debian/patches/0218*.patch - debian/patches/lp1800062.patch * debian/libgs9.symbols: updated for new version. -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 28 Nov 2018 07:12:52 -0500 ghostscript (9.25~dfsg+1-0ubuntu1.1) cosmic-security; urgency=medium * SECURITY UPDATE: Multiple security issues - debian/patches/0218*.patch: multiple cherry-picked upstream commits to fix security issues. Thanks to Jonas Smedegaard for cherry-picking these for Debian's 9.25~dfsg-3 package. - debian/libgs9.symbols: added new symbol. - CVE-2018-17961 - CVE-2018-18073 - CVE-2018-18284 * Fix LeadingEdge regression introduced in 9.22. (LP: #1800062) - debian/patches/lp1800062.patch: fix cups get/put_params LeadingEdge logic in cups/gdevcups.c. -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Tue, 30 Oct 2018 08:38:06 -0400 ghostscript (9.25~dfsg+1-0ubuntu1) cosmic; urgency=medium * New upstream bug fix release Highlights: - Highly recommended by upstream, release done to fix regressions in 9.24. - This release fixes problems with argument handling, some unintended results of the security fixes to the SAFER file access restrictions (specifically accessing ICC profile files), and some additional security issues over the recent 9.24 release. - Note: The ps2epsi utility does not, and cannot call Ghostscript with the -dSAFER command line option. It should never be called with input from untrusted sources. * Removed patch 020180906-bc3df07-*.patch backported from upstream. * Refreshed patches 2003_support_multiarch.patch and 2007_suggest_install_ghostscript-doc_in_code.patch with quilt. * debian/libgs9.symbols: Updated for new upstream source. Applied patch which dpkg-gensymbols generated. -- Till Kamppeter <till.kamppeter@gmail.com> Thu, 13 Sep 2018 20:27:06 +0200 ghostscript (9.24~dfsg+1-0ubuntu1) cosmic; urgency=medium * New upstream release (LP: #1791279) Highlights: - Security issues have been the primary focus of this release, including solving several (well publicised) real and potential exploits. Upstream highly recommends this due to the many security fixes and improvements. * debian/copyright, debian/rules: Upstream renamed the lcms2art/ directory to lcms2mt/. * Removed patch CVE-2018-10194.patch backported from upstream. * Refreshed patch 2010_add_build_timestamp_setting.patch with quilt. * 020180906-bc3df07-for-icc-profile-validation-have-cups-id-itself-as-device-n.patch: "cups" output device did not work because there were no output profiles for all color spaces (Upstream bug #699713). * Merged from Debian package: - Update copyright-check maintainer script: Extract metadata from png files. - Update copyright info: + Extend coverage for main upstream author. + Extend coverage for Adobe. - Extend lintian overrides regarding License-Reference. - Declare compliance with Debian Policy 4.2.0. * debian/libgs9.symbols: Updated for new upstream source. Applied patch which dpkg-gensymbols generated. -- Till Kamppeter <till.kamppeter@gmail.com> Thu, 06 Sep 2018 20:21:03 +0200 ghostscript (9.23~dfsg+1-0ubuntu2) cosmic; urgency=medium * Build with -O2 on ppc64el to avoid FTBFS -- Graham Inggs <ginggs@ubuntu.com> Sat, 11 Aug 2018 11:41:40 +0000 ghostscript (9.23~dfsg+1-0ubuntu1) cosmic; urgency=medium * New upstream release Highlights: + Ghostscript now has a family of 'pdfimage' devices (pdfimage8, pdfimage24 and pdfimage32) which produce rendered output wrapped up as an image in a PDF. Additionally, there is a 'pclm' device which produces PCLm format output. + There is now a ColorAccuracy parameter allowing the user to decide between speed or accuracy in ICC color transforms. + JPEG Passthrough: devices which support it can now receive the 'raw' JPEG stream from the interpreter. The main use of this is the pdfwrite/ps2write family of devices that can now take JPEG streams from the input file(s) and write them unchanged to the output (thus avoiding additional quantization effects). + PDF transparency performance improvements * Difference to Debian package: + openjpeg library bundled with upstream Ghostscript/GhostPDL used instead of the original openjpeg library, as the original library is not accepted into Ubuntu Main (https://bugs.launchpad.net/bugs/711061). * Use bundled lcms2art instead of system's liblcms2 as the former one is made thread safe and also contains preformance enhancements which got rejected upstream. * Updated list of stripped files/paths in debian/copyright * Added licenses of bundled openjpeg and lcms2 libraries to debian/copyright * Updated/refreshed the 20* patches * Dropped CVE-2016-10317.patch as it is included upstream. * debian/libgs9.symbols: Updated for new upstream source. Applied patch which dpkg-gensymbols generated. -- Till Kamppeter <till.kamppeter@gmail.com> Wed, 08 Aug 2018 13:29:37 +0200 ghostscript (9.22~dfsg+1-0ubuntu1.1) bionic-security; urgency=medium * SECURITY UPDATE: Heap-based buffer overflow and application crash - debian/patches/CVE-2016-10317.patch: check max_height bounds in base/gxht_thresh.c, base/gxipixel.c. - CVE-2016-10317 * SECURITY UPDATE: Denial of service - debian/patches/CVE-2018-10194.patch: avoid infinite number in devices/vector/gdevpdts.c. - CVE-2018-10194 -- Leonidas S. Barbosa <leo.barbosa@canonical.com> Tue, 24 Apr 2018 14:34:45 -0300 ghostscript (9.22~dfsg+1-0ubuntu1) bionic; urgency=low * Merge from Debian unstable. Remaining changes: + openjpeg library bundled with upstream Ghostscript/GhostPDL used instead of the original openjpeg library, as the original library is not accepted into Ubuntu Main (https://bugs.launchpad.net/bugs/711061). * debian/libgs9.symbols: Updated for new upstream source. Applied patch which dpkg-gensymbols generated. -- Till Kamppeter <till.kamppeter@gmail.com> Fri, 23 Feb 2018 21:12:00 +0100

Modifications :
  1. Download patch lcms2mt/configure
  2. Download patch debian/libgs9.symbols
  3. Download patch lcms2mt/include/lcms2mt.h
  4. Download patch debian/patches/CVE-2019-6116.patch
  5. Download patch debian/libgs9-common.links.in

    --- 9.26~dfsg-2/debian/libgs9-common.links.in 2018-09-15 10:36:54.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/libgs9-common.links.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -var/lib/ghostscript/CMap usr/share/ghostscript/__ABI__/Resource/CMap -/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf /usr/share/ghostscript/__ABI__/Resource/CIDFSubst/DroidSansFallback.ttf -/usr/share/color/icc/ghostscript usr/share/ghostscript/__ABI__/iccprofiles
  6. Download patch lcms2mt/Projects/VC2010/jpegicc/jpegicc.vcxproj
  7. Download patch lcms2mt/Lib/BC/BC.txt

    --- 9.26~dfsg-2/lcms2mt/Lib/BC/BC.txt 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Lib/BC/BC.txt 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1 @@ +BC \ No newline at end of file
  8. Download patch lcms2mt/doc/WhyThisFork.txt

    --- 9.26~dfsg-2/lcms2mt/doc/WhyThisFork.txt 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/doc/WhyThisFork.txt 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,151 @@ + LCMS 2.9.MT + =========== + +Why does this fork exist? +~~~~~~~~~~~~~~~~~~~~~~~~~ + +We, Artifex Software, use LCMS 2 in both our Ghostscript and MuPDF +projects. It's a great library that performs well, and does almost +exactly what we want. + +Almost. + +In the course of pulling LCMS 2 into MuPDF, we hit some problems +with the library (described in more detail below). We've changed +the code to fix these problems, and therefore released this +version of the library. + + +Why don't you just pass the changes back to mainline LCMS? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Sadly, the changes we've made require changes to some of the API +to LCMS. We consider these changes to be pretty minor, and to +improve the overall API, but they are unavoidable. + +You can't just drop this version of the library into an existing +project that uses vanilla LCMS and expect it to work. You will +need to make some changes in your code. Small ones, but changes +nonetheless. + +We have offered these changes upstream, with a view to getting +them adopted into mainstream LCMS - perhaps as LCMS 3. Marti +Maria, the original author of LCMS is considering them at the +moment, but no decision has been made. + +Marti has plans of his own for LCMS, so until such time as we +figure out a mutually satisfactory way of working, we're doing +this separate release. + + +So what problem was this intended to solve? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Put simply, we ran into problems with using LCMS in a multi-threaded +environment. + +A few years ago, Marti kindly made some changes within LittleCMS +to enable us to safely use LCMS with Ghostscript when run with +multiple threads. + +Specifically, Ghostscript needed to use different allocators from +each thread. In order to account for this, Marti added the idea +of the 'cmsContext'. These would carry a 'void *UserData' value +that could be retrieved in the allocators. By using a different +cmsContext in each thread, we could therefore pass thread specific +information through LCMS and safely have it reach the allocators. + +In order to make this change without breaking the existing API +Marti added new functions, suffixed with THR, that took these +cmsContext's. + +So where in old lcms we had: + + CMSAPI cmsBool CMSEXPORT cmsPlugin(void* Plugin); + +we now also had: + + CMSAPI cmsBool CMSEXPORT cmsPluginTHR(cmsContext ContextID, void* Plugin); + +Internally within LCMS, the cmsContext values were often stored +within things like profiles and links. For Ghostscript this was +absolutely fine, because we didn't share profiles or links between +different threads. + +For MuPDF, however, this was a significant restriction. MuPDF is +designed as a C level library from which people can build applications. +Data objects are reference counted, and are designed to be able to +be passed around the system as required. It would be almost impossible +to enforce the idea that profiles and links can only be used within +the original thread (cmsContext) within which they were created. +Also new versions of Ghostscript will also share profiles and links +among threads to enhance performance with multi-threaded rendering. + +Lastly, Ghostscript made use of cmsChangeBuffersFormat to switch the +input or output data format (planar, bytes per component, etc.) to +allow a link profile to be re-used without the computation needed to +create a new link profile. Since the input and output format are +stored within the link profile, one thread changing the format while +another thread was using it for color transform would cause problems. + +So what changes have been made? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The changes are very simple and systematic. + +1) Every API function (or at least those that might allocate) now takes +a cmsContext pointer. + +2) cmsContexts are now passed explicitly throughout the system. They +are never stored in any structures. + +3) Accordingly, we have removed the 'THR' API functions (as they no +longer serve any purpose). + +4) We have removed the cmsChangeBuffersFormat function (use of which +could lead to a link profile being changed by one thread while it +was in use by another) and replaced it with a thread safe alternative, +cmsCloneTransformChangingFormats. This creates a new transform that +shares the underlying tables of the original transform, but with +new buffer format handlers. Since the underlying tables for the link +are shared, the cost of cloning the profile is very low. + +In addition, we've made 1 other change that breaks the ABI, but not +the API: + +5) The organisation of the flags word used to describe the format of +input/output pixels has been altered to accommodate more 'extra' +channels (now a maximum of 63 rather than 7). + +Finally: + +6) We have renamed lcms2.h to be lcms2mt.h. + +7) We have tweaked the LCMS_VERSION value (and some of the code +that reads it), to ensure that people don't link binary plugins +expecting other versions against us without an error being given. + + +So what's the plan from here? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Well, at the very least we hope to keep pulling fixes from mainline +LCMS into this version. We (Artifex Software) need to keep it up to +date and secure for our use of the library. + +In the fullness of time we'd love to see these fixes folded back +into a new LCMS release, but this will have to wait for this to be +a convenient time for Marti. + + +So where should we report bugs? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Report bugs to us, by all means, but please also report them to Marti. +He's likely to be in a far better position to evaluate potential +problems and fixes than we are - this is his library after all. +Ideally every problem that gets fixed in mainline LCMS should get +pulled into our version. + +Indeed, to keep this simple, we don't really want to diverge our +version from mainline more than we have to.
  9. Download patch lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist

    --- 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Bucket + type = "1" + version = "1.0"> + <FileBreakpoints> + <FileBreakpoint + shouldBeEnabled = "Yes" + ignoreCount = "0" + continueAfterRunningActions = "No" + filePath = "../../../../../../System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/Headers/ColorPicker.h" + timestampString = "456920110.796319" + startingColumnNumber = "9223372036854775807" + endingColumnNumber = "9223372036854775807" + startingLineNumber = "4" + endingLineNumber = "4"> + </FileBreakpoint> + </FileBreakpoints> +</Bucket>
  10. Download patch lcms2mt/compile
  11. Download patch debian/patches/CVE-2019-3839-1.patch
  12. Download patch debian/README.source

    --- 9.26~dfsg-2/debian/README.source 2018-09-15 10:36:54.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/README.source 2018-02-23 20:04:45.000000000 +0000 @@ -2,7 +2,8 @@ CDBS+git-buildpackage --------------------- This source package uses CDBS and git-buildpackage. NMUs need not (but -are encouraged to) make special use of these tools. +are encouraged to) make special use of these tools. In particular, the +debian/control.in file can be completely ignored. More info here: http://wiki.debian.org/CDBS+git-buildpackage @@ -13,4 +14,4 @@ Maintainers of this source package appre described here: https://wiki.debian.org/LowThresholdNmu - -- Jonas Smedegaard <dr@jones.dk> Fri, 14 Sep 2018 19:09:35 +0200 + -- Jonas Smedegaard <dr@jones.dk> Mon, 18 Feb 2013 12:55:37 +0100
  13. Download patch lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.pbxproj
  14. Download patch lcms2mt/config.guess
  15. Download patch debian/rules

    --- 9.26~dfsg-2/debian/rules 2018-11-04 16:25:38.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/rules 2018-09-06 18:21:03.000000000 +0000 @@ -1,7 +1,7 @@ #!/usr/bin/make -f # -*- mode: makefile; coding: utf-8 -*- -# Copyright 2004-2009, Masayuki Hatta (mhatta) <mhatta@debian.org> -# Copyright 2009-2018, Jonas Smedegaard <dr@jones.dk> +# Copyright © 2004-2009, Masayuki Hatta (mhatta) <mhatta@debian.org> +# Copyright © 2009-2017, Jonas Smedegaard <dr@jones.dk> # Description: Main Debian packaging script for GhostPDL # # This program is free software; you can redistribute it and/or @@ -17,13 +17,24 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. +# These are needed ahead of including CDBS # ABI by default follows upstream version (without repackaging suffix) abi = $(firstword $(subst ~,$(space),$(DEB_UPSTREAM_VERSION))) major = $(firstword $(subst .,$(space),$(DEB_UPSTREAM_VERSION))) - -# These are needed ahead of including CDBS +SEDRULE_CONTENT = 's/__ABI__/$(abi)/g;s/__VER__/$(major)/g' +DEB_PHONY_RULES += debian/control.in +debian/control:: debian/control.in +debian/control.in:: + sed $(SEDRULE_CONTENT) <debian/control.in.in >debian/control.in DEB_AUTO_UPDATE_AUTOCONF = 2.67 +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) + +ifneq (,$(filter $(DEB_HOST_ARCH),ppc64el)) + export DEB_CFLAGS_MAINT_STRIP=-O3 + export DEB_CFLAGS_MAINT_PREPEND=-O2 +endif + include /usr/share/cdbs/1/class/autotools.mk include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/rules/utils.mk @@ -51,39 +62,56 @@ DEB_CONFIGURE_EXTRA_FLAGS += --without-p export DEB_HOST_MULTIARCH # Support parallel building if enabled in DEB_BUILD_OPTIONS -# FIXME: Enable when not causing spurious errors like this -# https://buildd.debian.org/status/fetch.php?pkg=ghostscript&arch=amd64&ver=9.25~dfsg-6&stamp=1541195477&raw=0 -#DEB_BUILD_PARALLEL = 1 +DEB_BUILD_PARALLEL = 1 gs_opts += SHARE_JPEG=1 +dev-deps += jpeg gs_opts += SHARE_LIBPNG=1 +dev-deps += png + +gs_opts += SHARE_TRIO=1 +dev-deps += trio gs_opts += SHARE_LIBTIFF=1 DEB_CONFIGURE_EXTRA_FLAGS += --with-system-libtiff +dev-deps += tiff gs_opts += SHARE_ZLIB=1 +dev-deps += z gs_opts += SHARE_JBIG2=1 DEB_CONFIGURE_EXTRA_FLAGS += --with-jbig2dec +dev-deps += jbig2dec gs_opts += SHARE_IJS=1 DEB_CONFIGURE_EXTRA_FLAGS += --with-ijs +dev-deps += ijs gs_opts += SHARE_EXPAT=1 +dev-deps += expat DEB_CONFIGURE_EXTRA_FLAGS += --with-x --disable-gtk +dev-deps += xt xext x11 ice sm DEB_CONFIGURE_EXTRA_FLAGS += --enable-dynamic DEB_CONFIGURE_EXTRA_FLAGS += --disable-compile-inits DEB_CONFIGURE_EXTRA_FLAGS += --with-drivers=ALL -gs_opts += WHICH_CMS=lcms2 SHARE_LCMS=1 LCMS2DIR=/usr +gs_opts += WHICH_CMS=lcms2mt SHARE_LCMS=0 #LCMS2DIR=/usr +#dev-deps += lcms2 # openjpeg requires patching for ICC and CMYK support -gs_opts += SHARE_JPX=1 +#gs_opts += SHARE_JPX=1 #DEB_CONFIGURE_EXTRA_FLAGS += --disable-openjpeg +#dev-deps += openjp2-7 + +# In contrary to Debian we use the openjpeg convenience library, as the Ubuntu +# security team does not accept the upstream openjpeg library into Ubuntu +# Main (https://bugs.launchpad.net/bugs/711061) +gs_opts += SHARE_JPX=0 +DEB_CONFIGURE_EXTRA_FLAGS += --enable-openjpeg --without-jasper fontdirs = /var/lib/ghostscript/fonts /usr/share/cups/fonts \ /usr/share/ghostscript/fonts /usr/local/lib/ghostscript/fonts \ @@ -91,12 +119,14 @@ fontdirs = /var/lib/ghostscript/fonts /u gs_opts += SHARE_FT=1 DEB_CONFIGURE_EXTRA_FLAGS += --enable-freetype \ --with-fontpath=$(subst $(space),:,$(strip $(fontdirs))) +dev-deps += freetype6 fontconfig1 # avoid building CUPS driver when bootstrapping an architecture ifeq (,$(findstring stage1,$(DEB_BUILD_PROFILES))) gs_opts += SHARE_LCUPS=1 SHARE_LCUPSI=1 DEB_CONFIGURE_EXTRA_FLAGS += --enable-cups endif +dev-deps += cups2 cupsimage2 DEB_MAKE_BUILD_TARGET = so $(gs_opts) DEB_MAKE_INSTALL_TARGET = soinstall DESTDIR=$(DEB_DESTDIR) $(gs_opts) @@ -112,12 +142,21 @@ export DPKG_GENSYMBOLS_CHECK_LEVEL=$(if DEB_COMPRESS_EXCLUDE_ALL = .pdf +pre-build:: debian/control.in.in + echo "sed $(SEDRULE_CONTENT) <$< | diff -u debian/control.in -" + @sed $(SEDRULE_CONTENT) <$< | diff -u debian/control.in - || ( \ + echo; \ + echo "Upstream version has changed (or debian/control.in.in is out of sync)"; \ + echo "Edit debian/control manually, or use the following command:"; \ + echo " DEB_AUTO_UPDATE_DEBIAN_CONTROL=yes fakeroot debian/rules clean"; \ + exit 1) + # Generate (and cleanup) files containing variables static per build -infiles = $(wildcard debian/*.in) -outfiles = $(basename $(infiles)) +infiles = $(filter-out debian/control.in debian/control.in.in, $(wildcard debian/*.in)) +outfiles = $(subst $(libname)__VER__,$(pkg-lib),$(basename $(infiles))) pre-build:: $(outfiles) $(outfiles): update-config debian/stamp-copyright-check - sed 's/__ABI__/$(abi)/g' <$@.in >$@ + sed $(SEDRULE_CONTENT) <$(subst $(pkg-lib),$(libname)__VER__,$@).in >$@ clean:: rm -f $(outfiles) @@ -178,3 +217,21 @@ binary-post-install/$(pkg-data):: echo ' so some alternative to just dropping that file is required.'; \ echo ' More info at bug#531182.'; \ exit 1 ) + +# Needed at build time +dev-deps += paper idn11 +CDBS_BUILD_DEPENDS +=, $(patsubst %,$(comma) lib%-dev,$(dev-deps)) +CDBS_BUILD_DEPENDS +=, freeglut3-dev, pkg-config + +# Needed (always, often, sometimes) at runtime +CDBS_DEPENDS_$(pkg) +=, debconf | debconf-2.0 +CDBS_DEPENDS_$(pkg) +=, $(pkg-lib) (= $(DEB_VERSION)) +CDBS_DEPENDS_$(pkg-x11) +=, $(pkg) (= $(DEB_VERSION)) +CDBS_DEPENDS_$(pkg-lib) +=, poppler-data +CDBS_DEPENDS_$(pkg-dev) +=, $(pkg-lib) (= $(DEB_VERSION)) +CDBS_RECOMMENDS_$(pkg) +=, gsfonts +CDBS_SUGGESTS_$(pkg) +=, $(pkg-x11) +CDBS_SUGGESTS_$(pkg-doc) +=, $(pkg) + +# Public virtual packages +CDBS_PROVIDES_$(pkg) +=, postscript-viewer
  16. Download patch lcms2mt/AUTHORS

    --- 9.26~dfsg-2/lcms2mt/AUTHORS 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/AUTHORS 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,52 @@ + +Main Author +------------ +Marti Maria + + +Contributors +------------ +Bob Friesenhahn +Kai-Uwe Behrmann +Stuart Nixon +Jordi Vilar +Richard Hughes +Auke Nauta +Chris Evans (Google) +Lorenzo Ridolfi +Robin Watts (Artifex) +Shawn Pedersen +Andrew Brygin +Samuli Suominen +Florian Hch +Aurelien Jarno +Claudiu Cebuc +Michael Vhrel (Artifex) +Michal Cihar +Daniel Kaneider +Mateusz Jurczyk (Google) +Paul Miller +Sbastien Lon +Christian Schmitz +XhmikosR +Stanislav Brabec (SuSe) +Leonhard Gruenschloss (Google) +Patrick Noffke +Christopher James Halse Rogers +John Hein +Thomas Weber (Debian) +Mark Allen +Noel Carboni +Sergei Trofimovic + +Special Thanks +-------------- +Artifex software +AlienSkin software +Jan Morovic +Jos Vernon (WebSupergoo) +Harald Schneider (Maxon) +Christian Albrecht +Dimitrios Anastassakis +Lemke Software +Tim Zaman
  17. Download patch debian/patches/CVE-2019-3839-2.patch

    --- 9.26~dfsg-2/debian/patches/CVE-2019-3839-2.patch 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/CVE-2019-3839-2.patch 2019-05-07 15:27:53.000000000 +0000 @@ -0,0 +1,63 @@ +From db24f253409d5d085c2760c814c3e1d3fa2dac59 Mon Sep 17 00:00:00 2001 +From: Ray Johnston <ray.johnston@artifex.com> +Date: Tue, 19 Mar 2019 09:25:48 -0700 +Subject: [PATCH] Fix lib/pdf2dsc.ps to use documented Ghostscript pdf + procedures. + +We eliminated GS_PDF_ProcSet and pdfdict, but runpdfbegin, dopdfpages, +and runpdfend are still available. +--- + lib/pdf2dsc.ps | 17 +++++------------ + 1 file changed, 5 insertions(+), 12 deletions(-) + +diff --git a/lib/pdf2dsc.ps b/lib/pdf2dsc.ps +index 4547849..d836bf3 100644 +--- a/lib/pdf2dsc.ps ++++ b/lib/pdf2dsc.ps +@@ -52,10 +52,7 @@ systemdict /.setsafe known { .setsafe } if + /DSCstring 255 string def + /MediaTypes 10 dict def + +- GS_PDF_ProcSet begin +- pdfdict begin +- PDFfile +- pdfopen begin ++ PDFfile runpdfbegin + /FirstPage where { pop } { /FirstPage 1 def } ifelse + /LastPage where { pop } { /LastPage pdfpagecount def } ifelse + +@@ -108,13 +105,12 @@ systemdict /.setsafe known { .setsafe } if + (%%BeginProlog\n) puts + (/Page null def\n/Page# 0 def\n/PDFSave null def\n) puts + (/DSCPageCount 0 def\n) puts +- (/DoPDFPage {dup /Page# exch store pdfgetpage pdfshowpage } def\n) puts +- (GS_PDF_ProcSet begin\npdfdict begin\n) puts ++ (/DoPDFPage {dup /Page# exch store dup dopdfpages } def\n) puts + (%%EndProlog\n) puts + (%%BeginSetup\n) puts + DSCfile PDFname write==only + ( \(r\) file { DELAYSAFER { .setsafe } if } stopped pop\n) puts +- ( pdfopen begin\n) puts ++ ( runpdfbegin\n) puts + ( process_trailer_attrs\n) puts + (%%EndSetup\n) puts + +@@ -239,13 +235,10 @@ systemdict /.setsafe known { .setsafe } if + DSCfile exch DSCstring cvs writestring + ( DoPDFPage\n) puts + } for +- currentdict pdfclose +- end +- end +- end ++ runpdfend + % write trailer + (%%Trailer\n) puts +-(currentdict pdfclose\nend\nend\nend\n) puts ++(runpdfend\n) puts + (%%EOF\n) puts + % close output file and exit + DSCfile closefile +-- +2.9.1 +
  18. Download patch debian/ghostscript.links
  19. Download patch lcms2mt/Projects/VC2010/jpegicc/jpegicc.vcxproj.filters

    --- 9.26~dfsg-2/lcms2mt/Projects/VC2010/jpegicc/jpegicc.vcxproj.filters 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/VC2010/jpegicc/jpegicc.vcxproj.filters 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> + </Filter> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\utils\common\vprf.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\utils\common\xgetopt.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\utils\jpgicc\iccjpeg.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\utils\jpgicc\jpgicc.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file
  20. Download patch lcms2mt/m4/ax_gcc_func_attribute.m4
  21. Download patch lcms2mt/Projects/mac/LittleCMS/TestBed-Info.plist

    --- 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/TestBed-Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/TestBed-Info.plist 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleExecutable</key> + <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIdentifier</key> + <string>com.yourcompany.TestBed</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundlePackageType</key> + <string>BNDL</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>1.0</string> + <key>CSResourcesFileMapped</key> + <string>yes</string> +</dict> +</plist>
  22. Download patch lcms2mt/ltmain.sh
  23. Download patch debian/patches/2010_add_build_timestamp_setting.patch

    --- 9.26~dfsg-2/debian/patches/2010_add_build_timestamp_setting.patch 2018-09-14 12:29:35.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/2010_add_build_timestamp_setting.patch 2018-09-06 18:21:03.000000000 +0000 @@ -59,15 +59,17 @@ This patch header follows DEP-3: http:// --- a/devices/vector/gdevpdf.c +++ b/devices/vector/gdevpdf.c -@@ -391,6 +391,7 @@ +@@ -391,6 +391,9 @@ */ { struct tm tms; ++#ifndef CLUSTER + long secs_ns[2]; ++#endif time_t t; char buf[1+2+4+2+2+2+2+2+1+2+1+2+1+1+1]; /* (D:yyyymmddhhmmssZhh'mm')\0 */ int timeoffset; -@@ -402,7 +403,8 @@ +@@ -402,7 +405,8 @@ timesign = 'Z'; timeoffset = 0; #else @@ -77,7 +79,7 @@ This patch header follows DEP-3: http:// tms = *gmtime(&t); tms.tm_isdst = -1; timeoffset = (int)difftime(t, mktime(&tms)); /* tz+dst in seconds */ -@@ -446,7 +448,7 @@ +@@ -446,7 +450,7 @@ if (s == NULL) return_error(gs_error_VMerror); pdev->KeyLength = 0; /* Disable encryption. Not so important though. */
  24. Download patch debian/libgs__VER__-common.links.in

    --- 9.26~dfsg-2/debian/libgs__VER__-common.links.in 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/libgs__VER__-common.links.in 2018-02-23 20:04:45.000000000 +0000 @@ -0,0 +1,3 @@ +var/lib/ghostscript/CMap usr/share/ghostscript/__ABI__/Resource/CMap +/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf /usr/share/ghostscript/__ABI__/Resource/CIDFSubst/DroidSansFallback.ttf +/usr/share/color/icc/ghostscript usr/share/ghostscript/__ABI__/iccprofiles
  25. Download patch lcms2mt/m4/ax_append_compile_flags.m4

    --- 9.26~dfsg-2/lcms2mt/m4/ax_append_compile_flags.m4 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/m4/ax_append_compile_flags.m4 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,67 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_append_compile_flags.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_APPEND_COMPILE_FLAGS([FLAG1 FLAG2 ...], [FLAGS-VARIABLE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# For every FLAG1, FLAG2 it is checked whether the compiler works with the +# flag. If it does, the flag is added FLAGS-VARIABLE +# +# If FLAGS-VARIABLE is not specified, the current language's flags (e.g. +# CFLAGS) is used. During the check the flag is always added to the +# current language's flags. +# +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# +# NOTE: This macro depends on the AX_APPEND_FLAG and +# AX_CHECK_COMPILE_FLAG. Please keep this macro in sync with +# AX_APPEND_LINK_FLAGS. +# +# LICENSE +# +# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com> +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 5 + +AC_DEFUN([AX_APPEND_COMPILE_FLAGS], +[AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG]) +AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) +for flag in $1; do + AX_CHECK_COMPILE_FLAG([$flag], [AX_APPEND_FLAG([$flag], [$2])], [], [$3], [$4]) +done +])dnl AX_APPEND_COMPILE_FLAGS
  26. Download patch debian/control

    --- 9.26~dfsg-2/debian/control 2018-10-18 21:40:19.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/control 2018-09-06 18:21:03.000000000 +0000 @@ -1,57 +1,52 @@ Source: ghostscript Section: text Priority: optional -Maintainer: Debian Printing Team <debian-printing@lists.debian.org> -Build-Depends: +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Debian Printing Team <debian-printing@lists.debian.org> +Build-Depends: cdbs, autoconf, - cdbs, - d-shlibs, debhelper, - freeglut3-dev, - libcups2-dev, - libcupsimage2-dev, - libexpat-dev, - libfontconfig1-dev, - libfreetype6-dev, - libice-dev, - libidn11-dev, - libijs-dev, - libjbig2dec-dev, + dh-buildinfo, + d-shlibs, libjpeg-dev, - liblcms2-dev, - libopenjp2-7-dev, - libpaper-dev, libpng-dev, - libsm-dev, + libtrio-dev, libtiff-dev, - libx11-dev, - libxext-dev, - libxt-dev, libz-dev, - pkg-config, -Standards-Version: 4.2.1 -Uploaders: - Jonas Smedegaard <dr@jones.dk>, + libjbig2dec-dev, + libijs-dev, + libexpat-dev, + libxt-dev, + libxext-dev, + libx11-dev, + libice-dev, + libsm-dev, + libfreetype6-dev, + libfontconfig1-dev, + libcups2-dev, + libcupsimage2-dev, + libpaper-dev, + libidn11-dev, + freeglut3-dev, + pkg-config +Standards-Version: 4.2.0 +Uploaders: Jonas Smedegaard <dr@jones.dk>, Michael Gilbert <mgilbert@debian.org>, - Bastien ROUCARIÈS <roucaries.bastien+debian@gmail.com>, + Bastien ROUCARIÈS <roucaries.bastien+debian@gmail.com> Homepage: https://www.ghostscript.com/ Vcs-Git: https://salsa.debian.org/printing-team/ghostscript.git Vcs-Browser: https://salsa.debian.org/printing-team/ghostscript -Rules-Requires-Root: no Package: ghostscript Architecture: any Multi-Arch: foreign -Provides: - postscript-viewer, -Recommends: - gsfonts, -Suggests: - ghostscript-x, -Depends: +Provides: ${cdbs:Provides} +Recommends: ${cdbs:Recommends} +Suggests: ${cdbs:Suggests} +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, libgs9 (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, + ${misc:Depends} Description: interpreter for the PostScript language and for PDF GPL Ghostscript is used for PostScript/PDF preview and printing. Usually as a back-end to a program such as ghostview, it can display @@ -63,10 +58,9 @@ Description: interpreter for the PostScr Package: ghostscript-x Architecture: any -Depends: - ghostscript (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + ${misc:Depends} Description: interpreter for the PostScript language and for PDF - X11 support GPL Ghostscript is used for PostScript/PDF preview and printing. Usually as a back-end to a program such as ghostview, it can display @@ -77,12 +71,10 @@ Description: interpreter for the PostScr Package: ghostscript-doc Section: doc Architecture: all -Depends: - libjs-jquery, - ${misc:Depends}, - ${shlibs:Depends}, -Suggests: - ghostscript, +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + ${misc:Depends} +Suggests: ${cdbs:Suggests} Description: interpreter for the PostScript language and for PDF - Documentation GPL Ghostscript is used for PostScript/PDF preview and printing. Usually as a back-end to a program such as ghostview, it can display @@ -94,13 +86,11 @@ Description: interpreter for the PostScr Package: libgs9 Section: libs Architecture: any -Pre-Depends: - ${misc:Pre-Depends}, -Depends: - libgs9-common (= ${source:Version}), - poppler-data, +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, ${misc:Depends}, - ${shlibs:Depends}, + libgs9-common (= ${source:Version}) Multi-Arch: same Description: interpreter for the PostScript language and for PDF - Library GPL Ghostscript is used for PostScript/PDF preview and printing. @@ -113,10 +103,8 @@ Description: interpreter for the PostScr Package: libgs9-common Section: libs Architecture: all -Depends: - ${misc:Depends}, -Recommends: - fonts-droid-fallback, +Depends: ${misc:Depends} +Recommends: ${cdbs:Recommends} Multi-Arch: foreign Description: interpreter for the PostScript language and for PDF - common files GPL Ghostscript is used for PostScript/PDF preview and printing. @@ -134,10 +122,9 @@ Description: interpreter for the PostScr Package: libgs-dev Section: libdevel Architecture: any -Depends: - libgs9 (= ${binary:Version}), - ${devlibs:Depends}, - ${misc:Depends}, +Depends: ${devlibs:Depends}, + ${cdbs:Depends}, + ${misc:Depends} Multi-Arch: same Description: interpreter for the PostScript language and for PDF - Development Files GPL Ghostscript is used for PostScript/PDF preview and printing. @@ -151,10 +138,13 @@ Description: interpreter for the PostScr Package: ghostscript-dbg Architecture: any Section: debug -Depends: - libgs9 (= ${binary:Version}) | ghostscript (= ${binary:Version}) | ghostscript-x (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, +Priority: extra +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + libgs9 (= ${binary:Version}) | + ghostscript (= ${binary:Version}) | + ghostscript-x (= ${binary:Version}), + ${misc:Depends} Description: interpreter for the PostScript language and for PDF - Debug symbols GPL Ghostscript is used for PostScript/PDF preview and printing. Usually as a back-end to a program such as ghostview, it can display
  27. Download patch lcms2mt/Projects/mac/LittleCMS/Info.plist

    --- 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/Info.plist 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/Info.plist 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleExecutable</key> + <string>LittleCMS</string> + <key>CFBundleIconFile</key> + <string></string> + <key>CFBundleIdentifier</key> + <string>com.apple.carbonframeworktemplate</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleShortVersionString</key> + <string>2.7</string> + <key>CFBundleSignature</key> + <string>lcms</string> + <key>CFBundleVersion</key> + <string>2.7</string> + <key>CSResourcesFileMapped</key> + <true/> +</dict> +</plist>
  28. Download patch gpdl/psi/psitop.c

    --- 9.26~dfsg-2/gpdl/psi/psitop.c 2018-11-20 09:59:43.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/gpdl/psi/psitop.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,194 +0,0 @@ -/* Copyright (C) 2001-2018 Artifex Software, Inc. - All Rights Reserved. - - This software is provided AS-IS with no warranty, either express or - implied. - - This software is distributed under license and may not be copied, - modified or distributed except as expressly authorized under the terms - of the license contained in the file LICENSE in this distribution. - - Refer to licensing information at http://www.artifex.com or contact - Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, - CA 94945, U.S.A., +1(415)492-9861, for further information. -*/ - -/* psitop.c */ -/* Top-level API implementation of PS Language Interface */ - -#include "stdio_.h" -#include "ghost.h" -#include "imain.h" -#include "imainarg.h" -#include "iapi.h" -#include "string_.h" -#include "gdebug.h" -#include "gp.h" -#include "gserrors.h" -#include "gstypes.h" -#include "gsmemory.h" -#include "gsmalloc.h" -#include "gsstate.h" /* must precede gsdevice.h */ -#include "gxdevice.h" /* must precede gsdevice.h */ -#include "gsdevice.h" -#include "icstate.h" /* for i_ctx_t */ -#include "iminst.h" -#include "gsstruct.h" /* for gxalloc.h */ -#include "gspaint.h" -#include "gxalloc.h" -#include "gxstate.h" -#include "plparse.h" -#include "pltop.h" -#include "gzstate.h" -#include "gsicc_manage.h" - -/* Forward decls */ - -/************************************************************/ -/******** Language wrapper implementation (see pltop.h) *****/ -/************************************************************/ - -/* Import operator procedures */ -extern int zflush(i_ctx_t *); - -/* - * PS interpreter instance: derived from pl_interp_implementation_t - */ -typedef struct ps_interp_instance_s { - pl_interp_implementation_t pl; -} ps_interp_instance_t; - -/* Get implemtation's characteristics */ -static const pl_interp_characteristics_t * /* always returns a descriptor */ -ps_impl_characteristics( - const pl_interp_implementation_t *impl /* implementation of interpereter to alloc */ -) -{ - /* version and build date are not currently used */ -#define PSVERSION NULL -#define PSBUILDDATE NULL - static const pl_interp_characteristics_t ps_characteristics = { - "POSTSCRIPT", - /* NOTE - we don't look for %! because we want to recognize pdf as well */ - "%", - "Artifex", - PSVERSION, - PSBUILDDATE, - 1 /* minimum input size to PostScript */ - }; -#undef PSVERSION -#undef PSBUILDDATE - - return &ps_characteristics; -} - -/* Do per-instance interpreter allocation/init. */ -static int -ps_impl_allocate_interp_instance(pl_interp_implementation_t *impl, gs_memory_t *mem) -{ - ps_interp_instance_t *psi - = (ps_interp_instance_t *)gs_alloc_bytes( mem, - sizeof(ps_interp_instance_t), - "ps_impl_allocate_interp_instance"); - - int code; - - if (!psi) - return gs_error_VMerror; - - code = gsapi_new_instance(&impl->interp_client_data, NULL); - if (code < 0) - gs_free_object(mem, psi, "ps_impl_allocate_interp_instance"); - return code; -} - -/* Set a device into an interpreter instance */ -static int -ps_impl_set_device(pl_interp_implementation_t *impl, gx_device *device) -{ - /* Nothing to PS/PDF manages it's own device */ - return 0; -} - - -/* Prepare interp instance for the next "job" */ -static int -ps_impl_init_job(pl_interp_implementation_t *impl) -{ - return gsapi_init_with_args(impl->interp_client_data, 0, NULL); -} - -/* Not complete. */ -static int -ps_impl_process_file(pl_interp_implementation_t *impl, char *filename) -{ - /* NB incomplete */ - int exit_code; - return gsapi_run_file(impl->interp_client_data, filename, 0, &exit_code); -} - -/* Not implemented */ -static int -ps_impl_flush_to_eoj(pl_interp_implementation_t *impl, stream_cursor_read *cursor) -{ - return 0; -} - -/* Parser action for end-of-file */ -static int -ps_impl_process_eof(pl_interp_implementation_t *impl) -{ - return 0; -} - -/* Report any errors after running a job */ -static int -ps_impl_report_errors(pl_interp_implementation_t *impl, /* interp instance to wrap up job in */ - int code, /* prev termination status */ - long file_position, /* file position of error, -1 if unknown */ - bool force_to_cout /* force errors to cout */ -) -{ - return 0; -} - -/* Wrap up interp instance after a "job" */ -static int -ps_impl_dnit_job(pl_interp_implementation_t *impl) -{ - return 0; -} - -/* Remove a device from an interpreter instance */ -static int -ps_impl_remove_device(pl_interp_implementation_t *impl) -{ - return 0; -} - -/* Deallocate a interpreter instance */ -static int -ps_impl_deallocate_interp_instance(pl_interp_implementation_t *impl) -{ - - int code = gsapi_exit(impl->interp_client_data); - gsapi_delete_instance(impl->interp_client_data); - return code; -} - -/* Parser implementation descriptor */ -const pl_interp_implementation_t ps_implementation = { - ps_impl_characteristics, - ps_impl_allocate_interp_instance, - ps_impl_set_device, - ps_impl_init_job, - ps_impl_process_file, - NULL, /* process */ - ps_impl_flush_to_eoj, - ps_impl_process_eof, - ps_impl_report_errors, - ps_impl_dnit_job, - ps_impl_remove_device, - ps_impl_deallocate_interp_instance, - NULL -};
  29. Download patch debian/update-gsfontmap

    --- 9.26~dfsg-2/debian/update-gsfontmap 2018-11-04 16:09:07.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/update-gsfontmap 2018-02-23 20:04:45.000000000 +0000 @@ -8,15 +8,15 @@ FONTMAP=/var/lib/ghostscript/fonts/Fontm CIDFDIR=/etc/ghostscript/cidfmap.d/ FONTMDIR=/etc/ghostscript/fontmap.d/ -rm -f "$CIDFMAP" "$FONTMAP" -touch "$CIDFMAP" "$FONTMAP" +rm -f $CIDFMAP $FONTMAP +touch $CIDFMAP $FONTMAP -for i in "$CIDFDIR"/*.conf; do - cat "$i" >> "$CIDFMAP" +for i in $CIDFDIR/*.conf; do + cat $i >> $CIDFMAP done 2>/dev/null -for i in "$FONTMDIR"/*.conf; do - cat "$i" >> "$FONTMAP" +for i in $FONTMDIR/*.conf; do + cat $i >> $FONTMAP done 2>/dev/null exit 0
  30. Download patch debian/control.in

    --- 9.26~dfsg-2/debian/control.in 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/control.in 2019-05-07 15:28:11.000000000 +0000 @@ -0,0 +1,128 @@ +Source: ghostscript +Section: text +Priority: optional +Maintainer: Debian Printing Team <debian-printing@lists.debian.org> +Build-Depends: @cdbs@ +Standards-Version: 4.1.1 +Uploaders: Jonas Smedegaard <dr@jones.dk>, + Michael Gilbert <mgilbert@debian.org>, + Bastien ROUCARIÈS <roucaries.bastien+debian@gmail.com> +Homepage: https://www.ghostscript.com/ +Vcs-Git: https://anonscm.debian.org/git/printing/ghostscript.git +Vcs-Browser: https://anonscm.debian.org/git/printing/ghostscript.git + +Package: ghostscript +Architecture: any +Multi-Arch: foreign +Provides: ${cdbs:Provides} +Recommends: ${cdbs:Recommends} +Suggests: ${cdbs:Suggests} +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + libgs9 (= ${binary:Version}), + ${misc:Depends} +Description: interpreter for the PostScript language and for PDF + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + Furthermore, it can render PostScript and PDF files as graphics to be + printed on non-PostScript printers. Supported printers include common + dot-matrix, inkjet and laser models. + +Package: ghostscript-x +Architecture: any +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + ${misc:Depends} +Description: interpreter for the PostScript language and for PDF - X11 support + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + This package contains the GPL Ghostscript output device for X11. + +Package: ghostscript-doc +Section: doc +Architecture: all +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + ${misc:Depends} +Suggests: ${cdbs:Suggests} +Description: interpreter for the PostScript language and for PDF - Documentation + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + This package contains documentation for GPL Ghostscript, mainly + targeted developers and advanced users. + +Package: libgs9 +Section: libs +Architecture: any +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + ${misc:Depends}, + libgs9-common (= ${source:Version}) +Multi-Arch: same +Description: interpreter for the PostScript language and for PDF - Library + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + This package provides the Ghostscript library which makes the + facilities of GPL Ghostscript available to applications. + +Package: libgs9-common +Section: libs +Architecture: all +Depends: ${misc:Depends} +Recommends: ${cdbs:Recommends} +Multi-Arch: foreign +Description: interpreter for the PostScript language and for PDF - common files + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + This package provides common architecture-independent files needed by + the GPL Ghostscript library. + . + By default, GPL Ghostscript uses a font from the fonts-droid package to + approximate glyphs in PDFs for which the requested CJK TrueType font + is missing. If the fonts-droid package is not installed, these glyphs + will be rendered as bullets. + +Package: libgs-dev +Section: libdevel +Architecture: any +Depends: ${devlibs:Depends}, + ${cdbs:Depends}, + ${misc:Depends} +Multi-Arch: same +Description: interpreter for the PostScript language and for PDF - Development Files + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + This package provides the development files for the GPL Ghostscript + library which makes the facilities of GPL Ghostscript available to + applications. + +Package: ghostscript-dbg +Architecture: any +Section: debug +Priority: extra +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + libgs9 (= ${binary:Version}) | + ghostscript (= ${binary:Version}) | + ghostscript-x (= ${binary:Version}), + ${misc:Depends} +Description: interpreter for the PostScript language and for PDF - Debug symbols + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + This package contains the debugging symbols for ghostscript, + ghostscript-x, and libgs9.
  31. Download patch gpdl/pspcl6_msvc.mak
  32. Download patch lcms2mt/Projects/VC2010/lcms2mt_DLL/lcms2mt_DLL.vcxproj.filters

    --- 9.26~dfsg-2/lcms2mt/Projects/VC2010/lcms2mt_DLL/lcms2mt_DLL.vcxproj.filters 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/VC2010/lcms2mt_DLL/lcms2mt_DLL.vcxproj.filters 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> + </Filter> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\src\cmsalpha.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmscam02.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmscgats.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmscnvrt.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmserr.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsgamma.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsgmt.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsintrp.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsio0.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsio1.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmslut.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsmd5.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsmtrx.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsnamed.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsopt.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmspack.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmspcs.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsplugin.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsps2.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmssamp.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmssm.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmstypes.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsvirt.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmswtpnt.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmsxform.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\src\cmshalf.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\include\lcms2mt.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\lcms2mt_plugin.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\src\lcms2_internal.h"> + <Filter>Source Files</Filter> + </ClInclude> + <ClInclude Include="..\resource.h"> + <Filter>Resource Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="..\lcms2mt.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <CustomBuild Include="..\..\..\src\lcms2mt.def"> + <Filter>Source Files</Filter> + </CustomBuild> + </ItemGroup> +</Project> \ No newline at end of file
  33. Download patch lcms2mt/configure.ac
  34. Download patch lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/xcuserdata/User.xcuserdatad/WorkspaceSettings.xcsettings

    --- 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/xcuserdata/User.xcuserdatad/WorkspaceSettings.xcsettings 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/xcuserdata/User.xcuserdatad/WorkspaceSettings.xcsettings 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges</key> + <true/> + <key>SnapshotAutomaticallyBeforeSignificantChanges</key> + <true/> +</dict> +</plist>
  35. Download patch debian/libgs9-common.install.in

    --- 9.26~dfsg-2/debian/libgs9-common.install.in 2018-09-15 10:36:54.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/libgs9-common.install.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -# install subdir explicitly, to fail if wrong (same var used for symlink too) -usr/share/ghostscript/__ABI__/ -usr/share/color/icc/
  36. Download patch lcms2mt/Lib/MS/MS.TXT

    --- 9.26~dfsg-2/lcms2mt/Lib/MS/MS.TXT 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Lib/MS/MS.TXT 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1 @@ +MS \ No newline at end of file
  37. Download patch debian/patches/CVE-2019-3838-1.patch

    --- 9.26~dfsg-2/debian/patches/CVE-2019-3838-1.patch 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/CVE-2019-3838-1.patch 2019-03-19 12:23:02.000000000 +0000 @@ -0,0 +1,28 @@ +Backport of: + +From ed9fcd95bb01f0768bf273b2526732e381202319 Mon Sep 17 00:00:00 2001 +From: Chris Liddell <chris.liddell@artifex.com> +Date: Wed, 20 Feb 2019 09:54:28 +0000 +Subject: [PATCH] Bug 700576: Make a transient proc executeonly (in + DefineResource). + +This prevents access to .forceput + +Solution originally suggested by cbuissar@redhat.com. +--- + Resource/Init/gs_res.ps | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: ghostscript-9.26~dfsg+0/Resource/Init/gs_res.ps +=================================================================== +--- ghostscript-9.26~dfsg+0.orig/Resource/Init/gs_res.ps 2019-03-19 08:17:24.263041430 -0400 ++++ ghostscript-9.26~dfsg+0/Resource/Init/gs_res.ps 2019-03-19 08:17:24.259041442 -0400 +@@ -425,7 +425,7 @@ status { + % so we have to use .forcedef here. + /.Instances 1 index .forcedef % Category dict is read-only + } executeonly if +- } ++ } executeonly + { .LocalInstances dup //.emptydict eq + { pop 3 dict localinstancedict Category 2 index put + }
  38. Download patch lcms2mt/depcomp
  39. Download patch gpdl/pspcl6_gcc.mak

    --- 9.26~dfsg-2/gpdl/pspcl6_gcc.mak 2018-11-20 09:59:43.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/gpdl/pspcl6_gcc.mak 1970-01-01 00:00:00.000000000 +0000 @@ -1,106 +0,0 @@ -# Copyright (C) 2001-2018 Artifex Software, Inc. -# All Rights Reserved. -# -# This software is provided AS-IS with no warranty, either express or -# implied. -# -# This software is distributed under license and may not be copied, -# modified or distributed except as expressly authorized under the terms -# of the license contained in the file LICENSE in this distribution. -# -# Refer to licensing information at http://www.artifex.com or contact -# Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, -# CA 94945, U.S.A., +1(415)492-9861, for further information. -# - -# The "?=" style of this makefile is designed to facilitate "deriving" -# your own make file from it by setting your own custom options, then include'ing -# this file. In its current form, this file will compile using default options -# and locations. It is recommended that you make any modifications to settings -# in this file by creating your own makefile which includes this one. -# -# This file only defines the portions of the makefile that are different -# between the present language switcher vs. the standard pcl6 makefile which -# is included near the bottom. All other settings default to the base makefile. - -# Define the name of this makefile. -MAKEFILE+= ../language_switch/pspcl6_gcc.mak - -# The sources are taken from these directories: -MAINSRCDIR?=../main -GLSRCDIR?=../gs/base -PSSRCDIR?=../gs/psi -PSISRCDIR?=../psi -PSLIBDIR?=../gs/lib -# Path for including gs/Resource into romfs (replaces the gs default) : -PSRESDIR?=../gs/Resource - -# PLPLATFORM indicates should be set to 'ps' for language switch -# builds and null otherwise. -PLPLATFORM?=ps - -# If you want to build the individual packages in their own directories, -# you can define this here, although normally you won't need to do this: -PSGENDIR?=$(GENDIR) -PSOBJDIR?=$(GENDIR) -PSIGENDIR?=$(GENDIR) -PSIOBJDIR?=$(GENDIR) -JGENDIR?=$(GENDIR) -JOBJDIR?=$(GENDIR) -ZGENDIR?=$(GENDIR) -ZOBJDIR?=$(GENDIR) -PSD?=$(GENDIR)/ - -# Executable path\name w/o the .EXE extension -ifeq ("$(UNSUPPORTED)", "1") -TARGET_XE?=$(GENDIR)/pspcl6 -else -$(info ****** NOTE: The language_switch build is a proof of concept and therefore is unsupported.) -$(info ****** If you wish to try it, add UNSUPPORTED=1 to your make command line.) -$(error ) -endif - -# Main file's name -PSI_TOP_OBJ?=$(PSIOBJDIR)/psitop.$(OBJ) -PCL_TOP_OBJ?=$(PCLOBJDIR)/pctop.$(OBJ) -PXL_TOP_OBJ?=$(PXLOBJDIR)/pxtop.$(OBJ) - -TOP_OBJ=$(PSI_TOP_OBJ) $(PCL_TOP_OBJ) $(PXL_TOP_OBJ) - -# Choose COMPILE_INITS=1 for init files and fonts in ROM (otherwise =0) -COMPILE_INITS?=1 - -PSICFLAGS?=-DPSI_INCLUDED -PDL_INCLUDE_FLAGS?=-DPCL_INCLUDED $(PSICFLAGS) - -# Choose FT_BRIDGE=1 to use the freetype rasterizer -FT_BRIDGE?=1 -SHARE_FT?=0 -FTSRCDIR?=$(GLSRCDIR)/../freetype -FT_CFLAGS?=-I$(FTSRCDIR)/include -FT_LIBS?= - -DD=$(GLGENDIR)/ - -FEATURE_DEVS ?= \ - $(DD)psl3.dev \ - $(DD)pdf.dev \ - $(DD)dpsnext.dev \ - $(DD)htxlib.dev \ - $(DD)ttfont.dev \ - $(DD)pipe.dev \ - $(DD)gsnogc.dev - -# extra objects. -XOBJS?=$(GLOBJDIR)/gsargs.o $(GLOBJDIR)/gconfig.o \ - $(GLOBJDIR)/gscdefs.o $(GLOBJDIR)/iconfig.o - -ifeq ($(COMPILE_INITS), 1) -include $(PSSRCDIR)/psromfs.mak -endif - -# "Subclassed" makefile -include $(MAINSRCDIR)/pcl6_gcc.mak - -# Subsystems -include $(PSISRCDIR)/psi.mak
  40. Download patch gpdl/gpdl.mak

    --- 9.26~dfsg-2/gpdl/gpdl.mak 2018-11-20 09:59:43.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/gpdl/gpdl.mak 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -# Copyright (C) 2001-2018 Artifex Software, Inc. -# All Rights Reserved. -# -# This software is provided AS-IS with no warranty, either express or -# implied. -# -# This software is distributed under license and may not be copied, -# modified or distributed except as expressly authorized under the terms -# of the license contained in the file LICENSE in this distribution. -# -# Refer to licensing information at http://www.artifex.com or contact -# Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, -# CA 94945, U.S.A., +1(415)492-9861, for further information. - -# Define the name of this makefile. -GPDL_MAK=$(GPDLSRCDIR)$(D)gpdl.mak - -GPDLSRC=$(GPDLSRCDIR)$(D) -GPDLPSISRC=$(GPDLSRCDIR)$(D)psi$(D) - -GPDLOBJ=$(GPDLOBJDIR)$(D) -GPDLGEN=$(GPDLGENDIR)$(D) -GPDLO_=$(O_)$(GPDLOBJ) -GLGEN=$(GLGENDIR)$(D) - -GPDL_PSI_TOP_OBJ_FILE=psitop.$(OBJ) -GPDL_PSI_TOP_OBJ=$(GPDLOBJ)/$(GPDL_PSI_TOP_OBJ_FILE) - -GPDL_PSI_TOP_OBJS=$(GPDL_PSI_TOP_OBJ) $(GPDLOBJ)gpdlimpl.$(OBJ) - -LANG_CFLAGS=$(D_)PCL_INCLUDED$(_D) $(D_)PSI_INCLUDED$(_D) $(D_)XPS_INCLUDED$(_D) - -GPDLCC=$(CC_) $(LANG_CFLAGS) $(I_)$(PSSRCDIR)$(_I) $(I_)$(PLSRCDIR)$(_I) $(I_)$(GLSRCDIR)$(_I) $(I_)$(DEVSRCDIR)$(_I) $(I_)$(GLGENDIR)$(_I) $(C_) - -$(GPDLGEN)gpdlimpl.c: $(PLSRC)plimpl.c $(MAKEDIRS) - $(CP_) $(PLSRC)plimpl.c $(GPDLGEN)gpdlimpl.c - -$(GPDLOBJ)gpdlimpl.$(OBJ): $(GPDLGEN)gpdlimpl.c \ - $(AK) \ - $(memory__h) \ - $(scommon_h) \ - $(gxdevice_h) \ - $(pltop_h) - $(GPDLCC) $(GPDLGEN)gpdlimpl.c $(GPDLO_)gpdlimpl.$(OBJ) - - -$(GPDL_PSI_TOP_OBJ): $(GPDLPSISRC)psitop.c $(AK) $(stdio__h)\ - $(string__h) $(gdebug_h) $(gp_h) $(gsdevice_h) $(gserrors_h) $(gsmemory_h)\ - $(gsstate_h) $(gsstruct_h) $(gspaint_h) $(gstypes_h) $(gxalloc_h) $(gxstate_h)\ - $(gsnogc_h) $(pltop_h) $(psitop_h) $(plparse_h) $(gsicc_manage_h)\ - $(plfont_h) $(uconfig_h) - $(GPDLCC) $(GPDLPSISRC)psitop.c $(GPDLO_)$(GPDL_PSI_TOP_OBJ_FILE)
  41. Download patch lcms2mt/include/Makefile.am

    --- 9.26~dfsg-2/lcms2mt/include/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/include/Makefile.am 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,7 @@ +# +# Makefile for include directory +# Based on a work by Bob Friesenhahn + +include_HEADERS = lcms2mt.h lcms2mt_plugin.h + +EXTRA_DIST = lcms2mt.h lcms2mt_plugin.h
  42. Download patch debian/patches/020181126-96c381c-ps2write-move-the-page-level-save-restore-wrapper.patch

    --- 9.26~dfsg-2/debian/patches/020181126-96c381c-ps2write-move-the-page-level-save-restore-wrapper.patch 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/020181126-96c381c-ps2write-move-the-page-level-save-restore-wrapper.patch 2018-11-29 21:44:28.000000000 +0000 @@ -0,0 +1,39 @@ +Description: ps2write - move the page level save/restore wrapper +Author: Ken Sharp <ken.sharp@artifex.com> +Last-Update: 2018-11-26 +Bug: https://bugs.ghostscript.com/show_bug.cgi?id=700232 + +--- a/devices/vector/gdevpdf.c ++++ b/devices/vector/gdevpdf.c +@@ -2907,12 +2907,10 @@ + pdf_write_page(pdev, pagecount++); + + stream_puts(pdev->strm, "%%EndPageSetup\n"); +- stream_puts(pdev->strm, "/pagesave save def\n"); + pprintld1(pdev->strm, "%ld 0 obj\n", pres->object->id); + code = cos_write(pres->object, pdev, pres->object->id); + stream_puts(pdev->strm, "endobj\n"); + pres->object->written = true; +- stream_puts(pdev->strm, "pagesave restore\n%%PageTrailer\n"); + } + } + code1 = pdf_free_resource_objects(pdev, resourcePage); +--- a/devices/vector/opdfread.ps ++++ b/devices/vector/opdfread.ps +@@ -748,6 +748,7 @@ + } repeat + } if + EPS2Write not {showpage} if ++ pagesave restore + } if + } bind def + +@@ -999,6 +1000,8 @@ + dup /ImmediateExec true put + dup /IsPage true put + SetPageSize {dup /Context get //SetupPageView exec} if ++ % This gets restored at the end of ExecuteStream if IsPage is true. ++ /pagesave save def + } bind def + + /FontFileDaemon % <id> <obj> <font_descriptor> FontFileDaemon <id> <obj>
  43. Download patch lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/xcschememanagement.plist

    --- 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/xcschememanagement.plist 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/xcschememanagement.plist 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>LittleCMS.xcscheme</key> + <dict> + <key>orderHint</key> + <integer>0</integer> + </dict> + <key>testbed.xcscheme</key> + <dict> + <key>orderHint</key> + <integer>1</integer> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict> + <key>546B29A210AC677E0054D33A</key> + <dict> + <key>primary</key> + <true/> + </dict> + <key>54E17D5819BF669300040CD3</key> + <dict> + <key>primary</key> + <true/> + </dict> + <key>8D07F2BC0486CC7A007CD1D0</key> + <dict> + <key>primary</key> + <true/> + </dict> + </dict> +</dict> +</plist>
  44. Download patch lcms2mt/include/lcms2mt_plugin.h
  45. Download patch debian/patches/CVE-2019-3838-2.patch

    --- 9.26~dfsg-2/debian/patches/CVE-2019-3838-2.patch 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/CVE-2019-3838-2.patch 2019-03-19 12:17:33.000000000 +0000 @@ -0,0 +1,23 @@ +From a82601e8f95a2f2147f3b3b9e44ec2b8f3a6be8b Mon Sep 17 00:00:00 2001 +From: Chris Liddell <chris.liddell@artifex.com> +Date: Fri, 22 Feb 2019 12:28:23 +0000 +Subject: [PATCH] Bug 700576(redux): an extra transient proc needs + executeonly'ed. + +--- + Resource/Init/gs_res.ps | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: ghostscript-9.26~dfsg+0/Resource/Init/gs_res.ps +=================================================================== +--- ghostscript-9.26~dfsg+0.orig/Resource/Init/gs_res.ps 2019-03-19 08:17:30.951021039 -0400 ++++ ghostscript-9.26~dfsg+0/Resource/Init/gs_res.ps 2019-03-19 08:17:30.947021052 -0400 +@@ -437,7 +437,7 @@ status { + % Now make the resource value read-only. + 0 2 copy get { readonly } .internalstopped pop + dup 4 1 roll put exch pop exch pop +- } ++ } executeonly + { /defineresource cvx /typecheck signaloperror + } + ifelse
  46. Download patch debian/patches/2011_avoid_remote_font.patch
  47. Download patch gpdl/psi/gpdlpsi.mak

    --- 9.26~dfsg-2/gpdl/psi/gpdlpsi.mak 2018-11-20 09:59:43.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/gpdl/psi/gpdlpsi.mak 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -# Copyright (C) 2001-2018 Artifex Software, Inc. -# All Rights Reserved. -# -# This software is provided AS-IS with no warranty, either express or -# implied. -# -# This software is distributed under license and may not be copied, -# modified or distributed except as expressly authorized under the terms -# of the license contained in the file LICENSE in this distribution. -# -# Refer to licensing information at http://www.artifex.com or contact -# Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, -# CA 94945, U.S.A., +1(415)492-9861, for further information. -# - -# makefile for PS Interface (PSI) to Ghostscript PostScript. -# Users of this makefile must define the following: -# PSSRCDIR - the PS interpreter source directory -# GLSRCDIR - the GS library source directory -# GLGENDIR - the GS library generated file directory -# PLSRCDIR - the PCL* support library source directory -# PLOBJDIR - the PCL* support library object / executable directory -# PSISRCDIR - the source directory -# PSIGENDIR - the directory for source files generated during building -# PSIOBJDIR - the object / executable directory -# PSI_TOP_OBJ - object file to top-level interpreter API - -PLOBJ=$(PLOBJDIR)$(D) - -PSISRC=$(PSISRCDIR)$(D) -PSIGEN=$(PSIGENDIR)$(D) -PSIOBJ=$(PSIOBJDIR)$(D) -PSIO_=$(O_)$(PSIOBJ) - -PSICCC=$(CC_) $(I_)$(PSISRCDIR)$(_I) $(I_)$(PSIGENDIR)$(_I) $(I_)$(PLSRCDIR)$(_I) $(I_)$(PSSRCDIR)$(_I) $(I_)$(GLSRCDIR)$(_I) $(I_)$(GLGENDIR)$(_I) $(C_) - -# Define the name of this makefile. -PSI_MAK=$(PSISRC)psi.mak - -psi.clean: psi.config-clean psi.clean-not-config-clean - -psi.clean-not-config-clean: clean_gs - $(RM_) $(PSIOBJ)*.$(OBJ) - $(RM_) $(PSIOBJ)devs.tr6 - -# devices are still created in the current directory. Until that -# is fixed we will have to remove them from both directories. -psi.config-clean: - $(RM_) $(PSIOBJ)*.dev - $(RM_) *.dev - -################ PS Language Interface ################ - -# Top-level API -$(PSI_TOP_OBJ): $(PSISRC)psitop.c $(AK) $(stdio__h)\ - $(string__h) $(gdebug_h) $(gp_h) $(gsdevice_h) $(gserrors_h) $(gsmemory_h)\ - $(gsstate_h) $(gsstruct_h) $(gspaint_h) $(gstypes_h) $(gxalloc_h) $(gxstate_h)\ - $(gsnogc_h) $(pltop_h) $(psitop_h) $(plparse_h) $(gsicc_manage_h)\ - $(PSIGEN)pconf.h $(plfont_h) $(uconfig_h) $(pconfig_h) - $(PSICCC) $(PSISRC)psitop.c $(O_)$(PSI_TOP_OBJ) - -$(PSIOBJ)psi.dev: $(PSI_MAK) $(ECHOGS_XE) $(PLOBJ)pjl.dev - $(SETMOD) $(PSIOBJ)psi $(PSI_TOP_OBJ) - $(ADDMOD) $(PSIOBJ)psi -include $(PLOBJ)pl $(PLOBJ)pjl -
  48. Download patch debian/patches/020181126~96c381c.patch

    --- 9.26~dfsg-2/debian/patches/020181126~96c381c.patch 2018-12-22 13:36:09.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/020181126~96c381c.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ -Description: ps2write - move the page level save/restore wrapper - Commit 0f6067d2531298060392d0e25fa759d320e03021 for bug #697245 - removed a duplicate definition of pagesave, - because it transpires that Adobe interpreters don't free save objects - when they are no longer referenced. - Previously we had defined /pagesave in both the page content stream, - and the code for altering page size. - . - The problem is that we alter media size - as part of processing the 'stream' keyword, - which is after we have defined /pagesave. - Previously we would then have redefined it - if we needed to alter the media size. - . - When we got to the end of the page (after the showpage) - we would then restore the save object. - Because we had defined the save object - after we had altered the media size - the media would remain unchanged. - With the commit above, however, - the media size would be restored back to the original. - . - When we process page 2, - the media size would then need to he altered again, - requiring a setpagedevice to be executed. - The action of setpagedevice, when Duplex is true, - is to eject any unpaired pages and start again with the first side. - . - Thus Duplex was working entirely correctly, simply not as desired. - . - This commit moves the pagesave and restore - into the 'stream' and 'endstream' processing, - so that is taken care of after any media size changes. -Origin: upstream, http://git.ghostscript.com/?p=ghostpdl.git;h=96c381c -Author: Ken Sharp <ken.sharp@artifex.com> -Forwarded: yes -Bug: http://bugs.ghostscript.com/show_bug.cgi?id=700232 -Bug-Debian: https://bugs.debian.org/915832 -Last-Update: 2018-12-22 ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ ---- a/devices/vector/gdevpdf.c -+++ b/devices/vector/gdevpdf.c -@@ -2903,12 +2903,10 @@ - pdf_write_page(pdev, pagecount++); - - stream_puts(pdev->strm, "%%EndPageSetup\n"); -- stream_puts(pdev->strm, "/pagesave save def\n"); - pprintld1(pdev->strm, "%ld 0 obj\n", pres->object->id); - code = cos_write(pres->object, pdev, pres->object->id); - stream_puts(pdev->strm, "endobj\n"); - pres->object->written = true; -- stream_puts(pdev->strm, "pagesave restore\n%%PageTrailer\n"); - } - } - code1 = pdf_free_resource_objects(pdev, resourcePage); ---- a/devices/vector/opdfread.ps -+++ b/devices/vector/opdfread.ps -@@ -748,6 +748,7 @@ - } repeat - } if - EPS2Write not {showpage} if -+ pagesave restore - } if - } bind def - -@@ -999,6 +1000,8 @@ - dup /ImmediateExec true put - dup /IsPage true put - SetPageSize {dup /Context get //SetupPageView exec} if -+ % This gets restored at the end of ExecuteStream if IsPage is true. -+ /pagesave save def - } bind def - - /FontFileDaemon % <id> <obj> <font_descriptor> FontFileDaemon <id> <obj>
  49. Download patch lcms2mt/lcms2mt.pc.in

    --- 9.26~dfsg-2/lcms2mt/lcms2mt.pc.in 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/lcms2mt.pc.in 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: @PACKAGE@ +Description: LCMS Color Management Library +Version: @VERSION@ +Libs: -L${libdir} -llcms2 +Libs.private: @LIB_MATH@ @LIB_THREAD@ +Cflags: -I${includedir}
  50. Download patch debian/patches/2009_use_system_javascript.patch
  51. Download patch debian/libgs__VER__-common.dirs.in

    --- 9.26~dfsg-2/debian/libgs__VER__-common.dirs.in 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/libgs__VER__-common.dirs.in 2018-02-23 20:04:45.000000000 +0000 @@ -0,0 +1,2 @@ +# used only in ghostscript package, but linked from symlink shipped with library +var/lib/ghostscript/CMap
  52. Download patch lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/mariama.pbxuser
  53. Download patch lcms2mt/ChangeLog
  54. Download patch lcms2mt/include/Makefile.in
  55. Download patch lcms2mt/m4/ltsugar.m4

    --- 9.26~dfsg-2/lcms2mt/m4/ltsugar.m4 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/m4/ltsugar.m4 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,123 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +])
  56. Download patch debian/patches/lp1815339-2.patch

    --- 9.26~dfsg-2/debian/patches/lp1815339-2.patch 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/lp1815339-2.patch 2019-02-25 14:29:41.000000000 +0000 @@ -0,0 +1,38 @@ +From 1bc4205dca71ca075af6ca95aa53a33f5a724586 Mon Sep 17 00:00:00 2001 +From: Michael Vrhel <michael.vrhel@artifex.com> +Date: Fri, 22 Feb 2019 13:43:15 -0800 +Subject: [PATCH] Bug 700584 Cups device + +The RGBW color space needs to have the white value mapped properly during the encode process. +--- + cups/gdevcups.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/cups/gdevcups.c b/cups/gdevcups.c +index 52d93d1..f08a215 100644 +--- a/cups/gdevcups.c ++++ b/cups/gdevcups.c +@@ -667,6 +667,20 @@ cups_encode_color(gx_device *pdev, + ci = 0x06; /* == light cyan + yellow */ + } + ++ /* The entire manner that cups does its color mapping needs some serious ++ rework. In the case of the output RGBW color space, it takes a source ++ CMYK value which gs maps to RGB, cups then maps the RGB to CMYK and then ++ from there to RGBW and finally it does an encode. Unfortunately, the ++ number of color values for RGBW is 3 since it is using an RGB ICC profile ++ this means that the W mapping value from cups is lost in cmap_rgb_direct ++ So here we ensure that the W is always set to on (else we end up with a ++ blue background cast). The ideal way ++ to fix this is to move some of these odd color spaces of cups to the ++ separation device model ensuring that things are handled properly. */ ++ if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) { ++ ci = (ci << shift) | cups->EncodeLUT[gx_max_color_value]; ++ } ++ + /* + * Range check the return value... + */ +-- +2.9.1 +
  57. Download patch debian/ghostscript-doc.links
  58. Download patch lcms2mt/Projects/BorlandC_5.5/lcms2.rc

    --- 9.26~dfsg-2/lcms2mt/Projects/BorlandC_5.5/lcms2.rc 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/BorlandC_5.5/lcms2.rc 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,30 @@ + + +1 VERSIONINFO +FILEVERSION 2, 8, 0, 0 +PRODUCTVERSION 2, 8, 0, 0 +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_DLL +{ + BLOCK "StringFileInfo" + { + BLOCK "040904E4" + { + VALUE "CompanyName", "Marti Maria\000\000" + VALUE "FileDescription", "lcms color engine\000" + VALUE "FileVersion", "2.08\000\000" + VALUE "InternalName", "lcms2\000" + VALUE "LegalCopyright", "Copyright Marti Maria 2015\000\000" + VALUE "OriginalFilename", "lcms2.dll\000" + } + + } + + BLOCK "VarFileInfo" + { + VALUE "Translation", 0x409, 1252 + } + +} + +
  59. Download patch lcms2mt/m4/libtool.m4
  60. Download patch debian/patches/series

    --- 9.26~dfsg-2/debian/patches/series 2018-12-22 13:36:05.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/series 2019-05-07 15:27:53.000000000 +0000 @@ -1,5 +1,3 @@ -020181126~96c381c.patch -020181204~fae21f1.patch 2001_docdir_fix_for_debian.patch 2002_gs_man_fix_debian.patch 2003_support_multiarch.patch @@ -8,7 +6,17 @@ 2006_suggest_install_ghostscript-doc_in_docs.patch 2007_suggest_install_ghostscript-doc_in_code.patch 2008_mention_ghostscript-x_in_docs.patch -2009_use_system_javascript.patch 2010_add_build_timestamp_setting.patch -2011_avoid_remote_font.patch -2012_avoid_googletagmanager.patch +020181126-96c381c-ps2write-move-the-page-level-save-restore-wrapper.patch +020181205-fae21f16-subclassing-devices-fix-put-image-method.patch +CVE-2019-6116.patch +lp1815339.patch +lp1815339-2.patch +CVE-2019-3835-pre1.patch +CVE-2019-3835-pre2.patch +CVE-2019-3835-1.patch +CVE-2019-3835-2.patch +CVE-2019-3838-1.patch +CVE-2019-3838-2.patch +CVE-2019-3839-1.patch +CVE-2019-3839-2.patch
  61. Download patch debian/patches/020181205-fae21f16-subclassing-devices-fix-put-image-method.patch

    --- 9.26~dfsg-2/debian/patches/020181205-fae21f16-subclassing-devices-fix-put-image-method.patch 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/020181205-fae21f16-subclassing-devices-fix-put-image-method.patch 2018-12-05 15:43:40.000000000 +0000 @@ -0,0 +1,20 @@ +Description: subclassing devices - fix put_image method +Author: Ken Sharp <ken.sharp@artifex.com> +Last-Update: 2018-12-04 +Bug: https://bugs.ghostscript.com/show_bug.cgi?id=700315 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1806517 + +--- a/base/gdevsclass.c ++++ b/base/gdevsclass.c +@@ -797,7 +797,10 @@ + int alpha_plane_index, int tag_plane_index) + { + if (dev->child) +- return dev_proc(dev->child, put_image)(dev->child, mdev, buffers, num_chan, x, y, width, height, row_stride, alpha_plane_index, tag_plane_index); ++ if (dev == mdev) ++ return dev_proc(dev->child, put_image)(dev->child, dev->child, buffers, num_chan, x, y, width, height, row_stride, alpha_plane_index, tag_plane_index); ++ else ++ return dev_proc(dev->child, put_image)(dev->child, mdev, buffers, num_chan, x, y, width, height, row_stride, alpha_plane_index, tag_plane_index); + + return 0; + }
  62. Download patch lcms2mt/config.sub
  63. Download patch debian/patches/020181204~fae21f1.patch

    --- 9.26~dfsg-2/debian/patches/020181204~fae21f1.patch 2018-12-22 13:36:10.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/020181204~fae21f1.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -Description: subclassing devices - fix put_image method - The subclassing devices need to change the 'memory device' parameter - to be the child device, - when its the same as the subclassing device. - . - Otherwise we end up trying to access the child device's memory pointers - in the subclassing device, - which may not contain valid copies of those pointers. -Origin: upstream, http://git.ghostscript.com/?p=ghostpdl.git;h=fae21f1 -Author: Ken Sharp <ken.sharp@artifex.com> -Forwarded: yes -Bug: http://bugs.ghostscript.com/show_bug.cgi?id=700315 -Bug-Debian: https://bugs.debian.org/915832 -Last-Update: 2018-12-22 ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ ---- a/base/gdevsclass.c -+++ b/base/gdevsclass.c -@@ -797,7 +797,10 @@ - int alpha_plane_index, int tag_plane_index) - { - if (dev->child) -- return dev_proc(dev->child, put_image)(dev->child, mdev, buffers, num_chan, x, y, width, height, row_stride, alpha_plane_index, tag_plane_index); -+ if (dev == mdev) -+ return dev_proc(dev->child, put_image)(dev->child, dev->child, buffers, num_chan, x, y, width, height, row_stride, alpha_plane_index, tag_plane_index); -+ else -+ return dev_proc(dev->child, put_image)(dev->child, mdev, buffers, num_chan, x, y, width, height, row_stride, alpha_plane_index, tag_plane_index); - - return 0; - }
  64. Download patch lcms2mt/Projects/VC2010/lcms2mt_DLL/lcms2mt_DLL.vcxproj
  65. Download patch debian/libgs__VER__-common.install.in

    --- 9.26~dfsg-2/debian/libgs__VER__-common.install.in 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/libgs__VER__-common.install.in 2018-02-23 20:04:45.000000000 +0000 @@ -0,0 +1,3 @@ +# install subdir explicitly, to fail if wrong (same var used for symlink too) +usr/share/ghostscript/__ABI__/ +usr/share/color/icc/
  66. Download patch lcms2mt/m4/ax_check_compile_flag.m4

    --- 9.26~dfsg-2/lcms2mt/m4/ax_check_compile_flag.m4 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/m4/ax_check_compile_flag.m4 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,74 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the current language's compiler +# or gives an error. (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de> +# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com> +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 4 + +AC_DEFUN([AX_CHECK_COMPILE_FLAG], +[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl +AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ + ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS + _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" + AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) +AS_VAR_IF(CACHEVAR,yes, + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_COMPILE_FLAGS
  67. Download patch lcms2mt/Projects/cppcheck/lcms2.cppcheck

    --- 9.26~dfsg-2/lcms2mt/Projects/cppcheck/lcms2.cppcheck 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/cppcheck/lcms2.cppcheck 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="1"> + <includedir> + <dir name="../../include/"/> + </includedir> + <paths> + <dir name="../../src"/> + </paths> +</project>
  68. Download patch debian/patches/lp1815339.patch

    --- 9.26~dfsg-2/debian/patches/lp1815339.patch 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/lp1815339.patch 2019-02-20 09:37:12.000000000 +0000 @@ -0,0 +1,68 @@ +From ba2043a548559d184cbfe90ca9884734dba6efdc Mon Sep 17 00:00:00 2001 +From: Michael Vrhel <michael.vrhel@artifex.com> +Date: Wed, 13 Feb 2019 12:01:54 -0800 +Subject: [PATCH] Bug 700584: cups device + +The cups device has a pile of different color spaces. It is up to the cups device to +ensure that the color is handled properly for these. RGBA should certainly be treated +as a 32 3 component color similar to our pngalpha device. RGBW will be treated the same way. + +Note that I looked at the output using Mike Sweet's rasterview program. I suspect there +probably is some work that needs to be done on that viewer to ensure proper viewing of +this type of data. With this patch gs is doing all it can. +--- + cups/gdevcups.c | 24 +++++++++++++++--------- + 1 file changed, 15 insertions(+), 9 deletions(-) + +diff --git a/cups/gdevcups.c b/cups/gdevcups.c +index bd699fc..52d93d1 100644 +--- a/cups/gdevcups.c ++++ b/cups/gdevcups.c +@@ -4147,6 +4147,18 @@ cups_set_color_info(gx_device *pdev) /* I - Device info */ + + case CUPS_CSPACE_RGBA : + case CUPS_CSPACE_RGBW : ++#ifdef CUPS_RASTER_SYNCv1 ++ cups->header.cupsNumColors = 4; ++#endif /* CUPS_RASTER_SYNCv1 */ ++ if (cups->header.cupsColorOrder != CUPS_ORDER_CHUNKED) ++ cups->header.cupsBitsPerPixel = cups->header.cupsBitsPerColor; ++ else ++ cups->header.cupsBitsPerPixel = 4 * cups->header.cupsBitsPerColor; ++ ++ cups->color_info.depth = 4 * cups->header.cupsBitsPerColor; ++ cups->color_info.num_components = 3; ++ break; ++ + case CUPS_CSPACE_CMYK : + case CUPS_CSPACE_YMCK : + case CUPS_CSPACE_KCMY : +@@ -4156,9 +4168,9 @@ cups_set_color_info(gx_device *pdev) /* I - Device info */ + cups->header.cupsNumColors = 4; + #endif /* CUPS_RASTER_SYNCv1 */ + if (cups->header.cupsColorOrder != CUPS_ORDER_CHUNKED) +- cups->header.cupsBitsPerPixel = cups->header.cupsBitsPerColor; +- else +- cups->header.cupsBitsPerPixel = 4 * cups->header.cupsBitsPerColor; ++ cups->header.cupsBitsPerPixel = cups->header.cupsBitsPerColor; ++ else ++ cups->header.cupsBitsPerPixel = 4 * cups->header.cupsBitsPerColor; + + cups->color_info.depth = 4 * cups->header.cupsBitsPerColor; + cups->color_info.num_components = 4; +@@ -5916,12 +5928,6 @@ cups_print_planar(gx_device_printer *pdev, + 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); + } + +-- +2.9.1 +
  69. Download patch debian/patches/CVE-2019-3835-pre1.patch

    --- 9.26~dfsg-2/debian/patches/CVE-2019-3835-pre1.patch 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/CVE-2019-3835-pre1.patch 2019-03-19 12:07:38.000000000 +0000 @@ -0,0 +1,91 @@ +From 779664d79f0dca77dbdd66b753679bfd12dcbbad Mon Sep 17 00:00:00 2001 +From: Chris Liddell <chris.liddell@artifex.com> +Date: Mon, 26 Nov 2018 18:01:25 +0000 +Subject: [PATCH] Have gs_cet.ps run from gs_init.ps + +Previously gs_cet.ps was run on the command line, to set up the interpreter +state so our output more closely matches the example output for the QL CET +tests. + +Allow a -dCETMODE command line switch, which will cause gs_init.ps to run the +file directly. + +This works better for gpdl as it means the changes are made in the intial +interpreter state, rather than after initialisation is complete. + +This also means adding a definition of the default procedure for black +generation and under color removal (rather it being defined in-line in +.setdefaultbgucr + +Also, add a check so gs_cet.ps only runs once - if we try to run it a second +time, we'll just skip over the file, flushing through to the end. +--- + Resource/Init/gs_cet.ps | 11 ++++++++++- + Resource/Init/gs_init.ps | 13 ++++++++++++- + 2 files changed, 22 insertions(+), 2 deletions(-) + +Index: ghostscript-9.26~dfsg+0/Resource/Init/gs_cet.ps +=================================================================== +--- ghostscript-9.26~dfsg+0.orig/Resource/Init/gs_cet.ps 2019-03-19 08:07:35.905477321 -0400 ++++ ghostscript-9.26~dfsg+0/Resource/Init/gs_cet.ps 2019-03-19 08:07:35.905477321 -0400 +@@ -1,6 +1,11 @@ + %!PS + % Set defaults for Ghostscript to match Adobe CPSI behaviour for CET + ++systemdict /product get (PhotoPRINT SE 5.0v2) readonly eq ++{ ++ (%END GS_CET) .skipeof ++} if ++ + % do this in the server level so it is persistent across jobs + //true 0 startjob not { + (*** Warning: CET startup is not in server default) = flush +@@ -25,7 +30,9 @@ currentglobal //true setglobal + + /UNROLLFORMS true def + +-{ } bind dup ++(%.defaultbgrucrproc) cvn { } bind def ++ ++(%.defaultbgrucrproc) cvn load dup + setblackgeneration + setundercolorremoval + 0 array cvx readonly dup dup dup setcolortransfer +@@ -109,3 +116,5 @@ userdict /.smoothness currentsmoothness + % end of slightly nasty hack to give consistent cluster results + + //false 0 startjob pop % re-enter encapsulated mode ++ ++%END GS_CET +Index: ghostscript-9.26~dfsg+0/Resource/Init/gs_init.ps +=================================================================== +--- ghostscript-9.26~dfsg+0.orig/Resource/Init/gs_init.ps 2019-03-19 08:07:35.905477321 -0400 ++++ ghostscript-9.26~dfsg+0/Resource/Init/gs_init.ps 2019-03-19 08:07:35.905477321 -0400 +@@ -1544,10 +1544,18 @@ setpacking + % any-part-of-pixel rule. + 0.5 .setfilladjust + } bind def ++ + % Set the default screen and BG/UCR. ++% We define the proc here, rather than inline in .setdefaultbgucr ++% for the benefit of gs_cet.ps so jobs that do anything that causes ++% .setdefaultbgucr to be called will still get the redefined proc ++% in gs_cet.ps ++(%.defaultbgrucrproc) cvn { pop 0 } def ++ + /.setdefaultbgucr { + systemdict /setblackgeneration known { +- { pop 0 } dup setblackgeneration setundercolorremoval ++ (%.defaultbgrucrproc) cvn load dup ++ setblackgeneration setundercolorremoval + } if + } bind def + /.useloresscreen { % - .useloresscreen <bool> +@@ -2499,4 +2507,7 @@ WRITESYSTEMDICT { + % be 'true' in some cases. + userdict /AGM_preserve_spots //false put + ++systemdict /CETMODE .knownget ++{ { (gs_cet.ps) runlibfile } if } if ++ + % The interpreter will run the initial procedure (start).
  70. Download patch lcms2mt/Projects/mac/LittleCMS/LittleCMS_Prefix.pch

    --- 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/LittleCMS_Prefix.pch 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/LittleCMS_Prefix.pch 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,5 @@ +// +// Prefix header for all source files of the 'LittleCMS' target in the 'LittleCMS' project. +// + +#include <Carbon/Carbon.h> Binary files 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/._LittleCMS.xcodeproj and 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/._LittleCMS.xcodeproj differ
  71. Download patch lcms2mt/m4/acx_pthread.m4
  72. Download patch lcms2mt/install-sh
  73. Download patch lcms2mt/Makefile.am

    --- 9.26~dfsg-2/lcms2mt/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Makefile.am 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,55 @@ +# +# Top-Level Makefile for building LittleCMS 2 +# + +# Don't require all the GNU mandated files +AUTOMAKE_OPTIONS = 1.7.2 dist-zip foreign + +ACLOCAL_AMFLAGS = -I m4 + +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ + +# Directories containing Makefiles to 'make' +SUBDIRS = src include utils/tificc utils/transicc utils/linkicc utils/jpgicc utils/psicc testbed + +# Additional files to distribute +EXTRA_DIST = AUTHORS COPYING ChangeLog doc Projects include bin Lib INSTALL README.1ST autogen.sh lcms2.pc.in + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = lcms2.pc + +# Get names of plug-ins in the source package +PLUGIN_DIRECTORIES = $(sort $(dir $(wildcard plugins/*/))) + +# Make sure get rid of VC stuff... +clean-local: + find Projects -name "*.user" | xargs rm -rf + find Projects -name "Release" | xargs rm -rf + find Projects -name "Debug" | xargs rm -rf + find Projects -name "*.aps" | xargs rm -rf + find Projects -name "*.suo" | xargs rm -rf + find Projects -name "*.log" | xargs rm -rf + find Projects -name "*.sdf" | xargs rm -rf + find Projects -name "*.opensdf" | xargs rm -rf + find Projects -name "*.log" | xargs rm -rf + find Projects -name "ipch" | xargs rm -rf + @for d in $(PLUGIN_DIRECTORIES); do (cd $$d; $(MAKE) clean ); done + +# Handle plug-ins +all-local: + @for d in $(PLUGIN_DIRECTORIES); do (cd $$d; $(MAKE) $(AM_MAKEFLAGS) all ); done + +check-local: + @for d in $(PLUGIN_DIRECTORIES); do (cd $$d; $(MAKE) $(AM_MAKEFLAGS) check ); done + +install-exec-local: + @for d in $(PLUGIN_DIRECTORIES); do (cd $$d; $(MAKE) $(AM_MAKEFLAGS) install-exec ); done + +uninstall-local: + @for d in $(PLUGIN_DIRECTORIES); do (cd $$d; $(MAKE) $(AM_MAKEFLAGS) uninstall ); done + + + + +
  74. Download patch lcms2mt/autogen.sh

    --- 9.26~dfsg-2/lcms2mt/autogen.sh 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/autogen.sh 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,93 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +DIE=0 +ACLOCAL_FLAGS="-I m4" + +(test -f $srcdir/configure.ac) || { + echo -n "**Error**: Directory $srcdir does not look like the" + echo " top-level package directory" + exit 1 +} + +(autoconf --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have autoconf installed." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + DIE=1 +} + +(grep "^LT_INIT" $srcdir/configure.ac >/dev/null) && { + (libtool --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have libtool installed." + echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/" + DIE=1 + } +} + +(automake --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have automake installed." + echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/" + DIE=1 + NO_AUTOMAKE=yes +} + +# if no automake, don't bother testing for aclocal +test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: Missing aclocal. The version of automake" + echo "installed doesn't appear recent enough." + echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/" + DIE=1 +} + +if test "$DIE" -eq 1; then + exit 1 +fi + +if test -z "$*"; then + echo "**Warning**: I am going to run configure with no arguments." + echo "If you wish to pass any to it, please specify them on the" + echo $0 " command line." + echo +fi + +case $CC in +xlc ) + am_opt=--include-deps;; +esac + + aclocalinclude="$ACLOCAL_FLAGS" + + if grep "^LT_INIT" configure.ac >/dev/null; then + if test -z "$NO_LIBTOOLIZE" ; then + echo "Running libtoolize..." + libtoolize --force --copy + fi + fi + echo "Running aclocal $aclocalinclude ..." + aclocal $aclocalinclude + if grep "^AC_CONFIG_HEADERS" configure.ac >/dev/null; then + echo "Running autoheader..." + autoheader + fi + echo "Running automake --add-missing -copy --gnu -Wno-portability $am_opt ..." + automake --add-missing --copy --gnu -Wno-portability $am_opt + echo "Running autoconf ..." + autoconf + +conf_flags="--enable-maintainer-mode" + +if test x$NOCONFIGURE = x; then + echo "Running $srcdir/configure $conf_flags $@ ..." + $srcdir/configure $conf_flags "$@" \ + && echo "Now type make to compile." || exit 1 +else + echo "Skipping configure process." +fi
  75. Download patch lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/contents.xcworkspacedata

    --- 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/contents.xcworkspacedata 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/contents.xcworkspacedata 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Workspace + version = "1.0"> + <FileRef + location = "self:LittleCMS.xcodeproj"> + </FileRef> +</Workspace> Binary files 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/xcuserdata/User.xcuserdatad/UserInterfaceState.xcuserstate and 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/xcuserdata/User.xcuserdatad/UserInterfaceState.xcuserstate differ
  76. Download patch debian/patches/CVE-2019-3835-pre2.patch

    --- 9.26~dfsg-2/debian/patches/CVE-2019-3835-pre2.patch 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/CVE-2019-3835-pre2.patch 2019-03-19 12:09:33.000000000 +0000 @@ -0,0 +1,65 @@ +Backport of: + +From e8acf6d1aa1fc92f453175509bfdad6f2b12dc73 Mon Sep 17 00:00:00 2001 +From: Nancy Durgin <nancy.durgin@artifex.com> +Date: Thu, 14 Feb 2019 10:09:00 -0800 +Subject: [PATCH] Undef /odef in gs_init.ps + +Made a new temporary utility function in gs_cet.ps (.odef) to use instead +of /odef. This makes it fine to undef odef with all the other operators in +gs_init.ps + +This punts the bigger question of what to do with .makeoperator, but it +doesn't make the situation any worse than it already was. +--- + Resource/Init/gs_cet.ps | 14 ++++++++++---- + Resource/Init/gs_init.ps | 1 + + 2 files changed, 11 insertions(+), 4 deletions(-) + +Index: ghostscript-9.26~dfsg+0/Resource/Init/gs_cet.ps +=================================================================== +--- ghostscript-9.26~dfsg+0.orig/Resource/Init/gs_cet.ps 2019-03-19 08:07:45.769421229 -0400 ++++ ghostscript-9.26~dfsg+0/Resource/Init/gs_cet.ps 2019-03-19 08:07:45.765421251 -0400 +@@ -1,6 +1,10 @@ + %!PS + % Set defaults for Ghostscript to match Adobe CPSI behaviour for CET + ++/.odef { % <name> <proc> odef - ++ 1 index exch .makeoperator def ++} bind def ++ + systemdict /product get (PhotoPRINT SE 5.0v2) readonly eq + { + (%END GS_CET) .skipeof +@@ -93,8 +97,8 @@ userdict /.smoothness currentsmoothness + } { + /setsmoothness .systemvar /typecheck signalerror + } ifelse +-} bind odef +-/currentsmoothness { userdict /.smoothness get } bind odef % for 09-55.PS, 09-57.PS . ++} bind //.odef exec ++/currentsmoothness { userdict /.smoothness get } bind //.odef exec % for 09-55.PS, 09-57.PS . + + % slightly nasty hack to give consistent cluster results + /ofnfa systemdict /filenameforall get def +@@ -113,6 +117,8 @@ userdict /.smoothness currentsmoothness + } ifelse + ofnfa + } bind def ++ ++currentdict /.odef undef + % end of slightly nasty hack to give consistent cluster results + + //false 0 startjob pop % re-enter encapsulated mode +Index: ghostscript-9.26~dfsg+0/Resource/Init/gs_init.ps +=================================================================== +--- ghostscript-9.26~dfsg+0.orig/Resource/Init/gs_init.ps 2019-03-19 08:07:45.769421229 -0400 ++++ ghostscript-9.26~dfsg+0/Resource/Init/gs_init.ps 2019-03-19 08:08:51.709064308 -0400 +@@ -2263,6 +2263,7 @@ SAFER { .setsafeglobal } if + /.systemvmSFD /.settrapparams /.currentsystemparams /.currentuserparams /.getsystemparam /.getuserparam /.setsystemparams /.setuserparams + /.checkpassword /.locale_to_utf8 /.currentglobal /.gcheck /.imagepath /.currentoutputdevice + /.type /.writecvs /.setSMask /.currentSMask /.needinput /.countexecstack /.execstack /.applypolicies ++ /odef + + % Used by a free user in the Library of Congress. Apparently this is used to + % draw a partial page, which is then filled in by the results of a barcode
  77. Download patch lcms2mt/m4/ax_require_defined.m4

    --- 9.26~dfsg-2/lcms2mt/m4/ax_require_defined.m4 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/m4/ax_require_defined.m4 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,37 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_require_defined.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_REQUIRE_DEFINED(MACRO) +# +# DESCRIPTION +# +# AX_REQUIRE_DEFINED is a simple helper for making sure other macros have +# been defined and thus are available for use. This avoids random issues +# where a macro isn't expanded. Instead the configure script emits a +# non-fatal: +# +# ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found +# +# It's like AC_REQUIRE except it doesn't expand the required macro. +# +# Here's an example: +# +# AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) +# +# LICENSE +# +# Copyright (c) 2014 Mike Frysinger <vapier@gentoo.org> +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 1 + +AC_DEFUN([AX_REQUIRE_DEFINED], [dnl + m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])]) +])dnl AX_REQUIRE_DEFINED
  78. Download patch lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/LittleCMS.xcscheme

    --- 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/LittleCMS.xcscheme 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/LittleCMS.xcscheme 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "0460" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + <BuildActionEntries> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "8D07F2BC0486CC7A007CD1D0" + BuildableName = "LittleCMS.framework" + BlueprintName = "LittleCMS" + ReferencedContainer = "container:LittleCMS.xcodeproj"> + </BuildableReference> + </BuildActionEntry> + </BuildActionEntries> + </BuildAction> + <TestAction + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES" + buildConfiguration = "Debug"> + <Testables> + </Testables> + </TestAction> + <LaunchAction + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + buildConfiguration = "Debug" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + allowLocationSimulation = "YES"> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + buildConfiguration = "Release" + debugDocumentVersioning = "YES"> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme>
  79. Download patch lcms2mt/m4/ax_append_flag.m4

    --- 9.26~dfsg-2/lcms2mt/m4/ax_append_flag.m4 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/m4/ax_append_flag.m4 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,71 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_append_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE]) +# +# DESCRIPTION +# +# FLAG is appended to the FLAGS-VARIABLE shell variable, with a space +# added in between. +# +# If FLAGS-VARIABLE is not specified, the current language's flags (e.g. +# CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains +# FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly +# FLAG. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de> +# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com> +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 6 + +AC_DEFUN([AX_APPEND_FLAG], +[dnl +AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF +AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])]) +AS_VAR_SET_IF(FLAGS,[ + AS_CASE([" AS_VAR_GET(FLAGS) "], + [*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])], + [ + AS_VAR_APPEND(FLAGS,[" $1"]) + AC_RUN_LOG([: FLAGS="$FLAGS"]) + ]) + ], + [ + AS_VAR_SET(FLAGS,[$1]) + AC_RUN_LOG([: FLAGS="$FLAGS"]) + ]) +AS_VAR_POPDEF([FLAGS])dnl +])dnl AX_APPEND_FLAG
  80. Download patch debian/patches/2012_avoid_googletagmanager.patch
  81. Download patch lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/testbed.xcscheme

    --- 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/testbed.xcscheme 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/testbed.xcscheme 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "0460" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + <BuildActionEntries> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "546B29A210AC677E0054D33A" + BuildableName = "testbed" + BlueprintName = "testbed" + ReferencedContainer = "container:LittleCMS.xcodeproj"> + </BuildableReference> + </BuildActionEntry> + </BuildActionEntries> + </BuildAction> + <TestAction + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES" + buildConfiguration = "Debug"> + <Testables> + </Testables> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "546B29A210AC677E0054D33A" + BuildableName = "testbed" + BlueprintName = "testbed" + ReferencedContainer = "container:LittleCMS.xcodeproj"> + </BuildableReference> + </MacroExpansion> + </TestAction> + <LaunchAction + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + buildConfiguration = "Debug" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + allowLocationSimulation = "YES"> + <BuildableProductRunnable> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "546B29A210AC677E0054D33A" + BuildableName = "testbed" + BlueprintName = "testbed" + ReferencedContainer = "container:LittleCMS.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + buildConfiguration = "Release" + debugDocumentVersioning = "YES"> + <BuildableProductRunnable> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "546B29A210AC677E0054D33A" + BuildableName = "testbed" + BlueprintName = "testbed" + ReferencedContainer = "container:LittleCMS.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme>
  82. Download patch lcms2mt/m4/ltoptions.m4
  83. Download patch debian/patches/CVE-2019-3835-1.patch
  84. Download patch lcms2mt/missing
  85. Download patch debian/ghostscript.preinst

    --- 9.26~dfsg-2/debian/ghostscript.preinst 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/ghostscript.preinst 2018-02-23 20:04:45.000000000 +0000 @@ -0,0 +1,49 @@ +#!/bin/sh + +set -e + +case "$1" in + install|upgrade) + # Make sure the /etc/gs-gpl/ files are actually gone + # (they might have stayed around during a Etch-Lenny dist-upgrade). + if dpkg --compare-versions "$2" lt-nl "9.05~dfsg-6.2"; then + rm -rf /etc/gs-gpl/ + fi + + # Do away with update-alternative for /usr/bin/gs, we have one + # grand unified Ghostscript now! + if dpkg --compare-versions "$2" lt-nl "8.63.dfsg.1-1"; then + update-alternatives --remove-all gs || true + update-alternatives --remove-all gs.1 || true + fi + + # Do away with update-alternative for /usr/bin/ps2pdf, upstream + # provides it as a script + if dpkg --compare-versions "$2" lt-nl "8.64~dfsg-1"; then + update-alternatives --remove-all ps2pdf || true + fi + + # Remove obsolete defoma files + if dpkg --compare-versions "$2" lt-nl "8.71~dfsg2-1"; then + rm -rf /var/lib/defoma/gs.d + rm -f /etc/defoma/ghostscript.subst-rule + rm -f /etc/defoma/ghostscript.subst-rule~ + rm -f /var/lib/defoma/ghostscript.subst-cache + fi + + # Purge obsolete defoma cruft to silence warnings + if dpkg --compare-versions "$2" lt-nl "8.71.dfsg.2-1"; then + defoma-app purge gs 2>/dev/null || true + fi + ;; + abort-upgrade) + ;; + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0
  86. Download patch debian/control.in.in

    --- 9.26~dfsg-2/debian/control.in.in 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/control.in.in 2018-02-23 20:04:45.000000000 +0000 @@ -0,0 +1,128 @@ +Source: ghostscript +Section: text +Priority: optional +Maintainer: Debian Printing Team <debian-printing@lists.debian.org> +Build-Depends: @cdbs@ +Standards-Version: 4.1.1 +Uploaders: Jonas Smedegaard <dr@jones.dk>, + Michael Gilbert <mgilbert@debian.org>, + Bastien ROUCARIÈS <roucaries.bastien+debian@gmail.com> +Homepage: https://www.ghostscript.com/ +Vcs-Git: https://anonscm.debian.org/git/printing/ghostscript.git +Vcs-Browser: https://anonscm.debian.org/git/printing/ghostscript.git + +Package: ghostscript +Architecture: any +Multi-Arch: foreign +Provides: ${cdbs:Provides} +Recommends: ${cdbs:Recommends} +Suggests: ${cdbs:Suggests} +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + libgs__VER__ (= ${binary:Version}), + ${misc:Depends} +Description: interpreter for the PostScript language and for PDF + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + Furthermore, it can render PostScript and PDF files as graphics to be + printed on non-PostScript printers. Supported printers include common + dot-matrix, inkjet and laser models. + +Package: ghostscript-x +Architecture: any +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + ${misc:Depends} +Description: interpreter for the PostScript language and for PDF - X11 support + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + This package contains the GPL Ghostscript output device for X11. + +Package: ghostscript-doc +Section: doc +Architecture: all +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + ${misc:Depends} +Suggests: ${cdbs:Suggests} +Description: interpreter for the PostScript language and for PDF - Documentation + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + This package contains documentation for GPL Ghostscript, mainly + targeted developers and advanced users. + +Package: libgs__VER__ +Section: libs +Architecture: any +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + ${misc:Depends}, + libgs__VER__-common (= ${source:Version}) +Multi-Arch: same +Description: interpreter for the PostScript language and for PDF - Library + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + This package provides the Ghostscript library which makes the + facilities of GPL Ghostscript available to applications. + +Package: libgs__VER__-common +Section: libs +Architecture: all +Depends: ${misc:Depends} +Recommends: ${cdbs:Recommends} +Multi-Arch: foreign +Description: interpreter for the PostScript language and for PDF - common files + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + This package provides common architecture-independent files needed by + the GPL Ghostscript library. + . + By default, GPL Ghostscript uses a font from the fonts-droid package to + approximate glyphs in PDFs for which the requested CJK TrueType font + is missing. If the fonts-droid package is not installed, these glyphs + will be rendered as bullets. + +Package: libgs-dev +Section: libdevel +Architecture: any +Depends: ${devlibs:Depends}, + ${cdbs:Depends}, + ${misc:Depends} +Multi-Arch: same +Description: interpreter for the PostScript language and for PDF - Development Files + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + This package provides the development files for the GPL Ghostscript + library which makes the facilities of GPL Ghostscript available to + applications. + +Package: ghostscript-dbg +Architecture: any +Section: debug +Priority: extra +Depends: ${shlibs:Depends}, + ${cdbs:Depends}, + libgs__VER__ (= ${binary:Version}) | + ghostscript (= ${binary:Version}) | + ghostscript-x (= ${binary:Version}), + ${misc:Depends} +Description: interpreter for the PostScript language and for PDF - Debug symbols + GPL Ghostscript is used for PostScript/PDF preview and printing. + Usually as a back-end to a program such as ghostview, it can display + PostScript and PDF documents in an X11 environment. + . + This package contains the debugging symbols for ghostscript, + ghostscript-x, and libgs__VER__.
  87. Download patch lcms2mt/Projects/mac/LittleCMS/LittleCMS.xcodeproj/mariama.mode1v3
  88. Download patch lcms2mt/Projects/BorlandC_5.5/mklcmsdll.bat

    --- 9.26~dfsg-2/lcms2mt/Projects/BorlandC_5.5/mklcmsdll.bat 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/BorlandC_5.5/mklcmsdll.bat 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,14 @@ +@echo off +echo. +echo This will build the littlecms DLL using Borland C 5.5 compiler. +echo. +echo Press Ctrl-C to abort, or +pause +bcc32 @lcmsdll.lst +if errorlevel 0 ilink32 @lcmsdll.lk +if errorlevel 0 brc32 -fe ..\..\bin\lcms2.dll lcms2.rc +del *.obj +del *.res +echo Done! + +
  89. Download patch lcms2mt/m4/ltversion.m4

    --- 9.26~dfsg-2/lcms2mt/m4/ltversion.m4 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/m4/ltversion.m4 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 3337 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +])
  90. Download patch lcms2mt/m4/lt~obsolete.m4

    --- 9.26~dfsg-2/lcms2mt/m4/lt~obsolete.m4 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/m4/lt~obsolete.m4 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,98 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
  91. Download patch debian/patches/CVE-2019-3835-2.patch

    --- 9.26~dfsg-2/debian/patches/CVE-2019-3835-2.patch 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/debian/patches/CVE-2019-3835-2.patch 2019-03-19 12:14:13.000000000 +0000 @@ -0,0 +1,161 @@ +Backport of: + +From d683d1e6450d74619e6277efeebfc222d9a5cb91 Mon Sep 17 00:00:00 2001 +From: Ray Johnston <ray.johnston@artifex.com> +Date: Sun, 24 Feb 2019 22:01:04 -0800 +Subject: [PATCH] Bug 700585: Obliterate "superexec". We don't need it, nor do + any known apps. + +We were under the impression that the Windows driver 'PScript5.dll' used +superexec, but after testing with our extensive suite of PostScript file, +and analysis of the PScript5 "Adobe CoolType ProcSet, it does not appear +that this operator is needed anymore. Get rid of superexec and all of the +references to it, since it is a potential security hole. +--- + Resource/Init/gs_init.ps | 18 ------------------ + psi/icontext.c | 1 - + psi/icstate.h | 1 - + psi/zcontrol.c | 30 ------------------------------ + psi/zdict.c | 6 ++---- + psi/zgeneric.c | 3 +-- + 6 files changed, 3 insertions(+), 56 deletions(-) + +Index: ghostscript-9.26~dfsg+0/Resource/Init/gs_init.ps +=================================================================== +--- ghostscript-9.26~dfsg+0.orig/Resource/Init/gs_init.ps 2019-03-19 08:13:17.207883787 -0400 ++++ ghostscript-9.26~dfsg+0/Resource/Init/gs_init.ps 2019-03-19 08:13:17.199883818 -0400 +@@ -2478,24 +2478,6 @@ DELAYBIND not { + systemdict /.forceundef .undef % ditto + } if + +-% Move superexec to internaldict if superexec is defined. (Level 2 or later) +-systemdict /superexec known { +- % restrict superexec to single known use by PScript5.dll +- % We could do this only for SAFER mode, but internaldict and superexec are +- % not very well documented, and we don't want them to be used. +- 1183615869 internaldict /superexec { +- 2 index /Private eq % first check for typical use in PScript5.dll +- 1 index length 1 eq and % expected usage is: dict /Private <value> {put} superexec +- 1 index 0 get systemdict /put get eq and +- { +- //superexec exec % the only usage we allow +- } { +- /superexec load /invalidaccess signalerror +- } ifelse +- } bind cvx executeonly put +- systemdict /superexec .undef % get rid of the dangerous (unrestricted) operator +-} if +- + % Can't remove this one until the last minute :-) + DELAYBIND not { + systemdict /.undef .undef +Index: ghostscript-9.26~dfsg+0/psi/icontext.c +=================================================================== +--- ghostscript-9.26~dfsg+0.orig/psi/icontext.c 2019-03-19 08:13:17.207883787 -0400 ++++ ghostscript-9.26~dfsg+0/psi/icontext.c 2019-03-19 08:13:34.351818800 -0400 +@@ -151,7 +151,6 @@ context_state_alloc(gs_context_state_t * + pcst->rand_state = rand_state_initial; + pcst->usertime_total = 0; + pcst->keep_usertime = false; +- pcst->in_superexec = 0; + pcst->plugin_list = 0; + make_t(&pcst->error_object, t__invalid); + { /* +Index: ghostscript-9.26~dfsg+0/psi/icstate.h +=================================================================== +--- ghostscript-9.26~dfsg+0.orig/psi/icstate.h 2019-03-19 08:13:17.207883787 -0400 ++++ ghostscript-9.26~dfsg+0/psi/icstate.h 2019-03-19 08:13:42.971786546 -0400 +@@ -54,7 +54,6 @@ struct gs_context_state_s { + long usertime_total; /* total accumulated usertime, */ + /* not counting current time if running */ + bool keep_usertime; /* true if context ever executed usertime */ +- int in_superexec; /* # of levels of superexec */ + /* View clipping is handled in the graphics state. */ + ref error_object; /* t__invalid or error object from operator */ + ref userparams; /* t_dictionary */ +Index: ghostscript-9.26~dfsg+0/psi/zcontrol.c +=================================================================== +--- ghostscript-9.26~dfsg+0.orig/psi/zcontrol.c 2019-03-19 08:13:17.207883787 -0400 ++++ ghostscript-9.26~dfsg+0/psi/zcontrol.c 2019-03-19 08:13:17.199883818 -0400 +@@ -158,34 +158,6 @@ zexecn(i_ctx_t *i_ctx_p) + return o_push_estack; + } + +-/* <obj> superexec - */ +-static int end_superexec(i_ctx_t *); +-static int +-zsuperexec(i_ctx_t *i_ctx_p) +-{ +- os_ptr op = osp; +- es_ptr ep; +- +- check_op(1); +- if (!r_has_attr(op, a_executable)) +- return 0; /* literal object just gets pushed back */ +- check_estack(2); +- ep = esp += 3; +- make_mark_estack(ep - 2, es_other, end_superexec); /* error case */ +- make_op_estack(ep - 1, end_superexec); /* normal case */ +- ref_assign(ep, op); +- esfile_check_cache(); +- pop(1); +- i_ctx_p->in_superexec++; +- return o_push_estack; +-} +-static int +-end_superexec(i_ctx_t *i_ctx_p) +-{ +- i_ctx_p->in_superexec--; +- return 0; +-} +- + /* <array> <executable> .runandhide <obj> */ + /* before executing <executable>, <array> is been removed from */ + /* the operand stack and placed on the execstack with attributes */ +@@ -971,8 +943,6 @@ const op_def zcontrol3_op_defs[] = { + {"0%loop_continue", loop_continue}, + {"0%repeat_continue", repeat_continue}, + {"0%stopped_push", stopped_push}, +- {"1superexec", zsuperexec}, +- {"0%end_superexec", end_superexec}, + {"2.runandhide", zrunandhide}, + {"0%end_runandhide", end_runandhide}, + op_def_end(0) +Index: ghostscript-9.26~dfsg+0/psi/zdict.c +=================================================================== +--- ghostscript-9.26~dfsg+0.orig/psi/zdict.c 2019-03-19 08:13:17.207883787 -0400 ++++ ghostscript-9.26~dfsg+0/psi/zdict.c 2019-03-19 08:13:17.199883818 -0400 +@@ -212,8 +212,7 @@ zundef(i_ctx_t *i_ctx_p) + int code; + + check_type(*op1, t_dictionary); +- if (i_ctx_p->in_superexec == 0) +- check_dict_write(*op1); ++ check_dict_write(*op1); + code = idict_undef(op1, op); + if (code < 0 && code != gs_error_undefined) /* ignore undefined error */ + return code; +@@ -504,8 +503,7 @@ zsetmaxlength(i_ctx_t *i_ctx_p) + int code; + + check_type(*op1, t_dictionary); +- if (i_ctx_p->in_superexec == 0) +- check_dict_write(*op1); ++ check_dict_write(*op1); + check_type(*op, t_integer); + if (op->value.intval < 0) + return_error(gs_error_rangecheck); +Index: ghostscript-9.26~dfsg+0/psi/zgeneric.c +=================================================================== +--- ghostscript-9.26~dfsg+0.orig/psi/zgeneric.c 2019-03-19 08:13:17.207883787 -0400 ++++ ghostscript-9.26~dfsg+0/psi/zgeneric.c 2019-03-19 08:13:17.199883818 -0400 +@@ -204,8 +204,7 @@ zput(i_ctx_t *i_ctx_p) + + switch (r_type(op2)) { + case t_dictionary: +- if (i_ctx_p->in_superexec == 0) +- check_dict_write(*op2); ++ check_dict_write(*op2); + { + int code = idict_put(op2, op1, op); +
  92. Download patch lcms2mt/Makefile.in
  93. Download patch lcms2mt/aclocal.m4
  94. Download patch debian/copyright
  95. Download patch lcms2mt/Projects/BorlandC_5.5/lcmsdll.lst

    --- 9.26~dfsg-2/lcms2mt/Projects/BorlandC_5.5/lcmsdll.lst 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/BorlandC_5.5/lcmsdll.lst 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,29 @@ +-5 -C -DCMS_DLL -DCMS_DLL_BUILD +-I..\..\include -K -O2 -a8 -d -ff -w -wucp -wsig -wdef -wnod -wamb +-OS -RT- -R- -tWM -tWD -w- -x- -c +..\..\src\cmscam02.c +..\..\src\cmscgats.c +..\..\src\cmscnvrt.c +..\..\src\cmserr.c +..\..\src\cmsgamma.c +..\..\src\cmsgmt.c +..\..\src\cmsintrp.c +..\..\src\cmsio0.c +..\..\src\cmsio1.c +..\..\src\cmslut.c +..\..\src\cmsmd5.c +..\..\src\cmsmtrx.c +..\..\src\cmsnamed.c +..\..\src\cmsopt.c +..\..\src\cmspack.c +..\..\src\cmspcs.c +..\..\src\cmsplugin.c +..\..\src\cmsps2.c +..\..\src\cmssamp.c +..\..\src\cmssm.c +..\..\src\cmstypes.c +..\..\src\cmsvirt.c +..\..\src\cmswtpnt.c +..\..\src\cmsxform.c +..\..\src\cmshalf.c +..\..\src\cmsalpha.c \ No newline at end of file
  96. Download patch lcms2mt/INSTALL

    --- 9.26~dfsg-2/lcms2mt/INSTALL 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/INSTALL 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,2 @@ + + Please see the documentation in doc folder
  97. Download patch debian/copyright_hints
  98. Download patch lcms2mt/Projects/.gitignore

    --- 9.26~dfsg-2/lcms2mt/Projects/.gitignore 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/.gitignore 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,6 @@ +**.opensdf +**.sdf +**.suo +**.user +Debug/ +Release/ Binary files 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/English.lproj/InfoPlist.strings and 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/English.lproj/InfoPlist.strings differ Binary files 9.26~dfsg-2/lcms2mt/Projects/mac/LittleCMS/._Info.plist and 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/mac/LittleCMS/._Info.plist differ
  99. Download patch lcms2mt/Projects/BorlandC_5.5/lcmsdll.lk

    --- 9.26~dfsg-2/lcms2mt/Projects/BorlandC_5.5/lcmsdll.lk 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/Projects/BorlandC_5.5/lcmsdll.lk 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,31 @@ +/x/aa/c/Tpd C0D32.OBJ+ +cmsalpha.obj+ +cmscam02.obj+ +cmscgats.obj+ +cmscnvrt.obj+ +cmserr.obj+ +cmsgamma.obj+ +cmsgmt.obj+ +cmshalf.obj+ +cmsintrp.obj+ +cmsio0.obj+ +cmsio1.obj+ +cmslut.obj+ +cmsmd5.obj+ +cmsmtrx.obj+ +cmsnamed.obj+ +cmsopt.obj+ +cmspack.obj+ +cmspcs.obj+ +cmsplugin.obj+ +cmsps2.obj+ +cmssamp.obj+ +cmssm.obj+ +cmstypes.obj+ +cmsvirt.obj+ +cmswtpnt.obj+ +cmsxform.obj +..\..\bin\lcms2.dll + +cw32mt.lib import32.lib +..\..\src\lcms2.def \ No newline at end of file
  100. Download patch lcms2mt/COPYING

    --- 9.26~dfsg-2/lcms2mt/COPYING 1970-01-01 00:00:00.000000000 +0000 +++ 9.26~dfsg+0-0ubuntu8/lcms2mt/COPYING 2018-11-20 09:59:43.000000000 +0000 @@ -0,0 +1,8 @@ +Little CMS +Copyright (c) 1998-2011 Marti Maria Saguer + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  101. ...
  1. ghostscript