* update firefox to 133.0.3-1
This commit is contained in:
parent
655fc2bfbd
commit
b7f80e2536
111
firefox/.SRCINFO
Normal file
111
firefox/.SRCINFO
Normal 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
4
firefox/.nvchecker.toml
Normal file
@ -0,0 +1,4 @@
|
||||
[firefox]
|
||||
source = "jq"
|
||||
url = "https://product-details.mozilla.org/1.0/firefox_versions.json"
|
||||
filter = ".LATEST_FIREFOX_VERSION"
|
55
firefox/0001-Install-under-remoting-name.patch
Normal file
55
firefox/0001-Install-under-remoting-name.patch
Normal 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);
|
||||
}
|
||||
}
|
@ -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
|
||||
|
@ -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,
|
@ -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,
|
||||
|
@ -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 &&
|
@ -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")
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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",
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
/*
|
@ -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
|
||||
|
@ -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) {
|
@ -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()
|
@ -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
|
||||
|
@ -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)
|
@ -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));
|
||||
}
|
@ -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
|
||||
|
@ -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))
|
@ -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
|
||||
# ==============================================================
|
||||
|
||||
|
@ -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),
|
@ -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)
|
@ -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"]:
|
@ -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) {
|
||||
|
||||
|
@ -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);
|
||||
+
|
389
firefox/PKGBUILD
389
firefox/PKGBUILD
@ -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
|
||||
|
||||
[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:
|
||||
|
14
firefox/ffmpeg-cleanup.patch
Normal file
14
firefox/ffmpeg-cleanup.patch
Normal 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",
|
3
firefox/firefox-symbolic.svg
Normal file
3
firefox/firefox-symbolic.svg
Normal 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
35
firefox/hotfix-gcc14.patch
Normal file
35
firefox/hotfix-gcc14.patch
Normal 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)
|
@ -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
|
||||
|
||||
|
75
firefox/hotfix-no-pip-check.patch
Normal file
75
firefox/hotfix-no-pip-check.patch
Normal 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"
|
192
firefox/hotfix-wgpu-atomicu64.patch
Normal file
192
firefox/hotfix-wgpu-atomicu64.patch
Normal 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 ",
|
39
firefox/org.mozilla.firefox.metainfo.xml
Normal file
39
firefox/org.mozilla.firefox.metainfo.xml
Normal 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 & 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, you’re 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
44
firefox/riscv.patch
Normal 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");
|
||||
|
32
firefox/sandbox-fonts.patch
Normal file
32
firefox/sandbox-fonts.patch
Normal 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
40
firefox/sandbox-x11.patch
Normal 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");
|
Loading…
x
Reference in New Issue
Block a user