Other X-based Internet Programs

The Internet isn't just about browsing. Here are more graphical applications that utilize other areas of the Internet.


Introduction to Thunderbird

Thunderbird is a stand-alone mail/news client based on the Mozilla codebase.

Package Information

Additional Downloads

To enable the Enigmail extension to the Thunderbird mail client, you'll need to download the tarball shown 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 GnuPG-1.4.3 installed.

Thunderbird Dependencies


GTK+-2.8.20, libIDL-0.8.7, and Zip-2.32

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 --with-system-jpeg option from the .mozconfig file created below.

Recommended (if you will be installing any other package that utilizes NSS/NSPR, such as Firefox, Mozilla, Evolution, or OpenOffice)


UnZip-5.52 and libgnomeui-2.14.1 (to build the gnomevfs extension)

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Thunderbird

Installation of Thunderbird

The configuration of Thunderbird is accomplished by creating a .mozconfig file containing the desired configuration options. A default .mozconfig is created below. To see the entire list of available configuration options (and an abbreviated description of each one), issue ./configure --help. If you are going to use system-installed versions of the NSS and NSPR libraries, ensure you uncomment the two lines near the bottom of the file. You may also wish to review the entire file and uncomment any other desired options. If you would prefer to download the file instead of creating it by typing or cut-and-pasting, you can find it at http://anduin.linuxfromscratch.org/files/BLFS/thunderbird- (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"
# This file contains the options used in the Thunderbird build. You may
# need to specify additional options for your specific build needs.
# Use the information provided by running './configure --help' to
# help you determine if you need to add any additional options.
# Some additional options can be added by uncommenting the examples
# in this file or adding options by inserting a line containing
# 'ac_add_options --some-option-you-need'.

# Use the default settings specified in the source tree
. $topsrcdir/mail/config/mozconfig

# Create an object directory and specify 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 below.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../thunderbird-build

# Specify the installation prefix. If you would prefer Thunderbird
# installed in a different prefix, modify the line below to fit
# your needs. You'll also need to modify some of the instructions in
# the BLFS book to point to your desired prefix.
ac_add_options --prefix=/usr

# These options are used so that the Thunderbird binaries are linked to
# the system-installed copies of the specified libraries instead of
# the source tree code which may not be the most recent versions.
ac_add_options --with-system-zlib
ac_add_options --with-system-png
ac_add_options --with-system-jpeg
ac_add_options --enable-system-cairo

# This option causes the installed binaries to have the official
# Thunderbird name embedded in them. Due to license restrictions, you
# may not distribute binaries created using this option.
ac_add_options --enable-official-branding

# This option specifies to include support for rendering the HTML
# <canvas></canvas> tag in the Thunderbird mail client.
#ac_add_options --enable-canvas

# This option is used so that the debugging symbols are removed from
# the installed binaries during the installation process. Comment out
# this option if you may have a need to retain the debugging symbols
# in the installed binaries. Note that this can substantially
# increase the size of the installed binaries.
ac_add_options --enable-strip

# This option is added so that test libraries and programs are not
# built. These would only be required for debugging purposes.
ac_add_options --disable-tests

# This option is added so that the Mozilla Installer program is not
# built or installed. The program is not required for a BLFS
# installation of Thunderbird.
ac_add_options --disable-installer

# This option is used to disable the a11y support in the Thunderbird
# binaries. Comment out this option if you require a11y support.
ac_add_options --disable-accessibility

# This option is used to enable source tree included LDAP support in
# the Thunderbird binaries.
ac_add_options --enable-ldap

# This option is used to enable support for rendering SVG files in the
# Thunderbird mail client. Uncomment the line below to enable the option.
#ac_add_options --enable-svg

# Uncomment this option if you desire support for dual-monitor
# display of Thunderbird using the X-Window Xinerama libraries.
#ac_add_options --enable-xinerama

# Complex scripts such as Thai can only be rendered in Thunderbird with
# the help of Pango. This option significantly slows rendering, so only
# use it if necessary.
#ac_add_options --enable-pango

# These two options enable support for building Thunderbird with
# system-installed versions of the Network Security Services (NSS)
# and Netscape Portable Runtime (NSPR) libraries. Uncomment both
# lines to enable support for system-installed NSS/NSPR.
#ac_add_options --with-system-nss
#ac_add_options --with-system-nspr

# This option identifies the default binary directory of the Thunderbird
# installation and is used to locate Thunderbird's installed files. This
# option is not required for end-user use, and is only used for
# development purposes.
#ac_add_options --with-default-mozilla-five-home=/usr/lib/thunderbird-


If you wish to use Pango for font rendering and have uncommented the appropriate option in .mozconfig, apply the following patch:

patch -Np1 -i ../thunderbird-

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 ../thunderbird-

Compile Thunderbird by issuing the following commands:

sed -i "s/^    enum$/& xptinfo_enum_1/" \
    xpcom/reflect/xptinfo/public/xptinfo.h &&
