Difference between revisions of "Thunderbird"

From CBLFS
Jump to navigationJump to search
m (Moved multilib bash script after build consistent with non-multilib.)
 
(16 intermediate revisions by 4 users not shown)
Line 2: Line 2:
 
|-
 
|-
 
!Download Source:
 
!Download Source:
| http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/2.0a1/source/thunderbird-2.0a1-source.tar.bz2
+
| http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/{{Thunderbird-Version}}/source/thunderbird-{{Thunderbird-Version}}-source.tar.bz2
 
|}
 
|}
  
 
----
 
----
  
== Introduction to Thunderbird ==
+
{{Package-Introduction|Thunderbird is a stand-alone mail/news client based on the Mozilla codebase.|http://www.mozilla.com/en-US/thunderbird/}}
 
 
Thunderbird is a stand-alone mail/news client based on the Mozilla codebase.
 
  
 
== Dependencies ==
 
== Dependencies ==
Line 16: Line 14:
 
* [[libIDL]]
 
* [[libIDL]]
 
* [[Zip]]
 
* [[Zip]]
 +
* [[SQLite3]]
 
=== Recommended ===
 
=== Recommended ===
 
* [[NSS]]
 
* [[NSS]]
Line 23: Line 22:
 
* [[OpenLDAP]]
 
* [[OpenLDAP]]
  
== Creating a .mozconfig ==
+
{{Mozilla-mozconfig-base|mail|thunderbird-{{Thunderbird-Version}}}}
 
 
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 ==
 
== Non-Multilib ==
 
sed -i "s:@MOZ_GTK2_LIBS@:& -L${XORG_PREFIX}/lib -lX11 -lXrender:g" config/autoconf.mk.in
 
  
 
Compile the package:
 
Compile the package:
Line 93: Line 33:
  
 
  make -f client.mk install
 
  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 ===
 
=== 50-thunderbird.sh ===
Line 106: Line 41:
 
  # Begin /etc/profile.d/50-thunderbird.sh
 
  # Begin /etc/profile.d/50-thunderbird.sh
 
   
 
   
  export PATH="${PATH}:/opt/thunderbird-2.0a1/bin"
+
  export PATH="${PATH}:/opt/thunderbird-{{Thunderbird-Version}}/bin"
  export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}${PKG_CONFIG_PATH+:}/opt/thunderbird-2.0a1/lib/pkgconfig"
+
  export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}${PKG_CONFIG_PATH+:}/opt/thunderbird-{{Thunderbird-Version}}/lib/pkgconfig"
 
   
 
   
 
  # End /etc/profile.d/50-thunderbird.sh
 
  # End /etc/profile.d/50-thunderbird.sh
Line 113: Line 48:
  
 
== Multilib ==
 
== 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.
 
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.
  
Line 130: Line 66:
 
  mk_add_options CONFIG_GUESS=$CLFS_TARGET32
 
  mk_add_options CONFIG_GUESS=$CLFS_TARGET32
 
  EOF
 
  EOF
 
sed -i "s:@MOZ_GTK2_LIBS@:& -L${XORG_PREFIX}/lib -lX11 -lXrender:g" config/autoconf.mk.in
 
  
 
==== x86 ====
 
==== x86 ====
Line 145: Line 79:
 
==== Common ====
 
==== Common ====
  
  mv -v /opt/thunderbird-2.0a1/bin/thunderbird-config{,-32} &&
+
  mv -v /opt/thunderbird-{{Thunderbird-Version}}/bin/thunderbird{,-32} &&
  ln -sfv /usr/bin/multiarch_wrapper /opt/thunderbird-2.0/bin/thunderbird-config
+
  ln -sfv thunderbird-32 /opt/thunderbird-{{Thunderbird-Version}}/bin/thunderbird &&
 
+
  ln -sfv thunderbird-bin /opt/thunderbird-{{Thunderbird-Version}}/lib/thunderbird-{{Thunderbird-Version}}/thunderbird-32-bin &&
If you're using a system installed [[NSS]] and [[NSPR]] then adjust the pkg-config files to point to the proper place:
+
mv -v /opt/thunderbird-{{Thunderbird-Version}}/bin/thunderbird-config{,-32} &&
 
