Ghostscript Changelog

What's new in Ghostscript 9.27

Apr 8, 2019
  • We have extensively cleaned up the Postscript name space: removing access to internal and/or undocumented Postscript operators, procedures and data. This has benefits for security and maintainability.
  • We have added a new "product": "gpdl". This is a rethink/redesign of the old "language_switch" product (pspcl6), and includes all the interpreters we develop based on the Ghostscript graphics library: Postscript, PDF, PCL6, PXL and XPS. This is experimental, and should be considered of beta testing quality, and thus is not built by default: it can be built by using the "experimental" target.
  • gpdl uses a heuristic to judge the file type being passed to it. In general, it supports most of the widely used command line options for each interpreter, but compatibility is not complete (the practicalities of swapping interpreters means it is unlikely that full parity of command line options will be possible).
  • Fontmap can now reference invidual fonts in a TrueType Collection for font subsitution. Previously, a Fontmap entry could only reference a TrueType collection and use the default (first) font. Now, the Fontmap syntax allows for specifying a specific index in a TTC. See the comments at the top of (the default) Fontmap.GS for details.
  • IMPORTANT: We are in the process of forking LittleCMS. 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. 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.

New in Ghostscript 9.26 (Nov 22, 2018)

  • Security issues have been the primary focus of this release, including solving several (well publicised) real and potential exploits.
  • PLEASE NOTE: We strongly urge users to upgrade to this latest release to avoid these issues.
  • IMPORTANT: We are in the process of forking LittleCMS. 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. Our fork will be available as its own package separately from Ghostscript (and MuPDF).
  • Thanks to Man Yue Mo of Semmle Security Research Team, Jens Müller of Ruhr-Universität Bochum and Tavis Ormandy of Google's Project Zero for their help to identify specific security issues.
  • The usual round of bug fixes, compatibility changes, and incremental improvements.

New in Ghostscript 9.24 (Sep 7, 2018)

  • Security issues have been the primary focus of this release, including solving several (well publicised) real and potential exploits.
  • PLEASE NOTE: We strongly urge users to upgrade to this latest release to avoid these issues.
  • As well as Ghostscript itself, jbig2dec has had a significant amount of work improving its robustness in the face of out specification files.
  • IMPORTANT: We are in the process of forking LittleCMS. 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. 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.

New in Ghostscript 9.23 (Mar 23, 2018)

  • 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
  • IMPORTANT: We are in the process of forking LittleCMS. 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. Our fork will be available as its own package separately from Ghostscript (and MuPDF).
  • We have continued the focus on code hygiene in this release cleaning up security issues, ignored return values, and compiler warnings.
  • The usual round of bug fixes, compatibility changes, and incremental improvements.

New in Ghostscript 9.19 (Mar 23, 2016)

  • New custom PJL (near) equivalents for pdfmark and setdistillerparams. These were primarily added to allow pdfwrite to be configured correctly for PDF/A output from GhostPCL. See: pdfwrite with PCL input for more details.
  • Ghostscript users should continue to use the existing pdfmark and setdistillerparams capabilities.
  • Metadata pdfmark is now implemented. This allows the user to specify an XMP stream which will be written to the Catalog of the PDF file.A new pdfmark 'Ext_Metadata' has bee defined. This takes a string parameter which contains XML to be add to the XMP normally created by pdfwrite.
  • See pdfwrite pdfmark extensions for more information.
  • An experimental, rudimentary raster trapping implementation implementation has been added to the Ghostscript graphics library. See Trapping for details.
  • The halftone threshold array generation tools (part of toolbin/halftone) have been improved with thresh_remap which allows folding the transfer function (AKA toner response curve (TRC)) into the threshold array so that highlights are improved. Further, gen_stochastic has improved support for minimum dot size and shape.
  • Plus the usual round of bug fixes, compatibility changes, and incremental improvements.