Thunderbird

From CBLFS
Revision as of 03:58, 5 December 2006 by Kalessin (talk | contribs) (I added the package description from BLFS.)
Jump to navigationJump to search
Download Source: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/2.0a1/source/thunderbird-2.0a1-source.tar.bz2

Introduction to Thunderbird

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

Dependencies

Required

Recommended

Optional

Creating a .mozconfig

The .mozconfig file contains the options that will be used to build thunderbird.

The first line includes the default configuration for compiling a browser and the second line determines where the build objects are going to reside. ac_cv_visibility_pragma=no fixes build errors on 32bit non-x86 systems but won't cause any trouble on x86. Having --with-system-nss and --with-system-nspr does not mean you *HAVE* to have a system installed version of nss and nspr. It makes the build system prefer to use the system installed version of nss and nspr over the internal version. --enable-canvas enables support for the <canvas></canvas> tag. --enable-svg enables support for rendering svg files. --enable-strip causes the installed binaries to be stripped. --disable-tests prevents test programs from being built which saves a lot of disk space and time. --disable-accessibility - disables a11y support. --disable-installer prevents the installer from being built. --enable-official-branding 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.

cat > .mozconfig << "EOF"
. $topsrcdir/mail/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@

ac_cv_visibility_pragma=no

ac_add_options --prefix=/opt/thunderbird-2.0a1

ac_add_options --with-system-nss
ac_add_options --with-system-nspr

ac_add_options --with-system-zlib
ac_add_options --with-system-png
ac_add_options --with-system-jpeg
ac_add_options --enable-system-cairo

ac_add_options --enable-canvas
ac_add_options --enable-svg

ac_add_options --enable-strip
ac_add_options --disable-tests 
ac_add_options --disable-accessibility
ac_add_options --disable-installer 
ac_add_options --enable-official-branding 
EOF

If you would like dual monitor support in Thunderbird, append your your .mozconfig with the following:

cat >> .mozconfig << "EOF"
ac_add_options --enable-xinerama
EOF

If you have OpenLDAP installed and would like to build Thunderbird against it. This is required to build OpenOffice2 against Thunderbird. Append your .mozconfig with the following:

cat >> .mozconfig << "EOF"
ac_add_options --enable-ldap
EOF

If you would like to render fonts with Pango, append your your .mozconfig with the following. This can significantly slow font rendering.

cat >> .mozconfig << "EOF"
ac_add_options --enable-pango
EOF

Non-Multilib

sed -i "s:@MOZ_GTK2_LIBS@:& -L${XORG_PREFIX}/lib -lX11 -lXrender:g" config/autoconf.mk.in

Compile the package:

make -f client.mk build

Install the package:

make -f client.mk install

If you're using a system installed NSS and NSPR then adjust the pkg-config files to point to the proper place:

ln -sfv /usr/lib/pkgconfig/nss.pc /opt/thunderbird-2.0a1/lib/pkgconfig/thunderbird-nss.pc &&
ln -sfv /usr/lib/pkgconfig/nspr.pc /opt/thunderbird-2.0a1/lib/pkgconfig/thunderbird-nspr.pc

50-thunderbird.sh

If you're using the Bash Startup Files create an addition for Thunderbird with the following commands, otherwise make sure the enviornment variables are set in your profile:

cat > /etc/profile.d/50-thunderbird.sh << "EOF"
# Begin /etc/profile.d/50-thunderbird.sh

export PATH="${PATH}:/opt/thunderbird-2.0a1/bin"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}${PKG_CONFIG_PATH+:}/opt/thunderbird-2.0a1/lib/pkgconfig"

# End /etc/profile.d/50-thunderbird.sh
EOF

Multilib

The order that the builds are displayed on this page isn't neccesarily the order that you install them in. If you would like a 32bit browser but still require the 64bit libraries for other packages build the 32bit version last.

Remember, Use a clean source and build directory for each build, Thunderbird is no exception.

50-thunderbird.sh

If you're using the Bash Startup Files create an addition for Thunderbird with the following commands, otherwise make sure the enviornment variables are set in your profile:

