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