Updated to Mozilla-1.7.12, changed the build method to use 'client.mk' and '.mozconfig', added instructions to use system-installed NSS/NSPR libraries and added additional configuration information

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@5593 af4574ff-66df-0310-9fd7-8a98e5e911e0
This commit is contained in:
Randy McMurchy 2006-01-25 22:08:21 +00:00
parent e165fddb1b
commit 7f588e9acb
3 changed files with 417 additions and 157 deletions

View File

@ -484,7 +484,7 @@
<!ENTITY openoffice-version "2.0.0">
<!-- Chapter 35 -->
<!ENTITY mozilla-version "1.7.11">
<!ENTITY mozilla-version "1.7.12">
<!ENTITY firefox-version "1.5">
<!ENTITY galeon-version "1.3.21">
<!ENTITY dillo-version "0.8.5">

View File

@ -44,6 +44,12 @@
<listitem>
<para>January 25th, 2006</para>
<itemizedlist>
<listitem>
<para>[randy] - Updated to Mozilla-1.7.12, changed the build
method to use 'client.mk' and '.mozconfig', added instructions
to use system-installed NSS/NSPR libraries and added additional
configuration information.</para>
</listitem>
<listitem>
<para>[randy] - Changed the default to render SVG graphics in the
Firefox instructions.</para>
@ -55,12 +61,14 @@
<para>January 23rd, 2006</para>
<itemizedlist>
<listitem>
<para>[randy] - Updated to Thunderbird-1.5 and changed the build
method to use 'client.mk' and '.mozconfig'.</para>
<para>[randy] - Updated to Thunderbird-1.5, changed the build
method to use 'client.mk' and '.mozconfig', added instructions
to use system-installed NSS/NSPR libraries and added additional
configuration information.</para>
</listitem>
<listitem>
<para>[randy] - Added information about using system-installed
versions of the NSS libraries and added additional configuration
versions of the NSS/NSPR libraries and added additional configuration
information to the Firefox instructions.</para>
</listitem>
<listitem>

View File

