Updated ghostscript to 9.04

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@9007 af4574ff-66df-0310-9fd7-8a98e5e911e0
This commit is contained in:
Andrew Benton 2011-11-24 10:35:46 +00:00
parent 827336dc34
commit d453af5748
3 changed files with 93 additions and 114 deletions

View File

@ -881,7 +881,7 @@ $Date$
<!-- Chapter 42 -->
<!ENTITY cups-version "1.5.0">
<!ENTITY LPRng-version "3.8.B">
<!ENTITY gs-version "9.00">
<!ENTITY gs-version "9.04">
<!ENTITY gutenprint-version "5.2.5">
<!-- Obsolete

View File

@ -41,6 +41,15 @@
</listitem>
-->
<listitem>
<para>November 24th, 2011</para>
<itemizedlist>
<listitem>
<para>[abenton] - Updated ghostscript to 9.04.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>November 23rd, 2011</para>
<itemizedlist>

View File

@ -6,14 +6,14 @@
<!-- <!ENTITY gs-download-http "&sourceforge-repo;/ghostscript/ghostscript-&gs-version;.tar.bz2"> -->
<!-- FIXME use .bz2 or .xz when updating, if they are available -->
<!ENTITY gs-download-http "http://ghostscript.com/releases/ghostscript-&gs-version;.tar.gz">
<!ENTITY gs-download-http "http://ghostscript.com/releases/ghostscript-&gs-version;.tar.bz2">
<!-- no response 2010-12-18
<!ENTITY gs-download-ftp "ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs900/ghostscript-&gs-version;.tar.gz"> -->
<!ENTITY gs-download-ftp " ">
<!ENTITY gs-md5sum "a402462478b4cdda3e1816899227b845">
<!ENTITY gs-size "22.3 MB">
<!ENTITY gs-buildsize "170 MB (includes installing libgs.so and both font tarballs)">
<!ENTITY gs-time "2.7 SBU (includes building and installing libgs.so)">
<!ENTITY gs-md5sum "9f6899e821ab6d78ab2c856f10fa3023">
<!ENTITY gs-size "28.5 MB">
<!ENTITY gs-buildsize "297 MB (includes installing libgs.so and both font tarballs)">
<!ENTITY gs-time "2.5 SBU (includes building and installing libgs.so)">
<!-- <!ENTITY gs-standard-fonts-download "ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/ghostscript-fonts-std-8.11.tar.gz"> -->
<!ENTITY gs-standard-fonts-download "&sourceforge-repo;/gs-fonts/ghostscript-fonts-std-8.11.tar.gz">
@ -46,7 +46,7 @@
for PostScript data with the ability to render PostScript to different
targets.</para>
&lfs67_checked;
&lfs70_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
@ -98,20 +98,6 @@
</listitem>
</itemizedlist>
<itemizedlist spacing="compact">
<title>Patches</title>
<listitem>
<para>Required patch: <ulink
url="&patch-root;/ghostscript-&gs-version;-security_fixes-1.patch"/>
</para>
</listitem>
<listitem>
<para>Recommended patch (unless you build without JPEG2000 support) : <ulink
url="&patch-root;/ghostscript-&gs-version;-system_jasper-1.patch"/>
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Ghostscript Dependencies</bridgehead>
<bridgehead renderas="sect4">Recommended</bridgehead>
@ -133,7 +119,7 @@
<xref linkend="x-window-system"/>, and
<!-- the link for ijs source ultimately takes users back to the ghostscript site
<ulink url="http://www.linuxprinting.org/ijs/">IJS</ulink>, and -->
<ulink url="http://packages.debian.org/unstable/source/libpaper">libpaper</ulink></para>
<ulink url="http://packages.debian.org/unstable/source/libpaper">libpaper</ulink>.</para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/gs"/></para>
@ -152,142 +138,126 @@
libraries, you must do it using unconventional methods.</para>
</note>
<para>Begin by patching some vulnerabilities:</para>
<screen><userinput>patch -Np1 -i ../ghostscript-&gs-version;-security_fixes-1.patch
</userinput></screen>
<para><application>GPL Ghostscript</application> includes (old) copies of
several libraries. Some of these seem to have been patched to fix known
vulnerabilities, but others of these copies are less-well maintained.
To ensure that any future fixes are applied throughout the whole system,
it is recommended that you build the released versions of these libraries
and then configure <application>GPL Ghostscript</application> to link to
them. This configuration has several steps.</para>
it is recommended that you install the released versions of these
libraries and then configure <application>GPL Ghostscript</application>
to link to them.</para>
<para>Unless you intend to build <application>GPL Ghostscript</application>
without support for <literal>JPEG2000</literal> files, apply a patch to
allow it to build against a current system-installed version of
<application>JasPer</application>:</para>
<screen><userinput>patch -Np1 -i ../ghostscript-&gs-version;-system_jasper-1.patch
</userinput></screen>
<para>Remove the local copies of <application>expat</application>,
<application>JasPer</application>, <application>lcms</application>,
<application>libjpeg</application>, <application>libpng</application>,
<application>libtiff</application>, and <application>zlib</application>:
<para>If you have installed these dependencies on your system, remove the
copies of <application>expat</application>,
<application>freetype</application>, <application>JasPer</application>,
<application>lcms</application>, <application>libjpeg</application>,
<application>libpng</application>, <application>libtiff</application>
and <application>zlib</application>:
</para>
<screen><userinput>rm -rf expat jasper lcms jpeg libpng tiff zlib
</userinput></screen>
<screen><userinput>rm -rf expat freetype jasper lcms jpeg libpng tiff zlib</userinput></screen>
<para>Run the configure command:</para>
<screen><userinput>./configure --prefix=/usr --enable-dynamic --with-drivers=ALL,x11 --with-system-libtiff --disable-compile-inits</userinput></screen>
<screen><userinput>./configure --prefix=/usr --enable-dynamic --with-system-libtiff</userinput></screen>
<para>To ensure the build is able to use the system versions of
<application>expat</application>, <application>freetype</application>, and
<application>lcms</application> it is necessary to make some changes and an
<application>zlib</application> it is necessary to make some changes and an
addition to the <literal>Makefile</literal> before building the package:</para>
<screen><userinput>sed -i -e 's|SHARE_LCMS=0|SHARE_LCMS=1|' \
-e 's|LCMSSRCDIR=lcms|LCMSSRCDIR=/usr|' \
-e 's|=imdi|&amp;\n\n# Use system expat library\n\nSHARE_EXPAT=1|' \
-e 's|SHARE_FT=0|SHARE_FT=1|' Makefile &amp;&amp;
<screen><userinput>sed -i '/^EXTRALIBS/s# -ldl# -lfreetype -lz#
/=imdi/aSHARE_EXPAT=1' Makefile &amp;&amp;
make</userinput></screen>
<warning>
<para>If you have a multiprocessor computer and try to run make with
multiple jobs (eg, -j4) then the build may fail due to race conditions in
the <application>Ghostscript</application> build system.</para>
</warning>
<note>
<para>The shared library depends on <xref linkend="gtk2"/>. It is
only used in external programs like <xref linkend="imagemagick"/>.</para>
</note>
<para>To compile the shared library
<filename class='libraryfile'>libgs.so</filename>, run the
following additional command as an unprivileged user:</para>
<screen><userinput>make so</userinput></screen>
<para>This package does not come with a test suite. However, you may test
the operation of the newly built <command>gs</command> program by
issuing the following command (issue from an X Windows terminal):</para>
<screen><userinput>bin/gs -Ilib -dBATCH examples/tiger.eps</userinput></screen>
<para>Now, as the <systemitem class="username">root</systemitem> user:</para>
<!-- for 9.00 docdir is only referenced by GS_DOCDIR which is itself not referenced
so the docs still go into /usr/share/ghostscript/9.00/
<screen role="root"><userinput>make install docdir=/usr/share/doc/ghostscript-&gs-version; &amp;&amp;-->
<screen role="root"><userinput>make install &amp;&amp;
for INSTFILE in `ls doc`
do
<!--if [ ! -f /usr/share/doc/ghostscript-&gs-version;/$INSTFILE ]; then -->
if [ ! -f /usr/share/ghostscript/&gs-version;/doc/$INSTFILE ]; then
install -v -m644 doc/$INSTFILE \
/usr/share/ghostscript/&gs-version;/doc
<!--/usr/share/doc/ghostscript-&gs-version;-->
fi
done &amp;&amp;
<!--install -v -m755 -d /usr/share/doc/ghostscript-&gs-version;/figures &amp;&amp;-->
install -v -m755 -d /usr/share/ghostscript/&gs-version;/doc/figures &amp;&amp;
install -v -m644 doc/figures/* \
/usr/share/ghostscript/&gs-version;/doc/figures &amp;&amp;
<!--/usr/share/doc/ghostscript-&gs-version;/figures-->
ln -sv ../ghostscript/&gs-version;/doc /usr/share/doc/ghostscript-&gs-version;
</userinput></screen>
<para>To install the shared library
<filename class='libraryfile'>libgs.so</filename>, run the
following additional command as an unprivileged user:</para>
<screen><userinput>make so</userinput></screen>
<para>And again as the <systemitem class="username">root</systemitem>
<para>Now, as the <systemitem class="username">root</systemitem>
user:</para>
<screen role="root"><userinput>make soinstall docdir=/usr/share/doc/ghostscript-&gs-version; &amp;&amp;
<screen role="root"><userinput>make install</userinput></screen>
<para>If you want the shared library too:</para>
<screen role="root"><userinput>make soinstall &amp;&amp;
install -v -m644 base/*.h /usr/include/ghostscript &amp;&amp;
ln -v -s ghostscript /usr/include/ps</userinput></screen>
<note>
<para>The shared library depends on <xref linkend="gtk2"/>. It is
only used in external programs like <!-- <xref linkend="gsview"/> and -->
<xref linkend="imagemagick"/>.</para>
</note>
<para>Now install the documentation:</para>
<screen role="root"><userinput>cp -rf doc /usr/share/ghostscript/&gs-version; &amp;&amp;
ln -sv ../ghostscript/&gs-version;/doc /usr/share/doc/ghostscript-&gs-version;</userinput></screen>
<para>To finish the installation, unpack all fonts you've downloaded to
<filename class="directory">/usr/share/ghostscript</filename> and ensure
the ownerships of the files are
<systemitem class="username">root</systemitem>:<systemitem
class="groupname">root</systemitem>. Substitute
<systemitem class="username">root</systemitem>:
<systemitem class="groupname">root</systemitem>. Substitute
<replaceable>&lt;font-tarball&gt;</replaceable> appropriately in
the command below for the fonts you wish to install:</para>
<screen role="root"><userinput>tar -xvf ../<replaceable>&lt;font-tarball&gt;</replaceable> \
-C /usr/share/ghostscript --no-same-owner</userinput></screen>
<screen role="root"><userinput>tar -xvf ../<replaceable>&lt;font-tarball&gt;</replaceable> -C /usr/share/ghostscript --no-same-owner</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para><command>--with-drivers=ALL,x11</command>: This parameter adds the
<!-- works fine on 32 bit systems for me - Andrew Benton
<para><command>with-drivers=ALL,x11</command>: This parameter adds the
<literal>x11</literal> output device to the default (<literal>ALL</literal>)
selection so that the test to render the tiger will work on 32-bit systems
(this does no harm on the <literal>x86_64</literal> architecture, although
it is not required there).</para>
<para><command>--disable-compile-inits</command>: This parameter is intended
to avoid compiling initialization files into the executables. It is used here
to simplify building agaisnt the system version of
<application>zlib</application>.</para>
<para><option>--without-jasper</option>: If you know you do not wish to print
any <literal>JPEG2000</literal> files, this switch (and removing the
<filename class="directory">jasper/</filename> source) will achieve this.</para>
it is not required there).</para> -->
<!-- The build fails for me with this option with ghostscript-9.04 and
zlib-1.2.5 - Andrew Benton
<para><command>disable-compile-inits</command>: This parameter is intended
to avoid compiling initialization files into the executables. It is used
here to simplify building against the system version of
<application>zlib</application>.</para> -->
<para><option>--without-jasper</option>: If you know you do not wish to
print any <literal>JPEG2000</literal> files, this switch (and removing the
<filename class="directory">jasper</filename> folder in the source) will
disable JPEG2000 support in <application>Ghostscript</application>.</para>
<para><option>--without-jbig2dec</option>: The <literal>JBIG2</literal>
decompression code (used for some faxes) can be disabled by using this switch
and removing the <filename class="directory">jbig2dec/</filename> source.</para>
<para><command>install ...</command>: Some packages
decompression code (used for some faxes) can be disabled by using this
switch and removing the <filename class="directory">jbig2dec/</filename>
source.</para>
<para><command>install -v -m644 base/*.h...</command>: Some packages
(<application>ImageMagick</application> is one) need the
<application>Ghostscript</application> interface headers in place to link
to the shared library. These commands install the headers.</para>
<para><command>ln -sv ... /usr/share/doc/ghostscript-&gs-version;</command>: This puts
the documentation where it is expected to be found.</para>
<para><command>ln -sv ... /usr/share/doc/ghostscript-&gs-version;</command>:
This puts a symbolic link to the documentation where it is expected to be
found.</para>
<para><command>ln -v -s ghostscript /usr/include/ps</command>: Some
packages expect to find the interface headers in an alternate
location.</para>
<para><command>ln -v -s ghostscript /usr/include/ps</command>: Some packages
expect to find the interface headers in an alternate location.</para>
</sect2>
@ -300,14 +270,14 @@ ln -v -s ghostscript /usr/include/ps</userinput></screen>
<seglistitem>
<seg>bdftops, dumphint, dvipdf, eps2eps, fixmswrd.pl, font2c, gs, gsbj,
gsc (from soinstall), gsdj, gsdj500, gslj, gslp, gsnd, gsx (from soinstall),
lprsetup.sh, pdf2dsc, pdf2ps, pdfopt,
gsc (from soinstall), gsdj, gsdj500, gslj, gslp, gsnd, gsx
(from soinstall), lprsetup.sh, pdf2dsc, pdf2ps, pdfopt,
pf2afm, pfbtopfa, printafm, ps2ascii, ps2epsi, ps2pdf, ps2pdf12,
ps2pdf13, ps2pdf14, ps2pdfwr, ps2ps, ps2ps2, pv.sh, unix-lpr.sh, and
wftopfa</seg>
<seg>libgs.so </seg>
<seg>/usr/include/ghostscript, /usr/lib/ghostscript, /usr/share/ghostscript,
<!--and /usr/share/doc/ghostscript</seg>-->
<seg>/usr/include/ghostscript, /usr/lib/ghostscript,
/usr/share/ghostscript,
and /usr/share/doc/ghostscript-&gs-version;</seg>
</seglistitem>
</segmentedlist>
@ -320,8 +290,8 @@ ln -v -s ghostscript /usr/include/ps</userinput></screen>
<varlistentry id="gplgs-prog">
<term><command>gs</command></term>
<listitem>
<para>is an interpreter for Adobe Systems' PostScript(tm) and Portable Document Format
(PDF).</para>
<para>is an interpreter for Adobe Systems' PostScript(tm) and Portable
Document Format (PDF).</para>
<indexterm zone="gs gplgs-prog">
<primary sortas="b-gs">gs</primary>
</indexterm>