glfs/xsoft/graphweb/mozilla.xml
Randy McMurchy e615d9bfbf Changed instances of 'normal users' to 'unprivileged users'
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@4650 af4574ff-66df-0310-9fd7-8a98e5e911e0
2005-06-23 14:07:56 +00:00

420 lines
17 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!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 "a6fa13d0c9243060bac6821fcff4b973">
<!ENTITY mozilla-size "29 MB">
<!ENTITY mozilla-buildsize "636 MB">
<!ENTITY mozilla-time "12.9 SBU">
<!ENTITY mozilla-enigmail-version "0.91.0">
<!ENTITY mozilla-enigmail-md5sum "4ab46132f41b4f1718cd4141742f824b">
<!ENTITY mozilla-ipc-version "1.1.2">
<!ENTITY mozilla-ipc-md5sum "4aa272b46c8cbf167dcd49a6d74cf526">
]>
<sect1 id="mozilla" xreflabel="Mozilla-&mozilla-version;">
<?dbhtml filename="mozilla.html" ?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>Mozilla-&mozilla-version;</title>
<indexterm zone="mozilla">
<primary sortas="a-Mozilla">Mozilla</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Mozilla</title>
<para><application>Mozilla</application> is a browser suite, the Open
Source sibling of <application>Netscape</application>. It includes the
browser, composer, mail and news clients, a calendar client and an
IRC client.</para>
<para>The <application>Mozilla</application> 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 <ulink
url="http://www.mozilla.org/products/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
<application>Mozilla</application> source code). The build instructions
for these two applications are discussed in separate sections:</para>
<itemizedlist>
<listitem>
<para><xref linkend="firefox"/></para>
</listitem>
<listitem>
<para><xref linkend="thunderbird"/></para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Download (HTTP): <ulink url="&mozilla-download-http;"/></para>
</listitem>
<listitem>
<para>Download (FTP): <ulink url="&mozilla-download-ftp;"/></para>
</listitem>
<listitem>
<para>Download MD5 sum: &mozilla-md5sum;</para>
</listitem>
<listitem>
<para>Download size: &mozilla-size;</para>
</listitem>
<listitem>
<para>Estimated disk space required: &mozilla-buildsize;</para>
</listitem>
<listitem>
<para>Estimated build time: &mozilla-time;</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<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>
<itemizedlist spacing='compact'>
<listitem>
<para><ulink
url="http://downloads.mozdev.org/enigmail/src/enigmail-&mozilla-enigmail-version;.tar.gz"/>
</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>
</listitem>
<listitem>
<para>Download MD5 sum (IPC): &mozilla-ipc-md5sum;</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Mozilla Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para><xref linkend="zip"/>,
<xref linkend="gtk2"/>,
<xref linkend="libidl"/></para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para><xref linkend="gnupg"/> (for the <application>Enigmail</application>
extension)</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para><xref linkend="libjpeg"/>,
<xref linkend="unzip"/>,
<xref linkend="gnome-vfs"/> (to build the gnomevfs extension),
<xref linkend="libart_lgpl"/>,
<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> and
<ulink url="http://cairographics.org/">Cairo</ulink></para>
</sect2>
<sect2 role="installation">
<title>Installation of Mozilla</title>
<para>Compile <application>Mozilla</application> by running the
following commands:</para>
<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>
<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>
<screen><userinput>tar -zxf ../enigmail-&mozilla-enigmail-version;.tar.gz -C extensions &amp;&amp;
tar -zxf ../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>
<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
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
<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>
<para>Some libraries, including the Netscape Portable Runtime (NSPR) and
Network Security Services (NSS) libraries, installed by
<application>Mozilla</application> are also needed by other packages.
These libraries should be in <filename class="directory">/usr/lib</filename>
so that other packages can link against them. As the <systemitem
class="username">root</systemitem> user, move them as follows:</para>
<screen role="root"><userinput>for i in \
lib{nspr4,plc4,plds4,nss3,smime3,softokn3,ssl3}.so libsoftokn3.chk
do
mv -v /usr/lib/mozilla-&mozilla-version;/$i /usr/lib/
ln -v -sf ../$i /usr/lib/mozilla-&mozilla-version;/
done</userinput></screen>
<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
<application>Mozilla</application> add-on is installed. This will allow
unprivileged users to run <command>mozilla</command>. Enable multi-user
operation by executing the following:</para>
<screen role="root"><userinput>cd /usr/lib/mozilla-&mozilla-version; &amp;&amp;
export LD_LIBRARY_PATH="$PWD" &amp;&amp;
export MOZILLA_FIVE_HOME="$PWD" &amp;&amp;
./regxpcom &amp;&amp;
./regchrome &amp;&amp;
touch `find . -name *.rdf`</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>
</note>
<para>Lastly, unset the build variables from the unprivileged user's
environment:</para>
<screen><userinput>unset MOZILLA_OFFICIAL &amp;&amp;
unset BUILD_OFFICIAL &amp;&amp;
unset MOZ_CO_PROJECT</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Optional Extra Switches</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><option>--with-system-jpeg</option>: Uses the system-installed copy
of <application>libjpeg</application> instead of the bundled copy.</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><option>--disable-mailnews</option>: Disables the mail and news
clients.</para>
<para><option>--disable-ldap</option>: Disables LDAP support, recommended
if mail is disabled.</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-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
<option>--enable-extensions="default,-venkman,-inspector,..."</option>.
For a short description of the various extensions available with the
<application>Mozilla</application> source, see
<ulink
url="http://linuxfromscratch.org/~tushar/downloads/mozilla-extensions.txt"/>.
</para>
<para><parameter>--enable-crypto</parameter>: Enable the Personal
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>
<para><parameter>--enable-xinerama; --enable-optimize; --enable-reorder;
--enable-strip; --enable-cpp-rtti --disable-accessibility; --disable-debug;
--disable-tests; --disable-logging; --disable-pedantic;
--disable-installer</parameter>: 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 <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>
<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
<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
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>
is installed.</para>
</sect2>
<sect2 role="configuration">
<title>Configuring Mozilla</title>
<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>
<para>Many applications look for <command>netscape</command> when they need
to open a browser. You may make the following symlink for convenience (as
the <systemitem class="username">root</systemitem> user).</para>
<screen role="root"><userinput>ln -v -sf mozilla /usr/bin/netscape</userinput></screen>
<para>For installing various <application>Mozilla</application> plugins,
refer to <ulink url="http://plugindoc.mozdev.org/linux.html">Mozdev's
PluginDoc Project</ulink>. If you have <xref linkend="jdk"/> already
installed, create the following link as the
<systemitem class="username">root</systemitem> user to utilize the
<application>JAVA</application> plugin: </para>
<screen role="root"><userinput>ln -v -s $JAVA_HOME/jre/plugin/i386/ns7/libjavaplugin_oji.so \
/usr/lib/mozilla-&mozilla-version;/plugins</userinput></screen>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Program</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>mozilla</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>
<seg>/usr/include/mozilla-&mozilla-version;,
/usr/lib/mozilla-&mozilla-version;, and
/usr/share/idl/mozilla-&mozilla-version;</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="mozilla-prog">
<term><command>mozilla</command></term>
<listitem>
<para>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
<command>mozilla</command> starts or via command-line switches to
the <command>mozilla</command> script. Issue
<command>man mozilla</command> for additional information.</para>
<indexterm zone="mozilla mozilla-prog">
<primary sortas="b-mozilla">mozilla</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>