* update firefox to 133.0.3-1

This commit is contained in:
Alexander Baldeck 2024-12-23 01:21:13 +01:00
parent 655fc2bfbd
commit b7f80e2536
41 changed files with 1596 additions and 1949 deletions

111
firefox/.SRCINFO Normal file
View File

@ -0,0 +1,111 @@
pkgbase = firefox
pkgdesc = Fast, Private & Safe Web Browser
pkgver = 133.0.3
pkgrel = 1
url = https://www.mozilla.org/firefox/
arch = x86_64
arch = powerpc64le
arch = riscv64
license = MPL-2.0
makedepends = cbindgen
makedepends = clang
makedepends = diffutils
makedepends = imake
makedepends = jack
makedepends = llvm
makedepends = mesa
makedepends = nodejs-lts-iron
makedepends = python311
makedepends = rust
makedepends = unzip
makedepends = wasi-compiler-rt
makedepends = wasi-libc
makedepends = wasi-libc++
makedepends = wasi-libc++abi
makedepends = xorg-server-xvfb
makedepends = zip
depends = alsa-lib
depends = at-spi2-core
depends = bash
depends = cairo
depends = dbus
depends = ffmpeg
depends = fontconfig
depends = freetype2
depends = gcc-libs
depends = gdk-pixbuf2
depends = glib2
depends = glibc
depends = gtk3
depends = hicolor-icon-theme
depends = libpulse
depends = libx11
depends = libxcb
depends = libxcomposite
depends = libxdamage
depends = libxext
depends = libxfixes
depends = libxrandr
depends = libxss
depends = libxt
depends = mime-types
depends = nspr
depends = nss
depends = pango
depends = ttf-font
optdepends = hunspell-en_US: Spell checking, American English
optdepends = libnotify: Notification integration
optdepends = networkmanager: Location detection via available WiFi networks
optdepends = speech-dispatcher: Text-to-Speech
optdepends = xdg-desktop-portal: Screensharing with Wayland
options = !emptydirs
options = !lto
options = !makeflags
source = https://archive.mozilla.org/pub/firefox/releases/133.0.3/source/firefox-133.0.3.source.tar.xz
source = https://archive.mozilla.org/pub/firefox/releases/133.0.3/source/firefox-133.0.3.source.tar.xz.asc
source = firefox-symbolic.svg
source = firefox.desktop
source = org.mozilla.firefox.metainfo.xml
source = 0001-Install-under-remoting-name.patch
source = firefox-pgo.patch
source = ffmpeg-cleanup.patch
source = hotfix-gcc14.patch
source = hotfix-no-pip-check.patch
source = hotfix-wgpu-atomicu64.patch
source = riscv.patch
source = sandbox-fonts.patch
source = sandbox-x11.patch
validpgpkeys = 14F26682D0916CDD81E37B6D61B7B526D98F0353
sha256sums = f134a5420200bb03ab460f9d2867507c0edb222ce73faf4064cdbea02a0aca1b
sha256sums = SKIP
sha256sums = a9b8b4a0a1f4a7b4af77d5fc70c2686d624038909263c795ecc81e0aec7711e9
sha256sums = 71fe797430198ac8c00b538dce537284cf526e48be0496698cf5a980d70c16da
sha256sums = 58d78ce57b3ee936bc966458d6b20ab142d02a897bbe924b3f26717af0c5bee1
sha256sums = 883ca2fa723a7572269d18559d5b82412782ad63e5dd3820eeb0540e3fe34314
sha256sums = 0af4fc9150fbc7423656af8413fb352a7ae885a7a4bc5a12a9d7e330747f91ef
sha256sums = 15fdd2e1ffe314eaee6685ae5178c4089477837d4ed49ba7fc6458d8dedc6c08
sha256sums = 9903247f113d74a7ae0b68739639beaef61300c7611bb6beb1f718b054f34f4d
sha256sums = 184e929778342487bcdb87d30b37c36cb7dc2eedfc4de415c6d06d1fe0bef0e0
sha256sums = 226932fe11fcb84058306ca94d264ee9e2de3ec905e42bfad565571fea038a18
sha256sums = ee34d6236aed46d629e88a7a254915f330c892e8aeb9063a136d8c712dfd5d24
sha256sums = 21888aab6b7580cba83c9260108711137e2d3c1a87689fb2ca03375a0c1446d6
sha256sums = 5078bcaa6e7b5696bf539c753b1da9283571b2d8175b866275fe28a9ab0aad43
b2sums = e686408397a886e36ead739851ec190f108db2bda92b7147ec16c12233459dc23ab256ba125fb8902fb2a855ea76d9cb02e6c55ea62e7639f8700dba6bae9acb
b2sums = SKIP
b2sums = 63a8dd9d8910f9efb353bed452d8b4b2a2da435857ccee083fc0c557f8c4c1339ca593b463db320f70387a1b63f1a79e709e9d12c69520993e26d85a3d742e34
b2sums = 2c7936949ef922307fb593bd0480a13bde2eab8ae24fc89071d809d6659384705f9b7838b1ae8bc46b98a152ba01fcffad606d4c84796ad9bfaaf20166f0a0fd
b2sums = 2ce33432f8a73a4f1a412b7a065d3c124e1ca9f6bdf3fad0407e897efc0840f8ef43eeeb1b9bef4a102d9fac0b2c4a2ef205726b817f83fe9c3742d076778b14
b2sums = 8a894b01e405b628877483e40e9b018647977cb053b6af02afc901ed24d6e1f767f3db8c321070e33aea4a05ba16f1eb47ae600e5299b5f9caad03d20ba38cf5
b2sums = 31dfc620b032b9315c2f6eb876d4b9a418eb9e6e89a212b1b847cfd96f13160f1d170ba7752c7a8caa3835e83232e86e4df923fd80e536c0f93d9f8c7387d8fe
b2sums = fe679b79ec3f7a8368772554a8745eac71114d33c4aefcb315b51fae3633e1b0e0392325b8ef59abddc262ab57aad54eb976d90eebeec7cd7e5c31de578897cc
b2sums = 0a831d3cc36c00ed8c8cf027f9b360e510f7fd86efd260dc5ec3d87e0564a45943de9c91e5c4a8fd5820d3dd7998c11a2ad87194f7f92a5468dfc6a0291235c5
b2sums = cedf9057e0e86f25cc6bce5a27baff9e5d090bbb265d584a00e1c7dc17a0fff9c9360c26302ef589b6d96e536db3003b94597035fcac86d71d96f086f2300fb0
b2sums = 695ee838eb74727f553e570cc88b0748e4b893b26e12d399912ccc7beaf406935f25ae44f42f2e3f754e3ca537103151afaf154b688bd2b305504d84b458a79a
b2sums = 7e7e6df1bb31b3f0122a3efd29b340ed0c7f44e0c3d6c156f1e78cb5614fc4591de1c6c8227550dd2bfe0006bc6ede4f58dde2c21fdbbd4d3a58c4ce70a0025c
b2sums = f542dda6798de78f4144e6dfb0149a218bd4313e6827b40d0e104edbef2a3cac3a4ff00e499ee7c0e90aee9feed7ac83f0c07a423231bce3719b71b76aaf147f
b2sums = 3589e5228bd3178c7f6744cf0b2a6bff12cb0622766cba11384cb015c0b824926e5a1d910462add6d26f907ec039c10e9d811824f5ed7014447b51fbe800d85a
makedepends_x86_64 = lld
makedepends_x86_64 = nasm
makedepends_x86_64 = yasm
pkgname = firefox

4
firefox/.nvchecker.toml Normal file
View File

@ -0,0 +1,4 @@
[firefox]
source = "jq"
url = "https://product-details.mozilla.org/1.0/firefox_versions.json"
filter = ".LATEST_FIREFOX_VERSION"

View File

@ -0,0 +1,55 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
Date: Fri, 27 Sep 2024 02:01:02 +0200
Subject: [PATCH] Install under remoting name
Also reverts https://phabricator.services.mozilla.com/D210285, which
causes conflicts between the channels.
---
config/baseconfig.mk | 2 +-
toolkit/mozapps/installer/packager.mk | 4 ++--
xpcom/glue/XREAppData.cpp | 3 +--
3 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/config/baseconfig.mk b/config/baseconfig.mk
index 428beef48e14..13a609c1cfe9 100644
--- a/config/baseconfig.mk
+++ b/config/baseconfig.mk
@@ -2,7 +2,7 @@
# directly in python/mozbuild/mozbuild/base.py for gmake validation.
# We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending
# whether a normal build is happening or whether the check is running.
-installdir = $(libdir)/$(MOZ_APP_NAME)
+installdir = $(libdir)/$(MOZ_APP_REMOTINGNAME)
ifeq (.,$(DEPTH))
DIST = dist
else
diff --git a/toolkit/mozapps/installer/packager.mk b/toolkit/mozapps/installer/packager.mk
index 188ce9875ae8..f7e3d0ca1935 100644
--- a/toolkit/mozapps/installer/packager.mk
+++ b/toolkit/mozapps/installer/packager.mk
@@ -168,8 +168,8 @@ endif
(cd $(DIST)/$(MOZ_PKG_DIR) && $(TAR) --exclude=precomplete $(TAR_CREATE_FLAGS) - .) | \
(cd $(DESTDIR)$(installdir) && tar -xf -)
$(NSINSTALL) -D $(DESTDIR)$(bindir)
- $(RM) -f $(DESTDIR)$(bindir)/$(MOZ_APP_NAME)
- ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)
+ $(RM) -f $(DESTDIR)$(bindir)/$(MOZ_APP_REMOTINGNAME)
+ ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)/$(MOZ_APP_REMOTINGNAME)
upload:
$(PYTHON3) -u $(MOZILLA_DIR)/build/upload.py --base-path $(DIST) $(UPLOAD_FILES)
diff --git a/xpcom/glue/XREAppData.cpp b/xpcom/glue/XREAppData.cpp
index 7757e6c66366..82084d3b5f82 100644
--- a/xpcom/glue/XREAppData.cpp
+++ b/xpcom/glue/XREAppData.cpp
@@ -52,8 +52,7 @@ void XREAppData::GetDBusAppName(nsACString& aName) const {
if (env) {
aName.Assign(env);
} else {
- aName.Assign(name);
- ToLowerCase(aName);
+ aName.Assign(remotingName);
SanitizeNameForDBus(aName);
}
}

View File

@ -1,34 +0,0 @@
From 685e82ac82921720c6cd9c6c45703ff034f081e7 Mon Sep 17 00:00:00 2001
From: Thomas Deutschmann <whissi@gentoo.org>
Date: Sat, 29 Aug 2020 22:30:59 +0200
Subject: [PATCH 25/30] LTO: Only enable LTO for Rust when complete build uses
LTO
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
---
config/makefiles/rust.mk | 2 ++
1 file changed, 2 insertions(+)
diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk
index 75570d32b9..924722a506 100644
--- a/config/makefiles/rust.mk
+++ b/config/makefiles/rust.mk
@@ -87,6 +87,7 @@ endif
# These flags are passed via `cargo rustc` and only apply to the final rustc
# invocation (i.e., only the top-level crate, not its dependencies).
cargo_rustc_flags = $(CARGO_RUSTCFLAGS)
+ifdef MOZ_LTO
ifndef DEVELOPER_OPTIONS
ifndef MOZ_DEBUG_RUST
# Enable link-time optimization for release builds, but not when linking
@@ -106,6 +107,7 @@ endif
endif
endif
endif
+endif
ifdef CARGO_INCREMENTAL
export CARGO_INCREMENTAL
--
2.34.1

View File

@ -1,13 +0,0 @@
diff -up firefox-100.0/widget/gtk/nsWindow.cpp.1196777 firefox-100.0/widget/gtk/nsWindow.cpp
--- firefox-100.0/widget/gtk/nsWindow.cpp.1196777 2022-05-02 11:29:06.763325015 +0200
+++ firefox-100.0/widget/gtk/nsWindow.cpp 2022-05-02 11:30:49.100717334 +0200
@@ -163,7 +163,8 @@ const gint kEvents = GDK_TOUCHPAD_GESTUR
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
GDK_SMOOTH_SCROLL_MASK | GDK_TOUCH_MASK | GDK_SCROLL_MASK |
- GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK;
+ GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK |
+ GDK_FOCUS_CHANGE_MASK;
/* utility functions */
static bool is_mouse_in_window(GdkWindow* aWindow, gdouble aMouseX,

View File

@ -1,19 +0,0 @@
diff -up firefox-115.0/widget/gtk/GfxInfo.cpp.firefox-enable-vaapi firefox-115.0/widget/gtk/GfxInfo.cpp
--- firefox-115.0/widget/gtk/GfxInfo.cpp.firefox-enable-vaapi 2023-06-29 12:18:53.179833765 +0200
+++ firefox-115.0/widget/gtk/GfxInfo.cpp 2023-06-29 12:19:33.256212776 +0200
@@ -970,14 +970,6 @@ const nsTArray<GfxDriverInfo>& GfxInfo::
nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_COMPARISON_IGNORED,
V(0, 0, 0, 0), "FEATURE_HARDWARE_VIDEO_DECODING_NO_R600", "");
- // Disable on Release/late Beta on AMD
-#if !defined(EARLY_BETA_OR_EARLIER)
- APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::Linux, DeviceFamily::AtiAll,
- nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
- nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
- DRIVER_COMPARISON_IGNORED, V(0, 0, 0, 0),
- "FEATURE_HARDWARE_VIDEO_DECODING_DISABLE", "");
-#endif
////////////////////////////////////
// FEATURE_HW_DECODED_VIDEO_ZERO_COPY - ALLOWLIST
APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Linux, DeviceFamily::All,

View File