make -f client.mk build

This package does not come with a test suite.

If you're building the Enigmail extension, issue the following commands:

tar -xf ../enigmail-0.94.2.tar.gz -C mailnews/extensions &&
( cd mailnews/extensions/enigmail && ./makemake -r ) &&

make -C ../thunderbird-build/mailnews/extensions/enigmail &&
make -C ../thunderbird-build/mailnews/extensions/enigmail \
        XPIFILE=enigmail.xpi xpi

Install Thunderbird by running the following commands as the root user:

make -f client.mk install &&

install -v -m644 ../thunderbird-build/dist/public/ldap-private/* \
    /usr/include/thunderbird- &&

install -v -m755 -d /usr/lib/thunderbird- &&
install -v -m644 mailnews/base/ispdata/movemail.rdf \
                 mail/extensions/newsblog/rss.rdf \
    /usr/lib/thunderbird- &&
ln -v -s ../{movemail,rss}.rdf \

If you built Thunderbird utilizing system-installed NSS and NSPR libraries, the thunderbird-ns*.pc pkgconfig files are broken as they point to the wrong directories where the actual libraries and interface headers are located. Issue the following commands as the root user to replace the broken files with symbolic links to known good files:

ln -v -sf nss.pc /usr/lib/pkgconfig/thunderbird-nss.pc &&
ln -v -sf nspr.pc /usr/lib/pkgconfig/thunderbird-nspr.pc

If you did NOT build Thunderbird 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/thunderbird- &&
cp -v -Lf ../thunderbird-build/dist/{private,public}/nss/*.h \

If you built the Enigmail extension, issue the following commands as the root user to install the .xpi file:

install -v -m644 -D ../thunderbird-build/dist/bin/enigmail.xpi \

If you want to install Enigmail globally so that all users who run Thunderbird will have access to the extension, issue the command shown below. Note that this procedure starts an instance of Thunderbird and you must have an X server running. Issue the following command as the root user:

/usr/bin/thunderbird -install-global-extension \

Global installation of other extensions can be done using the same basic method as the Enigmail extension. See the “Configuring Thunderbird” section below for information about configuring Enigmail for individual users if you did not not install it globally.



You should run /usr/bin/thunderbird once as the root user (or any user with write privileges) to create some necessary additional files in the /usr/lib/thunderbird- directory.

Command Explanations

sed -i "s/^ enum$/& xptinfo_enum_1/" ...: This command is used to fix an anonymous enum in an external/public interface header file.

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.

( cd mailnews/... && ./makemake -r ): This command is used to recursively create Makefiles in the enigmail directory.

make -C ... xpi: This command builds the Enigmail .xpi file which is used to install Enigmail.

install .../movemail.rdf .../rss.rdf ...: These commands are used to install two files inadvertently left out of the installation script.

Configuring Thunderbird

Configuration Information

No specific configuration is required as long as the thunderbird script is in the user's path. If Thunderbird is installed in a non-standard location, then make a symlink to the thunderbird script in the /usr/bin directory.

If you don't have privileges to install extensions globally, or you prefer to not install global extensions, you can configure Thunderbird on an individual user basis for access to extensions. For example, if you built the Enigmail extension and did not install it globally, it can be installed on an as-needed basis for each user of the system who may use Thunderbird. It is accomplished through the ThunderbirdTools” menu. Choose the “Extensions” – “Install” option and fill in the “Look in:” field with /usr/lib/thunderbird- You'll then see the enigmail-0.94.2-linux-????.xpi file listed. Choose this file and click on “Open”, then click on “Install now”. The Enigmail extension will install and you will be prompted to restart Thunderbird.

If your Window or Desktop Manager does not allow you to configure a default browser, you can add a configuration parameter to Thunderbird so that a browser will start when when you click on an Internet/intranet/local URL. The procedure to check or modify any of the configuration parameters is quite simple and the instructions here can be used to view or modify any of the parameters.

First, open the configuration dialog by opening the “Edit” drop-down menu. Choose “Preferences” and then click on the “Advanced” icon on the top menu bar. Choose the “General” tab and click on the “Config Editor” button. 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.

The configuration preference item you need to check so that Thunderbird uses a specified browser is the network.protocol-handler.app.http which should be set to the path of the desired browser, e.g., /usr/bin/firefox.



There is a multitude of configuration parameters you can tweak to customize Thunderbird. A very extensive and up-to-date list of these parameters can be found at http://preferential.mozdev.org/preferences.html.


Installed Programs: thunderbird and thunderbird-config
Installed Libraries: Numerous libraries, email/newsgroups components, plugins, extensions, and helper modules installed in /usr/lib/thunderbird-
Installed Directories: /usr/include/thunderbird-, /usr/lib/thunderbird-, and /usr/share/idl/thunderbird-

Short Descriptions


is Mozilla's next-generation email and newsgroup client.

Last updated on 2007-01-21 04:27:35 -0600