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.

Mozilla-1.7.8

Introduction to Mozilla

Mozilla is a browser suite, the Open Source sibling of Netscape. It includes the browser, composer, mail and news clients, 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 prefer 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

Additional Downloads

To enable the Enigmail extension to the Mozilla mail client, you'll need to download the two tarballs below. The Enigmail extension allows users to access the authentication and encryption features provided by the GnuPG package.

Mozilla Dependencies

Required

Zip-2.31, GTK+-2.6.7, libIDL-0.8.5

Recommended

GnuPG-1.4.1 (for the Enigmail extension)

Optional

libjpeg-6b, UnZip-5.52, GNOME Virtual File System-2.10.1 (to build the gnomevfs extension), libart_lgpl-2.3.17, Heimdal-0.7 or MIT krb5-1.4.1 (for the GSSAPI libraries to build the negotiateauth extension), Doxygen-1.4.3, Xprint, Electric Fence and Cairo

Installation of Mozilla

Compile Mozilla by running the following commands:

export MOZILLA_OFFICIAL="1" &&
export BUILD_OFFICIAL="1" &&
export MOZ_CO_PROJECT="suite" &&
./configure --prefix=/usr \
            --with-default-mozilla-five-home=/usr/lib/mozilla \
            --with-system-zlib \
            --with-system-png \
            --enable-application=suite \
            --enable-default-toolkit=gtk2 \
            --enable-extensions=all \
            --enable-crypto \
            --enable-xft \
            --enable-xinerama \
            --enable-optimize \
            --enable-reorder \
            --enable-strip \
            --enable-cpp-rtti \
            --enable-calendar \
            --disable-freetype2 \
            --disable-accessibility \
            --disable-debug \
            --disable-tests \
            --disable-logging \
            --disable-pedantic \
            --disable-installer &&
make

You should add the --with-system-jpeg switch to the configure script if you have libjpeg installed.

If you're building the Mozilla mail and news clients and plan to install the Enigmail extension, execute the following steps:

tar -zxf ../enigmail-0.91.0.tar.gz -C extensions &&
tar -zxf ../ipc-1.1.2.tar.gz -C extensions &&
build/autoconf/make-makefile extensions/ipc extensions/enigmail &&
make -C extensions/ipc &&
make -C extensions/enigmail

Install Mozilla (as the root user) as follows:

make install &&
install -v -d -m755 /usr/include/mozilla-1.7.8/nss &&
cp -v -Lf dist/private/nss/*.h dist/public/nss/*.h \
   /usr/include/mozilla-1.7.8/nss &&
ln -v -nsf mozilla-1.7.8 /usr/include/mozilla &&
if [ -d /usr/lib/mozilla/plugins ]; then
    mv -v /usr/lib/mozilla/plugins/* /usr/lib/mozilla-1.7.8/plugins
    rm -v -rf /usr/lib/mozilla
fi &&
ln -v -nsf mozilla-1.7.8 /usr/lib/mozilla

If you're installing the Enigmail extension, issue the following commands as the root user:

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

Some libraries, including the Netscape Portable Runtime (NSPR) and Network Security Services (NSS) 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. As the root user, move them as follows:

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

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 unprivileged users to run mozilla. Enable multi-user operation by executing the following:

cd /usr/lib/mozilla-1.7.8 &&
export LD_LIBRARY_PATH="$PWD" &&
export MOZILLA_FIVE_HOME="$PWD" &&
./regxpcom &&
./regchrome &&
touch `find . -name *.rdf`
[Note]

Note

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

Lastly, unset the build variables from the unprivileged user's environment:

unset MOZILLA_OFFICIAL &&
unset BUILD_OFFICIAL &&
unset MOZ_CO_PROJECT

Optional Extra Switches

You may wish to run ./configure --help and review each of the listed options to discover what affect they have on the build. Feel free to add or remove options to tailor the build to your desires. Listed below are some common options not listed above but can be added to the configure command in order to have the described effect on the Mozilla compile.

--with-system-jpeg: Uses the system-installed copy of libjpeg instead of the bundled copy.

--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: Disables the mail and news clients.

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

--enable-xterm-updates: Displays the current command in the xterm window title during the compilation.

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

Command Explanations

export MOZILLA_OFFICIAL="1"; export BUILD_OFFICIAL="1": Set some variables that affect what and how the package is built. These two exports specify a distribution is being built.

--with-default-mozilla-five-home=/usr/lib/mozilla: Sets the default value for MOZILLA_FIVE_HOME.

--with-system-zlib --with-system-png : Use the system-installed versions of these packages.

--enable-application=suite: Identifies the build as a Mozilla suite build.

--enable-default-toolkit=gtk2: Use the GTK2 toolkit for graphics rendering.

--enable-extensions=all: Enables all available extensions. If you want, you can disable any or all extensions other than the browser by changing this switch to --enable-extensions="default,-venkman,-inspector,...". For a short description of the various extensions available with the Mozilla source, see http://linuxfromscratch.org/~tushar/downloads/mozilla-extensions.txt.

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

--enable-calendar: Builds the calendar application. Removed this parameter if you don't wish to build it.

--enable-xft; --disable-freetype2: Enable Xft support which automatically pulls in the FreeType libraries.

--enable-xinerama; --enable-optimize; --enable-reorder; --enable-strip; --enable-cpp-rtti --disable-accessibility; --disable-debug; --disable-tests; --disable-logging; --disable-pedantic; --disable-installer: Various options that affect what components are built and some optimization options. You can pick and choose from these options. More information on them, and many other available options, can be found by running ./configure --help.

install -d /usr/include/mozilla-1.7.8/nss; cp -Lf ...: Copy the NSS interface headers that are not copied by make install.

if [ -d /usr/lib/mozilla/plugins ] ... fi: Some applications may have already installed Mozilla plugins. This set of commands move any existing plugins to the newly created plugin directory, then removes the existing /usr/lib/mozilla directory.

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

Configuring Mozilla

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

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

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

For installing various Mozilla plugins, refer to Mozdev's PluginDoc Project. If you have JDK-1.5.0 already installed, create the following link as the root user to utilize the JAVA plugin:

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

Contents

Installed Program: mozilla
Installed Libraries: Numerous libraries, browser, and email/newsgroup components, plugins, extensions, and helper modules installed in /usr/lib/mozilla-1.7.8
Installed Directories: /usr/include/mozilla-1.7.8, /usr/lib/mozilla-1.7.8, and /usr/share/idl/mozilla-1.7.8

Short Descriptions

mozilla

is a browser/email/newsgroup/calendar/chat client suite. The various components such as the Composer, mail-news client, calendar, IRC chat client and address book can be accessed from the menu after mozilla starts or via command-line switches to the mozilla script. Issue man mozilla for additional information.

Last updated on 2005-08-01 13:29:19 -0600