216 lines
12 KiB
Plaintext
216 lines
12 KiB
Plaintext
Mozilla Optimization Mini-HOWTO
|
|
|
|
Salvador J. Peralta
|
|
|
|
|
|
<speralta at willamette dot edu>
|
|
|
|
January 2003
|
|
Revision History
|
|
Revision 1.0 2003-01-03 Revised by: SJP
|
|
Initial release, reviewed by LDP
|
|
|
|
|
|
This document discusses how to make configuration and source level
|
|
customizations of Mozilla to make it more suitable as a primary browser for
|
|
Linux and X Windows. It is not intended as a guide for programming Mozilla,
|
|
nor is it a guide to XUL.
|
|
|
|
The techniques described in this document have been implemented and tested in
|
|
a kiosk-like public computing environment using thin client workstations
|
|
running on Redhat Linux, utilizing XFree86.
|
|
|
|
-----------------------------------------------------------------------------
|
|
Table of Contents
|
|
1. Copyright
|
|
2. Introduction
|
|
3. Get the Source
|
|
4. Patch the Source
|
|
5. Configure the Source
|
|
6. Compile the Source
|
|
7. Post-Install Configuration
|
|
|
|
1. Copyright
|
|
|
|
Copyright © 2002 Salvador Peralta
|
|
|
|
Permission is granted to copy, distribute and/or modify this document under
|
|
the terms of the GNU Free Documentation License, Version 1.2 or any later
|
|
version published by the Free Software Foundation; with no Invariant
|
|
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the
|
|
license can be found at the [http://www.gnu.org/copyleft/fdl.html] GNU web
|
|
site.
|
|
-----------------------------------------------------------------------------
|
|
|
|
2. Introduction
|
|
|
|
Mozilla is an Open Source, cross-platform, browser and graphical application
|
|
environment. It is rapidly becoming a significant component on many
|
|
Linux-based desktops due to its stability, robust feature-set, large
|
|
developer-base, and ease of configuration. This Mini HOWTO addresses how to
|
|
patch and configure Mozilla's source to better optimize it for Linux desktop
|
|
environments, and is intended to serve as a general set of instructions for
|
|
the Linux community on how to compile and configure Mozilla.
|
|
|
|
The most current version of this Mini HOWTO can be obtained in HTML format
|
|
from [http://www.willamette.edu/~speralta/tldp/mozilla] www.willamette.edu/
|
|
~speralta/tldp/mozilla.
|
|
-----------------------------------------------------------------------------
|
|
|
|
3. Get the Source
|
|
|
|
There are pros and cons to building Mozilla yourself. The biggest drawback is
|
|
that the source version, compressed, is a 30+ MB file in most releases which
|
|
is about three times larger than the binary distribution. A second negative
|
|
is that on a reasonably new machine such as my 1.6 ghz Pentium 4 with 256 MB
|
|
of memory, compiling Mozilla can take anywhere between one and a half to four
|
|
hours depending on any other jobs the system might be running. On an older
|
|
machine, Mozilla can take twenty-four hours or more to compile. The biggest
|
|
benefit is that there are a large number of compile-time options and patches
|
|
that can be applied which will dramatically improve the performance and
|
|
featureset of the browser. These patches are generally necessary if you
|
|
intend to run Mozilla in a production environment.
|
|
|
|
If you are not interested in source level modifications of the Mozilla
|
|
browser, please skip the next few sections and have a look at Section 7,
|
|
Post-Install Configuartion.
|
|
|
|
At the time this document was written, the latest version of the Mozilla
|
|
source code is 1.2.1, which can be obtained via ftp at [ftp://ftp.mozilla.org
|
|
/pub/mozilla/releases/mozilla1.2.1] ftp.mozilla.org/pub/mozilla/releases/
|
|
mozilla1.2.1. The other stable release, 1.0.1, can be obtained via ftp at
|
|
[ftp://ftp.mozilla.org/pub/mozilla/releases/mozilla1.0.1] ftp.mozilla.org/pub
|
|
/mozilla/releases/mozilla1.0.1.
|
|
|
|
For CVS checkout, please review the documentation on the [http://
|
|
mozilla.org] Mozilla website.
|
|
-----------------------------------------------------------------------------
|
|
|
|
4. Patch the Source
|
|
|
|
Unpatched Mozilla is not a very good X citizen. For example, it does not
|
|
allow one to specify X and Y geometry position as a command-line option. This
|
|
is not a big problem on a typical end-user desktop, but in a corporate or
|
|
public computing environment, it is a killer. In order to fix this, we need
|
|
to apply a patch to the C++ source code at embedding/components/windowwatcher
|
|
/src/nsWindowWatcher.cpp. The first step is to obtain and apply the [http://
|
|
www.willamette.edu/~speralta/mozilla.kludge.txt] patch written by Robert
|
|
Riches. This patch has been tested in Mozilla versions 1.0 through 1.2.1.
|
|
|
|
To apply the patch, simply paste it into embedding/components/windowwatcher/
|
|
src/nsWindowWatcher.cpp, in your Mozilla source tree. The notation uses "+"
|
|
symbols to denote the code that needs insertion. Those symbols need to be
|
|
removed before saving the nsWindowWatcher.cpp text file.
|
|
|
|
To use the patch, set an environment variable called MOZILLA_SCREEN_POS with
|
|
the proper coordinates. For example, in Bash, type export MOZILLA_SCREEN_POS=
|
|
'screenx=1,screeny=1' will set the top left corner of your browser to the top
|
|
left corner of your screen.
|
|
-----------------------------------------------------------------------------
|
|
|
|
5. Configure the Source
|
|
|
|
Another problem with using Mozilla in a personal or production environment is
|
|
that it contains code which will override any home page that you set on a
|
|
timed basis, or whenever a new release of the product is distributed.
|
|
|
|
Since this information is stored in a configuration file, the easiest thing
|
|
to do without breaking the browser is to change the configuration file to
|
|
point default homepage settings to one that is more consistent with the
|
|
environment that you are using.
|
|
|
|
Mozilla conveniently stores most of its compile-time configuration files
|
|
with a .properties extension. You can use these files to specify text in
|
|
message dialogues, fonts, and other options. In this case, assuming that your
|
|
locale and language settings are en-US, the .property file that you will need
|
|
is region.properties which is located in the xpfe/browser/resources/locale/
|
|
en-US/ directory.
|
|
|
|
The changes that you need to make to this file are fairly straight forward.
|
|
As a general rule, I replace the value portion of the name/value pair to one
|
|
of my own choosing in every instance where the word "homepage" is mentioned
|
|
in the configuration.
|
|
# navigator.properties
|
|
homePageDefault=http://yoururl.com
|
|
shopKeyword=keyword:shop [Product]
|
|
quoteKeyword=keyword:quote [Enter symbol here]
|
|
localKeyword=keyword:zip [Your zip code]
|
|
keywordList=http://home.netscape.com/escapes/keywords
|
|
webmailKeyword=http://webmail.netscape.com
|
|
careerKeyword=keyword:[Your city] careers
|
|
fallbackDefaultSearchURL=http://search.netscape.com/cgi-bin/search?charset=UTF-8&search=
|
|
otherSearchURL=http://home.netscape.com/bookmark/6_0/tsearch.html
|
|
#
|
|
# all.js
|
|
#
|
|
browser.startup.homepage=http://yoururl.com
|
|
browser.throbber.url=http://yoururl.com
|
|
browser.search.defaulturl=http://search.netscape.com/cgi-bin/search?search=
|
|
|
|
wallet.Server=http://www.mozilla.org/wallet/tables/
|
|
wallet.Samples=http://www.mozilla.org/wallet/samples/
|
|
|
|
#config.js
|
|
#
|
|
startup.homepage_override_url=http://yoururl.com
|
|
-----------------------------------------------------------------------------
|
|
|
|
6. Compile the Source
|
|
|
|
To configure Mozilla's compile-time options, type ./configure from the root
|
|
directory of the Mozilla source tree. To get a full list of compile-time
|
|
options, type ./configure --help. Some things to verify before doing a
|
|
production compilation include verifying that environment preferences (mail
|
|
vs. no mail, calendar, ldap, etc.) are set and making sure that the crypto
|
|
package is enabled.
|
|
|
|
For simplicity's sake, I generally use a simple build script like the
|
|
following to configure Mozilla.
|
|
#!/bin/sh
|
|
|
|
MOZILLA_OFFICIAL=1
|
|
export MOZILLA_OFFICIAL
|
|
BUILD_OFFICIAL=1
|
|
export BUILD_OFFICIAL
|
|
|
|
./configure --with-x --disable-calendar --enable-crypto --with-system-nspr
|
|
--disable-debug --enable-extensions --enable-optimize
|
|
--without-system-zlib --without-system-jpeg --without-system-png
|
|
--without-system-mng
|
|
|
|
Once you have your patches applied, config files modified, and options set,
|
|
simply build Mozilla with gmake by typing ./gmake in the root directory of
|
|
your source tree, and then create your tarball by typing gmake in the
|
|
xpinstall/packager directory. This will drop the tarball in the dist
|
|
subdirectory just beneath the root directory of your Mozilla source tree.
|
|
Just move that package to /usr/local, unpack it, run it once from the
|
|
command-line as the user who built the package (the command is /usr/local/
|
|
mozilla/mozilla), and you are nearly ready to browse.
|
|
-----------------------------------------------------------------------------
|
|
|
|
7. Post-Install Configuration
|
|
|
|
There are several configuration choices that you can make after you have
|
|
installed your browser. You can add plugins for common web technologies such
|
|
as Java ([http://java.sun.com] java.sun.com), PDF printing ([www.adobe.com]
|
|
www.adobe.com), and Flash animations ([http://www.macromedia.com/software/
|
|
flash] www.macromedia.com/software/flash) and slightly less well-known, but
|
|
very cool plug-ins, such as Enigmail ([http://enigmail.mozdev.org]
|
|
enigmail.mozdev.org).
|
|
|
|
To install any plug-in, either copy the plug-in from the source application
|
|
(e.g. Acrobat5 ) to the /plugins directory in Mozilla, or create a symbolic
|
|
link from the plug-in to the plug-ins directory in the Mozilla binary tree.
|
|
For example, to create a Mozilla plug-in for Adobe Acrobat 5 using a symbolic
|
|
link, simply type ln -s /path/to/Acrobat5/Browsers/intellinux/nppdf.so /usr/
|
|
local/mozilla/plugins/. Similarly, to create a plug-in from your Java runtime
|
|
environment, type ln -s /path/to/j2re1.4.0_02/plugin/i386/ns610/
|
|
libjavaplugin_oji.so /usr/local/mozilla/plugins/. Please note, it is
|
|
recommended that you use Sun's JDK 1.4.1 with Mozilla 1.0.1 and above. There
|
|
are known incompatibilities with Mozilla and earlier versions of Java.
|
|
|
|
To obtain Mozilla project plug-ins such as Enigmail, which provides an
|
|
interface for encrypting and decrytping mail, or for Protozilla, which
|
|
provides full parameterization (including support for multiple multiple
|
|
protocol and programming languages), visit [http://mozdev.org] mozdev.org.
|