Recent Changes in Ghostscript

Contact Us
Download
Changes in the Most Recent Release of Ghostscript

This document is news about the most recent Ghostscript release. For earlier versions, see the history documents:

> History of Ghostscript versions 9.n
> History of Ghostscript versions 8.n
> History of Ghostscript versions 7.n
> History of Ghostscript versions 6.n
> History of Ghostscript versions 5.n
> History of Ghostscript versions 4.n
> History of Ghostscript versions 3.n
> History of Ghostscript versions 2.n
> History of Ghostscript versions 1.n

For other information, see the Ghostscript overview.

## Version 9.53.3 (2020-10-01)

Highlights in this release include:

- The 9.53.3 release is primarily maintenance.

- Issues arose with 9.53.0/1/2 that prompted the release of a `.3` patch:

  - A crash (or silent, erroneous exit) on 64 bit Windows and other LLP64 type environments.
  - What appears to be a compiler optimiser bug in 64 bit Windows builds with Visual Studio 2019
  - A crash related to management of ICC profile objects
  - A crash on SPARC hardware due to an alignment mismatch in the bitmap cache
  - A parameter type mismatch that would cause Ghostscript to error out during initialisation, which affected 64 big, big endian architectures.
  - An unexpected side effect of another change that prevented multithreaded rendering and background rendering from working correctly.

  Details of those can be found in the changelog.

- The most obvious change is the (re-)introduction of the patch level to the version number, this helps facilitate a revised policy on handling security related issues.

  To clarify: in the event we decide to release a patch revision, it will replace the release with the previous patch number. Release notes, highlights and warnings will remain the same, except for the addition of whatever fix(es) prompted the patch.

- Our efforts in code hygiene and maintainability continue.

- We have added the capability to build with the Tesseract OCR engine. In such a build, new devices are available (pdfocr8/pdfocr24/pdfocr32) which render the output file to an image, OCR that image, and output the image "wrapped" up as a PDF file, with the OCR generated text information included as "invisible" text (in PDF terms, text rendering mode 3).

  Due to some patches to the Tesseract sources that are required (integrated upstream, but awaiting release), time constraints, and the experimental nature of the feature, we only support including Tesseract from source, not linking to Tesseract shared libraries. Whether we add this capability will be largely dependant on community demand for the feature.

  See Enabling OCR for more details.

- We have added Python bindings for the `gsapi` interface, can be found in `demos/python`. These are experimental, and we welcome feedback from interested developers.

- For those integrating Ghostscript/GhostPDL via the `gsapi` interface, we have added new capabilities to that, specifically in terms of setting and interrogating device parameters. These, along with the existing interface calls, are documented in: Ghostscript Interpreter API

- IMPORTANT: In consultation with a representative of (OpenPrinting) it is our intention to deprecate and, in the not distant future, remove the OpenPrinting Vector/Raster Printer Drivers (that is, the `opvp` and `oprp` devices).

  If you rely on either of these devices, please get in touch with us, so we can discuss your use case, and revise our plans accordingly.

- IMPORTANT: We have forked LittleCMS2 into LittleCMS2mt (the "mt" indicating "multi-thread"). LCMS2 is not thread safe and cannot be made thread safe without breaking the ABI. Our fork will be thread safe and include performance enhancements (these changes have all be been offered and rejected upstream). We will maintain compatibility between Ghostscript and LCMS2 for a time, but not in perpetuity. If there is sufficient interest, our fork will be available as its own package separately from Ghostscript (and MuPDF).

- The usual round of bug fixes, compatibility changes, and incremental improvements.

For a list of open issues, or to report problems, please visit bugs.ghostscript.com.

### Incompatible changes

#### Included below are incompatible changes from recent releases (the specific release in question listed in parentheses). We include these, for now, as we are aware that not everyone upgrades with every release.

- (9.53.0) As of 9.53.0, we have (re-)introduced the patch level to the version number, this helps facilitate a revised policy on handling security related issues.

  Note for GSView Users:The patch level addition breaks GSView 5 (it is hardcoded to check for versions `704-999`. It is possible, but not guaranteed that a GSView update might be forthcoming to resolve this.

- (9.52) As of 9.52, the Windows binaries released by the Ghostscript development team are built with Microsoft Visual Studio 2019. As a result, Microsoft Windows XP and earlier are no longer supported by these binaries. This does not imply we are, or will start relying upon features only available in VS2019, so the `nmake` Makefiles will continue to allow older Visual Studio versions (back to VS2005) to build Ghostscript.

- (9.52) `-dALLOWPSTRANSPARENCY`: The transparency compositor (and related features), whilst we are improving it, remains sensitive to being driven correctly, and incorrect use can have unexpected/undefined results. Hence, as part of improving security we limited access to these operators, originally using the `-dSAFER` feature. As we made "SAFER" the default mode, that became unacceptable, hence the new option `-dALLOWPSTRANSPARENCY` which enables access to the operators.

- (9.50) There are a couple of subtle incompatibilities between the old and new SAFER implementations. Firstly, as mentioned in the 9.50 release notes, SAFER now leaves standard Postcript functionality unchanged (except for the file access limitations). Secondly, the interaction with `save`/`restore` operations, see SAFER.

  Important Note for Windows Users:
  The file/path pattern matching is case sensitive, even on Windows. This is a change in behaviour compared to the old code which, on Windows, was case insensitive. This is in recognition of changes in Windows behaviour, in that it now supports (although does not enforce) case sensitivity.

- (9.27) The process of "tidying" the PostScript name space should have removed only non-standard and undocumented operators. Nevertheless, it is possible that any integrations or utilities that rely on those non-standard and undocumented operators may stop working or may change behaviour.

  If you encounter such a case, please contact us (either the #ghostscript IRC channel, or the gs-devel mailing list would be best), and we'll work with you to either find an alternative solution or return the previous functionality, if there is genuinely no other option.

### Changelog

See the history file for complete log of changes.

Copyright © 2005-2020 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 that license. Refer to licensing information at https://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.

Ghostscript version 9.53.3, 1 October 2020