diff --git a/chromium-115-emplace_back_on_vector-c++20.patch b/chromium-115-emplace_back_on_vector-c++20.patch deleted file mode 100644 index d4dca6a..0000000 --- a/chromium-115-emplace_back_on_vector-c++20.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc ---- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me 2023-06-25 10:06:58.445990069 +0200 -+++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc 2023-06-25 10:51:17.640818231 +0200 -@@ -355,7 +355,7 @@ Status ParseMobileEmulation(const base:: - "'version' field of type string"); - } - -- brands.emplace_back(*brand, *version); -+ brands.emplace_back() = {*brand, *version}; - } - - client_hints.brands = std::move(brands); -@@ -392,7 +392,7 @@ Status ParseMobileEmulation(const base:: - "a 'version' field of type string"); - } - -- full_version_list.emplace_back(*brand, *version); -+ full_version_list.emplace_back() = {*brand, *version}; - } - - client_hints.full_version_list = std::move(full_version_list); diff --git a/chromium-116-emplace_back_on_vector-c++20.patch b/chromium-116-emplace_back_on_vector-c++20.patch new file mode 100644 index 0000000..363dc87 --- /dev/null +++ b/chromium-116-emplace_back_on_vector-c++20.patch @@ -0,0 +1,46 @@ +diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc +--- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me 2023-06-25 10:06:58.445990069 +0200 ++++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc 2023-06-25 10:51:17.640818231 +0200 +@@ -355,7 +355,7 @@ Status ParseMobileEmulation(const base:: + "'version' field of type string"); + } + +- brands.emplace_back(*brand, *version); ++ brands.emplace_back() = {*brand, *version}; + } + + client_hints.brands = std::move(brands); +@@ -392,7 +392,7 @@ Status ParseMobileEmulation(const base:: + "a 'version' field of type string"); + } + +- full_version_list.emplace_back(*brand, *version); ++ full_version_list.emplace_back() = {*brand, *version}; + } + + client_hints.full_version_list = std::move(full_version_list); +diff -up chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc +--- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me 2023-08-15 21:34:58.922855428 +0200 ++++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc 2023-08-15 21:39:23.310434237 +0200 +@@ -207,8 +207,8 @@ void OneTimePermissionProvider::OnSuspen + + while (rule_iterator && rule_iterator->HasNext()) { + auto rule = rule_iterator->Next(); +- patterns_to_delete.emplace_back(setting_type, rule->primary_pattern, +- rule->secondary_pattern); ++ patterns_to_delete.emplace_back() = {setting_type, rule->primary_pattern, ++ rule->secondary_pattern}; + permissions::PermissionUmaUtil::RecordOneTimePermissionEvent( + setting_type, + permissions::OneTimePermissionEvent::EXPIRED_ON_SUSPEND); +@@ -302,8 +302,8 @@ void OneTimePermissionProvider::DeleteEn + auto rule = rule_iterator->Next(); + if (rule->primary_pattern.Matches(origin_gurl) && + rule->secondary_pattern.Matches(origin_gurl)) { +- patterns_to_delete.emplace_back( +- content_setting_type, rule->primary_pattern, rule->secondary_pattern); ++ patterns_to_delete.emplace_back() = { ++ content_setting_type, rule->primary_pattern, rule->secondary_pattern}; + permissions::PermissionUmaUtil::RecordOneTimePermissionEvent( + content_setting_type, trigger_event); + } diff --git a/chromium-116-v4l2-num_delta_pocs_of_ref_rps_idx.patch b/chromium-116-v4l2-num_delta_pocs_of_ref_rps_idx.patch new file mode 100644 index 0000000..ec91c3c --- /dev/null +++ b/chromium-116-v4l2-num_delta_pocs_of_ref_rps_idx.patch @@ -0,0 +1,50 @@ +commit 992f2b837f7c150bebe40a8186420c5c065b71f8 +Author: Chen-Yu Tsai +Date: Mon Jul 31 04:50:11 2023 +0000 + + media/gpu/v4l2: Only set HEVC .num_delta_pocs_of_ref_rps_idx on ChromeOS + + The HEVC decode parameter .num_delta_pocs_of_ref_rps_idx field was + very recently added to support MediaTek's stateless HEVC decoder. It + was accepted upstream, but hasn't been part of a release yet, and so + hasn't trickled down into a distro package that can be included in the + sysroots. + + Guard the field assignment for now so that the Linux builds can proceed. + + Bug: b:258331312, b:291169645 + Cq-Include-Trybots: luci.chromium.try:linux-v4l2-codec-rel + Change-Id: I1629be2373e7d67ea06a206226ad09bce90c3752 + Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4728846 + Reviewed-by: Nathan Hebert + Auto-Submit: Chen-Yu Tsai + Commit-Queue: Chen-Yu Tsai + Cr-Commit-Position: refs/heads/main@{#1177093} + +diff --git a/media/gpu/v4l2/v4l2_video_decoder_delegate_h265.cc b/media/gpu/v4l2/v4l2_video_decoder_delegate_h265.cc +index d683fbb5407a4..0f02f39758fe9 100644 +--- a/media/gpu/v4l2/v4l2_video_decoder_delegate_h265.cc ++++ b/media/gpu/v4l2/v4l2_video_decoder_delegate_h265.cc +@@ -11,6 +11,7 @@ + #include + + #include "base/logging.h" ++#include "build/build_config.h" + #include "media/gpu/macros.h" + #include "media/gpu/v4l2/v4l2_decode_surface.h" + #include "media/gpu/v4l2/v4l2_decode_surface_handler.h" +@@ -410,8 +411,14 @@ V4L2VideoDecoderDelegateH265::SubmitFrameMetadata( + .pic_order_cnt_val = pic->pic_order_cnt_val_, + .short_term_ref_pic_set_size = static_cast<__u16>(slice_hdr->st_rps_bits), + .long_term_ref_pic_set_size = static_cast<__u16>(slice_hdr->lt_rps_bits), ++#if BUILDFLAG(IS_CHROMEOS) ++ // .num_delta_pocs_of_ref_rps_idx is upstream but not yet pulled ++ // into linux build sysroot. ++ // TODO(wenst): Remove once linux-libc-dev package is updated to ++ // at least v6.5 in the sysroots. + .num_delta_pocs_of_ref_rps_idx = + static_cast<__u8>(slice_hdr->st_ref_pic_set.rps_idx_num_delta_pocs), ++#endif + .flags = static_cast<__u64>( + (pic->irap_pic_ ? V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC : 0) | + ((pic->nal_unit_type_ >= H265NALU::IDR_W_RADL && diff --git a/chromium.spec b/chromium.spec index cc627f5..720c01f 100644 --- a/chromium.spec +++ b/chromium.spec @@ -350,7 +350,7 @@ Patch303: chromium-116-typename.patch Patch304: chromium-116-missing-header-files.patch # compiler error with c++20 -Patch306: chromium-115-emplace_back_on_vector-c++20.patch +Patch306: chromium-116-emplace_back_on_vector-c++20.patch # disable memory tagging for epel8 on aarch64 due to new feature IFUNC-Resolver not supported # in old glibc < 2.30 @@ -377,6 +377,9 @@ Patch312: chromium-115-python-3.12-deprecated.patch Patch350: chromium-115-linux_ui_darkmode.patch # Tweak about:gpu, Add dark mode support Patch351: chromium-116-tweak_about_gpu.patch +# Guard the field assignment num_delta_pocs_of_ref_rps_idx as it is not supported +# in fedora < 39 +Patch352: chromium-116-v4l2-num_delta_pocs_of_ref_rps_idx.patch # Use chromium-latest.py to generate clean tarball from released build tarballs, found here: # http://build.chromium.org/buildbot/official/ @@ -976,6 +979,13 @@ udev. %patch -P350 -p1 -b .linux_ui_darkmode %patch -P351 -p1 -b .tweak_about_gpu +%ifarch aarch64 +%if 0%{?fedora} < 39 +%patch -P352 -p1 -b .num_delta_pocs_of_ref_rps_idx +%endif +%endif + + # Change shebang in all relevant files in this directory and all subdirectories # See `man find` for how the `-exec command {} +` syntax works find -type f \( -iname "*.py" \) -exec sed -i '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python3}=' {} +