Mozilla-1.5

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 cater to the needs of users who don't need the complete browser suite or like to have seperate applications for browsing and e-mail. These subprojects are Mozilla Firebird, (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 this section instead of having a seperate section since the build instructions are very similar to those for Mozilla. In addition, because of the similarity, only the changes required with respect to the Mozilla instructions are mentioned.

Installation of Mozilla

Note: 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!

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

Compile Mozilla by running the following commands:

export MOZILLA_OFFICIAL="1" &&
export BUILD_OFFICIAL="1" &&
./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 --disable-pedantic \
            --enable-cpp-rtti --enable-extensions=all &&
make

If installing Enigmail, execute the following steps:

cd extensions/ipc &&
./makemake -r &&
make &&
cd ../enigmail &&
./makemake -r &&
make &&
cd ../..

Install Mozilla as follows:

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

Install Enigmail as follows:

for i in components/enigmime.xpt \
components/ipc.xpt components/libenigmime.so components/enigmail.js \
components/enigmail.xpt chrome/enigmail.jar
do
	install dist/bin/$i /usr/lib/mozilla-1.5/$i
done

To enable multi-user operation, execute the following:

cd /usr/lib/mozilla-1.5 &&
export LD_LIBRARY_PATH="/usr/lib/mozilla-1.5" &&
export MOZILLA_FIVE_HOME="/usr/lib/mozilla-1.5" &&
./regxpcom &&
./regchrome &&
touch `find /usr/lib/mozilla-1.5 -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 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.

Additional build notes for Mozilla Firebird 0.7

Add the following env variable (The variable is named Phoenix since that was the original name for the Mozilla Firebird project):

export MOZ_PHOENIX="1"

Make sure that the following switches are passed to ./configure: --disable-calendar and --disable-mailnews.

We recommend installing in a separate prefix such as --prefix=/opt/firebird-0.7 to prevent clashes with an installed Mozilla.

The Mozilla Firebird executable is MozillaFirebird.

Additional build notes for Mozilla Thunderbird 0.3

Add the following env variable:

export MOZ_THUNDERBIRD="1"

Make sure that the following switches is passed to ./configure: --disable-calendar.

We recommend installing in a separate prefix such as --prefix=/opt/thunderbird-0.3 to prevent clashes with an installed Mozilla.

The Mozilla Thunderbird executable is thunderbird.

Command explanations

export MOZILLA_OFFICIAL="1" &&
export BUILD_OFFICIAL="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".

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

ln -nsf mozilla-1.5 ...: 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.5" &&
export MOZILLA_FIVE_HOME="/usr/lib/mozilla-1.5" &&
./regxpcom &&
./regchrome &&
touch `find /usr/lib/mozilla-${VERSION} -name *.rdf`
Create the required component registries to enable multi-user installs.

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 sym-link to the mozilla binary from /usr/bin. Same thing applies for Mozilla Firebird 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

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.