Updated Firefox to 8.0.1

I've ripped out building against a system installed
xulrunner. I'm going to work on xulrunner next and 
come back to Firefox

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@9021 af4574ff-66df-0310-9fd7-8a98e5e911e0
This commit is contained in:
Andrew Benton 2011-11-27 21:41:28 +00:00
parent f60198bf45
commit 41f2e90847
3 changed files with 83 additions and 333 deletions

View File

@ -568,7 +568,6 @@ $Date$
<!ENTITY freeglut-version "2.6.0">
<!ENTITY goffice-version "0.8.10">
<!ENTITY mesalib-version "7.9">
<!-- The xulrunner version also appears in the firefox mozconfig as a literal -->
<!ENTITY xulrunner-version "1.9.2.13">
<!ENTITY webkitgtk-version "1.2.5">
<!ENTITY libsexy-version "0.1.11">
@ -783,7 +782,7 @@ $Date$
<!-- Chapter 36 -->
<!ENTITY seamonkey-version "2.0">
<!ENTITY firefox-version "3.6.13">
<!ENTITY firefox-version "8.0.1">
<!ENTITY galeon-version "2.0.1">
<!-- Obsolete

View File

@ -41,6 +41,15 @@
</listitem>
-->
<listitem>
<para>November 27th, 2011</para>
<itemizedlist>
<listitem>
<para>[abenton] - Updated Firefox to 8.0.1.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>November 25th, 2011</para>
<itemizedlist>

View File

