Firefox-2.0.0.15

Introduction to Firefox

Firefox is a stand-alone browser based on the Mozilla codebase.

Package Information

Firefox Dependencies

Required

GTK+-2.10.13, libIDL-0.8.8, and Zip-2.32

Note: libjpeg should have been installed before GTK+ and should exist on your system. If for some reason you haven't installed libjpeg, you should remove the --with-system-jpeg option from the .mozconfig file created below.

Recommended

Optional

UnZip-5.52 and libgnomeui-2.18.1 (to build the gnomevfs extension)

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/firefox

Installation of Firefox

The configuration of Firefox is accomplished by creating a .mozconfig file containing the desired configuration options. A default .mozconfig is created below. To see the entire list of available configuration options (and an abbreviated description of each one), issue ./configure --help. If you are going to use system-installed versions of the NSS and NSPR libraries, ensure you uncomment the two lines near the bottom of the file. If you are going to build the OpenOffice package and you want to use this Firefox installation as the default Mozilla source, ensure you uncomment the --enable-ldap option in the file created below. 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 http://anduin.linuxfromscratch.org/files/BLFS/6.3/firefox-2.0.0.15-mozconfig (the file must be installed in the root of the source tree mozilla directory, and named .mozconfig). Create the file by issuing the following command:

cat > .mozconfig << "EOF"
# 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'.


# Use the default settings specified in the source tree
. $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. You'll also need to modify some of the instructions in
# the BLFS book to point to your desired prefix.
ac_add_options --prefix=/usr

# 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.
ac_add_options --with-system-zlib
ac_add_options --with-system-png
ac_add_options --with-system-jpeg
ac_add_options --enable-system-cairo

# This option causes the installed binaries to have the official
# Firefox name embedded in them. Due to license restrictions, you
# may not distribute binaries created using this option.
ac_add_options --enable-official-branding

# This option is used to enable support for rendering SVG files in the
# Firefox browser. Comment out the line to disable the option.
ac_add_options --enable-svg

# 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. Note that this can substantially
# increase the size of the installed binaries.
ac_add_options --enable-strip

# 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

# 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 Firefox.
ac_add_options --disable-installer

# This option is used to disable the a11y support in the Firefox
# binaries. Comment out this option if you require a11y support.
ac_add_options --disable-accessibility

# This option is used to enable source tree included LDAP support in
# the Firefox binaries.
###################################################################
#
# NOTE: You must uncomment this option if there is any chance of
# compiling the OpenOffice package from source code using this copy
# of Firefox for your Mozilla support.
#
###################################################################
#ac_add_options --enable-ldap

# Uncomment this option if you desire support for dual-monitor
# display of Firefox using the X-Window Xinerama libraries.
#ac_add_options --enable-xinerama

# These two options enable support for building Firefox with
# system-installed versions of the Network Security Services (NSS)
# and Netscape Portable Runtime (NSPR) libraries. Uncomment both
# lines to enable support for system-installed NSS/NSPR.
#ac_add_options --with-system-nss
#ac_add_options --with-system-nspr

# Complex scripts such as Thai can only be rendered in Firefox with the
# help of Pango. This option significantly slows rendering, so only use
# it if necessary.
#ac_add_options --enable-pango

# This option identifies the default binary directory of the Firefox
# installation and is used to locate Firefox's installed files. This
# option is not required for end-user browsing, and is only used for
# development purposes.
#ac_add_options --with-default-mozilla-five-home=/usr/lib/firefox-2.0.0.15

EOF

Compile Firefox by issuing the following commands:

cat >> layout/build/Makefile.in << "EOF" &&
ifdef MOZ_ENABLE_CANVAS
EXTRA_DSO_LDOPTS += $(XLDFLAGS) -lX11 -lXrender
endif
EOF

sed -i "s/^    enum$/& xptinfo_enum_1/" \
    xpcom/reflect/xptinfo/public/xptinfo.h &&

make -f client.mk build

This package does not come with a test suite.

Now, as the root user, install the package:

make -f client.mk install &&

install -v -m755 -d /usr/lib/firefox-2.0.0.15/chrome/icons/default &&
ln -v -s ../../../icons/default.xpm \
    /usr/lib/firefox-2.0.0.15/chrome/icons/default &&

