From b7f80e25360b39258b8a586df22c69dbe20864f8 Mon Sep 17 00:00:00 2001 From: kth5 Date: Mon, 23 Dec 2024 01:21:13 +0100 Subject: [PATCH] * update firefox to 133.0.3-1 --- firefox/.SRCINFO | 111 ++ firefox/.nvchecker.toml | 4 + .../0001-Install-under-remoting-name.patch | 55 + ...LTO-for-Rust-when-complete-build-use.patch | 34 - ...mo-1196777-Set-GDK_FOCUS_CHANGE_MASK.patch | 13 - .../0003-enable-vaapi-on-all-amd-cards.patch | 19 - firefox/0004-big-endian-image-decoders.patch | 88 -- firefox/0005-build-Disable-Werror.patch | 24 - ...t-pthread-name-for-non-glibc-systems.patch | 29 - ...avaliable-on-more-then-just-glibc-sy.patch | 51 - ...rk-non-fatal-musl-uses-it-for-fork-2.patch | 28 - firefox/0010-Fortify-sources-properly.patch | 11 - ...1-bmo-847568-Support-system-harfbuzz.patch | 182 --- .../0012-bgo-816975-fix-build-on-x86.patch | 16 - ...-bmo-847568-Support-system-graphite2.patch | 161 --- ...14-bmo-1754469-memory_mozalloc_throw.patch | 69 -- .../0015-bmo-1516803-gcc-lto-sandbox.patch | 16 - ...te-name-for-private-siginfo-struct-m.patch | 35 - ...7-bgo-907963-rustflags-single-string.patch | 76 -- ...dont-link-widevineplugin-to-libgcc_s.patch | 20 - firefox/0019-musl-Fix-syscall-wrappers.patch | 42 - ...0021-bgo-748849-RUST_TARGET_override.patch | 61 - .../0022-bmo-1559213-Support-system-av1.patch | 96 -- firefox/0023-bmo-1874059-fix-libcxx-18.patch | 16 - firefox/0024-dont-use-build-id.patch | 13 - ...-7-gcc-14-incompatible-pointer-types.patch | 14 - ...-bmo-1898476-nvidia-wayland-egl-sync.patch | 368 ------ ...-software-rendering-during-pgo-build.patch | 16 - firefox/PKGBUILD | 391 +++---- firefox/ffmpeg-cleanup.patch | 14 + firefox/firefox-symbolic.svg | 3 + firefox/firefox.desktop | 1008 +++++++++++++---- firefox/hotfix-gcc14.patch | 35 + ...tem-icu-74.patch => hotfix-icu4c-74.patch} | 4 - firefox/hotfix-no-pip-check.patch | 75 ++ ...ower8.patch => hotfix-ppc-not-power8.diff} | 0 firefox/hotfix-wgpu-atomicu64.patch | 192 ++++ firefox/org.mozilla.firefox.metainfo.xml | 39 + firefox/riscv.patch | 44 + firefox/sandbox-fonts.patch | 32 + firefox/sandbox-x11.patch | 40 + 41 files changed, 1596 insertions(+), 1949 deletions(-) create mode 100644 firefox/.SRCINFO create mode 100644 firefox/.nvchecker.toml create mode 100644 firefox/0001-Install-under-remoting-name.patch delete mode 100644 firefox/0001-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch delete mode 100644 firefox/0002-bmo-1196777-Set-GDK_FOCUS_CHANGE_MASK.patch delete mode 100644 firefox/0003-enable-vaapi-on-all-amd-cards.patch delete mode 100644 firefox/0004-big-endian-image-decoders.patch delete mode 100644 firefox/0005-build-Disable-Werror.patch delete mode 100644 firefox/0007-musl-Set-pthread-name-for-non-glibc-systems.patch delete mode 100644 firefox/0008-musl-sys-auvx.h-avaliable-on-more-then-just-glibc-sy.patch delete mode 100644 firefox/0009-musl-make-SYS_fork-non-fatal-musl-uses-it-for-fork-2.patch delete mode 100644 firefox/0010-Fortify-sources-properly.patch delete mode 100644 firefox/0011-bmo-847568-Support-system-harfbuzz.patch delete mode 100644 firefox/0012-bgo-816975-fix-build-on-x86.patch delete mode 100644 firefox/0013-bmo-847568-Support-system-graphite2.patch delete mode 100644 firefox/0014-bmo-1754469-memory_mozalloc_throw.patch delete mode 100644 firefox/0015-bmo-1516803-gcc-lto-sandbox.patch delete mode 100644 firefox/0016-musl-Add-alternate-name-for-private-siginfo-struct-m.patch delete mode 100644 firefox/0017-bgo-907963-rustflags-single-string.patch delete mode 100644 firefox/0018-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch delete mode 100644 firefox/0019-musl-Fix-syscall-wrappers.patch delete mode 100644 firefox/0021-bgo-748849-RUST_TARGET_override.patch delete mode 100644 firefox/0022-bmo-1559213-Support-system-av1.patch delete mode 100644 firefox/0023-bmo-1874059-fix-libcxx-18.patch delete mode 100644 firefox/0024-dont-use-build-id.patch delete mode 100644 firefox/0025-mozilla-bundled-ffmpeg-7-gcc-14-incompatible-pointer-types.patch delete mode 100644 firefox/0026-bmo-1898476-nvidia-wayland-egl-sync.patch delete mode 100644 firefox/0027-bgo-925101-force-software-rendering-during-pgo-build.patch create mode 100644 firefox/ffmpeg-cleanup.patch create mode 100644 firefox/firefox-symbolic.svg create mode 100644 firefox/hotfix-gcc14.patch rename firefox/{0020-bmo-1862601-system-icu-74.patch => hotfix-icu4c-74.patch} (92%) create mode 100644 firefox/hotfix-no-pip-check.patch rename firefox/{0006-hotfix-ppc-not-power8.patch => hotfix-ppc-not-power8.diff} (100%) create mode 100644 firefox/hotfix-wgpu-atomicu64.patch create mode 100644 firefox/org.mozilla.firefox.metainfo.xml create mode 100644 firefox/riscv.patch create mode 100644 firefox/sandbox-fonts.patch create mode 100644 firefox/sandbox-x11.patch diff --git a/firefox/.SRCINFO b/firefox/.SRCINFO new file mode 100644 index 0000000000..781b5ff4bf --- /dev/null +++ b/firefox/.SRCINFO @@ -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 diff --git a/firefox/.nvchecker.toml b/firefox/.nvchecker.toml new file mode 100644 index 0000000000..39e1479ccf --- /dev/null +++ b/firefox/.nvchecker.toml @@ -0,0 +1,4 @@ +[firefox] +source = "jq" +url = "https://product-details.mozilla.org/1.0/firefox_versions.json" +filter = ".LATEST_FIREFOX_VERSION" diff --git a/firefox/0001-Install-under-remoting-name.patch b/firefox/0001-Install-under-remoting-name.patch new file mode 100644 index 0000000000..4229f80494 --- /dev/null +++ b/firefox/0001-Install-under-remoting-name.patch @@ -0,0 +1,55 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +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); + } + } diff --git a/firefox/0001-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch b/firefox/0001-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch deleted file mode 100644 index 32bd0eb897..0000000000 --- a/firefox/0001-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 685e82ac82921720c6cd9c6c45703ff034f081e7 Mon Sep 17 00:00:00 2001 -From: Thomas Deutschmann -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 ---- - 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 - diff --git a/firefox/0002-bmo-1196777-Set-GDK_FOCUS_CHANGE_MASK.patch b/firefox/0002-bmo-1196777-Set-GDK_FOCUS_CHANGE_MASK.patch deleted file mode 100644 index 864741e5ba..0000000000 --- a/firefox/0002-bmo-1196777-Set-GDK_FOCUS_CHANGE_MASK.patch +++ /dev/null @@ -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, diff --git a/firefox/0003-enable-vaapi-on-all-amd-cards.patch b/firefox/0003-enable-vaapi-on-all-amd-cards.patch deleted file mode 100644 index 112cd42123..0000000000 --- a/firefox/0003-enable-vaapi-on-all-amd-cards.patch +++ /dev/null @@ -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& 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, - diff --git a/firefox/0004-big-endian-image-decoders.patch b/firefox/0004-big-endian-image-decoders.patch deleted file mode 100644 index bd2f925c91..0000000000 --- a/firefox/0004-big-endian-image-decoders.patch +++ /dev/null @@ -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(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() && res.as() == TerminalState::SUCCESS) { -+ NativeEndian::swapToLittleEndianInPlace((uint32_t*)(mImageData), mImageDataLength / 4); -+ } -+#endif -+ -+ return res; - } - - LexerTransition 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 && diff --git a/firefox/0005-build-Disable-Werror.patch b/firefox/0005-build-Disable-Werror.patch deleted file mode 100644 index e1df117998..0000000000 --- a/firefox/0005-build-Disable-Werror.patch +++ /dev/null @@ -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") diff --git a/firefox/0007-musl-Set-pthread-name-for-non-glibc-systems.patch b/firefox/0007-musl-Set-pthread-name-for-non-glibc-systems.patch deleted file mode 100644 index fe74bb1b11..0000000000 --- a/firefox/0007-musl-Set-pthread-name-for-non-glibc-systems.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 70d47d18420fe9e3de8f896c08f97ef2596c9c84 Mon Sep 17 00:00:00 2001 -From: "Jory A. Pratt" -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 ---- - 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 - diff --git a/firefox/0008-musl-sys-auvx.h-avaliable-on-more-then-just-glibc-sy.patch b/firefox/0008-musl-sys-auvx.h-avaliable-on-more-then-just-glibc-sy.patch deleted file mode 100644 index 121c8cdc24..0000000000 --- a/firefox/0008-musl-sys-auvx.h-avaliable-on-more-then-just-glibc-sy.patch +++ /dev/null @@ -1,51 +0,0 @@ -From beed745f96bbc18a3c22a728095c9a2eef7435ee Mon Sep 17 00:00:00 2001 -From: "Jory A. Pratt" -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 ---- - .../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 - #include - --#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 - #else - #include -@@ -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 - diff --git a/firefox/0009-musl-make-SYS_fork-non-fatal-musl-uses-it-for-fork-2.patch b/firefox/0009-musl-make-SYS_fork-non-fatal-musl-uses-it-for-fork-2.patch deleted file mode 100644 index 9de0db79ff..0000000000 --- a/firefox/0009-musl-make-SYS_fork-non-fatal-musl-uses-it-for-fork-2.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 6d36ed9e971861321bb381e25516500069314eb6 Mon Sep 17 00:00:00 2001 -From: Johannes -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 ---- - 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 - diff --git a/firefox/0010-Fortify-sources-properly.patch b/firefox/0010-Fortify-sources-properly.patch deleted file mode 100644 index 009ca805fd..0000000000 --- a/firefox/0010-Fortify-sources-properly.patch +++ /dev/null @@ -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", diff --git a/firefox/0011-bmo-847568-Support-system-harfbuzz.patch b/firefox/0011-bmo-847568-Support-system-harfbuzz.patch deleted file mode 100644 index f7f877fcf5..0000000000 --- a/firefox/0011-bmo-847568-Support-system-harfbuzz.patch +++ /dev/null @@ -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 - diff --git a/firefox/0012-bgo-816975-fix-build-on-x86.patch b/firefox/0012-bgo-816975-fix-build-on-x86.patch deleted file mode 100644 index 4b2289fab1..0000000000 --- a/firefox/0012-bgo-816975-fix-build-on-x86.patch +++ /dev/null @@ -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; - - /* diff --git a/firefox/0013-bmo-847568-Support-system-graphite2.patch b/firefox/0013-bmo-847568-Support-system-graphite2.patch deleted file mode 100644 index 93b49d5439..0000000000 --- a/firefox/0013-bmo-847568-Support-system-graphite2.patch +++ /dev/null @@ -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 -+ #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 - diff --git a/firefox/0014-bmo-1754469-memory_mozalloc_throw.patch b/firefox/0014-bmo-1754469-memory_mozalloc_throw.patch deleted file mode 100644 index 634892be7b..0000000000 --- a/firefox/0014-bmo-1754469-memory_mozalloc_throw.patch +++ /dev/null @@ -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) { diff --git a/firefox/0015-bmo-1516803-gcc-lto-sandbox.patch b/firefox/0015-bmo-1516803-gcc-lto-sandbox.patch deleted file mode 100644 index eff08f6f24..0000000000 --- a/firefox/0015-bmo-1516803-gcc-lto-sandbox.patch +++ /dev/null @@ -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() diff --git a/firefox/0016-musl-Add-alternate-name-for-private-siginfo-struct-m.patch b/firefox/0016-musl-Add-alternate-name-for-private-siginfo-struct-m.patch deleted file mode 100644 index 300846f461..0000000000 --- a/firefox/0016-musl-Add-alternate-name-for-private-siginfo-struct-m.patch +++ /dev/null @@ -1,35 +0,0 @@ -From d8ec0bd6f3b0ad2dfd8a97a864f08decaafdea69 Mon Sep 17 00:00:00 2001 -From: Samuel Holland -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 -Signed-off-by: Thomas Deutschmann ---- - 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 - diff --git a/firefox/0017-bgo-907963-rustflags-single-string.patch b/firefox/0017-bgo-907963-rustflags-single-string.patch deleted file mode 100644 index a56aec4108..0000000000 --- a/firefox/0017-bgo-907963-rustflags-single-string.patch +++ /dev/null @@ -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) diff --git a/firefox/0018-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch b/firefox/0018-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch deleted file mode 100644 index bb0621a573..0000000000 --- a/firefox/0018-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch +++ /dev/null @@ -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 - #ifdef NIGHTLY_BUILD - # include "dlfcn.h" -+#else -+# include - #endif - #include - #include -@@ -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)); - } \ No newline at end of file diff --git a/firefox/0019-musl-Fix-syscall-wrappers.patch b/firefox/0019-musl-Fix-syscall-wrappers.patch deleted file mode 100644 index d9dda4991c..0000000000 --- a/firefox/0019-musl-Fix-syscall-wrappers.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 1b46c0fc085fe93c36320d7ac1004c83efccdccc Mon Sep 17 00:00:00 2001 -From: Samuel Holland -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 -Signed-off-by: Thomas Deutschmann ---- - .../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 - diff --git a/firefox/0021-bgo-748849-RUST_TARGET_override.patch b/firefox/0021-bgo-748849-RUST_TARGET_override.patch deleted file mode 100644 index f109538245..0000000000 --- a/firefox/0021-bgo-748849-RUST_TARGET_override.patch +++ /dev/null @@ -1,61 +0,0 @@ -From: Sam James -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 ---- 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)) diff --git a/firefox/0022-bmo-1559213-Support-system-av1.patch b/firefox/0022-bmo-1559213-Support-system-av1.patch deleted file mode 100644 index 240ef56bbf..0000000000 --- a/firefox/0022-bmo-1559213-Support-system-av1.patch +++ /dev/null @@ -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 - # ============================================================== - - diff --git a/firefox/0023-bmo-1874059-fix-libcxx-18.patch b/firefox/0023-bmo-1874059-fix-libcxx-18.patch deleted file mode 100644 index b21a93cab9..0000000000 --- a/firefox/0023-bmo-1874059-fix-libcxx-18.patch +++ /dev/null @@ -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), \ No newline at end of file diff --git a/firefox/0024-dont-use-build-id.patch b/firefox/0024-dont-use-build-id.patch deleted file mode 100644 index 4ec8ac1529..0000000000 --- a/firefox/0024-dont-use-build-id.patch +++ /dev/null @@ -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) diff --git a/firefox/0025-mozilla-bundled-ffmpeg-7-gcc-14-incompatible-pointer-types.patch b/firefox/0025-mozilla-bundled-ffmpeg-7-gcc-14-incompatible-pointer-types.patch deleted file mode 100644 index 1fca8992fd..0000000000 --- a/firefox/0025-mozilla-bundled-ffmpeg-7-gcc-14-incompatible-pointer-types.patch +++ /dev/null @@ -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"]: diff --git a/firefox/0026-bmo-1898476-nvidia-wayland-egl-sync.patch b/firefox/0026-bmo-1898476-nvidia-wayland-egl-sync.patch deleted file mode 100644 index 3483215973..0000000000 --- a/firefox/0026-bmo-1898476-nvidia-wayland-egl-sync.patch +++ /dev/null @@ -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 - #include - #include - #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 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 GetNativeLayerRoot() override; - #endif - - // PlatformCompositorWidgetDelegate Overrides - - void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override; - GtkCompositorWidget* AsGtkCompositorWidget() override { return this; } - -+ UniquePtr 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 nsWindow::LockSurface() { -+ if (mIsDestroyed) { -+ return nullptr; -+ } -+ return MakeUnique(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 - #include - - #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 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 lock; -+ if (auto* gtkWidget = mWidget->AsGTK()) { -+ lock = gtkWidget->LockSurface(); -+ } -+#endif - gl()->SwapBuffers(); - return frameId; - } - - void RenderCompositorEGL::Pause() { DestroyEGLSurface(); } - - bool RenderCompositorEGL::Resume() { - if (kIsAndroid) { - - diff --git a/firefox/0027-bgo-925101-force-software-rendering-during-pgo-build.patch b/firefox/0027-bgo-925101-force-software-rendering-during-pgo-build.patch deleted file mode 100644 index 7f4b987b32..0000000000 --- a/firefox/0027-bgo-925101-force-software-rendering-during-pgo-build.patch +++ /dev/null @@ -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); -+ diff --git a/firefox/PKGBUILD b/firefox/PKGBUILD index 1ae4bfa4ce..af3749cb65 100644 --- a/firefox/PKGBUILD +++ b/firefox/PKGBUILD @@ -1,28 +1,44 @@ -# POWER Maintainer: Alexander Baldeck -# Maintainer: Jan Alexander Steffens (heftig) +# powER Maintainer: Alexander Baldeck +# Maintainer: Jan Alexander Steffens (heftig) # Contributor: Ionut Biru # Contributor: Jakub Schmidtke 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 # 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 <google-api-key + + cat >../mozconfig <> ${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" < + + diff --git a/firefox/firefox.desktop b/firefox/firefox.desktop index da9c3a843b..4d56f44bc6 100644 --- a/firefox/firefox.desktop +++ b/firefox/firefox.desktop @@ -1,340 +1,902 @@ [Desktop Entry] Version=1.0 -Name=Firefox -GenericName=Web Browser -GenericName[ar]=متصفح ويب -GenericName[ast]=Restolador Web -GenericName[bn]=ওয়েব ব্রাউজার -GenericName[ca]=Navegador web -GenericName[cs]=Webový prohlížeč -GenericName[da]=Webbrowser -GenericName[de]=Webbrowser -GenericName[el]=Περιηγητής διαδικτύου -GenericName[es]=Navegador web -GenericName[et]=Veebibrauser -GenericName[fa]=مرورگر اینترنتی -GenericName[fi]=WWW-selain -GenericName[fr]=Navigateur Web -GenericName[gl]=Navegador Web -GenericName[he]=דפדפן אינטרנט -GenericName[hr]=Web preglednik -GenericName[hu]=Webböngésző -GenericName[it]=Browser web -GenericName[ja]=ウェブ・ブラウザ -GenericName[ko]=웹 브라우저 -GenericName[ku]=Geroka torê -GenericName[lt]=Interneto naršyklė -GenericName[nb]=Nettleser -GenericName[nl]=Webbrowser -GenericName[nn]=Nettlesar -GenericName[no]=Nettleser -GenericName[pl]=Przeglądarka WWW -GenericName[pt]=Navegador Web -GenericName[pt_BR]=Navegador Web -GenericName[ro]=Navigator Internet -GenericName[ru]=Веб-браузер -GenericName[sk]=Internetový prehliadač -GenericName[sl]=Spletni brskalnik -GenericName[sv]=Webbläsare -GenericName[tr]=Web Tarayıcı -GenericName[ug]=توركۆرگۈ -GenericName[uk]=Веб-браузер -GenericName[vi]=Trình duyệt Web -GenericName[zh_CN]=网络浏览器 -GenericName[zh_TW]=網路瀏覽器 -Comment=Browse the World Wide Web -Comment[ar]=تصفح الشبكة العنكبوتية العالمية -Comment[ast]=Restola pela Rede -Comment[bn]=ইন্টারনেট ব্রাউজ করুন -Comment[ca]=Navegueu per el web -Comment[cs]=Prohlížení stránek World Wide Webu -Comment[da]=Surf på internettet -Comment[de]=Im Internet surfen -Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web) -Comment[es]=Navegue por la web -Comment[et]=Lehitse veebi -Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید -Comment[fi]=Selaa Internetin WWW-sivuja -Comment[fr]=Naviguer sur le Web -Comment[gl]=Navegar pola rede -Comment[he]=גלישה ברחבי האינטרנט -Comment[hr]=Pretražite web -Comment[hu]=A világháló böngészése -Comment[it]=Esplora il web -Comment[ja]=ウェブを閲覧します -Comment[ko]=웹을 돌아 다닙니다 -Comment[ku]=Li torê bigere -Comment[lt]=Naršykite internete -Comment[nb]=Surf på nettet -Comment[nl]=Verken het internet -Comment[nn]=Surf på nettet -Comment[no]=Surf på nettet -Comment[pl]=Przeglądanie stron WWW -Comment[pt]=Navegue na Internet -Comment[pt_BR]=Navegue na Internet -Comment[ro]=Navigați pe Internet -Comment[ru]=Доступ в Интернет -Comment[sk]=Prehliadanie internetu -Comment[sl]=Brskajte po spletu -Comment[sv]=Surfa på webben -Comment[tr]=İnternet'te Gezinin -Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ -Comment[uk]=Перегляд сторінок Інтернету -Comment[vi]=Để duyệt các trang web -Comment[zh_CN]=浏览互联网 -Comment[zh_TW]=瀏覽網際網路 -Keywords=Internet;WWW;Browser;Web;Explorer -Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب -Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador -Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer -Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer -Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet -Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen -Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;Firefox;Φιρεφοχ;Ιντερνετ -Keywords[es]=Explorador;Internet;WWW -Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa -Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur -Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה; -Keywords[hr]=Internet;WWW;preglednik;Web -Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer -Keywords[it]=Internet;WWW;Browser;Web;Navigatore -Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk -Keywords[ja]=Internet;WWW;Web;インターネット;ブラウザ;ウェブ;エクスプローラ -Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside -Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online -Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador -Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador -Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис -Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer -Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet -Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara -Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд -Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web -Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;浏览;上网;火狐;Firefox;ff;互联网;网站; -Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;瀏覽器;上網;網頁;火狐 +Type=Application Exec=/usr/lib/firefox/firefox %u -Icon=firefox Terminal=false X-MultipleArgs=false -Type=Application -MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall; -StartupNotify=true +Icon=firefox StartupWMClass=firefox -Categories=Network;WebBrowser; -Actions=new-window;new-private-window; +DBusActivatable=false +Categories=GNOME;GTK;Network;WebBrowser; +MimeType=application/json;application/pdf;application/rdf+xml;application/rss+xml;application/x-xpinstall;application/xhtml+xml;application/xml;audio/flac;audio/ogg;audio/webm;image/avif;image/gif;image/jpeg;image/png;image/svg+xml;image/webp;text/html;text/xml;video/ogg;video/webm;x-scheme-handler/chrome;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/mailto; +StartupNotify=true +Actions=new-window;new-private-window;open-profile-manager; +Name=Firefox +Name[ach]=Firefox +Name[af]=Firefox +Name[an]=Firefox +Name[ar]=Firefox +Name[ast]=Firefox +Name[az]=Firefox +Name[be]=Firefox +Name[bg]=Firefox +Name[bn]=Firefox +Name[br]=Firefox +Name[brx]=Firefox +Name[bs]=Firefox +Name[ca]=Firefox +Name[ca_valencia]=Firefox +Name[cak]=Firefox +Name[ckb]=Firefox +Name[cs]=Firefox +Name[cy]=Firefox +Name[da]=Firefox +Name[de]=Firefox +Name[dsb]=Firefox +Name[el]=Firefox +Name[en_CA]=Firefox +Name[en_GB]=Firefox +Name[eo]=Firefox +Name[es_AR]=Firefox +Name[es_CL]=Firefox +Name[es_ES]=Firefox +Name[es_MX]=Firefox +Name[et]=Firefox +Name[eu]=Firefox +Name[fa]=Firefox +Name[ff]=Firefox +Name[fi]=Firefox +Name[fr]=Firefox +Name[fur]=Firefox +Name[fy_NL]=Firefox +Name[ga_IE]=Firefox +Name[gd]=Firefox +Name[gl]=Firefox +Name[gn]=Firefox +Name[gu_IN]=Firefox +Name[he]=Firefox +Name[hi_IN]=Firefox +Name[hr]=Firefox +Name[hsb]=Firefox +Name[hu]=Firefox +Name[hy_AM]=Firefox +Name[hye]=Firefox +Name[ia]=Firefox +Name[id]=Firefox +Name[is]=Firefox +Name[it]=Firefox +Name[ja]=Firefox +Name[ka]=Firefox +Name[kab]=Firefox +Name[kk]=Firefox +Name[km]=Firefox +Name[kn]=Firefox +Name[ko]=Firefox +Name[lij]=Firefox +Name[lo]=Firefox +Name[lt]=Firefox +Name[ltg]=Firefox +Name[lv]=Firefox +Name[meh]=Firefox +Name[mk]=Firefox +Name[mr]=Firefox +Name[ms]=Firefox +Name[my]=Firefox +Name[nb_NO]=Firefox +Name[ne_NP]=Firefox +Name[nl]=Firefox +Name[nn_NO]=Firefox +Name[oc]=Firefox +Name[pa_IN]=Firefox +Name[pl]=Firefox +Name[pt_BR]=Firefox +Name[pt_PT]=Firefox +Name[rm]=Firefox +Name[ro]=Firefox +Name[ru]=Firefox +Name[sat]=Firefox +Name[sc]=Firefox +Name[sco]=Firefox +Name[si]=Firefox +Name[sk]=Firefox +Name[skr]=Firefox +Name[sl]=Firefox +Name[son]=Firefox +Name[sq]=Firefox +Name[sr]=Firefox +Name[sv_SE]=Firefox +Name[szl]=Firefox +Name[ta]=Firefox +Name[te]=Firefox +Name[tg]=Firefox +Name[th]=Firefox +Name[tl]=Firefox +Name[tr]=Firefox +Name[trs]=Firefox +Name[uk]=Firefox +Name[ur]=Firefox +Name[uz]=Firefox +Name[vi]=Firefox +Name[wo]=Firefox +Name[xh]=Firefox +Name[zh_CN]=Firefox +Name[zh_TW]=Firefox +Comment=Browse the World Wide Web +Comment[ach]=Browse the World Wide Web +Comment[af]=Browse the World Wide Web +Comment[an]=Browse the World Wide Web +Comment[ar]=تصفح شبكة الوِب العالمية +Comment[ast]=Browse the World Wide Web +Comment[az]=Browse the World Wide Web +Comment[be]=Аглядайце Сеціва +Comment[bg]=Разгледайте световната мрежа +Comment[bn]=Browse the World Wide Web +Comment[br]=Ergerzhout ar World Wide Web +Comment[brx]=Browse the World Wide Web +Comment[bs]=Pretražujte World Wide Web +Comment[ca]=Navegeu pel Web +Comment[ca_valencia]=Browse the World Wide Web +Comment[cak]=Tok chupam Word Wide Web +Comment[ckb]=Browse the World Wide Web +Comment[cs]=Prohlížení stránek World Wide Webu +Comment[cy]=Pori'r We Fyd Eang +Comment[da]=Brug internettet +Comment[de]=Im Internet surfen +Comment[dsb]=Pśeglědajśo World Wide Web +Comment[el]=Περιηγηθείτε στον παγκόσμιο ιστό +Comment[en_CA]=Browse the World Wide Web +Comment[en_GB]=Browse the World Wide Web +Comment[eo]=Retumi en la reto +Comment[es_AR]=Navegar la World Wide Web +Comment[es_CL]=Navegar por la World Wide Web +Comment[es_ES]=Navegar por la web +Comment[es_MX]=Navegar por la web +Comment[et]=Browse the World Wide Web +Comment[eu]=Arakatu World Wide Web-a +Comment[fa]=Browse the World Wide Web +Comment[ff]=Browse the World Wide Web +Comment[fi]=Selaa Internetiä +Comment[fr]=Naviguer sur le Web +Comment[fur]=Navighe sul Web +Comment[fy_NL]=Navigearje op it wrâldwide web +Comment[ga_IE]=Browse the World Wide Web +Comment[gd]=Rùraich lìon na cruinne +Comment[gl]=Navegar pola World Wide Web +Comment[gn]=Eikundaha World Wide Web rupi +Comment[gu_IN]=Browse the World Wide Web +Comment[he]=גלישה באינטרנט +Comment[hi_IN]=Browse the World Wide Web +Comment[hr]=Pregledaj World Wide Web +Comment[hsb]=Přehladajće World Wide Web +Comment[hu]=Böngésszen a világhálón +Comment[hy_AM]=Զննի՛ր համաշխարհային սարդոստայնը +Comment[hye]=Browse the World Wide Web +Comment[ia]=Navigar sur le Web +Comment[id]=Jelajahi World Wide Web +Comment[is]=Vafraðu um veraldarvefinn +Comment[it]=Naviga sul Web +Comment[ja]=World Wide Web をブラウジング +Comment[ka]=მსოფლიო ქსელთან წვდომა +Comment[kab]=Inig deg Web +Comment[kk]=Ғаламторды шолу +Comment[km]=Browse the World Wide Web +Comment[kn]=Browse the World Wide Web +Comment[ko]=월드 와이드 웹 탐색 +Comment[lij]=Browse the World Wide Web +Comment[lo]=ທ່ອງເວັບທົ່ວໂລກ +Comment[lt]=Browse the World Wide Web +Comment[ltg]=Browse the World Wide Web +Comment[lv]=Pārlūkojiet globālo tīmekli +Comment[meh]=Browse the World Wide Web +Comment[mk]=Browse the World Wide Web +Comment[mr]=Browse the World Wide Web +Comment[ms]=Browse the World Wide Web +Comment[my]=Browse the World Wide Web +Comment[nb_NO]=Surf på nettet +Comment[ne_NP]=Browse the World Wide Web +Comment[nl]=Navigeren op het wereldwijde web +Comment[nn_NO]=Surf på nettet +Comment[oc]=Navegar pel Web +Comment[pa_IN]=ਵਰਲਡ ਵਾਈਡ ਵੈੱਬ ਬਰਾਊਜ਼ਰ ਕਰੋ +Comment[pl]=Przeglądaj Internet +Comment[pt_BR]=Navegue na World Wide Web +Comment[pt_PT]=Navegar na Internet +Comment[rm]=Navigar en il web +Comment[ro]=Browse the World Wide Web +Comment[ru]=Доступ в Интернет +Comment[sat]=World Wide Web ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ +Comment[sc]=Nàviga su Web +Comment[sco]=Browse the World Wide Web +Comment[si]=ලෝක ව්‍යාප්ත වියමන පිරික්සන්න +Comment[sk]=Prehľadávať web (www) +Comment[skr]=ورلڈ وائیڈ ویب براؤز کرو +Comment[sl]=Brskanje po svetovnem spletu +Comment[son]=Browse the World Wide Web +Comment[sq]=Shfletoni në World Wide Web +Comment[sr]=Истражите интернет +Comment[sv_SE]=Surfa på webben +Comment[szl]=Browse the World Wide Web +Comment[ta]=Browse the World Wide Web +Comment[te]=Browse the World Wide Web +Comment[tg]=Ба шабакаи ҷаҳонии Интернет дастрасӣ пайдо намоед +Comment[th]=เรียกดูเวิลด์ไวด์เว็บ +Comment[tl]=Browse the World Wide Web +Comment[tr]=Web’de gezin +Comment[trs]=Gāchē nu ngà World Wide Web +Comment[uk]=Переглядайте всесвітню мережу +Comment[ur]=Browse the World Wide Web +Comment[uz]=Browse the World Wide Web +Comment[vi]=Duyệt web trên toàn thế giới +Comment[wo]=Browse the World Wide Web +Comment[xh]=Browse the World Wide Web +Comment[zh_CN]=浏览万维网 +Comment[zh_TW]=瀏覽全球資訊網 +GenericName=Web Browser +GenericName[ach]=Web Browser +GenericName[af]=Web Browser +GenericName[an]=Web Browser +GenericName[ar]=متصفح الإنترنت +GenericName[ast]=Web Browser +GenericName[az]=Web Browser +GenericName[be]=Вэб-браўзер +GenericName[bg]=Уеб браузър +GenericName[bn]=Web Browser +GenericName[br]=Merdeer Web +GenericName[brx]=Web Browser +GenericName[bs]=Web pretraživač +GenericName[ca]=Navegador web +GenericName[ca_valencia]=Web Browser +GenericName[cak]=Web Okik'amaya'l +GenericName[ckb]=Web Browser +GenericName[cs]=Webový prohlížeč +GenericName[cy]=Porwr Gwe +GenericName[da]=Webbrowser +GenericName[de]=Internet-Browser +GenericName[dsb]=Webwobglědowak +GenericName[el]=Πρόγραμμα περιήγησης +GenericName[en_CA]=Web Browser +GenericName[en_GB]=Web Browser +GenericName[eo]=Retumilo +GenericName[es_AR]=Navegador web +GenericName[es_CL]=Navegador Web +GenericName[es_ES]=Navegador web +GenericName[es_MX]=Navegador Web +GenericName[et]=Web Browser +GenericName[eu]=Web nabigatzailea +GenericName[fa]=Web Browser +GenericName[ff]=Web Browser +GenericName[fi]=Verkkoselain +GenericName[fr]=Navigateur web +GenericName[fur]=Navigadôr Web +GenericName[fy_NL]=Webbrowser +GenericName[ga_IE]=Web Browser +GenericName[gd]=Brabhsair-lìn +GenericName[gl]=Navegador web +GenericName[gn]=Ñanduti Kundahára +GenericName[gu_IN]=Web Browser +GenericName[he]=דפדפן אינטרנט +GenericName[hi_IN]=Web Browser +GenericName[hr]=Web preglednik +GenericName[hsb]=Webwobhladowak +GenericName[hu]=Webböngésző +GenericName[hy_AM]=Վեբ դիտարկիչ +GenericName[hye]=Web Browser +GenericName[ia]=Navigator web +GenericName[id]=Peramban Web +GenericName[is]=Vafri +GenericName[it]=Browser web +GenericName[ja]=ウェブブラウザー +GenericName[ka]=ბრაუზერი +GenericName[kab]=Iminig web +GenericName[kk]=Веб-браузері +GenericName[km]=Web Browser +GenericName[kn]=Web Browser +GenericName[ko]=웹 브라우저 +GenericName[lij]=Navegatô Web +GenericName[lo]=ຕົວ​ທ່ອງ​ເວັບ​ເວັບ​ໄຊ​ຕ​໌ +GenericName[lt]=Web Browser +GenericName[ltg]=Web Browser +GenericName[lv]=Tīmekļa pārlūks +GenericName[meh]=Web Browser +GenericName[mk]=Web Browser +GenericName[mr]=Web Browser +GenericName[ms]=Web Browser +GenericName[my]=Web Browser +GenericName[nb_NO]=Nettleser +GenericName[ne_NP]=Web Browser +GenericName[nl]=Webbrowser +GenericName[nn_NO]=Nettlesar +GenericName[oc]=Navegador Web +GenericName[pa_IN]=ਵੈੱਬ ਬਰਾਊਜ਼ਰ +GenericName[pl]=Przeglądarka internetowa +GenericName[pt_BR]=Navegador web +GenericName[pt_PT]=Navegador Web +GenericName[rm]=Navigatur web +GenericName[ro]=Web Browser +GenericName[ru]=Веб-браузер +GenericName[sat]=ᱣᱮᱵᱽ ᱵᱽᱨᱟᱣᱡᱚᱨ +GenericName[sc]=Navigadore web +GenericName[sco]=Web Browser +GenericName[si]=වියමන අතිරික්සුව +GenericName[sk]=Webový prehliadač +GenericName[skr]=ویب براؤزر +GenericName[sl]=Spletni brskalnik +GenericName[son]=Web Browser +GenericName[sq]=Shfletues +GenericName[sr]=Веб прегледач +GenericName[sv_SE]=Webbläsare +GenericName[szl]=Web Browser +GenericName[ta]=Web Browser +GenericName[te]=Web Browser +GenericName[tg]=Браузери веб +GenericName[th]=เว็บเบราว์เซอร์ +GenericName[tl]=Web Browser +GenericName[tr]=Web Tarayıcısı +GenericName[trs]=Web riña gāchē nu’ +GenericName[uk]=Браузер +GenericName[ur]=Web Browser +GenericName[uz]=Web Browser +GenericName[vi]=Trình duyệt web +GenericName[wo]=Web Browser +GenericName[xh]=Web Browser +GenericName[zh_CN]=Web 浏览器 +GenericName[zh_TW]=網頁瀏覽器 +Keywords=Internet;WWW;Browser;Web;Explorer; +Keywords[ach]=Internet;WWW;Browser;Web;Explorer; +Keywords[af]=Internet;WWW;Browser;Web;Explorer; +Keywords[an]=Internet;WWW;Browser;Web;Explorer; +Keywords[ar]=Internet;WWW;Browser;Web;Explorer; +Keywords[ast]=Internet;WWW;Browser;Web;Explorer; +Keywords[az]=Internet;WWW;Browser;Web;Explorer; +Keywords[be]=Internet;WWW;Browser;Web;Explorer; +Keywords[bg]=Internet;WWW;Browser;Web;Explorer; +Keywords[bn]=Internet;WWW;Browser;Web;Explorer; +Keywords[br]=Internet;WWW;Merdeer;Web;Ergerzhout; +Keywords[brx]=Internet;WWW;Browser;Web;Explorer; +Keywords[bs]=Internet;WWW;Pretraživač;Web;Istraživač; +Keywords[ca]=Internet;WWW;Browser;Web;Explorador;Navegador; +Keywords[ca_valencia]=Internet;WWW;Browser;Web;Explorer; +Keywords[cak]=K'amaya'l;WWW;Okik'amaya'l;Kanob'äl; +Keywords[ckb]=Internet;WWW;Browser;Web;Explorer; +Keywords[cs]=internet;WWW;prohlížeč;web; +Keywords[cy]=Rhyngrwyd;WWW;Porwr;Gwe;Archwiliwr; +Keywords[da]=Internet;WWW;Browser;Nettet;Explorer; +Keywords[de]=Internet;WWW;Browser;Web;Explorer; +Keywords[dsb]=Internet;WWW;wobglědowak;Web;Explorer; +Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Ιστός;Ίντερνετ; +Keywords[en_CA]=Internet;WWW;Browser;Web;Explorer; +Keywords[en_GB]=Internet;WWW;Browser;Web;Explorer; +Keywords[eo]=Interreto;Retumilo;TTT;Teksaĵo;Reto;Internet;WWW;Browser;Web;Explorer; +Keywords[es_AR]=Internet;WWW;Navegador;Web;Explorador; +Keywords[es_CL]=Internet;WWW;Navegador;Web;Explorador; +Keywords[es_ES]=Internet;WWW;Navegador;Web;Explorador; +Keywords[es_MX]=Internet;WWW;Navegador;Web;Explorador; +Keywords[et]=Internet;WWW;Browser;Web;Explorer; +Keywords[eu]=Internet;WWW;Nabigatzailea;Web;Arakatzailea; +Keywords[fa]=Internet;WWW;Browser;Web;Explorer; +Keywords[ff]=Internet;WWW;Browser;Web;Explorer; +Keywords[fi]=Internet;WWW;Browser;Web;Explorer;netti;webbi;selain; +Keywords[fr]=Internet;WWW;Navigateur;Web;Explorer; +Keywords[fur]=Internet;WWW;Browser;Navigadôr;Web;Esploradôr;Explorer; +Keywords[fy_NL]=Ynternet;WWW;Browser;Web;Ferkenner; +Keywords[ga_IE]=Internet;WWW;Browser;Web;Explorer; +Keywords[gd]=Internet;WWW;Browser;Web;Explorer;eadar-lìon;brabhsair;brobhsair;lìon;taisgealaiche; +Keywords[gl]=Internet;WWW;Navegador;Web;Explorador; +Keywords[gn]=Internet;WWW;Browser;Web;Explorer; +Keywords[gu_IN]=Internet;WWW;Browser;Web;Explorer; +Keywords[he]=אינטרנט;WWW;דפדפן;רשת;סייר;מרשתת; +Keywords[hi_IN]=Internet;WWW;Browser;Web;Explorer; +Keywords[hr]=Internet;WWW;Preglednik;Web;Istraživač; +Keywords[hsb]=Internet;WWW;wobhladowak;Web;Explorer; +Keywords[hu]=Internet;WWW;Böngésző;Web;Világháló; +Keywords[hy_AM]=Համացանց,WWW,Զննիչ,Վեբ,Ցանցախույզ: +Keywords[hye]=Internet;WWW;Browser;Web;Explorer; +Keywords[ia]=Internet;WWW;Navigator;Web;Explorator; +Keywords[id]=Internet;WWW;Browser;Web;Explorer; +Keywords[is]=Internet;WWW; Vafri; Vefur; Explorer; +Keywords[it]=Internet;WWW;Browser;Web;Explorer;Navigatore; +Keywords[ja]=Internet;WWW;Browser;Web;Explorer;インターネット;ブラウザー;ウェブ; +Keywords[ka]=ინტერნეტი;WWW;ბრაუზერი;ქსელი;ქსელთან წვდომა; +Keywords[kab]=Internet;WWW;Browser;Web;Explorer; +Keywords[kk]=Internet;WWW;Browser;Web;Explorer;Интернет;Ғаламтор;Браузер;Желі;Шолғыш; +Keywords[km]=Internet;WWW;Browser;Web;Explorer; +Keywords[kn]=Internet;WWW;Browser;Web;Explorer; +Keywords[ko]=인터넷;브라우저;웹;탐색기;Internet;WWW;Browser;Web;Explorer; +Keywords[lij]=Internet;WWW;Browser;Web;Explorer;Navegatô; +Keywords[lo]=Internet;WWW;Browser;Web;Explorer; +Keywords[lt]=Internet;WWW;Browser;Web;Explorer; +Keywords[ltg]=Internet;WWW;Browser;Web;Explorer; +Keywords[lv]=Internets;WWW;Pārlūkprogramma;Tīmeklis; +Keywords[meh]=Internet;WWW;Browser;Web;Explorer; +Keywords[mk]=Internet;WWW;Browser;Web;Explorer; +Keywords[mr]=Internet;WWW;Browser;Web;Explorer; +Keywords[ms]=Internet;WWW;Browser;Web;Explorer; +Keywords[my]=Internet;WWW;Browser;Web;Explorer; +Keywords[nb_NO]=Internett;WWW;Nettleser;Web;Utforsker; +Keywords[ne_NP]=Internet;WWW;Browser;Web;Explorer; +Keywords[nl]=Internet;WWW;Browser;Web;Verkenner; +Keywords[nn_NO]=Internett;WWW;Nettlesar;Web;Utforskar; +Keywords[oc]=Internet;WWW;Navegador;Navigador;Navegator;Navigator;Web;Explorer; +Keywords[pa_IN]=ਇੰਟਰਨੈੱਟ;WWW;ਬਰਾਊਜ਼ਰ;ਵੈੱਬ;ਐਕਸਪਲਰੋਰ;ਵੈਬ;ਇੰਟਰਨੈਟ; +Keywords[pl]=Internet;WWW;Przeglądarka;Browser;Wyszukiwarka;Web;Sieć;Explorer;Eksplorer;Strony;Witryny;internetowe; +Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorer;Navegador; +Keywords[pt_PT]=Internet;WWW;Navegador;Web;Explorador; +Keywords[rm]=Internet;WWW;Browser;Web;Explorer;navigatur; +Keywords[ro]=Internet;WWW;Browser;Web;Explorer; +Keywords[ru]=Сеть;Интернет;Браузер;Доступ в Интернет; +Keywords[sat]=Internet;WWW;Browser;Web;Explorer; +Keywords[sc]=Internet;WWW;Navigadore;Web;Explorer; +Keywords[sco]=Internet;WWW;Browser;Web;Explorer; +Keywords[si]=අන්තර්ජාලය;අතිරික්සුව;පිරික්සන්න;ගවේශකය;Internet;WWW;Browser;Web;Explorer; +Keywords[sk]=Internet;WWW;Prehliadač;Web;Prieskumník; +Keywords[skr]=Internet;WWW;Browser;Web;Explorer; +Keywords[sl]=internet;www;brskalnik;splet; +Keywords[son]=Internet;WWW;Browser;Web;Explorer; +Keywords[sq]=Internet;WWW;Shfletues;Web;Eksplorues; +Keywords[sr]=Internet;WWW;Browser;Web;Explorer; +Keywords[sv_SE]=Internet;WWW;Webbläsare;Webb;Utforskare; +Keywords[szl]=Internet;WWW;Browser;Web;Explorer; +Keywords[ta]=Internet;WWW;Browser;Web;Explorer; +Keywords[te]=Internet;WWW;Browser;Web;Explorer; +Keywords[tg]=Интернет;WWW;Браузер;Сомона;Ҷустуҷӯгар; +Keywords[th]=อินเทอร์เน็ต;เบราว์เซอร์;เว็บ;Internet;WWW;Browser;Web;Explorer; +Keywords[tl]=Internet;WWW;Browser;Web;Explorer; +Keywords[tr]=Internet;WWW;Browser;Web;Explorer;İnternet;Tarayıcı; +Keywords[trs]=Internet;WWW;Browser;Web;Explorer; +Keywords[uk]=Інтернет;WWW;Браузер;Веб;Переглядач; +Keywords[ur]=Internet;WWW;Browser;Web;Explorer; +Keywords[uz]=Internet;WWW;Browser;Web;Explorer; +Keywords[vi]=Internet;WWW;Trình duyệt;Web;Duyệt web; +Keywords[wo]=Internet;WWW;Browser;Web;Explorer; +Keywords[xh]=Internet;WWW;Browser;Web;Explorer; +Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer; +Keywords[zh_TW]=網際網路;網路;瀏覽器;網頁;上網;Internet;WWW;Browser;Web;Explorer; +X-GNOME-FullName=Firefox Web Browser +X-GNOME-FullName[ach]=Firefox Web Browser +X-GNOME-FullName[af]=Firefox Web Browser +X-GNOME-FullName[an]=Firefox Web Browser +X-GNOME-FullName[ar]=متصفح Firefox +X-GNOME-FullName[ast]=Firefox Web Browser +X-GNOME-FullName[az]=Firefox Web Browser +X-GNOME-FullName[be]=Вэб-браўзер Firefox +X-GNOME-FullName[bg]=Firefox Уеб браузър +X-GNOME-FullName[bn]=Firefox Web Browser +X-GNOME-FullName[br]=Merdeer Web Firefox +X-GNOME-FullName[brx]=Firefox Web Browser +X-GNOME-FullName[bs]=Firefox web pretraživač +X-GNOME-FullName[ca]=Navegador web Firefox +X-GNOME-FullName[ca_valencia]=Firefox Web Browser +X-GNOME-FullName[cak]=Firefox Web Browser +X-GNOME-FullName[ckb]=Firefox Web Browser +X-GNOME-FullName[cs]=Webový prohlížeč Firefox +X-GNOME-FullName[cy]=Porwr Gwe Firefox +X-GNOME-FullName[da]=Firefox-browser +X-GNOME-FullName[de]=Firefox-Web-Browser +X-GNOME-FullName[dsb]=Webwobglědowak Firefox +X-GNOME-FullName[el]=Πρόγραμμα περιήγησης Firefox +X-GNOME-FullName[en_CA]=Firefox Web Browser +X-GNOME-FullName[en_GB]=Firefox Web Browser +X-GNOME-FullName[eo]=Retumilo Firefox +X-GNOME-FullName[es_AR]=Navegador web Firefox +X-GNOME-FullName[es_CL]=Navegador web Firefox +X-GNOME-FullName[es_ES]=Navegador web Firefox +X-GNOME-FullName[es_MX]=Navegador web Firefox +X-GNOME-FullName[et]=Firefox Web Browser +X-GNOME-FullName[eu]=Firefox web nabigatzailea +X-GNOME-FullName[fa]=Firefox Web Browser +X-GNOME-FullName[ff]=Firefox Web Browser +X-GNOME-FullName[fi]=Firefox-verkkoselain +X-GNOME-FullName[fr]=Navigateur web Firefox +X-GNOME-FullName[fur]=Navigadôr web Firefox +X-GNOME-FullName[fy_NL]=Firefox-webbrowser +X-GNOME-FullName[ga_IE]=Firefox Web Browser +X-GNOME-FullName[gd]=Brabhsair-lìn Firefox +X-GNOME-FullName[gl]=Navegador web Firefox +X-GNOME-FullName[gn]=Firefox Ñanduti Kundahára +X-GNOME-FullName[gu_IN]=Firefox Web Browser +X-GNOME-FullName[he]=דפדפן אינטרנט Firefox +X-GNOME-FullName[hi_IN]=Firefox वेब ब्राउज़र +X-GNOME-FullName[hr]=Firefox web preglednik +X-GNOME-FullName[hsb]=Webwobhladowak Firefox +X-GNOME-FullName[hu]=Firefox webböngésző +X-GNOME-FullName[hy_AM]=Firefox վեբ դիտարկիչ +X-GNOME-FullName[hye]=Firefox Web Browser +X-GNOME-FullName[ia]=Navigator web Firefox +X-GNOME-FullName[id]=Firefox Peramban Web +X-GNOME-FullName[is]=Firefox-vafri +X-GNOME-FullName[it]=Browser web Firefox +X-GNOME-FullName[ja]=Firefox ウェブブラウザー +X-GNOME-FullName[ka]=Firefox-ბრაუზერი +X-GNOME-FullName[kab]=Iminig web Firefox +X-GNOME-FullName[kk]=Firefox веб-браузері +X-GNOME-FullName[km]=Firefox Web Browser +X-GNOME-FullName[kn]=Firefox Web Browser +X-GNOME-FullName[ko]=Firefox 웹 브라우저 +X-GNOME-FullName[lij]=Firefox Navegatô Web +X-GNOME-FullName[lo]=Firefox ເວັບບຣາວເຊີ +X-GNOME-FullName[lt]=Firefox Web Browser +X-GNOME-FullName[ltg]=Firefox Web Browser +X-GNOME-FullName[lv]=Firefox tīmekļa pārlūks +X-GNOME-FullName[meh]=Firefox Web Browser +X-GNOME-FullName[mk]=Firefox Web Browser +X-GNOME-FullName[mr]=Firefox Web Browser +X-GNOME-FullName[ms]=Firefox Web Browser +X-GNOME-FullName[my]=Firefox Web Browser +X-GNOME-FullName[nb_NO]=Firefox-nettleser +X-GNOME-FullName[ne_NP]=Firefox Web Browser +X-GNOME-FullName[nl]=Firefox-webbrowser +X-GNOME-FullName[nn_NO]=Firefox-nettlesar +X-GNOME-FullName[oc]=Navegador web Firefox +X-GNOME-FullName[pa_IN]=Firefox ਵੈੱਬ ਬਰਾਊਜ਼ਰ +X-GNOME-FullName[pl]=Przeglądarka Firefox +X-GNOME-FullName[pt_BR]=Navegador web Firefox +X-GNOME-FullName[pt_PT]=Navegador Web Firefox +X-GNOME-FullName[rm]=Navigatur-web Firefox +X-GNOME-FullName[ro]=Firefox Web Browser +X-GNOME-FullName[ru]=Веб-браузер Firefox +X-GNOME-FullName[sat]=Firefox ᱣᱮᱵᱽ ᱵᱽᱨᱟᱣᱡᱚᱨ +X-GNOME-FullName[sc]=Navigadore web Firefox +X-GNOME-FullName[sco]=Firefox Web Browser +X-GNOME-FullName[si]=Firefox අතිරික්සුව +X-GNOME-FullName[sk]=Webový prehliadač Firefox +X-GNOME-FullName[skr]=Firefox ویب براؤزر +X-GNOME-FullName[sl]=Spletni brskalnik Firefox +X-GNOME-FullName[son]=Firefox Web Browser +X-GNOME-FullName[sq]=Shfletuesi Firefox +X-GNOME-FullName[sr]=Firefox веб прегледач +X-GNOME-FullName[sv_SE]=Firefox webbläsare +X-GNOME-FullName[szl]=Firefox Web Browser +X-GNOME-FullName[ta]=Firefox Web Browser +X-GNOME-FullName[te]=Firefox Web Browser +X-GNOME-FullName[tg]=Браузери интернетии «Firefox» +X-GNOME-FullName[th]=เว็บเบราว์เซอร์ Firefox +X-GNOME-FullName[tl]=Firefox Web Browser +X-GNOME-FullName[tr]=Firefox Web Tarayıcısı +X-GNOME-FullName[trs]=Firefox Web riña gāchē nu’ +X-GNOME-FullName[uk]=Браузер Firefox +X-GNOME-FullName[ur]=Firefox Web Browser +X-GNOME-FullName[uz]=Firefox Web Browser +X-GNOME-FullName[vi]=Trình duyệt Web Firefox +X-GNOME-FullName[wo]=Firefox Web Browser +X-GNOME-FullName[xh]=Firefox Web Browser +X-GNOME-FullName[zh_CN]=Firefox 浏览器 +X-GNOME-FullName[zh_TW]=Firefox 網頁瀏覽器 [Desktop Action new-window] +Exec=/usr/lib/firefox/firefox --new-window %u Name=New Window -Name[ach]=Dirica manyen -Name[af]=Nuwe venster -Name[an]=Nueva finestra +Name[ach]=New Window +Name[af]=New Window +Name[an]=New Window Name[ar]=نافذة جديدة -Name[as]=নতুন উইন্ডো -Name[ast]=Ventana nueva -Name[az]=Yeni Pəncərə +Name[ast]=New Window +Name[az]=New Window Name[be]=Новае акно Name[bg]=Нов прозорец -Name[bn_BD]=নতুন উইন্ডো (N) -Name[bn_IN]=নতুন উইন্ডো +Name[bn]=New Window Name[br]=Prenestr nevez -Name[brx]=गोदान उइन्ड'(N) +Name[brx]=New Window Name[bs]=Novi prozor Name[ca]=Finestra nova -Name[cak]=K'ak'a' tzuwäch +Name[ca_valencia]=New Window +Name[cak]=K'ak'a' Tzuwäch +Name[ckb]=New Window Name[cs]=Nové okno Name[cy]=Ffenestr Newydd Name[da]=Nyt vindue Name[de]=Neues Fenster Name[dsb]=Nowe wokno Name[el]=Νέο παράθυρο +Name[en_CA]=New Window Name[en_GB]=New Window -Name[en_US]=New Window -Name[en_ZA]=New Window Name[eo]=Nova fenestro Name[es_AR]=Nueva ventana Name[es_CL]=Nueva ventana Name[es_ES]=Nueva ventana Name[es_MX]=Nueva ventana -Name[et]=Uus aken +Name[et]=New Window Name[eu]=Leiho berria -Name[fa]=پنجره جدید -Name[ff]=Henorde Hesere +Name[fa]=New Window +Name[ff]=New Window Name[fi]=Uusi ikkuna Name[fr]=Nouvelle fenêtre +Name[fur]=Gnûf barcon Name[fy_NL]=Nij finster -Name[ga_IE]=Fuinneog Nua +Name[ga_IE]=New Window Name[gd]=Uinneag ùr Name[gl]=Nova xanela Name[gn]=Ovetã pyahu -Name[gu_IN]=નવી વિન્ડો +Name[gu_IN]=New Window Name[he]=חלון חדש -Name[hi_IN]=नया विंडो +Name[hi_IN]=New Window Name[hr]=Novi prozor Name[hsb]=Nowe wokno Name[hu]=Új ablak -Name[hy_AM]=Նոր Պատուհան +Name[hy_AM]=Նոր պատուհան +Name[hye]=New Window +Name[ia]=Nove fenestra Name[id]=Jendela Baru Name[is]=Nýr gluggi Name[it]=Nuova finestra Name[ja]=新しいウィンドウ -Name[ja_JP-mac]=新規ウインドウ Name[ka]=ახალი ფანჯარა +Name[kab]=Asfaylu amaynut Name[kk]=Жаңа терезе -Name[km]=បង្អួចថ្មី -Name[kn]=ಹೊಸ ಕಿಟಕಿ +Name[km]=New Window +Name[kn]=New Window Name[ko]=새 창 -Name[kok]=नवें जनेल -Name[ks]=نئئ وِنڈو -Name[lij]=Neuvo barcon -Name[lo]=ຫນ້າຕ່າງໃຫມ່ -Name[lt]=Naujas langas -Name[ltg]=Jauns lūgs +Name[lij]=Neuvo Barcon +Name[lo]=ວິນໂດໃໝ່ +Name[lt]=New Window +Name[ltg]=New Window Name[lv]=Jauns logs -Name[mai]=नव विंडो -Name[mk]=Нов прозорец -Name[ml]=പുതിയ ജാലകം -Name[mr]=नवीन पटल -Name[ms]=Tetingkap Baru -Name[my]=ဝင်းဒိုးအသစ် +Name[meh]=New Window +Name[mk]=New Window +Name[mr]=New Window +Name[ms]=New Window +Name[my]=New Window Name[nb_NO]=Nytt vindu -Name[ne_NP]=नयाँ सञ्झ्याल +Name[ne_NP]=New Window Name[nl]=Nieuw venster Name[nn_NO]=Nytt vindauge -Name[or]=ନୂତନ ୱିଣ୍ଡୋ +Name[oc]=Fenèstra novèla Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ Name[pl]=Nowe okno Name[pt_BR]=Nova janela Name[pt_PT]=Nova janela Name[rm]=Nova fanestra -Name[ro]=Fereastră nouă +Name[ro]=New Window Name[ru]=Новое окно -Name[sat]=नावा विंडो (N) -Name[si]=නව කවුළුවක් +Name[sat]=ᱱᱟᱶᱟ ᱣᱤᱱᱰᱳ +Name[sc]=Ventana noa +Name[sco]=New Window +Name[si]=නව කවුළුව Name[sk]=Nové okno +Name[skr]=نویں ونڈو Name[sl]=Novo okno -Name[son]=Zanfun taaga +Name[son]=New Window Name[sq]=Dritare e Re Name[sr]=Нови прозор Name[sv_SE]=Nytt fönster -Name[ta]=புதிய சாளரம் -Name[te]=కొత్త విండో +Name[szl]=New Window +Name[ta]=New Window +Name[te]=New Window +Name[tg]=Равзанаи нав Name[th]=หน้าต่างใหม่ +Name[tl]=New Window Name[tr]=Yeni pencere -Name[tsz]=Eraatarakua jimpani +Name[trs]=Bēntanâ nākàa Name[uk]=Нове вікно -Name[ur]=نیا دریچہ -Name[uz]=Yangi oyna +Name[ur]=New Window +Name[uz]=New Window Name[vi]=Cửa sổ mới -Name[wo]=Palanteer bu bees -Name[xh]=Ifestile entsha +Name[wo]=New Window +Name[xh]=New Window Name[zh_CN]=新建窗口 Name[zh_TW]=開新視窗 -Exec=/usr/lib/firefox/firefox --new-window %u [Desktop Action new-private-window] +Exec=/usr/lib/firefox/firefox --private-window %u Name=New Private Window -Name[ach]=Dirica manyen me mung -Name[af]=Nuwe privaatvenster -Name[an]=Nueva finestra privada +Name[ach]=New Private Window +Name[af]=New Private Window +Name[an]=New Private Window Name[ar]=نافذة خاصة جديدة -Name[as]=নতুন ব্যক্তিগত উইন্ডো -Name[ast]=Ventana privada nueva -Name[az]=Yeni Məxfi Pəncərə -Name[be]=Новае акно адасаблення -Name[bg]=Нов прозорец за поверително сърфиране -Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো -Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো -Name[br]=Prenestr merdeiñ prevez nevez -Name[brx]=गोदान प्राइभेट उइन्ड' +Name[ast]=New Private Window +Name[az]=New Private Window +Name[be]=Новае прыватнае акно +Name[bg]=Нов личен прозорец +Name[bn]=New Private Window +Name[br]=Prenestr prevez nevez +Name[brx]=New Private Window Name[bs]=Novi privatni prozor Name[ca]=Finestra privada nova -Name[cak]=K'ak'a' ichinan tzuwäch +Name[ca_valencia]=New Private Window +Name[cak]=K'ak'a' Ichinan Tzuwäch +Name[ckb]=New Private Window Name[cs]=Nové anonymní okno Name[cy]=Ffenestr Breifat Newydd Name[da]=Nyt privat vindue Name[de]=Neues privates Fenster Name[dsb]=Nowe priwatne wokno -Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης +Name[el]=Νέο ιδιωτικό παράθυρο +Name[en_CA]=New Private Window Name[en_GB]=New Private Window -Name[en_US]=New Private Window -Name[en_ZA]=New Private Window Name[eo]=Nova privata fenestro Name[es_AR]=Nueva ventana privada Name[es_CL]=Nueva ventana privada Name[es_ES]=Nueva ventana privada Name[es_MX]=Nueva ventana privada -Name[et]=Uus privaatne aken +Name[et]=New Private Window Name[eu]=Leiho pribatu berria -Name[fa]=پنجره ناشناس جدید -Name[ff]=Henorde Suturo Hesere +Name[fa]=New Private Window +Name[ff]=New Private Window Name[fi]=Uusi yksityinen ikkuna -Name[fr]=Nouvelle fenêtre de navigation privée +Name[fr]=Nouvelle fenêtre privée +Name[fur]=Gnûf barcon privât Name[fy_NL]=Nij priveefinster -Name[ga_IE]=Fuinneog Nua Phríobháideach +Name[ga_IE]=New Private Window Name[gd]=Uinneag phrìobhaideach ùr Name[gl]=Nova xanela privada Name[gn]=Ovetã ñemi pyahu -Name[gu_IN]=નવી ખાનગી વિન્ડો +Name[gu_IN]=New Private Window Name[he]=חלון פרטי חדש -Name[hi_IN]=नयी निजी विंडो +Name[hi_IN]=New Private Window Name[hr]=Novi privatni prozor Name[hsb]=Nowe priwatne wokno Name[hu]=Új privát ablak -Name[hy_AM]=Սկսել Գաղտնի դիտարկում +Name[hy_AM]=Նոր գաղտնի պատուհան +Name[hye]=New Private Window +Name[ia]=Nove fenestra private Name[id]=Jendela Mode Pribadi Baru Name[is]=Nýr huliðsgluggi Name[it]=Nuova finestra anonima Name[ja]=新しいプライベートウィンドウ -Name[ja_JP-mac]=新規プライベートウインドウ Name[ka]=ახალი პირადი ფანჯარა +Name[kab]=Asfaylu amaynut n tunigin tusligt Name[kk]=Жаңа жекелік терезе -Name[km]=បង្អួចឯកជនថ្មី -Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ -Name[ko]=새 사생활 보호 모드 -Name[kok]=नवो खाजगी विंडो -Name[ks]=نْو پرایوٹ وینڈو -Name[lij]=Nêuvo barcón privòu -Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່ -Name[lt]=Naujas privataus naršymo langas -Name[ltg]=Jauns privatais lūgs +Name[km]=New Private Window +Name[kn]=New Private Window +Name[ko]=새 사생활 보호 창 +Name[lij]=Neuvo Barcon Privòu +Name[lo]=ວິນໂດສ່ວນຕົວໃໝ່ +Name[lt]=New Private Window +Name[ltg]=New Private Window Name[lv]=Jauns privātais logs -Name[mai]=नया निज विंडो (W) -Name[mk]=Нов приватен прозорец -Name[ml]=പുതിയ സ്വകാര്യ ജാലകം -Name[mr]=नवीन वैयक्तिक पटल -Name[ms]=Tetingkap Persendirian Baharu +Name[meh]=New Private Window +Name[mk]=New Private Window +Name[mr]=New Private Window +Name[ms]=New Private Window Name[my]=New Private Window Name[nb_NO]=Nytt privat vindu -Name[ne_NP]=नयाँ निजी सञ्झ्याल +Name[ne_NP]=New Private Window Name[nl]=Nieuw privévenster Name[nn_NO]=Nytt privat vindauge -Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ +Name[oc]=Fenèstra privada novèla Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ Name[pl]=Nowe okno prywatne Name[pt_BR]=Nova janela privativa Name[pt_PT]=Nova janela privada Name[rm]=Nova fanestra privata -Name[ro]=Fereastră privată nouă +Name[ro]=New Private Window Name[ru]=Новое приватное окно -Name[sat]=नावा निजेराक् विंडो (W ) -Name[si]=නව පුද්ගලික කවුළුව (W) -Name[sk]=Nové okno v režime Súkromné prehliadanie +Name[sat]=ᱱᱟᱶᱟ ᱱᱤᱡᱮᱨᱟᱜ ᱣᱤᱱᱰᱳ +Name[sc]=Ventana privada noa +Name[sco]=New Private Window +Name[si]=නව පෞද්. කවුළුව +Name[sk]=Nové súkromné okno +Name[skr]=نویں نجی ونڈو Name[sl]=Novo zasebno okno -Name[son]=Sutura zanfun taaga +Name[son]=New Private Window Name[sq]=Dritare e Re Private -Name[sr]=Нови приватан прозор +Name[sr]=Нови приватни прозор Name[sv_SE]=Nytt privat fönster -Name[ta]=புதிய தனிப்பட்ட சாளரம் -Name[te]=కొత్త ఆంతరంగిక విండో +Name[szl]=New Private Window +Name[ta]=New Private Window +Name[te]=New Private Window +Name[tg]=Равзанаи хусусии нав Name[th]=หน้าต่างส่วนตัวใหม่ +Name[tl]=New Private Window Name[tr]=Yeni gizli pencere -Name[tsz]=Juchiiti eraatarakua jimpani +Name[trs]=Bēntanâ huì nākàa Name[uk]=Приватне вікно -Name[ur]=نیا نجی دریچہ -Name[uz]=Yangi maxfiy oyna +Name[ur]=New Private Window +Name[uz]=New Private Window Name[vi]=Cửa sổ riêng tư mới -Name[wo]=Panlanteeru biir bu bees -Name[xh]=Ifestile yangasese entsha -Name[zh_CN]=新建隐私浏览窗口 -Name[zh_TW]=新增隱私視窗 -Exec=/usr/lib/firefox/firefox --private-window %u +Name[wo]=New Private Window +Name[xh]=New Private Window +Name[zh_CN]=新建隐私窗口 +Name[zh_TW]=開新隱私視窗 + +[Desktop Action open-profile-manager] +Exec=/usr/lib/firefox/firefox --ProfileManager +Name=Open Profile Manager +Name[ach]=Open Profile Manager +Name[af]=Open Profile Manager +Name[an]=Open Profile Manager +Name[ar]=افتح مدير الملف الشخصي +Name[ast]=Open Profile Manager +Name[az]=Open Profile Manager +Name[be]=Адкрыць менеджар профіляў +Name[bg]=Отваряне на мениджъра на профили +Name[bn]=Open Profile Manager +Name[br]=Digeriñ an ardoer aeladoù +Name[brx]=Open Profile Manager +Name[bs]=Otvori Menadžera profila +Name[ca]=Obre el gestor de perfils +Name[ca_valencia]=Open Profile Manager +Name[cak]=Open Profile Manager +Name[ckb]=Open Profile Manager +Name[cs]=Otevřete Správce profilů +Name[cy]=Agorwch y Rheolwr Proffil +Name[da]=Åbn profilhåndtering +Name[de]=Profilverwaltung öffnen +Name[dsb]=Profilowy zastojnik wócyniś +Name[el]=Άνοιγμα Διαχείρισης προφίλ +Name[en_CA]=Open Profile Manager +Name[en_GB]=Open Profile Manager +Name[eo]=Malfermi administranton de profiloj +Name[es_AR]=Abrir administrador de perfiles +Name[es_CL]=Abrir administrador de perfiles +Name[es_ES]=Abrir administrador de perfiles +Name[es_MX]=Abrir administrador de perfiles +Name[et]=Open Profile Manager +Name[eu]=Ireki profilen kudeatzailea +Name[fa]=Open Profile Manager +Name[ff]=Open Profile Manager +Name[fi]=Avaa profiilien hallinta +Name[fr]=Ouvrir le gestionnaire de profils +Name[fur]=Vierç gjestôr profîi +Name[fy_NL]=Profylbehearder iepenje +Name[ga_IE]=Open Profile Manager +Name[gd]=Fosgail manaidsear nam pròifilean +Name[gl]=Abrir o xestor de perfís +Name[gn]=Embojuruja mba’ete ñangarekoha +Name[gu_IN]=Open Profile Manager +Name[he]=פתיחת מנהל הפרופילים +Name[hi_IN]=Open Profile Manager +Name[hr]=Otvori upravljač profila +Name[hsb]=Zrjadowak profilow wočinić +Name[hu]=Profilkezelő megnyitása +Name[hy_AM]=Բացեք պրոֆիլի կառավարիչը +Name[hye]=Open Profile Manager +Name[ia]=Aperir le gestor de profilo +Name[id]=Buka Pengelola Profil +Name[is]=Opna umsýslu notandasniða +Name[it]=Apri gestore profili +Name[ja]=プロファイルマネージャーを開く +Name[ka]=პროფილის მმართველის გახსნა +Name[kab]=Ldi amsefrak n umaɣnu +Name[kk]=Профильдер бақарушысын ашу +Name[km]=Open Profile Manager +Name[kn]=Open Profile Manager +Name[ko]=프로필 관리자 열기 +Name[lij]=Open Profile Manager +Name[lo]=ເປີດຕົວຈັດການໂປຣໄຟລ໌ +Name[lt]=Open Profile Manager +Name[ltg]=Open Profile Manager +Name[lv]=Atvērt profilu pārvaldnieku +Name[meh]=Open Profile Manager +Name[mk]=Open Profile Manager +Name[mr]=Open Profile Manager +Name[ms]=Open Profile Manager +Name[my]=Open Profile Manager +Name[nb_NO]=Åpne profilbehandler +Name[ne_NP]=Open Profile Manager +Name[nl]=Profielbeheerder openen +Name[nn_NO]=Opne profilhandsaming +Name[oc]=Dobrir lo gestionari de perfils +Name[pa_IN]=ਪਰੋਫ਼ਾਈਲ ਮੈਨੇਜਰ ਖੋਲ੍ਹੋ +Name[pl]=Menedżer profili +Name[pt_BR]=Abrir gerenciador de perfis +Name[pt_PT]=Abrir o Gestor de Perfis +Name[rm]=Avrir l'administraziun da profils +Name[ro]=Open Profile Manager +Name[ru]=Открыть менеджер профилей +Name[sat]=ᱢᱮᱫᱦᱟᱸ ᱢᱮᱱᱮᱡᱚᱨ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ +Name[sc]=Aberi su gestore de profilos +Name[sco]=Open Profile Manager +Name[si]=පැතිකඩ කළමනාකරු අරින්න +Name[sk]=Otvoriť Správcu profilov +Name[skr]=پروفائل منیجر کھولو +Name[sl]=Odpri upravitelja profilov +Name[son]=Open Profile Manager +Name[sq]=Hapni Përgjegjës Profilesh +Name[sr]=Отворите управљач профила +Name[sv_SE]=Öppna Profilhanteraren +Name[szl]=Open Profile Manager +Name[ta]=Open Profile Manager +Name[te]=Open Profile Manager +Name[tg]=Кушодани мудири профилҳо +Name[th]=เปิดตัวจัดการโปรไฟล์ +Name[tl]=Open Profile Manager +Name[tr]=Profil yöneticisini aç +Name[trs]=Sa nīkāj ñu’ūnj nej perfî huā nì’nï̀nj ïn +Name[uk]=Відкрити менеджер профілів +Name[ur]=Open Profile Manager +Name[uz]=Open Profile Manager +Name[vi]=Mở trình quản lý hồ sơ +Name[wo]=Open Profile Manager +Name[xh]=Open Profile Manager +Name[zh_CN]=打开配置文件管理器 +Name[zh_TW]=開啟設定檔管理員 diff --git a/firefox/hotfix-gcc14.patch b/firefox/hotfix-gcc14.patch new file mode 100644 index 0000000000..c0ef63d55d --- /dev/null +++ b/firefox/hotfix-gcc14.patch @@ -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) diff --git a/firefox/0020-bmo-1862601-system-icu-74.patch b/firefox/hotfix-icu4c-74.patch similarity index 92% rename from firefox/0020-bmo-1862601-system-icu-74.patch rename to firefox/hotfix-icu4c-74.patch index 617dd76a9a..18dfb79a71 100644 --- a/firefox/0020-bmo-1862601-system-icu-74.patch +++ b/firefox/hotfix-icu4c-74.patch @@ -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 @@ -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 - diff --git a/firefox/hotfix-no-pip-check.patch b/firefox/hotfix-no-pip-check.patch new file mode 100644 index 0000000000..4c267606f3 --- /dev/null +++ b/firefox/hotfix-no-pip-check.patch @@ -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 + +--- 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" diff --git a/firefox/0006-hotfix-ppc-not-power8.patch b/firefox/hotfix-ppc-not-power8.diff similarity index 100% rename from firefox/0006-hotfix-ppc-not-power8.patch rename to firefox/hotfix-ppc-not-power8.diff diff --git a/firefox/hotfix-wgpu-atomicu64.patch b/firefox/hotfix-wgpu-atomicu64.patch new file mode 100644 index 0000000000..2272d9493c --- /dev/null +++ b/firefox/hotfix-wgpu-atomicu64.patch @@ -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; +-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; +--- 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 { + /// + #[inline] +- pub unsafe fn get_semaphore_counter_value(&self, semaphore: vk::Semaphore) -> VkResult { ++ pub unsafe fn get_semaphore_counter_value(&self, semaphore: vk::Semaphore) -> VkResult { + 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 @@ + + /// + #[inline] +- pub unsafe fn get_semaphore_counter_value(&self, semaphore: vk::Semaphore) -> VkResult { ++ pub unsafe fn get_semaphore_counter_value(&self, semaphore: vk::Semaphore) -> VkResult { + 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 ", diff --git a/firefox/org.mozilla.firefox.metainfo.xml b/firefox/org.mozilla.firefox.metainfo.xml new file mode 100644 index 0000000000..4bac0d395d --- /dev/null +++ b/firefox/org.mozilla.firefox.metainfo.xml @@ -0,0 +1,39 @@ + + + org.mozilla.firefox + firefox.desktop + Firefox + Mozilla + Fast, Private & Safe Web Browser + CC0-1.0 + MPL-2.0 + +

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.

