mozilla-1.3

Introduction to mozilla

Download location (HTTP):       http://ftp.mozilla.org/pub/mozilla/releases/mozilla1.3/src/mozilla-source-1.3.tar.bz2
Download location (FTP):        ftp://ftp.mozilla.org/pub/mozilla/releases/mozilla1.3/src/mozilla-source-1.3.tar.bz2
Version used:                   1.3
Package size:                   39 MB
Estimated Disk space required:  550 MB
Estimated Build time:           2 Hrs (850 MHz)
Estimated Install size:         65 MB

Mozilla is a browser suite, the opensource sibling of Netscape. It includes the browser, composer, mail client and an IRC client. A calendar component is also being built but it is not yet integrated into the stable mozilla releases.

mozilla depends on:
freetype-2.1.3, xfree86-4.3.0,	zip-2.3,
GLib-2.2.1, GTK+-2.2.1, libIDL-0.8.0,
lcms-1.09, libjpeg-6b, libmng-1.0.5,
libpng-1.2.5 and which-2.14

Download the patch for various fixes to the build from http://downloads.linuxfromscratch.org/blfs-patches. The patches begin with mozilla-1.3

Note that the mozdev spellchecker instructions have been removed since the API for spellchecker was changed and it is currently broken.

If you have difficulties in building mozilla, check out the mozilla hint for detailed information at http://www.linuxfromscratch.org/~tushar/. The instructions that follow install the entire suite. To select specific components, refer to the hint.

Installation of mozilla

Install mozilla by running the following commands:

export MOZILLA_OFFICIAL="1" &&
export BUILD_OFFICIAL="1" &&
export MOZ_INTERNAL_LIBART_LGPL="1" &&

for p in ../mozilla-1.3-*.patch
do patch -Np1 -i $p
done

According to the financial institutions, the following hack makes your browser insecure. You have been warned. Many sites use an MS-IE specific tag (autocomplete=off) to prevent autocomplete from working in some forms. This tag is now supported in mozilla to appease the financial institutions. As per the requirements of the financial institutions, they will not even accept a solution where this a preference option. However our opinion is that it should be in the hands of the user. To enable autocomplete to bypass this restriction, we need to make a slight modification in the code.

Open the file extensions/wallet/src/wallet.cpp in the mozilla source tree and search for the line:
#define WALLET_DONT_CACHE_ALL_PASSWORDS
Then delete or comment out the line. Now, if anyone tells you MS-IE is user friendly, give them this example!

./configure --prefix=/usr \
            --enable-default-mozilla-five-home \
            --enable-toolkit-gtk2 --enable-default-toolkit=gtk2 \
            --with-x --with-system-zlib \
            --with-system-jpeg --with-system-png --with-system-mng \
            --enable-xft --enable-crypto \
            --enable-java-supplement \
            --disable-accessibility \
            --disable-tests --disable-debug \
            --disable-logging --enable-reorder \
            --enable-strip \
            --enable-cpp-rtti --enable-extensions=all \
            --enable-svg &&
make &&
make install &&
install -d /usr/include/mozilla-1.3/nss &&
cp -Lf dist/private/nss/*.h dist/public/nss/*.h \
   /usr/include/mozilla-1.3/nss &&

ln -nsf mozilla-1.3 /usr/include/mozilla &&
ln -nsf mozilla-1.3 /usr/lib/mozilla &&
cd /usr/lib/mozilla-1.3 &&
export LD_LIBRARY_PATH="/usr/lib/mozilla-1.3" &&
export MOZILLA_FIVE_HOME="/usr/lib/mozilla-1.3" &&
./regxpcom &&
./regchrome &&
touch `find /usr/lib/mozilla-1.3 -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 unreferenced strings from ELF shared objects generated during the build. Note that this option breaks 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. You will need to download the calendar source via cvs since it is not included with the release source. (Warning, this option is not yet stable).

--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" &&
export BUILD_OFFICIAL="1" &&
export MOZ_INTERNAL_LIBART_LGPL="1"
Set some variables that affect what and how it is built. The first two exports specify that we are building a distribution. The last export specifies that we are ok with the LGPL versioned libart.

--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. Hence the book now recommends installation in a system wide prefix such as /usr.

--enable-toolkit-gtk2
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 \
--enable-cpp-rtti
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".

--enable-svg : Enable SVG (Scalable Vector Graphics) support.

install -d /usr/include/mozilla-1.3/nss
cp -Lf dist/private/nss/*.h dist/public/nss/*.h \
   /usr/include/mozilla-1.3/nss
Copy the nss headers that are not copied by make install.

ln -nsf mozilla-1.3 ... : Mozilla installs headers and libraries in version specific directories. This link 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.3" &&
export MOZILLA_FIVE_HOME="/usr/lib/mozilla-1.3" &&
./regxpcom &&
./regchrome &&
touch `find /usr/lib/mozilla-${VERSION} -name *.rdf`
Create the required component registries to enable multi-user installs.

Contents

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