From d6fa566d1779c6725d2eab9e38f6391bf6d1e2f32dd1bce6a58f0c1f86360392 Mon Sep 17 00:00:00 2001 From: Wolfgang Rosenauer Date: Sat, 18 Mar 2017 21:27:55 +0000 Subject: [PATCH 1/8] - update to Thunderbird 52.0 * Optionally remove corresponding data files when removing an account * Possibility to copy message filter * Calendar: Event can now be created and edited in a tab * Calendar: Processing of received invitation counter proposals * Chat: Support Twitter Direct Messages * Chat: Liking and favoriting in Twitter * Chat: Removed Yahoo! Messenger support * serveral bugfixes - removed obsolete patches * mozilla-aarch64-48bit-va.patch * mozilla-binutils-visibility.patch * mozilla-flex_buffer_overrun.patch * mozilla-gcc6.patch - added generic mozilla patches * mozilla-aarch64-startup-crash.patch - require newer versions of NSPR and NSS OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaThunderbird?expand=0&rev=358 --- MozillaThunderbird.changes | 21 + MozillaThunderbird.spec | 67 ++- compare-locales.tar.xz | 4 +- create-tar.sh | 6 +- l10n-45.8.0.tar.xz | 3 - l10n-52.0.tar.xz | 3 + mozilla-aarch64-48bit-va.patch | 170 ------- mozilla-aarch64-startup-crash.patch | 31 ++ mozilla-binutils-visibility.patch | 30 -- mozilla-develdirs.patch | 2 +- mozilla-flex_buffer_overrun.patch | 76 ---- mozilla-gcc6.patch | 27 -- mozilla-kde.patch | 666 +++++++++++++++++----------- mozilla-language.patch | 33 +- thunderbird-45.8.0-source.tar.xz | 3 - thunderbird-52.0-source.tar.xz | 3 + 16 files changed, 511 insertions(+), 634 deletions(-) delete mode 100644 l10n-45.8.0.tar.xz create mode 100644 l10n-52.0.tar.xz delete mode 100644 mozilla-aarch64-48bit-va.patch create mode 100644 mozilla-aarch64-startup-crash.patch delete mode 100644 mozilla-binutils-visibility.patch delete mode 100644 mozilla-flex_buffer_overrun.patch delete mode 100644 mozilla-gcc6.patch delete mode 100644 thunderbird-45.8.0-source.tar.xz create mode 100644 thunderbird-52.0-source.tar.xz diff --git a/MozillaThunderbird.changes b/MozillaThunderbird.changes index aba51d1..378acc5 100644 --- a/MozillaThunderbird.changes +++ b/MozillaThunderbird.changes @@ -1,3 +1,24 @@ +------------------------------------------------------------------- +Sat Mar 18 21:06:01 UTC 2017 - wr@rosenauer.org + +- update to Thunderbird 52.0 + * Optionally remove corresponding data files when removing an account + * Possibility to copy message filter + * Calendar: Event can now be created and edited in a tab + * Calendar: Processing of received invitation counter proposals + * Chat: Support Twitter Direct Messages + * Chat: Liking and favoriting in Twitter + * Chat: Removed Yahoo! Messenger support + * serveral bugfixes +- removed obsolete patches + * mozilla-aarch64-48bit-va.patch + * mozilla-binutils-visibility.patch + * mozilla-flex_buffer_overrun.patch + * mozilla-gcc6.patch +- added generic mozilla patches + * mozilla-aarch64-startup-crash.patch +- require newer versions of NSPR and NSS + ------------------------------------------------------------------- Tue Mar 7 15:08:23 UTC 2017 - wr@rosenauer.org diff --git a/MozillaThunderbird.spec b/MozillaThunderbird.spec index b69663d..1f569f7 100644 --- a/MozillaThunderbird.spec +++ b/MozillaThunderbird.spec @@ -17,21 +17,18 @@ # -%define mainversion 45.8.0 +%define mainversion 52.0 %define update_channel release -%define releasedate 2017030300 - -%if %suse_version > 1310 -%define gstreamer_ver 1.0 -%define gstreamer 1 -%else -%define gstreamer_ver 0.10 -%endif +%define releasedate 201703180000 %bcond_without mozilla_tb_kde4 %bcond_with mozilla_tb_valgrind %bcond_without mozilla_tb_optimize_for_size +%if 0%{?suse_version} > 1320 +%define mozilla_use_gtk3 1 +%endif + Name: MozillaThunderbird BuildRequires: Mesa-devel BuildRequires: autoconf213 @@ -44,8 +41,8 @@ BuildRequires: libcurl-devel BuildRequires: libgnomeui-devel BuildRequires: libidl-devel BuildRequires: libnotify-devel -BuildRequires: mozilla-nspr-devel >= 4.12 -BuildRequires: mozilla-nss-devel >= 3.21.3 +BuildRequires: mozilla-nspr-devel >= 4.13.1 +BuildRequires: mozilla-nss-devel >= 3.28.3 BuildRequires: python BuildRequires: startup-notification-devel BuildRequires: unzip @@ -58,18 +55,17 @@ BuildRequires: pkgconfig(libpulse) %if %{with mozilla_tb_valgrind} BuildRequires: pkgconfig(valgrind) %endif -BuildRequires: pkgconfig(gstreamer-%gstreamer_ver) -BuildRequires: pkgconfig(gstreamer-app-%gstreamer_ver) -BuildRequires: pkgconfig(gstreamer-plugins-base-%gstreamer_ver) -%if 0%{?gstreamer} == 1 -Requires: libgstreamer-1_0-0 -Recommends: gstreamer-fluendo-mp3 -Recommends: gstreamer-plugin-libav -%else -Requires: libgstreamer-0_10-0 -Recommends: gstreamer-0_10-fluendo-mp3 -Recommends: gstreamer-0_10-plugins-ffmpeg +%if 0%{?mozilla_use_gtk3} +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gobject-2.0) +BuildRequires: pkgconfig(gtk+-3.0) >= 3.4.0 +BuildRequires: pkgconfig(gtk+-unix-print-3.0) %endif +# libavcodec is required for H.264 support but the +# openSUSE version is currently not able to play H.264 +# therefore the Packman version is required +# minimum version of libavcodec is 53 +Recommends: libavcodec-full >= 0.10.16 Version: %{mainversion} Release: 0 Provides: thunderbird = %{version} @@ -103,16 +99,13 @@ Patch2: mozilla-nongnome-proxies.patch Patch3: mozilla-kde.patch Patch4: mozilla-develdirs.patch Patch5: mozilla-no-stdcxx-check.patch -Patch6: mozilla-gcc6.patch -Patch8: mozilla-aarch64-48bit-va.patch -Patch9: mozilla-binutils-visibility.patch +Patch6: mozilla-aarch64-startup-crash.patch # Thunderbird/mail Patch20: tb-ssldap.patch -# hotfix -Patch150: mozilla-flex_buffer_overrun.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: coreutils fileutils textutils /bin/sh Recommends: libcanberra0 +Recommends: libpulse0 ### build options %ifarch aarch64 ppc ppc64 ppc64le s390 s390x ia64 %arm %define crashreporter 0 @@ -132,11 +125,7 @@ Conflicts: thunderbird-esr %define progname thunderbird %define progdir %{_prefix}/%_lib/thunderbird %define libgssapi libgssapi_krb5.so.2 -%if %suse_version > 1130 %define desktop_file_name thunderbird -%else -%define desktop_file_name %{name} -%endif %description Mozilla Thunderbird is a redesign of the Mozilla Mail component. It is @@ -204,9 +193,6 @@ pushd mozilla %patch4 -p1 %patch5 -p1 %patch6 -p1 -%patch8 -p1 -%patch9 -p1 -%patch150 -p1 popd # comm-central patches %patch20 -p1 @@ -273,6 +259,11 @@ ac_add_options --includedir=%{_includedir} ac_add_options --disable-tests ac_add_options --disable-debug ac_add_options --enable-optimize +%if 0%{?mozilla_use_gtk3} +ac_add_options --enable-default-toolkit=cairo-gtk3 +%else +ac_add_options --enable-default-toolkit=cairo-gtk2 +%endif ac_add_options --with-system-nspr ac_add_options --with-system-nss ac_add_options --with-system-jpeg @@ -281,15 +272,10 @@ ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n ac_add_options --disable-updater #ac_add_options --with-system-png # no apng support ac_add_options --enable-system-hunspell -ac_add_options --disable-installer -ac_add_options --disable-mochitest ac_add_options --enable-startup-notification ac_add_options --enable-official-branding ac_add_options --disable-necko-wifi ac_add_options --enable-update-channel=%{update_channel} -%if 0%{?gstreamer} == 1 -ac_add_options --enable-gstreamer=1.0 -%endif %if %has_system_cairo ac_add_options --enable-system-cairo %endif @@ -476,7 +462,10 @@ exit 0 %dir %{progdir} %{progdir}/application.ini %{progdir}/blocklist.xml +%{progdir}/chrome.manifest %{progdir}/dependentlibs.list +%{progdir}/fonts/ +%{progdir}/icudt58l.dat %{progdir}/*.so %{progdir}/omni.ja %{progdir}/platform.ini diff --git a/compare-locales.tar.xz b/compare-locales.tar.xz index 85fc135..01217f0 100644 --- a/compare-locales.tar.xz +++ b/compare-locales.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6469fc90ac155189cc9fa2b1fb209d2997de2c45d8a05e7e1d6c09ae015d3171 -size 28372 +oid sha256:0b97ad0de96c991d5706e3fb193098c0a5efc38184e2b266899aaa0142c6a5c7 +size 28380 diff --git a/create-tar.sh b/create-tar.sh index ee2ec32..de92716 100644 --- a/create-tar.sh +++ b/create-tar.sh @@ -1,9 +1,9 @@ #!/bin/bash -CHANNEL="esr45" +CHANNEL="esr52" BRANCH="releases/comm-$CHANNEL" -RELEASE_TAG="THUNDERBIRD_45_8_0_RELEASE" -VERSION="45.8.0" +RELEASE_TAG="be61b0b74793df0a2ae8c940516bcab4beef60da" +VERSION="52.0" echo "cloning $BRANCH..." hg clone http://hg.mozilla.org/$BRANCH thunderbird diff --git a/l10n-45.8.0.tar.xz b/l10n-45.8.0.tar.xz deleted file mode 100644 index 4ce8db0..0000000 --- a/l10n-45.8.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:76a50bb992378a93c0e39072edc1d9f5f5899d398d8fe8df668c7c98b18af72e -size 24497668 diff --git a/l10n-52.0.tar.xz b/l10n-52.0.tar.xz new file mode 100644 index 0000000..eb29128 --- /dev/null +++ b/l10n-52.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5026fe4a0f2c5608cf029ab53c8e6eee0a7da93ea73c83caf7c40618ef95e87 +size 26058896 diff --git a/mozilla-aarch64-48bit-va.patch b/mozilla-aarch64-48bit-va.patch deleted file mode 100644 index bf04e26..0000000 --- a/mozilla-aarch64-48bit-va.patch +++ /dev/null @@ -1,170 +0,0 @@ - -# HG changeset patch -# User Zheng Xu -# Date 1464657720 -7200 -# Node ID dfaafbaaa2919a033c4c0abdd5830f4ea413bed6 -# Parent 499f16ca85ec48d1896a1633730715f32bd62140 -Bug 1143022 - Manually mmap on arm64 to ensure high 17 bits are clear. r=ehoogeveen - -There might be 48-bit VA on arm64 depending on kernel configuration. -Manually mmap heap memory to align with the assumption made by JS engine. - -diff --git a/js/src/gc/Memory.cpp b/js/src/gc/Memory.cpp ---- a/js/src/gc/Memory.cpp -+++ b/js/src/gc/Memory.cpp -@@ -430,17 +430,17 @@ InitMemorySubsystem() - if (pageSize == 0) - pageSize = allocGranularity = size_t(sysconf(_SC_PAGESIZE)); - } - - static inline void* - MapMemoryAt(void* desired, size_t length, int prot = PROT_READ | PROT_WRITE, - int flags = MAP_PRIVATE | MAP_ANON, int fd = -1, off_t offset = 0) - { --#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) -+#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) || defined(__aarch64__) - MOZ_ASSERT(0xffff800000000000ULL & (uintptr_t(desired) + length - 1) == 0); - #endif - void* region = mmap(desired, length, prot, flags, fd, offset); - if (region == MAP_FAILED) - return nullptr; - /* - * mmap treats the given address as a hint unless the MAP_FIXED flag is - * used (which isn't usually what you want, as this overrides existing -@@ -480,16 +480,51 @@ MapMemory(size_t length, int prot = PROT - * as out of memory. - */ - if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) { - if (munmap(region, length)) - MOZ_ASSERT(errno == ENOMEM); - return nullptr; - } - return region; -+#elif defined(__aarch64__) -+ /* -+ * There might be similar virtual address issue on arm64 which depends on -+ * hardware and kernel configurations. But the work around is slightly -+ * different due to the different mmap behavior. -+ * -+ * TODO: Merge with the above code block if this implementation works for -+ * ia64 and sparc64. -+ */ -+ const uintptr_t start = UINT64_C(0x0000070000000000); -+ const uintptr_t end = UINT64_C(0x0000800000000000); -+ const uintptr_t step = ChunkSize; -+ /* -+ * Optimization options if there are too many retries in practice: -+ * 1. Examine /proc/self/maps to find an available address. This file is -+ * not always available, however. In addition, even if we examine -+ * /proc/self/maps, we may still need to retry several times due to -+ * racing with other threads. -+ * 2. Use a global/static variable with lock to track the addresses we have -+ * allocated or tried. -+ */ -+ uintptr_t hint; -+ void* region = MAP_FAILED; -+ for (hint = start; region == MAP_FAILED && hint + length <= end; hint += step) { -+ region = mmap((void*)hint, length, prot, flags, fd, offset); -+ if (region != MAP_FAILED) { -+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) { -+ if (munmap(region, length)) { -+ MOZ_ASSERT(errno == ENOMEM); -+ } -+ region = MAP_FAILED; -+ } -+ } -+ } -+ return region == MAP_FAILED ? nullptr : region; - #else - void* region = MozTaggedAnonymousMmap(nullptr, length, prot, flags, fd, offset, "js-gc-heap"); - if (region == MAP_FAILED) - return nullptr; - return region; - #endif - } - -diff --git a/js/src/jsapi-tests/testGCAllocator.cpp b/js/src/jsapi-tests/testGCAllocator.cpp ---- a/js/src/jsapi-tests/testGCAllocator.cpp -+++ b/js/src/jsapi-tests/testGCAllocator.cpp -@@ -307,48 +307,72 @@ void* mapMemoryAt(void* desired, size_t - void* mapMemory(size_t length) { return nullptr; } - void unmapPages(void* p, size_t size) { } - - #elif defined(XP_UNIX) - - void* - mapMemoryAt(void* desired, size_t length) - { --#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) -+#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) || defined(__aarch64__) - MOZ_RELEASE_ASSERT(0xffff800000000000ULL & (uintptr_t(desired) + length - 1) == 0); - #endif - void* region = mmap(desired, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); - if (region == MAP_FAILED) - return nullptr; - if (region != desired) { - if (munmap(region, length)) - MOZ_RELEASE_ASSERT(errno == ENOMEM); - return nullptr; - } - return region; - } - - void* - mapMemory(size_t length) - { -- void* hint = nullptr; -+ int prot = PROT_READ | PROT_WRITE; -+ int flags = MAP_PRIVATE | MAP_ANON; -+ int fd = -1; -+ off_t offset = 0; -+ // The test code must be aligned with the implementation in gc/Memory.cpp. - #if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) -- hint = (void*)0x0000070000000000ULL; --#endif -- void* region = mmap(hint, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); -+ void* region = mmap((void*)0x0000070000000000, length, prot, flags, fd, offset); - if (region == MAP_FAILED) - return nullptr; --#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) -- if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000ULL) { -+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) { - if (munmap(region, length)) - MOZ_RELEASE_ASSERT(errno == ENOMEM); - return nullptr; - } -+ return region; -+#elif defined(__aarch64__) -+ const uintptr_t start = UINT64_C(0x0000070000000000); -+ const uintptr_t end = UINT64_C(0x0000800000000000); -+ const uintptr_t step = ChunkSize; -+ uintptr_t hint; -+ void* region = MAP_FAILED; -+ for (hint = start; region == MAP_FAILED && hint + length <= end; hint += step) { -+ region = mmap((void*)hint, length, prot, flags, fd, offset); -+ if (region != MAP_FAILED) { -+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) { -+ if (munmap(region, length)) { -+ MOZ_RELEASE_ASSERT(errno == ENOMEM); -+ } -+ region = MAP_FAILED; -+ } -+ } -+ } -+ return region == MAP_FAILED ? nullptr : region; -+#else -+ void* region = mmap(nullptr, length, prot, flags, fd, offset); -+ if (region == MAP_FAILED) -+ return nullptr; -+ return region; - #endif -- return region; - } - - void - unmapPages(void* p, size_t size) - { - if (munmap(p, size)) - MOZ_RELEASE_ASSERT(errno == ENOMEM); - } - diff --git a/mozilla-aarch64-startup-crash.patch b/mozilla-aarch64-startup-crash.patch new file mode 100644 index 0000000..e1c1876 --- /dev/null +++ b/mozilla-aarch64-startup-crash.patch @@ -0,0 +1,31 @@ +# HG changeset patch +# Parent a5cfa3aa11a9d3391df49de6fc5a0e5232c12c10 +Bug 991344 - Rpi3: Firefox crashes after a few seconds of usage + +diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp +--- a/netwerk/base/nsIOService.cpp ++++ b/netwerk/base/nsIOService.cpp +@@ -830,17 +830,23 @@ nsIOService::NewChannelFromURIWithProxyF + consoleService->LogStringMessage(NS_LITERAL_STRING( + "Http channel implementation doesn't support nsIUploadChannel2. An extension has supplied a non-functional http protocol handler. This will break behavior and in future releases not work at all." + ).get()); + } + gHasWarnedUploadChannel2 = true; + } + } + ++#if defined(__aarch64__) ++ if (result) { ++ channel.forget(result); ++ } ++#else + channel.forget(result); ++#endif + return NS_OK; + } + + NS_IMETHODIMP + nsIOService::NewChannelFromURIWithProxyFlags2(nsIURI* aURI, + nsIURI* aProxyURI, + uint32_t aProxyFlags, + nsIDOMNode* aLoadingNode, diff --git a/mozilla-binutils-visibility.patch b/mozilla-binutils-visibility.patch deleted file mode 100644 index 6cb168c..0000000 --- a/mozilla-binutils-visibility.patch +++ /dev/null @@ -1,30 +0,0 @@ -# HG changeset patch -# User Wolfgang Rosenauer -# Parent 83bc32d997c714b607db1ffa71f02b30e1484a75 -From: NetBSD -Subject: Workaround for gcc/binutils combination in Leap 42.2 -References: -https://bugzilla.opensuse.org/show_bug.cgi?id=984637 - -diff --git a/xpcom/components/Module.h b/xpcom/components/Module.h ---- a/xpcom/components/Module.h -+++ b/xpcom/components/Module.h -@@ -120,17 +120,17 @@ struct Module - #if defined(MOZILLA_INTERNAL_API) - # define NSMODULE_NAME(_name) _name##_NSModule - # if defined(_MSC_VER) - # pragma section(".kPStaticModules$M", read) - # pragma comment(linker, "/merge:.kPStaticModules=.rdata") - # define NSMODULE_SECTION __declspec(allocate(".kPStaticModules$M"), dllexport) - # elif defined(__GNUC__) - # if defined(__ELF__) --# define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), visibility("protected"))) -+# define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), visibility("default"))) - # elif defined(__MACH__) - # define NSMODULE_SECTION __attribute__((section("__DATA, .kPStaticModules"), visibility("default"))) - # elif defined (_WIN32) - # define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), dllexport)) - # endif - # endif - # if !defined(NSMODULE_SECTION) - # error Do not know how to define sections. diff --git a/mozilla-develdirs.patch b/mozilla-develdirs.patch index a077a9d..946bbb8 100644 --- a/mozilla-develdirs.patch +++ b/mozilla-develdirs.patch @@ -19,6 +19,6 @@ diff --git a/config/baseconfig.mk b/config/baseconfig.mk else DIST = $(DEPTH)/dist endif + ABS_DIST = $(topobjdir)/dist # We do magic with OBJ_SUFFIX in config.mk, the following ensures we don't - # manually use it before config.mk inclusion diff --git a/mozilla-flex_buffer_overrun.patch b/mozilla-flex_buffer_overrun.patch deleted file mode 100644 index 7dc3ebc..0000000 --- a/mozilla-flex_buffer_overrun.patch +++ /dev/null @@ -1,76 +0,0 @@ -# HG changeset patch -# Parent c8e8364b303892fdb5a574b96411d2d8f699a15e -Patch lexical parser files generated by flex which may be potentially -exploitable in a buffer overrun. These seem to come from an upstream projects -(CMU Sphinx and ANGLE) so it should be fixed there in the first place. - -CVE-2016-6354 - -https://bugzilla.suse.com/show_bug.cgi?id=990856 - -diff --git a/gfx/angle/src/compiler/preprocessor/Tokenizer.cpp b/gfx/angle/src/compiler/preprocessor/Tokenizer.cpp ---- a/gfx/angle/src/compiler/preprocessor/Tokenizer.cpp -+++ b/gfx/angle/src/compiler/preprocessor/Tokenizer.cpp -@@ -1375,17 +1375,17 @@ static int yy_get_next_buffer (yyscan_t - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; - - else - { -- yy_size_t num_to_read = -+ int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; - -diff --git a/gfx/angle/src/compiler/translator/glslang_lex.cpp b/gfx/angle/src/compiler/translator/glslang_lex.cpp ---- a/gfx/angle/src/compiler/translator/glslang_lex.cpp -+++ b/gfx/angle/src/compiler/translator/glslang_lex.cpp -@@ -2269,17 +2269,17 @@ static int yy_get_next_buffer (yyscan_t - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; - - else - { -- yy_size_t num_to_read = -+ int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; - -diff --git a/media/sphinxbase/src/libsphinxbase/lm/jsgf_scanner.c b/media/sphinxbase/src/libsphinxbase/lm/jsgf_scanner.c ---- a/media/sphinxbase/src/libsphinxbase/lm/jsgf_scanner.c -+++ b/media/sphinxbase/src/libsphinxbase/lm/jsgf_scanner.c -@@ -1242,17 +1242,17 @@ static int yy_get_next_buffer (yyscan_t - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; - - else - { -- yy_size_t num_to_read = -+ int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; - diff --git a/mozilla-gcc6.patch b/mozilla-gcc6.patch deleted file mode 100644 index 56d2982..0000000 --- a/mozilla-gcc6.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -up firefox-44.0/nsprpub/config/make-system-wrappers.pl.back firefox-44.0/nsprpub/config/make-system-wrappers.pl ---- firefox-44.0/nsprpub/config/make-system-wrappers.pl.back 2016-01-24 00:23:49.000000000 +0100 -+++ firefox-44.0/nsprpub/config/make-system-wrappers.pl 2016-02-02 14:58:45.064112655 +0100 -@@ -19,7 +19,9 @@ while () { - open OUT, ">$output_dir/$_"; - print OUT "#pragma GCC system_header\n"; # suppress include_next warning - print OUT "#pragma GCC visibility push(default)\n"; -+ print OUT "#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS\n"; - print OUT "#include_next \<$_\>\n"; -+ print OUT "#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS\n"; - print OUT "#pragma GCC visibility pop\n"; - close OUT; - } -diff -up firefox-44.0/mozglue/build/arm.cpp.old firefox-44.0/mozglue/build/arm.cpp ---- firefox-44.0/mozglue/build/arm.cpp.old 2016-02-03 10:07:29.879526500 +0100 -+++ firefox-44.0/mozglue/build/arm.cpp 2016-02-03 10:08:11.062697517 +0100 -@@ -104,7 +104,9 @@ check_neon(void) - - # elif defined(__linux__) || defined(ANDROID) - # include -+#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS - # include -+#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS - # include - - enum{ - diff --git a/mozilla-kde.patch b/mozilla-kde.patch index af162d7..2f50f68 100644 --- a/mozilla-kde.patch +++ b/mozilla-kde.patch @@ -1,5 +1,5 @@ # HG changeset patch -# Parent 797d5f17b080f54439602f107ecaf6b09a0ef5c1 +# Parent 5c8ae59424f5318bf7a387257771bf95d3893063 Description: Add KDE integration to Firefox (toolkit parts) Author: Wolfgang Rosenauer Author: Lubos Lunak @@ -9,7 +9,7 @@ Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751 diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp --- a/modules/libpref/Preferences.cpp +++ b/modules/libpref/Preferences.cpp -@@ -30,16 +30,17 @@ +@@ -31,16 +31,17 @@ #include "nsIZipReader.h" #include "nsPrefBranch.h" #include "nsXPIDLString.h" @@ -27,7 +27,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp #include "prefread.h" #include "prefapi_private_data.h" -@@ -1136,16 +1137,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char +@@ -1174,16 +1175,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char static nsresult pref_LoadPrefsInDirList(const char *listId) { @@ -62,7 +62,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp return NS_OK; bool hasMore; -@@ -1161,17 +1180,17 @@ static nsresult pref_LoadPrefsInDirList( +@@ -1199,17 +1218,17 @@ static nsresult pref_LoadPrefsInDirList( nsAutoCString leaf; path->GetNativeLeafName(leaf); @@ -81,7 +81,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp { nsZipItemPtr manifest(jarReader, name, true); NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE); -@@ -1265,26 +1284,38 @@ static nsresult pref_InitInitialObjects( +@@ -1303,24 +1322,36 @@ static nsresult pref_InitInitialObjects( /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */ static const char* specialFiles[] = { #if defined(XP_MACOSX) @@ -91,9 +91,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp #elif defined(XP_UNIX) "unix.js" + , "" // placeholder for KDE (empty is otherwise harmless) - #if defined(VMS) - , "openvms.js" - #elif defined(_AIX) + #if defined(_AIX) , "aix.js" #endif #elif defined(XP_BEOS) @@ -143,7 +141,7 @@ diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build DEFINES['OS_ARCH'] = CONFIG['OS_ARCH'] DEFINES['MOZ_WIDGET_TOOLKIT'] = CONFIG['MOZ_WIDGET_TOOLKIT'] - if CONFIG['GNU_CXX']: + FINAL_TARGET_PP_FILES += [ diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py --- a/python/mozbuild/mozpack/chrome/flags.py +++ b/python/mozbuild/mozpack/chrome/flags.py @@ -189,8 +187,7 @@ diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpac diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build --- a/toolkit/components/downloads/moz.build +++ b/toolkit/components/downloads/moz.build -@@ -65,15 +65,16 @@ if not CONFIG['MOZ_SUITE']: - 'nsDownloadManagerUI.js', +@@ -57,16 +57,17 @@ if not CONFIG['MOZ_SUITE']: 'nsDownloadManagerUI.manifest', ] @@ -198,19 +195,20 @@ diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloa LOCAL_INCLUDES += [ '../protobuf', -- '/ipc/chromium/src' -+ '/ipc/chromium/src', -+ '/toolkit/xre' + '/ipc/chromium/src', ++ '/toolkit/xre', + 'chromium' ] DEFINES['GOOGLE_PROTOBUF_NO_RTTI'] = True DEFINES['GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER'] = True CXXFLAGS += CONFIG['TK_CFLAGS'] + diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp --- a/toolkit/components/downloads/nsDownloadManager.cpp +++ b/toolkit/components/downloads/nsDownloadManager.cpp -@@ -51,16 +51,20 @@ +@@ -52,16 +52,20 @@ #ifdef XP_WIN #include #include "nsWindowsHelpers.h" @@ -228,10 +226,10 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon #endif #ifdef MOZ_WIDGET_ANDROID - #include "AndroidBridge.h" + #include "FennecJNIWrappers.h" #endif -@@ -2719,16 +2723,25 @@ nsDownload::SetState(DownloadState aStat +@@ -2723,16 +2727,25 @@ nsDownload::SetState(DownloadState aStat nsCOMPtr pref(do_GetService(NS_PREFSERVICE_CONTRACTID)); // Master pref to control this function. @@ -257,12 +255,12 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon int64_t goat = PR_Now() - mStartTime; showTaskbarAlert = goat > alertIntervalUSec; -@@ -2759,16 +2772,17 @@ nsDownload::SetState(DownloadState aStat - NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title, +@@ -2764,16 +2777,17 @@ nsDownload::SetState(DownloadState aStat message, !removeWhenDone, mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"), mDownloadManager, EmptyString(), NS_LITERAL_STRING("auto"), - EmptyString(), EmptyString(), nullptr, mPrivate); + EmptyString(), EmptyString(), nullptr, mPrivate, + false /* requireInteraction */); } } } @@ -278,31 +276,31 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn --- a/toolkit/content/jar.mn +++ b/toolkit/content/jar.mn -@@ -64,29 +64,33 @@ toolkit.jar: - content/global/viewZoomOverlay.js - *+ content/global/bindings/autocomplete.xml (widgets/autocomplete.xml) - content/global/bindings/browser.xml (widgets/browser.xml) +@@ -71,29 +71,33 @@ toolkit.jar: content/global/bindings/button.xml (widgets/button.xml) content/global/bindings/checkbox.xml (widgets/checkbox.xml) content/global/bindings/colorpicker.xml (widgets/colorpicker.xml) content/global/bindings/datetimepicker.xml (widgets/datetimepicker.xml) - *+ content/global/bindings/dialog.xml (widgets/dialog.xml) -+*+ content/global/bindings/dialog-kde.xml (widgets/dialog-kde.xml) + content/global/bindings/datetimepopup.xml (widgets/datetimepopup.xml) + content/global/bindings/datetimebox.xml (widgets/datetimebox.xml) + content/global/bindings/datetimebox.css (widgets/datetimebox.css) + * content/global/bindings/dialog.xml (widgets/dialog.xml) ++* content/global/bindings/dialog-kde.xml (widgets/dialog-kde.xml) +% override chrome://global/content/bindings/dialog.xml chrome://global/content/bindings/dialog-kde.xml desktop=kde content/global/bindings/editor.xml (widgets/editor.xml) content/global/bindings/expander.xml (widgets/expander.xml) - * content/global/bindings/filefield.xml (widgets/filefield.xml) - *+ content/global/bindings/findbar.xml (widgets/findbar.xml) + content/global/bindings/filefield.xml (widgets/filefield.xml) + * content/global/bindings/findbar.xml (widgets/findbar.xml) content/global/bindings/general.xml (widgets/general.xml) content/global/bindings/groupbox.xml (widgets/groupbox.xml) - *+ content/global/bindings/listbox.xml (widgets/listbox.xml) + content/global/bindings/listbox.xml (widgets/listbox.xml) content/global/bindings/menu.xml (widgets/menu.xml) content/global/bindings/menulist.xml (widgets/menulist.xml) content/global/bindings/notification.xml (widgets/notification.xml) content/global/bindings/numberbox.xml (widgets/numberbox.xml) content/global/bindings/popup.xml (widgets/popup.xml) - *+ content/global/bindings/preferences.xml (widgets/preferences.xml) -+*+ content/global/bindings/preferences-kde.xml (widgets/preferences-kde.xml) + * content/global/bindings/preferences.xml (widgets/preferences.xml) ++* content/global/bindings/preferences-kde.xml (widgets/preferences-kde.xml) +% override chrome://global/content/bindings/preferences.xml chrome://global/content/bindings/preferences-kde.xml desktop=kde content/global/bindings/progressmeter.xml (widgets/progressmeter.xml) content/global/bindings/radio.xml (widgets/radio.xml) @@ -312,11 +310,23 @@ diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn content/global/bindings/scale.xml (widgets/scale.xml) content/global/bindings/scrollbar.xml (widgets/scrollbar.xml) content/global/bindings/scrollbox.xml (widgets/scrollbox.xml) +@@ -113,9 +117,9 @@ toolkit.jar: + content/global/bindings/videocontrols.css (widgets/videocontrols.css) + * content/global/bindings/wizard.xml (widgets/wizard.xml) + #ifdef XP_MACOSX + content/global/macWindowMenu.js + #endif + content/global/svg/svgBindings.xml (/layout/svg/resources/content/svgBindings.xml) + content/global/gmp-sources/eme-adobe.json (gmp-sources/eme-adobe.json) + content/global/gmp-sources/openh264.json (gmp-sources/openh264.json) +- content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json) +\ No newline at end of file ++ content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json) diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/dialog-kde.xml new file mode 100644 --- /dev/null +++ b/toolkit/content/widgets/dialog-kde.xml -@@ -0,0 +1,460 @@ +@@ -0,0 +1,457 @@ + +