You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
8.2 KiB

1 month ago
  1. <!--START EDITING HERE-->
  2. <h1>Recent Changes in Ghostscript</h1>
  3. <!-- [1.0 end visible header] ============================================== -->
  4. <!-- [2.0 begin contents] ================================================== -->
  5. <h2><a name="Version10.04.0"></a>Version 10.04.0 (2024-09-18)</h2>
  6. <p> Highlights in this release include:
  7. <ul>
  8. </li>
  9. <li>
  10. <p>This release addresses CVEs: CVE-2024-46951, CVE-2024-46952, CVE-2024-46953, CVE-2024-46954, CVE-2024-46955, CVE-2024-46956
  11. </li>
  12. <li>
  13. <p><b>IMPORTANT:</b> In this release (10.04.0) we have be added protection for
  14. device selection from PostScript input. This will mean that, by default, only the device specified
  15. on the command line will be permitted. Similar to the file permissions, there will be a &quot;--permit-devices=&quot;
  16. allowing a comma separation list of allowed devices. This will also take a single wildcard &quot;*&quot; allowing any device.
  17. <p>Any application which relies on allowing PostScript to change devices during a job will have to be aware, and take action
  18. to deal with this change.
  19. <p>The exception is &quot;nulldevice&quot;, switching to that requires no special action.
  20. </li>
  21. <li>
  22. <p>Our efforts in code hygiene and maintainability continue.
  23. </li>
  24. <li>
  25. <p>The usual round of bug fixes, compatibility changes, and incremental improvements.
  26. </li>
  27. <li>
  28. <p>(9.53.0) We have added the capability to build with the Tesseract OCR engine. In such
  29. a build, new devices are available (pdfocr8/pdfocr24/pdfocr32) which render the
  30. output file to an image, OCR that image, and output the image "wrapped" up as a
  31. PDF file, with the OCR generated text information included as "invisible" text
  32. (in PDF terms, text rendering mode 3).
  33. <p>Mainly due to time constraints, we only support including Tesseract from
  34. source included in our release packages, and not linking to Tesseract/Leptonica
  35. shared libraries. Whether we add this capability will be largely dependent on
  36. community demand for the feature.
  37. <p>See <a href="https://www.ghostscript.com/ocr.html">Enabling OCR</a> for more details.
  38. </li>
  39. </ul>
  40. <p>For a list of open issues, or to report problems,
  41. please visit <a href="http://bugs.ghostscript.com/">bugs.ghostscript.com</a>.
  42. <h3><a name="10.04.0_Incompatible_changes"></a>Incompatible changes</h3>
  43. <h4>Included below are incompatible changes from recent releases (the
  44. specific release in question is listed in parentheses). We include these,
  45. for now, as we are aware that not everyone upgrades with every release.</h4>
  46. <ul>
  47. <li>
  48. <p>(10.03.1) Almost all the &quot;internal&quot; PostScript procedures defined
  49. during the interpreter startup are now &quot;executeonly&quot;, further reducing
  50. the attack surface of the interpreter.
  51. <p>The nature of these procedures means there should be no impact for legitimate
  52. usage, but it is possible it will impact uses which abuse the previous accessibility
  53. (even for legitimate reasons). Such cases may now require &quot;DELAYBIND&quot;,
  54. See <a href="https://ghostscript.readthedocs.io/en/latest/Use.html#ddelaybind">DELAYBIND</a>
  55. </li>
  56. <li>
  57. <p>(10.03.1) The &quot;makeimagedevice&quot; non-standard operator has been removed. It allowed
  58. low level access to the graphics library in a way that was, essentially impossible to secure.
  59. </li>
  60. <li>
  61. <p>(10.03.1) The &quot;putdeviceprops&quot;, &quot;getdeviceprops&quot;, &quot;finddevice&quot;,
  62. &quot;copydevice&quot;, &quot;findprotodevice&quot; non-standard operators have all been removed.
  63. They provided functionality that is either accessible through standard operators, or should not
  64. be used by user PostScript.
  65. </li>
  66. <li>
  67. <p>(10.03.1) The process of &quot;tidying&quot; the PostScript namespace should have removed
  68. only non-standard and undocumented operators. Nevertheless, it is possible that
  69. any integrations or utilities that rely on those non-standard and undocumented
  70. operators may stop working or may change behaviour.
  71. <p>If you encounter such a case, please contact us (<a href="https://discord.gg/H9GXKwyPvY">Discord<a>,
  72. <a href="https://web.libera.chat/#ghostscript">#ghostscript IRC channel</a>,
  73. or the gs-devel mailing list would be best), and we'll work with you to either find an
  74. alternative solution or return the previous functionality, if there is genuinely no other
  75. option.
  76. </li>
  77. <li>
  78. <p>(9.55.0) Changes to the <code>device API</code>. This will affect developers and maintainers of
  79. Ghostscript devices. Firstly, and most importantly, the way device-specific "procs" are specified has
  80. been rewritten to make it (we think!) clearer and less confusing. See
  81. <a href="https://ghostscript.readthedocs.io/Drivers.htm">The Interface between Ghostscript and Device Drivers</a> and
  82. <a href="https://www.notion.so/artifexsoftware/The-Great-Device-Rework-Of-2021-94092fe1395d4a088b91462f0ca5038a">The Great Device Rework Of 2021</a>
  83. for more details.
  84. </li>
  85. <li>
  86. <p>(9.55.0) The command line options <code>-sGraphicsICCProfile=___</code>, <code>-dGraphicsIntent=#</code>, <code>-dGraphicsBlackPt=#</code>,
  87. <code>-dGraphicsKPreserve=#</code> have been changed to <code>-sVectorICCProfile=___</code>, <code>-dVectorIntent=#</code>, <code>-dVectorBlackPt=#</code>,
  88. <code>-dVectorKPreserve=#</code>.
  89. </li>
  90. <li>
  91. <p>(9.53.0) As of 9.53.0, we have (re-)introduced the patch level to the version number,
  92. this helps facilitate a revised policy on handling security-related issues.
  93. <p><strong>Note for GSView Users: </strong>The patch level addition breaks GSView 5 (it is
  94. hardcoded to check for versions <code>704-999</code>. It is possible, but not guaranteed that
  95. a GSView update might be forthcoming to resolve this.
  96. </li>
  97. <li>
  98. <p>(9.52) <code>-dALLOWPSTRANSPARENCY</code>: The transparency compositor (and related
  99. features), whilst we are improving it, remains sensitive to being driven correctly, and
  100. incorrect use can have unexpected/undefined results. Hence, as part of improving security,
  101. we limited access to these operators, originally using the <code>-dSAFER</code> feature.
  102. As we made "SAFER" the default mode, that became unacceptable, hence the new option
  103. <code>-dALLOWPSTRANSPARENCY</code> which enables access to the operators.
  104. </li>
  105. <li>
  106. <p>(9.50) There are a couple of subtle incompatibilities between the old and new SAFER
  107. implementations. Firstly, as mentioned in the 9.50 release notes, SAFER now leaves
  108. standard PostScript functionality unchanged (except for the file access limitations).
  109. Secondly, the interaction with <code>save</code>&sol;<code>restore</code> operations
  110. has changed. See <a href="https://ghostscript.readthedocs.io/Use.htm#Safer">SAFER</a>.
  111. <p><strong>Important Note for Windows Users</strong>:
  112. <br>
  113. The file/path pattern matching is case-sensitive, even on Windows. This is a
  114. change in behaviour compared to the old code which, on Windows, was case
  115. <i>in</i>sensitive. This is in recognition of changes in Windows behaviour,
  116. in that it now supports (although does not enforce) case sensitivity.
  117. </li>
  118. </ul>
  119. <h3><a name="10.04.0_changelog"></a>Changelog</h3>
  120. <p>From 9.55.0 onwards, in recognition of how unwieldy very large HTML files can become
  121. (History9.html had reached 8.1Mb!), we intend to only include the summary highlights (above).
  122. <p>For anyone wanting the full details of the changes in
  123. a release, we ask them to look at the history in our public git repository:
  124. <a href="https://git.ghostscript.com/?p=ghostpdl.git;a=shortlog;h=refs/tags/ghostpdl-10.04.0">ghostpdl-10.04.0</a> log.
  125. <p>If this change does not draw negative feedback, History?.htm file(s) will be removed from the release archives.
  126. <!-- [2.0 end contents] ==================================================== -->
  127. <!-- [3.0 begin visible trailer] =========================================== -->
  128. <hr>
  129. <p>
  130. <small>Copyright &copy; 2005-2024 Artifex Software, Inc.
  131. All rights reserved.</small>
  132. <p>
  133. This software is provided AS-IS with no warranty, either express or
  134. implied.
  135. This software is distributed under license and may not be copied, modified
  136. or distributed except as expressly authorized under the terms of that
  137. license. Refer to licensing information at <a href="https://www.artifex.com">https://www.artifex.com</a>
  138. or contact Artifex Software, Inc., 39 Mesa Street, Suite 108A, San Francisco, CA 94129, USA,
  139. <p>
  140. <small>Ghostscript version 10.04.0, 18 September 2024
  141. <!-- [3.0 end visible trailer] ============================================= -->
  142. <!--FINISH EDITING HERE-->