source: pst/printing/gs.xml@ f429481

ken/refactor-virt lazarus trunk
Last change on this file since f429481 was f429481, checked in by Ken Moffat <ken@…>, 3 months ago

ghostscript - patch it to fix CVE-2021-3781.

  • Property mode set to 100644
File size: 13.2 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!-- When updating, ensure gs9xx is updated in url -->
8
9 <!ENTITY gs-download-http
10 "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs&gs-packver;/ghostscript-&gs-version;.tar.xz">
11 <!ENTITY gs-download-ftp " ">
12 <!ENTITY gs-md5sum "72535d31018129a1a8ff636a47ba1f92">
13 <!ENTITY gs-size "53 MB">
14 <!ENTITY gs-buildsize "342 MB (with fonts and libgs.so)">
15 <!ENTITY gs-time "1.8 SBU (Using parallelism=4; with libgs.so)">
16
17 <!ENTITY gs-standard-fonts-download
18 "&sourceforge-dl;/gs-fonts/ghostscript-fonts-std-8.11.tar.gz">
19 <!ENTITY gs-standard-fonts-md5sum "6865682b095f8c4500c54b285ff05ef6">
20 <!ENTITY gs-standard-fonts-size "3.7 MB">
21
22 <!ENTITY gs-other-fonts-download
23 "&sourceforge-dl;/gs-fonts/gnu-gs-fonts-other-6.0.tar.gz">
24 <!ENTITY gs-other-fonts-md5sum "33457d3f37de7ef03d2eea05a9e6aa4f">
25 <!ENTITY gs-other-fonts-size "796 KB">
26]>
27
28<sect1 id="gs" xreflabel="ghostscript-&gs-version;">
29 <?dbhtml filename="gs.html"?>
30
31 <sect1info>
32 <date>$Date$</date>
33 </sect1info>
34
35 <title>ghostscript-&gs-version;</title>
36
37 <indexterm zone="gs">
38 <primary sortas="a-Ghostscript">Ghostscript</primary>
39 </indexterm>
40
41 <sect2 role="package">
42 <title>Introduction to Ghostscript</title>
43
44 <para>
45 <application>Ghostscript</application> is a versatile processor
46 for PostScript data with the ability to render PostScript to different
47 targets. It is a mandatory part of the cups printing stack.
48 </para>
49
50 &lfs110a_checked;
51
52 <bridgehead renderas="sect3">Package Information</bridgehead>
53 <itemizedlist spacing="compact">
54 <listitem>
55 <para>
56 Download (HTTP): <ulink url="&gs-download-http;"/>
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download (FTP): <ulink url="&gs-download-ftp;"/>
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Download MD5 sum: &gs-md5sum;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Download size: &gs-size;
72 </para>
73 </listitem>
74 <listitem>
75 <para>
76 Estimated disk space required: &gs-buildsize;
77 </para>
78 </listitem>
79 <listitem>
80 <para>
81 Estimated build time: &gs-time;
82 </para>
83 </listitem>
84 </itemizedlist>
85
86 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
87<!-- Commenting this out since it's no longer needed, but keeping it for the
88 inevitable next time that we need a patch for this package. -->
89 <itemizedlist spacing="compact">
90 <listitem>
91 <para>
92 Required patch:
93 <ulink url="&patch-root;/ghostscript-&gs-version;-upstream_fix-2.patch"/>
94 </para>
95 </listitem>
96 </itemizedlist>
97
98 <para>
99 If you wish, you can download additional fonts.
100 </para>
101
102 <itemizedlist spacing="compact">
103 <title>Standard Fonts</title>
104 <listitem>
105 <para>
106 Download (HTTP): <ulink url="&gs-standard-fonts-download;"/>
107 </para>
108 </listitem>
109 <listitem>
110 <para>
111 Download MD5 sum: &gs-standard-fonts-md5sum;
112 </para>
113 </listitem>
114 <listitem>
115 <para>
116 Download size: &gs-standard-fonts-size;
117 </para>
118 </listitem>
119 </itemizedlist>
120
121 <itemizedlist spacing="compact">
122 <title>Other Fonts</title>
123 <listitem>
124 <para>
125 Download (HTTP): <ulink url="&gs-other-fonts-download;"/>
126 </para>
127 </listitem>
128 <listitem>
129 <para>
130 Download MD5 sum: &gs-other-fonts-md5sum;
131 </para>
132 </listitem>
133 <listitem>
134 <para>
135 Download size: &gs-other-fonts-size;
136 </para>
137 </listitem>
138 </itemizedlist>
139
140 <bridgehead renderas="sect3">Ghostscript Dependencies</bridgehead>
141
142 <bridgehead renderas="sect4">Recommended</bridgehead>
143 <para role="recommended">
144 <xref linkend="cups"/> (required for building the <quote>cups</quote>
145 device backend, which is needed by
146 <application>cups-filters</application>),
147 <xref linkend="fontconfig"/> (required, if you are installing any
148 suggested font),
149 <xref linkend="freetype2"/>,
150 <xref linkend="libjpeg"/>,
151 <xref linkend="libpng"/>,
152 <xref linkend="libtiff"/>, and
153 <xref linkend="openjpeg2"/>
154 </para>
155
156 <bridgehead renderas="sect4">Optional</bridgehead>
157 <para role="optional">
158 <xref linkend="cairo"/>,
159 <xref linkend="gtk3"/>,
160 <xref linkend="libidn"/>,
161 <xref linkend="libpaper"/>, and
162 <xref linkend="x-window-system"/>
163 </para>
164
165 <para condition="html" role="usernotes">
166 User Notes: <ulink url="&blfs-wiki;/gs"/>
167 </para>
168 </sect2>
169
170 <sect2 role="installation">
171 <title>Installation of Ghostscript</title>
172
173 <note>
174 <para>
175 The <application>Ghostscript</application> build system is not
176 user-friendly. In order to use system copies of various graphics
177 libraries, you must do it using unconventional methods.
178 </para>
179 </note>
180
181 <para>
182 <application>Ghostscript</application> includes (old) copies of
183 several libraries. Some of these seem to have been patched to fix known
184 vulnerabilities, but others of these copies are less-well maintained.
185 To ensure that any future fixes are applied throughout the whole system,
186 it is recommended that you first install the released versions of these
187 libraries and then configure <application>Ghostscript</application>
188 to link to them.
189 </para>
190
191 <para>
192 If you have installed the recommended dependencies on your system,
193 remove the copies of
194 <application>freetype</application>, <application>lcms2</application>,
195 <application>libjpeg</application>, <application>libpng</application>,
196 and <application>openjpeg</application>:
197 </para>
198
199<screen><userinput>rm -rf freetype lcms2mt jpeg libpng openjpeg</userinput></screen>
200
201 <para>
202 Apply a patch to prevent a segfault when processing some PDF files and
203 to fix a public 0-day in libgs which can be exploited via ImageMagick:
204 </para>
205
206<screen><userinput remap="pre">patch -Np1 -i ../ghostscript-&gs-version;-upstream_fix-2.patch</userinput></screen>
207
208 <para>
209 Compile <application>Ghostscript</application>:
210 </para>
211
212<screen><userinput>rm -rf zlib &amp;&amp;
213
214./configure --prefix=/usr \
215 --disable-compile-inits \
216 --enable-dynamic \
217 --with-system-libtiff &amp;&amp;
218make</userinput></screen>
219
220 <note>
221 <para>
222 The shared library depends on <xref linkend="gtk3"/>. It is only used by
223 external programs like <xref linkend="asymptote"/>, <xref
224 linkend="dvisvgm"/>, <xref linkend="imagemagick"/>, and <xref
225 linkend="texlive"/>.
226 </para>
227 </note>
228
229 <para>
230 To compile the shared library
231 <filename class="libraryfile">libgs.so</filename>, run the following
232 additional command as an unprivileged user:
233 </para>
234
235<screen><userinput>make so</userinput></screen>
236
237 <para>
238 This package does not come with a test suite. A set of example files
239 may be used for testing, but it is only possible after installation
240 of the package.
241 </para>
242
243 <para>
244 Now, as the <systemitem class="username">root</systemitem> user:
245 </para>
246
247<screen role="root"><userinput>make install</userinput></screen>
248
249 <para>
250 If you want the shared library too:
251 </para>
252
253<screen role="root"><userinput>make soinstall &amp;&amp;
254install -v -m644 base/*.h /usr/include/ghostscript &amp;&amp;
255ln -sfvn ghostscript /usr/include/ps</userinput></screen>
256
257 <para>
258 Now make the documentation accessible from a standard place:
259 </para>
260<!-- Starting with 9.23, the install does not seem to copy the examples any more -->
261
262<screen role="root"><userinput>mv -v /usr/share/doc/ghostscript/&gs-version; /usr/share/doc/ghostscript-&gs-version; &amp;&amp;
263rm -rfv /usr/share/doc/ghostscript &amp;&amp;
264cp -r examples/ /usr/share/ghostscript/&gs-version;/</userinput></screen>
265
266 <para>
267 If you have downloaded the fonts, unpack them to
268 <filename class="directory">/usr/share/ghostscript</filename> and ensure
269 the ownership of the files are
270 <systemitem class="username">root</systemitem>:
271 <systemitem class="groupname">root</systemitem>.
272 </para>
273
274<screen role="root"><userinput>tar -xvf ../ghostscript-fonts-std-8.11.tar.gz -C /usr/share/ghostscript --no-same-owner &amp;&amp;
275tar -xvf ../gnu-gs-fonts-other-6.0.tar.gz -C /usr/share/ghostscript --no-same-owner &amp;&amp;
276fc-cache -v /usr/share/ghostscript/fonts/</userinput></screen>
277
278 <para>
279 You can now test the rendering of various postscript and pdf files from the
280 <filename class="directory">/usr/share/ghostscript/&gs-version;/examples
281 </filename>. To do this, run the following command (in a X Windows display):
282 </para>
283
284<screen remap="test"><userinput>gs -q -dBATCH /usr/share/ghostscript/&gs-version;/examples/tiger.eps</userinput></screen>
285
286 </sect2>
287
288 <sect2 role="commands">
289 <title>Command Explanations</title>
290
291 <para>
292 <command>rm -rf zlib </command>: <application>zlib</application>
293 was installed as part of LFS.
294 </para>
295
296 <para>
297 <parameter>--disable-compile-inits</parameter>: This option makes
298 <command>gs</command> and <filename>libgs.so</filename> slightly smaller.
299 </para>
300
301 <para>
302 <parameter>--with-system-libtiff</parameter>: Remove this option if
303 you've not installed <xref linkend="libtiff"/>.
304 </para>
305
306 <para>
307 <command>install -v -m644 base/*.h... </command>: Some packages
308 (<application>ImageMagick</application> is one) need the
309 <application>Ghostscript</application> interface headers in place to link
310 to the shared library. These commands install the headers.
311 </para>
312
313 <para>
314 <command>ln -sfvn ghostscript /usr/include/ps</command>: Some packages
315 expect to find the interface headers in an alternate location.
316 </para>
317
318 <para>
319 <command>mv -v /usr/share/doc/ghostscript/&gs-version;
320 /usr/share/doc/ghostscript-&gs-version;</command>: This moves the
321 documentation where it is expected to be found.
322 </para>
323
324 <para>
325 <option>--disable-cups</option>: this option will save a tiny amount of
326 space by not linking <command>gs</command> and <filename>libgs.so</filename>
327 to the <xref linkend="cups"/> libraries if you have installed those.
328 </para>
329 </sect2>
330
331 <sect2 role="content">
332 <title>Contents</title>
333 <segmentedlist>
334 <segtitle>Installed Programs</segtitle>
335 <segtitle>Installed Library</segtitle>
336 <segtitle>Installed Directories</segtitle>
337
338 <seglistitem>
339 <seg>
340 dvipdf, eps2eps, gs, gsbj, gsc (from soinstall), gsdj,
341 gsdj500, gslj, gslp, gsnd, gsx (from soinstall), lprsetup.sh,
342 pdf2dsc, pdf2ps, pf2afm, pfbtopfa, pphs, printafm, ps2ascii,
343 ps2epsi, ps2pdf, ps2pdf12, ps2pdf13, ps2pdf14, ps2pdfwr,
344 ps2ps, ps2ps2, and unix-lpr.sh
345 <!-- I don't see bdftops,fixmswrd.pl or pv.sh on my builds [ I don't
346 have any bdf tools from xorg ] but they are still referenced in
347 base/unixinst.mak -->
348 </seg>
349 <seg>libgs.so and
350 /usr/lib/ghostscript/&gs-version;/X11.so</seg>
351 <seg>
352 /usr/include/ghostscript,
353 /usr/lib/ghostscript,
354 /usr/share/ghostscript, and
355 /usr/share/doc/ghostscript-&gs-version;
356 </seg>
357 </seglistitem>
358 </segmentedlist>
359
360 <variablelist>
361 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
362 <?dbfo list-presentation="list"?>
363 <?dbhtml list-presentation="table"?>
364
365 <varlistentry id="gplgs-prog">
366 <term><command>gs</command></term>
367 <listitem>
368 <para>
369 is an interpreter for Adobe Systems' PostScript(tm) and Portable
370 Document Format (PDF)
371 </para>
372 <indexterm zone="gs gplgs-prog">
373 <primary sortas="b-gs">gs</primary>
374 </indexterm>
375 </listitem>
376 </varlistentry>
377
378 <varlistentry id="libgs.so">
379 <term><filename class="libraryfile">libgs.so</filename></term>
380 <listitem>
381 <para>
382 provides <application>Ghostscript</application> functionality to
383 other programs, such as <application>GSView</application>,
384 <application>ImageMagick</application>, and
385 <application>libspectre</application>
386 </para>
387 <indexterm zone="gs libgs.so">
388 <primary sortas="c-libgs.so">libgs.so</primary>
389 </indexterm>
390 </listitem>
391 </varlistentry>
392 </variablelist>
393
394 <para>
395 <application>Ghostscript</application> provides many different
396 scripts used to convert PostScript, PDF, and other formats. Please refer to
397 the HTML documentation or the man pages for information about the
398 capabilities provided.
399 </para>
400 </sect2>
401
402</sect1>
Note: See TracBrowser for help on using the repository browser.