+
  ln -sfv /usr/bin/multiarch_wrapper /opt/thunderbird-{{Thunderbird-Version}}/bin/thunderbird-config
  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 ===
 
=== 64Bit ===
Line 158: Line 90:
  
 
  cat >> .mozconfig << EOF
 
  cat >> .mozconfig << EOF
  ac_add_options --libdir=/opt/thunderbird-2.0a1/lib64
+
  ac_add_options --libdir=/opt/thunderbird-{{Thunderbird-Version}}/lib64
 
  export CC="gcc ${BUILD64}"
 
  export CC="gcc ${BUILD64}"
 
  export CXX="g++ ${BUILD64}"
 
  export CXX="g++ ${BUILD64}"
Line 164: Line 96:
 
  export USE_ARCH=64
 
  export USE_ARCH=64
 
  EOF
 
  EOF
 
sed -i "s:@MOZ_GTK2_LIBS@:& -L${XORG_PREFIX}/lib64 -lX11 -lXrender:g" config/autoconf.mk.in
 
  
 
Compile the package:
 
Compile the package:
Line 173: Line 103:
 
Install the package:
 
Install the package:
  
  make -f client.mk install &&
+
  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:
+
mv -v /opt/thunderbird-{{Thunderbird-Version}}/bin/thunderbird{,-64} &&
 
+
ln -sfv thunderbird-64 /opt/thunderbird-{{Thunderbird-Version}}/bin/thunderbird &&
  ln -sfv /usr/lib64/pkgconfig/nss.pc /opt/thunderbird-2.0a1/lib64/pkgconfig/thunderbird-nss.pc &&
+
  ln -sfv thunderbird-bin /opt/thunderbird-{{Thunderbird-Version}}/lib64/thunderbird-{{Thunderbird-Version}}/thunderbird-64-bin &&
  ln -sfv /usr/lib64/pkgconfig/nspr.pc /opt/thunderbird-2.0a1/lib64/pkgconfig/thunderbird-nspr.pc
+
mv -v /opt/thunderbird-{{Thunderbird-Version}}/bin/thunderbird-config{,-64} &&
 +
  ln -sfv /usr/bin/multiarch_wrapper /opt/thunderbird-{{Thunderbird-Version}}/bin/thunderbird-config
  
 
=== 50-thunderbird.sh ===
 
=== 50-thunderbird.sh ===
Line 189: Line 118:
 
  # Begin /etc/profile.d/50-thunderbird.sh
 
  # Begin /etc/profile.d/50-thunderbird.sh
 
   
 
   
  export PATH="${PATH}:/opt/thunderbird-2.0a1/bin"
+
  export PATH="${PATH}:/opt/thunderbird-{{Thunderbird-Version}}/bin"
  export PKG_CONFIG_PATH32="${PKG_CONFIG_PATH32}${PKG_CONFIG_PATH32+:}/opt/thunderbird-2.0a1/lib/pkgconfig"
+
  export PKG_CONFIG_PATH32="${PKG_CONFIG_PATH32}${PKG_CONFIG_PATH32+:}/opt/thunderbird-{{Thunderbird-Version}}/lib/pkgconfig"
  export PKG_CONFIG_PATHN32="${PKG_CONFIG_PATHN32}${PKG_CONFIG_PATHN32+:}/opt/thunderbird-2.0a1/lib32/pkgconfig"
+
  export PKG_CONFIG_PATHN32="${PKG_CONFIG_PATHN32}${PKG_CONFIG_PATHN32+:}/opt/thunderbird-{{Thunderbird-Version}}/lib32/pkgconfig"
  export PKG_CONFIG_PATH64="${PKG_CONFIG_PATH64}${PKG_CONFIG_PATH64+:}/opt/thunderbird-2.0a1/lib64/pkgconfig"
+
  export PKG_CONFIG_PATH64="${PKG_CONFIG_PATH64}${PKG_CONFIG_PATH64+:}/opt/thunderbird-{{Thunderbird-Version}}/lib64/pkgconfig"
 
   
 
   
 
  # End /etc/profile.d/50-thunderbird.sh
 
  # End /etc/profile.d/50-thunderbird.sh
