From cddcb1f93b3756e409621363c08fc732a66a07c4 Mon Sep 17 00:00:00 2001 From: Duncaen Date: Fri, 28 Oct 2022 01:01:15 +0200 Subject: [PATCH] chromium: update to 107.0.5304.87. --- ...hromium-103-VirtualCursor-std-layout.patch | 231 ++++++++++++++++++ ...utofillPopupControllerImpl-namespace.patch | 26 -- .../chromium/patches/fix-dawn-platform.patch | 62 ----- ...uild-error-on-linux-with-system-zlib.patch | 41 ++++ srcpkgs/chromium/patches/systypes.patch | 11 + .../patches/xxx-ppc64le-support.patch | 17 +- srcpkgs/chromium/template | 7 +- 7 files changed, 296 insertions(+), 99 deletions(-) create mode 100644 srcpkgs/chromium/patches/chromium-103-VirtualCursor-std-layout.patch delete mode 100644 srcpkgs/chromium/patches/chromium-106-AutofillPopupControllerImpl-namespace.patch delete mode 100644 srcpkgs/chromium/patches/fix-dawn-platform.patch create mode 100644 srcpkgs/chromium/patches/re-fix-TFLite-build-error-on-linux-with-system-zlib.patch create mode 100644 srcpkgs/chromium/patches/systypes.patch diff --git a/srcpkgs/chromium/patches/chromium-103-VirtualCursor-std-layout.patch b/srcpkgs/chromium/patches/chromium-103-VirtualCursor-std-layout.patch new file mode 100644 index 00000000000000..be0502e991bee8 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-103-VirtualCursor-std-layout.patch @@ -0,0 +1,231 @@ +From 144479ad7b4287bee4067f95e4218f614798a865 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sun, 16 Jan 2022 19:15:26 +0000 +Subject: [PATCH] sql: make VirtualCursor standard layout type + +sql::recover::VirtualCursor needs to be a standard layout type, but +has members of type std::unique_ptr. However, std::unique_ptr is not +guaranteed to be standard layout. Compiling with clang combined with +gcc-11 libstdc++ fails because of this. + +Bug: 1189788 +Change-Id: Ia6dc388cc5ef1c0f2afc75f8ca45b9f12687ca9c +--- + +diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc +index cc9420e5..f12d8fa 100644 +--- a/sql/recover_module/btree.cc ++++ b/sql/recover_module/btree.cc +@@ -136,16 +136,22 @@ + "Move the destructor to the .cc file if it's non-trival"); + #endif // !DCHECK_IS_ON() + +-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept +- : page_id_(db_reader->page_id()), +- db_reader_(db_reader), +- cell_count_(ComputeCellCount(db_reader)), +- next_read_index_(0), +- last_record_size_(0) { ++LeafPageDecoder::LeafPageDecoder() noexcept = default; ++ ++void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) { ++ page_id_ = db_reader->page_id(); ++ db_reader_ = db_reader; ++ cell_count_ = ComputeCellCount(db_reader); ++ next_read_index_ = 0; ++ last_record_size_ = 0; + DCHECK(IsOnValidPage(db_reader)); + DCHECK(DatabasePageReader::IsValidPageId(page_id_)); + } + ++void LeafPageDecoder::Reset() { ++ db_reader_ = nullptr; ++} ++ + bool LeafPageDecoder::TryAdvance() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(CanAdvance()); +diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h +index eaa087a5..df0e0c9 100644 +--- a/sql/recover_module/btree.h ++++ b/sql/recover_module/btree.h +@@ -101,9 +101,7 @@ + public: + // Creates a decoder for a DatabasePageReader's last read page. + // +- // |db_reader| must have been used to read an inner page of a table B-tree. +- // |db_reader| must outlive this instance. +- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept; ++ LeafPageDecoder() noexcept; + ~LeafPageDecoder() noexcept = default; + + LeafPageDecoder(const LeafPageDecoder&) = delete; +@@ -151,6 +149,17 @@ + // read as long as CanAdvance() returns true. + bool TryAdvance(); + ++ // Initialize with DatabasePageReader ++ // |db_reader| must have been used to read an inner page of a table B-tree. ++ // |db_reader| must outlive this instance. ++ void Initialize(DatabasePageReader* db_reader); ++ ++ // Reset internal DatabasePageReader ++ void Reset(); ++ ++ // True if DatabasePageReader is valid ++ bool IsValid() { return (db_reader_ != nullptr); } ++ + // True if the given reader may point to an inner page in a table B-tree. + // + // The last ReadPage() call on |db_reader| must have succeeded. +@@ -164,14 +173,14 @@ + static int ComputeCellCount(DatabasePageReader* db_reader); + + // The number of the B-tree page this reader is reading. +- const int64_t page_id_; ++ int64_t page_id_; + // Used to read the tree page. + // + // Raw pointer usage is acceptable because this instance's owner is expected + // to ensure that the DatabasePageReader outlives this. +- DatabasePageReader* const db_reader_; ++ DatabasePageReader* db_reader_; + // Caches the ComputeCellCount() value for this reader's page. +- const int cell_count_ = ComputeCellCount(db_reader_); ++ int cell_count_; + + // The reader's cursor state. + // +diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc +index 4f827ed..240de499 100644 +--- a/sql/recover_module/cursor.cc ++++ b/sql/recover_module/cursor.cc +@@ -28,7 +28,7 @@ + int VirtualCursor::First() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + inner_decoders_.clear(); +- leaf_decoder_ = nullptr; ++ leaf_decoder_.Reset(); + + AppendPageDecoder(table_->root_page_id()); + return Next(); +@@ -38,18 +38,18 @@ + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + record_reader_.Reset(); + +- while (!inner_decoders_.empty() || leaf_decoder_.get()) { +- if (leaf_decoder_.get()) { +- if (!leaf_decoder_->CanAdvance()) { ++ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) { ++ if (leaf_decoder_.IsValid()) { ++ if (!leaf_decoder_.CanAdvance()) { + // The leaf has been exhausted. Remove it from the DFS stack. +- leaf_decoder_ = nullptr; ++ leaf_decoder_.Reset(); + continue; + } +- if (!leaf_decoder_->TryAdvance()) ++ if (!leaf_decoder_.TryAdvance()) + continue; + +- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(), +- leaf_decoder_->last_record_offset())) { ++ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(), ++ leaf_decoder_.last_record_offset())) { + continue; + } + if (!record_reader_.Initialize()) +@@ -101,13 +101,13 @@ + int64_t VirtualCursor::RowId() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(record_reader_.IsInitialized()); +- DCHECK(leaf_decoder_.get()); +- return leaf_decoder_->last_record_rowid(); ++ DCHECK(leaf_decoder_.IsValid()); ++ return leaf_decoder_.last_record_rowid(); + } + + void VirtualCursor::AppendPageDecoder(int page_id) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- DCHECK(leaf_decoder_.get() == nullptr) ++ DCHECK(!leaf_decoder_.IsValid()) + << __func__ + << " must only be called when the current path has no leaf decoder"; + +@@ -115,7 +115,7 @@ + return; + + if (LeafPageDecoder::IsOnValidPage(&db_reader_)) { +- leaf_decoder_ = std::make_unique(&db_reader_); ++ leaf_decoder_.Initialize(&db_reader_); + return; + } + +diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h +index 845b785..cc4e85f8 100644 +--- a/sql/recover_module/cursor.h ++++ b/sql/recover_module/cursor.h +@@ -130,7 +130,7 @@ + std::vector> inner_decoders_; + + // Decodes the leaf page containing records. +- std::unique_ptr leaf_decoder_; ++ LeafPageDecoder leaf_decoder_; + + SEQUENCE_CHECKER(sequence_checker_); + }; +diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc +index 58e75de..69d98cef 100644 +--- a/sql/recover_module/pager.cc ++++ b/sql/recover_module/pager.cc +@@ -23,8 +23,7 @@ + "ints are not appropriate for representing page IDs"); + + DatabasePageReader::DatabasePageReader(VirtualTable* table) +- : page_data_(std::make_unique(table->page_size())), +- table_(table) { ++ : page_data_(table->page_size()), table_(table) { + DCHECK(table != nullptr); + DCHECK(IsValidPageSize(table->page_size())); + } +@@ -58,7 +57,7 @@ + "The |read_offset| computation above may overflow"); + + int sqlite_status = +- RawRead(sqlite_file, read_size, read_offset, page_data_.get()); ++ RawRead(sqlite_file, read_size, read_offset, page_data_.data()); + + // |page_id_| needs to be set to kInvalidPageId if the read failed. + // Otherwise, future ReadPage() calls with the previous |page_id_| value +diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h +index 07cac3cb..d08f093 100644 +--- a/sql/recover_module/pager.h ++++ b/sql/recover_module/pager.h +@@ -6,8 +6,8 @@ + #define SQL_RECOVER_MODULE_PAGER_H_ + + #include +-#include + #include ++#include + + #include "base/check_op.h" + #include "base/memory/raw_ptr.h" +@@ -72,7 +72,7 @@ + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK_NE(page_id_, kInvalidPageId) + << "Successful ReadPage() required before accessing pager state"; +- return page_data_.get(); ++ return page_data_.data(); + } + + // The number of bytes in the page read by the last ReadPage() call. +@@ -139,7 +139,7 @@ + int page_id_ = kInvalidPageId; + // Stores the bytes of the last page successfully read by ReadPage(). + // The content is undefined if the last call to ReadPage() did not succeed. +- const std::unique_ptr page_data_; ++ std::vector page_data_; + // Raw pointer usage is acceptable because this instance's owner is expected + // to ensure that the VirtualTable outlives this. + const raw_ptr table_; diff --git a/srcpkgs/chromium/patches/chromium-106-AutofillPopupControllerImpl-namespace.patch b/srcpkgs/chromium/patches/chromium-106-AutofillPopupControllerImpl-namespace.patch deleted file mode 100644 index 767e3ac89b2704..00000000000000 --- a/srcpkgs/chromium/patches/chromium-106-AutofillPopupControllerImpl-namespace.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 65d31137fc8256627daab9d7c91074fca70b5882 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Sun, 21 Aug 2022 10:27:08 +0000 -Subject: [PATCH] libstdc++: add namespace for nullptr_t in - AutofillPopupControllerImpl - ---- - chrome/browser/ui/autofill/autofill_popup_controller_impl.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chrome/browser/ui/autofill/autofill_popup_controller_impl.h b/chrome/browser/ui/autofill/autofill_popup_controller_impl.h -index 295a104..54bfa4f 100644 ---- a/chrome/browser/ui/autofill/autofill_popup_controller_impl.h -+++ b/chrome/browser/ui/autofill/autofill_popup_controller_impl.h -@@ -178,7 +178,7 @@ class AutofillPopupControllerImpl : public AutofillPopupController { - class AutofillPopupViewPtr { - public: - AutofillPopupViewPtr() = default; -- AutofillPopupViewPtr(nullptr_t) : ptr_(nullptr) {} -+ AutofillPopupViewPtr(std::nullptr_t) : ptr_(nullptr) {} - AutofillPopupViewPtr(AutofillPopupView* ptr) : ptr_(ptr) {} - - explicit operator bool() const { return ptr_; } --- -2.35.1 - diff --git a/srcpkgs/chromium/patches/fix-dawn-platform.patch b/srcpkgs/chromium/patches/fix-dawn-platform.patch deleted file mode 100644 index fbcd2706a948ca..00000000000000 --- a/srcpkgs/chromium/patches/fix-dawn-platform.patch +++ /dev/null @@ -1,62 +0,0 @@ -From f815e833c946a59620a2ca9df37a1da746f61460 Mon Sep 17 00:00:00 2001 -From: q66 -Date: Sat, 1 Oct 2022 00:21:09 +0000 -Subject: [PATCH] fix dawn build for ppc64 - ---- - third_party/dawn/src/dawn/common/Assert.cpp | 4 ++-- - third_party/dawn/src/dawn/common/Platform.h | 10 +++++----- - 2 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/third_party/dawn/src/dawn/common/Assert.cpp b/third_party/dawn/src/dawn/common/Assert.cpp -index ecc92dfc..8ee91a90 100644 ---- a/third_party/dawn/src/dawn/common/Assert.cpp -+++ b/third_party/dawn/src/dawn/common/Assert.cpp -@@ -31,9 +31,9 @@ void BreakPoint() { - __asm__ __volatile__("ebreak"); - #elif DAWN_PLATFORM_IS(MIPS) - __asm__ __volatile__("break"); --#elif DAWN_PLATFORM_IS(S390) || DAWN_PLATFORM_IS_(S390X) -+#elif DAWN_PLATFORM_IS(S390) || DAWN_PLATFORM_IS(S390X) - __asm__ __volatile__(".word 0x0001"); --#elif DAWN_PLATFORM_IS(PPC) || DAWN_PLATFORM_IS_(PPC64) -+#elif DAWN_PLATFORM_IS(PPC) || DAWN_PLATFORM_IS(PPC64) - __asm__ __volatile__("twge 2,2"); - #else - #error "Unsupported platform" -diff --git a/third_party/dawn/src/dawn/common/Platform.h b/third_party/dawn/src/dawn/common/Platform.h -index 39d5eb41..2011367d 100644 ---- a/third_party/dawn/src/dawn/common/Platform.h -+++ b/third_party/dawn/src/dawn/common/Platform.h -@@ -124,15 +124,15 @@ - #define DAWN_PLATFORM_IS_MIPS64 1 - #endif - --#elif defiend(__s390__) -+#elif defined(__s390__) - #define DAWN_PLATFORM_IS_S390 1 --#elif defiend(__s390x__) -+#elif defined(__s390x__) - #define DAWN_PLATFORM_IS_S390X 1 - --#elif defined(__PPC__) --#define DAWN_PLATFORM_IS_PPC 1 - #elif defined(__PPC64__) - #define DAWN_PLATFORM_IS_PPC64 1 -+#elif defined(__PPC__) -+#define DAWN_PLATFORM_IS_PPC 1 - - #else - #error "Unsupported platform." -@@ -149,7 +149,7 @@ - static_assert(sizeof(sizeof(char)) == 8, "Expect sizeof(size_t) == 8"); - #elif defined(DAWN_PLATFORM_IS_I386) || defined(DAWN_PLATFORM_IS_ARM32) || \ - defined(DAWN_PLATFORM_IS_RISCV32) || defined(DAWN_PLATFORM_IS_MIPS32) || \ -- defined(DAWN_PLATFORM_IS_S390) || defined(DAWN_PLATFORM_IS_PPC32) || \ -+ defined(DAWN_PLATFORM_IS_S390) || defined(DAWN_PLATFORM_IS_PPC) || \ - defined(DAWN_PLATFORM_IS_EMSCRIPTEN) - #define DAWN_PLATFORM_IS_32_BIT 1 - static_assert(sizeof(sizeof(char)) == 4, "Expect sizeof(size_t) == 4"); --- -2.34.1 - diff --git a/srcpkgs/chromium/patches/re-fix-TFLite-build-error-on-linux-with-system-zlib.patch b/srcpkgs/chromium/patches/re-fix-TFLite-build-error-on-linux-with-system-zlib.patch new file mode 100644 index 00000000000000..13d504d3e7920f --- /dev/null +++ b/srcpkgs/chromium/patches/re-fix-TFLite-build-error-on-linux-with-system-zlib.patch @@ -0,0 +1,41 @@ +From dda01a706453ded8c01c41775707cb5ef4e316f8 Mon Sep 17 00:00:00 2001 +From: Andres Salomon +Date: Tue, 25 Oct 2022 21:11:46 +0000 +Subject: [PATCH] Re-fix TFLite build error on linux when using the system zlib + +In commit ae0f9adb7e14c0d19ca695ef6ad40b321a8cb64c, I fixed some build +errors related to minizip patch inclusion in TFLite. However, after that +when TFLite Support was rolled to HEAD, a small part of that patch got +dropped. The result is the following build error with 107.0.5304.62: + +../../third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc:22:10: fatal error: 'contrib/minizip/ioapi.h' file not found + ^~~~~~~~~~~~~~~~~~~~~~~~~ +1 error generated. + +This commit re-adds the lost fix. + +R=junzou@chromium.org + +Change-Id: Ie96c3571894b5100a1e2a2771da29699eff0beb3 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3972087 +Reviewed-by: Robert Ogden +Commit-Queue: Robert Ogden +Auto-Submit: Andres Salomon +Cr-Commit-Position: refs/heads/main@{#1063478} +--- + .../metadata/cc/utils/zip_readonly_mem_file.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc +index 392b6b411fe..525ae4a2b45 100644 +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc +@@ -19,7 +19,7 @@ limitations under the License. + #include + + #include "absl/strings/string_view.h" // from @com_google_absl +-#include "contrib/minizip/ioapi.h" ++#include "third_party/zlib/contrib/minizip/ioapi.h" + + namespace tflite { + namespace metadata { diff --git a/srcpkgs/chromium/patches/systypes.patch b/srcpkgs/chromium/patches/systypes.patch new file mode 100644 index 00000000000000..1ccebbd2f2b318 --- /dev/null +++ b/srcpkgs/chromium/patches/systypes.patch @@ -0,0 +1,11 @@ +--- a/base/third_party/symbolize/symbolize.h ++++ b/base/third_party/symbolize/symbolize.h +@@ -58,6 +58,8 @@ + #include "config.h" + #include "glog/logging.h" + ++#include ++ + #ifdef HAVE_SYMBOLIZE + + #if defined(__ELF__) // defined by gcc diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch index 475a0067cbfd3f..9c9d1a39a4e953 100644 --- a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch +++ b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch @@ -3362,10 +3362,10 @@ diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn index 9b065bd..df3af02 100644 --- a/third_party/libaom/BUILD.gn +++ b/third_party/libaom/BUILD.gn -@@ -36,6 +36,8 @@ if (enable_libaom) { - } else { - cpu_arch_full = "arm" - } +@@ -40,6 +40,8 @@ + cpu_arch_full = "generic" + } else if (current_cpu == "loong64") { + cpu_arch_full = "generic" +} else if (current_cpu == "ppc64") { + cpu_arch_full = "generic" } else { @@ -3570,13 +3570,12 @@ diff --git a/ui/gl/features.gni b/ui/gl/features.gni index 5fda9b6..3d2dd8b 100644 --- a/ui/gl/features.gni +++ b/ui/gl/features.gni -@@ -32,5 +32,6 @@ declare_args() { - (is_mac && use_egl) || is_chromeos_ash || is_fuchsia) && +@@ -32,5 +32,5 @@ (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm" || target_cpu == "arm64" || -- target_cpu == "mipsel" || target_cpu == "mips64el") -+ target_cpu == "mipsel" || target_cpu == "mips64el" || -+ target_cpu == "ppc64") + target_cpu == "mipsel" || target_cpu == "mips64el" || +- target_cpu == "riscv64") ++ target_cpu == "riscv64" || target_cpu == "ppc64") } diff --git a/v8/test/BUILD.gn b/v8/test/BUILD.gn index fb872ad39..45fc585dd 100644 diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template index 1b9a18c2af01e9..ca662ab935b784 100644 --- a/srcpkgs/chromium/template +++ b/srcpkgs/chromium/template @@ -1,7 +1,7 @@ # Template file for 'chromium' pkgname=chromium # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version -version=106.0.5249.103 +version=107.0.5304.87 revision=1 archs="i686* x86_64* aarch64* armv7l* ppc64le*" short_desc="Google's attempt at creating a safer, faster, and more stable browser" @@ -9,7 +9,7 @@ maintainer="Duncaen " license="BSD-3-Clause" homepage="https://www.chromium.org/" distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz" -checksum=225f669e5aafc4d9367370f63ed421bfad78ed359bf1ff13ffbcb66a181c4e4c +checksum=6c0e00c186e22a1be29177ea410ba40ff0bf65f3ded67a345eb5b17f76c93c59 lib32disabled=yes @@ -234,8 +234,11 @@ do_configure() { 'enable_hangout_services_extension=true' 'use_system_harfbuzz=false' + 'use_system_libwayland_server=true' 'use_system_wayland_scanner=true' + 'use_qt=false' + 'use_cups=true' "use_vaapi=$(vopt_if vaapi true false)"