summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2012-10-10 20:00:57 +0200
committerRemi Collet <fedora@famillecollet.com>2012-10-10 20:00:57 +0200
commitfb895a5a5e0c7214e4ead48d08b9ecf58aae98ec (patch)
tree409d0d4b87203f5daeb7a09309bac8e520de1ad7
mozilla-enigmail: work in progress
-rw-r--r--Makefile4
-rw-r--r--mozilla-enigmail.spec531
-rw-r--r--rhbz-855923.patch19
-rw-r--r--thunderbird-8.0-enable-addons.patch26
-rw-r--r--thunderbird-install-dir.patch37
-rw-r--r--thunderbird-mozconfig38
-rwxr-xr-xthunderbird-mozconfig-branded1
-rw-r--r--xulrunner-10.0-gcc47.patch13
-rw-r--r--xulrunner-10.0-secondary-ipc.patch36
-rw-r--r--xulrunner-16.0-jemalloc-ppc.patch14
10 files changed, 719 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..1e65467
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,4 @@
+SRCDIR := $(shell pwd)
+NAME := $(shell basename $(SRCDIR))
+include ../common/Makefile
+
diff --git a/mozilla-enigmail.spec b/mozilla-enigmail.spec
new file mode 100644
index 0000000..e66aefc
--- /dev/null
+++ b/mozilla-enigmail.spec
@@ -0,0 +1,531 @@
+# Use system nspr/nss?
+%if 0%{?fedora} < 16 && 0%{?rhel} < 7
+%define system_nss 0
+%else
+%define system_nss 1
+%endif
+
+# Build as a debug package?
+%define debug_build 0
+
+# Use system Librairies ?
+%if 0%{?fedora} <= 17
+%define system_sqlite 0
+%else
+%define system_sqlite 1
+%endif
+%if 0%{?fedora} < 15
+%define system_cairo 0
+%define system_vpx 0
+%else
+%define system_cairo 1
+%define system_vpx 1
+%endif
+
+%define build_langpacks 1
+
+%if %{?system_nss}
+%define nspr_version 4.9.2
+%define nss_version 3.13.3
+%endif
+%define cairo_version 1.10.0
+%define freetype_version 2.1.9
+%define lcms_version 1.19
+%if %{?system_sqlite}
+%define sqlite_version 3.7.10
+%endif
+%define libnotify_version 0.4
+%global libvpx_version 1.0.0
+%define _default_patch_fuzz 2
+
+%global mozextdir %{_libdir}/mozilla/extensions
+%global enig_guid \{847b3a00-7ab1-11d4-8f02-006008948af5\}
+%global thun_guid \{3550f703-e582-4d05-9a08-453d09bdfdc6\}
+%global seam_guid \{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a\}
+
+%global thunver 16.0
+%global thunmax 17.0
+
+%global seamver 2.13
+%global seammax 2.15
+
+
+# The tarball is pretty inconsistent with directory structure.
+# Sometimes there is a top level directory. That goes here.
+#
+# IMPORTANT: If there is no top level directory, this should be
+# set to the cwd, ie: '.'
+#%define tarballdir .
+%define tarballdir comm-release
+
+%define official_branding 1
+
+%define mozappdir %{_libdir}/thunderbird
+
+
+Summary: Authentication and encryption extension for mail client
+Name: mozilla-enigmail
+Version: 1.4.5
+%if 0%{?prever:1}
+Release: 0.1.%{prever}%{?dist}
+%else
+Release: 1%{?dist}
+%endif
+URL: http://enigmail.mozdev.org/
+License: MPLv1.1 or GPLv2+
+Group: Applications/Internet
+Source0: thunderbird-%{thunver}%{?thunbeta}.source.tar.bz2
+#NoSource: 0
+
+Source10: thunderbird-mozconfig
+Source11: thunderbird-mozconfig-branded
+
+# ===== Enigmail files =====
+%if 0%{?CVS}
+# cvs -d :pserver:guest@mozdev.org:/cvs login
+# => password is guest
+# cvs -d :pserver:guest@mozdev.org:/cvs co enigmail/src
+# tar czf /home/rpmbuild/SOURCES/enigmail-20091121.tgz --exclude CVS -C enigmail/src .
+Source100: enigmail-%{CVS}.tgz
+%else
+Source100: http://www.mozilla-enigmail.org/download/source/enigmail-%{version}%{?prever}.tar.gz
+%endif
+
+
+# Mozilla (XULRunner) patches
+Patch0: thunderbird-install-dir.patch
+Patch8: xulrunner-10.0-secondary-ipc.patch
+
+# Build patches
+Patch104: xulrunner-10.0-gcc47.patch
+
+# Linux specific
+Patch200: thunderbird-8.0-enable-addons.patch
+
+# PPC fixes
+Patch300: xulrunner-16.0-jemalloc-ppc.patch
+Patch301: rhbz-855923.patch
+
+# Enigmail patch
+
+
+%if %{official_branding}
+# Required by Mozilla Corporation
+
+%else
+# Not yet approved by Mozillla Corporation
+
+%endif
+
+%if %{?system_nss}
+BuildRequires: nss-static >= %{nss_version}
+BuildRequires: nspr-devel >= %{nspr_version}
+BuildRequires: nss-devel >= %{nss_version}
+%endif
+%if %{system_cairo}
+# Library requirements (cairo-tee >= 1.10)
+BuildRequires: cairo-devel >= %{cairo_version}
+%endif
+BuildRequires: libnotify-devel >= %{libnotify_version}
+BuildRequires: libpng-devel
+BuildRequires: libjpeg-devel
+BuildRequires: zip
+BuildRequires: bzip2-devel
+BuildRequires: zlib-devel, gzip, zip, unzip
+BuildRequires: libIDL-devel
+BuildRequires: gtk2-devel
+BuildRequires: gnome-vfs2-devel
+BuildRequires: libgnome-devel
+BuildRequires: libgnomeui-devel
+BuildRequires: krb5-devel
+BuildRequires: pango-devel
+BuildRequires: freetype-devel >= %{freetype_version}
+BuildRequires: libXt-devel
+BuildRequires: libXrender-devel
+BuildRequires: hunspell-devel
+%if %{?system_sqlite}
+BuildRequires: sqlite-devel >= %{sqlite_version}
+%endif
+BuildRequires: startup-notification-devel
+BuildRequires: alsa-lib-devel
+BuildRequires: desktop-file-utils
+BuildRequires: libcurl-devel
+BuildRequires: yasm
+BuildRequires: mesa-libGL-devel
+BuildRequires: GConf2-devel
+BuildRequires: lcms-devel >= %{lcms_version}
+%if %{system_vpx}
+BuildRequires: libvpx-devel >= %{libvpx_version}
+%endif
+
+## For fixing lang
+BuildRequires: perl
+
+# Without this enigmmail will require libxpcom.so and other .so
+# which are not provided by thunderbird (to avoid mistake,
+# because provided by xulrunner).
+AutoReq: 0
+# All others deps already required by thunderbird/seamonkey
+Requires: gnupg
+
+# Nothing usefull provided
+AutoProv: 0
+
+
+%description
+Enigmail is an extension to the various mail client which allows users
+to access the authentication and encryption features provided by GnuPG.
+
+- Mozilla Thunderbird users should install thunderbird-enigmail
+- Seamonkey users should install seamonkey-enigmail
+
+
+%package -n thunderbird-enigmail
+Summary: Authentication and encryption extension for Mozilla Thunderbird
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: thunderbird%{?_isa} >= %{thunver}
+Conflicts: thunderbird%{?_isa} >= %{thunmax}
+
+%description -n thunderbird-enigmail
+Enigmail is an extension to the mail client Mozilla Thunderbird
+which allows users to access the authentication and encryption
+features provided by GnuPG.
+
+
+%package -n seamonkey-enigmail
+Summary: Authentication and encryption extension for SeaMonkey
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: seamonkey%{?_isa} >= %{seamver}
+Conflicts: seamonkey%{?_isa} >= %{seammax}
+
+%description -n seamonkey-enigmail
+Enigmail is an extension to the Seamonkey mail client which allows users
+to access the authentication and encryption features provided by GnuPG.
+
+
+#===============================================================================
+
+%prep
+%setup -q -c
+cd %{tarballdir}
+
+%patch0 -p2 -b .dir
+# Mozilla (XULRunner) patches
+cd mozilla
+%patch8 -p3 -b .secondary-ipc
+%patch104 -p1 -b .gcc47
+cd ..
+
+%patch200 -p1 -b .addons
+%patch300 -p1 -b .852698
+%patch301 -p1 -b .855923
+
+%if %{official_branding}
+# Required by Mozilla Corporation
+
+%else
+# Not yet approved by Mozilla Corporation
+
+%endif
+
+
+%{__rm} -f .mozconfig
+cat %{SOURCE10} \
+%if ! %{system_cairo}
+ | grep -v enable-system-cairo \
+%endif
+%if ! %{system_vpx}
+ | grep -v with-system-libvpx \
+%endif
+ | tee .mozconfig
+
+%if 0%{?fedora} < 14 && 0%{?rhel} <= 6
+echo "ac_add_options --disable-libjpeg-turbo" >> .mozconfig
+%endif
+
+%if %{official_branding}
+%{__cat} %{SOURCE11} >> .mozconfig
+%endif
+
+%if %{?system_nss}
+echo "ac_add_options --with-system-nspr" >> .mozconfig
+echo "ac_add_options --with-system-nss" >> .mozconfig
+%else
+echo "ac_add_options --without-system-nspr" >> .mozconfig
+echo "ac_add_options --without-system-nss" >> .mozconfig
+%endif
+
+# s390(x) fails to start with jemalloc enabled
+%ifarch s390 s390x
+echo "ac_add_options --disable-jemalloc" >> .mozconfig
+%endif
+
+%if %{?system_sqlite}
+echo "ac_add_options --enable-system-sqlite" >> .mozconfig
+%else
+echo "ac_add_options --disable-system-sqlite" >> .mozconfig
+%endif
+
+%if %{?debug_build}
+echo "ac_add_options --enable-debug" >> .mozconfig
+echo "ac_add_options --disable-optimize" >> .mozconfig
+%else
+echo "ac_add_options --disable-debug" >> .mozconfig
+echo "ac_add_options --enable-optimize" >> .mozconfig
+%endif
+
+%ifarch %{arm}
+echo "ac_add_options --disable-elf-hack" >> .mozconfig
+%endif
+
+# ===== Enigmail work =====
+%if 0%{?CVS}
+mkdir mailnews/extensions/enigmail
+tar xzf %{SOURCE100} -C mailnews/extensions/enigmail
+
+%else
+tar xzf %{SOURCE100} -C mailnews/extensions
+pushd mailnews/extensions/enigmail
+# From: Patrick Brunschwig <patrick@mozilla-enigmail.org>
+# All tarballs (as well as CVS) will *always* report as 1.4a1pre (or whatever
+# the next major version would be). This is because I create builds from trunk
+# and simply label the result as 1.3.x.
+sed -i -e '/em:version/s/1.5a1pre/%{version}/' package/install.rdf
+grep '<em:version>%{version}</em:version>' package/install.rdf || exit 1
+# Apply Enigmail patch here
+popd
+%endif
+
+# ===== Fixing langpack
+pushd mailnews/extensions/enigmail
+for rep in $(cat lang/current-languages.txt)
+do
+ perl util/fixlang.pl ui/locale/en-US lang/$rep
+done
+popd
+
+#===============================================================================
+
+%build
+cd %{tarballdir}
+
+# -fpermissive is needed to build with gcc 4.6+ which has become stricter
+#
+# Mozilla builds with -Wall with exception of a few warnings which show up
+# everywhere in the code; so, don't override that.
+#
+# Disable C++ exceptions since Mozilla code is not exception-safe
+#
+MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS -fpermissive" | \
+ %{__sed} -e 's/-Wall//' -e 's/-fexceptions/-fno-exceptions/g')
+%if %{?debug_build}
+MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//')
+%endif
+%ifarch s390
+MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS" | %{__sed} -e 's/-g/-g1')
+%endif
+%ifarch s390 %{arm} ppc
+MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
+%endif
+
+export CFLAGS=$MOZ_OPT_FLAGS
+export CXXFLAGS=$MOZ_OPT_FLAGS
+export LDFLAGS=$MOZ_LINK_FLAGS
+
+export PREFIX='%{_prefix}'
+export LIBDIR='%{_libdir}'
+
+MOZ_SMP_FLAGS=-j1
+# On x86 architectures, Mozilla can build up to 4 jobs at once in parallel,
+# however builds tend to fail on other arches when building in parallel.
+%ifarch %{ix86} x86_64
+[ -z "$RPM_BUILD_NCPUS" ] && \
+ RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
+[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2
+[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4
+[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8
+%endif
+
+
+# ===== Thunderbird build =====
+# http://enigmail.mozdev.org/download/source.php.html
+make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS"
+
+# ===== Enigmail work =====
+pushd mailnews/extensions/enigmail
+./makemake -r
+popd
+
+pushd objdir/mailnews/extensions/enigmail
+make
+make xpi
+popd
+
+#===============================================================================
+
+%install
+cd %{tarballdir}
+
+# mozilla-enigmail
+mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name}
+unzip -q objdir/mozilla/dist/bin/enigmail-*-linux-*.xpi -d $RPM_BUILD_ROOT%{_libdir}/%{name}
+
+# thunderbird-enigmail
+mkdir -p $RPM_BUILD_ROOT%{mozextdir}/%{thun_guid}
+ln -s %{_libdir}/%{name} \
+ $RPM_BUILD_ROOT%{mozextdir}/%{thun_guid}/%{enig_guid}
+
+# seamonkey-enigmail
+mkdir -p $RPM_BUILD_ROOT%{mozextdir}/%{seam_guid}
+ln -s %{_libdir}/%{name} \
+ $RPM_BUILD_ROOT%{mozextdir}/%{seam_guid}/%{enig_guid}
+
+
+#===============================================================================
+
+%pretrans -n thunderbird-enigmail
+# manage update from single package
+dir=%{mozextdir}/%{thun_guid}/%{enig_guid}
+if [ -d $dir -a ! -L $dir ]; then
+ rm -rf $dir
+fi
+
+
+#===============================================================================
+
+%files
+%{_libdir}/%{name}
+
+%files -n thunderbird-enigmail
+%{mozextdir}/%{thun_guid}/%{enig_guid}
+
+%files -n seamonkey-enigmail
+%{mozextdir}/%{seam_guid}/%{enig_guid}
+
+
+#===============================================================================
+
+%changelog
+* Wed Oct 10 2012 Remi Collet <remi@fedoraproject.org> 1.4.5-2
+- rename to mozilla-enigmail
+- add thunderbird and enigmail sub package
+
+* Tue Oct 9 2012 Remi Collet <remi@fedoraproject.org> 1.4.5-1
+- Enigmail 1.4.5 for Thunderbird 16
+
+* Mon Aug 27 2012 Remi Collet <remi@fedoraproject.org> 1.4.4-2
+- Enigmail 1.4.4 for Thunderbird 15.0
+
+* Wed Aug 21 2012 Remi Collet <remi@fedoraproject.org> 1.4.4-1
+- Enigmail 1.4.4 for Thunderbird 14.0
+
+* Sat Jul 21 2012 Remi Collet <remi@fedoraproject.org> 1.4.3-1
+- Enigmail 1.4.3 for Thunderbird 14.0
+
+* Tue Jun 05 2012 Remi Collet <remi@fedoraproject.org> 1.4.2-1
+- Enigmail 1.4.2 for Thunderbird 13.0
+
+* Sat Apr 28 2012 Remi Collet <remi@fedoraproject.org> 1.4.1-1
+- Enigmail 1.4.1 for Thunderbird 12.0
+
+* Fri Mar 16 2012 Remi Collet <remi@fedoraproject.org> 1.4-2.1
+- latest patch from rawhide
+
+* Thu Mar 15 2012 Remi Collet <remi@fedoraproject.org> 1.4-2
+- Enigmail 1.4 for Thunderbird 11.0
+
+* Sat Mar 03 2012 Remi Collet <remi@fedoraproject.org> 1.4-1
+- Enigmail 1.4 for Thunderbird 10.0.2
+- using upstream fixlang.pl instead of our fixlang.php
+
+* Tue Jan 31 2012 Remi Collet <remi@fedoraproject.org> 1.3.5-1
+- Enigmail 1.3.5 for Thunderbird 10.0
+
+* Wed Dec 21 2011 Remi Collet <remi@fedoraproject.org> 1.3.4-1
+- Enigmail 1.3.4 for Thunderbird 9.0
+
+* Sat Nov 12 2011 Remi Collet <remi@fedoraproject.org> 1.3.3-1
+- Enigmail 1.3.3 for Thunderbird 8.0
+
+* Wed Oct 12 2011 Georgi Georgiev <chutzimir@gmail.com> - 1.3.2-2
+- Make it work on RHEL
+
+* Sat Oct 01 2011 Remi Collet <remi@fedoraproject.org> 1.3.2-2
+- Enigmail 1.3.2 for Thunderbird 7.0.1
+- fix extension version
+
+* Thu Sep 29 2011 Remi Collet <remi@fedoraproject.org> 1.3.2-1
+- Enigmail 1.3.2 for Thunderbird 7.0
+
+* Wed Aug 17 2011 Remi Collet <remi@fedoraproject.org> 1.3-1
+- Enigmail 1.3 for Thunderbird 6.0
+
+* Sat Jul 30 2011 Remi Collet <remi@fedoraproject.org> 1.2.1-1
+- Enigmail 1.2.1 for Thunderbird 5.0
+
+* Tue Jul 19 2011 Remi Collet <remi@fedoraproject.org> 1.2-1.2
+- add --enable-chrome-format=jar to generate enigmail.jar
+
+* Sun Jul 17 2011 Remi Collet <remi@fedoraproject.org> 1.2-1.1
+- fix BR (dos2unix + php-cli)
+
+* Sun Jul 17 2011 Remi Collet <rpms@famillecollet.com> 1.2-1
+- Enigmail 1.2 for Thunderbird 5.0
+
+* Thu Jul 22 2010 Remi Collet <rpms@famillecollet.com> 1.1.2-3
+- move to /usr/lib/mozilla/extensions (as lightning)
+- build against thunderbird 3.1.1 sources
+- sync patches with F-13
+
+* Sat Jul 10 2010 Remi Collet <rpms@famillecollet.com> 1.1.2-2
+- remove link mecanism as thundebird dir is now stable (see #608511)
+
+* Wed Jun 30 2010 Remi Collet <rpms@famillecollet.com> 1.1.2-1
+- Enigmail 1.1.1 (against thunderbird 3.1)
+
+* Sat Jun 26 2010 Remi Collet <rpms@famillecollet.com> 1.1.1-2
+- new sources (only fix displayed version)
+
+* Sat Jun 26 2010 Remi Collet <rpms@famillecollet.com> 1.1.1-1
+- Enigmail 1.1.1 (against thunderbird 3.1)
+
+* Mon May 31 2010 Remi Collet <rpms@famillecollet.com> 1.1-1
+- Enigmail 1.1 (against thunderbird 3.1rc1)
+
+* Mon Feb 01 2010 Remi Collet <rpms@famillecollet.com> 1.0.1-1
+- Enigmail 1.0.1 (against thunderbird 3.0.1)
+
+* Fri Jan 29 2010 Remi Collet <rpms@famillecollet.com> 1.0.1-0.1.rc1
+- Enigmail 1.0.1rc1 (against thunderbird 3.0.1)
+
+* Mon Nov 30 2009 Remi Collet <rpms@famillecollet.com> 1.0.0-1
+- Enigmail 1.0 (against thunderbird 3.0rc1)
+
+* Sat Nov 21 2009 Remi Collet <rpms@famillecollet.com> 1.0-0.1.cvs20091121
+- new CVS snapshot (against thunderbird 3.0rc1)
+
+* Tue Jul 21 2009 Remi Collet <rpms@famillecollet.com> 0.97a-0.1.cvs20090721
+- new CVS snapshot (against thunderbird 3.0b3)
+
+* Thu May 21 2009 Remi Collet <rpms@famillecollet.com> 0.96a-0.3.cvs20090521
+- new CVS snapshot
+- fix License and Sumnary
+
+* Mon May 18 2009 Remi Collet <rpms@famillecollet.com> 0.96a-0.2.cvs20090516
+- use mozilla-extension-update.sh from thunderbird-lightning
+
+* Sat May 16 2009 Remi Collet <rpms@famillecollet.com> 0.96a-0.1.cvs20090516
+- new CVS snapshot
+- rpmfusion review proposal
+
+* Thu Apr 30 2009 Remi Collet <rpms@famillecollet.com> 0.96a-0.1.cvs20090430.fc11.remi
+- new CVS snapshot
+- F11 build
+
+* Mon Mar 16 2009 Remi Collet <rpms@famillecollet.com> 0.96a-0.1.cvs20090316.fc#.remi
+- new CVS snapshot
+- add enigmail-fixlang.php
+
+* Sun Mar 15 2009 Remi Collet <rpms@famillecollet.com> 0.96a-0.1.cvs20090315.fc#.remi
+- enigmail 0.96a (CVS), Thunderbird 3.0b2
+
diff --git a/rhbz-855923.patch b/rhbz-855923.patch
new file mode 100644
index 0000000..c6282b0
--- /dev/null
+++ b/rhbz-855923.patch
@@ -0,0 +1,19 @@
+Index: comm-release/mozilla/js/src/gc/Memory.cpp
+===================================================================
+--- comm-release.orig/mozilla/js/src/gc/Memory.cpp
++++ comm-release/mozilla/js/src/gc/Memory.cpp
+@@ -348,9 +348,14 @@ UnmapPages(void *p, size_t size)
+ bool
+ MarkPagesUnused(void *p, size_t size)
+ {
++// A workaround for Bug 746112 - endless loop on ppc64
++#if !(defined(__powerpc__))
+ JS_ASSERT(uintptr_t(p) % PageSize == 0);
+ int result = madvise(p, size, MADV_DONTNEED);
+ return result != -1;
++#else
++ return true;
++#endif
+ }
+
+ bool
diff --git a/thunderbird-8.0-enable-addons.patch b/thunderbird-8.0-enable-addons.patch
new file mode 100644
index 0000000..7b040df
--- /dev/null
+++ b/thunderbird-8.0-enable-addons.patch
@@ -0,0 +1,26 @@
+diff -up comm-release/mail/app/profile/all-thunderbird.js.addons comm-release/mail/app/profile/all-thunderbird.js
+--- comm-release/mail/app/profile/all-thunderbird.js.addons 2011-11-15 10:36:03.868551158 +0100
++++ comm-release/mail/app/profile/all-thunderbird.js 2011-11-15 10:36:20.555397903 +0100
+@@ -138,7 +138,7 @@ pref("extensions.update.autoUpdateDefaul
+ // Disable add-ons installed into the shared user and shared system areas by
+ // default. This does not include the application directory. See the SCOPE
+ // constants in AddonManager.jsm for values to use here
+-pref("extensions.autoDisableScopes", 15);
++pref("extensions.autoDisableScopes", 0);
+
+ // Preferences for AMO integration
+ pref("extensions.getAddons.cache.enabled", true);
+diff -up comm-release/mozilla/toolkit/mozapps/extensions/XPIProvider.jsm.addons comm-release/mozilla/toolkit/mozapps/extensions/XPIProvider.jsm
+--- comm-release/mozilla/toolkit/mozapps/extensions/XPIProvider.jsm.addons 2011-11-15 11:15:06.518905245 +0100
++++ comm-release/mozilla/toolkit/mozapps/extensions/XPIProvider.jsm 2011-11-15 11:15:40.399934236 +0100
+@@ -1591,8 +1591,8 @@ var XPIProvider = {
+ this.showUpgradeUI();
+ flushCaches = true;
+ }
+- else if (aAppChanged === undefined) {
+- // For new profiles we will never need to show the add-on selection UI
++ else {
++ // For all profiles we will never need to show the add-on selection UI
+ Services.prefs.setBoolPref(PREF_SHOWN_SELECTION_UI, true);
+ }
+
diff --git a/thunderbird-install-dir.patch b/thunderbird-install-dir.patch
new file mode 100644
index 0000000..96342b9
--- /dev/null
+++ b/thunderbird-install-dir.patch
@@ -0,0 +1,37 @@
+diff -up thunderbird-16.0/comm-release/config/autoconf.mk.in.dir thunderbird-16.0/comm-release/config/autoconf.mk.in
+--- thunderbird-16.0/comm-release/config/autoconf.mk.in.dir 2012-10-05 23:20:26.000000000 +0200
++++ thunderbird-16.0/comm-release/config/autoconf.mk.in 2012-10-09 12:57:24.290767832 +0200
+@@ -36,7 +36,7 @@ datadir = @datadir@
+ mandir = @mandir@
+ idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+
+-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
++installdir = $(libdir)/$(MOZ_APP_NAME)
+ sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
+
+ MOZDEPTH = $(DEPTH)/mozilla
+diff -up thunderbird-16.0/comm-release/mozilla/config/autoconf.mk.in.dir thunderbird-16.0/comm-release/mozilla/config/autoconf.mk.in
+diff -up thunderbird-16.0/comm-release/mozilla/config/baseconfig.mk.dir thunderbird-16.0/comm-release/mozilla/config/baseconfig.mk
+--- thunderbird-16.0/comm-release/mozilla/config/baseconfig.mk.dir 2012-10-05 23:27:15.000000000 +0200
++++ thunderbird-16.0/comm-release/mozilla/config/baseconfig.mk 2012-10-09 13:01:32.269317094 +0200
+@@ -2,7 +2,7 @@ INCLUDED_AUTOCONF_MK = 1
+
+ includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+ idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
++installdir = $(libdir)/$(MOZ_APP_NAME)
+ sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
+ DIST = $(DEPTH)/dist
+
+diff -up thunderbird-16.0/comm-release/mozilla/js/src/config/autoconf.mk.in.dir thunderbird-16.0/comm-release/mozilla/js/src/config/autoconf.mk.in
+diff -up thunderbird-16.0/comm-release/mozilla/js/src/config/baseconfig.mk.dir thunderbird-16.0/comm-release/mozilla/js/src/config/baseconfig.mk
+--- thunderbird-16.0/comm-release/mozilla/js/src/config/baseconfig.mk.dir 2012-10-05 23:27:30.000000000 +0200
++++ thunderbird-16.0/comm-release/mozilla/js/src/config/baseconfig.mk 2012-10-09 13:02:00.885495014 +0200
+@@ -1,6 +1,6 @@
+ INCLUDED_AUTOCONF_MK = 1
+
+-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
++installdir = $(libdir)/$(MOZ_APP_NAME)
+ sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
+
+ ifneq (,$(filter /%,$(TOP_DIST)))
diff --git a/thunderbird-mozconfig b/thunderbird-mozconfig
new file mode 100644
index 0000000..ab3b28c
--- /dev/null
+++ b/thunderbird-mozconfig
@@ -0,0 +1,38 @@
+mk_add_options MOZ_CO_PROJECT=mail
+ac_add_options --enable-application=mail
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
+mk_add_options AUTOCONF=autoconf-2.13
+
+#ac_add_options --with-system-png
+
+ac_add_options --prefix="$PREFIX"
+ac_add_options --libdir="$LIBDIR"
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-libvpx
+ac_add_options --with-pthreads
+ac_add_options --disable-tests
+ac_add_options --disable-installer
+ac_add_options --enable-xinerama
+ac_add_options --enable-default-toolkit=cairo-gtk2
+ac_add_options --disable-xprint
+ac_add_options --disable-strip
+ac_add_options --disable-install-strip
+ac_add_options --enable-pango
+# temporary disable system cairo, because compilation fails
+#ac_add_options --enable-system-cairo
+ac_add_options --enable-svg
+ac_add_options --enable-canvas
+ac_add_options --enable-system-hunspell
+ac_add_options --disable-crashreporter
+ac_add_options --disable-necko-wifi
+ac_add_options --disable-updater
+ac_add_options --enable-startup-notification
+ac_add_options --enable-gio
+ac_add_options --disable-gnomevfs
+
+export BUILD_OFFICIAL=1
+export MOZILLA_OFFICIAL=1
+mk_add_options BUILD_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
+
diff --git a/thunderbird-mozconfig-branded b/thunderbird-mozconfig-branded
new file mode 100755
index 0000000..53b376d
--- /dev/null
+++ b/thunderbird-mozconfig-branded
@@ -0,0 +1 @@
+ac_add_options --enable-official-branding
diff --git a/xulrunner-10.0-gcc47.patch b/xulrunner-10.0-gcc47.patch
new file mode 100644
index 0000000..093357b
--- /dev/null
+++ b/xulrunner-10.0-gcc47.patch
@@ -0,0 +1,13 @@
+diff -up mozilla-beta/toolkit/crashreporter/client/Makefile.in.gcc47 mozilla-beta/toolkit/crashreporter/client/Makefile.in
+--- mozilla-beta/toolkit/crashreporter/client/Makefile.in.gcc47 2012-01-30 14:41:14.475441039 -0500
++++ mozilla-beta/toolkit/crashreporter/client/Makefile.in 2012-01-30 14:43:03.587646656 -0500
+@@ -69,6 +69,9 @@ CPPSRCS = \
+ $(STDCXX_COMPAT) \
+ $(NULL)
+
++# Needed for moz_free
++LIBS += -L$(LIBXUL_DIST)/lib -lmozalloc
++
+ ifeq ($(OS_ARCH),WINNT)
+ CPPSRCS += crashreporter_win.cpp
+ LIBS += \
diff --git a/xulrunner-10.0-secondary-ipc.patch b/xulrunner-10.0-secondary-ipc.patch
new file mode 100644
index 0000000..67ee863
--- /dev/null
+++ b/xulrunner-10.0-secondary-ipc.patch
@@ -0,0 +1,36 @@
+diff -up thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/base/data_pack.cc.secondary-ipc thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/base/data_pack.cc
+--- thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/base/data_pack.cc.secondary-ipc 2012-01-29 15:44:23.000000000 +0100
++++ thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/base/data_pack.cc 2012-01-31 10:45:57.784248018 +0100
+@@ -91,14 +91,7 @@ bool DataPack::Load(const FilePath& path
+ bool DataPack::Get(uint32_t resource_id, StringPiece* data) {
+ // It won't be hard to make this endian-agnostic, but it's not worth
+ // bothering to do right now.
+-#if defined(__BYTE_ORDER)
+- // Linux check
+- COMPILE_ASSERT(__BYTE_ORDER == __LITTLE_ENDIAN,
+- datapack_assumes_little_endian);
+-#elif defined(__BIG_ENDIAN__)
+- // Mac check
+- #error DataPack assumes little endian
+-#endif
++#warning DoTheRightThingMakingThisEndianAgnostic!
+
+ DataPackEntry* target = reinterpret_cast<DataPackEntry*>(
+ bsearch(&resource_id, mmap_->data() + kHeaderLength, resource_count_,
+diff -up thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/build/build_config.h.secondary-ipc thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/build/build_config.h
+--- thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/build/build_config.h.secondary-ipc 2012-01-29 15:44:23.000000000 +0100
++++ thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/build/build_config.h 2012-01-31 10:53:24.409935119 +0100
+@@ -65,10 +65,10 @@
+ #elif defined(__ppc__) || defined(__powerpc__)
+ #define ARCH_CPU_PPC 1
+ #define ARCH_CPU_32_BITS 1
+-#elif defined(__sparc64__)
++#elif defined(__sparc__) && !defined(__arch64)
+ #define ARCH_CPU_SPARC 1
+ #define ARCH_CPU_64_BITS 1
+-#elif defined(__sparc__)
++#elif defined(__sparc__) && defined(__arch64)
+ #define ARCH_CPU_SPARC 1
+ #define ARCH_CPU_32_BITS 1
+ #elif defined(__mips__)
+diff -up thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h.secondary-ipc thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h
diff --git a/xulrunner-16.0-jemalloc-ppc.patch b/xulrunner-16.0-jemalloc-ppc.patch
new file mode 100644
index 0000000..e4fca79
--- /dev/null
+++ b/xulrunner-16.0-jemalloc-ppc.patch
@@ -0,0 +1,14 @@
+Index: xulrunner-11.0/mozilla-release/memory/jemalloc/jemalloc.c
+===================================================================
+--- a/mozilla/memory/mozjemalloc/jemalloc.c
++++ b/mozilla/memory/mozjemalloc/jemalloc.c
+@@ -1089,7 +1089,9 @@ static unsigned ncpus;
+ * controlling the malloc behavior are defined as compile-time constants
+ * for best performance and cannot be altered at runtime.
+ */
++#if !(defined(__powerpc__))
+ #define MALLOC_STATIC_SIZES 1
++#endif
+
+ #ifdef MALLOC_STATIC_SIZES
+