source: pst/ps/fop.xml@ f40a6e9

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since f40a6e9 was f40a6e9, checked in by Bruce Dubbs <bdubbs@…>, 15 years ago

Update fop md5sum

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@7805 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 16.7 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 <!ENTITY fop-download-http "http://archive.apache.org/dist/xmlgraphics/fop/source/fop-&fop-version;-src.tar.gz">
8 <!-- <!ENTITY fop-download-ftp "ftp://apache.mirrors.pair.com/xmlgraphics/fop/fop-&fop-version;-src.tar.gz"> -->
9 <!ENTITY fop-download-ftp "&sources-anduin-ftp;/f/fop-&fop-version;-src.tar.gz">
10 <!ENTITY fop-md5sum "58593e6c86be17d7dc03c829630fd152">
11 <!ENTITY fop-size "11.7 MB">
12 <!ENTITY fop-buildsize "216 MB">
13 <!ENTITY fop-time "0.9 SBU">
14
15 <!ENTITY jai-version "1_1_3">
16 <!ENTITY jai-download "http://download.java.net/media/jai/builds/release/&jai-version;/jai-&jai-version;-lib-linux-i586-jdk.bin">
17 <!ENTITY jai-md5sum "a63b661c4940582aa1679233e5f518b2">
18 <!ENTITY jai-size "3.4 MB">
19
20 <!ENTITY offo-download "&sourceforge-repo;/offo/offo-hyphenation.zip">
21 <!ENTITY offo-md5sum "0b8c1657ef70285ad7fd514061b08c3e">
22 <!ENTITY offo-size "359 KB">
23]>
24
25<sect1 id="fop" xreflabel="FOP-&fop-version;">
26 <?dbhtml filename="fop.html"?>
27
28 <sect1info>
29 <othername>$LastChangedBy$</othername>
30 <date>$Date$</date>
31 </sect1info>
32
33 <title>FOP-&fop-version;</title>
34
35 <indexterm zone="fop">
36 <primary sortas="a-FOP">FOP</primary>
37 </indexterm>
38
39 <sect2 role="package">
40 <title>Introduction to FOP</title>
41
42 <para>The <application>FOP</application> (Formatting Objects Processor)
43 package contains a print formatter driven by XSL formatting objects
44 (XSL-FO). It is a <application>Java</application> application that reads
45 a formatting object tree and renders the resulting pages to a specified
46 output. Output formats currently supported include PDF, PCL, PostScript,
47 SVG, XML (area tree representation), print, AWT, MIF and ASCII text. The
48 primary output target is PDF.</para>
49
50 <bridgehead renderas="sect3">Package Information</bridgehead>
51 <itemizedlist spacing="compact">
52 <listitem>
53 <para>Download (HTTP): <ulink url="&fop-download-http;"/></para>
54 </listitem>
55 <listitem>
56 <para>Download (FTP): <ulink url="&fop-download-ftp;"/></para>
57 </listitem>
58 <listitem>
59 <para>Download MD5 sum: &fop-md5sum;</para>
60 </listitem>
61 <listitem>
62 <para>Download size: &fop-size;</para>
63 </listitem>
64 <listitem>
65 <para>Estimated disk space required: &fop-buildsize;</para>
66 </listitem>
67 <listitem>
68 <para>Estimated build time: &fop-time;</para>
69 </listitem>
70 </itemizedlist>
71
72 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
73
74 <itemizedlist spacing="compact">
75 <title>Required packages</title>
76 <listitem>
77 <para>Objects for Formatting Objects (OFFO) hyphenation patterns:
78 <simplelist>
79 <member><ulink url="&offo-download;"/></member>
80 <member>&offo-md5sum;</member>
81 <member>&offo-size;</member>
82 </simplelist>
83 </para>
84 </listitem>
85 <listitem>
86 <para>Java Advanced Imaging (JAI) API components:
87 <simplelist>
88 <member><ulink url="&jai-download;"/></member>
89 <member>&jai-md5sum;</member>
90 <member>&jai-size;</member>
91 </simplelist>
92 </para>
93 </listitem>
94 </itemizedlist>
95
96 <!-- <itemizedlist spacing='compact'>
97 <title>Required patch</title>
98 <listitem>
99 <para><ulink
100 url="&patch-root;/fop-&fop-version;-jdk_1.5.0-1.patch"/></para>
101 </listitem>
102 </itemizedlist> -->
103
104 <bridgehead renderas="sect3">FOP Dependencies</bridgehead>
105
106 <bridgehead renderas="sect4">Required</bridgehead>
107 <para role="required"><xref linkend="apache-ant"/></para>
108
109 <bridgehead renderas="sect4">Optional</bridgehead>
110 <para role="optional"><ulink url="http://java.sun.com/products/jimi/">JIMI SDK</ulink>,
111 <ulink url="http://xmlunit.sourceforge.net/">XMLUnit</ulink>, and
112 <ulink url="http://forrest.apache.org/">Forrest</ulink> (only used to rebuild
113 the documentation)</para>
114
115 <para condition="html" role="usernotes">User Notes:
116 <ulink url="&blfs-wiki;/fop"/></para>
117
118 </sect2>
119
120 <sect2 role="installation">
121 <title>Installation of FOP</title>
122
123 <para>Ensure <envar>$JAVA_HOME</envar> is set correctly before beginning
124 the build. To build the <application>JIMI SDK</application> and/or
125 <application>XMLUnit</application> extension classes, ensure the
126 corresponding <filename class='extension'>.jar</filename> files are
127 identified in the <envar>CLASSPATH</envar> environment variable.</para>
128
129 <!-- <para>Some versions of tar will display a message similar to
130 <quote><computeroutput>tar: A lone zero block at 33476</computeroutput></quote>
131 when unpacking the source tarball. You may safely ignore this message.</para> -->
132
133 <sect3>
134 <title>Installing OFFO Hyphenation Patterns</title>
135
136 <para>Before beginning the build, unpack the
137 <application>FOP</application> source tarball and the hyphenation zipfile
138 from the same directory, then change directories into the root of the
139 <application>FOP</application> source tree. The XML Hyphenation patterns
140 will be copied into the <application>FOP</application> source tree by
141 running the following commands:</para>
142
143<screen><userinput>cp ../offo-hyphenation/hyph/* hyph &amp;&amp;
144rm -rf ../offo-hyphenation</userinput></screen>
145
146 </sect3>
147
148 <sect3>
149 <title>Installing JAI</title>
150
151 <tip>
152 <para>The <command>$FOP_PKG_DIR/jai-&jai-version;-lib-linux-i586-jdk.bin</command>
153 command below installs the JAI components in the JDK tree. You will be
154 required to view, and then accept (by entering a <keycap>y</keycap>
155 keypress), a license agreement before the installation will continue.
156 If you are scripting (automating) the build, you'll need to account for
157 this. There is information about automating build commands in the
158 <xref linkend="automating-builds"/> section of Chapter 2. Towards the
159 end of this section, specific information for automating this type of
160 installation is discussed.</para>
161 </tip>
162
163 <para>Install the JAI components by running the following commands as
164 the <systemitem class="username">root</systemitem> user while in the
165 root of the <application>FOP</application> source tree:</para>
166
167<!-- JAI make tail +nnn only for SunOS now
168<screen role="root"><userinput>install -m755 ../jai-&jai-version;-lib-linux-i586-jdk.bin JAI.bin &amp;&amp;
169sed -i 's/tail +122/tail -n +122/' JAI.bin &amp;&amp;
170-->
171<screen role="root"><userinput>FOP_PKG_DIR=$(pwd)/.. &amp;&amp;
172pushd $JAVA_HOME &amp;&amp;
173sh $FOP_PKG_DIR/jai-&jai-version;-lib-linux-i586-jdk.bin &amp;&amp;
174popd</userinput></screen>
175
176 </sect3>
177
178 <sect3>
179 <title>Installing FOP Components</title>
180
181 <para>In case of not having <application>forrest</application> installed, remove
182 a reference to it in the build.xml:</para>
183<screen><userinput>sed -i -e "s/all,javadocs,docs/all,javadocs/" \
184 -e '\#${dist.bin.result.dir}/docs#,\#&lt;/copy&gt;#d' build.xml</userinput></screen>
185
186 <para>Compile <application>FOP</application> by running the
187 following commands:</para>
188
189<screen><userinput>ant dist</userinput></screen>
190
191 <para>The unit regression tests were performed in the build step
192 above.</para>
193
194 <para>Now install FOP as the <systemitem class="username">root</systemitem> user:</para>
195
196<screen role="root"><userinput>install -v -d -m755 /opt/fop-&fop-version; &amp;&amp;
197pushd dist-bin/fop-&fop-version; &amp;&amp;
198cp -v -R * /opt/fop-&fop-version; &amp;&amp;
199popd &amp;&amp;
200ln -v -sf fop-&fop-version; /opt/fop</userinput></screen>
201
202 </sect3>
203
204 <!-- <sect3>
205 <title>Installing the Batik JAR</title>
206
207 <para>You'll need to install one additional <application>Java</application>
208 class library to process SVG objects. This library is part of the
209 <ulink url="http://xml.apache.org/batik/">Batik</ulink> package, but is
210 also included with the <application>FOP</application> package. If you
211 have <application>Batik</application> installed, ensure the
212 <filename>batik.jar</filename> library is included in your
213 <envar>$CLASSPATH</envar> environment variable. Alternatively, create a
214 symbolic link from <filename>/opt/fop-&fop-version;/lib/batik.jar</filename>
215 pointing to the full path of the installed <filename>batik.jar</filename>
216 file so that the <command>fop.sh</command> script will automatically pick it
217 up.</para>
218
219 <para>If you don't have the <application>Batik</application> package
220 installed, run the following commands as the <systemitem
221 class="username">root</systemitem> user:</para>
222
223<screen role="root"><userinput>install -v -m644 lib/batik.jar /opt/fop-&fop-version;/lib &amp;&amp;
224install -v -m644 lib/batik.LICENSE.txt \
225 /opt/fop-&fop-version;/docs/lib</userinput></screen>
226
227 </sect3>
228
229 <sect3>
230 <title>Installing the Xalan-Java components</title>
231
232 <para>The components of <application>FOP</application> required to
233 process FO files created by an XSL transformation engine (also known
234 as an XSLT processor) is now complete. An XSL transformation engine
235 (<command>xsltproc</command>) is included with the
236 <xref linkend="libxslt"/> package in BLFS. The
237 <application>FOP</application> package includes components of
238 <ulink url="http://xml.apache.org/xalan-j/">Xalan-Java</ulink> to
239 accomplish XSL transformations. If you have the
240 <application>Xalan-Java</application> package installed, skip to
241 the next section.</para>
242
243 <para>If you wish to install the <application>Xalan-Java</application>
244 components provided by the <application>FOP</application>
245 package, run the following commands as the <systemitem
246 class="username">root</systemitem> user:</para>
247
248<screen role="root"><userinput>sed -i "s/build/lib/" xalan.sh &amp;&amp;
249install -v -m755 xalan.sh /opt/fop-&fop-version;/bin &amp;&amp;
250install -v -m644 lib/xml-apis.jar \
251 lib/xercesImpl-2.2.1.jar \
252 lib/xalan-2.4.1.jar \
253 /opt/fop-&fop-version;/lib &amp;&amp;
254install -v -m644 lib/{xml-apis,xerces,xalan}.LICENSE.txt \
255 lib/xml-apis.README.txt \
256 /opt/fop-&fop-version;/docs/lib</userinput></screen>
257
258 </sect3>
259
260 <sect3>
261 <title>Installing the Jimi SDK JAR</title>
262
263 <para>If you installed the Java Image I/O class library
264 (<application>Jimi SDK</application>) into the
265 <application>FOP</application> source tree
266 <filename class='directory'>lib</filename> directory before building
267 <application>FOP</application> (this will enable Jimi
268 support), ensure you also install this JAR file into
269 <filename class='directory'>/opt/fop-&fop-version;/lib</filename>.</para>
270
271 </sect3> -->
272
273 </sect2>
274
275 <sect2 role="commands">
276 <title>Command Explanations</title>
277
278 <para><command>FOP_PKG_DIR=$(pwd)/..</command>: Assuming that the source packages
279 are stored one level above of the current working directory. This is the allways default - but
280 may be different because of personal tast. Change this to match the directory where the
281 FOP tarball can be found.</para>
282
283 <para><command>sh $FOP_PKG_DIR/jai-&jai-version;-lib-linux-i586-jdk.bin</command>: This
284 command installs the <application>JAI</application> components
285 into the <application>JDK</application> file structure.
286 <envar>$FOP_PKG_DIR</envar> is used as a reference point to the source
287 executable.</para>
288
289 <!-- <para><command>sed -i "s/build/lib/" ...</command>: These commands modify
290 the installed shell scripts so that the location of the installed
291 <filename>fop.jar</filename> file is correctly identified.</para> -->
292
293 <!-- <para><command>install -v ...; cp -v ...</command>: There is no installation
294 script provided by the <application>FOP</application>
295 package. These commands install the package.</para> -->
296
297 <para><command>ant dist</command>: This reads the <filename>build.xml</filename>
298 file and performs the <option>dist</option> target which builds the
299 package and runs the unit regression tests. It also creates the Java API documentation
300 and a directory where the newly created binaries are placed into. This directory is
301 used to install <application>FOP</application> to its final place.</para>
302
303 <para><command>ln -v -sf fop-&fop-version; /opt/fop</command>: This is
304 optional and creates a convenience symlink so that <envar>$FOP_HOME</envar>
305 doesn't have to be changed each time there's a package version change.</para>
306
307 </sect2>
308
309 <sect2 role="configuration">
310 <title>Configuring FOP</title>
311
312 <sect3 id="fop-config">
313 <title>Config Files</title>
314
315 <para><filename>~/.foprc</filename></para>
316
317 <indexterm zone="fop fop-config">
318 <primary sortas="e-AA.foprc">~/.foprc</primary>
319 </indexterm>
320
321 </sect3>
322
323 <sect3>
324 <title>Configuration Information</title>
325
326 <para>Using <application>FOP</application> to process some large FO's
327 (including the FO derived from the BLFS XML sources), can lead to memory
328 errors. Unless you add a parameter to the <command>java</command> command
329 used in the <command>fop</command> script you may receive messages
330 similar to the one shown below:</para>
331
332 <para><computeroutput>Exception in thread "main" java.lang.OutOfMemoryError:
333 Java heap space</computeroutput></para>
334
335 <para>To avoid errors like this, you need to pass an extra parameter to
336 the <command>java</command> command used in the <command>fop</command>
337 script. This can be accomplished by creating a
338 <filename>~/.foprc</filename> (which is sourced by the
339 <command>fop</command> script) and adding the parameter to the
340 <envar>FOP_OPTS</envar> environment variable.</para>
341
342 <para>The <command>fop</command> script looks for a
343 <envar>FOP_HOME</envar> environment variable to locate the
344 <application>FOP</application> class libraries. You can create this
345 variable using the <filename>~/.foprc</filename> file as well. Create
346 a <filename>~/.foprc</filename> file using the following commands:</para>
347
348<screen><userinput>cat &gt; ~/.foprc &lt;&lt; "EOF"
349<literal>FOP_OPTS="-Xmx<replaceable>&lt;RAM_Installed&gt;</replaceable>m"
350FOP_HOME="/opt/fop"</literal>
351
352EOF</userinput></screen>
353
354 <para>Replace <replaceable>&lt;RAM_Installed&gt;</replaceable> with a
355 number representing the amount of RAM installed in your computer (in
356 megabytes). An example would be
357 <userinput>FOP_OPTS="-Xmx768m"</userinput>. For more information about
358 memory issues running <application>FOP</application>, see
359 <ulink url="http://xml.apache.org/fop/running.html#memory"/>.</para>
360
361 <para>To include the <command>fop</command> script in your path,
362 update your personal or system-wide profile with the following:</para>
363
364<screen><literal>PATH=$PATH:/opt/fop</literal></screen>
365
366 </sect3>
367
368 </sect2>
369
370 <sect2 role="content">
371 <title>Contents</title>
372
373 <segmentedlist>
374 <segtitle>Installed Programs</segtitle>
375 <segtitle>Installed Libraries</segtitle>
376 <segtitle>Installed Directory</segtitle>
377
378 <seglistitem>
379 <seg>fop</seg>
380 <seg>fop.jar and numerous support library classes located in
381 <filename class='directory'>/opt/fop/{build,lib}</filename>; JAI
382 components include libmlib_jai.so, jai_codec.jar, jai_core.jar, and
383 mlibwrapper_jai.jar</seg>
384 <seg>/opt/fop-&fop-version;</seg>
385 </seglistitem>
386 </segmentedlist>
387
388 <variablelist>
389 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
390 <?dbfo list-presentation="list"?>
391 <?dbhtml list-presentation="table"?>
392
393 <varlistentry id="fop-prog">
394 <term><command>fop</command></term>
395 <listitem>
396 <para>is a wrapper script to the <command>java</command> command
397 which sets up the <application>FOP</application>
398 environment and passes the required parameters.</para>
399 <indexterm zone="fop fop-prog">
400 <primary sortas="b-fop">fop</primary>
401 </indexterm>
402 </listitem>
403 </varlistentry>
404
405 <varlistentry id="fop.jar">
406 <term><filename class='libraryfile'>fop.jar</filename></term>
407 <listitem>
408 <para>contains all the <application>FOP</application>
409 <application>Java</application> classes.</para>
410 <indexterm zone="fop fop.jar">
411 <primary sortas="c-fop.jar">fop.jar</primary>
412 </indexterm>
413 </listitem>
414 </varlistentry>
415
416 </variablelist>
417
418 </sect2>
419
420</sect1>
Note: See TracBrowser for help on using the repository browser.