[scarthgap] chromium: Upgrade to 147.0.7727.116#980
Conversation
|
I just came back from vacation and am busy catching up, I might need a few days to find the time to review this in detail. But thanks already for putting in the work! I think it'd be great to have a few more test builds, including at least one chromium-x11 build. @zboszor any chance you could give this PR a try to help extend the test build coverage? |
|
X11 is also tested with arm, arm64 and x86-64: https://github.com/brightsign/meta-browser/actions/runs/24985101755 |
|
@caneraltinbasak The upgrade to 147.0.7727.116 just differs in the sha256sum hash, please try that. The new version includes a lot of CVE fixes. |
4a1c860 to
90a66ed
Compare
90a66ed to
4a1c860
Compare
|
That was accidental. I've cherry picked @zboszor s change to my branch. Testing it now. |
|
It is ready now, all builds({wayland, x11} *{arm, arm64, x86-64}) succeeded: |
|
@MaxIhlenfeldt @zboszor Changes are ready to review. |
|
I find it useful to compare the new state of scarthgap to the current state of master, so both for this review and for future reference, this is the diff: diff --git a/meta-chromium/recipes-browser/chromium/chromium-gn.inc b/meta-chromium/recipes-browser/chromium/chromium-gn.inc
index 4c720f96..08613c16 100644
--- a/meta-chromium/recipes-browser/chromium/chromium-gn.inc
+++ b/meta-chromium/recipes-browser/chromium/chromium-gn.inc
@@ -35,10 +35,17 @@ SRC_URI += "\
file://fix-SYS_SECCOMP-redefinition.patch \
file://use-adler2.patch \
file://chromium-145-zip_ffi_glue-use-edition2024.patch \
+ file://0014-devtools-fix-import-meta-main-for-older-nodejs.patch \
+ file://fix-cpp26-octal-literals.patch \
+ file://fix-clang20-defaulted-operator-crash.patch \
+ file://fix-xr-rigid-transform-incomplete-type.patch \
"
# ARM/AArch64-specific patches.
-SRC_URI:append:aarch64 = "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '', ' file://arm/0001-Fix-AES-crypto-SIGILL-on-rpi4-64.patch', d)}"
+SRC_URI:append:aarch64 = "\
+ file://fix-mksnapshot-clang20-miscompile.patch \
+ ${@bb.utils.contains('TUNE_FEATURES', 'crypto', '', ' file://arm/0001-Fix-AES-crypto-SIGILL-on-rpi4-64.patch', d)} \
+"
# musl-specific patches.
SRC_URI:append:libc-musl = "\
@@ -81,7 +88,6 @@ DEPENDS += " \
libwebp \
libxkbcommon \
libxslt \
- lld-native \
ninja-native \
nodejs-native \
nspr \
@@ -198,16 +204,13 @@ GN_ARGS += "use_lld=true use_gold=false"
# file and other utilities are unable to read a 32-bit binary this size, which
# causes it not to be stripped.
# The solution is two-fold:
-# 1. Set DEBUG_LEVELFLAG as needed, which is used in both FULL_OPTIMIZATION
-# and DEBUG_OPTIMIZATION.
+# 1. Override DEBUG_FLAGS to remove -g, preventing Yocto from injecting debug
+# flags that override GN's -g0. With LTO, debug sections can exceed 4GB
+# causing R_X86_64_32 relocation overflow during linking.
# 2. Explicitly pass symbol_level=0 to GN. This causes -g0 to be passed
# instead, so that if DEBUG_BUILD is not set GN will not create a huge debug
-# binary anyway. Since our compiler flags are passed after GN's, -g0 does
-# not cause any issues if DEBUG_BUILD is set, as -g1 will be passed later.
-DEBUG_LEVELFLAG = "-g1"
-# For ARM builds, completely remove debug flags that cause binary size issues
-# This prevents the "output file too large" linker error on ARM32
-DEBUG_LEVELFLAG:arm = ""
+# binary anyway.
+DEBUG_FLAGS = "-feliminate-unused-debug-types ${DEBUG_PREFIX_MAP}"
GN_ARGS += "symbol_level=0"
# Disable Chrome Remote Desktop (aka Chromoting) support. Building host support
@@ -511,7 +514,14 @@ addtask copy_clang_library after do_add_clang_latest before do_compile
do_copy_target_rustlibs () {
# Chromium needs a single Rust sysroot that contains the rustlibs for both
# the host and target, so we copy the target rustlibs to the native sysroot.
+ # Remove old rlibs/rmeta first to avoid duplicates from rust-cross vs
+ # libstd-rs causing symbol hash mismatches at link time.
+ # Use RUST_TARGET_SYS (not TARGET_ARCH*) to avoid nuking host rlibs.
rustlib_src_dir="${STAGING_LIBDIR}/rustlib/${TARGET_ARCH}"*
+ if [ -d "${STAGING_LIBDIR_NATIVE}/rustlib/${RUST_TARGET_SYS}/lib" ]; then
+ rm -f "${STAGING_LIBDIR_NATIVE}/rustlib/${RUST_TARGET_SYS}/lib"/*.rlib
+ rm -f "${STAGING_LIBDIR_NATIVE}/rustlib/${RUST_TARGET_SYS}/lib"/*.rmeta
+ fi
cp -r $rustlib_src_dir "${STAGING_LIBDIR_NATIVE}/rustlib"
}
addtask copy_target_rustlibs after do_configure before do_compile
diff --git a/meta-chromium/recipes-browser/chromium/chromium.inc b/meta-chromium/recipes-browser/chromium/chromium.inc
index cc2da29a..4a930408 100644
--- a/meta-chromium/recipes-browser/chromium/chromium.inc
+++ b/meta-chromium/recipes-browser/chromium/chromium.inc
@@ -5,7 +5,7 @@ CVE_PRODUCT = "chromium:chromium google:chrome"
SRC_URI = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${PV}.tar.xz"
SRC_URI[sha256sum] = "fe6baaaedada963ef730869a93152fd559c9450f7c92ebe3e8c3a15cb05b3db7"
-S = "${UNPACKDIR}/chromium-${PV}"
+S = "${WORKDIR}/chromium-${PV}"
# GCC is not tested or officially supported upstream, and supporting it here
# requires an ever-growing amount of backports and custom patches, without any
@@ -14,7 +14,7 @@ TOOLCHAIN = "clang"
# By default, clang.bbclass sets TOOLCHAIN:class-native to "gcc", but we want
# to build the native recipes (e.g. GN) with clang too.
-TOOLCHAIN_NATIVE = "clang"
+TOOLCHAIN:class-native = "clang"
# This makes the target build use libc++ and compiler_rt instead of the GNU
# runtime, just like upstream does. The native binaries compiled and run as
diff --git a/meta-chromium/recipes-browser/chromium/files/0014-devtools-fix-import-meta-main-for-older-nodejs.patch b/meta-chromium/recipes-browser/chromium/files/0014-devtools-fix-import-meta-main-for-older-nodejs.patch
new file mode 100644
index 00000000..e327c321
--- /dev/null
+++ b/meta-chromium/recipes-browser/chromium/files/0014-devtools-fix-import-meta-main-for-older-nodejs.patch
@@ -0,0 +1,37 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Copilot <223556219+Copilot@users.noreply.github.com>
+Date: Wed, 23 Apr 2026 13:30:00 +0100
+Subject: [PATCH] devtools: Replace import.meta.main with Node.js 22 compatible
+ check
+
+import.meta.main requires Node.js >= 24.2.0 but scarthgap ships
+Node.js 22.11.0. Use a URL comparison of import.meta.url against
+process.argv[1] as a fallback, which works on all Node.js ESM versions.
+
+Upstream-Status: Inappropriate [OE-specific workaround]
+
+Signed-off-by: Copilot <223556219+Copilot@users.noreply.github.com>
+---
+ .../src/scripts/build/generate_css_js_files.js | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/third_party/devtools-frontend/src/scripts/build/generate_css_js_files.js b/third_party/devtools-frontend/src/scripts/build/generate_css_js_files.js
+--- a/third_party/devtools-frontend/src/scripts/build/generate_css_js_files.js
++++ b/third_party/devtools-frontend/src/scripts/build/generate_css_js_files.js
+@@ -4,6 +4,7 @@
+ import cssnano from 'cssnano';
+ import cssnanoPresetLite from 'cssnano-preset-lite';
+ import * as fs from 'node:fs';
++import * as url from 'node:url';
+ import * as path from 'node:path';
+ import postcss from 'postcss';
+
+@@ -80,6 +81,7 @@ async function runMain() {
+ );
+ }
+
+-if (import.meta.main) {
++const isMain = import.meta.main ?? (url.fileURLToPath(import.meta.url) === fs.realpathSync(process.argv[1]));
++if (isMain) {
+ runMain();
+ }
diff --git a/meta-chromium/recipes-browser/chromium/files/fix-clang20-defaulted-operator-crash.patch b/meta-chromium/recipes-browser/chromium/files/fix-clang20-defaulted-operator-crash.patch
new file mode 100644
index 00000000..767913b9
--- /dev/null
+++ b/meta-chromium/recipes-browser/chromium/files/fix-clang20-defaulted-operator-crash.patch
@@ -0,0 +1,24 @@
+From: OE Build <oe@build>
+Subject: [PATCH] Fix Clang 20 crash on defaulted out-of-class friend operator==
+
+Clang 20 crashes (ICE in SetDeclDefaulted) when an out-of-class friend
+operator== with a DLL-export attribute uses = default. Provide an
+explicit implementation instead. Chromium 147 targets Clang 23 which
+doesn't have this bug.
+
+Upstream-Status: Inappropriate [scarthgap backport compatibility]
+Signed-off-by: OE Build <oe@build>
+
+--- a/services/network/public/cpp/permissions_policy/origin_with_possible_wildcards.cc
++++ b/services/network/public/cpp/permissions_policy/origin_with_possible_wildcards.cc
+@@ -94,7 +94,9 @@
+ }
+
+ bool operator==(const OriginWithPossibleWildcards& lhs,
+- const OriginWithPossibleWildcards& rhs) = default;
++ const OriginWithPossibleWildcards& rhs) {
++ return lhs.csp_source == rhs.csp_source;
++}
+
+ std::strong_ordering operator<=>(const OriginWithPossibleWildcards& lhs,
+ const OriginWithPossibleWildcards& rhs) {
diff --git a/meta-chromium/recipes-browser/chromium/files/fix-cpp26-octal-literals.patch b/meta-chromium/recipes-browser/chromium/files/fix-cpp26-octal-literals.patch
new file mode 100644
index 00000000..b09c95d3
--- /dev/null
+++ b/meta-chromium/recipes-browser/chromium/files/fix-cpp26-octal-literals.patch
@@ -0,0 +1,21 @@
+From: OE Build <oe@build>
+Subject: [PATCH] Fix C++26 octal literal syntax for older compilers
+
+The 0o prefix for octal literals (P3275R0) requires C++26/Clang 21+.
+Replace with standard C++ 0-prefix octal literals for compatibility
+with Clang 20.
+
+Upstream-Status: Inappropriate [scarthgap backport compatibility]
+Signed-off-by: OE Build <oe@build>
+
+--- a/components/named_mojo_ipc_server/named_mojo_server_endpoint_connector_linux.cc
++++ b/components/named_mojo_ipc_server/named_mojo_server_endpoint_connector_linux.cc
+@@ -116,7 +116,7 @@ bool NamedMojoServerEndpointConnectorLinux::TryStart() {
+ if (!options_.require_same_peer_user) {
+ // Allow any user to write to the UDS. fchmod doesn't work after bind(), so
+ // we need to call chmod on the socket filename, which is the server name.
+- if (chmod(options_.server_name.c_str(), 0o666) != 0) {
++ if (chmod(options_.server_name.c_str(), 0666) != 0) {
+ PLOG(ERROR) << "chmod failed";
+ return false;
+ }
diff --git a/meta-chromium/recipes-browser/chromium/files/fix-mksnapshot-clang20-miscompile.patch b/meta-chromium/recipes-browser/chromium/files/fix-mksnapshot-clang20-miscompile.patch
new file mode 100644
index 00000000..c3c10496
--- /dev/null
+++ b/meta-chromium/recipes-browser/chromium/files/fix-mksnapshot-clang20-miscompile.patch
@@ -0,0 +1,32 @@
+From: user <user@example.com>
+Subject: [PATCH] v8: Fix RegisterAllocator crash under QEMU user-mode emulation
+
+When cross-compiling for aarch64 with Clang 20, V8's mksnapshot
+crashes under QEMU user-mode emulation with SIGTRAP in
+RegisterAllocator::Free(). The crash occurs because std::find
+fails to locate a register pointer in allocated_registers_,
+causing erase(end()) which is undefined behavior.
+
+This appears to be triggered by Clang 20's optimization of the
+std::vector find+erase pattern combined with QEMU's emulation.
+The issue does not occur with Clang 23 on native arm64 hardware.
+
+Make Free() defensive by checking the find result before erasing.
+This is a build-time-only code path (mksnapshot generates V8
+builtins during compilation) with no runtime performance impact.
+
+--- a/v8/src/builtins/arm64/builtins-arm64.cc
++++ b/v8/src/builtins/arm64/builtins-arm64.cc
+@@ -3578,8 +3578,10 @@
+ DCHECK_NE(*reg, no_reg);
+ available_.Combine(*reg);
+ *reg = no_reg;
+- allocated_registers_.erase(
+- find(allocated_registers_.begin(), allocated_registers_.end(), reg));
++ auto it = find(allocated_registers_.begin(), allocated_registers_.end(),
++ reg);
++ if (it != allocated_registers_.end())
++ allocated_registers_.erase(it);
+ }
+
+ void Reserve(const Register& reg) {
diff --git a/meta-chromium/recipes-browser/chromium/files/fix-xr-rigid-transform-incomplete-type.patch b/meta-chromium/recipes-browser/chromium/files/fix-xr-rigid-transform-incomplete-type.patch
new file mode 100644
index 00000000..04f74035
--- /dev/null
+++ b/meta-chromium/recipes-browser/chromium/files/fix-xr-rigid-transform-incomplete-type.patch
@@ -0,0 +1,34 @@
+From: Copilot <223556219+Copilot@users.noreply.github.com>
+Subject: [PATCH] Fix incomplete type error with XRRigidTransform destructor
+
+Clang 20's libc++ requires complete types for unique_ptr destruction.
+Move the defaulted destructor from the header to the .cc file where
+gfx::Transform is fully defined.
+
+---
+ .../renderer/modules/xr/xr_rigid_transform.cc | 2 ++
+ .../renderer/modules/xr/xr_rigid_transform.h | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+--- a/third_party/blink/renderer/modules/xr/xr_rigid_transform.h
++++ b/third_party/blink/renderer/modules/xr/xr_rigid_transform.h
+@@ -37,7 +37,7 @@
+ XRRigidTransform(const XRRigidTransform&) = delete;
+ XRRigidTransform& operator=(const XRRigidTransform&) = delete;
+
+- ~XRRigidTransform() override = default;
++ ~XRRigidTransform() override;
+
+ DOMPointReadOnly* position() const { return position_.Get(); }
+ DOMPointReadOnly* orientation() const { return orientation_.Get(); }
+--- a/third_party/blink/renderer/modules/xr/xr_rigid_transform.cc
++++ b/third_party/blink/renderer/modules/xr/xr_rigid_transform.cc
+@@ -25,6 +25,8 @@
+ }
+ } // anonymous namespace
+
++XRRigidTransform::~XRRigidTransform() = default;
++
+ // makes a deep copy of transformationMatrix
+ XRRigidTransform::XRRigidTransform(const gfx::Transform& transformationMatrix)
+ : matrix_(std::make_unique<gfx::Transform>(transformationMatrix)) {
diff --git a/meta-chromium/recipes-browser/chromium/gn-native_147.0.7727.116.bb b/meta-chromium/recipes-browser/chromium/gn-native_147.0.7727.116.bb
new file mode 100644
index 00000000..5a3225be
--- /dev/null
+++ b/meta-chromium/recipes-browser/chromium/gn-native_147.0.7727.116.bb
@@ -0,0 +1,48 @@
+# gn-native contains the GN binary used to configure Chromium.
+# It is not released separately, and each Chromium release is only expected to
+# work with the GN version provided with it.
+
+require chromium.inc
+
+inherit native
+
+S = "${WORKDIR}/chromium-${PV}"
+
+# bootstrap.py --no_clean hardcodes the build location to out_bootstrap.
+# Omitting --no_clean causes the script to create a temporary directory with a
+# random name outside the build directory, so we choose the lesser of the two
+# evils.
+B = "${S}/out_bootstrap"
+
+SRC_URI += " \
+ file://0001-Pass-no-static-libstdc-to-gen.py.patch \
+"
+
+# The build system expects the linker to be invoked via the compiler. If we use
+# the default value for BUILD_LD, it will fail because it does not recognize
+# some of the arguments passed to it.
+BUILD_LD = "${CXX}"
+
+# Use LLVM's ar rather than binutils'. Depending on the optimizations enabled
+# in the build ar(1) may not be enough.
+BUILD_AR = "llvm-ar"
+
+DEPENDS = "clang-native ninja-native"
+DEPENDS:append:runtime-llvm = " compiler-rt-native libcxx-native"
+# Use libcxx headers for native parts
+CXXFLAGS:append:runtime-llvm = " -isysroot=${STAGING_DIR_NATIVE} -stdlib=libc++"
+# Use libgcc for native parts
+LDFLAGS:append:runtime-llvm = " -rtlib=libgcc -unwindlib=libgcc -stdlib=libc++ -lc++abi -rpath ${STAGING_LIBDIR_NATIVE}"
+
+do_configure[noexec] = "1"
+
+do_compile() {
+ python3 ${S}/tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/out/Release/gn ${D}${bindir}/gn
+}
+
+INSANE_SKIP:${PN} += "already-stripped"
diff --git a/meta-chromium/recipes-browser/chromium/gn/0001-Pass-no-static-libstdc-to-gen.py.patch b/meta-chromium/recipes-browser/chromium/gn/0001-Pass-no-static-libstdc-to-gen.py.patch
new file mode 100644
index 00000000..9c142ce3
--- /dev/null
+++ b/meta-chromium/recipes-browser/chromium/gn/0001-Pass-no-static-libstdc-to-gen.py.patch
@@ -0,0 +1,28 @@
+From 43aa14f7dbfb3f1336fe73cd40fe300364643838 Mon Sep 17 00:00:00 2001
+From: Maksim Sisov <msisov@igalia.com>
+Date: Thu, 19 Dec 2019 15:47:53 +0200
+Subject: [PATCH] Pass no-static-libstdc++ to gen.py
+
+Upstream-Status: Inappropriate
+
+GN requires libstdc++.a to be installed on host systems by default,
+which is often not very common, for no particular reason.
+
+Signed-off-by: Raphael Kubo da Costa <kubo@igalia.com>
+Signed-off-by: Maksim Sisov <msisov@igalia.com>
+---
+ tools/gn/bootstrap/bootstrap.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 8955e051ac..28a2ed4b7d 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -111,6 +111,7 @@ def main(argv):
+ cmd = [
+ sys.executable,
+ os.path.join(GN_ROOT, 'build', 'gen.py'),
++ '--no-static-libstdc++',
+ '--no-last-commit-position',
+ '--out-path=' + gn_build_dir,
+ ] |
MaxIhlenfeldt
left a comment
There was a problem hiding this comment.
Two questions, as well as some requests for changing patch authors / sign offs. All in all fantastic work, thanks!
92898de to
11ed21e
Compare
caneraltinbasak
left a comment
There was a problem hiding this comment.
I've used copilot to fix the problems and I didn't want to hide the fact that I did use copilot. I reviewed the patches myself and they looked all good.
I've replied the questions and fixed the copilot generated patches.
MaxIhlenfeldt
left a comment
There was a problem hiding this comment.
Thanks for the updates to this PR as well as your transparency regarding the use of Copilot! now all lgtm, thanks again for all the work!
|
Ah, just one more thing, can you please sign off the first commit for this PR? |
Port of upstream master commit 5b9a7e7 to scarthgap branch. Release notes: https://chromereleases.googleblog.com/2026/04/stable-channel-update-for-desktop.html Build and patch changes: ------------------------ Removed patches (from upstream): * 0006-Don-t-pass-unknown-LLVM-options.patch Merged into the new version. * 0008-Use-the-correct-path-to-libclang_rt.builtins.a.patch Merged into the new version. * musl/0008-Use-monotonic-clock-for-pthread_cond_timedwait-with-.patch Merged into the new version. * musl/0015-fix-libc-version-include.patch Merged into the new version. Modified patches (from upstream): * 0001-Drop-GN-compiler-settings-conflicting-with-OE.patch Adapted to the new version. * 0003-wrapper-extra-flags.patch Adapted to the new version. * 0004-Delete-compiler-options-not-available-in-release-ver.patch Also delete compiler option -fno-lifetime-dse as clang does not accept it. * 0009-Adjust-the-Rust-build-to-our-needs.patch Adapted to the new version. * 0013-Reduce-minimum-browser-window-width-to-480px.patch Adapted to the new version. * musl/0001-mallinfo-implementation-is-glibc-specific.patch Adapted to the new version. * musl/0004-fontconfig-Musl-does-not-have-rand_r-API.patch Adapted to the new version. * musl/0006-debug-Fix-build-with-musl.patch Adapted to the new version. * musl/0007-mallopt-is-glibc-specific-API.patch Adapted to the new version. * musl/0009-Fix-tab-crashes-on-musl.patch Adapted to the new version. * musl/0011-sys-stat.patch Adapted to the new version. New patches (from upstream): * 0001-Fix-building-gpu_host_impl.cc-on-Linux.patch Fix build of gpu_host_impl.cc on Linux. * chromium-142-crabbyavif-rust18x.patch Fix crabbyavif build with Rust 1.8x. * chromium-145-zip_ffi_glue-use-edition2024.patch Fix zip_ffi_glue Rust edition. * fix-SYS_SECCOMP-redefinition.patch Fix SYS_SECCOMP redefinition error. * use-adler2.patch Use adler2 crate instead of deprecated adler. New patches (scarthgap-specific): * 0014-devtools-fix-import-meta-main-for-older-nodejs.patch Replace import.meta.main with a Node.js 22 compatible fallback. import.meta.main requires Node.js >= 24.2.0, scarthgap ships 22.11.0. * fix-cpp26-octal-literals.patch Replace C++26 octal literal syntax 0o666 with standard 0666. The 0o prefix (P3275R0) requires Clang 21+, scarthgap has Clang 20. * fix-clang20-defaulted-operator-crash.patch Work around Clang 20 ICE on out-of-class defaulted friend operator== with COMPONENT_EXPORT attribute in origin_with_possible_wildcards.cc. * fix-xr-rigid-transform-incomplete-type.patch Move XRRigidTransform destructor from header to .cc file. Fixes incomplete type error with unique_ptr<gfx::Transform> on Clang 20. * fix-mksnapshot-clang20-miscompile.patch (aarch64 only) Make V8 RegisterAllocator::Free() defensive against find() returning end(). Fixes mksnapshot SIGTRAP crash under QEMU aarch64 user-mode emulation caused by Clang 20 compiling erase(end()) as brk #1. Recipe changes (scarthgap-specific): * chromium-gn.inc: Remove lld-native from DEPENDS (lld is part of clang-native on scarthgap). * chromium-gn.inc: Override DEBUG_FLAGS to remove -g. With LTO enabled, Yocto's -g flag causes debug sections to exceed 4GB, resulting in R_X86_64_32 relocation overflow during linking. * chromium-gn.inc: Fix do_copy_target_rustlibs to remove stale rlibs from rust-cross before copying libstd-rs rlibs. Prevents symbol hash mismatches when Chromium's find_std_rlibs.py picks wrong duplicates. * chromium.inc: Use WORKDIR instead of UNPACKDIR (not in scarthgap). * chromium.inc: Use TOOLCHAIN:class-native instead of TOOLCHAIN_NATIVE. License changes: ---------------- Same as upstream commit 5b9a7e7. See master branch for details. Test-built: ----------- * chromium-ozone-wayland * MACHINE=qemux86-64, qemuarm64, qemuarm Test dependencies: ------------------ * URI: git://git.openembedded.org/openembedded-core - branch: scarthgap - revision: 52380df998b3a8fe6a091f8547434a3231320a8e * URI: git://git.openembedded.org/meta-openembedded - layers: meta-oe - branch: scarthgap - revision: 5124ac4a658899158f4a7a2ddf1d2ca931ec7d0e * URI: git@github.com:kraj/meta-clang.git - branch: scarthgap-clang20 - revision: f26bab34e6c208149fe1ad04521864b663489f4d * URI: git://git.yoctoproject.org/meta-lts-mixins - branch: scarthgap/rust - revision: c19b6da5a3afd3c892b3b1b44983e993ac6d5308 Signed-off-by: Caner Altinbasak <cal@brightsign.biz>
Release notes: 147.0.7727.101 https://chromereleases.googleblog.com/2026/04/stable-channel-update-for-desktop_15.html 147.0.7727.116 https://chromereleases.googleblog.com/2026/04/stable-channel-update-for-desktop_22.html Build and patch changes: ------------------------ None License changes: ---------------- None Test-built: ----------- * chromium-ozone-wayland * MACHINE=intel-corei7-64, qemuarm64, raspberrypi3 * chromium-x11 * MACHINE=intel-corei7-64, qemuarm64, raspberrypi3 Test dependencies: ------------------ * URI: git://git.openembedded.org/openembedded-core - branch: master - revision: a16eb33fc401db34fbeaba623231d006312eb48e * URI: git://git.openembedded.org/meta-openembedded - layers: meta-oe - branch: master - revision: 420222862f5a6d95023b8f5f3b7e1808b2264ef9 * URI: git://git.yoctoproject.org/meta-intel - branch: master - revision: 511ddb7ea90499b2088248f59bab3e9d6f3c900c * URI: https://github.com/agherzan/meta-raspberrypi - branch: master - revision: b83766291188efb956c475b09c9666c2dfe2cb69 Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
11ed21e to
f0b3bc5
Compare
Port of upstream master commit be0cd54 to scarthgap branch.
Release notes:
https://chromereleases.googleblog.com/2026/04/stable-channel-update-for-desktop.html
Build and patch changes:
Removed patches (from upstream):
0006-Don-t-pass-unknown-LLVM-options.patch Merged into the new version.
0008-Use-the-correct-path-to-libclang_rt.builtins.a.patch Merged into the new version.
musl/0008-Use-monotonic-clock-for-pthread_cond_timedwait-with-.patch Merged into the new version.
musl/0015-fix-libc-version-include.patch Merged into the new version.
Modified patches (from upstream):
0001-Drop-GN-compiler-settings-conflicting-with-OE.patch Adapted to the new version.
0003-wrapper-extra-flags.patch Adapted to the new version.
0004-Delete-compiler-options-not-available-in-release-ver.patch Also delete compiler option -fno-lifetime-dse as clang does not accept it.
0009-Adjust-the-Rust-build-to-our-needs.patch Adapted to the new version.
0013-Reduce-minimum-browser-window-width-to-480px.patch Adapted to the new version.
musl/0001-mallinfo-implementation-is-glibc-specific.patch Adapted to the new version.
musl/0004-fontconfig-Musl-does-not-have-rand_r-API.patch Adapted to the new version.
musl/0006-debug-Fix-build-with-musl.patch Adapted to the new version.
musl/0007-mallopt-is-glibc-specific-API.patch Adapted to the new version.
musl/0009-Fix-tab-crashes-on-musl.patch Adapted to the new version.
musl/0011-sys-stat.patch Adapted to the new version.
New patches (from upstream):
0001-Fix-building-gpu_host_impl.cc-on-Linux.patch Fix build of gpu_host_impl.cc on Linux.
chromium-142-crabbyavif-rust18x.patch Fix crabbyavif build with Rust 1.8x.
chromium-145-zip_ffi_glue-use-edition2024.patch Fix zip_ffi_glue Rust edition.
fix-SYS_SECCOMP-redefinition.patch Fix SYS_SECCOMP redefinition error.
use-adler2.patch Use adler2 crate instead of deprecated adler.
New patches (scarthgap-specific):
0014-devtools-fix-import-meta-main-for-older-nodejs.patch Replace import.meta.main with a Node.js 22 compatible fallback. import.meta.main requires Node.js >= 24.2.0, scarthgap ships 22.11.0.
fix-cpp26-octal-literals.patch Replace C++26 octal literal syntax 0o666 with standard 0666. The 0o prefix (P3275R0) requires Clang 21+, scarthgap has Clang 20.
fix-clang20-defaulted-operator-crash.patch Work around Clang 20 ICE on out-of-class defaulted friend operator== with COMPONENT_EXPORT attribute in origin_with_possible_wildcards.cc.
fix-xr-rigid-transform-incomplete-type.patch Move XRRigidTransform destructor from header to .cc file. Fixes incomplete type error with unique_ptrgfx::Transform on Clang 20.
fix-mksnapshot-clang20-miscompile.patch (aarch64 only) Make V8 RegisterAllocator::Free() defensive against find() returning end(). Fixes mksnapshot SIGTRAP crash under QEMU aarch64 user-mode emulation caused by Clang 20 compiling erase(end()) as brk chromium: adding updated version 24.0.1312.52 #1.
Recipe changes (scarthgap-specific):
License changes:
Same as upstream commit 5b9a7e7. See master branch for details.
Test-built:
Test dependencies:
URI: git://git.openembedded.org/openembedded-core
URI: git://git.openembedded.org/meta-openembedded
URI: git@github.com:kraj/meta-clang.git
URI: git://git.yoctoproject.org/meta-lts-mixins