1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
|
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro" rel="stylesheet">
<link rel="shortcut icon" type="image/png" href="../../images/favicon.png">
<title>Recent Changes in Ghostscript</title>
<!-- Originally: NEWS -->
<!--
WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to
re-create the table of contents here, because it will replace the
hand-edited TOC subheads with a separate subhead for each H2 in
the body of the file. Or if you do, first look at the original
TOC to see how to edit it for visual conciseness.
-->
<link href="style.css" rel="stylesheet" type="text/css">
<link href="gs-style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="header">
<div class="row">
<div class="col-lt-6 logo"><a href="https://www.ghostscript.com/"><img src="images/ghostscript_logo.png" width="108" height="119" alt=""></a></div>
<div class="col-6"><div class="row"><div class="artifexlogo"><a href="https://artifex.com" target="_blank"><img src="images/Artifex_logo.png" width="194" height="40" alt=""></a></div>
<div class="col-12"><div class="button button1"><a href="https://artifex.com/contact-us/" title="Contact Us" target="_blank">Contact Us</a></div>
<div class="button button2 hidden-xs"><a href="https://www.ghostscript.com/download.html" title="Download">Download</a></div></div></div>
</div>
</div>
</div>
<div class="banner">
<div class="row">
<div class="col-12">Changes in the Most Recent Release of Ghostscript</div>
</div>
</div>
<div class="main">
<div class="row">
<div id="sidebar">
<div class="sidebar-item"></div>
<div class="col-2 leftnav">
<ul>
<li><a href="https://www.ghostscript.com/">Home</a></li>
<li><a href="https://www.ghostscript.com/license.html">Licensing</a></li>
<li><a href="https://www.ghostscript.com/releases.html">Releases</a></li>
<li><a href="https://www.ghostscript.com/documentation.html" title="Documentation">Documentation</a></li>
<li><a href="https://www.ghostscript.com/download.html" title="Download">Download</a></li>
<li><a href="https://www.ghostscript.com/performance.html" title="Performance">Performance</a></li>
<li><a href="http://jbig2dec.com/" title="jbig2dec">jbig2dec</a></li>
<li><a href="http://git.ghostscript.com/?p=ghostpdl.git;a=summary">Source</a></li>
<li><a href="http://bugs.ghostscript.com/">Bugs</a></li>
<li><a href="https://www.ghostscript.com/faq.html" title="FAQ">FAQ</a></li>
</ul>
</div>
</div>
<div class="col-10 page">
<!--START EDITING HERE-->
<p>
This document is news about the most recent Ghostscript release. For
earlier versions, see the history documents:
<blockquote>
<a href="History9.htm">History of Ghostscript versions 9.n</a><br>
</blockquote>
<p>For other information, see the <a href="Readme.htm">Ghostscript
overview</a>.
<!-- [1.3 end hint] ======================================================== -->
<hr>
<!-- [1.0 end visible header] ============================================== -->
<!-- [2.0 begin contents] ================================================== -->
<h2><a name="Version9.55.0"></a>Version 9.55.0 (2021-09-27)</h2>
<p> Highlights in this release include:
<ul>
<p>This release includes the fix for the <code>%pipe%</code> security issue (CVE-2021-3781).
</li>
<li>
<p><b>New PDF Interpreter:</b> This is an entirely new implementation written in C (rather than
PostScript, as before). For a full discussion of this change and reasons for it see:
<a href="https://ghostscript.com/pdfi.html">Changes Coming to the PDF Interpreter</a>.
<p>In this (9.55.0) release, the new PDF interpreter is disabled by default in Ghostscript,
but can be used by specifying <code>-dNEWPDF</code>. We hope to make it the default in 9.56.0, and
fully deprecate the PostScript implementation shortly after that (depending on the feedback
we get).
<p>This also allows us to offer a new executable (<code>gpdf</code>, or <code>gpdfwin??.exe</code>
on Windows) which is <i>purely</i> for PDF input. For this release, those new binaries are not included
in the "install" make targets, nor in the Windows installers (they will be from 9.56.0 onwards).
<p>We would ask that as many users as possible take the opportunity to test with the new PDF implementation
(i.e. using <code>-dNEWPDF</code> on your gs command line), and discuss any problems with us, before
the new implementation becomes the default.
</li>
<li>
<p>The pdfwrite device now supports "passthrough" for JPX/JPG2000 data images (as well as the
already supported JPEG/DCT Encoded). That means that if no rescaling or color conversion of the image data
is required, the encoded/compressed image data from the input file will be written unchanged to the output,
preventing potential image degradation caused by decompressing and recompressing.
</li>
<li>
<p>The Ghostscript/GhostPDL demo apps for C, C#, Java and Python have all had improvements and the
C#/Java/Python language bindings have now been documented, see <a href="language-bindings/index.html">Ghostscript Language Bindings</a>
</li>
<li>
<p>The Zugferd compliant PDF generating definitions (<code>lib/zugferd.ps</code>) have been updated and expanded to support the
current version (2.1.1) of the Zugferd spec, and optionally different versions of the specification.
</li>
<li>
<p>The PCL/m output devices now support Duplex/Tumble.
</li>
<li>
<p>The internal support for "n-up" style simple imposition (introduced in 9.54.0) has been extended and improved
for better support across all input formats.
</li>
<li>
<p>Ghostscript now supports object specific halftone - for example, different halftones can be specified for text and
images, reflecting the differing needs of rendering those two types of object.
</li>
<li>
<p>Our efforts in code hygiene and maintainability continue.
</li>
<li>
<p>The usual round of bug fixes, compatibility changes, and incremental improvements.
</li>
<li>
<p>(9.53.0) 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).
<p>Mainly due to time constraints, we only support including Tesseract from
source included in our release packages, and not linking to Tesseract/Leptonica
shared libraries. Whether we add this capability will be largely dependent on
community demand for the feature.
<p>See <a href="https://www.ghostscript.com/ocr.html">Enabling OCR</a> for more details.
</li>
</ul>
<p>For a list of open issues, or to report problems,
please visit <a href="http://bugs.ghostscript.com/">bugs.ghostscript.com</a>.
<h3><a name="9.55.0_Incompatible_changes"></a>Incompatible changes</h3>
<h4>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.</h4>
<ul>
<li>
<p>(9.55.0) Changes to the <code>device API</code>. This will affect developers and maintainers of
Ghostscript devices. Firstly, and most importantly, the way device-specific "procs" are specified has
been rewritten to make it (we think!) clearer and less confusing. See
<a href="Drivers.htm">The Interface between Ghostscript and Device Drivers</a> and
<a href="https://www.notion.so/artifexsoftware/The-Great-Device-Rework-Of-2021-94092fe1395d4a088b91462f0ca5038a">The Great Device Rework Of 2021</a>
for more details.
</li>
<li>
<p>(9.55.0) The command line options <code>-sGraphicsICCProfile=___</code>, <code>-dGraphicsIntent=#</code>, <code>-dGraphicsBlackPt=#</code>,
<code>-dGraphicsKPreserve=#</code> have been changed to <code>-sVectorICCProfile=___</code>, <code>-dVectorIntent=#</code>, <code>-dVectorBlackPt=#</code>,
<code>-dVectorKPreserve=#</code>.
</li>
<li>
<p>(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.
<p><strong>Note for GSView Users:</strong>The patch level addition breaks GSView 5 (it is
hardcoded to check for versions <code>704-999</code>. It is possible, but not guaranteed that
a GSView update might be forthcoming to resolve this.
</li>
<li>
<p>(9.52) <code>-dALLOWPSTRANSPARENCY</code>: 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 <code>-dSAFER</code> feature.
As we made "SAFER" the default mode, that became unacceptable, hence the new option
<code>-dALLOWPSTRANSPARENCY</code> which enables access to the operators.
</li>
<li>
<p>(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 PostScript functionality unchanged (except for the file access limitations).
Secondly, the interaction with <code>save</code>/<code>restore</code> operations
has changed. See <a href="Use.htm#Safer">SAFER</a>.
<p><strong>Important Note for Windows Users</strong>:
<br>
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
<i>in</i>sensitive. This is in recognition of changes in Windows behaviour,
in that it now supports (although does not enforce) case sensitivity.
</li>
<li>
<p>(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.
<p>If you encounter such a case, please contact us (<a href="https://discord.gg/H9GXKwyPvY">Discord<a>,
<a href="https://web.libera.chat/#ghostscript">#ghostscript IRC channel</a>,
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.
</li>
</ul>
<h3><a name="9.55.0_changelog"></a>Changelog</h3>
<p>From 9.55.0 onwards, in recognition of how unwieldy very large HTML files can become
(History9.html had reached 8.1Mb!), we intend to only include the summary highlights (above).
<p>For anyone wanting the full details of the changes in
a release, we ask them to look at the history in our public git repository:
<a href="https://git.ghostscript.com/?p=ghostpdl.git;a=shortlog;h=refs/tags/ghostpdl-9.55.0">ghostpdl-9.55.0</a> log.
<p>If this change does not draw negative feedback, History?.htm file(s) will be removed from the release archives.
<!-- [2.0 end contents] ==================================================== -->
<!-- [3.0 begin visible trailer] =========================================== -->
<hr>
<p>
<small>Copyright © 2005-2021 Artifex Software, Inc.
All rights reserved.</small>
<p>
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 <a href="https://www.artifex.com">https://www.artifex.com</a>
or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
<small>Ghostscript version 9.55.0, 27 September 2021
<!-- [3.0 end visible trailer] ============================================= -->
<!--FINISH EDITING HERE-->
</div>
</div>
</div>
<div class="footer">
<div class="row">
<div class="col-7 footleft">
<ul>
<li><a href="https://artifex.com/contact-us/" target="blank">CONTACT US</a></li>
<li><a href="https://artifex.com/about-us/" target="blank">ABOUT</a></li>
<li><a href="https://ghostscript.com/security.html">SECURITY</a></li>
</ul>
</div>
<div class="col-1 footcenter">
<ul>
<li><a href="https://artifex.com/support/" target="blank">SUPPORT</a></li>
<li><a href="https://artifex.com/blog/artifex/" target="blank">BLOG</a></li>
<li><a href="https://artifex.com/privacy-policy/" target="blank">PRIVACY</a></li>
</ul>
</div>
<div class="col-ft-3 footright"><img src="images/Artifex_logo.png" width="194" height="40" alt=""/> <br>
© Copyright 2019-2021 Artifex Software, Inc. <br>
All rights reserved.
</div>
</div>
</div>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="index.js"></script>
</body>
</html>
|