source: pst/ps/fop.xml@ 0aeb696

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 6.2 6.2.0 6.2.0-rc1 6.2.0-rc2 6.3 6.3-rc1 6.3-rc2 6.3-rc3 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 0aeb696 was 0aeb696, checked in by Randy McMurchy <randy@…>, 18 years ago

Added a comment to each file that may need a mention of a test suite added to it, this allows closing of bug #1697

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

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