Line 205: Line 134:
 
  Encoding=UTF-8
 
  Encoding=UTF-8
 
  Name=Mozilla Thunderbird Mail Client
 
  Name=Mozilla Thunderbird Mail Client
  Comment=Lightweight mail client based on mozilla
+
  Comment=Lightweight Mail Client Based on Mozilla
 
  Exec=thunderbird
 
  Exec=thunderbird
 
  Icon=thunderbird.png
 
  Icon=thunderbird.png
 
  Terminal=false
 
  Terminal=false
  Type=Application  
+
  Type=Application
 
  Categories=Application;Network;
 
  Categories=Application;Network;
 
  EOF
 
  EOF
  
 
Grab the Thunderbird pixmap from http://cross-lfs.org/~jciccone/thunderbird.png and put it in /usr/share/pixmaps.
 
Grab the Thunderbird pixmap from http://cross-lfs.org/~jciccone/thunderbird.png and put it in /usr/share/pixmaps.
 +
 +
[[Category:GUI Clients ]]

Latest revision as of 10:33, 2 June 2010

Download Source: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.0.4/source/thunderbird-3.0.4-source.tar.bz2

Introduction to Thunderbird

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

Project Homepage: http://www.mozilla.com/en-US/thunderbird/

Dependencies

Required

Recommended

Optional

Creating a .mozconfig

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

The first line includes the default configuration for compiling and the second line determines where the build objects are going to reside.

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.

--disable-tests prevents test programs from being built which saves a lot of disk space and time.

--disable-installer prevents the installer from being built. --enable-official-branding causes the installed binaries to have the official Firefox name embedded in them. Due to license restrictions, you may not distribute binaries created using this option.

cat > .mozconfig << "EOF"
ac_add_options --enable-application=mail
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@

ac_add_options --prefix=/opt/thunderbird-3.0.4

ac_cv_visibility_pragma=no

ac_add_options --with-nspr-prefix=/usr
ac_add_options --with-nss-prefix=/usr
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-bz2
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib

ac_add_options --disable-debug
ac_add_options --disable-installer
ac_add_options --disable-xprint
ac_add_options --disable-tests

ac_add_options --enable-canvas
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --enable-safe-browsing
ac_add_options --enable-svg
ac_add_options --enable-system-cairo
ac_add_options --enable-system-sqlite
EOF

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

cat >> .mozconfig << "EOF"
ac_add_options --enable-xinerama
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

If you do not have JDK installed then add the following to your .mozconfig:

cat >> .mozconfig << "EOF"
ac_add_options --disable-javaxpcom
EOF

Non-Multilib

Compile the package:

make -f client.mk build

Install the package:

make -f client.mk install

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-3.0.4/bin"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}${PKG_CONFIG_PATH+:}/opt/thunderbird-3.0.4/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.

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

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-3.0.4/bin/thunderbird{,-32} &&
ln -sfv thunderbird-32 /opt/thunderbird-3.0.4/bin/thunderbird &&
ln -sfv thunderbird-bin /opt/thunderbird-3.0.4/lib/thunderbird-3.0.4/thunderbird-32-bin &&
mv -v /opt/thunderbird-3.0.4/bin/thunderbird-config{,-32} &&
ln -sfv /usr/bin/multiarch_wrapper /opt/thunderbird-3.0.4/bin/thunderbird-config

64Bit

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

cat >> .mozconfig << EOF
ac_add_options --libdir=/opt/thunderbird-3.0.4/lib64
export CC="gcc ${BUILD64}"
export CXX="g++ ${BUILD64}"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}"
export USE_ARCH=64
EOF

Compile the package:

make -f client.mk build

Install the package:

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

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-3.0.4/bin"
export PKG_CONFIG_PATH32="${PKG_CONFIG_PATH32}${PKG_CONFIG_PATH32+:}/opt/thunderbird-3.0.4/lib/pkgconfig"
export PKG_CONFIG_PATHN32="${PKG_CONFIG_PATHN32}${PKG_CONFIG_PATHN32+:}/opt/thunderbird-3.0.4/lib32/pkgconfig"
export PKG_CONFIG_PATH64="${PKG_CONFIG_PATH64}${PKG_CONFIG_PATH64+:}/opt/thunderbird-3.0.4/lib64/pkgconfig"

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

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.