diff --git a/.chromium.metadata b/.chromium.metadata index 6cad65c6..8d3ea2d7 100644 --- a/.chromium.metadata +++ b/.chromium.metadata @@ -1,3 +1,3 @@ -dee35ab79e03a40ffe4c1e2ab94ddd70de6dd05e SOURCES/chromium-124.0.6367.91-clean.tar.xz +bd2f4ca77e26dc46897577cc3293c32fa689496a SOURCES/chromium-124.0.6367.118-clean.tar.xz 7e5d2c7864c5c83ec789b59c77cd9c20d2594916 SOURCES/linux-arm64-0.19.2.tgz dea187019741602d57aaf189a80abba261fbd2aa SOURCES/linux-x64-0.19.2.tgz diff --git a/.gitignore b/.gitignore index 833a0c02..94c8510a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -SOURCES/chromium-124.0.6367.91-clean.tar.xz +SOURCES/chromium-124.0.6367.118-clean.tar.xz SOURCES/linux-arm64-0.19.2.tgz SOURCES/linux-x64-0.19.2.tgz diff --git a/SOURCES/0001-Fix-highway-ppc-hwcap.patch b/SOURCES/0001-Fix-highway-ppc-hwcap.patch deleted file mode 100644 index 74c68925..00000000 --- a/SOURCES/0001-Fix-highway-ppc-hwcap.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: chromium-120.0.6099.71/third_party/highway/BUILD.gn -=================================================================== ---- chromium-120.0.6099.71.orig/third_party/highway/BUILD.gn -+++ chromium-120.0.6099.71/third_party/highway/BUILD.gn -@@ -13,6 +13,9 @@ config("libhwy_external_config") { - # explicitly disabling AVX2 and AVX3 targets. - defines += [ "HWY_BROKEN_TARGETS=(HWY_AVX2|HWY_AVX3)" ] - } -+ if (target_cpu == "ppc64") { -+ defines += [ "TOOLCHAIN_MISS_ASM_HWCAP_H" ] -+ } - } - - source_set("libhwy") { diff --git a/SOURCES/0002-Highway-disable-128-bit-vsx.patch b/SOURCES/0002-Highway-disable-128-bit-vsx.patch deleted file mode 100644 index 3b1e7e74..00000000 --- a/SOURCES/0002-Highway-disable-128-bit-vsx.patch +++ /dev/null @@ -1,101 +0,0 @@ -Index: chromium-120.0.6099.71/third_party/highway/src/hwy/ops/ppc_vsx-inl.h -=================================================================== ---- chromium-120.0.6099.71.orig/third_party/highway/src/hwy/ops/ppc_vsx-inl.h -+++ chromium-120.0.6099.71/third_party/highway/src/hwy/ops/ppc_vsx-inl.h -@@ -36,6 +36,8 @@ - - #include "hwy/ops/shared-inl.h" - -+#undef __SIZEOF_INT128__ -+ - HWY_BEFORE_NAMESPACE(); - namespace hwy { - namespace HWY_NAMESPACE { -@@ -2844,7 +2846,6 @@ struct CompressIsPartition { - - namespace detail { - --#if HWY_TARGET > HWY_PPC10 || __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ - // fallback for missing vec_extractm - template - HWY_INLINE uint64_t ExtractSignBits(Vec128 sign_bits, -@@ -2857,22 +2858,16 @@ HWY_INLINE uint64_t ExtractSignBits(Vec1 - return extracted.raw[__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__]; - } - --#endif // HWY_TARGET > HWY_PPC10 -- - template - HWY_INLINE uint64_t BitsFromMask(hwy::SizeTag<1> /*tag*/, - Mask128 mask) { - const DFromM d; - const Repartition du8; - const VFromD sign_bits = BitCast(du8, VecFromMask(d, mask)); --#if HWY_TARGET <= HWY_PPC10 && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ -- return static_cast(vec_extractm(sign_bits.raw)); --#else - const __vector unsigned char kBitShuffle = { - 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0 - }; - return ExtractSignBits(sign_bits, kBitShuffle); --#endif // HWY_TARGET <= HWY_PPC10 - } - - template -@@ -2882,10 +2877,6 @@ HWY_INLINE uint64_t BitsFromMask(hwy::Si - const Repartition du8; - const VFromD sign_bits = BitCast(du8, VecFromMask(d, mask)); - --#if HWY_TARGET <= HWY_PPC10 && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ -- const RebindToUnsigned du; -- return static_cast(vec_extractm(BitCast(du, sign_bits).raw)); --#else - #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ - const __vector unsigned char kBitShuffle = { - 112, 96, 80, 64, 48, 32, 16, 0, 128, 128, 128, 128, 128, 128, 128, 128}; -@@ -2894,7 +2885,6 @@ HWY_INLINE uint64_t BitsFromMask(hwy::Si - 128, 128, 128, 128, 128, 128, 128, 128, 112, 96, 80, 64, 48, 32, 16, 0}; - #endif - return ExtractSignBits(sign_bits, kBitShuffle); --#endif // HWY_TARGET <= HWY_PPC10 - } - - template -@@ -2903,10 +2893,6 @@ HWY_INLINE uint64_t BitsFromMask(hwy::Si - const DFromM d; - const Repartition du8; - const VFromD sign_bits = BitCast(du8, VecFromMask(d, mask)); --#if HWY_TARGET <= HWY_PPC10 && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ -- const RebindToUnsigned du; -- return static_cast(vec_extractm(BitCast(du, sign_bits).raw)); --#else - #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ - const __vector unsigned char kBitShuffle = { - 96, 64, 32, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128}; -@@ -2915,7 +2901,6 @@ HWY_INLINE uint64_t BitsFromMask(hwy::Si - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 96, 64, 32, 0}; - #endif - return ExtractSignBits(sign_bits, kBitShuffle); --#endif // HWY_TARGET <= HWY_PPC10 - } - - template -@@ -2924,10 +2909,6 @@ HWY_INLINE uint64_t BitsFromMask(hwy::Si - const DFromM d; - const Repartition du8; - const VFromD sign_bits = BitCast(du8, VecFromMask(d, mask)); --#if HWY_TARGET <= HWY_PPC10 && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ -- const RebindToUnsigned du; -- return static_cast(vec_extractm(BitCast(du, sign_bits).raw)); --#else - #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ - const __vector unsigned char kBitShuffle = {64, 0, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, -@@ -2938,7 +2919,6 @@ HWY_INLINE uint64_t BitsFromMask(hwy::Si - 128, 128, 64, 0}; - #endif - return ExtractSignBits(sign_bits, kBitShuffle); --#endif // HWY_TARGET <= HWY_PPC10 - } - - // Returns the lowest N of the mask bits. diff --git a/SOURCES/chromium-124-wayland-regression.patch b/SOURCES/chromium-124-wayland-regression.patch deleted file mode 100644 index 9cebf668..00000000 --- a/SOURCES/chromium-124-wayland-regression.patch +++ /dev/null @@ -1,88 +0,0 @@ -commit c7f4c58f896a651eba80ad805ebdb49d19ebdbd4 -Author: Tom Anderson -Date: Wed Mar 20 00:00:12 2024 +0000 - - Fix --ozone-platform-hint - - This fixes a regression after r1269993 which moved ozone platform - early initialization before the ozone platform hint flag was - processed. This CL ensures the flag processing happens even earlier. - - R=sky - - Change-Id: Icc9649beb0b86753265be2b6cdf3059611eb410f - Bug: None - Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5375669 - Reviewed-by: Scott Violet - Auto-Submit: Thomas Anderson - Commit-Queue: Thomas Anderson - Cr-Commit-Position: refs/heads/main@{#1275306} - -diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc -index 73b6ab0934b14..0b4c44be679d0 100644 ---- a/chrome/app/chrome_main_delegate.cc -+++ b/chrome/app/chrome_main_delegate.cc -@@ -249,6 +249,9 @@ - #include "base/scoped_add_feature_flags.h" - #include "ui/base/ui_base_features.h" - #include "ui/ozone/public/ozone_platform.h" -+#if BUILDFLAG(IS_LINUX) -+#include "chrome/browser/chrome_browser_main_extra_parts_linux.h" -+#endif - #endif // BUILDFLAG(IS_OZONE) - - base::LazyInstance::DestructorAtExit -@@ -959,6 +962,9 @@ std::optional ChromeMainDelegate::PostEarlyInitialization( - // Initialize Ozone platform and add required feature flags as per platform's - // properties. Must be added before feature list is created otherwise the - // added flag won't be picked up. -+#if BUILDFLAG(IS_LINUX) -+ ChromeBrowserMainExtraPartsLinux::InitOzonePlatformHint(); -+#endif - ui::OzonePlatform::PreEarlyInitialization(); - AddFeatureFlagsToCommandLine(); - #endif // BUILDFLAG(IS_OZONE) -diff --git a/chrome/browser/chrome_browser_main_extra_parts_linux.cc b/chrome/browser/chrome_browser_main_extra_parts_linux.cc -index dba7b116ecaa0..ea0487022dcdc 100644 ---- a/chrome/browser/chrome_browser_main_extra_parts_linux.cc -+++ b/chrome/browser/chrome_browser_main_extra_parts_linux.cc -@@ -168,7 +168,13 @@ ChromeBrowserMainExtraPartsLinux::ChromeBrowserMainExtraPartsLinux() = default; - - ChromeBrowserMainExtraPartsLinux::~ChromeBrowserMainExtraPartsLinux() = default; - --void ChromeBrowserMainExtraPartsLinux::PreEarlyInitialization() { -+void ChromeBrowserMainExtraPartsLinux::PostBrowserStart() { -+ RecordDisplayServerProtocolSupport(); -+ ChromeBrowserMainExtraPartsOzone::PostBrowserStart(); -+} -+ -+// static -+void ChromeBrowserMainExtraPartsLinux::InitOzonePlatformHint() { - #if BUILDFLAG(IS_LINUX) - // On the desktop, we fix the platform name if necessary. - // See https://crbug.com/1246928. -@@ -189,8 +195,3 @@ void ChromeBrowserMainExtraPartsLinux::PreEarlyInitialization() { - } - #endif // BUILDFLAG(IS_LINUX) - } -- --void ChromeBrowserMainExtraPartsLinux::PostBrowserStart() { -- RecordDisplayServerProtocolSupport(); -- ChromeBrowserMainExtraPartsOzone::PostBrowserStart(); --} -diff --git a/chrome/browser/chrome_browser_main_extra_parts_linux.h b/chrome/browser/chrome_browser_main_extra_parts_linux.h -index 3847bd2090e28..4f188a7bdfe38 100644 ---- a/chrome/browser/chrome_browser_main_extra_parts_linux.h -+++ b/chrome/browser/chrome_browser_main_extra_parts_linux.h -@@ -17,9 +17,10 @@ class ChromeBrowserMainExtraPartsLinux - const ChromeBrowserMainExtraPartsLinux&) = delete; - ~ChromeBrowserMainExtraPartsLinux() override; - -+ static void InitOzonePlatformHint(); -+ - private: - // ChromeBrowserMainExtraParts overrides. -- void PreEarlyInitialization() override; - void PostBrowserStart() override; - }; - diff --git a/SPECS/chromium.spec b/SPECS/chromium.spec index 674e4422..8c29785b 100644 --- a/SPECS/chromium.spec +++ b/SPECS/chromium.spec @@ -245,6 +245,7 @@ %else %global bundlebrotli 1 %endif +%global bundlehighway 0 %global bundledav1d 0 %global bundleopus 0 %global bundlelibusbx 0 @@ -306,7 +307,7 @@ %endif Name: chromium%{chromium_channel} -Version: 124.0.6367.91 +Version: 124.0.6367.118 Release: 1%{?dist} Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use Url: http://www.chromium.org/Home @@ -541,7 +542,6 @@ Patch400: fix-rust-linking.patch Patch401: fix-breakpad-compile.patch Patch402: fix-partition-alloc-compile.patch Patch403: 0002-Add-ppc64-trap-instructions.patch -Patch404: 0001-Fix-highway-ppc-hwcap.patch Patch407: fix-ppc64-linux-syscalls-headers.patch Patch409: use-sysconf-page-size-on-ppc64.patch @@ -554,17 +554,11 @@ Patch412: fix-swiftshader-compile.patch # Suppress harmless compiler warning messages that appear on ppc64 due to arch-specific warning flags being passed Patch413: fix-unknown-warning-option-messages.diff -# Needed on Debian while POWER8 remains the build target -# POWER9 enables hardware 128 bit vector support (ISA 3.0), -# and Highway gets confused when building in POWER8 mode -# (POWER8 compiler flags) on POWER9 hosts. -Patch414: 0002-Highway-disable-128-bit-vsx.patch Patch415: fix-clang-selection.patch # upstream patches # 64kpage support on el8 Patch500: chromium-124-el8-support-64kpage.patch -Patch501: chromium-124-wayland-regression.patch # Use chromium-latest.py to generate clean tarball from released build tarballs, found here: # http://build.chromium.org/buildbot/official/ @@ -771,6 +765,10 @@ BuildRequires: woff2-devel BuildRequires: libdav1d-devel %endif +%if ! %{bundlehighway} +BuildRequires: highway-devel +%endif + %if ! %{bundlelibavif} BuildRequires: libavif-devel %endif @@ -1285,8 +1283,6 @@ udev. %patch -P389 -p1 -b .0002-third_party-libvpx-Remove-bad-ppc64-config %patch -P390 -p1 -b .0002-third-party-boringssl-add-generated-files %patch -P391 -p1 -b .0003-third_party-libvpx-Add-ppc64-generated-config -#patch -P392 -p1 -b .0003-third_party-libvpx-Add-ppc64-vsx-files -#patch -P393 -p1 -b .0003-third_party-ffmpeg-Add-ppc64-generated-config %patch -P394 -p1 -b .0004-third_party-libvpx-work-around-ambiguous-vsx %patch -P395 -p1 -b .skia-vsx-instructions @@ -1299,12 +1295,8 @@ udev. %patch -P401 -p1 -b .fix-breakpad-compile %patch -P402 -p1 -b .fix-partition-alloc-compile %patch -P403 -p1 -b .0002-Add-ppc64-trap-instructions -%patch -P404 -p1 -b .0001-Fix-highway-ppc-hwcap -#patch -P405 -p1 -b .0001-Add-PPC64-support-for-libdav1d -#patch -P406 -p1 -b .0001-Fix-libdav1d-compilation-on-clang-ppc %patch -P407 -p1 -b .fix-ppc64-linux-syscalls-headers -#patch -P408 -p1 -b .0003-thirdparty-fix-dav1d-gn %patch -P409 -p1 -b .use-sysconf-page-size-on-ppc64 %patch -P410 -p1 -b .dawn-fix-typos @@ -1313,7 +1305,6 @@ udev. %patch -P412 -p1 -b .fix-swiftshader-compile.patch %patch -P413 -p1 -b .fix-unknown-warning-option-messages -%patch -P414 -p1 -b .0002-Highway-disable-128-bit-vsx %patch -P415 -p1 -b .fix-clang-selection %endif @@ -1322,7 +1313,6 @@ udev. %patch -P500 -p1 -b .el8-support-64kpage.patch %endif %endif -%patch -P501 -p1 -b .wayland-regression # Change shebang in all relevant files in this directory and all subdirectories # See `man find` for how the `-exec command {} +` syntax works @@ -1642,6 +1632,9 @@ system_libs=() %if ! %{bundledav1d} system_libs+=(dav1d) %endif +%if ! %{bundlehighway} + system_libs+=(highway) +%endif %if ! %{bundlefontconfig} system_libs+=(fontconfig) %endif @@ -2120,6 +2113,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %endif %changelog +* Wed May 01 2024 Than Ngo - 124.0.6367.118-1 +- update to 124.0.6367.118 + * High CVE-2024-4331: Use after free in Picture In Picture + * High CVE-2024-4368: Use after free in Dawn +- use system highway + * Sat Apr 27 2024 Than Ngo - 124.0.6367.91-1 - update to 124.0.6367.91 - fixed bz#2277228 - chromium wrapper causes library issues (symbol lookup error)