@ -6,10 +6,10 @@
<!ENTITY firefox-download-http "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/&firefox-version;/source/firefox-&firefox-version;.source.tar.bz2">
<!ENTITY firefox-download-ftp "ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/&firefox-version;/source/firefox-&firefox-version;.source.tar.bz2">
<!ENTITY firefox-md5sum "d7c90aed8209beefa74badf02e8eeae1">
<!ENTITY firefox-size "51 MB">
<!ENTITY firefox-buildsize "780 MB (stand-alone) or 440 MB (on Xulrunner)">
<!ENTITY firefox-time "19 SBU (stand-alone) or 0.3 SBU (on Xulrunner)">
<!ENTITY firefox-md5sum "b7d09b082e88a74860a51a8e04e29333">
<!ENTITY firefox-size "67 MB">
<!ENTITY firefox-buildsize "3 GB">
<!ENTITY firefox-time "24 SBU">
]>
<sect1 id="firefox" xreflabel="Firefox-&firefox-version;">
@ -32,32 +32,7 @@
<para><application>Firefox</application> is a stand-alone browser
based on the <application>Mozilla</application> codebase.</para>
<para>With the introduction of Firefox-3.x, the
<application>pkgconfig</application> files for the Gecko engine (and for
<application>NSS</application> and <application>NSPR</application>) are not
installed. This means that applications such as <application>Yelp
</application> can no longer be built against firefox, and must instead be
built against Xulrunner (which is actually the same code, but built in a
different way). If you wish to build other packages which use Gecko (of the
applications in this book, probably only the gnome applications
will recognize this version of Xulrunner), build <xref linkend="xulrunner"/>
first.</para>
<tip>
<para>Firefox is updated frequently as new vulnerabilities are found.
Consult
<ulink url="http://www.mozilla.org/security/known-vulnerabilities/">mozilla security</ulink>
for details of what is fixed in newer releases. The editors cannot guess
what will differ in newer versions: it should be straightforward to upgrade
within the same series (3.6), but it is always possible that newer versions
will have increased dependencies, or that something using the nss or gecko
libraries will break. If you update, begin by updating
<application>Xulrunner</application> if you use that, then update Firefox
(ensuring the libxul-sdk option points to the new version).</para>
</tip>
&lfs67_checked;
<para>&lfssvn_checked;20101029&lfssvn_checked2;</para>
&lfs70_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
@ -81,51 +56,33 @@
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Optional patch: <ulink
url="&patch-root;/firefox-&firefox-version;-provide_system_nspr_nss-1.patch"/>
(Required if using the included NSPR and NSS libs as system versions for
other packages)</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Firefox Dependencies</bridgehead>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended"><xref linkend="xulrunner"/> which shares all these
dependencies, or for a standalone <application>Firefox</application> the
following Required and Optional dependencies:</para>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required"><xref linkend="alsa-lib"/>,
<xref linkend="gtk2"/>,
<xref linkend="libidl"/>,
<xref linkend="pango"/>,
<xref linkend="python"/>, and
<xref linkend="libidl"/> and
<xref linkend="zip"/></para>
<para>Note: <application>libjpeg</application> should have been installed
before <application>GTK+</application> and should exist on your system. If
for some reason you haven't installed <application>libjpeg</application>,
you should remove the <option>--with-system-jpeg</option> option from the
<para>Note: <application>libjpeg</application> and
<application>libpng</application> (patched for apng support) should have
been installed before <application>gdk-pixbuf</application> and should
exist on your system. If for some strange reason you haven't installed
them, you should remove the <option>--with-system-jpeg</option> and
<option>--with-system-png</option> options from the
<filename>mozconfig</filename> file created below.</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional"><xref linkend="dbus-glib"/>,
<xref linkend="doxygen"/>,
<xref linkend="curl"/> (only for crash-reporter),
<xref linkend="gnome-vfs"/> and <xref linkend="libgnomeui"/> (for gnome integration),
<xref linkend="libnotify"/>,
<xref linkend="libpng"/> (patched for apng support),
<xref linkend="nss"/> (recommended if you build any other Mozilla.org packages),
<xref linkend="startup-notification"/>,
<xref linkend="sqlite"/>,
<xref linkend="unzip"/>,
<xref linkend="startup-notification"/>, <xref linkend="sqlite"/>,
<ulink url="http://www.webmproject.org/code/">libvpx</ulink>,
<ulink url="http://sourceforge.net/projects/hunspell/">Hunspell</ulink>,
<ulink url="http://www.valgrind.org/">Valgrind</ulink> (only for testing the jemalloc code), and
<xref linkend="wget"/></para>
<xref linkend="doxygen"/>,
<xref linkend="gnome-vfs"/> and <xref linkend="libgnomeui"/> (for gnome
integration), <xref linkend="libnotify"/>, <xref linkend="nss"/>,
<xref linkend="unzip"/>, <xref linkend="wireless_tools"/>,
<ulink url="http://www.valgrind.org/">Valgrind</ulink> (only for testing
the jemalloc code) and <xref linkend="wget"/></para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/firefox"/></para>
@ -140,182 +97,69 @@
the desired configuration options. A default <filename>mozconfig</filename>
is created below. To see the entire list of available configuration options
(and an abbreviated description of each one), issue
<command>./configure --help</command>. If you are not building against
<application>Xulrunner</application> you must comment the 'Xulrunner' items.
You may also wish to review the entire file and uncomment any other desired
options. If you would prefer to download the file instead of creating it by
typing or cut-and-pasting, you can find it at <ulink
url="&files-anduin;/firefox-&firefox-version;-mozconfig"/>
(the file must be installed in the root of the source tree
<filename class='directory'>mozilla</filename> directory, and named
<filename>mozconfig</filename> or <filename>.mozconfig</filename>). Create
the file by issuing the following command:</para>
<command>./configure --help</command>. <!--If you are not building against
<application>Xulrunner</application> you must comment the 'Xulrunner'
items. --> You may also wish to review the entire file and uncomment any
other desired options. Create the file by issuing the following
command:</para>
<screen><?dbfo keep-together="auto"?><userinput>cat &gt; mozconfig &lt;&lt; "EOF"
<literal># This file contains the options used in the Firefox build. You may
# need to specify additional options for your specific build needs.
# Use the information provided by running './configure --help' to
# help you determine if you need to add any additional options.
# Some additional options can be added by uncommenting the examples
# in this file or adding options by inserting a line containing
# 'ac_add_options --some-option-you-need'. Be aware that some accepted
# options, such as '--with-system-bz2', do not affect the build.
<literal># If you have a multicore machine you can speed up the build by running
# several jobs at once, but if you have a single core, delete this line:
mk_add_options MOZ_MAKE_FLAGS="-j4"
# Specify that Firefox should be built. Note that this line is commented out
# because it is redundant with the next setting.
#ac_add_options --enable-application=browser
# Use the default settings specified in the source tree. The
# --enable-application=browser is set in this file.
. $topsrcdir/browser/config/mozconfig
# Create an object directory and specify to build the package in that
# directory. If desired, modify the location of the object directory
# to a directory inside the source tree by removing '../' from the
# line below.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../firefox-build
# Specify the installation prefix. If you would prefer Firefox installed in a
# different prefix, modify the line below to fit your needs.
ac_add_options --prefix=/usr
# Apply a minimal level of optimization (-O).
ac_add_options --enable-optimize
# These options are used so that the Firefox binaries are linked to
# the system-installed copies of the specified libraries instead of
# the source tree code which may not be the most recent versions.
# With the exception of libsqlite3, the libraries are statically linked.
# (Options to use system installed libraries)
# Using the shipped version of libsqlite3 has been reported to cause
# problems with other applications which were using sqlite3.
# Only comment this line if you know exactly what you are doing!
ac_add_options --enable-system-sqlite
# Comment this only if you want to use whatever patched version of cairo
# is in the shipped mozilla tree, together with the system headers.
ac_add_options --enable-system-cairo
# Comment this if you have not installed lcms.
ac_add_options --enable-system-lcms
# Uncomment this if you have installed Hunspell
#ac_add_options --enable-system-hunspell
# Uncomment this if you have installed startup-notification
#ac_add_options --enable-startup-notification
# Comment this if you did not build libjpeg before GTK+-2.
ac_add_options --with-system-jpeg
# These two options enable support for building Xulrunner with
# system-installed versions of the Network Security Services (NSS)
# and Netscape Portable Runtime (NSPR) libraries. Comment them if
# you wish to use the included copies (not recommended).
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
# Comment this if you have not built png with the apng patch.
ac_add_options --with-system-png
# The pthreads option is only used when building nspr
# Uncomment this if you build the included nspr.
#ac_add_options --with-pthreads
# Zlib is included in LFS. Do not comment this line.
ac_add_options --with-system-zlib
# (Options to disable parts of the package)
# This option is used to disable the a11y support in the Xulrunner
# binaries. Comment out this option if you require a11y support.
ac_add_options --disable-accessibility
# Uncomment this if you did not build cURL.
#ac_add_options --disable-crashreporter
# Comment this if you have built DBus-Glib.
# If you have installed DBus-Glib you can delete this option:
ac_add_options --disable-dbus
# Comment this if you have Gnome-VFS and libgnomeui, and wish to
# integrate Firefox into your Gnome desktop
ac_add_options --disable-gnomevfs
# Comment this if you have wireless-tools installed and wish to use the new
# Necko WiFi scanning.
# If you have installed wireless-tools you can delete this option:
ac_add_options --disable-necko-wifi
# Comment this if you have installed libnotify.
ac_add_options --disable-libnotify
# Uncomment these if you have installed them:
# ac_add_options --enable-system-sqlite
# ac_add_options --enable-system-lcms
# ac_add_options --with-system-libvpx
# ac_add_options --enable-startup-notification
# This option is added so that the Mozilla Installer program is not
# built or installed. The program is not required for a BLFS
# installation of Xulrunner.
ac_add_options --disable-installer
# If you enable javaxpcom, you must have a java compiler installed.
ac_add_options --disable-javaxpcom
# This option is added so that test libraries and programs are not
# built. These would only be required for debugging purposes.
ac_add_options --disable-tests
# Disable the updater, which is not appropriate if you build from source.
ac_add_options --disable-updater
# (options to add extra parts of the package)
# This option causes the installed Firefox binaries to have the official
# Firefox name embedded in them. Due to license restrictions, you
# may not distribute binaries created using this option. It also
# means you get a popup EULA when you first run Firefox.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-build-dir
ac_add_options --enable-official-branding
# Use the anti-phishing measures (a blacklist of sites).
ac_add_options --enable-safe-browsing
# This option is used so that the debugging symbols are removed from
# the installed binaries during the installation process. Comment out
# this option if you may have a need to retain the debugging symbols
# in the installed binaries (the resulting binaries will be about 7MB
# bigger).
ac_add_options --enable-strip
# Uncomment this option if you desire support for dual-monitor
# display using the X-Window Xinerama libraries.
#ac_add_options --enable-xinerama
# This option identifies the default binary directory of the Firefox
# installation and is used to locate Firefox's installed files. This
# option is is only used for development purposes.
#ac_add_options --with-default-mozilla-five-home=/usr/lib/firefox-&firefox-version;
# Point to the Xulrunner libraries - comment these for a standalone browser.
ac_add_options --with-system-libxul
ac_add_options --with-libxul-sdk=/usr/lib/xulrunner-devel-&xulrunner-version;</literal>
ac_add_options --prefix=/usr
ac_add_options --enable-application=browser
ac_add_options --enable-pthreads
ac_add_options --enable-system-ffi
ac_add_options --enable-system-jpeg
ac_add_options --enable-system-png
ac_add_options --enable-system-cairo
ac_add_options --enable-system-zlib
ac_add_options --enable-shared
ac_add_options --disable-static
ac_add_options --disable-debug
ac_add_options --disable-crashreporter
ac_add_options --disable-installer
ac_add_options --disable-updater
ac_add_options --disable-tests</literal>
EOF</userinput></screen>
<!--
# Point to the Xulrunner libraries - comment these for a standalone browser.
ac_add_options - -with-system-libxul
ac_add_options - -with-libxul-sdk=/usr/lib/xulrunner-devel-&xulrunner-version;
-->
<para>Compile <application>Firefox</application> by issuing the
following commands:</para>
<screen><userinput>make -f client.mk build</userinput></screen>
<screen><userinput>make -f client.mk</userinput></screen>
<para>This package does not come with a test suite.</para>
<para>Now, as the <systemitem class="username">root</systemitem> user,
install the package:</para>
<screen role="root"><userinput>make -f client.mk install &amp;&amp;
chown -R -v root:root /usr/share/idl/firefox-&firefox-version; \
/usr/include/firefox-&firefox-version; \
destdir/usr/lib/firefox-devel-3.6.13/sdk/lib</userinput></screen>
<para>If you are building Firefox on Xulrunner, as the
<systemitem class="username">root</systemitem> user enter the following
symbolic link:</para>
<screen role="root"><userinput>ln -sv /usr/lib/xulrunner-&xulrunner-version;/plugins \
/usr/lib/firefox-&firefox-version;</userinput></screen>
<screen role="root"><userinput>make -C firefox-build-dir install &amp;&amp;
mkdir -p /usr/lib/mozilla/plugins &amp;&amp;
ln -sv ../mozilla/plugins /usr/lib/firefox-&firefox-version; &amp;&amp;
chown -R -v root:root /usr/{include,lib,share/idl}/firefox-&firefox-version; &amp;&amp;
chown -R -v root:root /usr/lib/firefox-devel-&firefox-version;</userinput></screen>
</sect2>
@ -326,113 +170,17 @@ chown -R -v root:root /usr/share/idl/firefox-&firefox-version; \
packaged to allow the use of a configuration file which can be used to
pass the configuration settings to the <command>configure</command>
command. <command>make</command> uses the <filename>client.mk</filename>
file to get initial configuration and setup parameters, then depending on
the target parameter (<parameter>build</parameter> or
<parameter>install</parameter>), either runs the
<command>configure</command> script and compiles the package or installs
the package.</para>
file to get initial configuration and setup parameters.</para>
<para><command>ln -sv /usr/lib/xulrunner-&xulrunner-version;/plugins
/usr/lib/firefox-&firefox-version;/plugins</command>:
<application>Firefox</application> looks for plugins in its own directory,
but when building on <application>Xulrunner</application> the plugins were
installed by that package. Note that any plugins in
<filename class="directory">/usr/lib/mozilla/plugins</filename> will also be
found.</para>
<para><command>make -C firefox-build-dir install</command>: this runs
<command>make install</command> inside the firefox-build-dir folder.</para>
<tip>
<para>If you upgrade firefox, ensure that any additional plugins are moved
to the plugin directory of the new version.</para>
</tip>
<para><command>mkdir -p /usr/lib/mozilla/plugins</command>: this checks
that /usr/lib/mozilla/plugins exists (if you installed
<xref linkend="librsvg"/>, it was probably already there).</para>
</sect2>
<sect2 role="configuration">
<title>Configuring Firefox</title>
<para>No specific configuration is required as long as the
<command>firefox</command> script is in the user's path. If
<application>Firefox</application> is installed in a non-standard location,
then make a symlink to the <command>firefox</command> script in the
<filename class="directory">/usr/bin</filename> directory.</para>
<para>If your Window or Desktop Manager does not allow you to configure
a default mail client, you can add a configuration parameter to
<application>Firefox</application> so that an email client will start
when you click on a <systemitem role='url'>mailto:</systemitem> URL.
There are two parameters you need to check. The procedure to check or
modify any of the configuration parameters is quite simple and the
instructions here can be used to view or modify any of the
parameters.</para>
<para>First, open the configuration dialog by entering
<systemitem role='url'>about:config</systemitem> in the address bar. This
will display a list of the configuration preferences and information
related to each one. You can use the <quote>Filter:</quote> bar to enter
search criteria and narrow down the listed items. Changing a preference
can be done using two methods. One, if the preference has a boolean value
(True/False), simply double-click on the preference to toggle the value
and two, for other preferences simply right-click on the desired line,
choose <quote>Modify</quote> from the menu and change the value. Creating
new preference items is accomplished in the same way, except choose
<quote>New</quote> from the menu and provide the desired data into the
fields when prompted.</para>
<para>The two configuration preference items you need to check so that
<application>Firefox</application> uses a specified default mail client
are the <parameter>network.protocol-handler.external.mailto</parameter>
which should be set to <option>True</option> and the
<parameter>network.protocol-handler.app.mailto</parameter> which should
be set to the path of the desired mail client, e.g.,
<option>/usr/bin/thunderbird</option>.</para>
<tip>
<para>There is a multitude of configuration parameters you can tweak to
customize <application>Firefox</application>. A very extensive and
up-to-date list of these parameters can be found at <ulink
url="http://preferential.mozdev.org/preferences.html"/>.</para>
</tip>
<para>Many old applications used to look for <command>netscape</command>
when they needed to open a browser. You may wish to make the following
symlink for convenience (as the <systemitem class="username">root</systemitem>
user).</para>
<screen role="root"><userinput>ln -v -sf firefox /usr/bin/netscape</userinput></screen>
<para>For installing various <application>Firefox</application> plugins,
refer to <ulink url="http://plugindoc.mozdev.org/linux.html">Mozdev's
PluginDoc Project</ulink>. If you have the <xref linkend="jdk"/> already
installed, create the following link as the
<systemitem class="username">root</systemitem> user to utilize the installed
<application>Java</application> plugin: </para>
<screen role="root"><userinput>ln -v -s $JAVA_HOME/jre/lib/i386/libnpjp2.so \
/usr/lib/firefox-&firefox-version;/plugins</userinput></screen>
<para>If you have <xref linkend="icedtea6"/> installed as opposed to the
<xref linkend="jdk"/>, create the following link (again as the
<systemitem class="username">root</systemitem> user) to use the
<application>IcedTea6</application> plugin: </para>
<screen role="root"><userinput>ln -v -s $JAVA_HOME/jre/plugin/i386/IcedTeaPlugin.so \
/usr/lib/firefox-&firefox-version;/plugins</userinput></screen>
<para>Some packages install Mozilla plugins into the default system-wide
directory <filename class='directory'>/usr/lib/mozilla/plugins</filename>.
If you have not already done this for <application>Xulrunner</application>
create symbolic links in the <application>Firefox</application>
plugin directory
<filename class='directory'>/usr/lib/firefox-&firefox-version;/plugins</filename>
to the files in the default plugin directory (you should link to the actual
files and not other links). Alternatively, you can move or copy the files
in the default plugin directory to the
<application>Firefox</application> plugin directory. An example of creating
a symbolic link is shown below. Create the links as the
<systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>ln -v -s ../../mozilla/plugins/<replaceable>&lt;plugin.so&gt;</replaceable> \
/usr/lib/firefox-&firefox-version;/plugins</userinput></screen>
<para><command>ln -sv ... /usr/lib/firefox-&firefox-version;</command>:
this makes a symbolic link to /usr/lib/mozilla/plugins.</para>
</sect2>
@ -464,14 +212,8 @@ chown -R -v root:root /usr/share/idl/firefox-&firefox-version; \
<varlistentry id="firefox-prog">
<term><command>firefox</command></term>
<listitem>
<para>in a stand-alone build is a symbolic link to shell script in
<filename class="directory">/usr/lib/firefox-&firefox-version;</filename>
that sets up the environment and calls the <filename>firefox-bin</filename>
binary. When built on <application>Xulrunner</application>,
<command>firefox</command> is a symbolic link to a
<command>firefox</command> binary in
<filename class="directory">/usr/lib/firefox-&firefox-version;</filename>.
</para>
<para>is a gtk2 internet browser that uses the gecko rendering
engine.</para>
<indexterm zone="firefox firefox-prog">
<primary sortas="b-firefox">firefox</primary>
</indexterm>