forked from pool/MozillaThunderbird
- 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
This commit is contained in:
parent
693127b057
commit
d6fa566d17
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6469fc90ac155189cc9fa2b1fb209d2997de2c45d8a05e7e1d6c09ae015d3171
|
||||
size 28372
|
||||
oid sha256:0b97ad0de96c991d5706e3fb193098c0a5efc38184e2b266899aaa0142c6a5c7
|
||||
size 28380
|
||||
|
@ -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
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:76a50bb992378a93c0e39072edc1d9f5f5899d398d8fe8df668c7c98b18af72e
|
||||
size 24497668
|
3
l10n-52.0.tar.xz
Normal file
3
l10n-52.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a5026fe4a0f2c5608cf029ab53c8e6eee0a7da93ea73c83caf7c40618ef95e87
|
||||
size 26058896
|
@ -1,170 +0,0 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Zheng Xu <zheng.xu@linaro.org>
|
||||
# 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);
|
||||
}
|
||||
|
31
mozilla-aarch64-startup-crash.patch
Normal file
31
mozilla-aarch64-startup-crash.patch
Normal file
@ -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,
|
@ -1,30 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# 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.
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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 (<STDIN>) {
|
||||
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 <stdio.h>
|
||||
+#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
|
||||
# include <stdlib.h>
|
||||
+#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
|
||||
# include <string.h>
|
||||
|
||||
enum{
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,23 +1,22 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent 5a29924228527f8882c83cf62d470963ea1ce62e
|
||||
# Parent 55b6ae7fd3ebf28f960031801f1948dfc1bd80d2
|
||||
# Parent 4f39ed617c2f151a3a15903c7ae4471b66774e9e
|
||||
Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE
|
||||
|
||||
diff --git a/intl/locale/nsLocaleService.cpp b/intl/locale/nsLocaleService.cpp
|
||||
--- a/intl/locale/nsLocaleService.cpp
|
||||
+++ b/intl/locale/nsLocaleService.cpp
|
||||
@@ -122,16 +122,17 @@ nsLocaleService::nsLocaleService(void)
|
||||
@@ -114,16 +114,17 @@ nsLocaleService::nsLocaleService(void)
|
||||
NS_ENSURE_SUCCESS_VOID(rv);
|
||||
#endif
|
||||
#if defined(XP_UNIX) && !defined(XP_MACOSX)
|
||||
RefPtr<nsLocale> resultLocale(new nsLocale());
|
||||
NS_ENSURE_TRUE_VOID(resultLocale);
|
||||
|
||||
#ifdef MOZ_WIDGET_QT
|
||||
const char* lang = QLocale::system().name().toUtf8();
|
||||
#else
|
||||
// Get system configuration
|
||||
const char* lang = getenv("LANG");
|
||||
+ const char* language = getenv("LANGUAGE");
|
||||
#endif
|
||||
|
||||
nsAutoString xpLocale, platformLocale;
|
||||
nsAutoString category, category_platform;
|
||||
@ -25,7 +24,8 @@ diff --git a/intl/locale/nsLocaleService.cpp b/intl/locale/nsLocaleService.cpp
|
||||
|
||||
for( i = 0; i < LocaleListLength; i++ ) {
|
||||
nsresult result;
|
||||
@@ -158,16 +159,21 @@ nsLocaleService::nsLocaleService(void)
|
||||
// setlocale( , "") evaluates LC_* and LANG
|
||||
@@ -149,16 +150,36 @@ nsLocaleService::nsLocaleService(void)
|
||||
} else {
|
||||
CopyASCIItoUTF16(lang, platformLocale);
|
||||
result = nsPosixLocale::GetXPLocale(lang, xpLocale);
|
||||
@ -35,9 +35,24 @@ diff --git a/intl/locale/nsLocaleService.cpp b/intl/locale/nsLocaleService.cpp
|
||||
return;
|
||||
}
|
||||
+ // LANGUAGE is overriding LC_MESSAGES
|
||||
+ // it can be a colon separated list of preferred languages
|
||||
+ // as we do not recognize here if a language is available
|
||||
+ // we actually only consider the first entry unless GetXPLocale
|
||||
+ // fails completely
|
||||
+ if (i == LC_MESSAGES && language && *language) {
|
||||
+ CopyASCIItoUTF16(language, platformLocale);
|
||||
+ result = nsPosixLocale::GetXPLocale(language, xpLocale);
|
||||
+#define LANGUAGE_SEP ":"
|
||||
+ nsAutoString xpLocale_temp;
|
||||
+ char* rawBuffer = (char*) language;
|
||||
+ char* token = nsCRT::strtok(rawBuffer, LANGUAGE_SEP, &rawBuffer);
|
||||
+ for (; token;
|
||||
+ token = nsCRT::strtok(rawBuffer, LANGUAGE_SEP, &rawBuffer)) {
|
||||
+ result = nsPosixLocale::GetXPLocale(token, xpLocale_temp);
|
||||
+ if (NS_SUCCEEDED(result)) {
|
||||
+ CopyASCIItoUTF16(token, platformLocale);
|
||||
+ xpLocale = xpLocale_temp;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
resultLocale->AddCategory(category, xpLocale);
|
||||
resultLocale->AddCategory(category_platform, platformLocale);
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4c1817924bed48514d040191526a5c6f1f779b30cbed4829fe3a40209851e028
|
||||
size 211944208
|
3
thunderbird-52.0-source.tar.xz
Normal file
3
thunderbird-52.0-source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:13f49dcf7a18af6d37bfed8e41d795b456fa5b4748cdd0306f962dfe32cc9198
|
||||
size 240073876
|
Loading…
Reference in New Issue
Block a user