r5593 - in trunk/BOOK: . introduction/welcome xsoft/graphweb

randy at linuxfromscratch.org randy at linuxfromscratch.org
Wed Jan 25 14:08:26 PST 2006


Author: randy
Date: 2006-01-25 15:08:21 -0700 (Wed, 25 Jan 2006)
New Revision: 5593

Modified:
   trunk/BOOK/general.ent
   trunk/BOOK/introduction/welcome/changelog.xml
   trunk/BOOK/xsoft/graphweb/mozilla.xml
Log:
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

Modified: trunk/BOOK/general.ent
===================================================================
--- trunk/BOOK/general.ent	2006-01-25 20:50:45 UTC (rev 5592)
+++ trunk/BOOK/general.ent	2006-01-25 22:08:21 UTC (rev 5593)
@@ -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">

Modified: trunk/BOOK/introduction/welcome/changelog.xml
===================================================================
--- trunk/BOOK/introduction/welcome/changelog.xml	2006-01-25 20:50:45 UTC (rev 5592)
+++ trunk/BOOK/introduction/welcome/changelog.xml	2006-01-25 22:08:21 UTC (rev 5593)
@@ -45,6 +45,12 @@
       <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>
         </listitem>
@@ -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>

Modified: trunk/BOOK/xsoft/graphweb/mozilla.xml
===================================================================
--- trunk/BOOK/xsoft/graphweb/mozilla.xml	2006-01-25 20:50:45 UTC (rev 5592)
+++ trunk/BOOK/xsoft/graphweb/mozilla.xml	2006-01-25 22:08:21 UTC (rev 5593)
@@ -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,128 +113,290 @@
     <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 > .mozconfig << "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 &&
-export MOZILLA_OFFICIAL="1" &&
+<screen><userinput>export MOZILLA_OFFICIAL="1" &&
 export BUILD_OFFICIAL="1" &&
-export MOZ_CO_PROJECT="suite" &&
-./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 &&
-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 &&
+patch -Np1 -i ../mozilla-&mozilla-version;-gcc4-1.patch &&
 
-    <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 &&
 tar -xf ../ipc-&mozilla-ipc-version;.tar.gz -C extensions &&
-build/autoconf/make-makefile extensions/ipc extensions/enigmail &&
-make -C extensions/ipc &&
-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 &&
+install -v -m755 -b ../mozilla-&mozilla-version;-enigmail_makemake \
+    extensions/enigmail/makemake &&
 
-<screen role="root"><userinput>make install &&
-install -v -d -m755 /usr/include/mozilla-&mozilla-version;/nss &&
-cp -v -Lf dist/private/nss/*.h dist/public/nss/*.h \
-   /usr/include/mozilla-&mozilla-version;/nss &&
-ln -v -nsf mozilla-&mozilla-version; /usr/include/mozilla &&
+cd extensions/ipc &&
+./makemake -r &&
+
+cd ../enigmail &&
+./makemake -r &&
+
+cd ../.. &&
+make -C ../mozilla-build/extensions/ipc &&
+make -C ../mozilla-build/extensions/enigmail &&
+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 &&
+
+install -v -m644 ../mozilla-build/dist/public/ldap-private/* \
+    /usr/include/mozilla-&mozilla-version;/ldap &&
+
+install -v -m755 -d /usr/lib/mozilla-&mozilla-version;/defaults/isp/US &&
+install -v -m644 mailnews/base/ispdata/movemail.rdf \
+    /usr/lib/mozilla-&mozilla-version;/defaults/isp &&
+ln -v -s ../movemail.rdf /usr/lib/mozilla-&mozilla-version;/defaults/isp/US &&
+
 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 &&
-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 &&
+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 &&
-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 &&
+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 &&
+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 &&
+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
     <application>Mozilla</application> are also needed by other packages.
@@ -226,6 +411,13 @@
    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 @@
 ./regchrome &&
 touch `find . -name *.rdf`</userinput></screen>
 
+    -->
+
+    <para>Unset the build variables from the unprivileged user's
+    environment:</para>
+
+<screen><userinput>unset MOZILLA_OFFICIAL &&
+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>
-
-<screen><userinput>unset MOZILLA_OFFICIAL &&
-unset BUILD_OFFICIAL &&
-unset MOZ_CO_PROJECT</userinput></screen>
-
   </sect2>
 
-  <sect2 role="commands">
-    <title>Optional Extra Switches</title>
+  <sect2 role="commands" id="add-mozconfig"
+  xreflabel="Additional .mozconfig Options">
 
-    <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>
+    <title>Additional .mozconfig Options</title>
 
-    <para><option>--with-system-jpeg</option>: Uses the system-installed copy
-    of <application>libjpeg</application> instead of the bundled copy.</para>
+    <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>--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>--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>--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>--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>
 
-    <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>
+    <title>.mozconfig Option 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>To simplify reading the options below, they are labeled without
+    <parameter>ac_add_options</parameter> inserted at the beginning of the
+    option.</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>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><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-application=suite</parameter>: Identifies the build
-    as a <application>Mozilla</application> suite build.</para>
+    <para><parameter>--with-system-zlib --with-system-png
+    --with-system-jpeg</parameter>: Uses the system-installed versions of these
+    packages.</para>
 
-    <para><parameter>--enable-default-toolkit=gtk2</parameter>: Use the
-    GTK2 toolkit for graphics rendering.</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><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,12 +526,8 @@
     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>
+    application. Remove 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;
@@ -336,19 +536,47 @@
     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 @@
     <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 @@
 <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>




More information about the blfs-book mailing list