From 7f588e9acb97f89b4a60cb335711f7f1ccbfa42a Mon Sep 17 00:00:00 2001 From: Randy McMurchy Date: Wed, 25 Jan 2006 22:08:21 +0000 Subject: [PATCH] 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 --- general.ent | 2 +- introduction/welcome/changelog.xml | 14 +- xsoft/graphweb/mozilla.xml | 558 +++++++++++++++++++++-------- 3 files changed, 417 insertions(+), 157 deletions(-) diff --git a/general.ent b/general.ent index e5bc90647e..41f89e2f95 100644 --- a/general.ent +++ b/general.ent @@ -484,7 +484,7 @@ - + diff --git a/introduction/welcome/changelog.xml b/introduction/welcome/changelog.xml index 0594b143d6..f6c4bb4368 100644 --- a/introduction/welcome/changelog.xml +++ b/introduction/welcome/changelog.xml @@ -44,6 +44,12 @@ January 25th, 2006 + + [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. + [randy] - Changed the default to render SVG graphics in the Firefox instructions. @@ -55,12 +61,14 @@ January 23rd, 2006 - [randy] - Updated to Thunderbird-1.5 and changed the build - method to use 'client.mk' and '.mozconfig'. + [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. [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. diff --git a/xsoft/graphweb/mozilla.xml b/xsoft/graphweb/mozilla.xml index e0dc2fb37b..506fa45104 100644 --- a/xsoft/graphweb/mozilla.xml +++ b/xsoft/graphweb/mozilla.xml @@ -4,17 +4,40 @@ %general-entities; - - - - - - + + + + + + - - - - + + + + + + + + + + ]> @@ -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 Mozilla Firefox, + url="http://www.mozilla.com/firefox/">Mozilla Firefox, (a stand-alone browser based on the Mozilla source code) and Mozilla - Thunderbird, (a stand-alone mail client based on the + url="http://www.mozilla.com/thunderbird/">Mozilla Thunderbird, + (a stand-alone mail/newsgroup client based on the Mozilla source code). The build instructions for these two applications are discussed in separate sections: @@ -90,127 +113,289 @@ Required patch: + url="&patch-root;/mozilla-&mozilla-version;-gcc4-1.patch"/> + + + Required patch: + + + Required patch (if using system-installed versions of + NSS and NSPR): + + To enable the Enigmail extension to the Mozilla mail client, you'll need to - download the two tarballs below. The Enigmail - extension allows users to access the authentication and encryption - features provided by the GnuPG package. + download the two tarballs and makemake file listed + below. The Enigmail extension allows users to + access the authentication and encryption features provided by the + GnuPG package. The + Enigmail extension will not operate correctly + unless you have installed. - - + Download MD5 sum (Enigmail): &mozilla-enigmail-md5sum; - - + Download MD5 sum (IPC): &mozilla-ipc-md5sum; + + + + The makemake 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 + mozilla-&mozilla-version;-enigmail_makemake. If you + have installed, you can download and rename the file + in one step using the following command: + +wget -O mozilla-&mozilla-version;-enigmail_makemake \ +&enigmail-makemake-download;\ +&enigmail-makemake-version; + Mozilla Dependencies Required - , - , - + , + , and + - Recommended - (for the - Enigmail extension) + Note: libjpeg should have been installed + before GTK+ and should exist on your system. If + for some reason you haven't installed libjpeg, + you should remove the option from the + .mozconfig file created below. + + Recommended (if you will be installing any + other package that utilizes NSS/NSPR, such as + Firefox or + Thunderbird) + Optional - , - , + , (to build the gnomevfs extension), - , + , and or - (for the GSSAPI libraries to build the negotiateauth extension), - , - Xprint, - Electric Fence + (for the GSSAPI libraries to build the negotiateauth extension) Installation of Mozilla + The configuration of Mozilla is + accomplished by creating a .mozconfig file containing + the desired configuration options. A default .mozconfig + file is created below. To see the entire list of available configuration + options (and an abbreviated description of each one), issue + ./configure --help. Additional information can also be + found below in the section titled . If you + are going to use system-installed versions of the + NSS and NSPR + 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 + (the file must be installed in the root of the source tree + mozilla directory, and named + .mozconfig). Create the file by issuing the following + command: + +cat > .mozconfig << "EOF" +# 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 + +EOF + + If you have system-installed Network Security Services (NSS) and + Netscape Portable Runtime (NSPR) libraries and you uncommented the + appropriate lines in the .mozconfig file to utilize + them, apply the following patch: + +patch -Np1 -i ../mozilla-&mozilla-version;-system_nss-1.patch + Compile Mozilla by running the following commands: -patch -Np1 -i ../mozilla-&mozilla-version;-gcc4-2.patch && -export MOZILLA_OFFICIAL="1" && +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 - You should add the switch - to the configure script if you have - libjpeg installed. +patch -Np1 -i ../mozilla-&mozilla-version;-gfx_fixes-1.patch && +patch -Np1 -i ../mozilla-&mozilla-version;-gcc4-1.patch && - If you're building the Mozilla mail - and news clients and plan to install the Enigmail - extension, execute the following steps: +make -f client.mk build + + If you're building the Mozilla + mail/newsgroup client and plan to install the + Enigmail extension, issue the following + commands: 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 - Install Mozilla (as the - root user) as follows: +install -v -m755 -b ../mozilla-&mozilla-version;-enigmail_makemake \ + extensions/ipc/makemake && +install -v -m755 -b ../mozilla-&mozilla-version;-enigmail_makemake \ + extensions/enigmail/makemake && + +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 + + Install Mozilla by issuing the following + commands as the root user: + +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 && -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 && 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 - If you're installing the Enigmail - 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 + + If you built Mozilla utilizing + system-installed NSS and NSPR libraries, the + mozilla-ns*.pc pkgconfig + files need to be modified. Issue the following command as the root user: -make -C extensions/ipc install && -make -C extensions/enigmail install +sed -i 's|/mozilla-&mozilla-version;||' /usr/lib/pkgconfig/mozilla-ns*.pc + + If you did NOT build + Mozilla utilizing system-installed NSS and + NSPR libraries, issue the following commands as the + root user to install the NSS + interface headers: + +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 + + If you built the Enigmail extension, + issue the following commands as the root user to install the + .xpi file into the + /usr/lib/mozilla-&mozilla-version; + directory: + +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 + + There are two methods you can use to install the + Enigmail 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 + make install command to install the + Enigmail files straight from the distribution + directory of the object directory. An alternate method is shown as it + installs using the .xpi file + created earlier and can be done later (at any time you desire) as the + file used to install Enigmail was copied into + /usr/lib/mozilla-&mozilla-version;/xpi_store + in the previous step. This method can be used to install any + downloaded Mozilla extension distributed in a + .xpi file. There are many + extensions available for Mozilla. A list + containing many of them can be found at + . + + If you want to install the Enigmail + extension now, issue the following commands as the + root user: + +make -C ../mozilla-build/extensions/ipc install && +make -C ../mozilla-build/extensions/enigmail install + + To install an extension from a created or download + .xpi file, you simply need to + open the .xpi file + using the Open File option of the File + menu of the Navigator window. You can browse to find the file (for example, + the Enigmail + .xpi file is located in + /usr/lib/mozilla-&mozilla-version;/xpi_store, + select it, then follow the prompts to install the extension. + + + + + + Unset the build variables from the unprivileged user's + environment: + +unset MOZILLA_OFFICIAL && +unset BUILD_OFFICIAL + You should run /usr/bin/mozilla once as the root user (or any user with write privileges) to create some necessary additional files in the - /usr hierarchy. + /usr hierarchy. Also do this + each time you install additional extensions. - Lastly, unset the build variables from the unprivileged user's - environment: + -unset MOZILLA_OFFICIAL && -unset BUILD_OFFICIAL && -unset MOZ_CO_PROJECT + + + Additional .mozconfig Options + + Information about some of the additional options which can be added + to the .mozconfig configuration file is shown below. + Note that this is just a few of the options. You may wish to run + ./configure --help 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 .mozconfig file but can be + added in order to have the described effect on the Mozilla compile. + + : Removes + un-referenced strings from ELF shared objects generated during the build. + Note that this option breaks the build on alpha. + + : Disables the mail + and news clients. + + : Disables LDAP support, + recommended if mail is disabled. + + : Displays the + current command in the xterm window title during the + compilation. + + : + Disables support for HTML editing. Do not use this switch if you are + building the mail-news component. - Optional Extra Switches + .mozconfig Option Explanations - You may wish to run ./configure --help 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 configure command in order to have the described - effect on the Mozilla compile. + To simplify reading the options below, they are labeled without + ac_add_options inserted at the beginning of the + option. - : Uses the system-installed copy - of libjpeg instead of the bundled copy. + mk_add_options + MOZ_OBJDIR=@TOPSRCDIR@/../mozilla-build: 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 ../ from the line. - : Removes un-referenced - strings from ELF shared objects generated during the build. Note that this - option breaks the build on alpha. + --enable-application=suite: Identifies the + build as a Mozilla suite build. - : Disables the mail and news - clients. + --with-system-zlib --with-system-png + --with-system-jpeg: Uses the system-installed versions of these + packages. - : Disables LDAP support, recommended - if mail is disabled. + --enable-official-branding: Uses the official + Mozilla logos and icons in the built binaries. Due to license restrictions, + you may not distribute binaries created using this option. - : Displays the current command - in the xterm window title during the compilation. - - : Disables support - for HTML editing. Do not use this switch if you are building the mail-news - component. - - - - - Command Explanations - - export MOZILLA_OFFICIAL="1"; - export BUILD_OFFICIAL="1": Set some variables that affect what and - how the package is built. These two exports specify a distribution is being - built. - - --with-default-mozilla-five-home=/usr/lib/mozilla: - Sets the default value for MOZILLA_FIVE_HOME. - - --with-system-zlib --with-system-png : Use the - system-installed versions of these packages. - - --enable-application=suite: Identifies the build - as a Mozilla suite build. - - --enable-default-toolkit=gtk2: Use the - GTK2 toolkit for graphics rendering. + --enable-default-toolkit=gtk2 --enable-xft + --disable-freetype2: Use the GTK2 toolkit for graphics + rendering and XFT (automatically pulls in the + FreeType libraries) for font rendering. --enable-extensions=all: 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 . For a short description of the various extensions available with the - Mozilla source, see - Mozilla source, see . @@ -322,11 +526,7 @@ unset MOZ_CO_PROJECT Security Manager to enable SSL connections. --enable-calendar: Builds the calendar - application. Removed this parameter if you don't wish to build it. - - --enable-xft; --disable-freetype2: Enable Xft - support which automatically pulls in the FreeType - libraries. + application. Remove this parameter if you don't wish to build it. --enable-xinerama; --enable-optimize; --enable-reorder; --enable-strip; --enable-cpp-rtti --disable-accessibility; --disable-debug; @@ -336,19 +536,47 @@ unset MOZ_CO_PROJECT options. More information on them, and many other available options, can be found by running ./configure --help. - install -d /usr/include/mozilla-&mozilla-version;/nss; - cp -Lf ...: Copy the NSS interface headers that - are not copied by make install. + + + + Command Explanations + + export MOZILLA_OFFICIAL="1" + export BUILD_OFFICIAL="1": Sets some variables that affect what + and how the package is built. These two exports specify a distribution is + being built. + + make -f client.mk ...: Mozilla products are + packaged to allow the use of a configuration file which can be used to + pass the configuration settings to the configure + command. make uses the client.mk + file to get initial configuration and setup parameters, then depending on + the target parameter (build or + install), either runs the + configure script and compiles the package or installs + the package. + + ./makemake -r: This command is used to recursively + create Makefiles in the current directory. + + make -C ... xpi: This command builds the + Enigmail + .xpi file which can be used to + install Enigmail. + + install .../movemail.rdf ...: This + command is used to install a file inadvertently left out of the + installation script. if [ -d /usr/lib/mozilla/plugins ] ... fi: Some applications may have already installed Mozilla - 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 /usr/lib/mozilla directory. ln -nsf mozilla-&mozilla-version; ...: - Mozilla installs headers and libraries in version - specific directories. These commands makes symbolic links so that + Mozilla installs headers and libraries in + version specific directories. These commands makes symbolic links so that applications depending on Mozilla (such as OpenOffice, Galeon, etc.) don't need to know which version of Mozilla @@ -362,8 +590,8 @@ unset MOZ_CO_PROJECT No specific configuration is required as long as the mozilla script is in the user's path. If Mozilla is installed in a non-standard location, - then make a symlink to the mozilla script from - /usr/bin. + then make a symlink to the mozilla script in the + /usr/bin directory. Many applications look for netscape when they need to open a browser. You may make the following symlink for convenience (as @@ -381,18 +609,42 @@ unset MOZ_CO_PROJECT ln -v -s $JAVA_HOME/jre/plugin/i386/ns7/libjavaplugin_oji.so \ /usr/lib/mozilla-&mozilla-version;/plugins + Along with using the Preferences menu to configure + Mozilla'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 + about:config in the + address bar. This will display a list of the configuration preferences and + information related to each one. You can use the Filter: 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 Modify from the menu and change the value. + Creating new preference items is accomplished in the same way, except + choose New from the menu and provide the desired data into + the fields when prompted. + + + There is a multitude of configuration parameters you can tweak to + customize Mozilla. A very extensive and + up-to-date list of these parameters can be found at . + + Contents - Installed Program + Installed Programs Installed Libraries Installed Directories - mozilla + mozilla and mozilla-config Numerous libraries, browser, and email/newsgroup components, plugins, extensions, and helper modules installed in /usr/lib/mozilla-&mozilla-version;