+
+ + mozilla + internet + web + + + https://www.mozilla.org/firefox/ + https://donate.mozilla.org/ + https://bugzilla.mozilla.org/ + https://support.mozilla.org/ + https://wiki.mozilla.org/L10n:Starting_a_localization + + + + https://raw.githubusercontent.com/mozilla-releng/scriptworker-scripts/master/pushflatpakscript/media/screenshots/image1.png + The “New Tab” page + + + https://raw.githubusercontent.com/mozilla-releng/scriptworker-scripts/master/pushflatpakscript/media/screenshots/image2.png + A Wikipedia article displayed in Firefox + + + https://raw.githubusercontent.com/mozilla-releng/scriptworker-scripts/master/pushflatpakscript/media/screenshots/image3.png + The “Welcome to Firefox” page: “Open up an amazing internet” + + +
diff --git a/firefox/riscv.patch b/firefox/riscv.patch new file mode 100644 index 0000000000..40749e9907 --- /dev/null +++ b/firefox/riscv.patch @@ -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"); + diff --git a/firefox/sandbox-fonts.patch b/firefox/sandbox-fonts.patch new file mode 100644 index 0000000000..33a06c869d --- /dev/null +++ b/firefox/sandbox-fonts.patch @@ -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 + +--- 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"); diff --git a/firefox/sandbox-x11.patch b/firefox/sandbox-x11.patch new file mode 100644 index 0000000000..4647bd7f87 --- /dev/null +++ b/firefox/sandbox-x11.patch @@ -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");