From f4d806dd409cebe038a1e70c9a2cfa52449d72d5 Mon Sep 17 00:00:00 2001 From: Doan Tran Cong Danh Date: Fri, 6 Sep 2019 08:06:17 +0700 Subject: [PATCH 1/3] firefox-esr: update to 68.1.0. --- srcpkgs/firefox-esr/files/mozconfig | 6 -- .../disable-image-format-warning.patch | 15 +++ .../patches/fix-arm-opus-include.patch | 11 +++ .../firefox-esr/patches/fix-i686-musl.patch | 9 -- srcpkgs/firefox-esr/patches/fix-musl.patch | 11 --- srcpkgs/firefox-esr/patches/fix-toolkit.patch | 35 ++++--- srcpkgs/firefox-esr/patches/fix-tools.patch | 31 +++--- .../firefox-esr/patches/fix-wasm-arm.patch | 15 +++ .../firefox-esr/patches/fix-webrtc-arm.patch | 11 --- .../patches/fix-webrtc-glibcisms.patch | 17 ++-- srcpkgs/firefox-esr/patches/fix-xpcom.patch | 11 --- srcpkgs/firefox-esr/patches/gettid-musl.patch | 11 +++ srcpkgs/firefox-esr/patches/mallinfo.patch | 40 +++++--- .../patches/ppc-no-static-sizes.patch | 19 ---- .../patches/remove-rustc-check.patch | 18 +++- .../patches/rust-unitialized-field.patch | 19 ---- srcpkgs/firefox-esr/patches/rust133.patch | 24 ----- ...nd-restore-non-volatile-x28-on-arm64.patch | 64 ------------ ...-clobbering-it-in-the-regex-compiler.patch | 97 ------------------- srcpkgs/firefox-esr/patches/sndio.patch | 12 +-- srcpkgs/firefox-esr/patches/yuv-be.patch | 48 +++++++++ srcpkgs/firefox-esr/template | 8 +- 22 files changed, 187 insertions(+), 345 deletions(-) create mode 100644 srcpkgs/firefox-esr/patches/disable-image-format-warning.patch create mode 100644 srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch delete mode 100644 srcpkgs/firefox-esr/patches/fix-musl.patch create mode 100644 srcpkgs/firefox-esr/patches/fix-wasm-arm.patch delete mode 100644 srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch delete mode 100644 srcpkgs/firefox-esr/patches/fix-xpcom.patch create mode 100644 srcpkgs/firefox-esr/patches/gettid-musl.patch delete mode 100644 srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch delete mode 100644 srcpkgs/firefox-esr/patches/rust-unitialized-field.patch delete mode 100644 srcpkgs/firefox-esr/patches/rust133.patch delete mode 100644 srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch delete mode 100644 srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch create mode 100644 srcpkgs/firefox-esr/patches/yuv-be.patch diff --git a/srcpkgs/firefox-esr/files/mozconfig b/srcpkgs/firefox-esr/files/mozconfig index 5b3c6e46d6f..0798fdd40ef 100644 --- a/srcpkgs/firefox-esr/files/mozconfig +++ b/srcpkgs/firefox-esr/files/mozconfig @@ -1,11 +1,6 @@ ac_add_options --prefix=/usr ac_add_options --libdir=/usr/lib -ac_add_options --with-pthreads -# XXX build without system cairo see: -# - https://github.com/voidlinux/void-packages/issues/2308#issuecomment-135426813 -# - https://bugs.gentoo.org/show_bug.cgi?id=558150 -# ac_add_options --with-system-cairo ac_add_options --with-system-nspr ac_add_options --with-system-nss ac_add_options --with-system-bz2 @@ -39,7 +34,6 @@ ac_add_options --disable-install-strip ac_add_options --disable-strip ac_add_options --disable-profiling ac_add_options --enable-optimize="$CFLAGS" -ac_add_options --enable-pie ac_add_options --enable-official-branding ac_add_options --enable-application=browser diff --git a/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch new file mode 100644 index 00000000000..bd56e6bc37c --- /dev/null +++ b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch @@ -0,0 +1,15 @@ +Imported from Adélie. Firefox is prone to this warning on BE and +it leads to huge .xsession-errors, and the warning is not very +important or meaningful, so just disable it. + +--- gfx/2d/HelpersCairo.h ++++ gfx/2d/HelpersCairo.h +@@ -147,7 +147,7 @@ + case SurfaceFormat::R5G6B5_UINT16: + return CAIRO_FORMAT_RGB16_565; + default: +- gfxCriticalError() << "Unknown image format " << (int)format; ++ //gfxCriticalError() << "Unknown image format " << (int)format; + return CAIRO_FORMAT_ARGB32; + } + } diff --git a/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch new file mode 100644 index 00000000000..6e0c5875da3 --- /dev/null +++ b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch @@ -0,0 +1,11 @@ +--- media/libopus/silk/arm/arm_silk_map.c.orig 2019-03-19 20:55:01.249609964 +0100 ++++ media/libopus/silk/arm/arm_silk_map.c 2019-03-19 20:55:25.769400255 +0100 +@@ -28,7 +28,7 @@ + # include "config.h" + #endif + +-#include "main_FIX.h" ++#include "../fixed/main_FIX.h" + #include "NSQ.h" + #include "SigProc_FIX.h" + diff --git a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch index 5345a3cd3df..6df609bbf16 100644 --- a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch +++ b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch @@ -9,12 +9,3 @@ ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \ defined(HAVE__UNWIND_BACKTRACE))) #define MOZ_STACKWALK_SUPPORTS_LINUX 1 -@@ -911,7 +911,7 @@ - } - - // {x86, ppc} x {Linux, Mac} stackwalking code. --#if ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \ -+#if defined(__GLIBC__) && ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \ - (MOZ_STACKWALK_SUPPORTS_MACOSX || MOZ_STACKWALK_SUPPORTS_LINUX)) - - MFBT_API bool diff --git a/srcpkgs/firefox-esr/patches/fix-musl.patch b/srcpkgs/firefox-esr/patches/fix-musl.patch deleted file mode 100644 index c32921d39e1..00000000000 --- a/srcpkgs/firefox-esr/patches/fix-musl.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- tools/profiler/core/platform.h.orig -+++ tools/profiler/core/platform.h -@@ -56,7 +56,7 @@ - - // We need a definition of gettid(), but glibc doesn't provide a - // wrapper for it. --#if defined(__GLIBC__) -+#if defined(__linux__) - #include - #include - static inline pid_t gettid() diff --git a/srcpkgs/firefox-esr/patches/fix-toolkit.patch b/srcpkgs/firefox-esr/patches/fix-toolkit.patch index ce4d7d01f82..86e8ef47855 100644 --- a/srcpkgs/firefox-esr/patches/fix-toolkit.patch +++ b/srcpkgs/firefox-esr/patches/fix-toolkit.patch @@ -47,18 +47,28 @@ #include #endif +--- toolkit.orig/mozapps/update/common/updatedefines.h 2019-01-29 11:34:36.416804577 +0100 ++++ toolkit/mozapps/update/common/updatedefines.h 2019-01-29 11:34:59.193583777 +0100 +@@ -102,7 +102,7 @@ + # ifdef SOLARIS + # include +-# else ++# elif !(defined(__linux__)) || defined(__GLIBC__) + # include + # endif + # include --- toolkit.orig/mozapps/update/updater/updater.cpp 2014-03-15 05:19:37.000000000 +0000 +++ toolkit/mozapps/update/updater/updater.cpp 2014-04-17 10:24:33.796765327 +0000 -@@ -3432,6 +3432,7 @@ - int add_dir_entries(const NS_tchar *dirpath, ActionList *list) - { +@@ -3978,6 +3978,7 @@ + + int add_dir_entries(const NS_tchar* dirpath, ActionList* list) { int rv = OK; +#if !defined(__linux__) || defined(__GLIBC__) - FTS *ftsdir; - FTSENT *ftsdirEntry; - NS_tchar searchpath[MAXPATHLEN]; -@@ -3534,6 +3535,7 @@ + FTS* ftsdir; + FTSENT* ftsdirEntry; + mozilla::UniquePtr searchpath(get_full_path(dirpath)); +@@ -4085,6 +4086,7 @@ } fts_close(ftsdir); @@ -66,14 +76,3 @@ return rv; } ---- toolkit/mozapps/update/common/updatedefines.h 2019-01-24 18:31:42.000000000 +0100 -+++ - 2019-01-31 11:15:53.946747750 +0100 -@@ -100,7 +100,7 @@ - - #ifdef SOLARIS - #include --#else -+#elif !defined(__linux__) || defined(__GLIBC__) - #include - #endif - #include diff --git a/srcpkgs/firefox-esr/patches/fix-tools.patch b/srcpkgs/firefox-esr/patches/fix-tools.patch index 1e2fc4f7d39..0ed043fb5b5 100644 --- a/srcpkgs/firefox-esr/patches/fix-tools.patch +++ b/srcpkgs/firefox-esr/patches/fix-tools.patch @@ -1,33 +1,24 @@ ---- tools/profiler/core/platform.h -+++ tools/profiler/core/platform.h -@@ -29,6 +29,8 @@ - #ifndef TOOLS_PLATFORM_H_ - #define TOOLS_PLATFORM_H_ - -+#include -+ - #include - #include - #include "MainThreadUtils.h" ---- tools/profiler/lul/LulElf.cpp 2019-01-24 18:31:42.000000000 +0100 -+++ - 2019-01-31 11:19:53.198257189 +0100 -@@ -460,9 +460,9 @@ +--- tools/profiler/lul/LulElf.cpp.orig 2019-01-29 12:05:34.223834130 +0100 ++++ tools/profiler/lul/LulElf.cpp 2019-01-29 12:08:02.480400845 +0100 +@@ -469,10 +469,10 @@ + // Return the non-directory portion of FILENAME: the portion after the // last slash, or the whole filename if there are no slashes. string BaseFileName(const string& filename) { - // Lots of copies! basename's behavior is less than ideal. +- // Lots of copies! basename's behavior is less than ideal. - char* c_filename = strdup(filename.c_str()); - string base = basename(c_filename); - free(c_filename); -+ const char* c_filename = filename.c_str(); ++ // basename's behavior is less than ideal so avoid it ++ const char *c_filename = filename.c_str(); + const char *p = strrchr(c_filename, '/'); + string base = p ? p+1 : c_filename; return base; } ---- tools/profiler/core/platform-linux-android.cpp 2019-01-24 18:31:43.000000000 +0100 -+++ - 2019-01-31 11:23:07.911772317 +0100 +--- tools/profiler/core/platform-linux-android.cpp.orig 2019-01-29 12:09:40.980448579 +0100 ++++ tools/profiler/core/platform-linux-android.cpp 2019-01-29 12:11:09.689590967 +0100 @@ -253,7 +253,11 @@ - + // Request profiling signals. struct sigaction sa; +#if defined(GP_ARCH_arm) @@ -38,7 +29,7 @@ sigemptyset(&sa.sa_mask); sa.sa_flags = SA_RESTART | SA_SIGINFO; if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) { -@@ -497,8 +497,10 @@ +@@ -497,8 +501,10 @@ ucontext_t sSyncUContext; void Registers::SyncPopulate() { diff --git a/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch new file mode 100644 index 00000000000..e6ad61c9f44 --- /dev/null +++ b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch @@ -0,0 +1,15 @@ +--- js/src/wasm/WasmSignalHandlers.cpp ++++ js/src/wasm/WasmSignalHandlers.cpp +@@ -243,9 +243,9 @@ + // If you run into compile problems on a tier-3 platform, you can disable the + // emulation here. + +-#if defined(__linux__) && defined(__arm__) +-# define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS +-#endif ++// #if defined(__linux__) && defined(__arm__) ++// # define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS ++// #endif + + #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS + # include diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch deleted file mode 100644 index 222be5f9e21..00000000000 --- a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features.cc 2019-01-24 18:31:10.000000000 +0100 -+++ - 2019-02-01 00:13:35.690776711 +0100 -@@ -67,7 +67,7 @@ - return 0; - } - --#if !defined(ANDROID) -+#if !defined(ANDROID) && !defined(__linux__) - #ifdef WEBRTC_ARCH_ARM_V7 - uint64_t WebRtc_GetCPUFeaturesARM(void) { - return kCPUFeatureARMv7 diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch index 3ff2570b12b..cf895dd8448 100644 --- a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch +++ b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch @@ -1,18 +1,15 @@ ---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c 2019-02-01 00:49:18.472382771 +0100 -+++ - 2019-02-01 00:50:25.928007236 +0100 -@@ -11,7 +11,10 @@ - #include - #include - #include +--- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig 2019-01-29 11:20:52.298793223 +0100 ++++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c 2019-01-29 11:21:48.250250850 +0100 +@@ -14,7 +14,7 @@ + #ifndef __GLIBC_PREREQ + #define __GLIBC_PREREQ(a, b) 0 + #endif -#if __GLIBC_PREREQ(2, 16) -+#ifndef __GLIBC_PREREQ -+#define __GLIBC_PREREQ(a, b) 0 -+#endif +#if !__GLIBC__ || __GLIBC_PREREQ(2, 16) #include #else #include -@@ -29,7 +32,7 @@ +@@ -32,7 +32,7 @@ int architecture = 0; unsigned long hwcap = 0; const char* platform = NULL; diff --git a/srcpkgs/firefox-esr/patches/fix-xpcom.patch b/srcpkgs/firefox-esr/patches/fix-xpcom.patch deleted file mode 100644 index 38dd582d96b..00000000000 --- a/srcpkgs/firefox-esr/patches/fix-xpcom.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- xpcom/base/nsMemoryReporterManager.cpp.orig 2015-12-16 11:53:14.211144456 +0100 -+++ xpcom/base/nsMemoryReporterManager.cpp 2015-12-16 11:55:26.859476381 +0100 -@@ -46,7 +46,7 @@ using namespace mozilla; - # include "mozmemory.h" - #endif // MOZ_MEMORY - --#if defined(XP_LINUX) -+#if defined(XP_LINUX) && defined(__GLIBC__) - - #include - #include diff --git a/srcpkgs/firefox-esr/patches/gettid-musl.patch b/srcpkgs/firefox-esr/patches/gettid-musl.patch new file mode 100644 index 00000000000..c1cb99bf651 --- /dev/null +++ b/srcpkgs/firefox-esr/patches/gettid-musl.patch @@ -0,0 +1,11 @@ +--- tools/profiler/core/platform-linux-android.cpp.orig 2019-07-09 22:58:30.039475686 +0200 ++++ tools/profiler/core/platform-linux-android.cpp 2019-07-09 22:58:39.331437677 +0200 +@@ -73,7 +73,7 @@ + + int profiler_current_thread_id() { + // glibc doesn't provide a wrapper for gettid(). +-#if defined(__GLIBC__) ++#if defined(__linux__) + return static_cast(static_cast(syscall(SYS_gettid))); + #else + return static_cast(gettid()); diff --git a/srcpkgs/firefox-esr/patches/mallinfo.patch b/srcpkgs/firefox-esr/patches/mallinfo.patch index c9a38d45bdf..afea86c0a2c 100644 --- a/srcpkgs/firefox-esr/patches/mallinfo.patch +++ b/srcpkgs/firefox-esr/patches/mallinfo.patch @@ -1,18 +1,34 @@ ---- xpcom/base/nsMemoryReporterManager.cpp -+++ xpcom/base/nsMemoryReporterManager.cpp -@@ -153,6 +153,7 @@ ResidentUniqueDistinguishedAmount(int64_t* aN) +--- xpcom/base/nsMemoryReporterManager.cpp.orig 2019-03-19 17:12:20.844810044 +0100 ++++ xpcom/base/nsMemoryReporterManager.cpp 2019-03-19 17:13:32.505133615 +0100 +@@ -123,6 +123,7 @@ return GetProcSelfSmapsPrivate(aN); } +#ifdef __GLIBC__ - #define HAVE_SYSTEM_HEAP_REPORTER 1 - nsresult - SystemHeapSize(int64_t* aSizeOut) -@@ -172,6 +173,7 @@ SystemHeapSize(int64_t* aSizeOut) - *aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks); - return NS_OK; + # ifdef HAVE_MALLINFO + # define HAVE_SYSTEM_HEAP_REPORTER 1 + static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) { +@@ -142,6 +143,7 @@ + return NS_OK; } -+#endif + # endif ++#endif // __GLIBC__ - #elif defined(__DragonFly__) || defined(__FreeBSD__) \ - || defined(__NetBSD__) || defined(__OpenBSD__) \ + #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \ + defined(__OpenBSD__) || defined(__FreeBSD_kernel__) +@@ -642,6 +644,7 @@ + return NS_OK; + } + ++#ifdef __GLIBC__ + # define HAVE_SYSTEM_HEAP_REPORTER 1 + // Windows can have multiple separate heaps. During testing there were multiple + // heaps present but the non-default ones had sizes no more than a few 10s of +@@ -698,6 +701,7 @@ + *aSizeOut = heapsSize; + return NS_OK; + } ++#endif // __GLIBC__ + + struct SegmentKind { + DWORD mState; diff --git a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch b/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch deleted file mode 100644 index 3f77023bb5f..00000000000 --- a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch +++ /dev/null @@ -1,19 +0,0 @@ -# HG changeset patch -# Parent b735e618c2a860972197942f6680c941e3c9a67f -# User Gustavo Luiz Duarte -Bug 997353 - Do not use compile-time page size for PowerPC. - -The PowerPC architecture allows various memory page sizes, making it impossible -to predict the runtime page size. - ---- memory/build/mozjemalloc.cpp -+++ memory/build/mozjemalloc.cpp -@@ -369,7 +369,7 @@ - // Debug builds are opted out too, for test coverage. - #ifndef MOZ_DEBUG - #if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && \ -- !defined(__aarch64__) -+ !defined(__aarch64__) && !defined(__powerpc__) && !defined(__powerpc64__) - #define MALLOC_STATIC_PAGESIZE 1 - #endif - #endif diff --git a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch index f6bebc8aab1..84077f4fc88 100644 --- a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch +++ b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch @@ -1,8 +1,19 @@ Mozilla rustc check does not support crossbuild: let's remove it +Remove calls to unwrap_rustup, they fail if rustup isn't present ---- build/moz.configure/rust.configure 2018-10-01 16:28:31.000000000 +0200 -+++ build/moz.configure/rust.configure 2018-10-20 14:21:35.510000000 +0200 -@@ -204,26 +204,6 @@ +--- build/moz.configure/rust.configure 2019-07-06 03:48:30.000000000 +0200 ++++ build/moz.configure/rust.configure 2019-07-09 22:35:23.326851798 +0200 +@@ -79,9 +79,6 @@ + + return unwrap + +-rustc = unwrap_rustup(rustc, 'rustc') +-cargo = unwrap_rustup(cargo, 'cargo') +- + + set_config('CARGO', cargo) + set_config('RUSTC', rustc) +@@ -294,26 +291,6 @@ os.write(in_fd, source) os.close(in_fd) @@ -29,4 +40,3 @@ Mozilla rustc check does not support crossbuild: let's remove it finally: os.remove(in_path) os.remove(out_path) - diff --git a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch b/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch deleted file mode 100644 index 67ef3a02ab8..00000000000 --- a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- ./media/audioipc/audioipc/src/cmsg.rs.orig 2018-05-09 22:19:14.748631939 +0200 -+++ ./media/audioipc/audioipc/src/cmsg.rs 2018-05-09 22:19:22.961620862 +0200 -@@ -106,11 +106,11 @@ impl ControlMsgBuilder { - return Err(Error::NoSpace); - } - -- let cmsghdr = cmsghdr { -- cmsg_len: cmsg_len as _, -- cmsg_level: level, -- cmsg_type: kind, -- }; -+ use std::mem; -+ let mut cmsghdr: cmsghdr = unsafe { mem::zeroed() }; -+ cmsghdr.cmsg_len = cmsg_len as _; -+ cmsghdr.cmsg_level = level; -+ cmsghdr.cmsg_type = kind; - - let cmsghdr = unsafe { - slice::from_raw_parts(&cmsghdr as *const _ as *const _, mem::size_of::()) diff --git a/srcpkgs/firefox-esr/patches/rust133.patch b/srcpkgs/firefox-esr/patches/rust133.patch deleted file mode 100644 index ebdcac7e3a3..00000000000 --- a/srcpkgs/firefox-esr/patches/rust133.patch +++ /dev/null @@ -1,24 +0,0 @@ -This fixes build errors under recent Rust. - ---- servo/components/style_traits/lib.rs -+++ servo/components/style_traits/lib.rs -@@ -9,7 +9,7 @@ - #![crate_name = "style_traits"] - #![crate_type = "rlib"] - --#![deny(unsafe_code, missing_docs)] -+#![deny(unsafe_code)] - - extern crate app_units; - #[macro_use] extern crate bitflags; ---- servo/components/style/lib.rs -+++ servo/components/style/lib.rs -@@ -23,8 +23,6 @@ - //! [cssparser]: ../cssparser/index.html - //! [selectors]: ../selectors/index.html - --#![deny(missing_docs)] -- - extern crate app_units; - extern crate arrayvec; - extern crate atomic_refcell; diff --git a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch b/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch deleted file mode 100644 index fa303f6d1e9..00000000000 --- a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch +++ /dev/null @@ -1,64 +0,0 @@ -# HG changeset patch -# User Lars T Hansen -# Date 1519822672 -3600 -# Node ID 800abe66894d6b07b24bccecbf6a65e2261076f6 -# Parent 223c97459e96183eb616aed39147207bdb953ba8 -Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor. r=sstangl - -Origin: upstream -Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/800abe66894d ---- - js/src/vm/UnboxedObject.cpp | 30 ++++++++++++++++++++++++++---- - 1 file changed, 26 insertions(+), 4 deletions(-) - -diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp -index 35ca20d7405f..1c20a1093d13 100644 ---- js/src/vm/UnboxedObject.cpp -+++ js/src/vm/UnboxedObject.cpp -@@ -86,9 +86,16 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1; - #endif - - #ifdef JS_CODEGEN_ARM64 -- // ARM64 communicates stack address via sp, but uses a pseudo-sp for -- // addressing. -- masm.initStackPtr(); -+ // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for -+ // addressing. The register we use for PSP may however also be used by -+ // calling code, and it is nonvolatile, so save it. Do this as a special -+ // case first because the generic save/restore code needs the PSP to be -+ // initialized already. -+ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64())); -+ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex)); -+ -+ // Initialize the PSP from the SP. -+ masm.initStackPtr(); - #endif - - MOZ_ASSERT(propertiesReg.volatile_()); -@@ -239,7 +246,22 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1; - if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg); - masm.PopRegsInMask(savedNonVolatileRegisters); - -- masm.abiret(); -+#ifdef JS_CODEGEN_ARM64 -+ // Now restore the value that was in the PSP register on entry, and return. -+ -+ // Obtain the correct SP from the PSP. -+ masm.Mov(sp, PseudoStackPointer64); -+ -+ // Restore the saved value of the PSP register, this value is whatever the -+ // caller had saved in it, not any actual SP value, and it must not be -+ // overwritten subsequently. -+ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex)); -+ -+ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong. -+ masm.Ret(vixl::lr); -+#else -+ masm.abiret(); -+#endif - - masm.bind(&failureStoreOther); - --- -2.21.0 - diff --git a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch b/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch deleted file mode 100644 index aa2dcc6ba8d..00000000000 --- a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch +++ /dev/null @@ -1,97 +0,0 @@ -# HG changeset patch -# User Lars T Hansen -# Date 1521449886 -3600 -# Node ID 903a79a1efff18fc7cc50db09a3fe5d768adc9a8 -# Parent 4d2955a9ca7e30ca4c3af9c214ccc77fb2fe7fb8 -Bug 1445907 - Save x28 before clobbering it in the regex compiler. r=sstangl - -Origin: upstream -Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/903a79a1efff ---- -diff --git a/js/src/irregexp/NativeRegExpMacroAssembler.cpp b/js/src/irregexp/NativeRegExpMacroAssembler.cpp ---- js/src/irregexp/NativeRegExpMacroAssembler.cpp -+++ js/src/irregexp/NativeRegExpMacroAssembler.cpp -@@ -118,17 +118,25 @@ NativeRegExpMacroAssembler::GenerateCode - - Label return_temp0; - - // Finalize code - write the entry point code now we know how many - // registers we need. - masm.bind(&entry_label_); - - #ifdef JS_CODEGEN_ARM64 -- // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing. -+ // ARM64 communicates stack address via SP, but uses a pseudo-sp (PSP) for -+ // addressing. The register we use for PSP may however also be used by -+ // calling code, and it is nonvolatile, so save it. Do this as a special -+ // case first because the generic save/restore code needs the PSP to be -+ // initialized already. -+ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64())); -+ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex)); -+ -+ // Initialize the PSP from the SP. - masm.initStackPtr(); - #endif - - // Push non-volatile registers which might be modified by jitcode. - size_t pushedNonVolatileRegisters = 0; - for (GeneralRegisterForwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter) { - masm.Push(*iter); - pushedNonVolatileRegisters++; -@@ -416,17 +424,32 @@ NativeRegExpMacroAssembler::GenerateCode - masm.pop(temp0); - masm.movePtr(temp0, StackPointer); - #endif - - // Restore non-volatile registers which were saved on entry. - for (GeneralRegisterBackwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter) - masm.Pop(*iter); - -+#ifdef JS_CODEGEN_ARM64 -+ // Now restore the value that was in the PSP register on entry, and return. -+ -+ // Obtain the correct SP from the PSP. -+ masm.Mov(sp, PseudoStackPointer64); -+ -+ // Restore the saved value of the PSP register, this value is whatever the -+ // caller had saved in it, not any actual SP value, and it must not be -+ // overwritten subsequently. -+ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex)); -+ -+ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong. -+ masm.Ret(vixl::lr); -+#else - masm.abiret(); -+#endif - - // Backtrack code (branch target for conditional backtracks). - if (backtrack_label_.used()) { - masm.bind(&backtrack_label_); - Backtrack(); - } - - // Backtrack stack overflow code. -diff --git a/js/src/jit-test/tests/regexp/bug1445907.js b/js/src/jit-test/tests/regexp/bug1445907.js -new file mode 100644 ---- /dev/null -+++ js/src/jit-test/tests/regexp/bug1445907.js -@@ -0,0 +1,15 @@ -+// On ARM64, we failed to save x28 properly when generating code for the regexp -+// matcher. -+// -+// There's wasm and Debugger code here because the combination forces the use of -+// x28 and exposes the bug when running on the simulator. -+ -+if (!wasmIsSupported()) -+ quit(); -+ -+var g = newGlobal(''); -+var dbg = new Debugger(g); -+g.eval(`var m = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func (export "test")))')))`); -+var re = /./; -+dbg.onEnterFrame = function(frame) { re.exec("x") }; -+result = g.eval("m.exports.test()"); - --- -2.21.0 - diff --git a/srcpkgs/firefox-esr/patches/sndio.patch b/srcpkgs/firefox-esr/patches/sndio.patch index 097b313e90b..6c72284c19b 100644 --- a/srcpkgs/firefox-esr/patches/sndio.patch +++ b/srcpkgs/firefox-esr/patches/sndio.patch @@ -51,14 +51,14 @@ ] --- build/moz.configure/old.configure.orig +++ build/moz.configure/old.configure -@@ -159,6 +159,7 @@ - '--enable-accessibility', - '--enable-address-sanitizer', - '--enable-alsa', +@@ -169,6 +169,7 @@ + @old_configure_options( + '--cache-file', + '--datadir', + '--enable-sndio', - '--enable-bundled-fonts', - '--enable-clang-plugin', '--enable-content-sandbox', + '--enable-cookies', + '--enable-cpp-rtti', --- security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp.orig +++ security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp @@ -349,6 +349,21 @@ diff --git a/srcpkgs/firefox-esr/patches/yuv-be.patch b/srcpkgs/firefox-esr/patches/yuv-be.patch new file mode 100644 index 00000000000..1c26f2ecced --- /dev/null +++ b/srcpkgs/firefox-esr/patches/yuv-be.patch @@ -0,0 +1,48 @@ +# HG changeset patch +# User A. Wilcox +# Date 1543674229 0 +# Sat Dec 01 14:23:49 2018 +0000 +# Node ID 0309ff19e46b126c527e633518d7de8570442114 +# Parent 53107afbc21ec78e7ac46d37af212505f2032d5d +Bug 1511604 - Swizzle YCbCr->RGB data on big-endian machines + +diff -r 53107afbc21e -r 0309ff19e46b gfx/ycbcr/YCbCrUtils.cpp +--- gfx/ycbcr/YCbCrUtils.cpp Wed Nov 07 04:50:21 2018 +0000 ++++ gfx/ycbcr/YCbCrUtils.cpp Sat Dec 01 14:23:49 2018 +0000 +@@ -3,7 +3,9 @@ + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + ++#include "mozilla/EndianUtils.h" + #include "gfx2DGlue.h" ++#include "mozilla/gfx/Swizzle.h" + + #include "YCbCrUtils.h" + #include "yuv_convert.h" +@@ -236,6 +238,13 @@ + yuvtype, + srcData.mYUVColorSpace); + } ++#if MOZ_BIG_ENDIAN ++ // libyuv makes endian-correct result, which needs to be swapped to BGRX ++ if (aDestFormat != SurfaceFormat::R5G6B5_UINT16) ++ gfx::SwizzleData(aDestBuffer, aStride, gfx::SurfaceFormat::X8R8G8B8, ++ aDestBuffer, aStride, gfx::SurfaceFormat::B8G8R8X8, ++ srcData.mPicSize); ++#endif + } + + void +@@ -257,6 +266,12 @@ + aSrcStrideYA, + aSrcStrideUV, + aDstStrideARGB); ++#if MOZ_BIG_ENDIAN ++ // libyuv makes endian-correct result, which needs to be swapped to BGRA ++ gfx::SwizzleData(aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::A8R8G8B8, ++ aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::B8G8R8A8, ++ IntSize(aWidth, aHeight)); ++#endif + } + + } // namespace gfx diff --git a/srcpkgs/firefox-esr/template b/srcpkgs/firefox-esr/template index 05a0a521341..def96276d3b 100644 --- a/srcpkgs/firefox-esr/template +++ b/srcpkgs/firefox-esr/template @@ -3,8 +3,8 @@ # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-esr-i18n". # pkgname=firefox-esr -version=60.8.0 -revision=2 +version=68.1.0 +revision=1 build_helper="rust" wrksrc="firefox-${version}" short_desc="Mozilla Firefox web browser - Extended Support Release (ESR)" @@ -12,11 +12,11 @@ maintainer="Eivind Uggedal " license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later" homepage="https://www.mozilla.org/firefox/organizations/" distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz" -checksum=c13387d944e635aebd5f1d2ce9ab77cb706a74043a240cbb7b70654519487fbe +checksum=f56f5fa5a4744be0b9acf259cb991254d708a50b9a0a12d1d846ffa5a6c409ac lib32disabled=yes hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm - cargo llvm clang rust cbindgen" + python3 cargo llvm clang rust cbindgen nasm nodejs" makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel pixman-devel sqlite-devel libevent-devel libnotify-devel libvpx5-devel libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std From d44bf5453a84e084c37b1ed98803dffa36ce6758 Mon Sep 17 00:00:00 2001 From: Doan Tran Cong Danh Date: Fri, 6 Sep 2019 08:06:37 +0700 Subject: [PATCH 2/3] firefox-esr-i18n: update to 68.1.0. [skip ci] --- ...irefox-esr-i18n-as => firefox-esr-i18n-bn} | 0 ...-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} | 0 ...fox-esr-i18n-bn-IN => firefox-esr-i18n-ia} | 0 ...-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} | 0 ...refox-esr-i18n-mai => firefox-esr-i18n-oc} | 0 srcpkgs/firefox-esr-i18n-or | 1 - ...irefox-esr-i18n-ml => firefox-esr-i18n-ur} | 0 srcpkgs/firefox-esr-i18n/template | 202 +++++++++--------- 8 files changed, 100 insertions(+), 103 deletions(-) rename srcpkgs/{firefox-esr-i18n-as => firefox-esr-i18n-bn} (100%) rename srcpkgs/{firefox-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} (100%) rename srcpkgs/{firefox-esr-i18n-bn-IN => firefox-esr-i18n-ia} (100%) rename srcpkgs/{firefox-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} (100%) rename srcpkgs/{firefox-esr-i18n-mai => firefox-esr-i18n-oc} (100%) delete mode 120000 srcpkgs/firefox-esr-i18n-or rename srcpkgs/{firefox-esr-i18n-ml => firefox-esr-i18n-ur} (100%) diff --git a/srcpkgs/firefox-esr-i18n-as b/srcpkgs/firefox-esr-i18n-bn similarity index 100% rename from srcpkgs/firefox-esr-i18n-as rename to srcpkgs/firefox-esr-i18n-bn diff --git a/srcpkgs/firefox-esr-i18n-bn-BD b/srcpkgs/firefox-esr-i18n-en-CA similarity index 100% rename from srcpkgs/firefox-esr-i18n-bn-BD rename to srcpkgs/firefox-esr-i18n-en-CA diff --git a/srcpkgs/firefox-esr-i18n-bn-IN b/srcpkgs/firefox-esr-i18n-ia similarity index 100% rename from srcpkgs/firefox-esr-i18n-bn-IN rename to srcpkgs/firefox-esr-i18n-ia diff --git a/srcpkgs/firefox-esr-i18n-en-ZA b/srcpkgs/firefox-esr-i18n-ne-NP similarity index 100% rename from srcpkgs/firefox-esr-i18n-en-ZA rename to srcpkgs/firefox-esr-i18n-ne-NP diff --git a/srcpkgs/firefox-esr-i18n-mai b/srcpkgs/firefox-esr-i18n-oc similarity index 100% rename from srcpkgs/firefox-esr-i18n-mai rename to srcpkgs/firefox-esr-i18n-oc diff --git a/srcpkgs/firefox-esr-i18n-or b/srcpkgs/firefox-esr-i18n-or deleted file mode 120000 index 0707c37f205..00000000000 --- a/srcpkgs/firefox-esr-i18n-or +++ /dev/null @@ -1 +0,0 @@ -firefox-esr-i18n \ No newline at end of file diff --git a/srcpkgs/firefox-esr-i18n-ml b/srcpkgs/firefox-esr-i18n-ur similarity index 100% rename from srcpkgs/firefox-esr-i18n-ml rename to srcpkgs/firefox-esr-i18n-ur diff --git a/srcpkgs/firefox-esr-i18n/template b/srcpkgs/firefox-esr-i18n/template index 8c43a8ace7c..b4e17fb16f0 100644 --- a/srcpkgs/firefox-esr-i18n/template +++ b/srcpkgs/firefox-esr-i18n/template @@ -1,6 +1,6 @@ # Template file for 'firefox-esr-i18n' pkgname=firefox-esr-i18n -version=60.8.0 +version=68.1.0 revision=1 build_style=meta homepage="https://www.mozilla.org/firefox/" @@ -19,13 +19,11 @@ _languages=( 'af "Afrikaans"' 'an "Aragonese"' 'ar "Arabic"' - 'as "Assamese"' 'ast "Asturian"' 'az "Azerbaijani"' 'be "Belarusian"' 'bg "Bulgarian"' - 'bn-BD "Bengali (Bangladesh)"' - 'bn-IN "Bengali (India)"' + 'bn "Bengali"' 'br "Breton"' 'bs "Bosnian"' 'ca "Catalan"' @@ -36,9 +34,9 @@ _languages=( 'de "German"' 'dsb "Lower Sorbian"' 'el "Greek"' + 'en-CA "English (Canada)"' 'en-GB "English (British)"' 'en-US "English (US)"' - 'en-ZA "English (South African)"' 'eo "Esperanto"' 'es-AR "Spanish (Argentina)"' 'es-CL "Spanish (Chile)"' @@ -62,6 +60,7 @@ _languages=( 'hsb "Upper Sorbian"' 'hu "Hungarian"' 'hy-AM "Armenian"' + 'ia "Interlingua"' 'id "Indonesian"' 'is "Icelandic"' 'it "Italian"' @@ -75,16 +74,15 @@ _languages=( 'lij "Ligurian"' 'lt "Lithuanian"' 'lv "Latvian"' - 'mai "Maithili"' 'mk "Macedonian"' - 'ml "Malayalam"' 'mr "Marathi"' 'ms "Malay"' 'my "Burmese"' 'nb-NO "Norwegian (Bokmål)"' + 'ne-NP "Nepali"' 'nl "Dutch"' 'nn-NO "Norwegian (Nynorsk)"' - 'or "Oriya"' + 'oc "Occitan"' 'pa-IN "Punjabi"' 'pl "Polish"' 'pt-BR "Portuguese (Brazilian)"' @@ -104,6 +102,7 @@ _languages=( 'th "Thai"' 'tr "Turkish"' 'uk "Ukrainian"' + 'ur "Urdu"' 'uz "Uzbek"' 'vi "Vietnamese"' 'xh "Xhosa"' @@ -136,97 +135,96 @@ _pkgtmpl() { } } -checksum="ff8a0e5081e1bf6f1794ea47dab8f32f5b28580c423bccc149e16f4749e36c50 - eb86ab716a1d6a32bd102952f3ac13b7708ac9fdb947e72e0f66891f872c1cb0 - beb35664f371716cebd1a4a4c84b44129c381a1dc9a38dea19684fd5f15e407c - 25e8cdd8d22a1073143e2c88e5d3c4d96b505edbe9c18bf29fb5fbf4c68db620 - 7a05659ee866abc198bd55169b189f8e1f4daa1259b28bef78918ee0e84ed669 - 610f0c658af4d93eb7d70a459317323845a641b229f1dd42c4ee66ee660067d9 - 021d5f86239831892335f8d4b434bff3e129b774588e8b49758b3ff97534b055 - b3d75d79148ef5000aaca5d6948e09dcc43673f9d51a91bd21c51eaee34a4bf0 - 6481896744f2a0e596f425de2590ab78e153463a8bd16fc9398bb0e6a2278f3c - a03b62fe0dba6a9aaf080505299d632dec7eb98d2973c42b53330ec25695d9c7 - db332375bf0224ac90a0aec2475c70d0262f52a0f856ef5d244ba7ab8d89bb90 - ff234f75fe294bf4278d7976a7c44815f5aa9e981e9742fb322f19726a38dcbc - 5f0d36853f12f5fc3d8a85874718bcef77103903cb732c370b4e301dffb38a51 - 6b336951b07e1dd63472027d7603439ee5384b3f6a814c7be34d0cdeac1bd4d0 - 21e196147819aab031a733a4ad78b4c67d77120cd8976e7aa0b364823a3beb01 - 4edbad866270ef310932149188d4e4b0d786abc22db3196430d9db9b9113e992 - 0acf0db94b5e56fd81c14a763e2b4dd32c10f21824464195e30adc7ed9e4c021 - 440ac13c8d241d537c7de382a10ca1da1716cc302dc200ac5039ac43efcfd8a6 - bb7fc4aeffeca0c89a2ba33a7c762f4764cd70334f74cfa5d4b51fc4449aabed - feebf56ff307f191ebd2af9990840db9e3e447c0cfbdea3219320b108838202a - 9ced74783c6e21ae934243b3558ba1ecbe2858b6cfe57a031389d4c91b4887dc - 958ff950724abf9c593685991246325ff6d04f73ea9c518dcefe24e289770c9e - d8f5ef61b8a2bbe021fef63d09cb8e83a848a8100331acecdd70c47cf0cf9d43 - db9f3432a6a364791e0c4c8e47516c60182a0640a8ef795e24b7fc2465c7a7b3 - 7558f05cc6319ef57cf54a176b41bb9ac6d4650de9099998d3d4ad83163d07cf - 8f8ef308c6c5d06f20feae2e4f6b29aa0db271f1a91f1d3ad097aa7a51948384 - 987c9758f4a71bd3e7602cfd977a611fe28d58ae28f324ba1325382958735aa7 - 1ac4c54b7ed0bc407711c589328d192b1b49a4b23417d294bd3608bbc5f40581 - 71d5f764c000ad31f252fa36a94d6a178b552c1a9e4815ae883e7c490ed4d401 - 74441cfbfdbd111ab87318598dd4a3c8aaa4c4db2b86a12bc6cf41fa05881ea8 - 43bffe371b4cb25f21bf767f618631a96b24e72a658a72759f4bb6a06bc5bf32 - 50fa12cc74afb9faca4ebb8ae47d2e22756f4cae70e3c8169fbf0f568dc64fc8 - 85e3332ce6656d8df3a492ed837192df3991aab1314c1c5ef25a67bf61360cbf - a3dadeaca0193cb249b087b165e1d6fbbd322cf06485a7cf1a35c090b4adeb31 - 55cbc207ea34d61519f48946c077cc9dfa17d24eed5310f58838af289ea0b60f - 31c6f72f72743a4b085eb699627a3917e92531066388343a40ffc6412277027a - 38f1b0d8091f864256464cec0e7f78f474020feb7c4748b84160c6e074088b60 - cf2c4efce1203eb8c8f8a984b90c61672cfe9a6d05da3cfecee52e12189301a0 - ca8e8da872f5053cfa15d8395d8f10a66794589833714538b0c67fd83c340466 - c15707031179223c545a4299306b3df107ded62b685363a5e3274e318b88f219 - c1699a128003f23ef5662919ed1b33c5d61caf914985e39853df29a1ba35828c - 3fb4a2283723b2ef3709c88baeb99e77bbba33c9e835c2dfedf28c6b2ecad2fa - 344b3b3149aa3b77f10f49b86a76c6ff0179043048093c541944058f620e8845 - b43880065a4a92aeff823e4913eabe953e88cafb9cd414b2f616475cd7af69af - 94b414e2f89f030c131742de0d9ba48f13b16b40e06dd568c10cea417b57b5ba - 177ca8c3883d9c5d7e4a84b79dbc7b64e430fabaa247b0cee78f9ef65e2b5aa0 - a2a071c6e3604287a99e78042b34d02d4d91b27d3b23b9ea90945da7d9456012 - ae57f94246c078f8e2d4b8c297b281115bb008a811bf2a783278deb916007da4 - a222763e7d2d5eda8a15869f85c19765111841a2ccf4d18993eb83f20bdf4933 - 7771989dad60a20756517a6f696d939039cf5f10aa47d271e2ff5c465bd7b4c0 - 389b3c1b09e744c8fe843e3784088ea72214571b975ea9d69aaeb7c4264a990b - d5fea97921089f0b4a6a8667ddf19a430eca78223118818480a202e563088943 - 617b9daf4d828bc66fc8061601adc9c40b25f1338c5f527d9fbf83dfa3e8770b - 87d2ec6cadb2a61909888af5cc80a4dacd64493d82d0282679ba3c597918fb07 - 1afe05f69af9bc0b0e37d1c6d0942073349b173433a41a83b3a732e6fa026511 - 68b80d99dc3ff2c2828622cdf7d21c32e6f00904a239eef3f5eedb8fb8476386 - 853ec1ad7ef319a60586902c5b3dec73e0800c7af2d94e44b549d4f03f114fd7 - d0c9e3dfd07994ebf26d4ad98ef997cb62c90c07f9d0e70c8b2f7771f39b1b95 - f5b14095e891af078ef256460a41b19e00fbcd81eba66e0331af8bc096288963 - bec28861d16cf418fa06d650765c3be8fbc02b69b41b079d3907bb01c3d8096a - b042d80a54dbc7cd0fdf24ba3599404632d84635ae73204235dbf66ef7a35a26 - 7b791bfc3bd843a291d74d86f88c0a5a31af13d9da9f135841fd7859c442f733 - f12eb8be3a7ef93146c161f6ba02b9d9b892b792d0c190adb92398802f5365fe - 49addce322b6020d69b65f72ee4e82a140cd0e712c647127f6fac5b66e6f51b5 - acdc9ae4ae7397ade4c4053dc3b1f22ef42cc844bf853e5e846d1f6b0c5d5cab - 02ac07e226734f1f693283784816b3c96a48b4e592c676673901104c5dcc72b2 - b102cf97790415b804182743426e8eb1304675fb4bf360e64ae9055cce87b2f1 - f8988dfc783c4b39d8a3a44e1000c6376bc211ab6297a49eddf5194b71fdfbde - 58cad897f3bd51b9a1fcb7d4e4d3fc6bac47e5b2d4c6c19096732556eaec1314 - 23af8e26632da7c5d791a8891295eb2a83cde54390d9cd17692525f6e32ff6ed - 0d38ca007291146731793d1a2c7e07bad2d2ed82668dfbd5be14daacf7abdce7 - a5957711b3fd9665dd2fed5fdbbb0a2fcbce54ad43ccd6800ddf7ccf5be731e5 - fcc2580a8ab3e95d23af7ee373a9bfcdce52e2a5ce59bb59d1ba1dca75772239 - bc3a8480ff73c752cc1cbfa80c327b155b194553c3568534b9d20f7e2176df1e - 196abc6109092f326b387f5cffad880e5b6a857203127cf1f76622ca5a823ad2 - 002109cec6f2e40fb4ffc07b04c72a8debd128357925e8d51e5a84614004a086 - 83be2c2c9f9c93c0c31c5d30c0e6fdef3df2381f7c62c64a8313066f64c98b0f - c7c83b2c405c432c3de1c187cfc800025502b1931e07ff1108648e77279441ab - 8156b74896fd7b69fc306f90f1fd5291316d3c9b4c5ab4df620cab8d782b466e - 27ff153a51f800ea9620042acc47aad6b2392c3551a4be30e982652ef89fcdf2 - abbbd74fb4e2ce5cfb254837c8383c9cca637bbdfd05d403526a50b08806c050 - 0c6ada2d7bf26be43d4f3fa8f37581a1f1a3113c3399ebd328736802dbe7623f - b8c50654545a923e7ad7ef43bb1f2ea56b845b3443ffa0410b9bb7a6be9b8b91 - 4e49460bd3cd763e9527c771c4030237700e2eb73a359fefce3bd2146db7d56e - 82bab7b006ab019d2bf2d6b3ed9aa85796f8dc1f827ed7350b0286dbd19bbc78 - 9b6adcd828ed3c2bb4950df6a2634bc943768b3d852e2e258e52c7e2da7a5ca7 - ccd0aa23ba2662e766e2adcab201076dfdcfc5cf288e4c4bbeff6d0d3c451abb - f3709e35f5d4d317733f943aec9e977fd83acc1eaa9a35cf149dbf05e345146c - 282d60e14be013a29ba09611f7ebe37d1fa5fe6dd8e441a1f10270d4e10323d6 - 742960a8b13cab9901267237accfcbcded21018aff9b6fc1bfd0ab37b7c8b607 - 0ae68434908b9512c46f22a6f3149b0f611f77306887a7641527d5df55725517 - 432353f98d29dbec0bc0eb50f0316220f155dee755ea0b4cb45b0636a0fcffde - 8c1bbca429dd81d9180639ed1e526892908d26c1784f5f9c37093577b82d25fe - c9651a78d2d2395711d320f6fac1ffd37048d4bffc544a2f2e182cedd237d090" +checksum="c3fafda87192d9b98dc9b2b99d62b7109dbd72f73e8d5de1ea2a418ed086317b + 93af0702aae30332eecdc0f407dc29080923660508018fca14fe1307fdf375a1 + a40baf64e7376e4916fa96d7199bad099edc7e897d65b5ecc4a2dc9fdbba2e75 + 1e915f6a0860f2f7f583a70a5668ec5033969fbba177c3d3da4e244d01ba5cb4 + d6c45490cec27609f43fb9af406ba15e25fff544f10d038e650a5b25d2ba5a69 + 2b5d84d3f7800d162b095d0ee77da8264af9eac3a98dfff7e14b26510c92be1e + f317a73af579bbb42bc6635900e5b529f5198daaf54c5a7f51756b7707747444 + 6e65702a500ef4d2841eacbd9e16ca692d25a9aa3fcf38be2603657bfb03a80d + 7b056d739b64407e92a6738c8e3a5f6fe070380196c057d3f832be4015e7957c + 6bdd5ab6efd06bd384e227d78de6cffeac4c828ce6254d152e0137c70eb7b2e9 + b60364c109f3fe94387bfb27258c65c09b7761248e309adb8f92eda0c6c1dddb + 3b91a27432306a6152f6cee7b19d684476c4282743259eb0e5f90db6483216e6 + a17149908edf9a173b9d7ca3eac644cf45cd0e35ba40c565903ea9af9580e41e + b404f670ce1f3cc7fbdb170e9f0286e0a7608d779c5dae83ce5adee911876e6d + b41236a8ce2e96edf02165bd1ad91de967d8605ed7a9c77f079027ea0b13a7cf + 1f444a10561108bdfb98d43531c33d377a2565763d1299c96ef3c1f746b10555 + f15e57588ccdf2a6be3b51fba066dc030e2808071b29957c3da844b272d1dd25 + d51b8bdbc415fcdf5df587e364b8a3edb6296a988c38dbfb0fbec40b5dec856e + bcfbd612f55efff2dc98cdf9ff6ddf3d8e91274ead7d8d8bf1023cb28b815623 + f711d9206635ac98b3eec788791089d1a64316dc55ad4be2f6043acca79317b8 + a48efe9f0a885060fe2844ae056fb9de8932e45cfda399959ff8a4f54c99dc3f + c919c3557a66188ea7ab58210f6fe629f5e111bd73c0f94f298e4635c21b5f05 + edf74a83a03f85dfb2172053cf1816736fdfb4c42fbacdf4626b128186fb15db + 76bc68c806add52aa205f9f6a55dd6c141ecfaa29ce5b63fe06cb8bf1ce0c567 + af3763e63550893a001a651c5d89e4bb529004de98d58f2dc2a49336239171bf + 979725bd9b1b8aade54e0e24efdc2c716381130559615f45c007f0d68a0b0b69 + db96fd8658bc75f4813ddaf457c888e3f0656dc407b12d7799dbdebb7cc1a9ae + ba5e81b435217c15e2d55a42d34e3313e9ad1302b34599a25b48a23846dfc920 + fd3988b0ddcfa721fd702c126dd531f5b77f1f5af8ac61e8b23307c5b84e8e72 + a58a245d30efb8ad6553166dd2469da504d6cf3c773e52da15c3677899f37c4e + 3fd377be34a8786a726a13c88d28b2b73155b1f527b2909e6841474631ce8226 + 790af48c82bf520bcd8f915af77d1e0c8f156ae6c028b1fa0f39c3c991865d1c + 46b8071a1e23d8c5af1ced98cfbdb1a2258f679425434e092fbe1c42dfa26066 + a4eefa1ff84e33059d055c984dbb47283d117cb63ad9e39d7cc4c4e61ea9c11a + 5a91be294ac35aac472c4ba8324221551abb2e8cb66f995806606c191dca0428 + 9a4a582673dc466a684fd2beacbe77a152047e6023b1e247f5eda7b513e5e30d + 039af250c8b2dc6254b2f24975704095406c70090de9d21ecc73975d8d874675 + 3c77fd2a4cfc49ff94994b46a9b80ea24e534299838dd64a11a5dc2ef110f901 + feaeb14a016d732b3ec0be6266bd078fdf220c48c38683a4dd7315e076839b82 + a4756471f45168ff28fdc0e87c65b33288ca1f7fd2eedb7e31a726ee4766fb3c + 4eb62cbed52d1cdad08551a38d1f7656c71ef986df49eee0381e9aec7b11c0ba + 8e967ef8ff1f1a2fc21ea537d629d40a38d6b8789ce344e79d7a3b3b78138968 + e008e241c41900d6df1128d5dd55d41e1ed43d7c60d48329a321716968397b09 + 7011776c661b07bc3fd7d24b62765aeee10ba2a72ea4112862989f759aceb466 + 760c44d1512be5f10264d195785e45d47c46595ef57c24de81c070a81ba65456 + 531ec7550a9ab4e2410e9c69495852eaa0e7df43e022ed7ec0f0c50e148a4506 + c46413f7aa225147712fb634483f64c9368f43d03ba6f66405e4c9dc281421b4 + 42debde9c9341fc910ff382e94fade233b3ad23e4f474d89426648c659a99a12 + 50f1088649f77e0f83dffe3e81dd8ac993d1d8f06d8f231acdf98a69cda9147a + 2a4f6162bfbf5ea44c832c0d5896079b0ce69e590dc377e3bbd37a92f9780e6c + 60aa95eb50d59ddb2bf57d5cfacf860d4cc2c8b86a219f35ceaa30d82fd6e593 + 73a416254d022b051bb38ebf085772c031ecba18ab4896634ba8599fcb396f7b + ae3aa802087754458465af30a4ddafc8baa08e101a4e177b144b4f606a78b941 + 30c7498935e0d4529ccbe3a5c7671aec9505d0132cd6123f97c0680c80cbb917 + 99b76ac0f7cf4c5d5ae8b66ae3e54e3932c6a6f101aba8b156cf8d78a67e3f0b + 1bcb69081c99b27781c81becce86baaf2f1da54ceba009904ad2a5a8614eaa68 + bb3152472d5582b365722a83972b416d78b8bddfc6dbea40d1c778c37eb86623 + 426115a07ce25b7d2ae89024bf81e8b5957df9d8709bd6e5c1da704633af3c85 + 24918b9cd56f5fe12c7e02b0cedcdaf2abeeb7ec3cdb75a4aee3ca2d4aaaa961 + 8497c47c4f151966538836b0dfa312a044d8496ffc4647fcf62c8ed19b2337d9 + e160dd5b88f37562d7cbace3f46b8fd8edc5b9211f4240d8e38aec3dd81d915d + 298ab33911b8c425e6032eba867bc31925ea24b2457298bbf965bd6b194edc3f + 4c53367e4ddcff92733a95139baf9610390bf3eaf78ef5a5d10b4530c359e8eb + f340c62b77eaaa6bde0e61944c508b32785619ad4ca54b7dfbf281fcb986eac0 + 99201be46e35f22312a27da2a2afc54f46043342a1c577fa64696ef365198329 + 41e4d2d255435d2b50a8e0c4c59b13a0a0aafae925cd32e20bf9005cd066d11e + 266141c6c9a6729da904dfa040ae20d80a6b5c39efc31fcf2d039ed65e9c2b28 + 33daee0ac659ec7d1fb1cb101798dae2ed0077653fc9170bcbb5bc554ee3e433 + 23b74270aef1c6a4bff5194103a430e6854fe4c460e5c684769bd7c59d1afa0d + 9405687dbb0a81e8be8f842824f2fe65830b70a0dd0dcde84cc8a21d6637f841 + 40a608e720136044f4b95728474fcb82764e61d649551be438e330b63753635f + 0ef710447a36e81a6c86b17ee28d2cf463242834936af2578074df6e11c2baea + 3f0d0d33abda068465d7747149cdf11a4b1dc819f7da7f1f7a3d9c2a45307231 + 9d2c3438776531077e379e97a449e714882896c53dbb87052de7e7ac77ea3d67 + de9b4ec945265f5539025fb73b713322924da2d1a51b5bd6ad1baba4584c76e1 + 7b66c7d5e1b9eb6959295a76416271220e84ecc43a97a5f5f07ec99986579cb1 + 4404f5fe56868f5c551208d72630b91a88c68f78d7463e8e1d221fd7406c0783 + 3f55ec2730a870951759961c83d6654c7122a3114e136a6e2bce7c05d6062d89 + 873819bc254911aa3a443d0a9db306b472f7f31af8d986d54c535bce67a4b1c0 + 07326e95015601946706f50333c32b0919025376abcdf88dc225dae2c167b19a + bfdd58d9f0f0e809e6b801f65c722c61b4dbb5e6635cecd7390d1403f1dd6f42 + 8c2d716291a28cc64f93078d2bdf8d756a6521e3b0107815788c48452eac95f0 + 9b07735b4d8e8359e38d671ed054b373c4ed50a232013807d09ca4fae31e8223 + 5592ee66611515f8583a48211d70764fdb28c54b1ad4de5b4b87a9d3b101a182 + d36e2c9a894beb94b62855bd07d4b54e41fc96c0736b5e2e702422e75b3cf21e + caf7dd282fb6dc065eb6a0c124cd458716d877a500c094ff650c4d40302dd49e + 80bd3c70433f6b3aacdbd370b70d4fe0eab13547d1f6368b80eb5c28a759141a + 67b359947cbe15b2be1ad2567d74a36cfe5f27665a058b0fab19ed37ddd63a30 + b3347d5cec7f9f6e3aa4b5ccdd49350fd0879c20938bfc22664782c377dd73a6 + 79b512427977c359ec8f93e4880cd5397ccddb013676d2d39837f06433fe4041 + 883d5daa5b041778b0984a7e86ecfc4892af1aed1ec09285ac031e335075524c + bc1981c7cb2e6d5aecec7fb0f370c1da52895f00d238c1afa2b4e31b93580eb6 + 6278e5c054f50d3de62de9d070d21d2842d4d0ff9212d852af8eb672fad7ecea" From 33d5d1eba341b9d093bb580f7a5369fb0e2a2128 Mon Sep 17 00:00:00 2001 From: Doan Tran Cong Danh Date: Sat, 7 Sep 2019 18:09:55 +0700 Subject: [PATCH 3/3] firefox{,-esr}-i18n: add script to update firefox locale [skip ci] Signed-off-by: Doan Tran Cong Danh --- .../firefox-esr-i18n/files/update-lang-list | 1 + srcpkgs/firefox-i18n/files/update-lang-list | 81 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 120000 srcpkgs/firefox-esr-i18n/files/update-lang-list create mode 100755 srcpkgs/firefox-i18n/files/update-lang-list diff --git a/srcpkgs/firefox-esr-i18n/files/update-lang-list b/srcpkgs/firefox-esr-i18n/files/update-lang-list new file mode 120000 index 00000000000..d6e91286846 --- /dev/null +++ b/srcpkgs/firefox-esr-i18n/files/update-lang-list @@ -0,0 +1 @@ +../../firefox-i18n/files/update-lang-list \ No newline at end of file diff --git a/srcpkgs/firefox-i18n/files/update-lang-list b/srcpkgs/firefox-i18n/files/update-lang-list new file mode 100755 index 00000000000..65d076b4870 --- /dev/null +++ b/srcpkgs/firefox-i18n/files/update-lang-list @@ -0,0 +1,81 @@ +#!/bin/bash +# Copyright (c) by Danh Doan +# All rights reserved. +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +version=$1 + +esr="" +[[ $version =~ esr$ ]] && esr="-esr" + +tmpldir="firefox${esr}-i18n" + +tmpoldfile="$(mktemp)" +tmpnewfile="$(mktemp)" + +xoldlangexpr="^_languages=" + +xlistold() { + source "${tmpldir}/template" + for _lang in "${_languages[@]}"; do + _locale="${_lang%%\"*}" + [ $_locale ] && echo "$_locale" + done +} + +xlink () { + ln -sf "$tmpldir" "$tmpldir-$1" +} + +xnewlang () { + lang=$1 + padded=$(printf '%-7s' $lang) + xoldexpr=$xoldlangexpr + xoldlangexpr="'$lang \+\"" + grep -q "'$lang \+\"" "$tmpldir/template" && return 0 + sed -i "/$xoldexpr/a\\ + '$padded\"Unknown\"' + /checksum=/a\\ + badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb" \ + "$tmpldir/template" +} + +xprocessnew() { + while read lang; do + printf '%-7s\n' $lang >&3 + xlink $lang + xnewlang $lang + done +} + +xcleanlang() { + while read lang; do + padded=$(printf '%-7s' $lang) + sed -i "/'$padded\"/d" $tmpldir/template + unlink "$tmpldir-$lang" || true + done +} + +cd $(xdistdir)/srcpkgs + +xlistold >| "$tmpoldfile" + +curl "https://ftp.mozilla.org/pub/firefox/releases/$1/linux-i686/xpi/" \ + | grep -o 'xpi/[a-z]\+\(-[A-Z]\+\)\?' \ + | cut -d/ -f2 \ + | xprocessnew 3>$tmpnewfile + +grep -vF -f $tmpnewfile $tmpoldfile \ + | xcleanlang + +rm -rf $tmpoldfile $tmpnewfile