@ -1,88 +0,0 @@
https://bugzilla.mozilla.org/show_bug.cgi?id=1626236
https://bug1626236.bmoattachments.org/attachment.cgi?id=9137096
# HG changeset patch
# User msirringhaus@suse.de
# Date 1582805876 -3600
# Thu Feb 27 13:17:56 2020 +0100
# Node ID cc3d09abea31068e57f1ab918782f9f86fc6a158
# Parent 9cd90914846f667f18babc491a74c164ae5d6e9f
imported patch decoder_workaround.patch
diff -r 9cd90914846f image/decoders/nsGIFDecoder2.cpp
--- a/image/decoders/nsGIFDecoder2.cpp Thu Feb 27 12:57:14 2020 +0100
+++ b/image/decoders/nsGIFDecoder2.cpp Fri Mar 27 13:06:18 2020 +0100
@@ -422,6 +422,9 @@
MOZ_ASSERT(mSwizzleFn);
uint8_t* data = reinterpret_cast<uint8_t*>(aColormap);
mSwizzleFn(data, data, aColors);
+#if MOZ_BIG_ENDIAN()
+ SwizzleRow(SurfaceFormat::A8R8G8B8, SurfaceFormat::B8G8R8A8)(data, data, aColors);
+#endif
}
LexerResult nsGIFDecoder2::DoDecode(SourceBufferIterator& aIterator,
diff -r 9cd90914846f image/decoders/nsJPEGDecoder.cpp
--- a/image/decoders/nsJPEGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
+++ b/image/decoders/nsJPEGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
@@ -263,6 +263,9 @@
case JCS_YCbCr:
// By default, we will output directly to BGRA. If we need to apply
// special color transforms, this may change.
+#if MOZ_BIG_ENDIAN()
+ mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB;
+#else
switch (SurfaceFormat::OS_RGBX) {
case SurfaceFormat::B8G8R8X8:
mInfo.out_color_space = JCS_EXT_BGRX;
@@ -277,6 +280,7 @@
mState = JPEG_ERROR;
return Transition::TerminateFailure();
}
+#endif
break;
case JCS_CMYK:
case JCS_YCCK:
diff -r 9cd90914846f image/decoders/nsPNGDecoder.cpp
--- a/image/decoders/nsPNGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
+++ b/image/decoders/nsPNGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
@@ -361,7 +361,7 @@
IResumable* aOnResume) {
MOZ_ASSERT(!HasError(), "Shouldn't call DoDecode after error!");
- return mLexer.Lex(aIterator, aOnResume,
+ LexerResult res = mLexer.Lex(aIterator, aOnResume,
[=](State aState, const char* aData, size_t aLength) {
switch (aState) {
case State::PNG_DATA:
@@ -371,6 +371,14 @@
}
MOZ_CRASH("Unknown State");
});
+
+#if MOZ_BIG_ENDIAN()
+ if(res.is<TerminalState>() && res.as<TerminalState>() == TerminalState::SUCCESS) {
+ NativeEndian::swapToLittleEndianInPlace<uint32_t>((uint32_t*)(mImageData), mImageDataLength / 4);
+ }
+#endif
+
+ return res;
}
LexerTransition<nsPNGDecoder::State> nsPNGDecoder::ReadPNGData(
diff -r 9cd90914846f image/decoders/nsWebPDecoder.cpp
--- a/image/decoders/nsWebPDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
+++ b/image/decoders/nsWebPDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
@@ -237,7 +237,12 @@
// WebP doesn't guarantee that the alpha generated matches the hint in the
// header, so we always need to claim the input is BGRA. If the output is
// BGRX, swizzling will mask off the alpha channel.
+#if MOZ_BIG_ENDIAN()
+ mBuffer.colorspace = MODE_ARGB;
+ SurfaceFormat inFormat = mFormat;
+#else
SurfaceFormat inFormat = SurfaceFormat::OS_RGBA;
+#endif
SurfacePipeFlags pipeFlags = SurfacePipeFlags();
if (mFormat == SurfaceFormat::OS_RGBA &&

View File

@ -1,24 +0,0 @@
diff -Naur a/build/moz.configure/warnings.configure b/build/moz.configure/warnings.configure
--- a/build/moz.configure/warnings.configure 2022-10-10 19:05:25.000000000 +0300
+++ b/build/moz.configure/warnings.configure 2022-10-18 13:59:24.514026407 +0300
@@ -160,6 +160,9 @@
# false positives depending on optimization
check_and_add_warning("-Wno-error=array-bounds")
+# can't get rid of those PGO warnings
+check_and_add_warning("-Wno-error=coverage-mismatch")
+
# false positives depending on optimizations
check_and_add_warning("-Wno-error=free-nonheap-object")
@@ -279,8 +282,8 @@
# build, but we're not sure why.
check_and_add_warning("-Wno-enum-compare")
-# Make it an error to be missing function declarations for C code.
-check_and_add_warning("-Werror=implicit-function-declaration", c_compiler)
+check_and_add_warning("-Werror=implicit-function-declaration",
+ when="--enable-warnings-as-errors")
# New in clang 11. We can't really do anything about this warning.
check_and_add_warning("-Wno-psabi")

View File

@ -1,29 +0,0 @@
From 70d47d18420fe9e3de8f896c08f97ef2596c9c84 Mon Sep 17 00:00:00 2001
From: "Jory A. Pratt" <anarchy@gentoo.org>
Date: Mon, 6 Apr 2020 20:10:03 +0200
Subject: [PATCH 13/30] musl: Set pthread name for non glibc systems
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
---
js/src/threading/posix/PosixThread.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/js/src/threading/posix/PosixThread.cpp b/js/src/threading/posix/PosixThread.cpp
index 35532e375b..983da45326 100644
--- a/js/src/threading/posix/PosixThread.cpp
+++ b/js/src/threading/posix/PosixThread.cpp
@@ -115,8 +115,10 @@ void ThisThread::SetName(const char* name) {
rv = 0;
#elif defined(__NetBSD__)
rv = pthread_setname_np(pthread_self(), "%s", (void*)name);
-#else
+#elif defined(__GLIBC__)
rv = pthread_setname_np(pthread_self(), name);
+#else
+ rv = 0;
#endif
MOZ_RELEASE_ASSERT(!rv);
}
--
2.34.1

View File

@ -1,51 +0,0 @@
From beed745f96bbc18a3c22a728095c9a2eef7435ee Mon Sep 17 00:00:00 2001
From: "Jory A. Pratt" <anarchy@gentoo.org>
Date: Mon, 6 Apr 2020 20:12:09 +0200
Subject: [PATCH 15/30] musl: sys/auvx.h avaliable on more then just glibc
systems
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
---
.../system_wrappers/source/cpu_features_linux.cc | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc b/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc
index 335bed4da3..c2c98dae8a 100644
--- a/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc
+++ b/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc
@@ -12,13 +12,7 @@
#include <stdlib.h>
#include <string.h>
-#ifdef __GLIBC_PREREQ
-#define WEBRTC_GLIBC_PREREQ(a, b) __GLIBC_PREREQ(a, b)
-#else
-#define WEBRTC_GLIBC_PREREQ(a, b) 0
-#endif
-
-#if WEBRTC_GLIBC_PREREQ(2, 16)
+#if defined(__linux__)
#include <sys/auxv.h>
#else
#include <errno.h>
@@ -40,7 +34,7 @@ uint64_t GetCPUFeaturesARM(void) {
int architecture = 0;
uint64_t hwcap = 0;
const char* platform = NULL;
-#if WEBRTC_GLIBC_PREREQ(2, 16)
+#if defined(__linux__)
hwcap = getauxval(AT_HWCAP);
platform = (const char*)getauxval(AT_PLATFORM);
#else
@@ -64,7 +58,7 @@ uint64_t GetCPUFeaturesARM(void) {
}
close(fd);
}
-#endif // WEBRTC_GLIBC_PREREQ(2, 16)
+#endif // (__linux__)
#if defined(__aarch64__)
architecture = 8;
if ((hwcap & HWCAP_FP) != 0)
--
2.34.1

View File

@ -1,28 +0,0 @@
From 6d36ed9e971861321bb381e25516500069314eb6 Mon Sep 17 00:00:00 2001
From: Johannes <johannes.brechtmann@gmail.com>
Date: Fri, 1 May 2020 17:20:29 +0200
Subject: [PATCH 16/30] musl: make SYS_fork non-fatal, musl uses it for fork(2)
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
---
security/sandbox/linux/SandboxFilter.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/security/sandbox/linux/SandboxFilter.cpp b/security/sandbox/linux/SandboxFilter.cpp
index eb72d944c8..8ce22d6f65 100644
--- a/security/sandbox/linux/SandboxFilter.cpp
+++ b/security/sandbox/linux/SandboxFilter.cpp
@@ -1537,6 +1537,10 @@ class ContentSandboxPolicy : public SandboxPolicyCommon {
// usually do something reasonable on error.
case __NR_clone:
return ClonePolicy(Error(EPERM));
+# ifdef __NR_fork
+ case __NR_fork:
+ return Error(ENOSYS);
+# endif
case __NR_clone3:
return Error(ENOSYS);
--
2.34.1

View File

@ -1,11 +0,0 @@
diff -Naur a/config/system-headers.mozbuild b/config/system-headers.mozbuild
--- a/config/system-headers.mozbuild 2023-07-04 13:57:53.418421221 +0300
+++ b/config/system-headers.mozbuild 2023-07-04 13:58:41.177179152 +0300
@@ -227,7 +227,6 @@
"execinfo.h",
"extras.h",
"fcntl.h",
- "features.h",
"fenv.h",
"ffi.h",
"fibdef.h",

View File

@ -1,182 +0,0 @@
Allow building against system-wide harfbuzz.
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=847568
---
config/system-headers.mozbuild | 7 +++++++
dom/base/moz.build | 3 +++
gfx/moz.build | 4 +++-
gfx/skia/generate_mozbuild.py | 3 +++
gfx/skia/moz.build | 3 +++
gfx/thebes/moz.build | 3 +++
intl/unicharutil/util/moz.build | 3 +++
netwerk/dns/moz.build | 3 +++
toolkit/library/moz.build | 3 +++
toolkit/moz.configure | 9 +++++++++
10 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild
index aa17660..7f416f9 100644
--- a/config/system-headers.mozbuild
+++ b/config/system-headers.mozbuild
@@ -1253,6 +1253,13 @@ if CONFIG["OS_TARGET"] == "Android":
"vr/gvr/capi/include/gvr.h",
]
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ system_headers += [
+ "harfbuzz/hb-glib.h",
+ "harfbuzz/hb-ot.h",
+ "harfbuzz/hb.h",
+ ]
+
if CONFIG["MOZ_JACK"]:
system_headers += [
"jack/jack.h",
diff --git a/dom/base/moz.build b/dom/base/moz.build
index fb7ed4b..ea65621 100644
--- a/dom/base/moz.build
+++ b/dom/base/moz.build
@@ -616,6 +616,9 @@ FINAL_LIBRARY = "xul"
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
+
GeneratedFile(
"UseCounterList.h",
script="gen-usecounters.py",
diff --git a/gfx/moz.build b/gfx/moz.build
index 56ea317..6cc19f8 100644
--- a/gfx/moz.build
+++ b/gfx/moz.build
@@ -10,6 +10,9 @@ with Files("**"):
with Files("wr/**"):
BUG_COMPONENT = ("Core", "Graphics: WebRender")
+if not CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ DIRS += ["harfbuzz/src"]
+
DIRS += [
"cairo",
"2d",
@@ -20,7 +23,6 @@ DIRS += [
"gl",
"layers",
"graphite2/src",
- "harfbuzz/src",
"ots/src",
"thebes",
"ipc",
diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py
index b589efd..47f49e1 100755
--- a/gfx/skia/generate_mozbuild.py
+++ b/gfx/skia/generate_mozbuild.py
@@ -95,6 +95,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
'-Wno-unused-private-field',
]
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'android'):
LOCAL_INCLUDES += [
"/gfx/cairo/cairo/src",
diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build
index 7fee545..ba1a403 100644
--- a/gfx/skia/moz.build
+++ b/gfx/skia/moz.build
@@ -623,6 +623,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
'-Wno-unused-private-field',
]
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'android'):
LOCAL_INCLUDES += [
"/gfx/cairo/cairo/src",
diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build
index 48f2849..5e16334 100644
--- a/gfx/thebes/moz.build
+++ b/gfx/thebes/moz.build
@@ -297,6 +297,9 @@ LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]
DEFINES["GRAPHITE2_STATIC"] = True
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
+
CXXFLAGS += ["-Werror=switch"]
include("/tools/fuzzing/libfuzzer-config.mozbuild")
diff --git a/intl/unicharutil/util/moz.build b/intl/unicharutil/util/moz.build
index 2396210..092baac 100644
--- a/intl/unicharutil/util/moz.build
+++ b/intl/unicharutil/util/moz.build
@@ -24,6 +24,9 @@ UNIFIED_SOURCES += [
"nsUnicodeProperties.cpp",
]
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
+
include("/ipc/chromium/chromium-config.mozbuild")
GeneratedFile(
diff --git a/netwerk/dns/moz.build b/netwerk/dns/moz.build
index c926d14..5082238 100644
--- a/netwerk/dns/moz.build
+++ b/netwerk/dns/moz.build
@@ -119,4 +119,7 @@ LOCAL_INCLUDES += [
"/netwerk/protocol/http",
]
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
+
USE_LIBS += ["icu"]
diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build
index a9feb0b..1d13418 100644
--- a/toolkit/library/moz.build
+++ b/toolkit/library/moz.build
@@ -288,6 +288,9 @@ if CONFIG["MOZ_ANDROID_GOOGLE_VR"]:
"-lgvr",
]
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ OS_LIBS += CONFIG["MOZ_HARFBUZZ_LIBS"]
+
if CONFIG["MOZ_SYSTEM_JPEG"]:
OS_LIBS += CONFIG["MOZ_JPEG_LIBS"]
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
index c5dcc65..0c9e5fe 100644
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -718,6 +718,22 @@ def freetype2_combined_info(fontconfig_info, freetype2_info):
set_define("MOZ_HAVE_FREETYPE2", depends_if(freetype2_info)(lambda _: True))
+# HarfBuzz
+# ==============================================================
+option(
+ "--with-system-harfbuzz",
+ help="Use system harfbuzz (located with pkgconfig)",
+ when=use_pkg_config,
+)
+@depends("--with-system-harfbuzz", when=use_pkg_config)
+def enable_system_harfbuzz_option(enable_system_harfbuzz):
+ return enable_system_harfbuzz
+
+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 2.7.4',
+ when='--with-system-harfbuzz')
+
+set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True))
+
# Apple platform decoder support
# ==============================================================
@depends(toolkit)
--
2.34.1

View File

@ -1,16 +0,0 @@
diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h
index 51d79f9c2ec59..fafd7d6fc1e0d 100644
--- a/modules/fdlibm/src/math_private.h
+++ b/modules/fdlibm/src/math_private.h
@@ -30,7 +30,11 @@
* Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
*/
+#if defined __FLT_EVAL_METHOD__ && (__FLT_EVAL_METHOD__ == 2)
+typedef long double __double_t;
+#else
typedef double __double_t;
+#endif
typedef __double_t double_t;
/*

View File

@ -1,161 +0,0 @@
diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild
index 7f416f9..1193883 100644
--- a/config/system-headers.mozbuild
+++ b/config/system-headers.mozbuild
@@ -1260,6 +1260,12 @@ if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
"harfbuzz/hb.h",
]
+if CONFIG["MOZ_SYSTEM_GRAPHITE2"]:
+ system_headers += [
+ "graphite2/Font.h",
+ "graphite2/Segment.h",
+ ]
+
if CONFIG["MOZ_JACK"]:
system_headers += [
"jack/jack.h",
diff --git a/gfx/graphite2/geckoextra/moz.build b/gfx/graphite2/geckoextra/moz.build
new file mode 100644
index 0000000..24e8d7a
--- /dev/null
+++ b/gfx/graphite2/geckoextra/moz.build
@@ -0,0 +1,21 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# 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/.
+
+EXPORTS.graphite2 += [
+ 'include/GraphiteExtra.h',
+ 'include/GraphiteStructsForRLBox.h',
+]
+
+UNIFIED_SOURCES += [
+ '../geckoextra/src/GraphiteExtra.cpp',
+]
+
+CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS']
+
+# Match bundled graphite2 configuration
+AllowCompilerWarnings()
+
+FINAL_LIBRARY = 'xul'
diff --git a/gfx/moz.build b/gfx/moz.build
index 6cc19f8..14b08db 100644
--- a/gfx/moz.build
+++ b/gfx/moz.build
@@ -10,6 +10,11 @@ with Files("**"):
with Files("wr/**"):
BUG_COMPONENT = ("Core", "Graphics: WebRender")
+if CONFIG["MOZ_SYSTEM_GRAPHITE2"]:
+ DIRS += ["graphite2/geckoextra"]
+else:
+ DIRS += ["graphite2/src"]
+
if not CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
DIRS += ["harfbuzz/src"]
@@ -22,7 +27,6 @@ DIRS += [
"qcms",
"gl",
"layers",
- "graphite2/src",
"ots/src",
"thebes",
"ipc",
diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build
index 5e16334..7d0a161 100644
--- a/gfx/thebes/moz.build
+++ b/gfx/thebes/moz.build
@@ -295,7 +295,10 @@ if CONFIG["MOZ_WAYLAND"]:
LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]
-DEFINES["GRAPHITE2_STATIC"] = True
+if CONFIG["MOZ_SYSTEM_GRAPHITE2"]:
+ CXXFLAGS += CONFIG["MOZ_GRAPHITE2_CFLAGS"]
+else:
+ DEFINES["GRAPHITE2_STATIC"] = True
if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
diff --git a/old-configure.in b/old-configure.in
index 2d2ad0b..f97051a 100644
--- a/old-configure.in
+++ b/old-configure.in
@@ -703,6 +703,27 @@ fi
AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID)
AC_SUBST(MOZ_MACBUNDLE_ID)
+dnl ========================================================
+dnl Check for graphite2
+dnl ========================================================
+if test -n "$MOZ_SYSTEM_GRAPHITE2"; then
+ dnl graphite2.pc has bogus version, check manually
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS"
+ AC_TRY_COMPILE([ #include <graphite2/Font.h>
+ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \
+ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \
+ * 100 + GR2_VERSION_BUGFIX >= \
+ (major) * 10000 + (minor) * 100 + (bugfix) )
+ ], [
+ #if !GR2_VERSION_REQUIRE(1,3,8)
+ #error "Insufficient graphite2 version."
+ #endif
+ ], [],
+ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])])
+ CFLAGS=$_SAVE_CFLAGS
+fi
+
dnl ========================================================
dnl = Child Process Name for IPC
dnl ========================================================
diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build
index 1d13418..31c8158 100644
--- a/toolkit/library/moz.build
+++ b/toolkit/library/moz.build
@@ -288,6 +288,9 @@ if CONFIG["MOZ_ANDROID_GOOGLE_VR"]:
"-lgvr",
]
+if CONFIG["MOZ_SYSTEM_GRAPHITE2"]:
+ OS_LIBS += CONFIG["MOZ_GRAPHITE2_LIBS"]
+
if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
OS_LIBS += CONFIG["MOZ_HARFBUZZ_LIBS"]
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
index 0c9e5fe..0c62ade 100644
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -718,6 +718,23 @@ def freetype2_combined_info(fontconfig_info, freetype2_info):
set_define("MOZ_HAVE_FREETYPE2", depends_if(freetype2_info)(lambda _: True))
+# Graphite2
+# ==============================================================
+option(
+ "--with-system-graphite2",
+ help="Use system graphite2 (located with pkgconfig)",
+ when=use_pkg_config,
+)
+
+@depends("--with-system-graphite2", when=use_pkg_config)
+def check_for_graphite2(value):
+ return bool(value)
+
+system_graphite2 = pkg_check_modules('MOZ_GRAPHITE2', 'graphite2',
+ when=check_for_graphite2)
+
+set_config('MOZ_SYSTEM_GRAPHITE2', depends_if(system_graphite2)(lambda _: True))
+
# HarfBuzz
# ==============================================================
option(
--
2.34.1

View File

@ -1,69 +0,0 @@
--- a/memory/mozalloc/throw_gcc.h 2022-02-02 17:33:38 UTC
+++ b/memory/mozalloc/throw_gcc.h
@@ -74,50 +74,66 @@ __throw_bad_function_call(void) {
mozalloc_abort("fatal: STL threw bad_function_call");
}
+#if !defined(_LIBCPP_VERSION)
MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_logic_error(
const char* msg) {
mozalloc_abort(msg);
}
+#endif // _LIBCPP_VERSION
+#if !defined(_LIBCPP_VERSION)
MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_domain_error(
const char* msg) {
mozalloc_abort(msg);
}
+#endif // _LIBCPP_VERSION
+#if !defined(_LIBCPP_VERSION)
MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void
__throw_invalid_argument(const char* msg) {
mozalloc_abort(msg);
}
+#endif // _LIBCPP_VERSION
+#if !defined(_LIBCPP_VERSION)
MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_length_error(
const char* msg) {
mozalloc_abort(msg);
}
+#endif // _LIBCPP_VERSION
+#if !defined(_LIBCPP_VERSION)
MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_out_of_range(
const char* msg) {
mozalloc_abort(msg);
}
+#endif // _LIBCPP_VERSION
MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_runtime_error(
const char* msg) {
mozalloc_abort(msg);
}
+#if !defined(_LIBCPP_VERSION)
MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_range_error(
const char* msg) {
mozalloc_abort(msg);
}
+#endif // _LIBCPP_VERSION
+#if !defined(_LIBCPP_VERSION)
MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void
__throw_overflow_error(const char* msg) {
mozalloc_abort(msg);
}
+#endif // _LIBCPP_VERSION
+#if !defined(_LIBCPP_VERSION)
MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void
__throw_underflow_error(const char* msg) {
mozalloc_abort(msg);
}
+#endif // _LIBCPP_VERSION
MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_ios_failure(
const char* msg) {

View File

@ -1,16 +0,0 @@
diff -Naur a/security/sandbox/linux/moz.build b/security/sandbox/linux/moz.build
--- a/security/sandbox/linux/moz.build 2023-07-04 13:57:56.029462755 +0300
+++ b/security/sandbox/linux/moz.build 2023-07-04 14:05:08.607221195 +0300
@@ -114,9 +114,9 @@
# gcc lto likes to put the top level asm in syscall.cc in a different partition
# from the function using it which breaks the build. Work around that by
# forcing there to be only one partition.
-for f in CONFIG["OS_CXXFLAGS"]:
- if f.startswith("-flto") and CONFIG["CC_TYPE"] != "clang":
- LDFLAGS += ["--param lto-partitions=1"]
+if CONFIG['CC_TYPE'] != 'clang':
+ LDFLAGS += ['--param', 'lto-partitions=1']
+
DEFINES["NS_NO_XPCOM"] = True
DisableStlWrapping()

View File

@ -1,35 +0,0 @@
From d8ec0bd6f3b0ad2dfd8a97a864f08decaafdea69 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Sun, 8 Jan 2017 19:16:38 -0600
Subject: [PATCH 10/30] musl: Add alternate name for private siginfo struct
member
musl does not provide a macro for detecting its presence. For now,
assume that it is the only non-glibc-based libc on Linux systems.
Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
---
security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc b/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
index 9884be8bb2..86d8f88e30 100644
--- a/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
+++ b/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
@@ -174,7 +174,11 @@ void Trap::SigSys(int nr, LinuxSigInfo* info, ucontext_t* ctx) {
// If the version of glibc doesn't include this information in
// siginfo_t (older than 2.17), we need to explicitly copy it
// into an arch_sigsys structure.
- memcpy(&sigsys, &info->_sifields, sizeof(sigsys));
+#if defined(__GLIBC__)
+ memcpy(&sigsys, &info->_sifields, sizeof(sigsys));
+#else
+ memcpy(&sigsys, &info->__si_fields, sizeof(sigsys));
+#endif
#endif
#if defined(__mips__)
--
2.34.1

View File

@ -1,76 +0,0 @@
--- firefox-111.0.1/build/moz.configure/rust.configure 2023-03-21 06:16:03.000000000 -0700
+++ firefox-111.0.1/build/moz.configure/rust.configure.new 2023-04-05 08:57:29.403219120 -0700
@@ -593,7 +593,7 @@
# ==============================================================
-option(env="RUSTFLAGS", nargs=1, help="Rust compiler flags")
+option(env="RUSTFLAGS", nargs=1, help="Rust compiler flags", comma_split=False)
set_config("RUSTFLAGS", depends("RUSTFLAGS")(lambda flags: flags))
--- firefox-111.0.1/python/mozbuild/mozbuild/configure/options.py 2023-03-21 06:16:09.000000000 -0700
+++ firefox-111.0.1/python/mozbuild/mozbuild/configure/options.py.new 2023-04-05 08:57:31.270193468 -0700
@@ -191,6 +191,10 @@
to instantiate an option indirectly. Set this to a positive integer to
force the script to look into a deeper stack frame when inferring the
`category`.
+ - `comma_split` specifies whether the value string should be split on
+ commas. The default is True. Setting it False is necessary for things
+ like compiler flags which should be a single string that may contain
+ commas.
"""
__slots__ = (
@@ -205,6 +209,7 @@
"possible_origins",
"category",
"define_depth",
+ "comma_split",
)
def __init__(
@@ -218,6 +223,7 @@
category=None,
help=None,
define_depth=0,
+ comma_split=True,
):
if not name and not env:
raise InvalidOptionError(
@@ -335,9 +341,10 @@
self.choices = choices
self.help = help
self.category = category or _infer_option_category(define_depth)
+ self.comma_split = comma_split
@staticmethod
- def split_option(option):
+ def split_option(option, comma_split=True):
"""Split a flag or variable into a prefix, a name and values
Variables come in the form NAME=values (no prefix).
@@ -350,7 +357,13 @@
elements = option.split("=", 1)
name = elements[0]
- values = tuple(elements[1].split(",")) if len(elements) == 2 else ()
+ if len(elements) == 2:
+ if comma_split:
+ values = tuple(elements[1].split(","))
+ else:
+ values = (elements[1],)
+ else:
+ values = ()
if name.startswith("--"):
name = name[2:]
if not name.islower():
@@ -426,7 +439,7 @@
% (option, origin, ", ".join(self.possible_origins))
)
- prefix, name, values = self.split_option(option)
+ prefix, name, values = self.split_option(option, self.comma_split)
option = self._join_option(prefix, name)
assert name in (self.name, self.env)

View File

@ -1,20 +0,0 @@
--- a/security/sandbox/linux/Sandbox.cpp 2023-07-10 20:29:48.000000000 +0100
+++ b/security/sandbox/linux/Sandbox.cpp 2023-07-15 09:13:43.561724668 +0100
@@ -18,6 +18,8 @@
#include <dirent.h>
#ifdef NIGHTLY_BUILD
# include "dlfcn.h"
+#else
+# include <dlfcn.h>
#endif
#include <errno.h>
#include <fcntl.h>
@@ -685,7 +687,7 @@
files->Add("/proc/stat", SandboxOpenedFile::Error{});
files->Add("/proc/net/unix", SandboxOpenedFile::Error{});
files->Add("/proc/self/maps", SandboxOpenedFile::Error{});
-
+ Unused << dlopen("libgcc_s.so.1", RTLD_GLOBAL|RTLD_LAZY);
// Finally, start the sandbox.
SetCurrentProcessSandbox(GetMediaSandboxPolicy(files));
}

View File

@ -1,42 +0,0 @@
From 1b46c0fc085fe93c36320d7ac1004c83efccdccc Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Sun, 8 Jan 2017 19:19:23 -0600
Subject: [PATCH 11/30] musl: Fix syscall wrappers
musl defines p{read,write}64 to their non-suffixed equivalents to avoid
duplication in its syscall wrappers. This breaks macro expansion here,
leading to errors such as:
In function size_t sys_pread64(int, void*, size_t, off_t):
error: '__NR_pread' was not declared in this scope
The fix here is to undefine the p{read,write}64 macros, so the syscall
expands to (e.g.) __NR_pread64 instead.
Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
---
.../src/third_party/lss/linux_syscall_support.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
index 1abe0ba5b0..d6087a1674 100644
--- a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
+++ b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
@@ -173,6 +173,13 @@ extern "C" {
# undef __NR_waitpid
#endif
+#ifdef pread64
+#undef pread64
+#endif
+#ifdef pwrite64
+#undef pwrite64
+#endif
+
/* As glibc often provides subtly incompatible data structures (and implicit
* wrapper functions that convert them), we provide our own kernel data
* structures for use by the system calls.
--
2.34.1

View File

@ -1,61 +0,0 @@
From: Sam James <sam@gentoo.org>
Subject: Allow RUST_TARGET override for detected Rust triplet (fixes musl build)
Respect RUST_TARGET from the environment to override Mozilla's
own triplet detection.
If the variable is unset, the old logic is used.
The issue is that Gentoo supports both, say:
- x86_64-unknown-linux-musl, and
- x86-64-gentoo-linux-musl
Our Rust is built to understand
-gentoo- as a vendor target, but
our Rust only actually includes
-unknown-.
Mozilla's configure sees -gentoo-
in CHOST and that Rust _understands_
-gentoo- and tries to use it, without
verifying that we actually have
-gentoo- installed as a Rust target.
This requires exporting RUST_TARGET
in the ebuild, possibly like:
````
inherit rust-toolchain
src_configure() {
[...]
export RUST_TARGET=$(rust_abi)
[...]
}
````
Inspired by Alpine's patch at
https://git.alpinelinux.org/aports/tree/community/firefox/fix-rust-target.patch?id=740922900cf8042be6751fcfcccdd3fc11bd77d3.
Bug: https://bugs.gentoo.org/748849
Bug: https://bugs.gentoo.org/779178
Bug: https://bugs.gentoo.org/836226
Thanks-to: Georgy Yakovlev <gyakovlev@gentoo.org>
--- a/build/moz.configure/rust.configure
+++ b/build/moz.configure/rust.configure
@@ -275,6 +275,7 @@ def rust_supported_targets(rustc):
return data
+@imports('os')
def detect_rustc_target(
host_or_target, compiler_info, arm_target, rust_supported_targets
):
@@ -396,7 +397,7 @@ def detect_rustc_target(
return None
- rustc_target = find_candidate(candidates)
+ rustc_target = os.environ.get('RUST_TARGET', find_candidate(candidates))
if rustc_target is None:
die("Don't know how to translate {} for rustc".format(host_or_target.alias))

View File

@ -1,96 +0,0 @@
diff --git a/config/external/moz.build b/config/external/moz.build
index 2fc8df57992e..63d18e50a961 100644
--- a/config/external/moz.build
+++ b/config/external/moz.build
@@ -40,8 +40,9 @@ if not CONFIG["MOZ_SYSTEM_LIBVPX"]:
external_dirs += ["media/libvpx"]
if CONFIG["MOZ_AV1"]:
- external_dirs += ["media/libaom"]
- external_dirs += ["media/libdav1d"]
+ if not CONFIG["MOZ_SYSTEM_AV1"]:
+ external_dirs += ["media/libaom"]
+ external_dirs += ["media/libdav1d"]
if not CONFIG["MOZ_SYSTEM_PNG"]:
external_dirs += ["media/libpng"]
diff --git a/dom/media/platforms/moz.build b/dom/media/platforms/moz.build
index 5c6e25b3980b..ce99ebfb6d3f 100644
--- a/dom/media/platforms/moz.build
+++ b/dom/media/platforms/moz.build
@@ -81,6 +81,11 @@ if CONFIG["MOZ_AV1"]:
"agnostic/AOMDecoder.cpp",
"agnostic/DAV1DDecoder.cpp",
]
+ if CONFIG['MOZ_SYSTEM_AV1']:
+ CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS']
+ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS']
+ CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS']
+ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS']
if CONFIG["MOZ_OMX"]:
EXPORTS += [
diff --git a/media/ffvpx/libavcodec/moz.build b/media/ffvpx/libavcodec/moz.build
index 761fc8cf4cd9..793a5b8697a8 100644
--- a/media/ffvpx/libavcodec/moz.build
+++ b/media/ffvpx/libavcodec/moz.build
@@ -120,10 +120,16 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']:
'vp9recon.c',
'vpx_rac.c',
]
- USE_LIBS += [
- 'dav1d',
- 'media_libdav1d_asm',
- ]
+ if CONFIG["MOZ_SYSTEM_AV1"]:
+ CFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS']
+ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS']
+ CFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS']
+ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS']
+ else:
+ USE_LIBS += [
+ 'dav1d',
+ 'media_libdav1d_asm',
+ ]
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
LOCAL_INCLUDES += ['/media/mozva']
SOURCES += [
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
index f93a5d64fec8..814357f4e979 100644
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -744,7 +744,23 @@ def av1(value):
return True
-@depends(target, when=av1 & compile_environment)
+option("--with-system-av1",
+ help="Use system av1 (located with pkgconfig)")
+
+system_libaom_info = pkg_check_modules("MOZ_SYSTEM_LIBAOM", "aom >= 1.0.0",
+ when="--with-system-av1")
+
+system_libdav1d_info = pkg_check_modules("MOZ_SYSTEM_LIBDAV1D", "dav1d >= 0.1.1",
+ when="--with-system-av1")
+
+@depends(system_libaom_info, system_libdav1d_info)
+def system_av1(system_libaom_info, system_libdav1d_info):
+ has_av1_libs = False
+ if system_libaom_info and system_libdav1d_info:
+ has_av1_libs = True
+ return has_av1_libs
+
+@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment)
def dav1d_asm(target):
if target.cpu in ("aarch64", "x86", "x86_64"):
return True
@@ -760,6 +776,7 @@ set_config("MOZ_DAV1D_ASM", dav1d_asm)
set_define("MOZ_DAV1D_ASM", dav1d_asm)
set_config("MOZ_AV1", av1)
set_define("MOZ_AV1", av1)
+set_config("MOZ_SYSTEM_AV1", depends_if(system_av1)(lambda _: True))
# JXL Image Codec Support
# ==============================================================

View File

@ -1,16 +0,0 @@
--- a/build/moz.configure/toolchain.configure 2024-03-16 22:53:15.409390707 +0000
+++ b/build/moz.configure/toolchain.configure 2024-03-16 22:57:02.661805132 +0000
@@ -2183,10 +2183,10 @@
set_define("_LIBCPP_HIDE_FROM_ABI", libcxx_override_visibility.hide_from_abi)
-@depends(target, build_environment)
-def visibility_flags(target, env):
+@depends(target, build_environment, c_compiler)
+def visibility_flags(target, env, c_compiler):
if target.os != "WINNT":
- if target.kernel == "Darwin":
+ if target.kernel == "Darwin" or (c_compiler.type == "clang" and c_compiler.version >= "17.0.0"):
return ("-fvisibility=hidden", "-fvisibility-inlines-hidden")
return (
"-I%s/system_wrappers" % os.path.join(env.dist),

View File

@ -1,13 +0,0 @@
diff '--color=auto' -Naur a/build/moz.configure/flags.configure b/build/moz.configure/flags.configure
--- a/build/moz.configure/flags.configure 2024-07-08 20:04:44.944708403 +0300
+++ b/build/moz.configure/flags.configure 2024-07-08 20:13:30.867064722 +0300
@@ -197,9 +197,6 @@
check_and_add_flag("-pipe", when=building_with_gcc)
-check_and_add_linker_flag("-Wl,--build-id=uuid", when=check_build_id_uuid)
-check_and_add_linker_flag("-Wl,--build-id=sha1", when=check_build_id_sha1)
-
check_and_add_asm_flag("-Wa,--noexecstack", when=building_with_gnu_compatible_cc)
check_and_add_linker_flag("-Wl,-z,noexecstack", when=building_with_gnu_compatible_cc)
check_and_add_linker_flag("-Wl,-z,text", when=building_with_gnu_compatible_cc)

View File

@ -1,14 +0,0 @@
diff -Naur a/media/ffvpx/libavcodec/moz.build b/media/ffvpx/libavcodec/moz.build
--- a/media/ffvpx/libavcodec/moz.build 2024-06-07 00:33:58.000000000 +0300
+++ b/media/ffvpx/libavcodec/moz.build 2024-06-10 21:13:44.142620997 +0300
@@ -143,6 +143,10 @@
c11_flags = ["-std=gnu11"]
if CONFIG["CC_TYPE"] == "clang-cl":
c11_flags.insert(0, "-Xclang")
+
+if CONFIG["CC_TYPE"] == "gcc" and int(CONFIG["CC_VERSION"].split(".")[0]) >= 14:
+ c11_flags.insert(0, "-Wno-error=incompatible-pointer-types")
+
CFLAGS += c11_flags
if not CONFIG["MOZ_SYSTEM_LIBVPX"]:

View File

@ -1,368 +0,0 @@
diff --git a/widget/gtk/MozContainerSurfaceLock.cpp b/widget/gtk/MozContainerSurfaceLock.cpp
new file mode 100644
--- /dev/null
+++ b/widget/gtk/MozContainerSurfaceLock.cpp
@@ -0,0 +1,31 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * 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 "MozContainerSurfaceLock.h"
+#include "MozContainer.h"
+#include "WidgetUtilsGtk.h"
+
+using namespace mozilla::widget;
+
+MozContainerSurfaceLock::MozContainerSurfaceLock(MozContainer* aContainer) {
+#ifdef MOZ_WAYLAND
+ mContainer = aContainer;
+ if (GdkIsWaylandDisplay()) {
+ // mSurface can be nullptr if we lock hidden MozContainer and
+ // that's correct, MozContainer is still locked.
+ mSurface = moz_container_wayland_surface_lock(aContainer);
+ }
+#endif
+}
+
+MozContainerSurfaceLock::~MozContainerSurfaceLock() {
+#ifdef MOZ_WAYLAND
+ if (GdkIsWaylandDisplay()) {
+ moz_container_wayland_surface_unlock(mContainer, &mSurface);
+ }
+#endif
+}
+
+struct wl_surface* MozContainerSurfaceLock::GetSurface() { return mSurface; }
diff --git a/widget/gtk/MozContainerSurfaceLock.h b/widget/gtk/MozContainerSurfaceLock.h
new file mode 100644
--- /dev/null
+++ b/widget/gtk/MozContainerSurfaceLock.h
@@ -0,0 +1,28 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * 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/. */
+
+#ifndef widget_gtk_MozContainerSurfaceLock_h
+#define widget_gtk_MozContainerSurfaceLock_h
+
+struct wl_surface;
+struct _MozContainer;
+typedef struct _MozContainer MozContainer;
+
+class MozContainerSurfaceLock {
+ public:
+ explicit MozContainerSurfaceLock(MozContainer* aContainer);
+ ~MozContainerSurfaceLock();
+
+ // wl_surface can be nullptr if we lock hidden MozContainer.
+ struct wl_surface* GetSurface();
+
+ private:
+#ifdef MOZ_WAYLAND
+ MozContainer* mContainer = nullptr;
+#endif
+ struct wl_surface* mSurface = nullptr;
+};
+
+#endif // widget_gtk_MozContainerSurfaceLock_h
diff --git a/widget/gtk/MozContainerWayland.cpp b/widget/gtk/MozContainerWayland.cpp
--- a/widget/gtk/MozContainerWayland.cpp
+++ b/widget/gtk/MozContainerWayland.cpp
@@ -82,33 +82,16 @@ using namespace mozilla;
using namespace mozilla::widget;
static bool moz_container_wayland_surface_create_locked(
const MutexAutoLock& aProofOfLock, MozContainer* container);
static void moz_container_wayland_set_opaque_region_locked(
const MutexAutoLock& aProofOfLock, MozContainer* container,
const LayoutDeviceIntRegion&);
-// Lock mozcontainer and get wayland surface of it. You need to pair with
-// moz_container_wayland_surface_unlock() even
-// if moz_container_wayland_surface_lock() fails and returns nullptr.
-static struct wl_surface* moz_container_wayland_surface_lock(
- MozContainer* container);
-static void moz_container_wayland_surface_unlock(MozContainer* container,
- struct wl_surface** surface);
-
-MozContainerSurfaceLock::MozContainerSurfaceLock(MozContainer* aContainer) {
- mContainer = aContainer;
- mSurface = moz_container_wayland_surface_lock(aContainer);
-}
-MozContainerSurfaceLock::~MozContainerSurfaceLock() {
- moz_container_wayland_surface_unlock(mContainer, &mSurface);
-}
-struct wl_surface* MozContainerSurfaceLock::GetSurface() { return mSurface; }
-
// Invalidate gtk wl_surface to commit changes to wl_subsurface.
// wl_subsurface changes are effective when parent surface is commited.
static void moz_container_wayland_invalidate(MozContainer* container) {
LOGWAYLAND("moz_container_wayland_invalidate [%p]\n",
(void*)moz_container_get_nsWindow(container));
GdkWindow* window = gtk_widget_get_window(GTK_WIDGET(container));
if (!window) {
diff --git a/widget/gtk/MozContainerWayland.h b/widget/gtk/MozContainerWayland.h
--- a/widget/gtk/MozContainerWayland.h
+++ b/widget/gtk/MozContainerWayland.h
@@ -8,16 +8,17 @@
#ifndef __MOZ_CONTAINER_WAYLAND_H__
#define __MOZ_CONTAINER_WAYLAND_H__
#include <gtk/gtk.h>
#include <functional>
#include <vector>
#include "mozilla/Mutex.h"
#include "WindowSurface.h"
+#include "MozContainerSurfaceLock.h"
/*
* MozContainer
*
* This class serves three purposes in the nsIWidget implementation.
*
* - It provides objects to receive signals from GTK for events on native
* windows.
@@ -56,25 +57,22 @@ struct MozContainerWayland {
mozilla::Mutex container_lock{"MozContainerWayland::container_lock"};
};
struct _MozContainer;
struct _MozContainerClass;
typedef struct _MozContainer MozContainer;
typedef struct _MozContainerClass MozContainerClass;
-class MozContainerSurfaceLock {
- MozContainer* mContainer;
- struct wl_surface* mSurface;
-
- public:
- explicit MozContainerSurfaceLock(MozContainer* aContainer);
- ~MozContainerSurfaceLock();
- struct wl_surface* GetSurface();
-};
+// Lock mozcontainer and get wayland surface of it. You need to pair with
+// moz_container_wayland_surface_unlock() even
+// if moz_container_wayland_surface_lock() fails and returns nullptr.
+struct wl_surface* moz_container_wayland_surface_lock(MozContainer* container);
+void moz_container_wayland_surface_unlock(MozContainer* container,
+ struct wl_surface** surface);
void moz_container_wayland_map(GtkWidget*);
gboolean moz_container_wayland_map_event(GtkWidget*, GdkEventAny*);
void moz_container_wayland_size_allocate(GtkWidget*, GtkAllocation*);
void moz_container_wayland_unmap(GtkWidget*);
struct wl_egl_window* moz_container_wayland_get_egl_window(
MozContainer* container, double scale);
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
--- a/widget/gtk/moz.build
+++ b/widget/gtk/moz.build
@@ -28,16 +28,17 @@ if CONFIG["MOZ_WAYLAND"]:
if CONFIG["MOZ_ENABLE_VAAPI"]:
DIRS += ["vaapitest"]
if CONFIG["MOZ_ENABLE_V4L2"]:
DIRS += ["v4l2test"]
EXPORTS += [
"MozContainer.h",
+ "MozContainerSurfaceLock.h",
"nsGTKToolkit.h",
"nsGtkUtils.h",
"nsImageToPixbuf.h",
]
EXPORTS.mozilla += [
"GfxInfo.h",
"GfxInfoUtils.h",
@@ -66,16 +67,17 @@ UNIFIED_SOURCES += [
"DMABufLibWrapper.cpp",
"DMABufSurface.cpp",
"GfxInfo.cpp",
"gtk3drawing.cpp",
"GtkCompositorWidget.cpp",
"IMContextWrapper.cpp",
"InProcessGtkCompositorWidget.cpp",
"MozContainer.cpp",
+ "MozContainerSurfaceLock.cpp",
"MPRISServiceHandler.cpp",
"NativeKeyBindings.cpp",
"NativeMenuGtk.cpp",
"NativeMenuSupport.cpp",
"nsApplicationChooser.cpp",
"nsAppShell.cpp",
"nsBidiKeyboard.cpp",
"nsClipboard.cpp",
@@ -109,16 +111,17 @@ if CONFIG["MOZ_WAYLAND"]:
UNIFIED_SOURCES += [
"MozContainerWayland.cpp",
"nsClipboardWayland.cpp",
"nsWaylandDisplay.cpp",
"WaylandBuffer.cpp",
"WindowSurfaceWaylandMultiBuffer.cpp",
]
EXPORTS.mozilla.widget += [
+ "MozContainerSurfaceLock.h",
"MozContainerWayland.h",
"nsWaylandDisplay.h",
"WaylandBuffer.h",
]
if CONFIG["MOZ_X11"]:
UNIFIED_SOURCES += [
"nsClipboardX11.cpp",
diff --git a/widget/gtk/GtkCompositorWidget.cpp b/widget/gtk/GtkCompositorWidget.cpp
--- a/widget/gtk/GtkCompositorWidget.cpp
+++ b/widget/gtk/GtkCompositorWidget.cpp
@@ -206,10 +206,14 @@ void GtkCompositorWidget::SetRenderingSu
}
#ifdef MOZ_LOGGING
bool GtkCompositorWidget::IsPopup() {
return mWidget ? mWidget->IsPopup() : false;
}
#endif
+UniquePtr<MozContainerSurfaceLock> GtkCompositorWidget::LockSurface() {
+ return mWidget->LockSurface();
+}
+
} // namespace widget
} // namespace mozilla
diff --git a/widget/gtk/GtkCompositorWidget.h b/widget/gtk/GtkCompositorWidget.h
--- a/widget/gtk/GtkCompositorWidget.h
+++ b/widget/gtk/GtkCompositorWidget.h
@@ -5,16 +5,18 @@
#ifndef widget_gtk_GtkCompositorWidget_h
#define widget_gtk_GtkCompositorWidget_h
#include "GLDefs.h"
#include "mozilla/DataMutex.h"
#include "mozilla/widget/CompositorWidget.h"
#include "WindowSurfaceProvider.h"
+#include "mozilla/UniquePtr.h"
+#include "MozContainerSurfaceLock.h"
class nsIWidget;
class nsWindow;
namespace mozilla {
namespace layers {
class NativeLayerRootWayland;
@@ -91,16 +93,18 @@ class GtkCompositorWidget : public Compo
RefPtr<mozilla::layers::NativeLayerRoot> GetNativeLayerRoot() override;
#endif
// PlatformCompositorWidgetDelegate Overrides
void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override;
GtkCompositorWidget* AsGtkCompositorWidget() override { return this; }
+ UniquePtr<MozContainerSurfaceLock> LockSurface();
+
private:
#if defined(MOZ_WAYLAND)
void ConfigureWaylandBackend();
#endif
#if defined(MOZ_X11)
void ConfigureX11Backend(Window aXWindow, bool aShaped);
#endif
#ifdef MOZ_LOGGING
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -10271,8 +10271,15 @@ void nsWindow::SetDragSource(GdkDragCont
mSourceDragContext = aSourceDragContext;
if (IsPopup() &&
(widget::GdkIsWaylandDisplay() || widget::IsXWaylandProtocol())) {
if (auto* menuPopupFrame = GetMenuPopupFrame(GetFrame())) {
menuPopupFrame->SetIsDragSource(!!aSourceDragContext);
}
}
}
+
+UniquePtr<MozContainerSurfaceLock> nsWindow::LockSurface() {
+ if (mIsDestroyed) {
+ return nullptr;
+ }
+ return MakeUnique<MozContainerSurfaceLock>(mContainer);
+}
diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
--- a/widget/gtk/nsWindow.h
+++ b/widget/gtk/nsWindow.h
@@ -8,16 +8,17 @@
#ifndef __nsWindow_h__
#define __nsWindow_h__
#include <gdk/gdk.h>
#include <gtk/gtk.h>
#include "CompositorWidget.h"
#include "MozContainer.h"
+#include "MozContainerSurfaceLock.h"
#include "VsyncSource.h"
#include "mozilla/EventForwards.h"
#include "mozilla/Maybe.h"
#include "mozilla/RefPtr.h"
#include "mozilla/TouchEvents.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/RWLock.h"
#include "mozilla/widget/WindowSurface.h"
@@ -416,16 +417,18 @@ class nsWindow final : public nsBaseWidg
static bool TitlebarUseShapeMask();
bool IsRemoteContent() { return HasRemoteContent(); }
void NativeMoveResizeWaylandPopupCallback(const GdkRectangle* aFinalSize,
bool aFlippedX, bool aFlippedY);
static bool IsToplevelWindowTransparent();
static nsWindow* GetFocusedWindow();
+ mozilla::UniquePtr<MozContainerSurfaceLock> LockSurface();
+
#ifdef MOZ_WAYLAND
// Use xdg-activation protocol to transfer focus from gFocusWindow to aWindow.
static void TransferFocusToWaylandWindow(nsWindow* aWindow);
void FocusWaylandWindow(const char* aTokenID);
bool GetCSDDecorationOffset(int* aDx, int* aDy);
bool SetEGLNativeWindowSize(const LayoutDeviceIntSize& aEGLWindowSize);
void WaylandDragWorkaround(GdkEventButton* aEvent);
diff --git a/gfx/webrender_bindings/RenderCompositorEGL.cpp b/gfx/webrender_bindings/RenderCompositorEGL.cpp
--- a/gfx/webrender_bindings/RenderCompositorEGL.cpp
+++ b/gfx/webrender_bindings/RenderCompositorEGL.cpp
@@ -149,16 +149,26 @@ RenderedFrameId RenderCompositorEGL::End
const auto width = right - left;
const auto height = bottom - top;
bufferInvalid.OrWith(
gfx::IntRect(left, (GetBufferSize().height - bottom), width, height));
}
gl()->SetDamage(bufferInvalid);
}
+
+#ifdef MOZ_WIDGET_GTK
+ // Rendering on Wayland has to be atomic (buffer attach + commit) and
+ // wayland surface is also used by main thread so lock it before
+ // we paint at SwapBuffers().
+ UniquePtr<MozContainerSurfaceLock> lock;
+ if (auto* gtkWidget = mWidget->AsGTK()) {
+ lock = gtkWidget->LockSurface();
+ }
+#endif
gl()->SwapBuffers();
return frameId;
}
void RenderCompositorEGL::Pause() { DestroyEGLSurface(); }
bool RenderCompositorEGL::Resume() {
if (kIsAndroid) {

View File

@ -1,16 +0,0 @@
bgo#925101 for some unknown reason some users are having issues with pgo crashing. Forcing software
rendering to be used while pgo'ing doesn't have an impact in performance, as hwaccel isn't used
during pgo even when it works. The issue could be caused by wrongly/automatically
configured/detected gpu access anyway. The issue seems related to mesa, but hard to pinpoint.
diff '--color=auto' -Naur a/testing/profiles/profileserver/user.js b/testing/profiles/profileserver/user.js
--- a/testing/profiles/profileserver/user.js 2024-07-11 10:37:53.889115118 +0300
+++ b/testing/profiles/profileserver/user.js 2024-07-11 10:40:23.086996283 +0300
@@ -11,3 +11,6 @@
user_pref("extensions.webextensions.warnings-as-errors", false);
// Turn off update
user_pref("app.update.disabledForTesting", true);
+// bgo#925101 mesa issues with pgo, force software rendering during pgo
+user_pref("gfx.webrender.software", true);
+

View File

@ -1,28 +1,44 @@
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# powER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Jakub Schmidtke <sjakub@gmail.com>
pkgname=firefox
pkgver=130.0.1
pkgrel=1.1
pkgdesc="Standalone web browser from mozilla.org"
arch=(x86_64 powerpc64le powerpc64 riscv64)
pkgver=133.0.3
pkgrel=1
pkgdesc="Fast, Private & Safe Web Browser"
url="https://www.mozilla.org/firefox/"
license=(
GPL
LGPL
MPL
)
arch=(x86_64 powerpc64le riscv64)
license=(MPL-2.0)
depends=(
alsa-lib
at-spi2-core
bash
cairo
dbus
ffmpeg
fontconfig
freetype2
gcc-libs
gdk-pixbuf2
glib2
glibc
gtk3
hicolor-icon-theme
libpulse
libx11
libxcb
libxcomposite
libxdamage
libxext
libxfixes
libxrandr
libxss
libxt
mime-types
nspr
nss
pango
ttf-font
)
makedepends=(
@ -30,13 +46,11 @@ makedepends=(
clang
diffutils
imake
inetutils
jack
llvm
mesa
nasm
nodejs-lts-iron
python
python311
rust
unzip
wasi-compiler-rt
@ -46,90 +60,71 @@ makedepends=(
xorg-server-xvfb
zip
)
makedepends_x86_64=(
lld
nasm
yasm
)
optdepends=(
'hunspell-en_US: Spell checking, American English'
'libnotify: Notification integration'
'networkmanager: Location detection via available WiFi networks'
'pulseaudio: Audio support'
'speech-dispatcher: Text-to-Speech'
'xdg-desktop-portal: Screensharing with Wayland'
)
makedepends_powerpc64=(lld)
makedepends_powerpc64le=(lld)
makedepends_x86_64=(lld yasm)
options=(
!ccache
!debug
!emptydirs
!lto
!makeflags
)
source=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz{,.asc}
$pkgname.desktop
identity-icons-brand.svg
0001-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch
0002-bmo-1196777-Set-GDK_FOCUS_CHANGE_MASK.patch
0003-enable-vaapi-on-all-amd-cards.patch
0004-big-endian-image-decoders.patch
0005-build-Disable-Werror.patch
0006-hotfix-ppc-not-power8.patch
0007-musl-Set-pthread-name-for-non-glibc-systems.patch
0008-musl-sys-auvx.h-avaliable-on-more-then-just-glibc-sy.patch
0009-musl-make-SYS_fork-non-fatal-musl-uses-it-for-fork-2.patch
0010-Fortify-sources-properly.patch
0011-bmo-847568-Support-system-harfbuzz.patch
0012-bgo-816975-fix-build-on-x86.patch
0013-bmo-847568-Support-system-graphite2.patch
0014-bmo-1754469-memory_mozalloc_throw.patch
0015-bmo-1516803-gcc-lto-sandbox.patch
0016-musl-Add-alternate-name-for-private-siginfo-struct-m.patch
#0017-bgo-907963-rustflags-single-string.patch
0018-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch
0019-musl-Fix-syscall-wrappers.patch
#0020-bmo-1862601-system-icu-74.patch
0021-bgo-748849-RUST_TARGET_override.patch
0022-bmo-1559213-Support-system-av1.patch
0023-bmo-1874059-fix-libcxx-18.patch
0024-dont-use-build-id.patch
0025-mozilla-bundled-ffmpeg-7-gcc-14-incompatible-pointer-types.patch
0027-bgo-925101-force-software-rendering-during-pgo-build.patch
0028-musl-Only-use-system-heap-reporter-with-glibc.patch
firefox-pgo.patch)
b2sums=('2d6496a4f476a5a276b70de43f5d58ce2a44007b754e05fcf757d4c1a1cdfcab910493f48e6a6e608b9719ab73cf56c066de56a4abc08ca42e83aa76f4f80c38'
'SKIP'
'51d7eb22cb568f0437ece2433091d8b54012324edd2fe52ec52cc00f1ad0d4bd84a4d549d78b4d77bbd6ae1c1e7d029d9d4dbff61c60f714362ef791f09fba8b'
'63a8dd9d8910f9efb353bed452d8b4b2a2da435857ccee083fc0c557f8c4c1339ca593b463db320f70387a1b63f1a79e709e9d12c69520993e26d85a3d742e34'
'6dc2566cb910a35ecc943d56aac5b0a863681513e4e3f6b95e5c718fe13e6b4e6d6b8e3efa786e9647e71aee71190c284b2911f0753c01680090642562fbc86d'
'ebfaf3caa444cf21c6cc49e53682a686916addf11e5e12ebf3c4efff8236cce8f135e05321eff1a45d6d1f03cd548b5d75dfa6fe00a09e7a0a00e2294ffa001f'
'f565ea3fb687f19a0660429cd9b9f9280a9a0c28407c4c70544a3d0e74dcf05b158facd1e7b9e16635f623bf08876e495e4ce398b26f7ffc5c20c1f6c18a4702'
'5cbf300eb5706ccdc891c02076dc2607b12e218ba88963fde8fe1c3ae6ac2ea090d56b46cff4b4b4b02a8a3dbe6873c60f79088474f31db5f82189800eaeceaa'
'e4b6afe78e298b76cf5c8d618cb15a1de43cfc790d2f4c7be0a597019f2a182bd70843b2e23d99d5e382a2bc2cc38fcf7cd0735b16dd32146eaf73d680560eab'
'58e171381691559846838dd13ec6502e0a7c04d3aa20b8c024b1bb582e6db6ea03dbe819f629e51d2ff0185699ae99cecf3d688b6d40f7e196f19fd564c1e59d'
'fb3cf661e39ece0e620c9e548b258bd47ff620fbf3cb5f4e6b3d238a3c85300bf2923fc77c895237f8ecf288856c74e001e273f129d94932f70f6eadf38895db'
'7bd93fe1fbb09474edc19f70af2a1dc2c74b6f359b24de7632df858262fc744917b1e9763425a952e617e7586aecc7b3b5fc4b60346da4216cbe011aef7f7f50'
'116cccbd88615da1692bd87cb69927716f6807c60020c430e588e867b3790ed461645b06a0a3e633af54750357980d68d7d9d9cb15436234cc4efcffad1d7fbb'
'ad2ab01b250099da792f03208d8aa10b57d139252392ecf8a6c603141716b46d7744023e6bb1de63c8d64346de12646d50d546acaa7367e83a03e4e76a80606c'
'e0e0970052d84c17696c882adc6d69874579612129115e6a908d33cfe44b0995b827218a3d4b990870cfb071f8daeb30cafb61662fac03a87f818f44dc33722f'
'fede1c6522551ce861bb32e88a0aa1cf46b3a91aeb744ccf436865209119bb128360b9527944bbe494cf60dcc034ce63f851516baefc636ddd437a3d2da0ce13'
'208f6cb88ff0f2d91c53e0f88f609b362d408c8f78781b0f0589abf0cec31e87ebf834468f99762d8b9561476081940fc091a7f7c31f3c81ca436c24b16ab527'
'299488ab8b306ba12a0fc0db448327a6730d64d8ce24e6ce722e0e514de0a346f512ac62c5dd059177643ff435bfbcfc93f4ea062fcbe49cbb811679c36e8f72'
'5005189c0f725c194c3100a764e384d9d9fb89d063edb9549dd7755cce7f8a919888dc22b65857756712589253b5d91e6cb7d9ea5def460ae7973298dc413d19'
'8db41acb5cf8f46921a1482cd3a7142b2f88a09ebf54fcb93dfc225972e638786fb48bf11b5e4b61503ee8615a75bd9f6103cf31c6b43d05031f6f0e4e9e88a0'
'827beddafbcea1f42787e56591d94f7b605a2439b30553fe2d4d258499bb165b9d534145620ded11a9279a09735a8fcc303b46258123e4760d7a5bff89ece3c3'
'8de8369b9658477626923054a5fcdafa4233d11a6da391cb36d9d5a0234b275fab9c57c4e72998aff515b41914fe547b99424b9dbfd34bfe833426ebc353211e'
'8e9e8724a79f7f4628d737b3b550ab605664c3db52168121d3193b03568290e6516661ff6063a3f05e3cd63efc744cbc8964b0003540372af83180101ac5c252'
'ca6dc0c133a8b4ada8ff7678b0f1eab980a1e66ebdd68b12d14d2f15c01a70628907e62263f11fbf44a7e6e15e5d1fb75134b08839ec858ace6bd00cb822b27c'
'76bcaaf9910d50d2d03600737c4d0e5c02642e9965576421dbb3d2eff728eeda513e34c0d02c1be12bab880fc613a2e93da5149b867e825f7592f54efe30c5f5'
'9e2c7939aaf316b8acbc3706bd52195691d1ac8e72807376deebdc5d4a30733c439f0ec39cf8b9017dfeb9d297fdcbe0846297d160c9285c6a04e505ade4c25d'
'a5104a4944aecbca7413f8ca024785f1e22fced0adb28a5fbb8693cdb6ff7398b7011a145d59aed51e90aed3285307f6efca382185c3c5e0590992f15b1464e7'
'272d6a0182c005b5598c8fe0b90c1b8e6a923a6b6da5a22c7fafead9cda7ee8c1257a45ed0d9a3946e580e056516a6079c87fc31d6a269be23572be39c3a4ee4'
'08b01926bc3fc6d722396a935e2ecc8a47f7589bf150eac25674fad7adbc24474e75d76502b2c1bc465f4c5bae93f5eb505bcb05744f0b4a6ed8416e8d5c2c72'
'31dfc620b032b9315c2f6eb876d4b9a418eb9e6e89a212b1b847cfd96f13160f1d170ba7752c7a8caa3835e83232e86e4df923fd80e536c0f93d9f8c7387d8fe')
source=(
https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz{,.asc}
$pkgname-symbolic.svg
$pkgname.desktop
org.mozilla.$pkgname.metainfo.xml
0001-Install-under-remoting-name.patch
firefox-pgo.patch
ffmpeg-cleanup.patch
hotfix-gcc14.patch
hotfix-no-pip-check.patch
hotfix-wgpu-atomicu64.patch
riscv.patch
sandbox-fonts.patch
sandbox-x11.patch
)
validpgpkeys=(
# Mozilla Software Releases <release@mozilla.com>
# https://blog.mozilla.org/security/2023/05/11/updated-gpg-key-for-signing-firefox-releases/
14F26682D0916CDD81E37B6D61B7B526D98F0353
)
sha256sums=('f134a5420200bb03ab460f9d2867507c0edb222ce73faf4064cdbea02a0aca1b'
'SKIP'
'a9b8b4a0a1f4a7b4af77d5fc70c2686d624038909263c795ecc81e0aec7711e9'
'71fe797430198ac8c00b538dce537284cf526e48be0496698cf5a980d70c16da'
'58d78ce57b3ee936bc966458d6b20ab142d02a897bbe924b3f26717af0c5bee1'
'883ca2fa723a7572269d18559d5b82412782ad63e5dd3820eeb0540e3fe34314'
'0af4fc9150fbc7423656af8413fb352a7ae885a7a4bc5a12a9d7e330747f91ef'
'15fdd2e1ffe314eaee6685ae5178c4089477837d4ed49ba7fc6458d8dedc6c08'
'9903247f113d74a7ae0b68739639beaef61300c7611bb6beb1f718b054f34f4d'
'184e929778342487bcdb87d30b37c36cb7dc2eedfc4de415c6d06d1fe0bef0e0'
'226932fe11fcb84058306ca94d264ee9e2de3ec905e42bfad565571fea038a18'
'ee34d6236aed46d629e88a7a254915f330c892e8aeb9063a136d8c712dfd5d24'
'21888aab6b7580cba83c9260108711137e2d3c1a87689fb2ca03375a0c1446d6'
'5078bcaa6e7b5696bf539c753b1da9283571b2d8175b866275fe28a9ab0aad43')
b2sums=('e686408397a886e36ead739851ec190f108db2bda92b7147ec16c12233459dc23ab256ba125fb8902fb2a855ea76d9cb02e6c55ea62e7639f8700dba6bae9acb'
'SKIP'
'63a8dd9d8910f9efb353bed452d8b4b2a2da435857ccee083fc0c557f8c4c1339ca593b463db320f70387a1b63f1a79e709e9d12c69520993e26d85a3d742e34'
'2c7936949ef922307fb593bd0480a13bde2eab8ae24fc89071d809d6659384705f9b7838b1ae8bc46b98a152ba01fcffad606d4c84796ad9bfaaf20166f0a0fd'
'2ce33432f8a73a4f1a412b7a065d3c124e1ca9f6bdf3fad0407e897efc0840f8ef43eeeb1b9bef4a102d9fac0b2c4a2ef205726b817f83fe9c3742d076778b14'
'8a894b01e405b628877483e40e9b018647977cb053b6af02afc901ed24d6e1f767f3db8c321070e33aea4a05ba16f1eb47ae600e5299b5f9caad03d20ba38cf5'
'31dfc620b032b9315c2f6eb876d4b9a418eb9e6e89a212b1b847cfd96f13160f1d170ba7752c7a8caa3835e83232e86e4df923fd80e536c0f93d9f8c7387d8fe'
'fe679b79ec3f7a8368772554a8745eac71114d33c4aefcb315b51fae3633e1b0e0392325b8ef59abddc262ab57aad54eb976d90eebeec7cd7e5c31de578897cc'
'0a831d3cc36c00ed8c8cf027f9b360e510f7fd86efd260dc5ec3d87e0564a45943de9c91e5c4a8fd5820d3dd7998c11a2ad87194f7f92a5468dfc6a0291235c5'
'cedf9057e0e86f25cc6bce5a27baff9e5d090bbb265d584a00e1c7dc17a0fff9c9360c26302ef589b6d96e536db3003b94597035fcac86d71d96f086f2300fb0'
'695ee838eb74727f553e570cc88b0748e4b893b26e12d399912ccc7beaf406935f25ae44f42f2e3f754e3ca537103151afaf154b688bd2b305504d84b458a79a'
'7e7e6df1bb31b3f0122a3efd29b340ed0c7f44e0c3d6c156f1e78cb5614fc4591de1c6c8227550dd2bfe0006bc6ede4f58dde2c21fdbbd4d3a58c4ce70a0025c'
'f542dda6798de78f4144e6dfb0149a218bd4313e6827b40d0e104edbef2a3cac3a4ff00e499ee7c0e90aee9feed7ac83f0c07a423231bce3719b71b76aaf147f'
'3589e5228bd3178c7f6744cf0b2a6bff12cb0622766cba11384cb015c0b824926e5a1d910462add6d26f907ec039c10e9d811824f5ed7014447b51fbe800d85a')
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch POWER use ONLY. For your own distribution, please
@ -137,174 +132,122 @@ validpgpkeys=(
# more information.
_google_api_key=AIzaSyDgkw4O3LM0Jnr2N7Wq2NG7iUVzRU5sBaA
# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: These are for Arch Linux POWER use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact alex.bldck@gmail.com for
# more information.
_mozilla_api_key=de0473f2-d53f-46da-956c-6aff61bda3ab
prepare() {
mkdir -p mozbuild
cd ${srcdir}/firefox-$pkgver
mkdir mozbuild
cd firefox-$pkgver
local src
for src in "${source[@]}"; do
src="${src%%::*}"
src="${src##*/}"
src="${src%.zst}"
[[ $src = *.patch ]] || continue
echo "Applying patch $src..."
patch -Np1 < "../$src"
done
# Make different channels installable in parallel
patch -Np1 -i ../0001-Install-under-remoting-name.patch
case "${CARCH}" in
powerpc64*)
;;
*)
patch -R -Np1 -i ${srcdir}/0006-hotfix-ppc-not-power8.patch
patch -R -Np1 -i ${srcdir}/firefox-pgo.patch
;;
esac
# Classilla's PGO patch
patch -Np1 -i ${srcdir}/firefox-pgo.patch
sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/num-traits/.cargo-checksum.json
# Lovely T2 touches
patch -Np1 -i ${srcdir}/ffmpeg-cleanup.patch
patch -Np1 -i ${srcdir}/hotfix-gcc14.patch
patch -Np1 -i ${srcdir}/hotfix-no-pip-check.patch
patch -Np1 -i ${srcdir}/hotfix-wgpu-atomicu64.patch
patch -Np1 -i ${srcdir}/riscv.patch
patch -Np1 -i ${srcdir}/sandbox-fonts.patch
patch -Np1 -i ${srcdir}/sandbox-x11.patch
echo -n "$_google_api_key" >$srcdir/google-api-key
echo -n "$_mozilla_api_key" >$srcdir/mozilla-api-key
sed -i 's/\("files":{[^,]*\),[^}]*}/\1}/' third_party/rust/*/.cargo-checksum.json
cat >${srcdir}/mozconfig <<END
echo -n "$_google_api_key" >google-api-key
cat >../mozconfig <<END
ac_add_options --enable-application=browser
mk_add_options MOZ_OBJDIR=${PWD@Q}/obj
ac_add_options --prefix=/usr
ac_add_options --enable-optimize
ac_add_options --enable-release
ac_add_options --enable-hardening
ac_add_options --enable-jemalloc
ac_add_options --enable-optimize
ac_add_options --enable-rust-simd
ac_add_options --enable-linker=bfd
export LDFLAGS="${LDFLAGS} -Wl,-rpath=/usr/lib/firefox"
mk_add_options MOZ_MAKE_FLAGS="${MAKEFLAGS}"
ac_add_options --disable-install-strip
ac_add_options --disable-bootstrap
# Branding
ac_add_options --enable-official-branding
ac_add_options --enable-update-channel=release
ac_add_options --with-distribution-id=org.archlinuxpower
ac_add_options --with-unsigned-addon-scopes=app,system
export MOZ_APP_REMOTINGNAME=${pkgname//-/}
export MOZ_TELEMETRY_REPORTING=1
export MOZ_REQUIRE_SIGNING=1
ac_add_options --allow-addon-sideload
export MOZILLA_OFFICIAL=1
export MOZ_APP_REMOTINGNAME=$pkgname
# Keys
ac_add_options --with-google-location-service-api-keyfile=${srcdir}/google-api-key
ac_add_options --with-google-safebrowsing-api-keyfile=${srcdir}/google-api-key
ac_add_options --with-mozilla-api-keyfile=${srcdir}/mozilla-api-key
ac_add_options --with-google-location-service-api-keyfile=${PWD@Q}/google-api-key
ac_add_options --with-google-safebrowsing-api-keyfile=${PWD@Q}/google-api-key
# System libraries
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --enable-system-pixman
# Features
ac_add_options --enable-alsa
ac_add_options --enable-jack
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
END
case "${CARCH}" in
powerpc)
echo "export LDFLAGS='${LDFLAGS} -Wl,-z,stack-size=1048576 -latomic -Wl,--no-keep-memory'" >> ${srcdir}/mozconfig
echo "export CXXFLAGS='${CXXFLAGS} -latomic -Wno-class-memaccess'" >> ${srcdir}/mozconfig
# patch the rust debug level, this is hardcoded
sed -i "s/debug_info = '2'/debug_info = '1'/" \
build/moz.configure/toolchain.configure
;;
powerpc64)
echo "export LDFLAGS='${LDFLAGS} -Wl,-z,stack-size=1048576 -Wl,--no-keep-memory'" >> ${srcdir}/mozconfig
echo "ac_add_options --disable-webrtc" >> ${srcdir}/mozconfig
echo "ac_add_options --enable-release" >> ${srcdir}/mozconfig
echo "ac_add_options --disable-debug" >> ${srcdir}/mozconfig
echo "ac_add_options --disable-jit" >> ${srcdir}/mozconfig
echo "ac_add_options --without-wasm-sandboxed-libraries" >> ${srcdir}/mozconfig
;;
riscv64)
echo "export LDFLAGS='${LDFLAGS} -Wl,-z,stack-size=1048576 -Wl,--no-keep-memory'" >> ${srcdir}/mozconfig
echo "ac_add_options --enable-release" >> ${srcdir}/mozconfig
echo "ac_add_options --disable-debug" >> ${srcdir}/mozconfig
echo "ac_add_options --disable-jit" >> ${srcdir}/mozconfig
echo "ac_add_options --without-wasm-sandboxed-libraries" >> ${srcdir}/mozconfig
rm -fv ${srcdir}/firefox-${pkgver}/.cargo/config
;;
*)
echo "ac_add_options --enable-rust-simd" >> ${srcdir}/mozconfig
echo "export RUSTC_OPT_LEVEL=2" >> ${srcdir}/mozconfig
echo "ac_add_options --enable-lto=full" >> ${srcdir}/mozconfig
echo "ac_add_options MOZ_PGO=1" >> ${srcdir}/mozconfig
;;
esac
case "${CARCH}" in
x86_64)
echo "ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot" >> ${srcdir}/mozconfig
echo "ac_add_options --enable-release" >> ${srcdir}/mozconfig
echo "ac_add_options --without-wasm-sandboxed-libraries" >> ${srcdir}/mozconfig
echo "export MOZILLA_OFFICIAL=1" >> ${srcdir}/mozconfig
echo "export MOZ_TELEMETRY_REPORTING=1" >> ${srcdir}/mozconfig
echo "export MOZ_REQUIRE_SIGNING=1" >> ${srcdir}/mozconfig
;;
*)
echo "ac_add_options --enable-release" >> ${srcdir}/mozconfig
echo "ac_add_options --without-wasm-sandboxed-libraries" >> ${srcdir}/mozconfig
echo "export MOZILLA_OFFICIAL=1" >> ${srcdir}/mozconfig
echo "export MOZ_TELEMETRY_REPORTING=1" >> ${srcdir}/mozconfig
echo "export MOZ_REQUIRE_SIGNING=1" >> ${srcdir}/mozconfig
;;
esac
mkdir ${srcdir}/.tmp
case "${CARCH}" in
x86_64)
echo "ac_add_options --disable-elf-hack" >> ../mozconfig
echo "ac_add_options --enable-crashreporter" >> ../mozconfig
echo "ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot" >> ../mozconfig
echo "export CC=clang" >> ../mozconfig
echo "export CXX=clang++" >> ../mozconfig
;;
riscv64)
echo "ac_add_options --disable-crashreporter" >> ../mozconfig
echo "ac_add_options --without-wasm-sandboxed-libraries" >> ../mozconfig
echo "export CC=clang" >> ../mozconfig
echo "export CXX=clang++" >> ../mozconfig
;;
*)
echo "export RUSTC_OPT_LEVEL=2" >> ../mozconfig
echo "ac_add_options --enable-lto=full" >> ../mozconfig
echo "ac_add_options MOZ_PGO=1" >> ../mozconfig
echo "ac_add_options --disable-crashreporter" >> ../mozconfig
echo "ac_add_options --without-wasm-sandboxed-libraries" >> ../mozconfig
echo "export CC=${CHOST}-gcc" >> ../mozconfig
echo "export CXX=${CHOST}-g++" >> ../mozconfig
echo "export CFLAGS='${CFLAGS/ -fexceptions/}'" >> ../mozconfig
echo "export CXXFLAGS='${CXXFLAGS/ -fexceptions/}'" >> ../mozconfig
;;
esac
}
build() {
cd firefox-$pkgver
case "${CARCH}" in
powerpc64*|riscv64)
export CC=${CHOST}-gcc
export CXX=${CHOST}-g++
export CFLAGS="${CFLAGS/ -fexceptions/}"
export CXXFLAGS="${CXXFLAGS/ -fexceptions/}"
;;
*)
export CC=clang
export CXX=clang++
;;
esac
cat ${srcdir}/mozconfig | tee .mozconfig
export TMPDIR=${srcdir}/.tmp
export MOZCONFIG="$srcdir/mozconfig"
export MOZ_NOSPAM=1
export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
export MOZ_APP_REMOTINGNAME=${pkgname//-/}
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=pip
export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
export MOZ_BUILD_DATE="$(date -u${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH} +%Y%m%d%H%M%S)"
export MOZ_NOSPAM=1
# malloc_usable_size is used in various parts of the codebase
CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
# Breaks compilation since https://bugzilla.mozilla.org/show_bug.cgi?id=1896066
CFLAGS="${CFLAGS/-fexceptions/}"
CXXFLAGS="${CXXFLAGS/-fexceptions/}"
# LTO needs more open files
ulimit -n 4096
rm -f old-configure
case "${CARCH}" in
riscv64) ./mach build ;;
*)
xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \
./mach build
;;
esac
#echo "Building symbol archive..."
#xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \
#./mach buildsymbols
xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \
python3.11 ./mach build --priority normal
}
package() {
cd ${srcdir}/firefox-${pkgver}
DESTDIR="$pkgdir" ./mach install || true
cd firefox-$pkgver
DESTDIR="$pkgdir" python3.11 ./mach install
local vendorjs="$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js"
install -Dvm644 /dev/stdin "$vendorjs" <<END
@ -319,24 +262,24 @@ pref("browser.shell.checkDefaultBrowser", false);
// Don't disable extensions in the application directory
pref("extensions.autoDisableScopes", 11);
// Enable GNOME Shell search provider
pref("browser.gnome-search-provider.enabled", true);
END
local distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
install -Dvm644 /dev/stdin "$distini" <<END
[Global]
id=archlinuxpower
id=archpower
version=1.0
about=Mozilla Firefox for Arch POWER
about=Mozilla Firefox for Arch POWER
[Preferences]
app.distributor=archlinuxpower
app.distributor=archpower
app.distributor.channel=$pkgname
app.partner.archlinuxpower=archlinuxpower
app.partner.archpower=archpower
END
install -Dvm644 ../$pkgname.desktop \
"$pkgdir/usr/share/applications/$pkgname.desktop"
local i theme=official
for i in 16 22 24 32 48 64 128 256; do
install -Dvm644 browser/branding/$theme/default$i.png \
@ -348,11 +291,10 @@ END
"$pkgdir/usr/share/icons/hicolor/384x384/apps/$pkgname.png"
install -Dvm644 browser/branding/$theme/content/about-logo.svg \
"$pkgdir/usr/share/icons/hicolor/scalable/apps/$pkgname.svg"
install -Dvm644 ${srcdir}/identity-icons-brand.svg \
"$pkgdir/usr/share/icons/hicolor/symbolic/apps/$pkgname-symbolic.svg"
install -Dvm644 ${srcdir}/$pkgname.desktop \
"$pkgdir/usr/share/applications/$pkgname.desktop"
install -Dvm644 ../$pkgname-symbolic.svg -t "$pkgdir/usr/share/icons/hicolor/symbolic/apps"
install -Dvm644 ../$pkgname.desktop -t "$pkgdir/usr/share/applications"
install -Dvm644 ../org.mozilla.$pkgname.metainfo.xml -t "$pkgdir/usr/share/metainfo"
# Install a wrapper to avoid confusion about binary path
install -Dvm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" <<END
@ -370,13 +312,14 @@ END
ln -srfv "$pkgdir/usr/lib/libnssckbi.so" "$nssckbi"
fi
#if [[ -f "$startdir/.crash-stats-api.token" ]]; then
# find . -name '*crashreporter-symbols-full.zip' -exec \
# "$startdir/upload-symbol-archive" "$startdir/.crash-stats-api.token" {} +
#else
# find . -name '*crashreporter-symbols-full.zip' -exec \
# cp -fvt "$startdir" {} +
#fi
local sprovider="$pkgdir/usr/share/gnome-shell/search-providers/$pkgname.search-provider.ini"
install -Dvm644 /dev/stdin "$sprovider" <<END
[Shell Search Provider]
DesktopId=$pkgname.desktop
BusName=org.mozilla.${pkgname//-/_}.SearchProvider
ObjectPath=/org/mozilla/${pkgname//-/_}/SearchProvider
Version=2
END
}
# vim:set sw=2 sts=-1 et:

View File

@ -0,0 +1,14 @@
--- firefox-127.0/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp.vanilla 2024-06-14 13:56:22.965354132 +0200
+++ firefox-127.0/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp 2024-06-14 15:29:47.123157935 +0200
@@ -50,9 +50,11 @@
"libavcodec.so.60",
"libavcodec.so.59",
"libavcodec.so.58",
+#if 0
"libavcodec-ffmpeg.so.58",
"libavcodec-ffmpeg.so.57",
"libavcodec-ffmpeg.so.56",
+#endif
"libavcodec.so.57",
"libavcodec.so.56",
"libavcodec.so.55",

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16">
<path fill="context-fill" fill-opacity="context-fill-opacity" d="M15.424 5.366A4.384 4.384 0 0 0 13.817 3.4a7.893 7.893 0 0 1 .811 2.353v.017c-.9-2.185-2.441-3.066-3.7-4.984l-.189-.3c-.035-.059-.063-.112-.088-.161a1.341 1.341 0 0 1-.119-.306.022.022 0 0 0-.013-.019.026.026 0 0 0-.019 0h-.006a5.629 5.629 0 0 0-2.755 4.308c.094-.006.187-.014.282-.014a4.069 4.069 0 0 1 3.51 1.983A2.838 2.838 0 0 0 9.6 5.824a3.2 3.2 0 0 1-1.885 6.013 3.651 3.651 0 0 1-1.042-.2c-.078-.028-.157-.059-.235-.093-.046-.02-.091-.04-.135-.062A3.282 3.282 0 0 1 4.415 8.95s.369-1.334 2.647-1.334a1.91 1.91 0 0 0 .964-.857 12.756 12.756 0 0 1-1.941-1.118c-.29-.277-.428-.411-.551-.511-.066-.054-.128-.1-.207-.152a3.481 3.481 0 0 1-.022-1.894 5.915 5.915 0 0 0-1.929 1.442A4.108 4.108 0 0 1 3.1 2.584a1.561 1.561 0 0 0-.267.138 5.767 5.767 0 0 0-.783.649 6.9 6.9 0 0 0-.748.868 6.446 6.446 0 0 0-1.08 2.348c0 .009-.076.325-.131.715l-.025.182c-.019.117-.033.245-.048.444v.023c-.005.076-.011.16-.016.258v.04A7.884 7.884 0 0 0 8.011 16a7.941 7.941 0 0 0 7.9-6.44l.036-.3a7.724 7.724 0 0 0-.523-3.894z" />
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,35 @@
# --- T2-COPYRIGHT-NOTE-BEGIN ---
# T2 SDE: package/*/firefox/hotfix-gcc14.patch
# Copyright (C) 2024 The T2 SDE Project
#
# This Copyright note is generated by scripts/Create-CopyPatch,
# more information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License version 2 as used by the T2 SDE.
# --- T2-COPYRIGHT-NOTE-END ---
--- thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c.vanilla 2024-07-24 20:38:58.267914215 +0200
+++ thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c 2024-07-24 20:39:43.530910543 +0200
@@ -887,7 +887,7 @@
ff_cbs_fragment_reset(&s->current_obu);
}
- s->dovi.logctx = avctx;
+ s->dovi.logctx = (AVContext *)avctx;
s->dovi.dv_profile = 10; // default for AV1
sd = ff_get_coded_side_data(avctx, AV_PKT_DATA_DOVI_CONF);
if (sd && sd->size > 0)
--- thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c.vanilla 2024-07-24 20:45:13.121883801 +0200
+++ thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c 2024-07-24 20:45:43.007881376 +0200
@@ -289,7 +289,7 @@
c->delay = res > 1 ? res : 0;
#endif
- dav1d->dovi.logctx = c;
+ dav1d->dovi.logctx = (AVContext *)c;
dav1d->dovi.dv_profile = 10; // default for AV1
sd = ff_get_coded_side_data(c, AV_PKT_DATA_DOVI_CONF);
if (sd && sd->size > 0)

