source: pst/ps/fop.xml@ fef4473

11.1 11.2 11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since fef4473 was 8558044, checked in by Pierre Labastie <pierre.labastie@…>, 3 years ago

Remove spaces at the end of lines

I know it is somewhat useless, but I don't like them for
two reasons: first they cannot be seen, and I do not like things I
cannot see. Second, git highlights them, and this is disturbing...

  • Property mode set to 100644
File size: 16.0 KB
RevLine 
[634c636c]1<?xml version="1.0" encoding="ISO-8859-1"?>
[6732c094]2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
[634c636c]4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
[4634c7a]7 <!ENTITY fop-download-http "https://archive.apache.org/dist/xmlgraphics/fop/source/fop-&fop-version;-src.tar.gz">
[75d53372]8 <!ENTITY fop-download-ftp " ">
[5b5d604]9 <!ENTITY fop-md5sum "1d6bc84d2ab7f971bbc628080e3c307f">
[bba3fd3]10 <!ENTITY fop-size "26 MB">
[5b5d604]11 <!ENTITY fop-buildsize "522 MB (including files downloaded to the user directory)">
[498bc8e]12 <!ENTITY fop-time "0.4 SBU">
[460e986]13
[e3b75e18]14 <!ENTITY pdfbox-version "2.0.24">
[5b5d604]15 <!ENTITY pdfbox-download "http://archive.apache.org/dist/pdfbox/&pdfbox-version;/pdfbox-&pdfbox-version;.jar">
[e3b75e18]16 <!ENTITY pdfbox-md5sum "9e97fc59c662738a5fb82dcc447d1e2f">
[b62ff55c]17 <!ENTITY pdfbox-size "2.7 MB">
[492000e]18
[5b5d604]19 <!ENTITY fontbox-download "http://archive.apache.org/dist/pdfbox/&pdfbox-version;/fontbox-&pdfbox-version;.jar">
[e3b75e18]20 <!ENTITY fontbox-md5sum "6c2066df0d706d85e950fe8c73d52ed8">
[bba3fd3]21 <!ENTITY fontbox-size "1.5 MB">
[8dfc5c3]22
[6f6f731]23 <!ENTITY maven-major "3">
24 <!ENTITY maven-version "3.6.3">
[5b5d604]25 <!ENTITY maven-download "http://archive.apache.org/dist/maven/maven-&maven-major;/&maven-version;/binaries/apache-maven-&maven-version;-bin.tar.gz">
[6f6f731]26 <!ENTITY maven-md5sum "9792c717f5845d952907d5144b8253c3">
[5b5d604]27 <!ENTITY maven-size "9.1 MB (additionally, about 82 MB are downloaded to the building user's directory)">
[6f6f731]28
[8dfc5c3]29 <!ENTITY offo-download "&sourceforge-dl;/offo/2.2/offo-hyphenation.zip">
[bf7a1821]30 <!ENTITY offo-md5sum "bf9c09bf05108ef9661b8f08d91c2336">
31 <!ENTITY offo-size "862 KB">
[634c636c]32]>
33
[75d53372]34<sect1 id="fop" xreflabel="fop-&fop-version;">
[f570280]35 <?dbhtml filename="fop.html"?>
36
37 <sect1info>
38 <date>$Date$</date>
39 </sect1info>
40
[75d53372]41 <title>fop-&fop-version;</title>
[f570280]42
43 <indexterm zone="fop">
[75d53372]44 <primary sortas="a-fop">fop</primary>
[f570280]45 </indexterm>
46
47 <sect2 role="package">
[75d53372]48 <title>Introduction to fop</title>
[f570280]49
[6fe6db6]50 <para>
51 The <application>FOP</application> (Formatting Objects Processor)
52 package contains a print formatter driven by XSL formatting objects
53 (XSL-FO). It is a <application>Java</application> application that reads
54 a formatting object tree and renders the resulting pages to a specified
55 output. Output formats currently supported include PDF, PCL, PostScript,
56 SVG, XML (area tree representation), print, AWT, MIF and ASCII text. The
57 primary output target is PDF.
58 </para>
[f570280]59
[c93c620c]60 &lfs110a_checked;
[50929e8]61
[f570280]62 <bridgehead renderas="sect3">Package Information</bridgehead>
63 <itemizedlist spacing="compact">
64 <listitem>
[fa3edfef]65 <para>
66 Download (HTTP): <ulink url="&fop-download-http;"/>
67 </para>
[f570280]68 </listitem>
69 <listitem>
[fa3edfef]70 <para>
71 Download (FTP): <ulink url="&fop-download-ftp;"/>
72 </para>
[f570280]73 </listitem>
74 <listitem>
[fa3edfef]75 <para>
76 Download MD5 sum: &fop-md5sum;
77 </para>
[f570280]78 </listitem>
79 <listitem>
[fa3edfef]80 <para>
81 Download size: &fop-size;
82 </para>
[f570280]83 </listitem>
84 <listitem>
[fa3edfef]85 <para>
86 Estimated disk space required: &fop-buildsize;
87 </para>
[f570280]88 </listitem>
89 <listitem>
[fa3edfef]90 <para>
91 Estimated build time: &fop-time;
92 </para>
[f570280]93 </listitem>
94 </itemizedlist>
95
96 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
97 <itemizedlist spacing="compact">
[a288a10]98 <title>Required Additional Downloads:</title>
[bba3fd3]99 <listitem>
[fa3edfef]100 <para>
101 PDFBox:
[bba3fd3]102 <simplelist>
103 <member><ulink url="&pdfbox-download;"/></member>
104 <member>&pdfbox-md5sum;</member>
105 <member>&pdfbox-size;</member>
106 </simplelist>
107 </para>
108 </listitem>
109 <listitem>
[fa3edfef]110 <para>
111 PDFBox Fonts:
[bba3fd3]112 <simplelist>
113 <member><ulink url="&fontbox-download;"/></member>
114 <member>&fontbox-md5sum;</member>
115 <member>&fontbox-size;</member>
116 </simplelist>
117 </para>
118 </listitem>
[6f6f731]119 <listitem>
120 <para>
121 Maven build system:
122 <simplelist>
123 <member><ulink url="&maven-download;"/></member>
124 <member>&maven-md5sum;</member>
125 <member>&maven-size;</member>
126 </simplelist>
127 </para>
128 </listitem>
[bba3fd3]129 </itemizedlist>
[5b5d604]130<!-- Using the archive above allows finding all versions
[b786b70]131 <note><para>
[8558044]132 The pdfbox and fontbox packages may not be available at the above
[b786b70]133 location. If not, they can be found at the BLFS files mirror sites.
134 </para></note>
[5b5d604]135-->
[bba3fd3]136 <itemizedlist spacing="compact">
137 <title>Recommended packages</title>
[f570280]138 <listitem>
[fa3edfef]139 <para>
140 Objects for Formatting Objects (OFFO) hyphenation patterns:
[492000e]141 <simplelist>
142 <member><ulink url="&offo-download;"/></member>
143 <member>&offo-md5sum;</member>
144 <member>&offo-size;</member>
145 </simplelist>
[f570280]146 </para>
147 </listitem>
148 </itemizedlist>
149
[75d53372]150 <bridgehead renderas="sect3">fop Dependencies</bridgehead>
[f570280]151
152 <bridgehead renderas="sect4">Required</bridgehead>
[75d53372]153 <para role="required">
154 <xref linkend="apache-ant"/>
155 </para>
[f570280]156
157 <bridgehead renderas="sect4">Optional</bridgehead>
[75d53372]158 <para role="optional">
[c084a2a]159<!-- Included into ant <xref linkend="junit"/> (to run tests),-->
[adf80ef]160 <xref linkend="x-window-system"/> (to run tests),
[6f6f731]161<!-- <xref linkend="maven"/> (an alternate build system), not functional
[c084a2a]162 with fop-2.3 -->
[137446ef]163 <ulink url="http://jai-tools.blogspot.com/">JAI Image I/O Tools</ulink>, and
[bf7a1821]164 <ulink url="http://jeuclid.sourceforge.net/">JEuclid</ulink>
165<!-- [pierre 2017-04-29] Note to devs: there are a lot of bundled dependencies.
166 Some were listed here, but not all. I am not sure it is possible to
[6f6f731]167 use system ones. So, I have removed them, and kept only those which
[bf7a1821]168 are not bundled. -->
[75d53372]169 </para>
[f570280]170
[977061b0]171 <para condition="html" role="usernotes">User Notes:
172 <ulink url="&blfs-wiki;/fop"/></para>
173
[f570280]174 </sect2>
175
176 <sect2 role="installation">
[75d53372]177 <title>Installation of fop</title>
[f570280]178
[6fe6db6]179 <para>
180 Ensure <envar>$JAVA_HOME</envar> is set correctly before beginning
181 the build. To build the <application>JIMI SDK</application> and/or
182 <application>XMLUnit</application> extension classes, ensure the
183 corresponding <filename class='extension'>.jar</filename> files can be
184 found via the <envar>CLASSPATH</envar> environment variable.
185 </para>
[bf7a1821]186
[492000e]187 <sect3>
188 <title>Installing OFFO Hyphenation Patterns</title>
189
[6fe6db6]190 <para>
[bf7a1821]191 Copy the XML hyphenation patterns into the fop source tree by running
192 the following commands:
[6fe6db6]193 </para>
[492000e]194
[bf7a1821]195<screen><userinput>unzip ../offo-hyphenation.zip &amp;&amp;
196cp offo-hyphenation/hyph/* fop/hyph &amp;&amp;
197rm -rf offo-hyphenation</userinput></screen>
[492000e]198
199 </sect3>
[bf7a1821]200
[6f6f731]201 <sect3>
202 <title>Installing a temporary Maven binary</title>
203
204 <para>
205 Starting with fop-2.5, the Maven build system is required. We use
206 the binary provided by apache, that we install in a temporary location:
207 </para>
208
209<screen><userinput>tar -xf ../apache-maven-&maven-version;-bin.tar.gz -C /tmp</userinput></screen>
210
211 </sect3>
212
[f570280]213 <sect3>
[75d53372]214 <title>Installing fop Components</title>
[f570280]215
[6fe6db6]216 <para>
[2a8af5f]217 The <command>javadoc</command> command that ships with OpenJDK 10 and
218 later has
219 become much stricter than previous versions regarding conformance of
[bba3fd3]220 the Javadoc comments in source code to HTML. The FOP documentation does
221 not meet those standards, so the conformance checks have to be
[6fe6db6]222 disabled. This can be done with the following command:
223 </para>
224
[ba7be716]225<screen><userinput>sed -i '\@&lt;/javad@i\
226&lt;arg value="-Xdoclint:none"/&gt;\
[d61ead0a]227&lt;arg value="--allow-script-in-comments"/&gt;\
228&lt;arg value="--ignore-source-errors"/&gt;' \
229 fop/build.xml</userinput></screen>
[5b5d604]230<!-- Seems to have been fixed in 2.6
[bf7a1821]231 <para>
232 The stack size set in <filename>build.xml</filename> for building the
[bba3fd3]233 hyphenation patterns is not large enough. Change it by running:
[bf7a1821]234 </para>
[6fe6db6]235
[bf7a1821]236<screen><userinput>sed -e '/hyph\.stack/s/512k/1M/' \
237 -i fop/build.xml</userinput></screen>
[5b5d604]238-->
[d53d455]239 <para>
240 Fix building with JDK-16 due to an outdated Apache Maven plugin:
241 </para>
242
243<screen><userinput remap="pre">sed -i 's/&lt;war.plugin.version&gt;2.2/&lt;war.plugin.version&gt;3.3.1/' pom.xml</userinput></screen>
244
[bba3fd3]245 <para>
246 The <filename>build.xml</filename> file calls for an old version of
247 <application>PDFBox</application> components that are no longer
248 available. Copy the updated PDFBox components into the source tree:
249 </para>
250
251<screen><userinput>cp ../{pdf,font}box-&pdfbox-version;.jar fop/lib</userinput></screen>
252
[6fe6db6]253 <para>
[bba3fd3]254 Compile <application>fop</application> by running the following
255 commands:
[6fe6db6]256 </para>
[f570280]257
[6f6f731]258<screen><userinput>cd fop &amp;&amp;
259
260LC_ALL=en_US.UTF-8 \
261PATH=$PATH:/tmp/apache-maven-&maven-version;/bin \
262ant all javadocs &amp;&amp;
263
[cbfc7b61]264mv build/javadocs .</userinput></screen>
265
[6fe6db6]266 <para>
[6f6f731]267 This package comes with a testsuite, but the java infrastructure
268 installed in this book does not allow running it.
[6fe6db6]269 </para>
[8558044]270
[6fe6db6]271 <para>
[bba3fd3]272 Now, install <application>Fop</application> as the
273 <systemitem class="username">root</systemitem> user:
[6fe6db6]274 </para>
[d260aaf4]275
[2612183a]276<screen role="root"><userinput>install -v -d -m755 -o root -g root /opt/fop-&fop-version; &amp;&amp;
277cp -vR build conf examples fop* javadocs lib /opt/fop-&fop-version; &amp;&amp;
[bf7a1821]278chmod a+x /opt/fop-&fop-version;/fop &amp;&amp;
279ln -v -sfn fop-&fop-version; /opt/fop</userinput></screen>
[f570280]280
[6f6f731]281 <para>
282 The last thing to do is to clean what we have done:
283 </para>
284
285<screen><userinput>rm -rf /tmp/apache-maven-&maven-version;</userinput></screen>
286
[f570280]287 </sect3>
288
289 </sect2>
[634c636c]290
[f570280]291 <sect2 role="commands">
292 <title>Command Explanations</title>
293
[ba7be716]294 <para>
295 <command>sed -i ... build.xml</command>: This adds two switches to the
[e3b75e18]296 <command>javadoc</command> command, preventing some errors from occuring
297 when building the documentation.
[ba7be716]298 </para>
299
300 <para>
[bf7a1821]301 <command>export LC_ALL=en_US.UTF-8</command>: the compiler fails if using
302 an ASCII locale.
[ba7be716]303 </para>
304
[6fe6db6]305 <para>
306 <command>ant <option>target</option></command>: This reads the file
[ba7be716]307 <filename>build.xml</filename> and builds the target: <option>compile
308 </option> compiles the java sources, <option>jar-main</option> generates
[bf7a1821]309 jar archives, <option>jar-hyphenation</option> generates the hyphenation
[bba3fd3]310 patterns for FOP, <option>junit</option> runs the
311 <application>junit</application> tests, and <option>javadocs</option>
312 builds the documentation. The <option>all</option> target runs all of the
313 above.
[6fe6db6]314 </para>
[f570280]315
[6fe6db6]316 <para>
317 <command>ln -v -sf fop-&fop-version; /opt/fop</command>: This is
318 optional and creates a convenience symlink so that
319 <envar>$FOP_HOME</envar> doesn't have to be changed each time there's a
320 package version change.
321 </para>
[f570280]322
323 </sect2>
324
325 <sect2 role="configuration">
[75d53372]326 <title>Configuring fop</title>
[f570280]327
328 <sect3 id="fop-config">
329 <title>Config Files</title>
330
[6fe6db6]331 <para>
332 <filename>~/.foprc</filename>
333 </para>
[f570280]334
335 <indexterm zone="fop fop-config">
336 <primary sortas="e-AA.foprc">~/.foprc</primary>
337 </indexterm>
338
339 </sect3>
340
341 <sect3>
342 <title>Configuration Information</title>
343
[6fe6db6]344 <para>
345 Using <application>fop</application> to process some large FO's
346 (including the FO derived from the BLFS XML sources), can lead to
347 memory errors. Unless you add a parameter to the
348 <command>java</command> command used in the <command>fop</command>
349 script you may receive messages similar to the one shown below:
350 </para>
[f570280]351
[6fe6db6]352 <para>
353 <computeroutput>
354 Exception in thread "main" java.lang.OutOfMemoryError: Java heap
355 space
356 </computeroutput>
357 </para>
[f570280]358
[6fe6db6]359 <para>
360 To avoid errors like this, you need to pass an extra parameter to
361 the <command>java</command> command used in the <command>fop</command>
362 script. This can be accomplished by creating a
363 <filename>~/.foprc</filename> (which is sourced by the
364 <command>fop</command> script) and adding the parameter to the
365 <envar>FOP_OPTS</envar> environment variable.
366 </para>
[f570280]367
[6fe6db6]368 <para>
369 The <command>fop</command> script looks for a
370 <envar>FOP_HOME</envar> environment variable to locate the
371 <application>fop</application> class libraries. You can create this
372 variable using the <filename>~/.foprc</filename> file as well. Create
373 a <filename>~/.foprc</filename> file using the following commands:
374 </para>
[f570280]375
376<screen><userinput>cat &gt; ~/.foprc &lt;&lt; "EOF"
[977061b0]377<literal>FOP_OPTS="-Xmx<replaceable>&lt;RAM_Installed&gt;</replaceable>m"
[f570280]378FOP_HOME="/opt/fop"</literal>
379EOF</userinput></screen>
380
[6fe6db6]381 <para>
382 Replace <replaceable>&lt;RAM_Installed&gt;</replaceable> with a
383 number representing the amount of RAM installed in your computer (in
384 megabytes). An example would be
385 <userinput>FOP_OPTS="-Xmx768m"</userinput>.
386 <!-- the URL is broken
387 For more information about
388 memory issues running <application>fop</application>, see
389 <ulink url="http://xml.apache.org/fop/running.html#memory"/>.
390 -->
[a754ee2b]391 </para>
[f570280]392
[6fe6db6]393 <para>
394 To include the <command>fop</command> script in your path,
[d61ead0a]395 update the system-wide profile with the following command as the
396 <systemitem class="username">root</systemitem> user:
[6fe6db6]397 </para>
[f570280]398
[866f38b]399<screen role="root"><userinput>cat &gt; /etc/profile.d/fop.sh &lt;&lt; "EOF"
400<literal># Begin /etc/profile.d/fop.sh
[d61ead0a]401
402pathappend /opt/fop
403
[866f38b]404# End /etc/profile.d/fop.sh</literal>
405EOF</userinput></screen>
[f570280]406
[6fe6db6]407 <note>
408 <para>
409 Running <command>fop</command> can be somewhat verbose.
410 The default logging level can be changed from INFO to any of
411 FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE, ALL, or OFF.
412 To do this, edit
413 <filename>$JAVA_HOME/jre/lib/logging.properties</filename> and change
[ba7be716]414 the entries for <option>.level</option> and
[6fe6db6]415 <option>java.util.logging.ConsoleHandler.level</option> to
416 the desired value.
417 </para>
418 </note>
[cbfc7b61]419
[f570280]420 </sect3>
421
422 </sect2>
423
424 <sect2 role="content">
425 <title>Contents</title>
426
427 <segmentedlist>
428 <segtitle>Installed Programs</segtitle>
429 <segtitle>Installed Libraries</segtitle>
430 <segtitle>Installed Directory</segtitle>
431
432 <seglistitem>
[492000e]433 <seg>fop</seg>
434 <seg>fop.jar and numerous support library classes located in
[4c24eb0a]435 <filename class="directory">/opt/fop/{build,lib}</filename>; JAI
[492000e]436 components include libmlib_jai.so, jai_codec.jar, jai_core.jar, and
[f570280]437 mlibwrapper_jai.jar</seg>
438 <seg>/opt/fop-&fop-version;</seg>
439 </seglistitem>
440 </segmentedlist>
441
442 <variablelist>
443 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
444 <?dbfo list-presentation="list"?>
445 <?dbhtml list-presentation="table"?>
446
[492000e]447 <varlistentry id="fop-prog">
448 <term><command>fop</command></term>
[f570280]449 <listitem>
[fa3edfef]450 <para>
451 is a wrapper script to the <command>java</command> command
[6f6f731]452 which sets up the <application>fop</application>
[4c24eb0a]453 environment and passes the required parameters
[fa3edfef]454 </para>
[492000e]455 <indexterm zone="fop fop-prog">
456 <primary sortas="b-fop">fop</primary>
[f570280]457 </indexterm>
458 </listitem>
459 </varlistentry>
460
461 <varlistentry id="fop.jar">
[4c24eb0a]462 <term><filename class="libraryfile">fop.jar</filename></term>
[f570280]463 <listitem>
[fa3edfef]464 <para>
465 contains all the <application>fop</application>
[e3b75e18]466 <application>Java</application> classes
[fa3edfef]467 </para>
[f570280]468 <indexterm zone="fop fop.jar">
469 <primary sortas="c-fop.jar">fop.jar</primary>
470 </indexterm>
471 </listitem>
472 </varlistentry>
473
474 </variablelist>
475
476 </sect2>
477
478</sect1>
Note: See TracBrowser for help on using the repository browser.