cat > /etc/profile.d/50-thunderbird.sh << "EOF"
# Begin /etc/profile.d/50-thunderbird.sh

export PATH="${PATH}:/opt/thunderbird-2.0a1/bin"
export PKG_CONFIG_PATH32="${PKG_CONFIG_PATH32}${PKG_CONFIG_PATH32+:}/opt/thunderbird-2.0a1/lib/pkgconfig"
export PKG_CONFIG_PATHN32="${PKG_CONFIG_PATHN32}${PKG_CONFIG_PATHN32+:}/opt/thunderbird-2.0a1/lib32/pkgconfig"
export PKG_CONFIG_PATH64="${PKG_CONFIG_PATH64}${PKG_CONFIG_PATH64+:}/opt/thunderbird-2.0a1/lib64/pkgconfig"

# End /etc/profile.d/50-thunderbird.sh
EOF

32Bit

Use the following command to append your .mozconfig with 32bit specific flags:

cat >> .mozconfig << EOF
export CC="gcc ${BUILD32}"
export CXX="g++ ${BUILD32}"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}"
export USE_ARCH=32
ac_add_options --host=$CLFS_TARGET32
ac_add_options --build=$CLFS_TARGET32
mk_add_options CONFIG_GUESS=$CLFS_TARGET32
EOF
sed -i "s:@MOZ_GTK2_LIBS@:& -L${XORG_PREFIX}/lib -lX11 -lXrender:g" config/autoconf.mk.in

x86

Compile the package:

make -f client.mk OS_TEST=x86 build

Install the package:

make -f client.mk OS_TEST=x86 install

Common

mv -v /opt/thunderbird-2.0a1/bin/thunderbird-config{,-32} &&
ln -sfv /usr/bin/multiarch_wrapper /opt/thunderbird-2.0/bin/thunderbird-config

If you're using a system installed NSS and NSPR then adjust the pkg-config files to point to the proper place:

ln -sfv /usr/lib/pkgconfig/nss.pc /opt/thunderbird-2.0a1/lib/pkgconfig/thunderbird-nss.pc &&
ln -sfv /usr/lib/pkgconfig/nspr.pc /opt/thunderbird-2.0a1/lib/pkgconfig/thunderbird-nspr.pc

64Bit

Use the following command to append your .mozconfig with 64bit specific flags:

cat >> .mozconfig << EOF
ac_add_options --libdir=/opt/thunderbird-2.0a1/lib64
export CC="gcc ${BUILD64}"
export CXX="g++ ${BUILD64}"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}"
export USE_ARCH=64
EOF
sed -i "s:@MOZ_GTK2_LIBS@:& -L${XORG_PREFIX}/lib64 -lX11 -lXrender:g" config/autoconf.mk.in

Compile the package:

make -f client.mk build

Install the package:

make -f client.mk install &&
mv -v /opt/thunderbird-2.0a1/bin/thunderbird-config{,-64} &&
ln -sfv /usr/bin/multiarch_wrapper /opt/thunderbird-2.0a1/bin/thunderbird-config

If you're using a system installed NSS and NSPR then adjust the pkg-config files to point to the proper place:

ln -sfv /usr/lib64/pkgconfig/nss.pc /opt/thunderbird-2.0a1/lib64/pkgconfig/thunderbird-nss.pc &&
ln -sfv /usr/lib64/pkgconfig/nspr.pc /opt/thunderbird-2.0a1/lib64/pkgconfig/thunderbird-nspr.pc

Creating the Desktop File

Since Thunderbird does not provide a desktop file by default below is an example one:

cat > /usr/share/applications/thunderbird.desktop << "EOF"
[Desktop Entry]
Encoding=UTF-8
Name=Mozilla Thunderbird Mail Client
Comment=Lightweight mail client based on mozilla
Exec=thunderbird
Icon=thunderbird.png
Terminal=false
Type=Application 
Categories=Application;Network;
EOF

Grab the Thunderbird pixmap from http://cross-lfs.org/~jciccone/thunderbird.png and put it in /usr/share/pixmaps.