@ -4,17 +4,40 @@
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY mozilla-download-http "http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla&mozilla-version;/source/mozilla-&mozilla-version;-source.tar.bz2">
<!ENTITY mozilla-download-ftp "ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla&mozilla-version;/source/mozilla-&mozilla-version;-source.tar.bz2">
<!ENTITY mozilla-md5sum "ed54ad54b4b5de85c7916e7d1efa0ae3">
<!ENTITY mozilla-size "29 MB">
<!ENTITY mozilla-buildsize "620 MB">
<!ENTITY mozilla-time "12.8 SBU">
<!ENTITY mozilla-download-http "http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla&mozilla-version;/source/mozilla-&mozilla-version;-source.tar.bz2">
<!ENTITY mozilla-download-ftp "ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla&mozilla-version;/source/mozilla-&mozilla-version;-source.tar.bz2">
<!ENTITY mozilla-md5sum "f1ad6adbbc0510eb76d352c94c801fac">
<!ENTITY mozilla-size "30.4 MB">
<!ENTITY mozilla-buildsize "575 MB">
<!ENTITY mozilla-time "9.4 SBU">
<!ENTITY mozilla-enigmail-version "0.92.0">
<!ENTITY mozilla-enigmail-md5sum "50c369ce6d6fcb2d275cd30319a601ff">
<!ENTITY mozilla-ipc-version "1.1.3">
<!ENTITY mozilla-ipc-md5sum "64ba4c6e3b52568468c4f6680ec7e679">
<!--
BLFS Devs:
The information below is for the Enigmail and IPC downloads. Additionally,
a makemake file is download because we cannot build Enigmail using an
object directory without it. Informaiton about the Enigmail source to
check for updates is located at http://enigmail.mozdev.org/source.html.
The link to the makemake file is near the end of the page in the section
titled "Using OBJDIR when building Enigmail". Ensure you check the rev
level of the link and update the "enigmail-makemake-version" entitity
if necessary. In case you are wondering why the version has the question
mark and "rev=" in it, it is because the complete URL is used in a command
and it would extend past the 71 characters that PDF render is limited to.
It should make sense after you see it rendered in the wget command.
-->
<!ENTITY mozilla-enigmail-version "0.93.0">
<!ENTITY mozilla-ipc-version "1.1.3">
<!ENTITY enigmail-makemake-version "?rev=1.3">
<!ENTITY mozilla-enigmail-download "http://www.mozilla-enigmail.org/downloads/src/enigmail-&mozilla-enigmail-version;.tar.gz">
<!ENTITY mozilla-ipc-download "http://www.mozilla-enigmail.org/downloads/src/ipc-&mozilla-ipc-version;.tar.gz">
<!ENTITY enigmail-makemake-download "http://www.mozdev.org/source/browse/~checkout~/enigmail/src/makemake">
<!ENTITY mozilla-enigmail-md5sum "cb7126705924cb7f0de205b4ff4e28b4">
<!ENTITY mozilla-ipc-md5sum "64ba4c6e3b52568468c4f6680ec7e679">
]>
<sect1 id="mozilla" xreflabel="Mozilla-&mozilla-version;">
@ -47,11 +70,11 @@
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 <ulink
url="http://www.mozilla.org/products/firefox/">Mozilla Firefox</ulink>,
url="http://www.mozilla.com/firefox/">Mozilla Firefox</ulink>,
(a stand-alone browser based on the <application>Mozilla</application>
source code) and <ulink
url="http://www.mozilla.org/products/thunderbird/">Mozilla
Thunderbird</ulink>, (a stand-alone mail client based on the
url="http://www.mozilla.com/thunderbird/">Mozilla Thunderbird</ulink>,
(a stand-alone mail/newsgroup client based on the
<application>Mozilla</application> source code). The build instructions
for these two applications are discussed in separate sections:</para>
@ -90,127 +113,289 @@
<itemizedlist spacing="compact">
<listitem>
<para>Required patch: <ulink
url="&patch-root;/mozilla-&mozilla-version;-gcc4-2.patch"/></para>
url="&patch-root;/mozilla-&mozilla-version;-gcc4-1.patch"/></para>
</listitem>
<listitem>
<para>Required patch: <ulink
url="&patch-root;/mozilla-&mozilla-version;-gfx_fixes.patch"/></para>
</listitem>
<listitem>
<para>Required patch (if using system-installed versions of
<application>NSS</application> and <application>NSPR</application>):
<ulink
url="&patch-root;/mozilla-&mozilla-version;-system_nss-1.patch"/>
</para>
</listitem>
</itemizedlist>
<para>To enable the <application>Enigmail</application> extension to
the <application>Mozilla</application> mail client, you'll need to
download the two tarballs below. The <application>Enigmail</application>
extension allows users to access the authentication and encryption
features provided by the <application>GnuPG</application> package.</para>
download the two tarballs and <command>makemake</command> file listed
below. The <application>Enigmail</application> extension allows users to
access the authentication and encryption features provided by the
<application>GnuPG</application> package. The
<application>Enigmail</application> extension will not operate correctly
unless you have <xref linkend="gnupg"/> installed.</para>
<itemizedlist spacing='compact'>
<listitem>
<para><ulink
url="http://downloads.mozdev.org/enigmail/src/enigmail-&mozilla-enigmail-version;.tar.gz"/>
</para>
<para><ulink url="&mozilla-enigmail-download;"/></para>
</listitem>
<listitem>
<para>Download MD5 sum (Enigmail): &mozilla-enigmail-md5sum;</para>
</listitem>
<listitem>
<para><ulink
url="http://downloads.mozdev.org/enigmail/src/ipc-&mozilla-ipc-version;.tar.gz"/>
</para>
<para><ulink url="&mozilla-ipc-download;"/></para>
</listitem>
<listitem>
<para>Download MD5 sum (IPC): &mozilla-ipc-md5sum;</para>
</listitem>
<listitem>
<para><ulink
url="&enigmail-makemake-download;&enigmail-makemake-version;"/></para>
</listitem>
</itemizedlist>
<para>The <command>makemake</command> file is an enhanced version that will
be copied into the source tree to replace an existing file during the
installation instructions. The instructions expect the file to be named
<filename>mozilla-&mozilla-version;-enigmail_makemake</filename>. If you
have <xref linkend="wget"/> installed, you can download and rename the file
in one step using the following command:</para>
<screen><userinput>wget -O mozilla-&mozilla-version;-enigmail_makemake \
&enigmail-makemake-download;\
&enigmail-makemake-version;</userinput></screen>
<bridgehead renderas="sect3">Mozilla Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required"><xref linkend="zip"/>,
<xref linkend="gtk2"/>,
<xref linkend="libidl"/></para>
<para role="required"><xref linkend="gtk2"/>,
<xref linkend="libidl"/>, and
<xref linkend="zip"/></para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended"><xref linkend="gnupg"/> (for the
<application>Enigmail</application> extension)</para>
<para>Note: <application>libjpeg</application> should have been installed
before <application>GTK+</application> and should exist on your system. If
for some reason you haven't installed <application>libjpeg</application>,
you should remove the <option>--with-system-jpeg</option> option from the
<filename>.mozconfig</filename> file created below.</para>
<bridgehead renderas="sect4">Recommended (if you will be installing any
other package that utilizes NSS/NSPR, such as
<application>Firefox</application> or
<application>Thunderbird</application>)</bridgehead>
<para role="recommended"><xref linkend="nss"/></para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional"><xref linkend="libjpeg"/>,
<xref linkend="unzip"/>,
<para role="optional"><xref linkend="unzip"/>,
<xref linkend="gnome-vfs"/> (to build the gnomevfs extension),
<xref linkend="libart_lgpl"/>,
<xref linkend="libart_lgpl"/>, and
<xref linkend="heimdal"/> or <xref linkend="mitkrb"/>
(for the GSSAPI libraries to build the negotiateauth extension),
<xref linkend="doxygen"/>,
<ulink url="http://xprint.mozdev.org/">Xprint</ulink>,
<ulink url="http://perens.com/FreeSoftware/">Electric Fence</ulink></para>
(for the GSSAPI libraries to build the negotiateauth extension)</para>
</sect2>
<sect2 role="installation">
<title>Installation of Mozilla</title>
<para>The configuration of <application>Mozilla</application> is
accomplished by creating a <filename>.mozconfig</filename> file containing
the desired configuration options. A default <filename>.mozconfig</filename>
file is created below. To see the entire list of available configuration
options (and an abbreviated description of each one), issue
<command>./configure --help</command>. Additional information can also be
found below in the section titled <xref linkend="add-mozconfig"/>. If you
are going to use system-installed versions of the
<application>NSS</application> and <application>NSPR</application>
libraries, ensure you uncomment the two lines at the bottom of the file. If
you would prefer to download the file instead of creating it by typing or
cut-and-pasting, you can find it at <ulink
url="http://anduin.linuxfromscratch.org/files/BLFS/mozilla-&mozilla-version;-mozconfig"/>
(the file must be installed in the root of the source tree
<filename class='directory'>mozilla</filename> directory, and named
<filename>.mozconfig</filename>). Create the file by issuing the following
command:</para>
<screen><userinput>cat &gt; .mozconfig &lt;&lt; "EOF"
<literal># Options for client.mk
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../mozilla-build
# Options for 'configure' (same as command-line options)
# Mandatory options
ac_add_options --enable-application=suite
ac_add_options --prefix=/usr
# Options for system-installed software
ac_add_options --with-system-zlib
ac_add_options --with-system-png
ac_add_options --with-system-jpeg
# Options in all Mozilla-family builds
ac_add_options --enable-official-branding
ac_add_options --enable-strip
ac_add_options --disable-tests
ac_add_options --disable-installer
ac_add_options --disable-accessibility
# Options used for graphics settings in Mozilla Suite (Not Seamonkey)
ac_add_options --enable-default-toolkit=gtk2
ac_add_options --enable-xft
ac_add_options --disable-freetype2
# Options used just for Mozilla Suite (Not Seamonkey)
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --disable-logging
ac_add_options --enable-crypto
ac_add_options --enable-extensions=all
# Options used just for Mozilla Suite
ac_add_options --enable-ldap
ac_add_options --enable-calendar
# Options used for system-installed NSS/NSPR
#ac_add_options --with-system-nspr
#ac_add_options --with-system-nss</literal>
EOF</userinput></screen>
<para>If you have system-installed Network Security Services (NSS) and
Netscape Portable Runtime (NSPR) libraries and you uncommented the
appropriate lines in the <filename>.mozconfig</filename> file to utilize
them, apply the following patch:</para>
<screen><userinput>patch -Np1 -i ../mozilla-&mozilla-version;-system_nss-1.patch</userinput></screen>
<para>Compile <application>Mozilla</application> by running the
following commands:</para>
<screen><userinput>patch -Np1 -i ../mozilla-&mozilla-version;-gcc4-2.patch &amp;&amp;
export MOZILLA_OFFICIAL="1" &amp;&amp;
<screen><userinput>export MOZILLA_OFFICIAL="1" &amp;&amp;
export BUILD_OFFICIAL="1" &amp;&amp;
export MOZ_CO_PROJECT="suite" &amp;&amp;
./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 &amp;&amp;
make</userinput></screen>
<para>You should add the <option>--with-system-jpeg</option> switch
to the <command>configure</command> script if you have
<application>libjpeg</application> installed.</para>
patch -Np1 -i ../mozilla-&mozilla-version;-gfx_fixes-1.patch &amp;&amp;
patch -Np1 -i ../mozilla-&mozilla-version;-gcc4-1.patch &amp;&amp;
<para>If you're building the <application>Mozilla</application> mail
and news clients and plan to install the <application>Enigmail</application>
extension, execute the following steps:</para>
make -f client.mk build</userinput></screen>
<para>If you're building the <application>Mozilla</application>
mail/newsgroup client and plan to install the
<application>Enigmail</application> extension, issue the following
commands:</para>
<screen><userinput>tar -xf ../enigmail-&mozilla-enigmail-version;.tar.gz -C extensions &amp;&amp;
tar -xf ../ipc-&mozilla-ipc-version;.tar.gz -C extensions &amp;&amp;
build/autoconf/make-makefile extensions/ipc extensions/enigmail &amp;&amp;
make -C extensions/ipc &amp;&amp;
make -C extensions/enigmail</userinput></screen>
<para>Install <application>Mozilla</application> (as the
<systemitem class="username">root user</systemitem>) as follows:</para>
install -v -m755 -b ../mozilla-&mozilla-version;-enigmail_makemake \
extensions/ipc/makemake &amp;&amp;
install -v -m755 -b ../mozilla-&mozilla-version;-enigmail_makemake \
extensions/enigmail/makemake &amp;&amp;
cd extensions/ipc &amp;&amp;
./makemake -r &amp;&amp;
cd ../enigmail &amp;&amp;
./makemake -r &amp;&amp;
cd ../.. &amp;&amp;
make -C ../mozilla-build/extensions/ipc &amp;&amp;
make -C ../mozilla-build/extensions/enigmail &amp;&amp;
make -C ../mozilla-build/extensions/enigmail xpi</userinput></screen>
<para>Install <application>Mozilla</application> by issuing the following
commands as the <systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>make -f client.mk install &amp;&amp;
install -v -m644 ../mozilla-build/dist/public/ldap-private/* \
/usr/include/mozilla-&mozilla-version;/ldap &amp;&amp;
install -v -m755 -d /usr/lib/mozilla-&mozilla-version;/defaults/isp/US &amp;&amp;
install -v -m644 mailnews/base/ispdata/movemail.rdf \
/usr/lib/mozilla-&mozilla-version;/defaults/isp &amp;&amp;
ln -v -s ../movemail.rdf /usr/lib/mozilla-&mozilla-version;/defaults/isp/US &amp;&amp;
<screen role="root"><userinput>make install &amp;&amp;
install -v -d -m755 /usr/include/mozilla-&mozilla-version;/nss &amp;&amp;
cp -v -Lf dist/private/nss/*.h dist/public/nss/*.h \
/usr/include/mozilla-&mozilla-version;/nss &amp;&amp;
ln -v -nsf mozilla-&mozilla-version; /usr/include/mozilla &amp;&amp;
if [ -d /usr/lib/mozilla/plugins ]; then
if [ -f /usr/lib/mozilla/plugins/libnullplugin.so ]; then
rm -vf /usr/lib/mozilla/plugins/libnullplugin.so
fi
mv -v /usr/lib/mozilla/plugins/* /usr/lib/mozilla-&mozilla-version;/plugins
rm -v -rf /usr/lib/mozilla
fi &amp;&amp;
ln -v -nsf mozilla-&mozilla-version; /usr/lib/mozilla</userinput></screen>
<para>If you're installing the <application>Enigmail</application>
extension, issue the following commands as the
ln -v -nsf mozilla-&mozilla-version; /usr/lib/mozilla &amp;&amp;
ln -v -nsf mozilla-&mozilla-version; /usr/include/mozilla</userinput></screen>
<para>If you built <application>Mozilla</application> utilizing
system-installed NSS and NSPR libraries, the
<filename>mozilla-ns*.pc</filename> <application>pkgconfig</application>
files need to be modified. Issue the following command as the
<systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>make -C extensions/ipc install &amp;&amp;
make -C extensions/enigmail install</userinput></screen>
<screen role="root"><userinput>sed -i 's|/mozilla-&mozilla-version;||' /usr/lib/pkgconfig/mozilla-ns*.pc</userinput></screen>
<para>If you did <emphasis role="strong">NOT</emphasis> build
<application>Mozilla</application> utilizing system-installed NSS and
NSPR libraries, issue the following commands as the
<systemitem class="username">root</systemitem> user to install the NSS
interface headers:</para>
<screen role="root"><userinput>install -v -m755 -d /usr/include/mozilla-&mozilla-version;/nss &amp;&amp;
cp -v -Lf ../mozilla-build/dist/{private,public}/nss/*.h \
/usr/include/mozilla-&mozilla-version;/nss</userinput></screen>
<para>If you built the <application>Enigmail</application> extension,
issue the following commands as the <systemitem
class="username">root</systemitem> user to install the
<filename>.xpi</filename> file into the
<filename class='directory'>/usr/lib/mozilla-&mozilla-version;</filename>
directory:</para>
<screen role="root"><userinput>install -v -m755 -d /usr/lib/mozilla-&mozilla-version;/xpi_store &amp;&amp;
install -v -m644 ../mozilla-build/dist/bin/enigmail-&mozilla-enigmail-version;-*.xpi \
/usr/lib/mozilla-&mozilla-version;/xpi_store</userinput></screen>
<para>There are two methods you can use to install the
<application>Enigmail</application> extension. Both are shown here and
provide the same functionality. The first method must be accomplished
now (before the object directory is removed) and uses the conventional
<command>make install</command> command to install the
<application>Enigmail</application> files straight from the distribution
directory of the object directory. An alternate method is shown as it
installs using the <filename class='extension'>.xpi</filename> file
created earlier and can be done later (at any time you desire) as the
file used to install <application>Enigmail</application> was copied into
<filename
class='directory'>/usr/lib/mozilla-&mozilla-version;/xpi_store</filename>
in the previous step. This method can be used to install any
downloaded <application>Mozilla</application> extension distributed in a
<filename class='extension'>.xpi</filename> file. There are many
extensions available for <application>Mozilla</application>. A list
containing many of them can be found at
<ulink url="http://extensionroom.mozdev.org/"/>.</para>
<para>If you want to install the <application>Enigmail</application>
extension now, issue the following commands as the
<systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>make -C ../mozilla-build/extensions/ipc install &amp;&amp;
make -C ../mozilla-build/extensions/enigmail install</userinput></screen>
<para>To install an extension from a created or download
<filename class='extension'>.xpi</filename> file, you simply need to
<quote>open</quote> the <filename class='extension'>.xpi</filename> file
using the <quote>Open File</quote> option of the <quote>File</quote>
menu of the Navigator window. You can browse to find the file (for example,
the <application>Enigmail</application>
<filename class='extension'>.xpi</filename> file is located in
<filename
class='directory'>/usr/lib/mozilla-&mozilla-version;/xpi_store</filename>,
select it, then follow the prompts to install the extension.</para>
<!-- Commenting this out as there really is no need to put the Mozilla
Suite versions of NSS/NSPR in a system-wide location when there
is now a BLFS package that does this.
<para>Some libraries, including the Netscape Portable Runtime (NSPR) and
Network Security Services (NSS) libraries, installed by
@ -226,6 +411,13 @@ do
ln -v -sf ../$i /usr/lib/mozilla-&mozilla-version;/
done</userinput></screen>
-->
<!-- Commenting this out for now, as I believe this is only necessary
for the binary versions of Mozilla. I've built this and had many
system users access Mozilla simultaneously without having to do
the steps shown here.
<para>Create the required component registries to enable multi-user
installs. These steps should be preformed by the <systemitem
class="username">root</systemitem> user each time a
@ -240,81 +432,93 @@ export MOZILLA_FIVE_HOME="$PWD" &amp;&amp;
./regchrome &amp;&amp;
touch `find . -name *.rdf`</userinput></screen>
-->
<para>Unset the build variables from the unprivileged user's
environment:</para>
<screen><userinput>unset MOZILLA_OFFICIAL &amp;&amp;
unset BUILD_OFFICIAL</userinput></screen>
<note>
<para>You should run <command>/usr/bin/mozilla</command> once as the
<systemitem class="username">root</systemitem> user (or any user with
write privileges) to create some necessary additional files in the
<filename class='directory'>/usr</filename> hierarchy.</para>
<filename class='directory'>/usr</filename> hierarchy. Also do this
each time you install additional extensions.</para>
</note>
<para>Lastly, unset the build variables from the unprivileged user's
environment:</para>
</sect2>
<screen><userinput>unset MOZILLA_OFFICIAL &amp;&amp;
unset BUILD_OFFICIAL &amp;&amp;
unset MOZ_CO_PROJECT</userinput></screen>
<sect2 role="commands" id="add-mozconfig"
xreflabel="Additional .mozconfig Options">
<title>Additional .mozconfig Options</title>
<para>Information about some of the additional options which can be added
to the <filename>.mozconfig</filename> configuration file is shown below.
Note that this is just a few of the options. You may wish to run
<command>./configure --help</command> 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 in the default <filename>.mozconfig</filename> file but can be
added in order to have the described effect on the Mozilla compile.</para>
<para><option>ac_add_options --enable-elf-dynstr-gc</option>: Removes
un-referenced strings from ELF shared objects generated during the build.
Note that this option breaks the build on alpha.</para>
<para><option>ac_add_options --disable-mailnews</option>: Disables the mail
and news clients.</para>
<para><option>ac_add_options --disable-ldap</option>: Disables LDAP support,
recommended if mail is disabled.</para>
<para><option>ac_add_options --enable-xterm-updates</option>: Displays the
current command in the <command>xterm</command> window title during the
compilation.</para>
<para><option>ac_add_options --enable-plaintext-editor-only</option>:
Disables support for HTML editing. Do not use this switch if you are
building the mail-news component.</para>
</sect2>
<sect2 role="commands">
<title>Optional Extra Switches</title>
<title>.mozconfig Option Explanations</title>
<para>You may wish to run <command>./configure --help</command> 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 <command>configure</command> command in order to have the described
effect on the <application>Mozilla</application> compile.</para>
<para>To simplify reading the options below, they are labeled without
<parameter>ac_add_options</parameter> inserted at the beginning of the
option.</para>
<para><option>--with-system-jpeg</option>: Uses the system-installed copy
of <application>libjpeg</application> instead of the bundled copy.</para>
<para><parameter>mk_add_options
MOZ_OBJDIR=@TOPSRCDIR@/../mozilla-build</parameter>: Creates an object
directory and specifies to build the package in that directory. If desired,
modify the location of the object directory to a directory inside the
source tree by removing <quote>../</quote> from the line.</para>
<para><option>--enable-elf-dynstr-gc</option>: Removes un-referenced
strings from ELF shared objects generated during the build. Note that this
option breaks the build on alpha.</para>
<para><parameter>--enable-application=suite</parameter>: Identifies the
build as a <application>Mozilla</application> suite build.</para>
<para><option>--disable-mailnews</option>: Disables the mail and news
clients.</para>
<para><parameter>--with-system-zlib --with-system-png
--with-system-jpeg</parameter>: Uses the system-installed versions of these
packages.</para>
<para><option>--disable-ldap</option>: Disables LDAP support, recommended
if mail is disabled.</para>
<para><parameter>--enable-official-branding</parameter>: Uses the official
Mozilla logos and icons in the built binaries. Due to license restrictions,
you may not distribute binaries created using this option.</para>
<para><option>--enable-xterm-updates</option>: Displays the current command
in the <command>xterm</command> window title during the compilation.</para>
<para><option>--enable-plaintext-editor-only</option>: Disables support
for HTML editing. Do not use this switch if you are building the mail-news
component.</para>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para><command>export MOZILLA_OFFICIAL="1";
export BUILD_OFFICIAL="1"</command>: Set some variables that affect what and
how the package is built. These two exports specify a distribution is being
built.</para>
<para><parameter>--with-default-mozilla-five-home=/usr/lib/mozilla</parameter>:
Sets the default value for <envar>MOZILLA_FIVE_HOME</envar>.</para>
<para><parameter>--with-system-zlib --with-system-png </parameter>: Use the
system-installed versions of these packages.</para>
<para><parameter>--enable-application=suite</parameter>: Identifies the build
as a <application>Mozilla</application> suite build.</para>
<para><parameter>--enable-default-toolkit=gtk2</parameter>: Use the
GTK2 toolkit for graphics rendering.</para>
<para><parameter>--enable-default-toolkit=gtk2 --enable-xft
--disable-freetype2</parameter>: Use the GTK2 toolkit for graphics
rendering and XFT (automatically pulls in the
<application>FreeType</application> libraries) for font rendering.</para>
<para><parameter>--enable-extensions=all</parameter>: Enables all available
extensions. If you want, you can disable any or all extensions other than the
browser by changing this switch to
extensions. If you want, you can disable any or all extensions other than
the browser by changing this switch to
<option>--enable-extensions="default,-venkman,-inspector,..."</option>.
For a short description of the various extensions available with the
<application>Mozilla</application> source, see
<ulink
<application>Mozilla</application> source, see <ulink
url="http://linuxfromscratch.org/~tushar/downloads/mozilla-extensions.txt"/>.
</para>
@ -322,11 +526,7 @@ unset MOZ_CO_PROJECT</userinput></screen>
Security Manager to enable SSL connections.</para>
<para><parameter>--enable-calendar</parameter>: Builds the calendar
application. Removed this parameter if you don't wish to build it.</para>
<para><parameter>--enable-xft; --disable-freetype2</parameter>: Enable Xft
support which automatically pulls in the <application>FreeType</application>
libraries.</para>
application. Remove this parameter if you don't wish to build it.</para>
<para><parameter>--enable-xinerama; --enable-optimize; --enable-reorder;
--enable-strip; --enable-cpp-rtti --disable-accessibility; --disable-debug;
@ -336,19 +536,47 @@ unset MOZ_CO_PROJECT</userinput></screen>
options. More information on them, and many other available options, can be
found by running <command>./configure --help</command>.</para>
<para><command>install -d /usr/include/mozilla-&mozilla-version;/nss;
cp -Lf ...</command>: Copy the NSS interface headers that
are not copied by <command>make install</command>.</para>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para><command>export MOZILLA_OFFICIAL="1"
export BUILD_OFFICIAL="1"</command>: Sets some variables that affect what
and how the package is built. These two exports specify a distribution is
being built.</para>
<para><command>make -f client.mk ...</command>: Mozilla products are
packaged to allow the use of a configuration file which can be used to
pass the configuration settings to the <command>configure</command>
command. <command>make</command> uses the <filename>client.mk</filename>
file to get initial configuration and setup parameters, then depending on
the target parameter (<parameter>build</parameter> or
<parameter>install</parameter>), either runs the
<command>configure</command> script and compiles the package or installs
the package.</para>
<para><command>./makemake -r</command>: This command is used to recursively
create <filename>Makefile</filename>s in the current directory.</para>
<para><command>make -C ... xpi</command>: This command builds the
<application>Enigmail</application>
<filename class='extension'>.xpi</filename> file which can be used to
install <application>Enigmail</application>.</para>
<para><command>install .../movemail.rdf ...</command>: This
command is used to install a file inadvertently left out of the
installation script.</para>
<para><command>if [ -d /usr/lib/mozilla/plugins ] ... fi</command>: Some
applications may have already installed <application>Mozilla</application>
plugins. This set of commands move any existing plugins to the newly created
plugin directory, then removes the existing
plugins. This set of commands moves any existing plugins to the newly
created plugin directory, then removes the existing
<filename class='directory'>/usr/lib/mozilla</filename> directory.</para>
<para><command>ln -nsf mozilla-&mozilla-version; ...</command>:
<application>Mozilla</application> installs headers and libraries in version
specific directories. These commands makes symbolic links so that
<application>Mozilla</application> installs headers and libraries in
version specific directories. These commands makes symbolic links so that
applications depending on <application>Mozilla</application> (such as
<application>OpenOffice</application>, <application>Galeon</application>,
etc.) don't need to know which version of <application>Mozilla</application>
@ -362,8 +590,8 @@ unset MOZ_CO_PROJECT</userinput></screen>
<para>No specific configuration is required as long as the
<command>mozilla</command> script is in the user's path. If
<application>Mozilla</application> is installed in a non-standard location,
then make a symlink to the <command>mozilla</command> script from
<filename class="directory">/usr/bin</filename>.</para>
then make a symlink to the <command>mozilla</command> script in the
<filename class="directory">/usr/bin</filename> directory.</para>
<para>Many applications look for <command>netscape</command> when they need
to open a browser. You may make the following symlink for convenience (as
@ -381,18 +609,42 @@ unset MOZ_CO_PROJECT</userinput></screen>
<screen role="root"><userinput>ln -v -s $JAVA_HOME/jre/plugin/i386/ns7/libjavaplugin_oji.so \
/usr/lib/mozilla-&mozilla-version;/plugins</userinput></screen>
<para>Along with using the <quote>Preferences</quote> menu to configure
<application>Mozilla</application>'s options and preferences to suit
individual tastes, finer grain control of many options is only available
using a tool not available from the general menu system. To access this
tool, you'll need to open a Navigator window and enter
<systemitem role='url'>about:config</systemitem> in the
address bar. This will display a list of the configuration preferences and
information related to each one. You can use the <quote>Filter:</quote> bar
to enter search criteria and narrow down the listed items. Changing a
preference can be done using two methods. One, if the preference has a
boolean value (True/False), simply double-click on the preference to toggle
the value and two, for other preferences simply right-click on the desired
line, choose <quote>Modify</quote> from the menu and change the value.
Creating new preference items is accomplished in the same way, except
choose <quote>New</quote> from the menu and provide the desired data into
the fields when prompted.</para>
<tip>
<para>There is a multitude of configuration parameters you can tweak to
customize <application>Mozilla</application>. A very extensive and
up-to-date list of these parameters can be found at <ulink
url="http://preferential.mozdev.org/preferences.html"/>.</para>
</tip>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Program</segtitle>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>mozilla</seg>
<seg>mozilla and mozilla-config</seg>
<seg>Numerous libraries, browser, and email/newsgroup components,
plugins, extensions, and helper modules installed in <filename
class='directory'>/usr/lib/mozilla-&mozilla-version;</filename></seg>