Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package chromium for openSUSE:Factory checked in at 2026-04-05 18:24:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/chromium (Old) and /work/SRC/openSUSE:Factory/.chromium.new.21863 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chromium" Sun Apr 5 18:24:24 2026 rev:512 rq:1344632 version:147.0.7727.49 Changes: -------- --- /work/SRC/openSUSE:Factory/chromium/chromium.changes 2026-04-02 17:41:42.552700895 +0200 +++ /work/SRC/openSUSE:Factory/.chromium.new.21863/chromium.changes 2026-04-05 18:25:09.292375598 +0200 @@ -1,0 +2,26 @@ +Thu Apr 2 17:13:30 UTC 2026 - Andreas Stieger <[email protected]> + +- Chromium 147.0.7727.49 (early stable released 2026-04-01) +- added patches: + * chromium-147-comment_safe_assert.patch + (ignore requirement for local libc++ for now, system copy + has to be good enough) + * chromium-147-ffmpeg_includes.patch + * chromium-bafd7d217b9e26edf3be8d20b1ff56bcea4b16ee.patch + (revert spanification for llvm-19 for now) + * chromium-147-blink_renderer_need_ffmpeg.patch + (only seen with using system ffmpeg) +- modified patches: + * chromium-24264eefbfd3464161764f31a2752c5327719452.patch + * ppc-fedora-0001-Add-PPC64-support-for-boringssl.patch + * ppc-fedora-0002-regenerate-xnn-buildgn.patch + * ppc-fedora-0002-third_party-libvpx-Remove-bad-ppc64-config.patch +- removed patches: + * chromium-145-use_unrar.patch + +------------------------------------------------------------------- +Thu Apr 2 14:44:16 UTC 2026 - Andreas Stieger <[email protected]> + +- ccache experiement: show stats + +------------------------------------------------------------------- @@ -1097,4 +1123,4 @@ - * CVE-2025-4096: Heap buffer overflow in HTML. Reported by Anonymous on 2025-04-11 - * CVE-2025-4050: Out of bounds memory access in DevTools. Reported by Anonymous on 2025-04-09 - * CVE-2025-4051: Insufficient data validation in DevTools. Reported by Daniel Fröjdendahl on 2025-03-1 - * CVE-2025-4052: Inappropriate implementation in DevTools. Reported by vanillawebdev on 2025-03-10 + * CVE-2025-4096: Heap buffer overflow in HTML + * CVE-2025-4050: Out of bounds memory access in DevTools + * CVE-2025-4051: Insufficient data validation in DevTools + * CVE-2025-4052: Inappropriate implementation in DevTools @@ -1751 +1777 @@ - * CVE-2024-7000: Use after free in CSS. Reported by Anonymous + * CVE-2024-7000: Use after free in CSS @@ -2035 +2061 @@ - * CVE-2024-3834: Use after free in Downloads. Reported by ChaobinZhang + * CVE-2024-3834: Use after free in Downloads @@ -5174,27 +5200,27 @@ - * CVE-2020-6465: Use after free in reader mode. Reported by Woojin Oh(@pwn_expoit) of STEALIEN on 2020-04-21 - * CVE-2020-6466: Use after free in media. Reported by Zhe Jin from cdsrc of Qihoo 360 on 2020-04-26 - * CVE-2020-6467: Use after free in WebRTC. Reported by ZhanJia Song on 2020-04-06 - * CVE-2020-6468: Type Confusion in V8. Reported by Chris Salls and Jake Corina of Seaside Security, Chani Jindal of Shellphish on 2020-04-30 - * CVE-2020-6469: Insufficient policy enforcement in developer tools. Reported by David Erceg on 2020-04-02 - * CVE-2020-6470: Insufficient validation of untrusted input in clipboard. Reported by Michał Bentkowski of Securitum on 2020-03-30 - * CVE-2020-6471: Insufficient policy enforcement in developer tools. Reported by David Erceg on 2020-03-08 - * CVE-2020-6472: Insufficient policy enforcement in developer tools. Reported by David Erceg on 2020-03-25 - * CVE-2020-6473: Insufficient policy enforcement in Blink. Reported by Soroush Karami and Panagiotis Ilia on 2020-02-06 - * CVE-2020-6474: Use after free in Blink. Reported by Zhe Jin from cdsrc of Qihoo 360 on 2020-03-07 - * CVE-2020-6475: Incorrect security UI in full screen. Reported by Khalil Zhani on 2019-10-31 - * CVE-2020-6476: Insufficient policy enforcement in tab strip. Reported by Alexandre Le Borgne on 2019-12-18 - * CVE-2020-6477: Inappropriate implementation in installer. Reported by RACK911 Labs on 2019-03-26 - * CVE-2020-6478: Inappropriate implementation in full screen. Reported by Khalil Zhani on 2019-12-24 - * CVE-2020-6479: Inappropriate implementation in sharing. Reported by Zhong Zhaochen of andsecurity.cn on 2020-01-14 - * CVE-2020-6480: Insufficient policy enforcement in enterprise. Reported by Marvin Witt on 2020-02-21 - * CVE-2020-6481: Insufficient policy enforcement in URL formatting. Reported by Rayyan Bijoora on 2020-04-07 - * CVE-2020-6482: Insufficient policy enforcement in developer tools. Reported by Abdulrahman Alqabandi (@qab) on 2017-12-17 - * CVE-2020-6483: Insufficient policy enforcement in payments. Reported by Jun Kokatsu, Microsoft Browser Vulnerability Research on 2019-05-23 - * CVE-2020-6484: Insufficient data validation in ChromeDriver. Reported by Artem Zinenko on 2020-01-26 - * CVE-2020-6485: Insufficient data validation in media router. Reported by Sergei Glazunov of Google Project Zero on 2020-01-30 - * CVE-2020-6486: Insufficient policy enforcement in navigations. Reported by David Erceg on 2020-02-24 - * CVE-2020-6487: Insufficient policy enforcement in downloads. Reported by Jun Kokatsu (@shhnjk) on 2015-10-06 - * CVE-2020-6488: Insufficient policy enforcement in downloads. Reported by David Erceg on 2020-01-21 - * CVE-2020-6489: Inappropriate implementation in developer tools. Reported by @lovasoa (Ophir LOJKINE) on 2020-02-10 - * CVE-2020-6490: Insufficient data validation in loader. Reported by Twitter on 2019-12-19 - * CVE-2020-6491: Incorrect security UI in site information. Reported by Sultan Haikal M.A on 2020-02-07 + * CVE-2020-6465: Use after free in reader mode + * CVE-2020-6466: Use after free in media + * CVE-2020-6467: Use after free in WebRTC + * CVE-2020-6468: Type Confusion in V8 + * CVE-2020-6469: Insufficient policy enforcement in developer tools + * CVE-2020-6470: Insufficient validation of untrusted input in clipboard + * CVE-2020-6471: Insufficient policy enforcement in developer tools + * CVE-2020-6472: Insufficient policy enforcement in developer tools + * CVE-2020-6473: Insufficient policy enforcement in Blink + * CVE-2020-6474: Use after free in Blink + * CVE-2020-6475: Incorrect security UI in full screen + * CVE-2020-6476: Insufficient policy enforcement in tab strip + * CVE-2020-6477: Inappropriate implementation in installer + * CVE-2020-6478: Inappropriate implementation in full screen + * CVE-2020-6479: Inappropriate implementation in sharing + * CVE-2020-6480: Insufficient policy enforcement in enterprise + * CVE-2020-6481: Insufficient policy enforcement in URL formatting + * CVE-2020-6482: Insufficient policy enforcement in developer tools + * CVE-2020-6483: Insufficient policy enforcement in payments + * CVE-2020-6484: Insufficient data validation in ChromeDriver + * CVE-2020-6485: Insufficient data validation in media router + * CVE-2020-6486: Insufficient policy enforcement in navigations + * CVE-2020-6487: Insufficient policy enforcement in downloads + * CVE-2020-6488: Insufficient policy enforcement in downloads + * CVE-2020-6489: Inappropriate implementation in developer tools + * CVE-2020-6490: Insufficient data validation in loader + * CVE-2020-6491: Incorrect security UI in site information @@ -6160,29 +6186,29 @@ - * CVE-2019-5754: Inappropriate implementation in QUIC Networking. Reported by Klzgrad on 2018-12-12 - * CVE-2019-5782: Inappropriate implementation in V8. Reported by Qixun Zhao of Qihoo 360 Vulcan Team via Tianfu Cup on 2018-11-16 - * CVE-2019-5755: Inappropriate implementation in V8. Reported by Jay Bosamiya on 2018-12-10 - * CVE-2019-5756: Use after free in PDFium. Reported by Anonymous on 2018-10-14 - * CVE-2019-5757: Type Confusion in SVG. Reported by Alexandru Pitis, Microsoft Browser Vulnerability Research on 2018-12-15 - * CVE-2019-5758: Use after free in Blink. Reported by Zhe Jin(金哲),Luyao Liu(刘路遥) from Chengdu Security Response Center of Qihoo 360 Technology Co. Ltd on 2018-12-11 - * CVE-2019-5759: Use after free in HTML select elements. Reported by Almog Benin on 2018-12-05 - * CVE-2019-5760: Use after free in WebRTC. Reported by Zhe Jin(金哲),Luyao Liu(刘路遥) from Chengdu Security Response Center of Qihoo 360 Technology Co. Ltd on 2018-12-05 - * CVE-2019-5761: Use after free in SwiftShader. Reported by Zhe Jin(金哲),Luyao Liu(刘路遥) from Chengdu Security Response Center of Qihoo 360 Technology Co. Ltd on 2018-11-13 - * CVE-2019-5762: Use after free in PDFium. Reported by Anonymous on 2018-10-31 - * CVE-2019-5763: Insufficient validation of untrusted input in V8. Reported by Guang Gong of Alpha Team, Qihoo 360 on 2018-12-13 - * CVE-2019-5764: Use after free in WebRTC. Reported by Eyal Itkin from Check Point Software Technologies on 2018-12-09 - * CVE-2019-5765: Insufficient policy enforcement in the browser. Reported by Sergey Toshin (@bagipro) on 2019-01-16 - * CVE-2019-5766: Insufficient policy enforcement in Canvas. Reported by David Erceg on 2018-11-20 - * CVE-2019-5767: Incorrect security UI in WebAPKs. Reported by Haoran Lu, Yifan Zhang, Luyi Xing, and Xiaojing Liao from Indiana University Bloomington on 2018-11-06 - * CVE-2019-5768: Insufficient policy enforcement in DevTools. Reported by Rob Wu on 2018-01-24 - * CVE-2019-5769: Insufficient validation of untrusted input in Blink. Reported by Guy Eshel on 2018-12-11 - * CVE-2019-5770: Heap buffer overflow in WebGL. Reported by hemidallt@ on 2018-11-27 - * CVE-2019-5771: Heap buffer overflow in SwiftShader. Reported by Zhe Jin(金哲),Luyao Liu(刘路遥) from Chengdu Security Response Center of Qihoo 360 Technology Co. Ltd on 2018-11-12 - * CVE-2019-5772: Use after free in PDFium. Reported by Zhen Zhou of NSFOCUS Security Team on 2018-11-26 - * CVE-2019-5773: Insufficient data validation in IndexedDB. Reported by Yongke Wang of Tencent's Xuanwu Lab (xlab.tencent.com) on 2018-12-24 - * CVE-2019-5774: Insufficient validation of untrusted input in SafeBrowsing. Reported by Junghwan Kang (ultract) and Juno Im on 2018-11-11 - * CVE-2019-5775: Insufficient policy enforcement in Omnibox. Reported by evi1m0 of Bilibili Security Team on 2018-10-18 - * CVE-2019-5776: Insufficient policy enforcement in Omnibox. Reported by Lnyas Zhang on 2018-07-14 - * CVE-2019-5777: Insufficient policy enforcement in Omnibox. Reported by Khalil Zhani on 2018-06-04 - * CVE-2019-5778: Insufficient policy enforcement in Extensions. Reported by David Erceg on 2019-01-02 - * CVE-2019-5779: Insufficient policy enforcement in ServiceWorker. Reported by David Erceg on 2018-11-11 - * CVE-2019-5780: Insufficient policy enforcement. Reported by Andreas Hegenberg (folivora.AI GmbH) on 2018-10-03 - * CVE-2019-5781: Insufficient policy enforcement in Omnibox. Reported by evi1m0 of Bilibili Security Team on 2018-10-18 + * CVE-2019-5754: Inappropriate implementation in QUIC Networking + * CVE-2019-5782: Inappropriate implementation in V8 + * CVE-2019-5755: Inappropriate implementation in V8 + * CVE-2019-5756: Use after free in PDFium + * CVE-2019-5757: Type Confusion in SVG + * CVE-2019-5758: Use after free in Blink + * CVE-2019-5759: Use after free in HTML select elements + * CVE-2019-5760: Use after free in WebRTC + * CVE-2019-5761: Use after free in SwiftShader + * CVE-2019-5762: Use after free in PDFium + * CVE-2019-5763: Insufficient validation of untrusted input in V8 + * CVE-2019-5764: Use after free in WebRTC + * CVE-2019-5765: Insufficient policy enforcement in the browser + * CVE-2019-5766: Insufficient policy enforcement in Canvas + * CVE-2019-5767: Incorrect security UI in WebAPKs + * CVE-2019-5768: Insufficient policy enforcement in DevTools + * CVE-2019-5769: Insufficient validation of untrusted input in Blink + * CVE-2019-5770: Heap buffer overflow in WebGL + * CVE-2019-5771: Heap buffer overflow in SwiftShader + * CVE-2019-5772: Use after free in PDFium + * CVE-2019-5773: Insufficient data validation in IndexedDB + * CVE-2019-5774: Insufficient validation of untrusted input in SafeBrowsing + * CVE-2019-5775: Insufficient policy enforcement in Omnibox + * CVE-2019-5776: Insufficient policy enforcement in Omnibox + * CVE-2019-5777: Insufficient policy enforcement in Omnibox + * CVE-2019-5778: Insufficient policy enforcement in Extensions + * CVE-2019-5779: Insufficient policy enforcement in ServiceWorker + * CVE-2019-5780: Insufficient policy enforcement + * CVE-2019-5781: Insufficient policy enforcement in Omnibox @@ -6856,24 +6882,24 @@ - * High CVE-2018-6031: Use after free in PDFium. Reported by Anonymous on 2017-11-01 - * High CVE-2018-6032: Same origin bypass in Shared Worker. Reported by Jun Kokatsu (@shhnjk) on 2017-11-20 - * High CVE-2018-6033: Race when opening downloaded files. Reported by Juho Nurminen on 2017-12-09 - * Medium CVE-2018-6034: Integer overflow in Blink. Reported by Tobias Klein (www.trapkit.de) on 2017-11-12 - * Medium CVE-2018-6035: Insufficient isolation of devtools from extensions. Reported by Rob Wu on 2017-12-23 - * Medium CVE-2018-6036: Integer underflow in WebAssembly. Reported by The UK's National Cyber Security Centre (NCSC) on 2017-11-30 - * Medium CVE-2018-6037: Insufficient user gesture requirements in autofill. Reported by Paul Stone of Context Information Security on 2017-08-09 - * Medium CVE-2018-6038: Heap buffer overflow in WebGL. Reported by cloudfuzzer on 2017-10-12 - * Medium CVE-2018-6039: XSS in DevTools. Reported by Juho Nurminen on 2017-10-17 - * Medium CVE-2018-6040: Content security policy bypass. Reported by WenXu Wu of Tencent's Xuanwu Lab on 2017-10-26 - * Medium CVE-2018-6041: URL spoof in Navigation. Reported by Luan Herrera on 2017-08-29 - * Medium CVE-2018-6042: URL spoof in OmniBox. Reported by Khalil Zhani on 2017-10-12 - * Medium CVE-2018-6043: Insufficient escaping with external URL handlers. Reported by 0x09AL on 2017-11-16 - * Medium CVE-2018-6045: Insufficient isolation of devtools from extensions. Reported by Rob Wu on 2017-12-23 - * Medium CVE-2018-6046: Insufficient isolation of devtools from extensions. Reported by Rob Wu on 2017-12-31 - * Medium CVE-2018-6047: Cross origin URL leak in WebGL. Reported by Masato Kinugawa on 2018-01-08 - * Low CVE-2018-6048: Referrer policy bypass in Blink. Reported by Jun Kokatsu (@shhnjk) on 2017-09-08 - * Low CVE-2017-15420: URL spoofing in Omnibox. Reported by Drew Springall (@_aaspring_) on 2017-10-05 - * Low CVE-2018-6049: UI spoof in Permissions. Reported by WenXu Wu of Tencent's Xuanwu Lab on 2017-10-13 - * Low CVE-2018-6050: URL spoof in OmniBox. Reported by Jonathan Kew on 2017-10-15 - * Low CVE-2018-6051: Referrer leak in XSS Auditor. Reported by Antonio Sanso (@asanso) on 2014-12-11 - * Low CVE-2018-6052: Incomplete no-referrer policy implementation. Reported by Tanner Emek on 2016-05-28 - * Low CVE-2018-6053: Leak of page thumbnails in New Tab Page. Reported by Asset Kabdenov on 2017-08-23 - * Low CVE-2018-6054: Use after free in WebUI. Reported by Rob Wu on 2017-12-24 + * High CVE-2018-6031: Use after free in PDFium + * High CVE-2018-6032: Same origin bypass in Shared Worker + * High CVE-2018-6033: Race when opening downloaded files + * Medium CVE-2018-6034: Integer overflow in Blink + * Medium CVE-2018-6035: Insufficient isolation of devtools from extensions + * Medium CVE-2018-6036: Integer underflow in WebAssembly + * Medium CVE-2018-6037: Insufficient user gesture requirements in autofill + * Medium CVE-2018-6038: Heap buffer overflow in WebGL + * Medium CVE-2018-6039: XSS in DevTools + * Medium CVE-2018-6040: Content security policy bypass + * Medium CVE-2018-6041: URL spoof in Navigation + * Medium CVE-2018-6042: URL spoof in OmniBox + * Medium CVE-2018-6043: Insufficient escaping with external URL handlers + * Medium CVE-2018-6045: Insufficient isolation of devtools from extensions + * Medium CVE-2018-6046: Insufficient isolation of devtools from extensions + * Medium CVE-2018-6047: Cross origin URL leak in WebGL + * Low CVE-2018-6048: Referrer policy bypass in Blink + * Low CVE-2017-15420: URL spoofing in Omnibox + * Low CVE-2018-6049: UI spoof in Permissions + * Low CVE-2018-6050: URL spoof in OmniBox + * Low CVE-2018-6051: Referrer leak in XSS Auditor + * Low CVE-2018-6052: Incomplete no-referrer policy implementation + * Low CVE-2018-6053: Leak of page thumbnails in New Tab Page + * Low CVE-2018-6054: Use after free in WebUI @@ -7165,16 +7191,16 @@ - * CVE-2017-5070: Type confusion in V8. Reported by Zhao Qixun(@S0rryMybad) of Qihoo 360 Vulcan Team on 2017-05-16 - * CVE-2017-5071: Out of bounds read in V8. Reported by Choongwoo Han on 2017-04-26 - * CVE-2017-5072: Address spoofing in Omnibox. Reported by Rayyan Bijoora on 2017-04-07 - * CVE-2017-5073: Use after free in print preview. Reported by Khalil Zhani on 2017-04-28 - * CVE-2017-5074: Use after free in Apps Bluetooth. Reported by anonymous on 2017-03-09 - * CVE-2017-5075: Information leak in CSP reporting. Reported by Emmanuel Gil Peyrot on 2017-01-05 - * CVE-2017-5086: Address spoofing in Omnibox. Reported by Rayyan Bijoora on 2017-05-16 - * CVE-2017-5076: Address spoofing in Omnibox. Reported by Samuel Erb on 2017-05-06 - * CVE-2017-5077: Heap buffer overflow in Skia. Reported by Sweetchip on 2017-04-28 - * CVE-2017-5078: Possible command injection in mailto handling. Reported by Jose Carlos Exposito Bueno on 2017-04-12 - * CVE-2017-5079: UI spoofing in Blink. Reported by Khalil Zhani on 2017-04-20 - * CVE-2017-5080: Use after free in credit card autofill. Reported by Khalil Zhani on 2017-04-05 - * CVE-2017-5081: Extension verification bypass. Reported by Andrey Kovalev (@L1kvID) Yandex Security Team on 2016-12-07 - * CVE-2017-5082: Insufficient hardening in credit card editor. Reported by Nightwatch Cybersecurity Research on 2017-05-11 - * CVE-2017-5083: UI spoofing in Blink. Reported by Khalil Zhani on 2017-04-24 - * CVE-2017-5085: Inappropriate javascript execution on WebUI pages. Reported by Zhiyang Zeng of Tencent security platform department on 2017-02-15 + * CVE-2017-5070: Type confusion in V8 + * CVE-2017-5071: Out of bounds read in V8 + * CVE-2017-5072: Address spoofing in Omnibox + * CVE-2017-5073: Use after free in print preview + * CVE-2017-5074: Use after free in Apps Bluetooth + * CVE-2017-5075: Information leak in CSP reporting + * CVE-2017-5086: Address spoofing in Omnibox + * CVE-2017-5076: Address spoofing in Omnibox + * CVE-2017-5077: Heap buffer overflow in Skia + * CVE-2017-5078: Possible command injection in mailto handling + * CVE-2017-5079: UI spoofing in Blink + * CVE-2017-5080: Use after free in credit card autofill + * CVE-2017-5081: Extension verification bypass + * CVE-2017-5082: Insufficient hardening in credit card editor + * CVE-2017-5083: UI spoofing in Blink + * CVE-2017-5085: Inappropriate javascript execution on WebUI pages @@ -7746 +7772 @@ - - CVE-2016-1663: Use-after-free in Blink’s V8 bindings + - CVE-2016-1663: Use-after-free in Blink's V8 bindings @@ -8797 +8823 @@ - * CVE-2013-6643: Unprompted sync with an attacker’s + * CVE-2013-6643: Unprompted sync with an attacker's @@ -9900 +9926 @@ - * Use Google’s online spellchecker to identify misspelled words + * Use Google's online spellchecker to identify misspelled words Old: ---- chromium-145-use_unrar.patch chromium-146.0.7680.177-linux.tar.xz New: ---- chromium-147-blink_renderer_need_ffmpeg.patch chromium-147-comment_safe_assert.patch chromium-147-ffmpeg_includes.patch chromium-147.0.7727.49-linux.tar.xz chromium-bafd7d217b9e26edf3be8d20b1ff56bcea4b16ee.patch ----------(Old B)---------- Old:- removed patches: * chromium-145-use_unrar.patch ----------(Old E)---------- ----------(New B)---------- New: (revert spanification for llvm-19 for now) * chromium-147-blink_renderer_need_ffmpeg.patch (only seen with using system ffmpeg) New:- added patches: * chromium-147-comment_safe_assert.patch (ignore requirement for local libc++ for now, system copy New: has to be good enough) * chromium-147-ffmpeg_includes.patch * chromium-bafd7d217b9e26edf3be8d20b1ff56bcea4b16ee.patch New: * chromium-147-ffmpeg_includes.patch * chromium-bafd7d217b9e26edf3be8d20b1ff56bcea4b16ee.patch (revert spanification for llvm-19 for now) ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ chromium.spec ++++++ --- /var/tmp/diff_new_pack.PdPAXt/_old 2026-04-05 18:25:18.196740939 +0200 +++ /var/tmp/diff_new_pack.PdPAXt/_new 2026-04-05 18:25:18.200741103 +0200 @@ -132,7 +132,7 @@ %global official_build 1 Name: chromium%{n_suffix} -Version: 146.0.7680.177 +Version: 147.0.7727.49 Release: 0 Summary: Google's open source browser project License: BSD-3-Clause AND LGPL-2.1-or-later @@ -192,13 +192,15 @@ Patch386: chromium-143-libpng-unbundle.patch Patch387: chromium-143-cookie_string_view.patch Patch389: chromium-143-revert_rust_is_multiple_of.patch +Patch390: chromium-147-blink_renderer_need_ffmpeg.patch Patch391: chromium-145-blink_missing_include.patch -Patch392: chromium-145-use_unrar.patch Patch393: force-rust-nightly.patch Patch394: chromium-145-swiftshader-missing-include.patch Patch395: chromium-146-mojo_chmod_mode.patch Patch396: chromium-146-value_or.patch Patch397: chromium-146-has_no_clone.patch +Patch398: chromium-147-comment_safe_assert.patch +Patch399: chromium-147-ffmpeg_includes.patch # conditionally applied patches ppc64le only # where applicable patch numbers from fedora specfile + 100 Patch400: chromium-141-glibc-2.42-SYS_SECCOMP.patch @@ -282,8 +284,12 @@ # llvm19 segfaults in # ../services/network/public/cpp/permissions_policy/origin_with_possible_wildcards.cc:99:1: current parser token 'std' Patch1062: chromium-146-clang-19-crash.patch +# error in llvm19 +# ./device/fido/cable/v2_handshake.cc:221:17: error: static assertion expression is not an integral constant expression +# revert spanification for now +Patch1063: chromium-bafd7d217b9e26edf3be8d20b1ff56bcea4b16ee.patch # error: [44980s] ../components/enterprise/client_certificates/core/private_key_factory.cc:126:14: error: expression is not assignable -Patch1063: chromium-146-keyfactory.patch +Patch1064: chromium-146-keyfactory.patch # error with llvm < 23 # clang++: error: unknown argument: '-fsanitize-ignore-for-ubsan-feature=array-bounds' Patch1066: chromium-146-ignore-for-ubsan.patch @@ -507,7 +513,9 @@ %endif BuildRequires: lld%{llvm_version} BuildRequires: llvm%{llvm_version} +%ifnarch ppc64le #!BuildIgnore: gcc +%endif %else # gcc case BuildRequires: binutils-gold @@ -564,8 +572,9 @@ %patch -p1 -R -P 1060 %patch -p1 -P 1061 %patch -p1 -P 1062 +%patch -p1 -R -P 1063 fi -%patch -p1 -P 1063 +%patch -p1 -P 1064 if [[ $(echo ${clang_version} | cut -d. -f1) -lt 23 ]]; then %patch -p1 -P 1066 @@ -580,7 +589,29 @@ tar xf %{SOURCE4} && mv package third_party/node/node_modules/rollup %patch -p1 -P 1080 +%ifarch ppc64le +pushd third_party/libaom +git init +sed -i -e "s@reset_dirs linux/ia32@if false ; then\nreset_dirs linux/ia32@" \ + -e "s@reset_dirs linux/ppc64@fi\nreset_dirs linux/ppc64@" \ + -e "s@reset_dirs win/x64@if false ; then\nreset_dirs win/x64@" \ + -e "s@convert_to_windows.*arm64.*@convert_to_windows foo_arm64\nfi@" cmake_update.sh +sed -i -e "s@CROSS powerpc64le-linux-gnu-@CROSS \"\"@" source/libaom/build/cmake/toolchains/ppc-linux-gcc.cmake +./cmake_update.sh +for i in source/config/linux/ppc64/config/* ; do +echo $i +cat $i +done +popd +%endif + %build +# ccache experiment +# Zero out the hit/miss stats from previous runs to have data from this build +ccache --zero-stats +# show how much cache we are starting with +ccache --show-stats + # esbuild rm third_party/devtools-frontend/src/third_party/esbuild/esbuild tar -xf %{SOURCE1} @@ -1228,6 +1259,10 @@ %fdupes -s %{buildroot} +# ccache experiment +# show the ccache hit/miss stats +ccache --show-stats + %files %license LICENSE %doc AUTHORS ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.PdPAXt/_old 2026-04-05 18:25:18.380748489 +0200 +++ /var/tmp/diff_new_pack.PdPAXt/_new 2026-04-05 18:25:18.384748653 +0200 @@ -1,6 +1,6 @@ -mtime: 1775022080 -commit: a80bccc15d7f61dcc896e9632a9cc5a841b67f39bb7c38eae641af468c5f1f0a +mtime: 1775150134 +commit: 60d9d4e33e62f60767ecf4a86c5edb05bff70e91c15247f0e2c474a4d2cf1a95 url: https://src.opensuse.org/chromium/chromium.git -revision: a80bccc15d7f61dcc896e9632a9cc5a841b67f39bb7c38eae641af468c5f1f0a +revision: 60d9d4e33e62f60767ecf4a86c5edb05bff70e91c15247f0e2c474a4d2cf1a95 projectscmsync: https://src.opensuse.org/chromium/_ObsPrj.git ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-04-02 19:48:15.000000000 +0200 @@ -0,0 +1,4 @@ +.osc +*.patch~ +*-build/ +.*.swp ++++++ chromium-102-regex_pattern-array.patch ++++++ --- /var/tmp/diff_new_pack.PdPAXt/_old 2026-04-05 18:25:18.576756531 +0200 +++ /var/tmp/diff_new_pack.PdPAXt/_new 2026-04-05 18:25:18.580756695 +0200 @@ -1,6 +1,8 @@ ---- chromium-140.0.7327.6/components/autofill/core/browser/BUILD.gn 2025/08/01 09:33:04 1.1 -+++ chromium-140.0.7327.6/components/autofill/core/browser/BUILD.gn 2025/08/01 09:34:47 -@@ -75,6 +75,11 @@ +Index: chromium-147.0.7727.3/components/autofill/core/browser/BUILD.gn +=================================================================== +--- chromium-147.0.7727.3.orig/components/autofill/core/browser/BUILD.gn ++++ chromium-147.0.7727.3/components/autofill/core/browser/BUILD.gn +@@ -122,6 +122,11 @@ proto_library("amount_extraction_heurist } static_library("browser") { @@ -10,6 +12,6 @@ + ] + } sources = [ - "autofill_ai_form_rationalization.cc", - "autofill_ai_form_rationalization.h", + "at_memory/at_memory_data_type.cc", + "at_memory/at_memory_data_type.h", ++++++ chromium-125-compiler.patch ++++++ --- /var/tmp/diff_new_pack.PdPAXt/_old 2026-04-05 18:25:18.608757844 +0200 +++ /var/tmp/diff_new_pack.PdPAXt/_new 2026-04-05 18:25:18.612758008 +0200 @@ -12,8 +12,8 @@ ":compiler_codegen", ":compiler_deterministic", ":clang_warning_suppression", -@@ -669,61 +667,6 @@ config("compiler") { - ldflags += [ "-Wl,-z,keep-text-section-prefix" ] +@@ -602,68 +602,6 @@ + } } - if (is_clang) { @@ -25,6 +25,13 @@ - ] - } - +- # The performance improvement does not seem worth the risk. See +- # https://crbug.com/484082200 for background and https://crrev.com/c/7593035 +- # for discussion. +- if (!is_wasm) { +- cflags += [ "-fno-lifetime-dse" ] +- } +- - # TODO(hans): Remove this once Clang generates better optimized debug info - # by default. https://crbug.com/765793 - cflags += [ @@ -218,7 +225,7 @@ # In Chromium code, we define __STDC_foo_MACROS in order to get the # C99 macros on Mac and Linux. -@@ -2350,24 +2170,6 @@ config("chromium_code") { +@@ -2250,32 +2191,6 @@ "__STDC_FORMAT_MACROS", ] @@ -237,6 +244,14 @@ - if (is_chromeos_device) { - fortify_level = "3" - } +- +- # _FORTIFY_SOURCE=3 is available in glibc 2.34+. Enable it when building +- # with the sysroot where support is guaranteed. Clang is also required since +- # the system gcc is often patched to add _FORTIFY_SOURCE=2 which would conflict +- # with our definition. +- if (use_sysroot && is_clang) { +- fortify_level = "3" +- } - defines += [ "_FORTIFY_SOURCE=" + fortify_level ] - } - ++++++ chromium-127-constexpr.patch ++++++ --- /var/tmp/diff_new_pack.PdPAXt/_old 2026-04-05 18:25:18.636758992 +0200 +++ /var/tmp/diff_new_pack.PdPAXt/_new 2026-04-05 18:25:18.640759157 +0200 @@ -79,8 +79,8 @@ InvalidPrefetchContainerIdForTesting = PrefetchContainerIdForTesting(""); class TestPrefetchWatcherImpl; ---- a/components/history_embeddings/ml_answerer.cc -+++ b/components/history_embeddings/ml_answerer.cc +--- a/components/history_embeddings/core/ml_answerer.cc ++++ b/components/history_embeddings/core/ml_answerer.cc @@ -24,7 +24,7 @@ using optimization_guide::proto::Passage namespace { ++++++ chromium-133-bring_back_and_disable_allowlist.patch ++++++ --- /var/tmp/diff_new_pack.PdPAXt/_old 2026-04-05 18:25:18.680760799 +0200 +++ /var/tmp/diff_new_pack.PdPAXt/_new 2026-04-05 18:25:18.684760963 +0200 @@ -1,8 +1,8 @@ -Index: chromium-142.0.7444.3/media/base/media_switches.h +Index: chromium-147.0.7727.3/media/base/media_switches.h =================================================================== ---- chromium-142.0.7444.3.orig/media/base/media_switches.h -+++ chromium-142.0.7444.3/media/base/media_switches.h -@@ -521,6 +521,8 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE( +--- chromium-147.0.7727.3.orig/media/base/media_switches.h ++++ chromium-147.0.7727.3/media/base/media_switches.h +@@ -472,6 +472,8 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE( MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseWindowBoundsForPip); @@ -10,12 +10,12 @@ + MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaLogToConsole); - MEDIA_EXPORT BASE_DECLARE_FEATURE(kLibvpxUseChromeThreads); -Index: chromium-142.0.7444.3/media/base/media_switches.cc + MEDIA_EXPORT BASE_DECLARE_FEATURE(kAomVpxUsePresentationThreadType); +Index: chromium-147.0.7727.3/media/base/media_switches.cc =================================================================== ---- chromium-142.0.7444.3.orig/media/base/media_switches.cc -+++ chromium-142.0.7444.3/media/base/media_switches.cc -@@ -1690,6 +1690,11 @@ bool IsRestrictOwnAudioSupported() { +--- chromium-147.0.7727.3.orig/media/base/media_switches.cc ++++ chromium-147.0.7727.3/media/base/media_switches.cc +@@ -1801,6 +1801,11 @@ bool IsRestrictOwnAudioSupported() { #endif } @@ -27,10 +27,10 @@ #if BUILDFLAG(IS_WIN) bool IsMediaFoundationD3D11VideoCaptureEnabled() { return base::FeatureList::IsEnabled(kMediaFoundationD3D11VideoCapture); -Index: chromium-142.0.7444.3/media/ffmpeg/ffmpeg_common.cc +Index: chromium-147.0.7727.3/media/ffmpeg/ffmpeg_common.cc =================================================================== ---- chromium-142.0.7444.3.orig/media/ffmpeg/ffmpeg_common.cc -+++ chromium-142.0.7444.3/media/ffmpeg/ffmpeg_common.cc +--- chromium-147.0.7727.3.orig/media/ffmpeg/ffmpeg_common.cc ++++ chromium-147.0.7727.3/media/ffmpeg/ffmpeg_common.cc @@ -19,6 +19,7 @@ #include "media/base/decoder_buffer.h" #include "media/base/encryption_scheme.h" @@ -39,7 +39,7 @@ #include "media/base/media_util.h" #include "media/base/supported_types.h" #include "media/base/video_aspect_ratio.h" -@@ -73,7 +74,8 @@ const char* GetAllowedVideoDecoders() { +@@ -78,7 +79,8 @@ const char* GetAllowedVideoDecoders() { void ApplyCodecContextSecuritySettings(AVCodecContext* codec_context) { // Future versions of ffmpeg may copy the allow list from the format // context. @@ -49,11 +49,11 @@ // Note: FFmpeg will try to free this string, so we must duplicate it. codec_context->codec_whitelist = av_strdup(codec_context->codec_type == AVMEDIA_TYPE_AUDIO -Index: chromium-142.0.7444.3/media/filters/ffmpeg_glue.cc +Index: chromium-147.0.7727.3/media/filters/ffmpeg_glue.cc =================================================================== ---- chromium-142.0.7444.3.orig/media/filters/ffmpeg_glue.cc -+++ chromium-142.0.7444.3/media/filters/ffmpeg_glue.cc -@@ -137,8 +137,10 @@ FFmpegGlue::FFmpegGlue(FFmpegURLProtocol +--- chromium-147.0.7727.3.orig/media/filters/ffmpeg_glue.cc ++++ chromium-147.0.7727.3/media/filters/ffmpeg_glue.cc +@@ -142,8 +142,10 @@ FFmpegGlue::FFmpegGlue(FFmpegURLProtocol // memory usage. // // Note: FFmpeg will try to free these strings, so we must duplicate them. ++++++ chromium-147-blink_renderer_need_ffmpeg.patch ++++++ --- chromium-147.0.7727.3/third_party/blink/renderer/platform/media/BUILD.gn 2026/03/18 13:00:37 1.1 +++ chromium-147.0.7727.3/third_party/blink/renderer/platform/media/BUILD.gn 2026/03/18 13:03:25 @@ -114,6 +114,13 @@ "//third_party/blink/renderer/platform:allow_discouraged_type", ] + if (media_use_ffmpeg) { + deps += [ + "//third_party/ffmpeg", + "//third_party/ffmpeg:ffmpeg_features", + ] + } + if (enable_hls_demuxer) { sources += [ "multi_buffer_data_source_factory.cc", ++++++ chromium-147-comment_safe_assert.patch ++++++ --- chromium-147.0.7727.3/v8/BUILD.gn 2026/03/15 13:36:13 1.1 +++ chromium-147.0.7727.3/v8/BUILD.gn 2026/03/15 13:36:50 @@ -788,8 +788,8 @@ assert(!v8_enable_sandbox || v8_enable_external_code_space, "The sandbox requires the external code space") -assert(!v8_enable_sandbox || use_safe_libcxx, - "The sandbox requires libc++ hardening") +#assert(!v8_enable_sandbox || use_safe_libcxx, +# "The sandbox requires libc++ hardening") assert(!v8_enable_memory_corruption_api || v8_enable_sandbox, "The Memory Corruption API requires the sandbox") ++++++ chromium-147-ffmpeg_includes.patch ++++++ --- chromium-146.0.7680.80/build/linux/unbundle/ffmpeg.gn 2026/03/17 11:13:01 1.1 +++ chromium-146.0.7680.80/build/linux/unbundle/ffmpeg.gn 2026/03/17 11:17:17 @@ -26,6 +26,7 @@ "libavcodec/packet.h", "libavformat/avformat.h", "libavutil/imgutils.h", + "libavutil/rational.h", ] } ++++++ chromium-146.0.7680.177-linux.tar.xz -> chromium-147.0.7727.49-linux.tar.xz ++++++ /work/SRC/openSUSE:Factory/chromium/chromium-146.0.7680.177-linux.tar.xz /work/SRC/openSUSE:Factory/.chromium.new.21863/chromium-147.0.7727.49-linux.tar.xz differ: char 15, line 1 ++++++ chromium-24264eefbfd3464161764f31a2752c5327719452.patch ++++++ --- /var/tmp/diff_new_pack.PdPAXt/_old 2026-04-05 18:25:18.848767692 +0200 +++ /var/tmp/diff_new_pack.PdPAXt/_new 2026-04-05 18:25:18.852767856 +0200 @@ -42,7 +42,7 @@ return huffman_table; } @@ -131,7 +131,7 @@ media::JpegParseResult ConvertToJpegParseResult( - base::span(parse_result.q_table[i].value) + base::span(UNSAFE_TODO(parse_result.q_table[i]).value) .first(value_min_size) .copy_from_nonoverlapping( - base::span(input_q_table.value()).first(value_min_size)); ++++++ chromium-bafd7d217b9e26edf3be8d20b1ff56bcea4b16ee.patch ++++++ commit bafd7d217b9e26edf3be8d20b1ff56bcea4b16ee Author: Daniel Angulo <[email protected]> Date: Fri Mar 6 04:26:08 2026 -0800 spanification: automatically spanify device/fido/cable/v2_handshake.cc etc. This is the result of running the automatic spanification on linux and updating code to use and pass spans where size is known. The original patch was fully automated using script: //tools/clang/spanify/rewrite-multiple-platforms.sh -platforms=linux Then refined with gemini-cli and at last refined manually gemini-run/batch-run-1761116551/group_116 BUG: 439964610 Change-Id: I35c2f1c3cbb1052fbd5c34fe2719aff7ba51bc76 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7494440 Auto-Submit: Daniel Angulo <[email protected]> Reviewed-by: Adem Derinel <[email protected]> Reviewed-by: Arthur Sonzogni <[email protected]> Commit-Queue: Arthur Sonzogni <[email protected]> Reviewed-by: Stephen Nusko <[email protected]> Cr-Commit-Position: refs/heads/main@{#1595317} diff --git a/device/fido/cable/v2_handshake.cc b/device/fido/cable/v2_handshake.cc index 305420e1a8426..653c0f0c34376 100644 --- a/device/fido/cable/v2_handshake.cc +++ b/device/fido/cable/v2_handshake.cc @@ -16,12 +16,16 @@ #include "base/base64url.h" #include "base/compiler_specific.h" #include "base/containers/span.h" +#include "base/containers/span_reader.h" +#include "base/containers/span_writer.h" #include "base/feature_list.h" #include "base/numerics/byte_conversions.h" #include "base/numerics/safe_conversions.h" #include "base/numerics/safe_math.h" +#include "base/strings/safe_sprintf.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" +#include "base/strings/stringprintf.h" #include "components/cbor/reader.h" #include "components/cbor/values.h" #include "components/cbor/writer.h" @@ -122,16 +126,22 @@ std::string DecodeDomain(KnownDomainID domain_id) { return kAssignedDomains[domain]; } - char templ[] = "caBLEv2 tunnel server domain\x00\x00"; - UNSAFE_TODO(memcpy(&templ[sizeof(templ) - 1 - sizeof(domain)], &domain, - sizeof(domain))); + static constexpr std::string_view kPrefix = "caBLEv2 tunnel server domain"; + + // [28-prefix][2-byte domain][1-NUL] + std::array<uint8_t, 31> templ = {}; + base::SpanWriter<uint8_t> writer(templ); + writer.Write(base::as_byte_span(kPrefix)); + writer.WriteU16LittleEndian(domain); + // Leave one byte for NULL (`templ` was zero initialized). + CHECK_EQ(writer.remaining(), 1u); // Leave one byte for NULL. + CHECK_EQ(templ.back(), 0); + uint8_t digest[SHA256_DIGEST_LENGTH]; - // The input should be NUL-terminated, thus the trailing NUL in |templ| is - // included here. - SHA256(reinterpret_cast<const uint8_t*>(templ), sizeof(templ), digest); - uint64_t result; - static_assert(sizeof(result) <= sizeof(digest), ""); - UNSAFE_TODO(memcpy(&result, digest, sizeof(result))); + SHA256(templ.data(), templ.size(), digest); + static_assert(sizeof(uint64_t) <= sizeof(digest), ""); + uint64_t result = + base::U64FromNativeEndian(base::span(digest).first<sizeof(uint64_t)>()); static const std::string_view kBase32Chars = "abcdefghijklmnopqrstuvwxyz234567"; @@ -145,8 +155,13 @@ std::string DecodeDomain(KnownDomainID domain_id) { } ret.push_back('.'); - static const char kTLDs[4][5] = {"com", "org", "net", "info"}; - ret += UNSAFE_TODO(kTLDs[tld_value]); + static constexpr auto kTLDs = std::to_array<std::string_view>({ + "com", + "org", + "net", + "info", + }); + ret += kTLDs[tld_value]; return ret; } @@ -202,24 +217,29 @@ std::array<uint8_t, kAdvertSize> Encrypt( // is a pair of 256-bit keys, concatenated. DCHECK(ReservedBitsAreZero(eid)); - std::array<uint8_t, kAdvertSize> ret; - static_assert(ret.size() == AES_BLOCK_SIZE + 4); - + auto [aes_key_bytes, hmac_key_bytes] = key.split_at<32>(); + static_assert(aes_key_bytes.size() == 32u); + static_assert(hmac_key_bytes.size() == 32u); AES_KEY aes_key; - static_assert(key.size() == 32 + 32); - CHECK(AES_set_encrypt_key(key.data(), /*bits=*/8 * 32, &aes_key) == 0); + CHECK(AES_set_encrypt_key(aes_key_bytes.data(), + /*bits=*/8 * aes_key_bytes.size(), &aes_key) == 0); + static_assert(std::tuple_size_v<CableEidArray> == AES_BLOCK_SIZE, "EIDs are not AES blocks"); - AES_encrypt(/*in=*/eid.data(), /*out=*/ret.data(), &aes_key); + + std::array<uint8_t, kAdvertSize> ret; + auto [ciphertext, mac_tag] = base::span(ret).split_at<AES_BLOCK_SIZE>(); + + // Encrypt directly into the first part of the result buffer. + AES_encrypt(/*in=*/eid.data(), /*out=*/ciphertext.data(), &aes_key); uint8_t hmac[SHA256_DIGEST_LENGTH]; unsigned hmac_len; - UNSAFE_TODO(CHECK(HMAC(EVP_sha256(), key.data() + 32, 32, ret.data(), - AES_BLOCK_SIZE, hmac, &hmac_len) != nullptr)); + CHECK(HMAC(EVP_sha256(), hmac_key_bytes.data(), hmac_key_bytes.size(), + ciphertext.data(), ciphertext.size(), hmac, &hmac_len) != nullptr); CHECK_EQ(hmac_len, sizeof(hmac)); - static_assert(sizeof(hmac) >= 4, ""); - UNSAFE_TODO(memcpy(ret.data() + AES_BLOCK_SIZE, hmac, 4)); + mac_tag.copy_from(base::span(hmac).first<4>()); return ret; } @@ -234,18 +254,21 @@ std::optional<CableEidArray> Decrypt( uint8_t calculated_hmac[SHA256_DIGEST_LENGTH]; unsigned calculated_hmac_len; - UNSAFE_TODO(CHECK(HMAC(EVP_sha256(), key.data() + 32, 32, advert.data(), - AES_BLOCK_SIZE, calculated_hmac, - &calculated_hmac_len) != nullptr)); + // Split the key into the AES key (32 bytes) and HMAC key (32 bytes). + auto [aes_key_bytes, hmac_key_bytes] = key.split_at<32>(); + CHECK(HMAC(EVP_sha256(), hmac_key_bytes.data(), hmac_key_bytes.size(), + advert.data(), AES_BLOCK_SIZE, calculated_hmac, + &calculated_hmac_len) != nullptr); CHECK_EQ(calculated_hmac_len, sizeof(calculated_hmac)); - - if (CRYPTO_memcmp(calculated_hmac, - UNSAFE_TODO(advert.data() + AES_BLOCK_SIZE), 4) != 0) { + static_assert(sizeof(calculated_hmac) >= 4u); + static_assert(base::span(advert).subspan<AES_BLOCK_SIZE>().size() == 4u); + if (CRYPTO_memcmp(calculated_hmac, &advert[AES_BLOCK_SIZE], 4) != 0) { return std::nullopt; } AES_KEY aes_key; - CHECK(AES_set_decrypt_key(key.data(), /*bits=*/8 * 32, &aes_key) == 0); + CHECK(AES_set_decrypt_key(aes_key_bytes.data(), + /*bits=*/8 * aes_key_bytes.size(), &aes_key) == 0); CableEidArray plaintext; static_assert(plaintext.size() == AES_BLOCK_SIZE, "EIDs are not AES blocks"); AES_decrypt(/*in=*/advert.data(), /*out=*/plaintext.data(), &aes_key); @@ -260,10 +283,10 @@ std::optional<CableEidArray> Decrypt( uint16_t tunnel_server_domain; static_assert(plaintext.size() >= sizeof(tunnel_server_domain)); - UNSAFE_TODO( - memcpy(&tunnel_server_domain, - &plaintext[plaintext.size() - sizeof(tunnel_server_domain)], - sizeof(tunnel_server_domain))); + base::span<uint8_t> tunnel_server_domain_span = + base::byte_span_from_ref(tunnel_server_domain); + tunnel_server_domain_span.copy_from( + base::span(plaintext).last<sizeof(tunnel_server_domain)>()); if (!tunnelserver::ToKnownDomainID(tunnel_server_domain)) { return std::nullopt; } @@ -277,13 +300,12 @@ CableEidArray FromComponents(const Components& components) { static_assert(eid.size() == 1 + kNonceSize + sizeof(components.routing_id) + sizeof(components.tunnel_server_domain)); - eid[0] = 0; - UNSAFE_TODO(memcpy(&eid[1], components.nonce.data(), kNonceSize)); - UNSAFE_TODO(memcpy(&eid[1 + kNonceSize], components.routing_id.data(), - sizeof(components.routing_id))); - UNSAFE_TODO(memcpy(&eid[1 + kNonceSize + sizeof(components.routing_id)], - &components.tunnel_server_domain, - sizeof(components.tunnel_server_domain))); + auto writer = base::SpanWriter<uint8_t>(base::span<uint8_t>(eid)); + CHECK(writer.WriteU8BigEndian(0)); + CHECK(writer.Write(components.nonce)); + CHECK(writer.Write(components.routing_id)); + CHECK(writer.Write( + base::byte_span_from_ref(components.tunnel_server_domain.value()))); return eid; } @@ -295,14 +317,13 @@ Components ToComponents(const CableEidArray& eid) { 1 + kNonceSize + sizeof(ret.routing_id) + sizeof(ret.tunnel_server_domain)); - UNSAFE_TODO(memcpy(ret.nonce.data(), &eid[1], kNonceSize)); - UNSAFE_TODO(memcpy(ret.routing_id.data(), &eid[1 + kNonceSize], - sizeof(ret.routing_id))); + auto reader = base::SpanReader<const uint8_t>(base::span(eid)); + CHECK(reader.Skip(1u)); + CHECK(reader.ReadCopy(ret.nonce)); + CHECK(reader.ReadCopy(ret.routing_id)); uint16_t tunnel_server_domain; - UNSAFE_TODO(memcpy(&tunnel_server_domain, - &eid[1 + kNonceSize + sizeof(ret.routing_id)], - sizeof(tunnel_server_domain))); + CHECK(reader.ReadCopy(base::byte_span_from_ref(tunnel_server_domain))); // |eid| has been checked by |Decrypt| so the tunnel server domain must be // valid. ret.tunnel_server_domain = @@ -459,38 +480,27 @@ std::string BytesToDigits(base::span<const uint8_t> in) { std::string ret; ret.reserve(((in.size() + kChunkSize - 1) / kChunkSize) * kChunkDigits); - while (in.size() >= kChunkSize) { - uint64_t v = 0; - static_assert(sizeof(v) >= kChunkSize, ""); - UNSAFE_TODO(memcpy(&v, in.data(), kChunkSize)); - - char digits[kChunkDigits + 1]; - static_assert(kChunkDigits == 17, "Need to change next line"); - CHECK_LT(snprintf(digits, sizeof(digits), "%017" PRIu64, v), - static_cast<int>(sizeof(digits))); - ret += digits; - - in = in.subspan<kChunkSize>(); - } + base::SpanReader reader(in); - if (in.size()) { - char format[16]; - // kPartialChunkDigits is the number of digits needed to encode each length - // of trailing data from 6 bytes down to zero. I.e. it's 15, 13, 10, 8, 5, - // 3, 0 written in hex. - constexpr uint32_t kPartialChunkDigits = 0x0fda8530; - CHECK_LT(snprintf(format, sizeof(format), "%%0%d" PRIu64, - 15 & (kPartialChunkDigits >> (4 * in.size()))), - static_cast<int>(sizeof(format))); + while (reader.remaining() > 0) { + size_t n = std::min(reader.remaining(), kChunkSize); uint64_t v = 0; - CHECK_LE(in.size(), sizeof(v)); - UNSAFE_TODO(memcpy(&v, in.data(), in.size())); - - char digits[kChunkDigits + 1]; - UNSAFE_TODO(CHECK_LT(snprintf(digits, sizeof(digits), format, v), - static_cast<int>(sizeof(digits)))); - ret += digits; + base::byte_span_from_ref(v).copy_prefix_from(*reader.Read(n)); + + // kWidths maps the number of bytes read (0 to 7) to the number of decimal + // digits required to represent them. A full 7-byte chunk (n = 7) requires + // kChunkDigits (17) digits. + constexpr std::array<int, kChunkSize + 1> kWidths = {0, 3, 5, 8, + 10, 13, 15, 17}; + static_assert(std::size(kWidths) == kChunkSize + 1); + static_assert(kWidths[kChunkSize] == kChunkDigits); + + // The "%0*" format specifier dynamically sets the zero-padding width. + // The first argument (kWidths[n]) replaces the '*', dictating the + // width, and the second argument (v) is the uint64_t value being + // printed. + base::StringAppendF(&ret, "%0*" PRIu64, kWidths[n], v); } return ret; @@ -507,7 +517,7 @@ std::optional<std::vector<uint8_t>> DigitsToBytes(std::string_view in) { return std::nullopt; } const base::span<const uint8_t> v_bytes = - base::as_writable_byte_span(base::span_from_ref(v)).first(kChunkSize); + base::byte_span_from_ref(v).first<kChunkSize>(); ret.insert(ret.end(), v_bytes.begin(), v_bytes.end()); in = in.substr(kChunkDigits); @@ -544,8 +554,7 @@ std::optional<std::vector<uint8_t>> DigitsToBytes(std::string_view in) { } const base::span<const uint8_t> v_bytes = - base::as_writable_byte_span(base::span_from_ref(v)) - .first(remaining_bytes); + base::byte_span_from_ref(v).first(remaining_bytes); ret.insert(ret.end(), v_bytes.begin(), v_bytes.end()); } @@ -683,9 +692,9 @@ std::optional<std::vector<uint8_t>> EncodePaddedCBORMap( cbor_bytes->resize(padded_size); const uint16_t num_padding_bytes16 = base::checked_cast<uint16_t>(num_padding_bytes); - UNSAFE_TODO( - memcpy(&cbor_bytes.value()[padded_size - sizeof(num_padding_bytes16)], - &num_padding_bytes16, sizeof(num_padding_bytes16))); + base::span(*cbor_bytes) + .subspan(padded_size - sizeof(num_padding_bytes16)) + .copy_from(base::byte_span_from_ref(num_padding_bytes16)); return *cbor_bytes; } @@ -740,9 +749,8 @@ std::optional<cbor::Value> DecodePaddedCBORMap16( } uint16_t padding_length16; - UNSAFE_TODO(memcpy(&padding_length16, - &input[input.size() - sizeof(padding_length16)], - sizeof(padding_length16))); + base::byte_span_from_ref(padding_length16) + .copy_from(input.subspan(input.size() - sizeof(padding_length16))); const size_t padding_length = padding_length16; if (padding_length + sizeof(uint16_t) > input.size()) { return std::nullopt; @@ -804,8 +812,9 @@ bool Crypter::Encrypt(std::vector<uint8_t>* message_to_encrypt) { const size_t num_zeros = padded_size - message_to_encrypt->size() - 1; std::vector<uint8_t> padded_message(padded_size, 0); - UNSAFE_TODO(memcpy(padded_message.data(), message_to_encrypt->data(), - message_to_encrypt->size())); + base::span(padded_message) + .first(message_to_encrypt->size()) + .copy_from(*message_to_encrypt); // The number of added zeros has to fit in a single byte so it has to be // less than 256. DCHECK_LT(num_zeros, 256u); @@ -906,12 +915,13 @@ std::vector<uint8_t> HandshakeInitiator::BuildInitialMessage() { ephemeral_key_.reset(EC_KEY_new_by_curve_name(NID_X9_62_prime256v1)); const EC_GROUP* group = EC_KEY_get0_group(ephemeral_key_.get()); CHECK(EC_KEY_generate_key(ephemeral_key_.get())); - uint8_t ephemeral_key_public_bytes[kP256X962Length]; - CHECK_EQ(sizeof(ephemeral_key_public_bytes), + std::array<uint8_t, kP256X962Length> ephemeral_key_public_bytes; + CHECK_EQ(ephemeral_key_public_bytes.size(), EC_POINT_point2oct( group, EC_KEY_get0_public_key(ephemeral_key_.get()), - POINT_CONVERSION_UNCOMPRESSED, ephemeral_key_public_bytes, - sizeof(ephemeral_key_public_bytes), /*ctx=*/nullptr)); + POINT_CONVERSION_UNCOMPRESSED, ephemeral_key_public_bytes.data(), + ephemeral_key_public_bytes.size(), + /*ctx=*/nullptr)); noise_.MixHash(ephemeral_key_public_bytes); noise_.MixKey(ephemeral_key_public_bytes); @@ -933,11 +943,11 @@ std::vector<uint8_t> HandshakeInitiator::BuildInitialMessage() { std::vector<uint8_t> ciphertext = noise_.EncryptAndHash({}); std::vector<uint8_t> handshake_message; - handshake_message.reserve(sizeof(ephemeral_key_public_bytes) + + handshake_message.reserve(ephemeral_key_public_bytes.size() + ciphertext.size()); - handshake_message.insert(handshake_message.end(), ephemeral_key_public_bytes, - UNSAFE_TODO(ephemeral_key_public_bytes + - sizeof(ephemeral_key_public_bytes))); + handshake_message.insert(handshake_message.end(), + ephemeral_key_public_bytes.begin(), + ephemeral_key_public_bytes.end()); handshake_message.insert(handshake_message.end(), ciphertext.begin(), ciphertext.end()); @@ -1058,12 +1068,12 @@ HandshakeResult RespondToHandshake( return std::nullopt; } - uint8_t ephemeral_key_public_bytes[kP256X962Length]; - CHECK_EQ(sizeof(ephemeral_key_public_bytes), + std::array<uint8_t, kP256X962Length> ephemeral_key_public_bytes; + CHECK_EQ(ephemeral_key_public_bytes.size(), EC_POINT_point2oct( group, EC_KEY_get0_public_key(ephemeral_key.get()), - POINT_CONVERSION_UNCOMPRESSED, ephemeral_key_public_bytes, - sizeof(ephemeral_key_public_bytes), + POINT_CONVERSION_UNCOMPRESSED, ephemeral_key_public_bytes.data(), + ephemeral_key_public_bytes.size(), /*ctx=*/nullptr)); noise.MixHash(ephemeral_key_public_bytes); noise.MixKey(ephemeral_key_public_bytes); @@ -1091,9 +1101,8 @@ HandshakeResult RespondToHandshake( } const std::vector<uint8_t> my_ciphertext = noise.EncryptAndHash({}); - out_response->insert(out_response->end(), ephemeral_key_public_bytes, - UNSAFE_TODO(ephemeral_key_public_bytes + - sizeof(ephemeral_key_public_bytes))); + out_response->insert(out_response->end(), ephemeral_key_public_bytes.begin(), + ephemeral_key_public_bytes.end()); out_response->insert(out_response->end(), my_ciphertext.begin(), my_ciphertext.end()); ++++++ chromium-norar.patch ++++++ --- /var/tmp/diff_new_pack.PdPAXt/_old 2026-04-05 18:25:18.888769333 +0200 +++ /var/tmp/diff_new_pack.PdPAXt/_new 2026-04-05 18:25:18.892769497 +0200 @@ -1,7 +1,7 @@ -Index: chromium-146.0.7680.65/chrome/browser/safe_browsing/download_protection/file_analyzer.cc +Index: chromium-147.0.7727.3/chrome/browser/safe_browsing/download_protection/file_analyzer.cc =================================================================== ---- chromium-146.0.7680.65.orig/chrome/browser/safe_browsing/download_protection/file_analyzer.cc -+++ chromium-146.0.7680.65/chrome/browser/safe_browsing/download_protection/file_analyzer.cc +--- chromium-147.0.7727.3.orig/chrome/browser/safe_browsing/download_protection/file_analyzer.cc ++++ chromium-147.0.7727.3/chrome/browser/safe_browsing/download_protection/file_analyzer.cc @@ -84,11 +84,6 @@ void FileAnalyzer::Start(const base::Fil return; } @@ -14,32 +14,4 @@ #if BUILDFLAG(IS_MAC) if (inspection_type == DownloadFileType::DMG) { StartExtractDmgFeatures(); -Index: chromium-146.0.7680.65/chrome/utility/safe_browsing/archive_analysis_delegate.h -=================================================================== ---- chromium-146.0.7680.65.orig/chrome/utility/safe_browsing/archive_analysis_delegate.h -+++ chromium-146.0.7680.65/chrome/utility/safe_browsing/archive_analysis_delegate.h -@@ -9,7 +9,9 @@ - - #include "base/files/file.h" - #include "chrome/utility/safe_browsing/zip_writer_delegate.h" -+#if USE_UNRAR - #include "third_party/unrar/google/unrar_delegates.h" -+#endif - #include "third_party/zlib/google/zip_reader.h" - - namespace safe_browsing { -Index: chromium-146.0.7680.65/chrome/services/file_util/obfuscated_archive_analysis_delegate.h -=================================================================== ---- chromium-146.0.7680.65.orig/chrome/services/file_util/obfuscated_archive_analysis_delegate.h -+++ chromium-146.0.7680.65/chrome/services/file_util/obfuscated_archive_analysis_delegate.h -@@ -7,7 +7,9 @@ - - #include "chrome/utility/safe_browsing/archive_analysis_delegate.h" - #include "components/enterprise/obfuscation/core/utils.h" -+#if USE_UNRAR - #include "third_party/unrar/google/unrar_wrapper.h" -+#endif - - namespace safe_browsing { - ++++++ ppc-fedora-0001-Add-PPC64-support-for-boringssl.patch ++++++ --- /var/tmp/diff_new_pack.PdPAXt/_old 2026-04-05 18:25:18.996773764 +0200 +++ /var/tmp/diff_new_pack.PdPAXt/_new 2026-04-05 18:25:19.004774093 +0200 @@ -4939,24 +4939,11 @@ } #endif // SUPPORTS_ABI_TEST && !OPENSSL_NO_ASM -Index: chromium-146.0.7680.65/third_party/boringssl/src/crypto/rand/getrandom_fillin.h -=================================================================== ---- chromium-146.0.7680.65.orig/third_party/boringssl/src/crypto/rand/getrandom_fillin.h -+++ chromium-146.0.7680.65/third_party/boringssl/src/crypto/rand/getrandom_fillin.h -@@ -30,6 +30,8 @@ - #define EXPECTED_NR_getrandom 278 - #elif defined(OPENSSL_ARM) - #define EXPECTED_NR_getrandom 384 -+#elif defined(OPENSSL_PPC64LE) -+#define EXPECTED_NR_getrandom 359 - #elif defined(OPENSSL_RISCV64) - #define EXPECTED_NR_getrandom 278 - #endif Index: chromium-146.0.7680.65/third_party/boringssl/src/crypto/fipsmodule/rand/rand.cc.inc =================================================================== --- chromium-146.0.7680.65.orig/third_party/boringssl/src/crypto/fipsmodule/rand/rand.cc.inc +++ chromium-146.0.7680.65/third_party/boringssl/src/crypto/fipsmodule/rand/rand.cc.inc -@@ -429,6 +429,11 @@ bcm_infallible bssl::BCM_rand_bytes_with +@@ -423,6 +423,11 @@ // Take a read lock around accesses to |state->drbg|. This is needed to // avoid returning bad entropy if we race with // |rand_thread_state_clear_all|. @@ -4965,7 +4952,7 @@ + // bug on ppc64le. glibc may implement pthread locks by wrapping user code + // in a hardware transaction, but, on some older versions of glibc and the + // kernel, syscalls made with |syscall| did not abort the transaction. - CRYPTO_MUTEX_lock_read(&state->clear_drbg_lock); + state->clear_drbg_lock.LockRead(); #endif if (!CTR_DRBG_reseed_ex(&state->drbg, seed, sizeof(seed), Index: chromium-146.0.7680.65/third_party/boringssl/src/crypto/fipsmodule/sha/internal.h @@ -6753,9 +6740,9 @@ =================================================================== --- chromium-146.0.7680.65.orig/third_party/boringssl/src/util/fipstools/delocate/delocate_test.go +++ chromium-146.0.7680.65/third_party/boringssl/src/util/fipstools/delocate/delocate_test.go -@@ -39,6 +39,11 @@ func (test *delocateTest) Path(file stri - +@@ -40,6 +40,11 @@ var delocateTests = []delocateTest{ + {"generic-AddrSig", []string{"in.s"}, "out.s"}, {"generic-FileDirectives", []string{"in.s"}, "out.s"}, + {"ppc64le-GlobalEntry", []string{"in.s"}, "out.s"}, + {"ppc64le-LoadToR0", []string{"in.s"}, "out.s"}, ++++++ ppc-fedora-0002-regenerate-xnn-buildgn.patch ++++++ ++++ 44580 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/chromium/ppc-fedora-0002-regenerate-xnn-buildgn.patch ++++ and /work/SRC/openSUSE:Factory/.chromium.new.21863/ppc-fedora-0002-regenerate-xnn-buildgn.patch ++++++ ppc-fedora-0002-third_party-libvpx-Remove-bad-ppc64-config.patch ++++++ --- /var/tmp/diff_new_pack.PdPAXt/_old 2026-04-05 18:25:19.464792967 +0200 +++ /var/tmp/diff_new_pack.PdPAXt/_new 2026-04-05 18:25:19.468793131 +0200 @@ -1,8 +1,8 @@ ---- chromium-136.0.7103.48.orig/third_party/libvpx/source/config/linux/ppc64/vp8_rtcd.h 2025/05/14 22:49:40 1.1 +--- chromium-147.0.7727.3/third_party/libvpx/source/config/linux/ppc64/vp8_rtcd.h 2026/03/16 13:33:31 1.1 +++ /dev/null @@ -1,186 +0,0 @@ -/* -- * Copyright (c) 2026 The WebM project authors. All Rights Reserved. +- * Copyright (c) 2017 The WebM project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source @@ -187,11 +187,11 @@ -#endif - -#endif // VP8_RTCD_H_ ---- chromium-136.0.7103.48.orig/third_party/libvpx/source/config/linux/ppc64/vp9_rtcd.h 2025/05/14 22:49:40 1.1 +--- chromium-147.0.7727.3/third_party/libvpx/source/config/linux/ppc64/vp9_rtcd.h 2026/03/16 13:33:33 1.1 +++ /dev/null @@ -1,119 +0,0 @@ -/* -- * Copyright (c) 2026 The WebM project authors. All Rights Reserved. +- * Copyright (c) 2017 The WebM project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source @@ -309,7 +309,7 @@ -#endif - -#endif // VP9_RTCD_H_ ---- chromium-136.0.7103.48.orig/third_party/libvpx/source/config/linux/ppc64/vpx_config.c 2025/05/14 22:49:40 1.1 +--- chromium-147.0.7727.3/third_party/libvpx/source/config/linux/ppc64/vpx_config.c 2026/03/16 13:39:55 1.1 +++ /dev/null @@ -1,10 +0,0 @@ -/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */ @@ -322,11 +322,244 @@ -#include "vpx/vpx_codec.h" -static const char* const cfg = "--target=ppc64le-linux-gcc --enable-external-build --enable-postproc --enable-multi-res-encoding --enable-temporal-denoising --enable-vp9-temporal-denoising --enable-vp9-postproc --size-limit=16384x16384 --enable-realtime-only --disable-install-docs --disable-libyuv --enable-unit-tests"; -const char *vpx_codec_build_config(void) {return cfg;} ---- chromium-136.0.7103.48.orig/third_party/libvpx/source/config/linux/ppc64/vpx_dsp_rtcd.h 2025/05/14 22:49:40 1.1 +--- chromium-147.0.7727.3/third_party/libvpx/source/config/linux/ppc64/vpx_config.asm 2026/03/16 13:39:50 1.1 ++++ /dev/null +@@ -1,109 +0,0 @@ +-@ This file was created from a .asm file +-@ using the ads2gas.pl script. +-.syntax unified +-.equ VPX_ARCH_ARM , 0 +-.equ ARCH_ARM , 0 +-.equ VPX_ARCH_AARCH64 , 0 +-.equ ARCH_AARCH64 , 0 +-.equ VPX_ARCH_MIPS , 0 +-.equ ARCH_MIPS , 0 +-.equ VPX_ARCH_X86 , 0 +-.equ ARCH_X86 , 0 +-.equ VPX_ARCH_X86_64 , 0 +-.equ ARCH_X86_64 , 0 +-.equ VPX_ARCH_PPC , 1 +-.equ ARCH_PPC , 1 +-.equ VPX_ARCH_LOONGARCH , 0 +-.equ ARCH_LOONGARCH , 0 +-.equ HAVE_NEON_ASM , 0 +-.equ HAVE_NEON , 0 +-.equ HAVE_NEON_DOTPROD , 0 +-.equ HAVE_NEON_I8MM , 0 +-.equ HAVE_SVE , 0 +-.equ HAVE_SVE2 , 0 +-.equ HAVE_MIPS32 , 0 +-.equ HAVE_DSPR2 , 0 +-.equ HAVE_MSA , 0 +-.equ HAVE_MIPS64 , 0 +-.equ HAVE_X86_ASM , 0 +-.equ HAVE_MMX , 0 +-.equ HAVE_SSE , 0 +-.equ HAVE_SSE2 , 0 +-.equ HAVE_SSE3 , 0 +-.equ HAVE_SSSE3 , 0 +-.equ HAVE_SSE4_1 , 0 +-.equ HAVE_AVX , 0 +-.equ HAVE_AVX2 , 0 +-.equ HAVE_AVX512 , 0 +-.equ HAVE_VSX , 0 +-.equ HAVE_MMI , 0 +-.equ HAVE_LSX , 0 +-.equ HAVE_LASX , 0 +-.equ HAVE_VPX_PORTS , 1 +-.equ HAVE_PTHREAD_H , 1 +-.equ HAVE_PTHREAD_SETNAME_NP , 1 +-.equ HAVE_UNISTD_H , 0 +-.equ CONFIG_DEPENDENCY_TRACKING , 1 +-.equ CONFIG_EXTERNAL_BUILD , 1 +-.equ CONFIG_INSTALL_DOCS , 0 +-.equ CONFIG_INSTALL_BINS , 1 +-.equ CONFIG_INSTALL_LIBS , 1 +-.equ CONFIG_INSTALL_SRCS , 0 +-.equ CONFIG_DEBUG , 0 +-.equ CONFIG_GPROF , 0 +-.equ CONFIG_GCOV , 0 +-.equ CONFIG_RVCT , 0 +-.equ CONFIG_GCC , 1 +-.equ CONFIG_MSVS , 0 +-.equ CONFIG_PIC , 0 +-.equ CONFIG_BIG_ENDIAN , 0 +-.equ CONFIG_CODEC_SRCS , 0 +-.equ CONFIG_DEBUG_LIBS , 0 +-.equ CONFIG_DEQUANT_TOKENS , 0 +-.equ CONFIG_DC_RECON , 0 +-.equ CONFIG_RUNTIME_CPU_DETECT , 0 +-.equ CONFIG_POSTPROC , 1 +-.equ CONFIG_VP9_POSTPROC , 1 +-.equ CONFIG_MULTITHREAD , 1 +-.equ CONFIG_INTERNAL_STATS , 0 +-.equ CONFIG_VP8_ENCODER , 1 +-.equ CONFIG_VP8_DECODER , 1 +-.equ CONFIG_VP9_ENCODER , 1 +-.equ CONFIG_VP9_DECODER , 1 +-.equ CONFIG_VP8 , 1 +-.equ CONFIG_VP9 , 1 +-.equ CONFIG_ENCODERS , 1 +-.equ CONFIG_DECODERS , 1 +-.equ CONFIG_STATIC_MSVCRT , 0 +-.equ CONFIG_SPATIAL_RESAMPLING , 1 +-.equ CONFIG_REALTIME_ONLY , 1 +-.equ CONFIG_ONTHEFLY_BITPACKING , 0 +-.equ CONFIG_ERROR_CONCEALMENT , 0 +-.equ CONFIG_SHARED , 0 +-.equ CONFIG_STATIC , 1 +-.equ CONFIG_SMALL , 0 +-.equ CONFIG_POSTPROC_VISUALIZER , 0 +-.equ CONFIG_OS_SUPPORT , 1 +-.equ CONFIG_UNIT_TESTS , 1 +-.equ CONFIG_WEBM_IO , 1 +-.equ CONFIG_LIBYUV , 0 +-.equ CONFIG_DECODE_PERF_TESTS , 0 +-.equ CONFIG_ENCODE_PERF_TESTS , 0 +-.equ CONFIG_MULTI_RES_ENCODING , 1 +-.equ CONFIG_TEMPORAL_DENOISING , 1 +-.equ CONFIG_VP9_TEMPORAL_DENOISING , 1 +-.equ CONFIG_COEFFICIENT_RANGE_CHECKING , 0 +-.equ CONFIG_VP9_HIGHBITDEPTH , 0 +-.equ CONFIG_BETTER_HW_COMPATIBILITY , 0 +-.equ CONFIG_EXPERIMENTAL , 0 +-.equ CONFIG_SIZE_LIMIT , 1 +-.equ CONFIG_ALWAYS_ADJUST_BPM , 0 +-.equ CONFIG_BITSTREAM_DEBUG , 0 +-.equ CONFIG_MISMATCH_DEBUG , 0 +-.equ CONFIG_FP_MB_STATS , 0 +-.equ CONFIG_EMULATE_HARDWARE , 0 +-.equ CONFIG_NON_GREEDY_MV , 0 +-.equ CONFIG_COLLECT_COMPONENT_TIMING , 0 +-.equ DECODE_WIDTH_LIMIT , 16384 +-.equ DECODE_HEIGHT_LIMIT , 16384 +- .section .note.GNU-stack,"",%progbits +--- chromium-147.0.7727.3/third_party/libvpx/source/config/linux/ppc64/vpx_config.h 2026/03/16 13:39:56 1.1 ++++ /dev/null +@@ -1,118 +0,0 @@ +-/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */ +-/* */ +-/* Use of this source code is governed by a BSD-style license */ +-/* that can be found in the LICENSE file in the root of the source */ +-/* tree. An additional intellectual property rights grant can be found */ +-/* in the file PATENTS. All contributing project authors may */ +-/* be found in the AUTHORS file in the root of the source tree. */ +-/* This file automatically generated by configure. Do not edit! */ +-#ifndef VPX_CONFIG_H +-#define VPX_CONFIG_H +-#define RESTRICT +-#define INLINE inline +-#define VPX_ARCH_ARM 0 +-#define ARCH_ARM 0 +-#define VPX_ARCH_AARCH64 0 +-#define ARCH_AARCH64 0 +-#define VPX_ARCH_MIPS 0 +-#define ARCH_MIPS 0 +-#define VPX_ARCH_X86 0 +-#define ARCH_X86 0 +-#define VPX_ARCH_X86_64 0 +-#define ARCH_X86_64 0 +-#define VPX_ARCH_PPC 1 +-#define ARCH_PPC 1 +-#define VPX_ARCH_LOONGARCH 0 +-#define ARCH_LOONGARCH 0 +-#define HAVE_NEON_ASM 0 +-#define HAVE_NEON 0 +-#define HAVE_NEON_DOTPROD 0 +-#define HAVE_NEON_I8MM 0 +-#define HAVE_SVE 0 +-#define HAVE_SVE2 0 +-#define HAVE_MIPS32 0 +-#define HAVE_DSPR2 0 +-#define HAVE_MSA 0 +-#define HAVE_MIPS64 0 +-#define HAVE_X86_ASM 0 +-#define HAVE_MMX 0 +-#define HAVE_SSE 0 +-#define HAVE_SSE2 0 +-#define HAVE_SSE3 0 +-#define HAVE_SSSE3 0 +-#define HAVE_SSE4_1 0 +-#define HAVE_AVX 0 +-#define HAVE_AVX2 0 +-#define HAVE_AVX512 0 +-#define HAVE_VSX 0 +-#define HAVE_MMI 0 +-#define HAVE_LSX 0 +-#define HAVE_LASX 0 +-#define HAVE_VPX_PORTS 1 +-#define HAVE_PTHREAD_H 1 +-#define HAVE_PTHREAD_SETNAME_NP 1 +-#define HAVE_UNISTD_H 0 +-#define CONFIG_DEPENDENCY_TRACKING 1 +-#define CONFIG_EXTERNAL_BUILD 1 +-#define CONFIG_INSTALL_DOCS 0 +-#define CONFIG_INSTALL_BINS 1 +-#define CONFIG_INSTALL_LIBS 1 +-#define CONFIG_INSTALL_SRCS 0 +-#define CONFIG_DEBUG 0 +-#define CONFIG_GPROF 0 +-#define CONFIG_GCOV 0 +-#define CONFIG_RVCT 0 +-#define CONFIG_GCC 1 +-#define CONFIG_MSVS 0 +-#define CONFIG_PIC 0 +-#define CONFIG_BIG_ENDIAN 0 +-#define CONFIG_CODEC_SRCS 0 +-#define CONFIG_DEBUG_LIBS 0 +-#define CONFIG_DEQUANT_TOKENS 0 +-#define CONFIG_DC_RECON 0 +-#define CONFIG_RUNTIME_CPU_DETECT 0 +-#define CONFIG_POSTPROC 1 +-#define CONFIG_VP9_POSTPROC 1 +-#define CONFIG_MULTITHREAD 1 +-#define CONFIG_INTERNAL_STATS 0 +-#define CONFIG_VP8_ENCODER 1 +-#define CONFIG_VP8_DECODER 1 +-#define CONFIG_VP9_ENCODER 1 +-#define CONFIG_VP9_DECODER 1 +-#define CONFIG_VP8 1 +-#define CONFIG_VP9 1 +-#define CONFIG_ENCODERS 1 +-#define CONFIG_DECODERS 1 +-#define CONFIG_STATIC_MSVCRT 0 +-#define CONFIG_SPATIAL_RESAMPLING 1 +-#define CONFIG_REALTIME_ONLY 1 +-#define CONFIG_ONTHEFLY_BITPACKING 0 +-#define CONFIG_ERROR_CONCEALMENT 0 +-#define CONFIG_SHARED 0 +-#define CONFIG_STATIC 1 +-#define CONFIG_SMALL 0 +-#define CONFIG_POSTPROC_VISUALIZER 0 +-#define CONFIG_OS_SUPPORT 1 +-#define CONFIG_UNIT_TESTS 1 +-#define CONFIG_WEBM_IO 1 +-#define CONFIG_LIBYUV 0 +-#define CONFIG_DECODE_PERF_TESTS 0 +-#define CONFIG_ENCODE_PERF_TESTS 0 +-#define CONFIG_MULTI_RES_ENCODING 1 +-#define CONFIG_TEMPORAL_DENOISING 1 +-#define CONFIG_VP9_TEMPORAL_DENOISING 1 +-#define CONFIG_COEFFICIENT_RANGE_CHECKING 0 +-#define CONFIG_VP9_HIGHBITDEPTH 0 +-#define CONFIG_BETTER_HW_COMPATIBILITY 0 +-#define CONFIG_EXPERIMENTAL 0 +-#define CONFIG_SIZE_LIMIT 1 +-#define CONFIG_ALWAYS_ADJUST_BPM 0 +-#define CONFIG_BITSTREAM_DEBUG 0 +-#define CONFIG_MISMATCH_DEBUG 0 +-#define CONFIG_FP_MB_STATS 0 +-#define CONFIG_EMULATE_HARDWARE 0 +-#define CONFIG_NON_GREEDY_MV 0 +-#define CONFIG_COLLECT_COMPONENT_TIMING 0 +-#define DECODE_WIDTH_LIMIT 16384 +-#define DECODE_HEIGHT_LIMIT 16384 +-#endif /* VPX_CONFIG_H */ +--- chromium-147.0.7727.3/third_party/libvpx/source/config/linux/ppc64/vpx_dsp_rtcd.h 2026/03/16 13:33:39 1.1 +++ /dev/null @@ -1,858 +0,0 @@ -/* -- * Copyright (c) 2026 The WebM project authors. All Rights Reserved. +- * Copyright (c) 2017 The WebM project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source @@ -1183,11 +1416,11 @@ -#endif - -#endif // VPX_DSP_RTCD_H_ ---- chromium-136.0.7103.48.orig/third_party/libvpx/source/config/linux/ppc64/vpx_scale_rtcd.h 2025/05/14 22:49:40 1.1 +--- chromium-147.0.7727.3/third_party/libvpx/source/config/linux/ppc64/vpx_scale_rtcd.h 2026/03/16 13:33:43 1.1 +++ /dev/null @@ -1,83 +0,0 @@ -/* -- * Copyright (c) 2026 The WebM project authors. All Rights Reserved. +- * Copyright (c) 2017 The WebM project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source @@ -1269,237 +1502,4 @@ -#endif - -#endif // VPX_SCALE_RTCD_H_ ---- chromium-146.0.7670.2/third_party/libvpx/source/config/linux/ppc64/vpx_config.asm 2026/02/18 16:24:45 1.1 -+++ /dev/null -@@ -1,109 +0,0 @@ --@ This file was created from a .asm file --@ using the ads2gas.pl script. --.syntax unified --.equ VPX_ARCH_ARM , 0 --.equ ARCH_ARM , 0 --.equ VPX_ARCH_AARCH64 , 0 --.equ ARCH_AARCH64 , 0 --.equ VPX_ARCH_MIPS , 0 --.equ ARCH_MIPS , 0 --.equ VPX_ARCH_X86 , 0 --.equ ARCH_X86 , 0 --.equ VPX_ARCH_X86_64 , 0 --.equ ARCH_X86_64 , 0 --.equ VPX_ARCH_PPC , 1 --.equ ARCH_PPC , 1 --.equ VPX_ARCH_LOONGARCH , 0 --.equ ARCH_LOONGARCH , 0 --.equ HAVE_NEON_ASM , 0 --.equ HAVE_NEON , 0 --.equ HAVE_NEON_DOTPROD , 0 --.equ HAVE_NEON_I8MM , 0 --.equ HAVE_SVE , 0 --.equ HAVE_SVE2 , 0 --.equ HAVE_MIPS32 , 0 --.equ HAVE_DSPR2 , 0 --.equ HAVE_MSA , 0 --.equ HAVE_MIPS64 , 0 --.equ HAVE_X86_ASM , 0 --.equ HAVE_MMX , 0 --.equ HAVE_SSE , 0 --.equ HAVE_SSE2 , 0 --.equ HAVE_SSE3 , 0 --.equ HAVE_SSSE3 , 0 --.equ HAVE_SSE4_1 , 0 --.equ HAVE_AVX , 0 --.equ HAVE_AVX2 , 0 --.equ HAVE_AVX512 , 0 --.equ HAVE_VSX , 0 --.equ HAVE_MMI , 0 --.equ HAVE_LSX , 0 --.equ HAVE_LASX , 0 --.equ HAVE_VPX_PORTS , 1 --.equ HAVE_PTHREAD_H , 1 --.equ HAVE_PTHREAD_SETNAME_NP , 1 --.equ HAVE_UNISTD_H , 0 --.equ CONFIG_DEPENDENCY_TRACKING , 1 --.equ CONFIG_EXTERNAL_BUILD , 1 --.equ CONFIG_INSTALL_DOCS , 0 --.equ CONFIG_INSTALL_BINS , 1 --.equ CONFIG_INSTALL_LIBS , 1 --.equ CONFIG_INSTALL_SRCS , 0 --.equ CONFIG_DEBUG , 0 --.equ CONFIG_GPROF , 0 --.equ CONFIG_GCOV , 0 --.equ CONFIG_RVCT , 0 --.equ CONFIG_GCC , 1 --.equ CONFIG_MSVS , 0 --.equ CONFIG_PIC , 0 --.equ CONFIG_BIG_ENDIAN , 0 --.equ CONFIG_CODEC_SRCS , 0 --.equ CONFIG_DEBUG_LIBS , 0 --.equ CONFIG_DEQUANT_TOKENS , 0 --.equ CONFIG_DC_RECON , 0 --.equ CONFIG_RUNTIME_CPU_DETECT , 0 --.equ CONFIG_POSTPROC , 1 --.equ CONFIG_VP9_POSTPROC , 1 --.equ CONFIG_MULTITHREAD , 1 --.equ CONFIG_INTERNAL_STATS , 0 --.equ CONFIG_VP8_ENCODER , 1 --.equ CONFIG_VP8_DECODER , 1 --.equ CONFIG_VP9_ENCODER , 1 --.equ CONFIG_VP9_DECODER , 1 --.equ CONFIG_VP8 , 1 --.equ CONFIG_VP9 , 1 --.equ CONFIG_ENCODERS , 1 --.equ CONFIG_DECODERS , 1 --.equ CONFIG_STATIC_MSVCRT , 0 --.equ CONFIG_SPATIAL_RESAMPLING , 1 --.equ CONFIG_REALTIME_ONLY , 1 --.equ CONFIG_ONTHEFLY_BITPACKING , 0 --.equ CONFIG_ERROR_CONCEALMENT , 0 --.equ CONFIG_SHARED , 0 --.equ CONFIG_STATIC , 1 --.equ CONFIG_SMALL , 0 --.equ CONFIG_POSTPROC_VISUALIZER , 0 --.equ CONFIG_OS_SUPPORT , 1 --.equ CONFIG_UNIT_TESTS , 1 --.equ CONFIG_WEBM_IO , 1 --.equ CONFIG_LIBYUV , 0 --.equ CONFIG_DECODE_PERF_TESTS , 0 --.equ CONFIG_ENCODE_PERF_TESTS , 0 --.equ CONFIG_MULTI_RES_ENCODING , 1 --.equ CONFIG_TEMPORAL_DENOISING , 1 --.equ CONFIG_VP9_TEMPORAL_DENOISING , 1 --.equ CONFIG_COEFFICIENT_RANGE_CHECKING , 0 --.equ CONFIG_VP9_HIGHBITDEPTH , 0 --.equ CONFIG_BETTER_HW_COMPATIBILITY , 0 --.equ CONFIG_EXPERIMENTAL , 0 --.equ CONFIG_SIZE_LIMIT , 1 --.equ CONFIG_ALWAYS_ADJUST_BPM , 0 --.equ CONFIG_BITSTREAM_DEBUG , 0 --.equ CONFIG_MISMATCH_DEBUG , 0 --.equ CONFIG_FP_MB_STATS , 0 --.equ CONFIG_EMULATE_HARDWARE , 0 --.equ CONFIG_NON_GREEDY_MV , 0 --.equ CONFIG_COLLECT_COMPONENT_TIMING , 0 --.equ DECODE_WIDTH_LIMIT , 16384 --.equ DECODE_HEIGHT_LIMIT , 16384 -- .section .note.GNU-stack,"",%progbits ---- chromium-146.0.7670.2/third_party/libvpx/source/config/linux/ppc64/vpx_config.h 2026/02/18 16:24:53 1.1 -+++ /dev/null -@@ -1,118 +0,0 @@ --/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */ --/* */ --/* Use of this source code is governed by a BSD-style license */ --/* that can be found in the LICENSE file in the root of the source */ --/* tree. An additional intellectual property rights grant can be found */ --/* in the file PATENTS. All contributing project authors may */ --/* be found in the AUTHORS file in the root of the source tree. */ --/* This file automatically generated by configure. Do not edit! */ --#ifndef VPX_CONFIG_H --#define VPX_CONFIG_H --#define RESTRICT --#define INLINE inline --#define VPX_ARCH_ARM 0 --#define ARCH_ARM 0 --#define VPX_ARCH_AARCH64 0 --#define ARCH_AARCH64 0 --#define VPX_ARCH_MIPS 0 --#define ARCH_MIPS 0 --#define VPX_ARCH_X86 0 --#define ARCH_X86 0 --#define VPX_ARCH_X86_64 0 --#define ARCH_X86_64 0 --#define VPX_ARCH_PPC 1 --#define ARCH_PPC 1 --#define VPX_ARCH_LOONGARCH 0 --#define ARCH_LOONGARCH 0 --#define HAVE_NEON_ASM 0 --#define HAVE_NEON 0 --#define HAVE_NEON_DOTPROD 0 --#define HAVE_NEON_I8MM 0 --#define HAVE_SVE 0 --#define HAVE_SVE2 0 --#define HAVE_MIPS32 0 --#define HAVE_DSPR2 0 --#define HAVE_MSA 0 --#define HAVE_MIPS64 0 --#define HAVE_X86_ASM 0 --#define HAVE_MMX 0 --#define HAVE_SSE 0 --#define HAVE_SSE2 0 --#define HAVE_SSE3 0 --#define HAVE_SSSE3 0 --#define HAVE_SSE4_1 0 --#define HAVE_AVX 0 --#define HAVE_AVX2 0 --#define HAVE_AVX512 0 --#define HAVE_VSX 0 --#define HAVE_MMI 0 --#define HAVE_LSX 0 --#define HAVE_LASX 0 --#define HAVE_VPX_PORTS 1 --#define HAVE_PTHREAD_H 1 --#define HAVE_PTHREAD_SETNAME_NP 1 --#define HAVE_UNISTD_H 0 --#define CONFIG_DEPENDENCY_TRACKING 1 --#define CONFIG_EXTERNAL_BUILD 1 --#define CONFIG_INSTALL_DOCS 0 --#define CONFIG_INSTALL_BINS 1 --#define CONFIG_INSTALL_LIBS 1 --#define CONFIG_INSTALL_SRCS 0 --#define CONFIG_DEBUG 0 --#define CONFIG_GPROF 0 --#define CONFIG_GCOV 0 --#define CONFIG_RVCT 0 --#define CONFIG_GCC 1 --#define CONFIG_MSVS 0 --#define CONFIG_PIC 0 --#define CONFIG_BIG_ENDIAN 0 --#define CONFIG_CODEC_SRCS 0 --#define CONFIG_DEBUG_LIBS 0 --#define CONFIG_DEQUANT_TOKENS 0 --#define CONFIG_DC_RECON 0 --#define CONFIG_RUNTIME_CPU_DETECT 0 --#define CONFIG_POSTPROC 1 --#define CONFIG_VP9_POSTPROC 1 --#define CONFIG_MULTITHREAD 1 --#define CONFIG_INTERNAL_STATS 0 --#define CONFIG_VP8_ENCODER 1 --#define CONFIG_VP8_DECODER 1 --#define CONFIG_VP9_ENCODER 1 --#define CONFIG_VP9_DECODER 1 --#define CONFIG_VP8 1 --#define CONFIG_VP9 1 --#define CONFIG_ENCODERS 1 --#define CONFIG_DECODERS 1 --#define CONFIG_STATIC_MSVCRT 0 --#define CONFIG_SPATIAL_RESAMPLING 1 --#define CONFIG_REALTIME_ONLY 1 --#define CONFIG_ONTHEFLY_BITPACKING 0 --#define CONFIG_ERROR_CONCEALMENT 0 --#define CONFIG_SHARED 0 --#define CONFIG_STATIC 1 --#define CONFIG_SMALL 0 --#define CONFIG_POSTPROC_VISUALIZER 0 --#define CONFIG_OS_SUPPORT 1 --#define CONFIG_UNIT_TESTS 1 --#define CONFIG_WEBM_IO 1 --#define CONFIG_LIBYUV 0 --#define CONFIG_DECODE_PERF_TESTS 0 --#define CONFIG_ENCODE_PERF_TESTS 0 --#define CONFIG_MULTI_RES_ENCODING 1 --#define CONFIG_TEMPORAL_DENOISING 1 --#define CONFIG_VP9_TEMPORAL_DENOISING 1 --#define CONFIG_COEFFICIENT_RANGE_CHECKING 0 --#define CONFIG_VP9_HIGHBITDEPTH 0 --#define CONFIG_BETTER_HW_COMPATIBILITY 0 --#define CONFIG_EXPERIMENTAL 0 --#define CONFIG_SIZE_LIMIT 1 --#define CONFIG_ALWAYS_ADJUST_BPM 0 --#define CONFIG_BITSTREAM_DEBUG 0 --#define CONFIG_MISMATCH_DEBUG 0 --#define CONFIG_FP_MB_STATS 0 --#define CONFIG_EMULATE_HARDWARE 0 --#define CONFIG_NON_GREEDY_MV 0 --#define CONFIG_COLLECT_COMPONENT_TIMING 0 --#define DECODE_WIDTH_LIMIT 16384 --#define DECODE_HEIGHT_LIMIT 16384 --#endif /* VPX_CONFIG_H */
