Graphical Web Browsers

This chapter contains a wonderful selection of browsers. We hope you can find one you enjoy using or give them each a trial run.


Introduction to Mozilla

Mozilla is a browser suite, the Open Source sibling of Netscape. It includes the browser, composer, mail client, a calendar client and an IRC client.

The Mozilla project also hosts two subprojects that aim to satisfy the needs of users who don't need the complete browser suite or like to have separate applications for browsing and e-mail. These subprojects are Mozilla Firefox, (a stand-alone browser based on the Mozilla source code) and Mozilla Thunderbird, (a stand-alone mail client based on the Mozilla source code). The build instructions for these two applications are discussed in separate sections:

Package information

Mozilla dependencies


GnuPG-1.2.4 (for Enigmail extension)

Additional downloads

Installation of Mozilla



Do not install Mozilla, Mozilla Firefox and Mozilla Thunderbird with a single prefix since they install identically named files. The BLFS Book installs Mozilla in /usr while Mozilla Firefox and Mozilla Thunderbird are installed in /opt.

If you plan to install Enigmail, extract the ipc and enigmail tarballs in the extensions directory.

Compile Mozilla by running the following commands:

export MOZILLA_OFFICIAL="1" &&
export BUILD_OFFICIAL="1" &&
./configure --prefix=/usr \
            --with-default-mozilla-five-home=/usr/lib/mozilla \
            --enable-default-toolkit=gtk2 \
            --with-x --with-system-zlib \
            --with-system-jpeg --with-system-png --with-system-mng \
            --enable-xft --enable-crypto \
            --disable-accessibility \
            --disable-tests --disable-debug \
            --disable-logging --enable-reorder \
            --enable-strip --disable-pedantic \
            --enable-cpp-rtti --enable-extensions=all &&

If installing Enigmail, execute the following steps:

build/autoconf/make-makefile extensions/ipc extensions/enigmail &&
make -C extensions/ipc &&
make -C extensions/enigmail

Install Mozilla as follows:

make install &&
install -d /usr/include/mozilla-1.6/nss &&
cp -Lf dist/private/nss/*.h dist/public/nss/*.h \
   /usr/include/mozilla-1.6/nss &&
ln -nsf mozilla-1.6 /usr/include/mozilla &&
ln -nsf mozilla-1.6 /usr/lib/mozilla

Some libraries installed by mozilla are also needed by other packages. These libraries should be in /usr/lib so that other packages can link against them. Move them as follows:

for i in lib{nspr4,plc4,plds4,nss3,smime3,softokn3,ssl3}.so libsoftokn3.chk
   mv /usr/lib/mozilla-1.6/$i /usr/lib/
   ln -sf ../$i /usr/lib/mozilla-1.6/

Install Enigmail as follows:

make -C extensions/ipc install &&
make -C extensions/enigmail install

To enable multi-user operation, execute the following:

cd /usr/lib/mozilla-1.6 &&
export LD_LIBRARY_PATH="/usr/lib/mozilla-1.6" &&
export MOZILLA_FIVE_HOME="/usr/lib/mozilla-1.6" &&
./regxpcom &&
./regchrome &&
touch `find /usr/lib/mozilla-1.6 -name *.rdf`

Optional Extra Switches

Each of these switches can be added to the configure line in order to have the described effect on the Mozilla compile.

--enable-elf-dynstr-gc: Removes un-referenced strings from ELF shared objects generated during the build. Note that this option breaks the build on alpha.

--disable-mailnews: Disable the mail and news clients.

--disable-ldap: Disable LDAP support, recommended if mail is disabled.

--enable-calendar: Build the calendar client.

--enable-xterm-updates: This option is for enabling the xterm title with the current command when compiling.

--enable-plaintext-editor-only: Disable support for HTML editing. Do not use this switch if you are building the mail-news component.

Command explanations

export MOZILLA_OFFICIAL="1" &&

Set some variables that affect what and how the package is built. The first two exports specify a distribution is being built.

--prefix=/usr: Previously mozilla did not support the make install option. Hence, the package was installed in /opt. The package now supports "make install" and follows the FHS guidelines for installation. Therefore the book now recommends installation in a system wide prefix such as /usr .


Use gtk2 toolkit.

--with-system-zlib --with-system-jpeg \
--with-system-png --with-system-mng

Use the system versions for these packages.

--enable-xft: Enable the Xft support. You need fontconfig or the latest XFree86 version to enable xft.

--enable-crypto: Enable the Personal Security Manager to enable SSL connections.

--disable-jsd --disable-accessibility \
--disable-tests --disable-debug \
--disable-dtd-debug \
--disable-logging --enable-reorder \
--enable-strip \

Various options that affect what components are built and some optimization options. You can pick and choose from these options. More information on them can be found in the Mozilla configure script help. Not all options are used in the instructions given above.

--enable-extensions=...: Enables extensions. If you want, you can disable all extensions other than the browser by changing this switch to --enable-extensions="default,-venkman,-inspector,-irc". For a short description of the various extensions available with the mozilla source, see

install -d /usr/include/mozilla-1.6/nss
cp -Lf dist/private/nss/*.h dist/public/nss/*.h \

Copy the nss headers that are not copied by make install.

ln -nsf mozilla-1.6 ...: Mozilla installs headers and libraries in version specific directories. This command makes symbolic links so that applications that depend on Mozilla (such as OpenOffice , Galeon, etc.) don't need to know which version of Mozilla is installed.

export LD_LIBRARY_PATH="/usr/lib/mozilla-1.6" &&
export MOZILLA_FIVE_HOME="/usr/lib/mozilla-1.6" &&
./regxpcom &&
./regchrome &&
touch `find /usr/lib/mozilla-${VERSION} -name *.rdf`

Create the required component registries to enable multi-user installs. These steps should be preformed by the root user each time a mozilla add-on is installed. This will allow normal users to run mozilla.

Configuring Mozilla

No specific configuration is required as long as the mozilla binary is in the path for the user. If Mozilla is installed in a non-standard location, then make a symlink to the mozilla binary from /usr/bin. The same thing applies for Mozilla Firefox and Mozilla Thunderbird.

Many applications look for netscape when they need to open a browser. You may make the following symlink for convenience.

ln -sf mozilla /usr/bin/netscape

For installing various Mozilla plugins, refer to Mozdev's PluginDoc Project


The Mozilla package contains mozilla. The various components such as composer and mail-news can be accessed from the menu after mozilla starts or via command-line switches to the mozilla binary.