firefox-fourier: fix patches layout — ship arch-*.patch + reference patches/
The PKGBUILD has been structurally broken since at least the 150.0.1
import: source array referenced patches at top level ('0001-...patch')
but the actual files live in patches/ — makepkg searched for them in
the package root and failed before doing any work. The arch-0002/3/4
upstream toolchain patches (clang 22, glibc 2.43, Rust 1.95) weren't
shipped in the repo at all.
Caught when boltzmann tried to build 150.0.1-2 (PR #9 follow-up); fails
at the source-staging phase with:
==> ERROR: arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch
was not found in the build directory and is not a URL.
Why nobody noticed: firefox-fourier has no Gitea Actions job (too heavy
for the runner pool). The shipped 150.0.1-1 .pkg.tar.zst was produced
by hand-staging files; the PKGBUILD itself never reproduced from a
clean checkout.
This commit:
- Moves all source-array patch references under patches/ to match the
on-disk layout (same convention as chromium-fourier).
- Updates prepare() paths accordingly.
- Adds arch-0002/3/4 patches fetched verbatim from
https://gitlab.archlinux.org/archlinux/packaging/packages/firefox
(raw/main/{0002,0003,0004}-...patch). Renamed with arch- prefix in
the repo to avoid namespace collision with the local 0001..0005.
- Adds the previously-omitted 0005-rdd-sandbox-v4l2-media-ctl.patch
to the source array + prepare(); this is the patch that broadens
the RDD sandbox so /dev/media* and /dev/video* ioctls reach the
decoder child (README §1 enumerates it as load-bearing for the HW
path). It was present in patches/ but not wired up.
Dry-run verified all 8 patches apply cleanly against firefox-150.0.1
source (some hunks offset by ≤3 lines, no conflicts).
pkgrel 2 -> 3.
This commit is contained in:
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
pkgname=firefox-fourier
|
pkgname=firefox-fourier
|
||||||
pkgver=150.0.1
|
pkgver=150.0.1
|
||||||
pkgrel=2
|
pkgrel=3
|
||||||
pkgdesc='Firefox with V4L2 stateless HW video decode unlocked for mainline Linux Rockchip'
|
pkgdesc='Firefox with V4L2 stateless HW video decode unlocked for mainline Linux Rockchip'
|
||||||
arch=('aarch64' 'x86_64')
|
arch=('aarch64' 'x86_64')
|
||||||
url='https://www.mozilla.org/firefox'
|
url='https://www.mozilla.org/firefox'
|
||||||
@@ -79,33 +79,35 @@ source=(
|
|||||||
# walls. arch-0001 (install-under-remoting) skipped — our launcher
|
# walls. arch-0001 (install-under-remoting) skipped — our launcher
|
||||||
# ships under /usr/bin/firefox-fourier with our own wrapper.
|
# ships under /usr/bin/firefox-fourier with our own wrapper.
|
||||||
# https://gitlab.archlinux.org/archlinux/packaging/packages/firefox
|
# https://gitlab.archlinux.org/archlinux/packaging/packages/firefox
|
||||||
'arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch'
|
'patches/arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch'
|
||||||
'arch-0003-Patch-glsl-optimizer-to-build-with-glibc-2.43.patch'
|
'patches/arch-0003-Patch-glsl-optimizer-to-build-with-glibc-2.43.patch'
|
||||||
'arch-0004-Bug-2023597-Use-wasm32-wasip1-target-for-clang-22.1-.patch'
|
'patches/arch-0004-Bug-2023597-Use-wasm32-wasip1-target-for-clang-22.1-.patch'
|
||||||
# firefox-fourier patches — V4L2 stateless decode unlock.
|
# firefox-fourier patches — V4L2 stateless decode unlock.
|
||||||
'0001-gfxinfo-v4l2-stateless-fourccs.patch'
|
'patches/0001-gfxinfo-v4l2-stateless-fourccs.patch'
|
||||||
'0002-libwrapper-hwdevice-ctx-create.patch'
|
'patches/0002-libwrapper-hwdevice-ctx-create.patch'
|
||||||
'0003-ffmpegvideo-v4l2-request-route.patch'
|
'patches/0003-ffmpegvideo-v4l2-request-route.patch'
|
||||||
'0004-prefs-v4l2-request.patch'
|
'patches/0004-prefs-v4l2-request.patch'
|
||||||
|
'patches/0005-rdd-sandbox-v4l2-media-ctl.patch'
|
||||||
# Vendor-default prefs that gate the patched VAAPI path on RK3399 —
|
# Vendor-default prefs that gate the patched VAAPI path on RK3399 —
|
||||||
# widget.dmabuf.force-enabled etc. See marfrit-packages#8 for evidence.
|
# widget.dmabuf.force-enabled etc. See marfrit-packages#8 for evidence.
|
||||||
'rockchip-fourier-defaults.js'
|
'rockchip-fourier-defaults.js'
|
||||||
)
|
)
|
||||||
sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP')
|
sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP')
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
cd "${srcdir}/firefox-${pkgver}"
|
cd "${srcdir}/firefox-${pkgver}"
|
||||||
|
|
||||||
# Toolchain glue (Arch upstream) — apply BEFORE the fourier patches.
|
# Toolchain glue (Arch upstream) — apply BEFORE the fourier patches.
|
||||||
patch -Np1 -i "${srcdir}/arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch"
|
patch -Np1 -i "${srcdir}/patches/arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch"
|
||||||
patch -Np1 -i "${srcdir}/arch-0003-Patch-glsl-optimizer-to-build-with-glibc-2.43.patch"
|
patch -Np1 -i "${srcdir}/patches/arch-0003-Patch-glsl-optimizer-to-build-with-glibc-2.43.patch"
|
||||||
patch -Np1 -i "${srcdir}/arch-0004-Bug-2023597-Use-wasm32-wasip1-target-for-clang-22.1-.patch"
|
patch -Np1 -i "${srcdir}/patches/arch-0004-Bug-2023597-Use-wasm32-wasip1-target-for-clang-22.1-.patch"
|
||||||
|
|
||||||
# Fourier patches — order matters; see ../PLAN.md for rationale.
|
# Fourier patches — order matters; see ../PLAN.md for rationale.
|
||||||
patch -Np1 -i "${srcdir}/0001-gfxinfo-v4l2-stateless-fourccs.patch"
|
patch -Np1 -i "${srcdir}/patches/0001-gfxinfo-v4l2-stateless-fourccs.patch"
|
||||||
patch -Np1 -i "${srcdir}/0002-libwrapper-hwdevice-ctx-create.patch"
|
patch -Np1 -i "${srcdir}/patches/0002-libwrapper-hwdevice-ctx-create.patch"
|
||||||
patch -Np1 -i "${srcdir}/0003-ffmpegvideo-v4l2-request-route.patch"
|
patch -Np1 -i "${srcdir}/patches/0003-ffmpegvideo-v4l2-request-route.patch"
|
||||||
patch -Np1 -i "${srcdir}/0004-prefs-v4l2-request.patch"
|
patch -Np1 -i "${srcdir}/patches/0004-prefs-v4l2-request.patch"
|
||||||
|
patch -Np1 -i "${srcdir}/patches/0005-rdd-sandbox-v4l2-media-ctl.patch"
|
||||||
|
|
||||||
cp "${srcdir}/mozconfig" .mozconfig
|
cp "${srcdir}/mozconfig" .mozconfig
|
||||||
}
|
}
|
||||||
|
|||||||
+295
File diff suppressed because one or more lines are too long
+3108
File diff suppressed because one or more lines are too long
+28
@@ -0,0 +1,28 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alex Hochheiden <ahochheiden@mozilla.com>
|
||||||
|
Date: Wed, 1 Apr 2026 18:11:37 +0000
|
||||||
|
Subject: [PATCH] Bug 2023597 - Use `wasm32-wasip1` target for clang >= 22.1
|
||||||
|
r=firefox-build-system-reviewers,sergesanspaille
|
||||||
|
|
||||||
|
https://github.com/llvm/llvm-project/pull/165345
|
||||||
|
https://releases.llvm.org/22.1.0/tools/clang/docs/ReleaseNotes.html
|
||||||
|
|
||||||
|
Differential Revision: https://phabricator.services.mozilla.com/D291023
|
||||||
|
---
|
||||||
|
build/moz.configure/toolchain.configure | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
|
||||||
|
index a37ed610cc43..c7d0c8bdf75c 100644
|
||||||
|
--- a/build/moz.configure/toolchain.configure
|
||||||
|
+++ b/build/moz.configure/toolchain.configure
|
||||||
|
@@ -695,6 +695,9 @@ def check_compiler(configure_cache, compiler, language, target, android_version)
|
||||||
|
# This makes clang define __ANDROID_API__ and use versioned library
|
||||||
|
# directories from the NDK.
|
||||||
|
toolchain = "%s%d" % (target.toolchain, android_version)
|
||||||
|
+ elif target.kernel == "WASI" and info.type == "clang" and info.version >= Version("22.1"):
|
||||||
|
+ # The wasm32-wasi target was renamed to wasm32-wasip1 in LLVM 22.1.
|
||||||
|
+ toolchain = "wasm32-wasip1"
|
||||||
|
else:
|
||||||
|
toolchain = target.toolchain
|
||||||
|
|
||||||
Reference in New Issue
Block a user