chown -v -R root:root \
    /usr/lib/firefox-2.0.0.15/extensions/inspector@mozilla.org/*

If you enabled LDAP support in the Firefox build, install some additional interface headers as the root user:

install -v -m644 ../firefox-build/dist/public/ldap-private/* \
    /usr/include/firefox-2.0.0.15/ldap

If you built Firefox utilizing system-installed NSS and NSPR libraries, the firefox-ns*.pc pkgconfig files are broken as they point to the wrong directories where the actual libraries and interface headers are located. Issue the following commands as the root user to replace the broken files with symbolic links to known good files:

ln -v -sf nss.pc /usr/lib/pkgconfig/firefox-nss.pc &&
ln -v -sf nspr.pc /usr/lib/pkgconfig/firefox-nspr.pc

If you did NOT build Firefox utilizing system-installed NSS and NSPR libraries, issue the following commands as the root user to install the NSS interface headers:

install -v -m755 -d /usr/include/firefox-2.0.0.15/nss &&
cp -v -Lf ../firefox-build/dist/{private,public}/nss/*.h \
    /usr/include/firefox-2.0.0.15/nss
[Note]

Note

You should run /usr/bin/firefox once as the root user (or any user with write privileges) to create some necessary additional files in the /usr hierarchy.

Command Explanations

'EXTRA_DSO_LDOPTS' += -lX11 -lXrender ...: Building the layout backend will break when the canvas element is enabled without adding these two required libraries.

sed -i "s/^ enum$/& xptinfo_enum_1/" ...: This command is used to fix an anonymous enum in an external/public interface header file.

make -f client.mk ...: Mozilla products are packaged to allow the use of a configuration file which can be used to pass the configuration settings to the configure command. make uses the client.mk file to get initial configuration and setup parameters, then depending on the target parameter (build or install), either runs the configure script and compiles the package or installs the package.

install -v -m755 -d .../chrome/icons/default and ln -v -s ../../../icons/default.xpm ...: These two commands are used to create a symlink in the required directory so that the proper icon is displayed in the taskbar and when Firefox windows are minimized.

chown -v -R root:root ...: This command changes the ownership of some installed files to more appropriate user:group names.

Configuring Firefox

No specific configuration is required as long as the firefox script is in the user's path. If Firefox is installed in a non-standard location, then make a symlink to the firefox script in the /usr/bin directory.

If your Window or Desktop Manager does not allow you to configure a default mail client, you can add a configuration parameter to Firefox so that an email client will start when you click on a mailto: 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.

First, open the configuration dialog by entering about:config in the address bar. This will display a list of the configuration preferences and information related to each one. You can use the “Filter:” 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 “Modify” from the menu and change the value. Creating new preference items is accomplished in the same way, except choose “New” from the menu and provide the desired data into the fields when prompted.

The two configuration preference items you need to check so that Firefox uses a specified default mail client are the network.protocol-handler.external.mailto which should be set to True and the network.protocol-handler.app.mailto which should be set to the path of the desired mail client, e.g., /usr/bin/thunderbird.

[Tip]

Tip

There is a multitude of configuration parameters you can tweak to customize Firefox. A very extensive and up-to-date list of these parameters can be found at http://preferential.mozdev.org/preferences.html.

Many applications look for netscape when they need to open a browser. You may wish to make the following symlink for convenience (as the root user).

ln -v -sf firefox /usr/bin/netscape

For installing various Firefox plugins, refer to Mozdev's PluginDoc Project. If you have the JDK-6 Update 5 already installed, create the following link as the root user to utilize the installed Java plugin:

ln -v -s $JAVA_HOME/jre/plugin/i386/ns7/libjavaplugin_oji.so \
    /usr/lib/firefox-2.0.0.15/plugins

Some packages install Mozilla plugins into the default system-wide directory /usr/lib/mozilla/plugins. If desired, create symbolic links in the Firefox plugin directory /usr/lib/firefox-2.0.0.15/plugins 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 Firefox plugin directory. An example of creating a symbolic link is shown below. Create the links as the root user:

ln -v -s ../../mozilla/plugins/<plugin.so> \
    /usr/lib/firefox-2.0.0.15/plugins

Contents

Installed Programs: firefox and firefox-config
Installed Libraries: Numerous libraries, browser components, plugins, extensions, and helper modules installed in /usr/lib/firefox-2.0.0.15
Installed Directories: /usr/include/firefox-2.0.0.15, /usr/lib/firefox-2.0.0.15, and /usr/share/idl/firefox-2.0.0.15

Short Descriptions

firefox

is a shell script that sets up the environment and calls the firefox-bin binary.

firefox-config

determines the compile and linker flags that should be used to compile and link programs that use Firefox libraries and browser components.

Last updated on 2008-07-12 17:31:53 -0500