diff --git a/info.yml b/info.yml index ec6c809..43cc798 100644 --- a/info.yml +++ b/info.yml @@ -1,7 +1,7 @@ name: chromium description: A safe, fast and stable open-source browser project -version: 148.0.7778.215 -revision: 2 +version: 149.0.7827.155 +revision: 1 url: https://www.chromium.org/Home/ license: BSD-3-License maintainers: @@ -59,4 +59,4 @@ downloads: - url: https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${BPM_PKG_VERSION}/chromium-${BPM_PKG_VERSION}-linux.tar.xz extract_to: ${BPM_SOURCE} extract_strip_components: 1 - checksum: 88fdc4eae9f379b7a350d9e25daea1a042f62beb4e4586fd5cce8af1d16a9c5f + checksum: c06d5e416b38c492648092f0a001238f75df648a14482143a6296452aec4d653 diff --git a/recipe.sh b/recipe.sh index 055033e..3f61808 100644 --- a/recipe.sh +++ b/recipe.sh @@ -15,12 +15,12 @@ prepare() { # Fixes from Gentoo patch -Np1 -i "$BPM_WORKDIR"/chromium-138-nodejs-version-check.patch - # Increase _FORTIFY_SOURCE level to match Arch's default flags + # Increase _FORTIFY_SOURCE level patch -Np1 -i "$BPM_WORKDIR"/increase-fortify-level.patch - # Fix issue about missing compiler flag, can be dropped when arch has LLVM 23 + # Fix issue about missing compiler flag. Can be fixed by upgrading to LLVM 23 # clang++: error: unknown argument: '-fsanitize-ignore-for-ubsan-feature=array-bounds' - patch -Np1 -i "$BPM_WORKDIR"/chromium-145-drop-unknown-clang-flag.patch + patch -Np1 -i "$BPM_WORKDIR"/chromium-149-drop-unknown-clang-flag.patch patch -Np1 -i "$BPM_WORKDIR"/chromium-147-rust-1.95-bytemuck.patch @@ -34,9 +34,11 @@ prepare() { patch -Np1 -i "$BPM_WORKDIR"/dont_require_profiler_builtins.rlib.patch - # Causes a build failure with our clang version - patch -Np1 -i "$BPM_WORKDIR"/chromium-148-revert-clang-fsanitize-return-flag-1.patch - patch -Np1 -i "$BPM_WORKDIR"/chromium-148-revert-clang-fsanitize-return-flag-2.patch + # Chromium bundles a patched minizip with extra features. + patch -Np1 -i "$BPM_WORKDIR"/chromium-149-unbundle-minizip-undo-unicode.patch + + patch -Np1 -i "$BPM_WORKDIR"/chromium-149-use-of-undeclared-identifier-ERROR.patch + # Allow building against system libraries in official builds sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' tools/generate_shim_headers/generate_shim_headers.py diff --git a/source-files/chromium-145-drop-unknown-clang-flag.patch b/source-files/chromium-145-drop-unknown-clang-flag.patch deleted file mode 100644 index 28217c8..0000000 --- a/source-files/chromium-145-drop-unknown-clang-flag.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/build/config/compiler/BUILD.gn -+++ b/build/config/compiler/BUILD.gn -@@ -1903,20 +1903,4 @@ config("sanitize_c_array_bounds") { - config("sanitize_c_array_bounds") { - if (!is_ubsan && is_clang && !(is_asan && target_cpu == "x86")) { -- cflags = [ -- "-fsanitize=array-bounds", -- "-fsanitize-trap=array-bounds", -- -- # Some code users feature detection to determine if UBSAN (or any -- # sanitizer) is enabled, they then do expensive debug like operations. We -- # want to suppress this behaviour since we want to keep performance costs -- # as low as possible while having these checks. -- "-fsanitize-ignore-for-ubsan-feature=array-bounds", -- -- # Because we've enabled array-bounds sanitizing we also want to suppress -- # the related warning about "unsafe-buffer-usage-in-static-sized-array", -- # since we know that the array bounds sanitizing will catch any out-of- -- # bounds accesses. -- "-Wno-unsafe-buffer-usage-in-static-sized-array", -- ] - } - } diff --git a/source-files/chromium-148-revert-clang-fsanitize-return-flag-1.patch b/source-files/chromium-148-revert-clang-fsanitize-return-flag-1.patch deleted file mode 100644 index a94e7f6..0000000 --- a/source-files/chromium-148-revert-clang-fsanitize-return-flag-1.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- b/build/config/BUILDCONFIG.gn -+++ a/build/config/BUILDCONFIG.gn -@@ -362,7 +362,6 @@ - "//build/config/compiler:no_unresolved_symbols", - "//build/config/compiler:runtime_library", - "//build/config/compiler:sanitize_c_array_bounds", -- "//build/config/compiler:sanitize_return", - "//build/config/compiler:thin_archive", - "//build/config/compiler:thinlto_optimize_default", - "//build/config/compiler:tot_warnings", diff --git a/source-files/chromium-148-revert-clang-fsanitize-return-flag-2.patch b/source-files/chromium-148-revert-clang-fsanitize-return-flag-2.patch deleted file mode 100644 index bdccd95..0000000 --- a/source-files/chromium-148-revert-clang-fsanitize-return-flag-2.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- b/build/config/compiler/BUILD.gn -+++ a/build/config/compiler/BUILD.gn -@@ -1920,24 +1920,6 @@ - } - } - --# Enable UBSan subset to ensure we always hit `return` statement in non-void --# functions (https://crbug.com/489565636). This is equivalent to inserting --# `NOTREACHED()` at the end of such functions. --config("sanitize_return") { -- if (!is_ubsan && is_clang) { -- cflags = [ -- "-fsanitize=return", -- "-fsanitize-trap=return", -- -- # Some code users feature detection to determine if UBSAN (or any -- # sanitizer) is enabled, they then do expensive debug like operations. We -- # want to suppress this behaviour since we want to keep performance costs -- # as low as possible while having these checks. -- "-fsanitize-ignore-for-ubsan-feature=return", -- ] -- } --} -- - config("rustc_revision") { - if (rustc_revision != "") { - # Similar to the `clang_revision` config, this is here so that all `.rs` diff --git a/source-files/chromium-149-drop-unknown-clang-flag.patch b/source-files/chromium-149-drop-unknown-clang-flag.patch new file mode 100644 index 0000000..2560738 --- /dev/null +++ b/source-files/chromium-149-drop-unknown-clang-flag.patch @@ -0,0 +1,30 @@ +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index f977c9fed76e6f50c50351ca22128e8c8c8897b1..81460f3591b734f3354a6f9ac7bb0990e5b28889 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -589,7 +589,7 @@ config("compiler") { + # Flags for diagnostics. + cflags += [ "-fcolor-diagnostics" ] + if (!is_win) { +- cflags += [ "-fdiagnostics-show-inlining-chain" ] ++ cflags += [ ] + } else { + # Combine after https://github.com/llvm/llvm-project/pull/192241 + cflags += [ "/clang:-fdiagnostics-show-inlining-chain" ] +@@ -1911,7 +1911,7 @@ config("clang_warning_suppression") { + # See also: https://crbug.com/40891132#comment10 + ubsan_hardening("c_array_bounds") { + sanitizer = "array-bounds" +- condition = !(is_asan && target_cpu == "x86") ++ condition = false + + # Because we've enabled array-bounds sanitizing we also want to suppress + # the related warning about "unsafe-buffer-usage-in-static-sized-array", +@@ -1925,6 +1925,7 @@ ubsan_hardening("c_array_bounds") { + # `NOTREACHED()` at the end of such functions. + ubsan_hardening("return") { + sanitizer = "return" ++ condition = false + } + + config("rustc_revision") { diff --git a/source-files/chromium-149-unbundle-minizip-undo-unicode.patch b/source-files/chromium-149-unbundle-minizip-undo-unicode.patch new file mode 100644 index 0000000..940795f --- /dev/null +++ b/source-files/chromium-149-unbundle-minizip-undo-unicode.patch @@ -0,0 +1,27 @@ +From cb758be9a99d13cfa903432fae0864a1656e2c49 Mon Sep 17 00:00:00 2001 +From: LN Liberda +Date: Thu, 7 May 2026 09:45:32 +0200 +Subject: [PATCH] unbundle/minizip: Ignore Unicode Path Extra Field + +The fields come from chromium's patches on minizip +--- + third_party/zlib/google/zip_reader.cc | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/third_party/zlib/google/zip_reader.cc b/third_party/zlib/google/zip_reader.cc +index 002a1e3ed01d3..88f075ec7739a 100644 +--- a/third_party/zlib/google/zip_reader.cc ++++ b/third_party/zlib/google/zip_reader.cc +@@ -307,12 +307,6 @@ bool ZipReader::OpenEntry() { + DCHECK(path_in_zip[info.size_filename] == '\0'); + entry_.path_in_original_encoding = path_in_zip.data(); + +- if (info.size_utf8_filename > 0) { +- // Use the Info-ZIP Unicode Path Extra Field if present. +- DCHECK(info.utf8_filename[info.size_utf8_filename] == '\0'); +- entry_.path_in_original_encoding = info.utf8_filename; +- } +- + // Convert path from original encoding to Unicode. + std::u16string path_in_utf16; + const char* const encoding = encoding_.empty() ? "UTF-8" : encoding_.c_str(); diff --git a/source-files/chromium-149-use-of-undeclared-identifier-ERROR.patch b/source-files/chromium-149-use-of-undeclared-identifier-ERROR.patch new file mode 100644 index 0000000..4bf9859 --- /dev/null +++ b/source-files/chromium-149-use-of-undeclared-identifier-ERROR.patch @@ -0,0 +1,12 @@ +diff --git a/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc b/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc +index 58ab0db508f73dbac36a84cb71ffdad972b3fc3c..b5b97f6c6b22a79fd5e4e53393859a107cc0f399 100644 +--- a/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc ++++ b/media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.cc +@@ -7,6 +7,7 @@ + #include + #include + ++#include "base/logging.h" + #include "base/process/process_metrics.h" + #include "base/strings/stringprintf.h" + #include "build/build_config.h"