From fb895a5a5e0c7214e4ead48d08b9ecf58aae98ec Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 10 Oct 2012 20:00:57 +0200 Subject: mozilla-enigmail: work in progress --- Makefile | 4 + mozilla-enigmail.spec | 531 ++++++++++++++++++++++++++++++++++++ rhbz-855923.patch | 19 ++ thunderbird-8.0-enable-addons.patch | 26 ++ thunderbird-install-dir.patch | 37 +++ thunderbird-mozconfig | 38 +++ thunderbird-mozconfig-branded | 1 + xulrunner-10.0-gcc47.patch | 13 + xulrunner-10.0-secondary-ipc.patch | 36 +++ xulrunner-16.0-jemalloc-ppc.patch | 14 + 10 files changed, 719 insertions(+) create mode 100644 Makefile create mode 100644 mozilla-enigmail.spec create mode 100644 rhbz-855923.patch create mode 100644 thunderbird-8.0-enable-addons.patch create mode 100644 thunderbird-install-dir.patch create mode 100644 thunderbird-mozconfig create mode 100755 thunderbird-mozconfig-branded create mode 100644 xulrunner-10.0-gcc47.patch create mode 100644 xulrunner-10.0-secondary-ipc.patch create mode 100644 xulrunner-16.0-jemalloc-ppc.patch 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 +# 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 '%{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 1.4.5-2 +- rename to mozilla-enigmail +- add thunderbird and enigmail sub package + +* Tue Oct 9 2012 Remi Collet 1.4.5-1 +- Enigmail 1.4.5 for Thunderbird 16 + +* Mon Aug 27 2012 Remi Collet 1.4.4-2 +- Enigmail 1.4.4 for Thunderbird 15.0 + +* Wed Aug 21 2012 Remi Collet 1.4.4-1 +- Enigmail 1.4.4 for Thunderbird 14.0 + +* Sat Jul 21 2012 Remi Collet 1.4.3-1 +- Enigmail 1.4.3 for Thunderbird 14.0 + +* Tue Jun 05 2012 Remi Collet 1.4.2-1 +- Enigmail 1.4.2 for Thunderbird 13.0 + +* Sat Apr 28 2012 Remi Collet 1.4.1-1 +- Enigmail 1.4.1 for Thunderbird 12.0 + +* Fri Mar 16 2012 Remi Collet 1.4-2.1 +- latest patch from rawhide + +* Thu Mar 15 2012 Remi Collet 1.4-2 +- Enigmail 1.4 for Thunderbird 11.0 + +* Sat Mar 03 2012 Remi Collet 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 1.3.5-1 +- Enigmail 1.3.5 for Thunderbird 10.0 + +* Wed Dec 21 2011 Remi Collet 1.3.4-1 +- Enigmail 1.3.4 for Thunderbird 9.0 + +* Sat Nov 12 2011 Remi Collet 1.3.3-1 +- Enigmail 1.3.3 for Thunderbird 8.0 + +* Wed Oct 12 2011 Georgi Georgiev - 1.3.2-2 +- Make it work on RHEL + +* Sat Oct 01 2011 Remi Collet 1.3.2-2 +- Enigmail 1.3.2 for Thunderbird 7.0.1 +- fix extension version + +* Thu Sep 29 2011 Remi Collet 1.3.2-1 +- Enigmail 1.3.2 for Thunderbird 7.0 + +* Wed Aug 17 2011 Remi Collet 1.3-1 +- Enigmail 1.3 for Thunderbird 6.0 + +* Sat Jul 30 2011 Remi Collet 1.2.1-1 +- Enigmail 1.2.1 for Thunderbird 5.0 + +* Tue Jul 19 2011 Remi Collet 1.2-1.2 +- add --enable-chrome-format=jar to generate enigmail.jar + +* Sun Jul 17 2011 Remi Collet 1.2-1.1 +- fix BR (dos2unix + php-cli) + +* Sun Jul 17 2011 Remi Collet 1.2-1 +- Enigmail 1.2 for Thunderbird 5.0 + +* Thu Jul 22 2010 Remi Collet 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 1.1.2-2 +- remove link mecanism as thundebird dir is now stable (see #608511) + +* Wed Jun 30 2010 Remi Collet 1.1.2-1 +- Enigmail 1.1.1 (against thunderbird 3.1) + +* Sat Jun 26 2010 Remi Collet 1.1.1-2 +- new sources (only fix displayed version) + +* Sat Jun 26 2010 Remi Collet 1.1.1-1 +- Enigmail 1.1.1 (against thunderbird 3.1) + +* Mon May 31 2010 Remi Collet 1.1-1 +- Enigmail 1.1 (against thunderbird 3.1rc1) + +* Mon Feb 01 2010 Remi Collet 1.0.1-1 +- Enigmail 1.0.1 (against thunderbird 3.0.1) + +* Fri Jan 29 2010 Remi Collet 1.0.1-0.1.rc1 +- Enigmail 1.0.1rc1 (against thunderbird 3.0.1) + +* Mon Nov 30 2009 Remi Collet 1.0.0-1 +- Enigmail 1.0 (against thunderbird 3.0rc1) + +* Sat Nov 21 2009 Remi Collet 1.0-0.1.cvs20091121 +- new CVS snapshot (against thunderbird 3.0rc1) + +* Tue Jul 21 2009 Remi Collet 0.97a-0.1.cvs20090721 +- new CVS snapshot (against thunderbird 3.0b3) + +* Thu May 21 2009 Remi Collet 0.96a-0.3.cvs20090521 +- new CVS snapshot +- fix License and Sumnary + +* Mon May 18 2009 Remi Collet 0.96a-0.2.cvs20090516 +- use mozilla-extension-update.sh from thunderbird-lightning + +* Sat May 16 2009 Remi Collet 0.96a-0.1.cvs20090516 +- new CVS snapshot +- rpmfusion review proposal + +* Thu Apr 30 2009 Remi Collet 0.96a-0.1.cvs20090430.fc11.remi +- new CVS snapshot +- F11 build + +* Mon Mar 16 2009 Remi Collet 0.96a-0.1.cvs20090316.fc#.remi +- new CVS snapshot +- add enigmail-fixlang.php + +* Sun Mar 15 2009 Remi Collet 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( + 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 + -- cgit