source: xsoft/graphweb/firefox.xml@ f40ee79

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 f40ee79 was f40ee79, checked in by Ken Moffat <ken@…>, 14 years ago

Update firefox (and xulrunner) to match the updated libpng. Tested on LFS-6.6 x86_64.

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

  • Property mode set to 100644
File size: 20.2 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 firefox-download-http "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/&firefox-version;/source/firefox-&firefox-version;.source.tar.bz2">
8 <!ENTITY firefox-download-ftp "ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/&firefox-version;/source/firefox-&firefox-version;.source.tar.bz2">
9 <!ENTITY firefox-md5sum "0ee5f14fd8be07513d16131027ebcb61">
10 <!ENTITY firefox-size "49 MB">
11 <!ENTITY firefox-buildsize "836 MB (stand-alone) or 425 MB (on xulrunner)">
12 <!ENTITY firefox-time "13 SBU (stand-alone) or 0.3 SBU (on xulrunner)">
13]>
14
15<sect1 id="firefox" xreflabel="Firefox-&firefox-version;">
16 <?dbhtml filename="firefox.html" ?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>Firefox-&firefox-version;</title>
24
25 <indexterm zone="firefox">
26 <primary sortas="a-Firefox">Firefox</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to Firefox</title>
31
32 <para><application>Firefox</application> is a stand-alone browser
33 based on the <application>Mozilla</application> codebase.</para>
34
35 <para>With the introduction of firefox-3.x, the
36 <application>pkgconfig</application> files for the Gecko engine (and for
37 <application>nss</application> and <application>nspr</application>) are not
38 installed. This means that applications such as <application>Yelp
39 </application> can no longer be built against firefox, and must instead be
40 built against xulrunner (which is actually the same code, but built in a
41 different way). If you wish to build other packages which use Gecko (of the
42 applications in this book, probably only some sundry gnome-2.28 applications
43 will recognize this version of xulrunner, build <xref linkend="xulrunner"/>
44 first.</para>
45
46 <tip>
47 <para>Firefox is updated frequently as new vulnerabilities are found.
48 Consult
49 <ulink url="http://www.mozilla.org/security/known-vulnerabilities/">mozilla security</ulink>
50 for details of what is fixed in newer releases. The editors cannot guess
51 what will differ in newer versions: it should be straightforward to upgrade
52 within the same series (3.6), but it is always possible that newer versions
53 will have increased dependencies, or that something using the nss or gecko
54 libraries will break. If you update, begin by updating
55 <application>xulrunner</application> if you use that, then update firefox
56 (ensuring the libxul-sdk option points to the new version).</para>
57 </tip>
58
59 <bridgehead renderas="sect3">Package Information</bridgehead>
60 <itemizedlist spacing="compact">
61 <listitem>
62 <para>Download (HTTP): <ulink url="&firefox-download-http;"/></para>
63 </listitem>
64 <listitem>
65 <para>Download (FTP): <ulink url="&firefox-download-ftp;"/></para>
66 </listitem>
67 <listitem>
68 <para>Download MD5 sum: &firefox-md5sum;</para>
69 </listitem>
70 <listitem>
71 <para>Download size: &firefox-size;</para>
72 </listitem>
73 <listitem>
74 <para>Estimated disk space required: &firefox-buildsize;</para>
75 </listitem>
76 <listitem>
77 <para>Estimated build time: &firefox-time;</para>
78 </listitem>
79 </itemizedlist>
80
81 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
82 <itemizedlist spacing="compact">
83 <listitem>
84 <para>Optional patch: <ulink
85 url="&patch-root;/firefox-&firefox-version;-provide_system_nspr_nss-1.patch"/>
86 (Required if using the included NSPR and NSS libs as system versions for
87 other packages)</para>
88 </listitem>
89 </itemizedlist>
90
91 <bridgehead renderas="sect3">Firefox Dependencies</bridgehead>
92
93 <bridgehead renderas="sect4">Recommended</bridgehead>
94 <para role="recommended"><xref linkend="xulrunner"/> which shares all these
95 dependencies, or for a standalone firefox the following Required and
96 Optional dependencies:</para>
97
98 <bridgehead renderas="sect4">Required</bridgehead>
99 <para role="required"><xref linkend="alsa-lib"/>,
100 <xref linkend="gtk2"/>,
101 <xref linkend="libidl"/>
102 <xref linkend="pango"/>
103 <xref linkend="python"/>, and
104 <xref linkend="zip"/></para>
105
106 <para>Note: <application>libjpeg</application> should have been installed
107 before <application>GTK+</application> and should exist on your system. If
108 for some reason you haven't installed <application>libjpeg</application>,
109 you should remove the <option>--with-system-jpeg</option> option from the
110 <filename>.mozconfig</filename> file created below.</para>
111
112 <bridgehead renderas="sect4">Optional</bridgehead>
113 <para role="optional"><xref linkend="dbus-glib"/>,
114 <xref linkend="doxygen"/>,
115 <xref linkend="curl"/> (only for crash-reporter),
116 <xref linkend="gnome-vfs"/> and <xref linkend="libgnomeui"/>
117 (for gnome integration),
118 <xref linkend="libnotify"/>,
119 <xref linkend="libpng"/> (patched for apng support),
120 <xref linkend="nspr"/>,
121 <xref linkend="nss"/>,
122 <xref linkend="startup-notification"/>.
123 <xref linkend="sqlite"/>,
124 <xref linkend="unzip"/>,
125 <ulink url="http://www.valgrind.org/">Valgrind</ulink> (only for testing the
126 jemalloc code), and
127 <xref linkend="wget"/></para>
128
129 <para condition="html" role="usernotes">User Notes:
130 <ulink url="&blfs-wiki;/firefox"/></para>
131
132 </sect2>
133
134 <sect2 role="installation">
135 <title>Installation of Firefox</title>
136
137 <para>The configuration of <application>Firefox</application> is
138 accomplished by creating a <filename>.mozconfig</filename> file containing
139 the desired configuration options. A default <filename>.mozconfig</filename>
140 is created below. To see the entire list of available configuration options
141 (and an abbreviated description of each one), issue
142 <command>./configure --help</command>. If you are not building against
143 <application>Xulrunner</application> you must comment the 'xulrunner' items.
144 You may also wish to review the entire file and uncomment any other desired
145 options. If you would prefer to download the file instead of creating it by
146 typing or cut-and-pasting, you can find it at <ulink
147 url="&files-anduin;/firefox-&firefox-version;-mozconfig"/>
148 (the file must be installed in the root of the source tree
149 <filename class='directory'>mozilla</filename> directory, and named
150 <filename>.mozconfig</filename>). Create the file by issuing the following
151 command:</para>
152
153<screen><?dbfo keep-together="auto"?><userinput>cat &gt; .mozconfig &lt;&lt; "EOF"
154<literal># This file contains the options used in the Firefox build. You may
155# need to specify additional options for your specific build needs.
156# Use the information provided by running './configure --help' to
157# help you determine if you need to add any additional options.
158# Some additional options can be added by uncommenting the examples
159# in this file or adding options by inserting a line containing
160# 'ac_add_options --some-option-you-need'. Be aware that some accepted
161# options, such as '--with-system-bz2', do not affect the build.
162
163# specify that we want to build firefox
164ac_add_options --enable-application=browser
165
166# Use the default settings specified in the source tree
167. $topsrcdir/browser/config/mozconfig
168
169# Create an object directory and specify to build the package in that
170# directory. If desired, modify the location of the object directory
171# to a directory inside the source tree by removing '../' from the
172# line below.
173mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../firefox-build
174
175# Specify the installation prefix. If you would prefer Xulrunner
176# installed in a different prefix, modify the line below to fit
177# your needs (the config will always be written to /etc/gre.d)
178ac_add_options --prefix=/usr
179
180# apply a minimal level of optimization (-O)
181ac_add_options --enable-optimize
182
183# These options are used so that the Xulrunner binaries are linked to
184# the system-installed copies of the specified libraries instead of
185# the source tree code which may not be the most recent versions.
186# With the exception of libsqlite3, the libraries are statically linked.
187
188# (Options to use system installed libraries)
189# Using the shipped version of libsqlite3 has been reported to cause
190# problems with other applications which were using sqlite3.
191# Only comment this line if you know exactly what you are doing!
192ac_add_options --enable-system-sqlite
193
194# Comment this only if you want to use whatever patched version of cairo
195# is in the shipped mozilla tree, together with the system headers.
196ac_add_options --enable-system-cairo
197
198# Comment this if you have not installed lcms.
199ac_add_options --enable-system-lcms
200
201# Comment this if you did not build libjpeg before GTK+-2.
202ac_add_options --with-system-jpeg
203
204# These two options enable support for building Xulrunner with
205# system-installed versions of the Network Security Services (NSS)
206# and Netscape Portable Runtime (NSPR) libraries. Comment them if
207# you wish to use the included copies (not recommended).
208ac_add_options --with-system-nspr
209ac_add_options --with-system-nss
210
211# Comment this if you have not built png with the apng patch.
212ac_add_options --with-system-png
213
214# The pthreads option is only used when building nspr
215# Uncomment this if you build the included nspr.
216#ac_add_options --with-pthreads
217
218# zlib is included in LFS. Do not comment this line.
219ac_add_options --with-system-zlib
220
221# (Options to disable parts of the package)
222# This option is used to disable the a11y support in the Xulrunner
223# binaries. Comment out this option if you require a11y support.
224ac_add_options --disable-accessibility
225
226# Uncomment this if you did not build curl.
227#ac_add_options --disable-crashreporter
228
229# Comment this if you have built dbus-glib.
230ac_add_options --disable-dbus
231
232# Comment this if you have gnome-vfs and libgnomeui, and wish to
233# integrate firefox into your gnome desktop
234ac_add_options --disable-gnomevfs
235
236# Comment this if you have wireless-tools installed and wish to use the new
237# Necko WiFi scanning.
238ac_add_options --disable-necko-wifi
239
240# This option is added so that the Mozilla Installer program is not
241# built or installed. The program is not required for a BLFS
242# installation of Xulrunner.
243ac_add_options --disable-installer
244
245# If you enable javaxpcom, you must have a java compiler installed.
246ac_add_options --disable-javaxpcom
247
248# This option is added so that test libraries and programs are not
249# built. These would only be required for debugging purposes.
250ac_add_options --disable-tests
251
252# Disable the updater, which is not appropriate if you build from source
253ac_add_options --disable-updater
254
255# (options to add extra parts of the package)
256# This option causes the installed binaries to have the official
257# Firefox name embedded in them. Due to license restrictions, you
258# may not distribute binaries created using this option. It also
259# means you get a popup EULA when you first run firefox.
260ac_add_options --enable-official-branding
261
262# Use the anti-phishing measures (a blacklist of sites).
263ac_add_options --enable-safe-browsing
264
265# This option is used so that the debugging symbols are removed from
266# the installed binaries during the installation process. Comment out
267# this option if you may have a need to retain the debugging symbols
268# in the installed binaries (the resulting binaries will be about 7MB
269# bigger).
270ac_add_options --enable-strip
271
272# Uncomment this option if you desire support for dual-monitor
273# display using the X-Window Xinerama libraries.
274#ac_add_options --enable-xinerama
275
276# This option identifies the default binary directory of the Xulrunner
277# installation and is used to locate Xulrunner's installed files. This
278# option is is only used for development purposes.
279#ac_add_options --with-default-mozilla-five-home=/usr/lib/firefox-&firefox-version;
280
281# Point to the xulrunner libraries - comment these for a standalone browser
282ac_add_options --with-system-libxul
283ac_add_options --with-libxul-sdk=/usr/lib/xulrunner-devel-&xulrunner-version;</literal>
284EOF</userinput></screen>
285
286 <para>Compile <application>Firefox</application> by issuing the
287 following commands:</para>
288
289<screen><userinput>make -f client.mk build</userinput></screen>
290
291 <para>This package does not come with a test suite.</para>
292
293 <para>Now, as the <systemitem class="username">root</systemitem> user,
294 install the package:</para>
295
296<screen role="root"><userinput>make -f client.mk install</userinput></screen>
297
298 <para>If you are building firefox on xulrunner, as the
299 <systemitem class="username">root</systemitem> user enter the following
300 symbolic link:</para>
301
302<screen role="root"><userinput>ln -sv /usr/lib/xulrunner-&xulrunner-version;/plugins \
303 /usr/lib/firefox-&firefox-version;/plugins</userinput></screen>
304
305 </sect2>
306
307 <sect2 role="commands">
308 <title>Command Explanations</title>
309
310 <para><command>make -f client.mk ...</command>: Mozilla products are
311 packaged to allow the use of a configuration file which can be used to
312 pass the configuration settings to the <command>configure</command>
313 command. <command>make</command> uses the <filename>client.mk</filename>
314 file to get initial configuration and setup parameters, then depending on
315 the target parameter (<parameter>build</parameter> or
316 <parameter>install</parameter>), either runs the
317 <command>configure</command> script and compiles the package or installs
318 the package.</para>
319
320 <para><command>ln -sv /usr/lib/xulrunner-&xulrunner-version;/plugins
321 /usr/lib/firefox-&firefox-version;/plugins</command>:
322 <application>Firefox</application> looks for plugins in its own directory,
323 but when building on <application>xulrunner</application> the plugins were
324 installed by that package. Note that any plugins in
325 <filename class="directory">/usr/lib/mozilla/plugins</filename> will also be
326 found.</para>
327
328 <tip>
329 <para>If you upgrade firefox, ensure that any additional plugins are moved
330 to the plugin directory of the new version.</para>
331 </tip>
332
333 </sect2>
334
335 <sect2 role="configuration">
336 <title>Configuring Firefox</title>
337
338 <para>No specific configuration is required as long as the
339 <command>firefox</command> script is in the user's path. If
340 <application>Firefox</application> is installed in a non-standard location,
341 then make a symlink to the <command>firefox</command> script in the
342 <filename class="directory">/usr/bin</filename> directory.</para>
343
344 <para>If your Window or Desktop Manager does not allow you to configure
345 a default mail client, you can add a configuration parameter to
346 <application>Firefox</application> so that an email client will start
347 when you click on a <systemitem role='url'>mailto:</systemitem> URL.
348 There are two parameters you need to check. The procedure to check or
349 modify any of the configuration parameters is quite simple and the
350 instructions here can be used to view or modify any of the
351 parameters.</para>
352
353 <para>First, open the configuration dialog by entering
354 <systemitem role='url'>about:config</systemitem> in the address bar. This
355 will display a list of the configuration preferences and information
356 related to each one. You can use the <quote>Filter:</quote> bar to enter
357 search criteria and narrow down the listed items. Changing a preference
358 can be done using two methods. One, if the preference has a boolean value
359 (True/False), simply double-click on the preference to toggle the value
360 and two, for other preferences simply right-click on the desired line,
361 choose <quote>Modify</quote> from the menu and change the value. Creating
362 new preference items is accomplished in the same way, except choose
363 <quote>New</quote> from the menu and provide the desired data into the
364 fields when prompted.</para>
365
366 <para>The two configuration preference items you need to check so that
367 <application>Firefox</application> uses a specified default mail client
368 are the <parameter>network.protocol-handler.external.mailto</parameter>
369 which should be set to <option>True</option> and the
370 <parameter>network.protocol-handler.app.mailto</parameter> which should
371 be set to the path of the desired mail client, e.g.,
372 <option>/usr/bin/thunderbird</option>.</para>
373
374 <tip>
375 <para>There is a multitude of configuration parameters you can tweak to
376 customize <application>Firefox</application>. A very extensive and
377 up-to-date list of these parameters can be found at <ulink
378 url="http://preferential.mozdev.org/preferences.html"/>.</para>
379 </tip>
380
381 <para>Many old applications used to look for <command>netscape</command>
382 when they needed to open a browser. You may wish to make the following
383 symlink for convenience (as the <systemitem class="username">root</systemitem>
384 user).</para>
385
386<screen role="root"><userinput>ln -v -sf firefox /usr/bin/netscape</userinput></screen>
387
388 <para>For installing various <application>Firefox</application> plugins,
389 refer to <ulink url="http://plugindoc.mozdev.org/linux.html">Mozdev's
390 PluginDoc Project</ulink>. If you have the <xref linkend="jdk"/> already
391 installed, create the following link as the
392 <systemitem class="username">root</systemitem> user to utilize the installed
393 <application>Java</application> plugin: </para>
394
395<screen role="root"><userinput>ln -v -s $JAVA_HOME/jre/plugin/i386/ns7/libjavaplugin_oji.so \
396 /usr/lib/firefox-&firefox-version;/plugins</userinput></screen>
397
398 <para>Some packages install Mozilla plugins into the default system-wide
399 directory <filename class='directory'>/usr/lib/mozilla/plugins</filename>.
400 If you have not already done this for <application>Xulrunner</application>
401 create symbolic links in the <application>Firefox</application>
402 plugin directory
403 <filename class='directory'>/usr/lib/firefox-&firefox-version;/plugins</filename>
404 to the files in the default plugin directory (you should link to the actual
405 files and not other links). Alternatively, you can move or copy the files
406 in the default plugin directory to the
407 <application>Firefox</application> plugin directory. An example of creating
408 a symbolic link is shown below. Create the links as the
409 <systemitem class="username">root</systemitem> user:</para>
410
411<screen role="root"><userinput>ln -v -s ../../mozilla/plugins/<replaceable>&lt;plugin.so&gt;</replaceable> \
412 /usr/lib/firefox-&firefox-version;/plugins</userinput></screen>
413
414 </sect2>
415
416 <sect2 role="content">
417 <title>Contents</title>
418
419 <segmentedlist>
420 <segtitle>Installed Programs</segtitle>
421 <segtitle>Installed Libraries</segtitle>
422 <segtitle>Installed Directories</segtitle>
423
424 <seglistitem>
425 <seg>firefox and firefox-config</seg>
426 <seg>Numerous libraries, browser components, plugins, extensions, and
427 helper modules installed in <filename
428 class='directory'>/usr/lib/firefox-&firefox-version;</filename></seg>
429 <seg>/usr/include/firefox-&firefox-version;,
430 /usr/lib/firefox-&firefox-version;, and
431 /usr/share/idl/firefox-&firefox-version;</seg>
432 </seglistitem>
433 </segmentedlist>
434
435 <variablelist>
436 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
437 <?dbfo list-presentation="list"?>
438 <?dbhtml list-presentation="table"?>
439
440 <varlistentry id="firefox-prog">
441 <term><command>firefox</command></term>
442 <listitem>
443 <para>is a shell script that sets up the environment and
444 calls the <filename>firefox-bin</filename> binary.</para>
445 <indexterm zone="firefox firefox-prog">
446 <primary sortas="b-firefox">firefox</primary>
447 </indexterm>
448 </listitem>
449 </varlistentry>
450
451 <varlistentry id="firefox-config">
452 <term><command>firefox-config</command></term>
453 <listitem>
454 <para>determines the compile and linker flags that should be
455 used to compile and link programs that use
456 <application>Firefox</application> libraries and browser
457 components.</para>
458 <indexterm zone="firefox firefox-config">
459 <primary sortas="b-firefox-config">firefox-config</primary>
460 </indexterm>
461 </listitem>
462 </varlistentry>
463
464 </variablelist>
465
466 </sect2>
467
468</sect1>
Note: See TracBrowser for help on using the repository browser.