diff --git a/srcpkgs/firefox/patches/avoid-redefinition.patch b/srcpkgs/firefox/patches/avoid-redefinition.patch index 0f17779c40..22eb8baa1b 100644 --- a/srcpkgs/firefox/patches/avoid-redefinition.patch +++ b/srcpkgs/firefox/patches/avoid-redefinition.patch @@ -3,8 +3,8 @@ Reason: FF is mixing userspace net headers (net/if.h) and kernelspace ones (linux/if.h), leading to redefinitions. We need to include net/if.h before linux/if.h because linux/if.h has redifinition guards whereas net/if.h doesnt Upstream: No ---- media/mtransport/third_party/nICEr/src/stun/addrs-netlink.c.orig 2020-07-28 19:24:32.359751046 +0200 -+++ media/mtransport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:37.856343751 +0200 +--- dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c.orig 2020-07-28 19:24:32.359751046 +0200 ++++ dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:37.856343751 +0200 @@ -31,6 +31,7 @@ */ diff --git a/srcpkgs/firefox/patches/fix-webrtc-glibcisms.patch b/srcpkgs/firefox/patches/fix-webrtc-glibcisms.patch index cf895dd844..e38d1b9dd8 100644 --- a/srcpkgs/firefox/patches/fix-webrtc-glibcisms.patch +++ b/srcpkgs/firefox/patches/fix-webrtc-glibcisms.patch @@ -1,5 +1,5 @@ ---- 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 +--- third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c.orig 2019-01-29 11:20:52.298793223 +0100 ++++ third_party/libwebrtc/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 diff --git a/srcpkgs/firefox/patches/qcms_neon.patch b/srcpkgs/firefox/patches/qcms_neon.patch new file mode 100644 index 0000000000..7b19e0c30f --- /dev/null +++ b/srcpkgs/firefox/patches/qcms_neon.patch @@ -0,0 +1,65 @@ +this is still experimental in rust-1.46 for arm and aarch64 + +--- gfx/qcms/src/lib.rs.orig 2020-11-17 22:03:09.868746869 +0100 ++++ gfx/qcms/src/lib.rs 2020-11-17 22:03:27.795605120 +0100 +@@ -47,8 +47,8 @@ + pub mod transform; + #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] + pub mod transform_avx; +-#[cfg(any(target_arch = "aarch64", target_arch = "arm"))] +-pub mod transform_neon; ++//#[cfg(any(target_arch = "aarch64", target_arch = "arm"))] ++//pub mod transform_neon; + #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] + pub mod transform_sse2; + pub mod transform_util; +--- gfx/qcms/src/transform.rs.orig 2020-11-17 22:15:03.413104913 +0100 ++++ gfx/qcms/src/transform.rs 2020-11-17 22:15:17.128996464 +0100 +@@ -21,11 +21,11 @@ + // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-#[cfg(any(target_arch = "arm", target_arch = "aarch64"))] +-use crate::transform_neon::{ +- qcms_transform_data_bgra_out_lut_neon, qcms_transform_data_rgb_out_lut_neon, +- qcms_transform_data_rgba_out_lut_neon, +-}; ++//#[cfg(any(target_arch = "arm", target_arch = "aarch64"))] ++//use crate::transform_neon::{ ++// qcms_transform_data_bgra_out_lut_neon, qcms_transform_data_rgb_out_lut_neon, ++// qcms_transform_data_rgba_out_lut_neon, ++//}; + use crate::{ + chain::qcms_chain_transform, + double_to_s15Fixed16Number, +@@ -1424,18 +1424,18 @@ + (*transform).transform_fn = Some(qcms_transform_data_bgra_out_lut_sse2) + } + } +- } else if cfg!(any(target_arch = "arm", target_arch = "aarch64")) && qcms_supports_neon +- { +- #[cfg(any(target_arch = "arm", target_arch = "aarch64"))] +- { +- if in_type == QCMS_DATA_RGB_8 { +- (*transform).transform_fn = Some(qcms_transform_data_rgb_out_lut_neon) +- } else if in_type == QCMS_DATA_RGBA_8 { +- (*transform).transform_fn = Some(qcms_transform_data_rgba_out_lut_neon) +- } else if in_type == QCMS_DATA_BGRA_8 { +- (*transform).transform_fn = Some(qcms_transform_data_bgra_out_lut_neon) +- } +- } ++ // } else if cfg!(any(target_arch = "arm", target_arch = "aarch64")) && qcms_supports_neon ++ // { ++ // #[cfg(any(target_arch = "arm", target_arch = "aarch64"))] ++ // { ++ // if in_type == QCMS_DATA_RGB_8 { ++ // (*transform).transform_fn = Some(qcms_transform_data_rgb_out_lut_neon) ++ // } else if in_type == QCMS_DATA_RGBA_8 { ++ // (*transform).transform_fn = Some(qcms_transform_data_rgba_out_lut_neon) ++ // } else if in_type == QCMS_DATA_BGRA_8 { ++ // (*transform).transform_fn = Some(qcms_transform_data_bgra_out_lut_neon) ++ // } ++ // } + } else if in_type == QCMS_DATA_RGB_8 { + (*transform).transform_fn = Some(qcms_transform_data_rgb_out_lut_precache) + } else if in_type == QCMS_DATA_RGBA_8 { diff --git a/srcpkgs/firefox/patches/sandbox-fork.patch b/srcpkgs/firefox/patches/sandbox-fork.patch index 72640cb7f7..8f7c9ab820 100644 --- a/srcpkgs/firefox/patches/sandbox-fork.patch +++ b/srcpkgs/firefox/patches/sandbox-fork.patch @@ -2,12 +2,14 @@ make SYS_fork non-fatal, musl uses it for fork(2) --- security/sandbox/linux/SandboxFilter.cpp +++ security/sandbox/linux/SandboxFilter.cpp -@@ -1253,6 +1253,8 @@ +@@ -1420,6 +1420,10 @@ // usually do something reasonable on error. case __NR_clone: return ClonePolicy(Error(EPERM)); ++# ifdef __NR_fork + case __NR_fork: + return Error(ENOSYS); ++# endif # ifdef __NR_fadvise64 case __NR_fadvise64: diff --git a/srcpkgs/firefox/patches/wasm.patch b/srcpkgs/firefox/patches/wasm.patch new file mode 100644 index 0000000000..a905aaa1f9 --- /dev/null +++ b/srcpkgs/firefox/patches/wasm.patch @@ -0,0 +1,62 @@ +From 71597faac0fde4f608a60dd610d0cefac4972cc3 Mon Sep 17 00:00:00 2001 +From: Jonathan Wakely +Date: Tue, 17 Nov 2020 12:56:17 +0000 +Subject: [PATCH] Fix GCC build failure in WasmBaselineCompile.cpp + +GCC does not yet implement C++ Core DR 727, so explicit specializations +at class scope aren't allowed. This replaces it with a different C++17 +feature: using if-constexpr inside the function body and checking the +template argument there. + +See https://bugzilla.mozilla.org/show_bug.cgi?id=1677690 +and https://bugzilla.redhat.com/show_bug.cgi?id=1897675 +--- + js/src/wasm/WasmBaselineCompile.cpp | 24 ++++++++++-------------- + 1 file changed, 10 insertions(+), 14 deletions(-) + +diff --git a/js/src/wasm/WasmBaselineCompile.cpp b/js/src/wasm/WasmBaselineCompile.cpp +index 676dbfa73d33a..b82aa242d3c6b 100644 +--- js/src/wasm/WasmBaselineCompile.cpp ++++ js/src/wasm/WasmBaselineCompile.cpp +@@ -655,15 +655,13 @@ class BaseRegAlloc { + + template + bool hasFPU() { +- return availFPU.hasAny::value>(); +- } +- + #ifdef RABALDR_SIDEALLOC_V128 +- template <> +- bool hasFPU() { +- MOZ_CRASH("Should not happen"); +- } ++ if constexpr (t == MIRType::Simd128) ++ MOZ_CRASH("Should not happen"); ++ else + #endif ++ return availFPU.hasAny::value>(); ++ } + + bool isAvailableGPR(Register r) { return availGPR.has(r); } + +@@ -746,15 +744,13 @@ class BaseRegAlloc { + + template + FloatRegister allocFPU() { +- return availFPU.takeAny::value>(); +- } +- + #ifdef RABALDR_SIDEALLOC_V128 +- template <> +- FloatRegister allocFPU() { +- MOZ_CRASH("Should not happen"); +- } ++ if constexpr (t == MIRType::Simd128) ++ MOZ_CRASH("Should not happen"); ++ else + #endif ++ return availFPU.takeAny::value>(); ++ } + + void freeGPR(Register r) { availGPR.add(r); } + diff --git a/srcpkgs/firefox/template b/srcpkgs/firefox/template index 716d932356..8383fcc952 100644 --- a/srcpkgs/firefox/template +++ b/srcpkgs/firefox/template @@ -3,7 +3,7 @@ # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-i18n". # pkgname=firefox -version=82.0.3 +version=83.0 revision=1 build_helper="rust" short_desc="Mozilla Firefox web browser" @@ -11,7 +11,7 @@ maintainer="Johannes " license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later" homepage="https://www.mozilla.org/firefox/" distfiles="${MOZILLA_SITE}/${pkgname}/releases/${version}/source/${pkgname}-${version}.source.tar.xz" -checksum=4df40aecf4b71107c4816db585bcd425f093123f29d8563bc2443a8659058691 +checksum=d69e84e8b8449f828683d274c24e03095858362bfed21b08bdd7fe715eea5398 lib32disabled=yes