View File

@ -1,6 +1,3 @@
https://bugs.gentoo.org/917599
https://bugzilla.mozilla.org/show_bug.cgi?id=1862601
https://hg.mozilla.org/try/rev/d5f3b0c4f08a426ce00a153c04e177eecb6820e2
# HG changeset patch
# User André Bargull <andre.bargull@gmail.com>
@ -38,4 +35,3 @@ diff --git a/intl/lwbrk/LineBreaker.cpp b/intl/lwbrk/LineBreaker.cpp
// Overrides based on rules for the different line-break values given in

View File

@ -0,0 +1,75 @@
# --- T2-COPYRIGHT-NOTE-BEGIN ---
# T2 SDE: package/*/firefox/hotfix-no-pip-check.patch
# Copyright (C) 2024 The T2 SDE Project
#
# This Copyright note is generated by scripts/Create-CopyPatch,
# more information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License version 2 as used by the T2 SDE.
# --- T2-COPYRIGHT-NOTE-END ---
Disable pip checks as mach is broken for python 3.12 and up.
It checks versions of unrelated packages.
We already provide python packages at system level anyway so
the overhead of extra checks is not needed.
- NoTag <notag@t2sde.org>
--- firefox-130.0.1/python/mach/mach/site.py.vanilla 2024-09-17 17:44:02.205297850 +0200
+++ firefox-130.0.1/python/mach/mach/site.py 2024-09-17 17:55:24.758627113 +0200
@@ -1200,18 +1200,18 @@
f.write("\n".join(pthfile_lines))
pip = [check_env.python_path, "-m", "pip"]
- if requirements:
- packages = _resolve_installed_packages(check_env.python_path)
- validation_result = RequirementsValidationResult.from_packages(
- packages, requirements
- )
- if not validation_result.has_all_packages:
- subprocess.check_call(pip + ["list", "-v"], stdout=sys.stderr)
- print(validation_result.report(), file=sys.stderr)
- raise Exception(
- f'The "{virtualenv_name}" site is not compatible with the installed '
- "system Python packages."
- )
+ # if requirements:
+ # packages = _resolve_installed_packages(check_env.python_path)
+ # validation_result = RequirementsValidationResult.from_packages(
+ # packages, requirements
+ # )
+ # if not validation_result.has_all_packages:
+ # subprocess.check_call(pip + ["list", "-v"], stdout=sys.stderr)
+ # print(validation_result.report(), file=sys.stderr)
+ # raise Exception(
+ # f'The "{virtualenv_name}" site is not compatible with the installed '
+ # "system Python packages."
+ # )
check_result = subprocess.run(
pip + ["check"],
@@ -1219,13 +1219,13 @@
stderr=subprocess.STDOUT,
universal_newlines=True,
)
- if check_result.returncode:
- subprocess.check_call(pip + ["list", "-v"], stdout=sys.stderr)
- print(check_result.stdout, file=sys.stderr)
- raise Exception(
- 'According to "pip check", the current Python '
- "environment has package-compatibility issues."
- )
+ # if check_result.returncode:
+ # subprocess.check_call(pip + ["list", "-v"], stdout=sys.stderr)
+ # print(check_result.stdout, file=sys.stderr)
+ # raise Exception(
+ # 'According to "pip check", the current Python '
+ # "environment has package-compatibility issues."
+ # )
os.environ[
f"MACH_SYSTEM_ASSERTED_COMPATIBLE_WITH_{virtualenv_name.upper()}_SITE"

View File

@ -0,0 +1,192 @@
# --- T2-COPYRIGHT-NOTE-BEGIN ---
# T2 SDE: package/*/firefox/hotfix-wgpu-atomicu64.patch
# Copyright (C) 2024 The T2 SDE Project
#
# This Copyright note is generated by scripts/Create-CopyPatch,
# more information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License version 2 as used by the T2 SDE.
# --- T2-COPYRIGHT-NOTE-END ---
--- firefox-131.0/third_party/rust/wgpu-core/src/device/resource.rs.vanilla 2024-10-01 17:34:29.813000000 +0100
+++ firefox-131.0/third_party/rust/wgpu-core/src/device/resource.rs 2024-10-01 17:34:40.242000000 +0100
@@ -48,7 +48,7 @@
iter,
num::NonZeroU32,
sync::{
- atomic::{AtomicBool, AtomicU64, Ordering},
+ atomic::{AtomicBool, AtomicUsize, Ordering},
Arc, Weak,
},
};
@@ -280,8 +280,8 @@
zero_buffer: ManuallyDrop::new(zero_buffer),
label: desc.label.to_string(),
command_allocator,
- active_submission_index: AtomicU64::new(0),
- last_successful_submission_index: AtomicU64::new(0),
+ active_submission_index: AtomicUsize::new(0),
+ last_successful_submission_index: AtomicUsize::new(0),
fence: RwLock::new(rank::DEVICE_FENCE, ManuallyDrop::new(fence)),
snatchable_lock: unsafe { SnatchLock::new(rank::DEVICE_SNATCHABLE_LOCK) },
valid: AtomicBool::new(true),
--- firefox-130.0/third_party/rust/wgpu-hal/src/lib.rs.orig 2024-09-03 13:18:29.730010017 +0200
+++ firefox-130.0/third_party/rust/wgpu-hal/src/lib.rs 2024-09-03 13:30:13.876693816 +0200
@@ -293,8 +293,8 @@
pub type Label<'a> = Option<&'a str>;
pub type MemoryRange = Range<wgt::BufferAddress>;
-pub type FenceValue = u64;
-pub type AtomicFenceValue = std::sync::atomic::AtomicU64;
+pub type FenceValue = usize;
+pub type AtomicFenceValue = std::sync::atomic::AtomicUsize;
/// Drop guard to signal wgpu-hal is no longer using an externally created object.
pub type DropGuard = Box<dyn std::any::Any + Send + Sync>;
--- firefox-124.0/gfx/wgpu_bindings/src/server.rs.vanilla 2024-03-19 10:40:03.807887783 +0100
+++ firefox-124.0/gfx/wgpu_bindings/src/server.rs 2024-03-19 10:41:47.314882569 +0100
@@ -1128,7 +1128,7 @@
command_buffer_ids: *const id::CommandBufferId,
command_buffer_id_length: usize,
mut error_buf: ErrorBuffer,
-) -> u64 {
+) -> usize {
let command_buffers = slice::from_raw_parts(command_buffer_ids, command_buffer_id_length);
let result = gfx_select!(self_id => global.queue_submit(self_id, command_buffers));
--- firefox-128.0/third_party/rust/ash/src/extensions/khr/timeline_semaphore.rs.vanilla 2024-07-09 14:28:32.931405214 +0200
+++ firefox-128.0/third_party/rust/ash/src/extensions/khr/timeline_semaphore.rs 2024-07-09 14:29:05.602402066 +0200
@@ -7,7 +7,7 @@
impl crate::khr::timeline_semaphore::Device {
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetSemaphoreCounterValue.html>
#[inline]
- pub unsafe fn get_semaphore_counter_value(&self, semaphore: vk::Semaphore) -> VkResult<u64> {
+ pub unsafe fn get_semaphore_counter_value(&self, semaphore: vk::Semaphore) -> VkResult<usize> {
let mut value = mem::MaybeUninit::uninit();
(self.fp.get_semaphore_counter_value_khr)(self.handle, semaphore, value.as_mut_ptr())
.assume_init_on_success(value)
--- firefox-128.0/third_party/rust/ash/src/vk/definitions.rs.vanilla 2024-07-09 14:31:17.061389400 +0200
+++ firefox-128.0/third_party/rust/ash/src/vk/definitions.rs 2024-07-09 14:34:06.172373105 +0200
@@ -12913,9 +12913,9 @@
pub s_type: StructureType,
pub p_next: *const c_void,
pub wait_semaphore_values_count: u32,
- pub p_wait_semaphore_values: *const u64,
+ pub p_wait_semaphore_values: *const usize,
pub signal_semaphore_values_count: u32,
- pub p_signal_semaphore_values: *const u64,
+ pub p_signal_semaphore_values: *const usize,
pub _marker: PhantomData<&'a ()>,
}
unsafe impl Send for D3D12FenceSubmitInfoKHR<'_> {}
@@ -12940,13 +12940,13 @@
unsafe impl ExtendsSubmitInfo for D3D12FenceSubmitInfoKHR<'_> {}
impl<'a> D3D12FenceSubmitInfoKHR<'a> {
#[inline]
- pub fn wait_semaphore_values(mut self, wait_semaphore_values: &'a [u64]) -> Self {
+ pub fn wait_semaphore_values(mut self, wait_semaphore_values: &'a [usize]) -> Self {
self.wait_semaphore_values_count = wait_semaphore_values.len() as _;
self.p_wait_semaphore_values = wait_semaphore_values.as_ptr();
self
}
#[inline]
- pub fn signal_semaphore_values(mut self, signal_semaphore_values: &'a [u64]) -> Self {
+ pub fn signal_semaphore_values(mut self, signal_semaphore_values: &'a [usize]) -> Self {
self.signal_semaphore_values_count = signal_semaphore_values.len() as _;
self.p_signal_semaphore_values = signal_semaphore_values.as_ptr();
self
@@ -21911,9 +21911,9 @@
pub s_type: StructureType,
pub p_next: *const c_void,
pub wait_semaphore_value_count: u32,
- pub p_wait_semaphore_values: *const u64,
+ pub p_wait_semaphore_values: *const usize,
pub signal_semaphore_value_count: u32,
- pub p_signal_semaphore_values: *const u64,
+ pub p_signal_semaphore_values: *const usize,
pub _marker: PhantomData<&'a ()>,
}
unsafe impl Send for TimelineSemaphoreSubmitInfo<'_> {}
@@ -21939,13 +21939,13 @@
unsafe impl ExtendsBindSparseInfo for TimelineSemaphoreSubmitInfo<'_> {}
impl<'a> TimelineSemaphoreSubmitInfo<'a> {
#[inline]
- pub fn wait_semaphore_values(mut self, wait_semaphore_values: &'a [u64]) -> Self {
+ pub fn wait_semaphore_values(mut self, wait_semaphore_values: &'a [usize]) -> Self {
self.wait_semaphore_value_count = wait_semaphore_values.len() as _;
self.p_wait_semaphore_values = wait_semaphore_values.as_ptr();
self
}
#[inline]
- pub fn signal_semaphore_values(mut self, signal_semaphore_values: &'a [u64]) -> Self {
+ pub fn signal_semaphore_values(mut self, signal_semaphore_values: &'a [usize]) -> Self {
self.signal_semaphore_value_count = signal_semaphore_values.len() as _;
self.p_signal_semaphore_values = signal_semaphore_values.as_ptr();
self
--- firefox-128.0/third_party/rust/ash/src/vk/extensions.rs.vanilla 2024-07-09 14:36:01.436361999 +0200
+++ firefox-128.0/third_party/rust/ash/src/vk/extensions.rs 2024-07-09 14:37:29.562353508 +0200
@@ -5945,7 +5945,7 @@
pub type PFN_vkGetSemaphoreCounterValue = unsafe extern "system" fn(
device: crate::vk::Device,
semaphore: Semaphore,
- p_value: *mut u64,
+ p_value: *mut usize,
) -> Result;
#[allow(non_camel_case_types)]
pub type PFN_vkWaitSemaphores = unsafe extern "system" fn(
--- firefox-128.0/third_party/rust/ash/src/device.rs.vanilla 2024-07-09 14:37:45.857351938 +0200
+++ firefox-128.0/third_party/rust/ash/src/device.rs 2024-07-09 14:38:22.375348419 +0200
@@ -676,7 +676,7 @@
/// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetSemaphoreCounterValue.html>
#[inline]
- pub unsafe fn get_semaphore_counter_value(&self, semaphore: vk::Semaphore) -> VkResult<u64> {
+ pub unsafe fn get_semaphore_counter_value(&self, semaphore: vk::Semaphore) -> VkResult<usize> {
let mut value = mem::MaybeUninit::uninit();
(self.device_fn_1_2.get_semaphore_counter_value)(
self.handle(),
--- firefox-128.0/third_party/rust/ash/src/vk/definitions.rs.vanilla 2024-07-09 15:01:16.235216042 +0200
+++ firefox-128.0/third_party/rust/ash/src/vk/definitions.rs 2024-07-09 15:03:26.056203534 +0200
@@ -21962,7 +21962,7 @@
pub flags: SemaphoreWaitFlags,
pub semaphore_count: u32,
pub p_semaphores: *const Semaphore,
- pub p_values: *const u64,
+ pub p_values: *const usize,
pub _marker: PhantomData<&'a ()>,
}
unsafe impl Send for SemaphoreWaitInfo<'_> {}
@@ -21997,7 +21997,7 @@
self
}
#[inline]
- pub fn values(mut self, values: &'a [u64]) -> Self {
+ pub fn values(mut self, values: &'a [usize]) -> Self {
self.semaphore_count = values.len() as _;
self.p_values = values.as_ptr();
self
--- firefox-128.0/third_party/rust/ash/src/extensions_generated.rs.vanilla 2024-07-09 14:49:16.545285387 +0200
+++ firefox-128.0/third_party/rust/ash/src/extensions_generated.rs 2024-07-09 14:52:55.543264286 +0200
@@ -14711,7 +14711,7 @@
unsafe extern "system" fn get_semaphore_counter_value_khr(
_device: crate::vk::Device,
_semaphore: Semaphore,
- _p_value: *mut u64,
+ _p_value: *mut usize,
) -> Result {
panic!(concat!(
"Unable to load ",
--- firefox-128.0/third_party/rust/ash/src/tables.rs.vanilla 2024-07-09 14:54:09.300257179 +0200
+++ firefox-128.0/third_party/rust/ash/src/tables.rs 2024-07-09 14:54:20.596256091 +0200
@@ -3463,7 +3463,7 @@
unsafe extern "system" fn get_semaphore_counter_value(
_device: crate::vk::Device,
_semaphore: Semaphore,
- _p_value: *mut u64,
+ _p_value: *mut usize,
) -> Result {
panic!(concat!(
"Unable to load ",

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>org.mozilla.firefox</id>
<launchable type="desktop-id">firefox.desktop</launchable>
<name>Firefox</name>
<developer_name>Mozilla</developer_name>
<summary>Fast, Private &amp; Safe Web Browser</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>MPL-2.0</project_license>
<description>
<p>When it comes to your life online, you have a choice: accept the factory settings or put your privacy first. When you choose Firefox as your default browser, youre choosing to protect your data while supporting an independent tech company. Firefox is also the only major browser backed by a non-profit fighting to give you more openness, transparency and control of your life online. Join hundreds of millions of people who choose to protect what's important by choosing Firefox - a web browser designed to be fast, easy to use, customizable and private.</p>
</description>
<keywords>
<keyword>mozilla</keyword>
<keyword>internet</keyword>
<keyword>web</keyword>
</keywords>
<content_rating type="oars-1.1" />
<url type="homepage">https://www.mozilla.org/firefox/</url>
<url type="donation">https://donate.mozilla.org/</url>
<url type="bugtracker">https://bugzilla.mozilla.org/</url>
<url type="help">https://support.mozilla.org/</url>
<url type="translate">https://wiki.mozilla.org/L10n:Starting_a_localization</url>
<screenshots>
<screenshot type="default">
<image type="source">https://raw.githubusercontent.com/mozilla-releng/scriptworker-scripts/master/pushflatpakscript/media/screenshots/image1.png</image>
<caption>The “New Tab” page</caption>
</screenshot>
<screenshot>
<image type="source">https://raw.githubusercontent.com/mozilla-releng/scriptworker-scripts/master/pushflatpakscript/media/screenshots/image2.png</image>
<caption>A Wikipedia article displayed in Firefox</caption>
</screenshot>
<screenshot>
<image type="source">https://raw.githubusercontent.com/mozilla-releng/scriptworker-scripts/master/pushflatpakscript/media/screenshots/image3.png</image>
<caption>The “Welcome to Firefox” page: “Open up an amazing internet”</caption>
</screenshot>
</screenshots>
</component>

44
firefox/riscv.patch Normal file
View File

@ -0,0 +1,44 @@
# --- T2-COPYRIGHT-NOTE-BEGIN ---
# T2 SDE: package/*/firefox/riscv.patch
# Copyright (C) 2021 - 2023 The T2 SDE Project
#
# This Copyright note is generated by scripts/Create-CopyPatch,
# more information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License version 2 as used by the T2 SDE.
# --- T2-COPYRIGHT-NOTE-END ---
--- firefox-109.0/third_party/rust/authenticator/src/transport/linux/ioctl_riscv.rs.vanilla (nonexistent)
+++ firefox-109.0/third_party/rust/authenticator/src/transport/linux/ioctl_riscv.rs 2020-10-16 11:37:13.522007639 +0200
@@ -0,0 +1,5 @@
+/* automatically generated by rust-bindgen */
+
+pub type __u32 = ::std::os::raw::c_uint;
+pub const _HIDIOCGRDESCSIZE: __u32 = 1074022401;
+pub const _HIDIOCGRDESC: __u32 = 1342457858;
--- firefox-109.0/third_party/rust/authenticator/build.rs.vanilla 2021-11-05 13:59:30.986672974 +0100
+++ firefox-109.0/third_party/rust/authenticator/build.rs 2021-11-05 14:01:27.454678982 +0100
@@ -35,6 +35,8 @@
"ioctl_powerpc64le.rs"
} else if cfg!(all(target_arch = "powerpc64", target_endian = "big")) {
"ioctl_powerpc64be.rs"
+ } else if cfg!(target_arch = "riscv") {
+ "ioctl_riscv.rs"
} else if cfg!(all(target_arch = "arm", target_endian = "little")) {
"ioctl_armle.rs"
} else if cfg!(all(target_arch = "arm", target_endian = "big")) {
--- firefox-94.0.1/third_party/rust/authenticator/src/transport/linux/hidwrapper.rs.vanilla 2021-11-05 13:59:30.983672974 +0100
+++ firefox-94.0.1/third_party/rust/authenticator/src/transport/linux/hidwrapper.rs 2021-11-05 14:00:32.606676153 +0100
@@ -32,6 +32,9 @@
#[cfg(all(target_arch = "powerpc64", target_endian = "big"))]
include!("ioctl_powerpc64be.rs");
+#[cfg(target_arch = "riscv")]
+include!("ioctl_riscv.rs");
+
#[cfg(all(target_arch = "arm", target_endian = "little"))]
include!("ioctl_armle.rs");

View File

@ -0,0 +1,32 @@
# --- T2-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by scripts/Create-CopyPatch.
#
# T2 SDE: package/.../firefox/sandbox-fonts.patch
# Copyright (C) 2020 The T2 SDE Project
#
# More information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- T2-COPYRIGHT-NOTE-END ---
Adapt sandbox broker policy allow-list to the font path we usually use.
-- Signed-off-by: René Rebe <rene@exactcode.de>
--- firefox-57.0/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp.vanilla 2017-11-16 17:56:45.091951171 +0100
+++ firefox-57.0/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp 2017-11-16 17:57:11.287951481 +0100
@@ -161,7 +161,8 @@
policy->AddDir(rdonly, "/usr/tmp");
policy->AddDir(rdonly, "/var/tmp");
// Various places where fonts reside
- policy->AddDir(rdonly, "/usr/X11R6/lib/X11/fonts");
+ policy->AddDir(rdonly, "/usr/X11/share/fonts");
+ policy->AddDir(rdonly, "/usr/X11/lib/X11/fonts");
policy->AddDir(rdonly, "/nix/store");
policy->AddDir(rdonly, "/run/host/fonts");
policy->AddDir(rdonly, "/run/host/user-fonts");

40
firefox/sandbox-x11.patch Normal file
View File

@ -0,0 +1,40 @@
--- firefox-127.0/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp.vanilla 2024-06-14 14:48:51.851243892 +0200
+++ firefox-127.0/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp 2024-06-14 15:24:11.735169676 +0200
@@ -446,6 +446,9 @@
policy->AddDir(rdonly, "/usr/lib");
policy->AddDir(rdonly, "/usr/lib32");
policy->AddDir(rdonly, "/usr/lib64");
+ policy->AddDir(rdonly, "/usr/X11/lib");
+ policy->AddDir(rdonly, "/usr/X11/lib32");
+ policy->AddDir(rdonly, "/usr/X11/lib64");
policy->AddDir(rdonly, "/etc");
policy->AddDir(rdonly, "/usr/share");
policy->AddDir(rdonly, "/usr/local/share");
@@ -461,7 +462,6 @@
// Bug 1848615
policy->AddPath(rdonly, "/usr");
- policy->AddPath(rdonly, "/nix");
AddLdconfigPaths(policy);
AddLdLibraryEnvPaths(policy);
@@ -984,6 +984,9 @@
policy->AddDir(rdonly, "/usr/lib");
policy->AddDir(rdonly, "/usr/lib32");
policy->AddDir(rdonly, "/usr/lib64");
+ policy->AddDir(rdonly, "/usr/X11/lib");
+ policy->AddDir(rdonly, "/usr/X11/lib32");
+ policy->AddDir(rdonly, "/usr/X11/lib64");
policy->AddDir(rdonly, "/usr/share");
policy->AddDir(rdonly, "/usr/local/share");
policy->AddDir(rdonly, "/etc");
@@ -1038,6 +1041,9 @@
policy->AddDir(rdonly, "/usr/lib");
policy->AddDir(rdonly, "/usr/lib32");
policy->AddDir(rdonly, "/usr/lib64");
+ policy->AddDir(rdonly, "/usr/X11/lib");
+ policy->AddDir(rdonly, "/usr/X11/lib32");
+ policy->AddDir(rdonly, "/usr/X11/lib64");
policy->AddDir(rdonly, "/usr/share");
policy->AddDir(rdonly, "/usr/local/share");
policy->AddDir(rdonly, "/etc");