source: pst/ps/fop.xml@ fce275e

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 fce275e was fce275e, checked in by Randy McMurchy <randy@…>, 16 years ago

Modified all the Sourceforge download URLs to use a newly created entity instead of a hard-coded URL

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

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