From 4744877a5b1eb955d091ac9cab9614763a2dc6fd Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 18 Sep 2013 11:24:17 +0200 Subject: Thunderbird 24.0 --- mozilla-746112.patch | 86 --------------------------------------- mozilla-791626.patch | 46 --------------------- mozilla-build-arm.patch | 12 ++++++ rhbz-855923.patch | 19 --------- rhbz-966424.patch | 6 +-- thunderbird-enigmail.spec | 84 ++++++++++++++++++++++---------------- thunderbird-mozconfig | 3 +- xulrunner-16.0-jemalloc-ppc.patch | 14 ------- xulrunner-24.0-jemalloc-ppc.patch | 12 ++++++ 9 files changed, 78 insertions(+), 204 deletions(-) delete mode 100644 mozilla-746112.patch delete mode 100644 mozilla-791626.patch create mode 100644 mozilla-build-arm.patch delete mode 100644 rhbz-855923.patch delete mode 100644 xulrunner-16.0-jemalloc-ppc.patch create mode 100644 xulrunner-24.0-jemalloc-ppc.patch diff --git a/mozilla-746112.patch b/mozilla-746112.patch deleted file mode 100644 index 01f6e16..0000000 --- a/mozilla-746112.patch +++ /dev/null @@ -1,86 +0,0 @@ -diff -up xulrunner-17.0/mozilla-beta/js/src/gc/Heap.h.746112 xulrunner-17.0/mozilla-beta/js/src/gc/Heap.h ---- xulrunner-17.0/mozilla-beta/js/src/gc/Heap.h.746112 2012-10-17 16:32:43.000000000 +0200 -+++ xulrunner-17.0/mozilla-beta/js/src/gc/Heap.h 2012-10-24 14:48:12.186640489 +0200 -@@ -103,26 +103,31 @@ struct Cell - }; - - /* -- * Page size is 4096 by default, except for SPARC, where it is 8192. -+ * Page size must be static to support our arena pointer optimizations, so we -+ * are forced to support each platform with non-4096 pages as a special case. -+ * Note: The freelist supports a maximum arena shift of 15. - * Note: Do not use JS_CPU_SPARC here, this header is used outside JS. - * Bug 692267: Move page size definition to gc/Memory.h and include it - * directly once jsgc.h is no longer an installed header. - */ - #if defined(SOLARIS) && (defined(__sparc) || defined(__sparcv9)) - const size_t PageShift = 13; -+const size_t ArenaShift = PageShift; -+#elif defined(__powerpc__) -+const size_t PageShift = 16; -+const size_t ArenaShift = 12; - #else - const size_t PageShift = 12; -+const size_t ArenaShift = PageShift; - #endif - const size_t PageSize = size_t(1) << PageShift; -+const size_t ArenaSize = size_t(1) << ArenaShift; -+const size_t ArenaMask = ArenaSize - 1; - - const size_t ChunkShift = 20; - const size_t ChunkSize = size_t(1) << ChunkShift; - const size_t ChunkMask = ChunkSize - 1; - --const size_t ArenaShift = PageShift; --const size_t ArenaSize = PageSize; --const size_t ArenaMask = ArenaSize - 1; -- - /* - * This is the maximum number of arenas we allow in the FreeCommitted state - * before we trigger a GC_SHRINK to release free arenas to the OS. -diff -up xulrunner-17.0/mozilla-beta/js/src/jsgc.cpp.746112 xulrunner-17.0/mozilla-beta/js/src/jsgc.cpp ---- xulrunner-17.0/mozilla-beta/js/src/jsgc.cpp.746112 2012-10-17 16:32:44.000000000 +0200 -+++ xulrunner-17.0/mozilla-beta/js/src/jsgc.cpp 2012-10-24 14:46:28.253638095 +0200 -@@ -251,6 +251,13 @@ static const int BackgroundPhaseLength[] - sizeof(BackgroundPhaseStrings) / sizeof(AllocKind) - }; - -+/* Unused memory decommiting requires the arena size match the page size. */ -+static bool -+DecommitEnabled() -+{ -+ return PageSize == ArenaSize; -+} -+ - #ifdef DEBUG - void - ArenaHeader::checkSynchronizedWithFreeList() const -@@ -742,7 +749,8 @@ Chunk::fetchNextDecommittedArena() - decommittedArenas.unset(offset); - - Arena *arena = &arenas[offset]; -- MarkPagesInUse(arena, ArenaSize); -+ if (DecommitEnabled()) -+ MarkPagesInUse(arena, ArenaSize); - arena->aheader.setAsNotAllocated(); - - return &arena->aheader; -@@ -2731,7 +2739,7 @@ DecommitArenasFromAvailableList(JSRuntim - chunk->removeFromAvailableList(); - - size_t arenaIndex = Chunk::arenaIndex(aheader->arenaAddress()); -- bool ok; -+ bool ok = true; - { - /* - * If the main thread waits for the decommit to finish, skip -@@ -2741,7 +2749,8 @@ DecommitArenasFromAvailableList(JSRuntim - Maybe maybeUnlock; - if (!rt->isHeapBusy()) - maybeUnlock.construct(rt); -- ok = MarkPagesUnused(aheader->getArena(), ArenaSize); -+ if (DecommitEnabled()) -+ ok = MarkPagesUnused(aheader->getArena(), ArenaSize); - } - - if (ok) { diff --git a/mozilla-791626.patch b/mozilla-791626.patch deleted file mode 100644 index c2e77ab..0000000 --- a/mozilla-791626.patch +++ /dev/null @@ -1,46 +0,0 @@ -# HG changeset patch -# Parent 3523e7f7a89d7933c5f1dc8f5f22559b48ec44c4 -diff --git a/netwerk/base/src/nsIOService.cpp b/netwerk/base/src/nsIOService.cpp ---- a/netwerk/base/src/nsIOService.cpp -+++ b/netwerk/base/src/nsIOService.cpp -@@ -818,17 +818,18 @@ nsIOService::PrefsChanged(nsIPrefBranch - if (NS_SUCCEEDED(rv)) { - if (mSocketTransportService) - mSocketTransportService->SetAutodialEnabled(enableAutodial); - } - } - - if (!pref || strcmp(pref, MANAGE_OFFLINE_STATUS_PREF) == 0) { - bool manage; -- if (NS_SUCCEEDED(prefs->GetBoolPref(MANAGE_OFFLINE_STATUS_PREF, -+ if (mNetworkLinkServiceInitialized && -+ NS_SUCCEEDED(prefs->GetBoolPref(MANAGE_OFFLINE_STATUS_PREF, - &manage))) - SetManageOfflineStatus(manage); - } - - if (!pref || strcmp(pref, NECKO_BUFFER_CACHE_COUNT_PREF) == 0) { - int32_t count; - if (NS_SUCCEEDED(prefs->GetIntPref(NECKO_BUFFER_CACHE_COUNT_PREF, - &count))) -@@ -928,16 +929,20 @@ nsIOService::Observe(nsISupports *subjec - } - else if (!strcmp(topic, kProfileDoChange)) { - if (data && NS_LITERAL_STRING("startup").Equals(data)) { - // Lazy initialization of network link service (see bug 620472) - InitializeNetworkLinkService(); - // Set up the initilization flag regardless the actuall result. - // If we fail here, we will fail always on. - mNetworkLinkServiceInitialized = true; -+ // And now reflect the preference setting -+ nsCOMPtr prefBranch; -+ GetPrefBranch(getter_AddRefs(prefBranch)); -+ PrefsChanged(prefBranch, MANAGE_OFFLINE_STATUS_PREF); - } - } - else if (!strcmp(topic, NS_XPCOM_SHUTDOWN_OBSERVER_ID)) { - // Remember we passed XPCOM shutdown notification to prevent any - // changes of the offline status from now. We must not allow going - // online after this point. - mShutdown = true; - diff --git a/mozilla-build-arm.patch b/mozilla-build-arm.patch new file mode 100644 index 0000000..6e27f78 --- /dev/null +++ b/mozilla-build-arm.patch @@ -0,0 +1,12 @@ +diff -up xulrunner-24.0/mozilla-release/gfx/ycbcr/moz.build.neon xulrunner-24.0/mozilla-release/gfx/ycbcr/moz.build +--- xulrunner-24.0/mozilla-release/gfx/ycbcr/moz.build.neon 2013-09-11 01:15:02.000000000 +0200 ++++ xulrunner-24.0/mozilla-release/gfx/ycbcr/moz.build 2013-09-16 11:23:40.487028288 +0200 +@@ -61,7 +61,7 @@ else: + 'yuv_row_other.cpp', + ] + +-if CONFIG['OS_TEST'] == 'arm' and CONFIG['HAVE_ARM_NEON']: ++if CONFIG['HAVE_ARM_NEON']: + CPP_SOURCES += [ + 'yuv_convert_arm.cpp', + ] diff --git a/rhbz-855923.patch b/rhbz-855923.patch deleted file mode 100644 index c6282b0..0000000 --- a/rhbz-855923.patch +++ /dev/null @@ -1,19 +0,0 @@ -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/rhbz-966424.patch b/rhbz-966424.patch index 37ddc6e..cfd6ca8 100644 --- a/rhbz-966424.patch +++ b/rhbz-966424.patch @@ -1,6 +1,6 @@ -diff --git a/toolkit/mozapps/shared/CertUtils.jsm b/toolkit/toolkit/mozapps/shared/CertUtils.jsm ---- a/toolkit/mozapps/shared/CertUtils.jsm -+++ b/toolkit/mozapps/shared/CertUtils.jsm +diff --git a/toolkit/module/CertUtils.jsm b/toolkit/toolkit/modules/CertUtils.jsm +--- a/toolkit/modules/CertUtils.jsm ++++ b/toolkit/modules/CertUtils.jsm @@ -170,17 +170,19 @@ this.checkCert = issuerCert = issuerCert.QueryInterface(Ci.nsIX509Cert3); var tokenNames = issuerCert.getAllTokenNames({}); diff --git a/thunderbird-enigmail.spec b/thunderbird-enigmail.spec index f2affce..4400810 100644 --- a/thunderbird-enigmail.spec +++ b/thunderbird-enigmail.spec @@ -1,40 +1,46 @@ # Use system nspr/nss? -%if 0%{?fedora} < 16 && 0%{?rhel} < 7 -%global system_nss 0 +%if 0%{?fedora} < 18 +%define system_nss 0 %else -%global system_nss 1 +%define system_nss 1 %endif -# Build as a debug package? -%global debug_build 0 - -# Use system Librairies ? -%if 0%{?fedora} < 18 && 0%{?rhel} < 7 -%global system_sqlite 0 +%if 0%{?fedora} < 15 +%define system_vpx 0 %else -%global system_sqlite 1 +%define system_vpx 1 %endif -%if 0%{?fedora} < 15 && 0%{?rhel} < 7 -%global system_cairo 0 -%global system_vpx 0 +# Use system Librairies ? +%if 0%{?fedora} < 19 +%define system_sqlite 0 +%define system_ffi 0 %else -%global system_cairo 1 -%global system_vpx 1 +%define system_sqlite 1 +%define system_ffi 1 %endif +# Use system libpeg (and libjpeg-turbo) ? +%define system_jpeg 1 + +# Use system cairo? +%define system_cairo 0 + +# Build as a debug package? +%global debug_build 0 + %global build_langpacks 1 %if %{?system_nss} -%global nspr_version 4.9.2 -%global nss_version 3.13.6 +%global nspr_version 4.9.6 +%global nss_version 3.15 %endif %if %{?system_cairo} %global cairo_version 1.10.0 %endif %global freetype_version 2.1.9 %if %{?system_sqlite} -%global sqlite_version 3.7.13 +%global sqlite_version 3.7.17 %endif %global libnotify_version 0.4 %if %{?system_vpx} @@ -45,15 +51,14 @@ %global thunderbird_app_id \{3550f703-e582-4d05-9a08-453d09bdfdc6\} %global enimail_app_id \{847b3a00-7ab1-11d4-8f02-006008948af5\} -%global thunver 17.0.7 -%global thunmax 18.0 +%global thunver 24.0 # 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: '.' -%global tarballdir comm-esr17 +%global tarballdir comm-esr24 %global official_branding 1 @@ -64,7 +69,7 @@ Summary: Authentication and encryption extension for Mozilla Thunderbird Name: thunderbird-enigmail Version: 1.5.2 -Release: 1%{?dist} +Release: 2%{?dist} URL: http://enigmail.mozdev.org/ # All files licensed under MPL 1.1/GPL 2.0/LGPL 2.1 License: MPLv1.1 or GPLv2+ or LGPLv2+ @@ -82,7 +87,7 @@ Source100: http://www.mozilla-enigmail.org/download/source/enigmail-%{versi # Mozilla (XULRunner) patches Patch0: thunderbird-install-dir.patch Patch8: xulrunner-10.0-secondary-ipc.patch -Patch9: mozilla-791626.patch +Patch9: mozilla-build-arm.patch # Build patches Patch104: xulrunner-10.0-gcc47.patch @@ -91,9 +96,7 @@ Patch104: xulrunner-10.0-gcc47.patch Patch200: thunderbird-8.0-enable-addons.patch # PPC fixes -Patch300: xulrunner-16.0-jemalloc-ppc.patch -Patch301: rhbz-855923.patch -Patch302: mozilla-746112.patch +Patch300: xulrunner-24.0-jemalloc-ppc.patch # Fedora specific patches Patch400: rhbz-966424.patch @@ -140,6 +143,9 @@ BuildRequires: hunspell-devel %if %{?system_sqlite} BuildRequires: sqlite-devel >= %{sqlite_version} %endif +%if %{?system_ffi} +BuildRequires: libffi-devel +%endif BuildRequires: startup-notification-devel BuildRequires: alsa-lib-devel BuildRequires: desktop-file-utils @@ -163,7 +169,6 @@ AutoReq: 0 # All others deps already required by thunderbird Requires: gnupg Requires: thunderbird >= %{thunver} -Conflicts: thunderbird >= %{thunmax} # Nothing usefull provided AutoProv: 0 @@ -184,15 +189,13 @@ cd %{tarballdir} # Mozilla (XULRunner) patches cd mozilla %patch8 -p3 -b .secondary-ipc -%patch9 -p1 -b .791626 +%patch9 -p2 -b .arm %patch104 -p1 -b .gcc47 -%patch302 -p2 -b .746112 +%patch300 -p2 -b .852698 %patch400 -p1 -b .966424 cd .. %patch200 -p1 -b .addons -%patch300 -p1 -b .852698 -%patch301 -p1 -b .855923 %if %{official_branding} # Required by Mozilla Corporation @@ -205,11 +208,11 @@ cd .. %{__rm} -f .mozconfig cat %{SOURCE10} \ -%if ! %{system_cairo} - | grep -v enable-system-cairo \ -%endif %if ! %{system_vpx} | grep -v with-system-libvpx \ +%endif +%if ! %{system_jpeg} + | grep -v with-system-jpeg \ %endif | tee .mozconfig @@ -236,6 +239,16 @@ echo "ac_add_options --enable-system-sqlite" >> .mozconfig echo "ac_add_options --disable-system-sqlite" >> .mozconfig %endif +%if %{?system_cairo} +echo "ac_add_options --enable-system-cairo" >> .mozconfig +%else +echo "ac_add_options --disable-system-cairo" >> .mozconfig +%endif + +%if %{?system_ffi} +echo "ac_add_options --enable-system-ffi" >> .mozconfig +%endif + %if %{?debug_build} echo "ac_add_options --enable-debug" >> .mozconfig echo "ac_add_options --disable-optimize" >> .mozconfig @@ -350,6 +363,9 @@ unzip -q objdir/mozilla/dist/bin/enigmail-*-linux-*.xpi -d $RPM_BUILD_ROOT%{enig #=============================================================================== %changelog +* Wed Sep 18 2013 Remi Collet 1.5.2-2 +- Enigmail 1.5.2 for Thunderbird 24.0 + * Thu Jul 4 2013 Remi Collet 1.5.2-1 - Enigmail 1.5.2 for Thunderbird 17.0.7 diff --git a/thunderbird-mozconfig b/thunderbird-mozconfig index bd801a0..39665bc 100644 --- a/thunderbird-mozconfig +++ b/thunderbird-mozconfig @@ -19,8 +19,6 @@ 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 @@ -29,6 +27,7 @@ ac_add_options --disable-updater ac_add_options --enable-startup-notification ac_add_options --enable-gio ac_add_options --disable-gnomevfs +ac_add_options --disable-gstreamer export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 diff --git a/xulrunner-16.0-jemalloc-ppc.patch b/xulrunner-16.0-jemalloc-ppc.patch deleted file mode 100644 index e4fca79..0000000 --- a/xulrunner-16.0-jemalloc-ppc.patch +++ /dev/null @@ -1,14 +0,0 @@ -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 - diff --git a/xulrunner-24.0-jemalloc-ppc.patch b/xulrunner-24.0-jemalloc-ppc.patch new file mode 100644 index 0000000..fe404ca --- /dev/null +++ b/xulrunner-24.0-jemalloc-ppc.patch @@ -0,0 +1,12 @@ +diff -up xulrunner-24.0/mozilla-release/memory/mozjemalloc/jemalloc.c.jemalloc-ppc xulrunner-24.0/mozilla-release/memory/mozjemalloc/jemalloc.c +--- xulrunner-24.0/mozilla-release/memory/mozjemalloc/jemalloc.c.jemalloc-ppc 2013-09-11 01:15:18.000000000 +0200 ++++ xulrunner-24.0/mozilla-release/memory/mozjemalloc/jemalloc.c 2013-09-13 13:36:34.171680919 +0200 +@@ -1104,7 +1104,7 @@ static unsigned ncpus; + * controlling the malloc behavior are defined as compile-time constants + * for best performance and cannot be altered at runtime. + */ +-#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) ++#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && !(defined(__powerpc__)) + #define MALLOC_STATIC_SIZES 1 + #endif + -- cgit