Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package chromium for openSUSE:Factory checked in at 2021-12-24 20:23:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/chromium (Old) and /work/SRC/openSUSE:Factory/.chromium.new.2520 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chromium" Fri Dec 24 20:23:17 2021 rev:312 rq:942340 version:96.0.4664.110 Changes: -------- --- /work/SRC/openSUSE:Factory/chromium/chromium.changes 2021-12-16 21:20:41.794552844 +0100 +++ /work/SRC/openSUSE:Factory/.chromium.new.2520/chromium.changes 2021-12-24 20:23:36.938033112 +0100 @@ -1,0 +2,11 @@ +Fri Dec 24 11:24:13 UTC 2021 - Callum Farmer <gm...@opensuse.org> + +- Added patches: + * chromium-96-freetype-unbundle.patch + * chromium-96-EnumTable-crash.patch +- Unbundle freetype on TW +- Unbundle icu on 15.4 +- Disable lto and update _constraints on aarch64 +- Remove MEIPreload: it gets installed through component updater + +------------------------------------------------------------------- New: ---- chromium-96-EnumTable-crash.patch chromium-96-freetype-unbundle.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ chromium.spec ++++++ --- /var/tmp/diff_new_pack.jJUiGD/_old 2021-12-24 20:23:41.146035317 +0100 +++ /var/tmp/diff_new_pack.jJUiGD/_new 2021-12-24 20:23:41.150035319 +0100 @@ -20,12 +20,10 @@ %define outputdir ${TMPOUT} # bsc#1108175 %define __provides_exclude ^lib.*\\.so.*$ -%if 0%{?suse_version} >= 1550 +%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400 %bcond_without system_icu -%bcond_with system_vpx %else %bcond_with system_icu -%bcond_with system_vpx %endif %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150200 %bcond_without pipewire @@ -34,18 +32,21 @@ %endif %bcond_without system_ffmpeg %bcond_without system_zlib -%bcond_with system_freetype -%ifarch %{arm} aarch64 +%bcond_with system_vpx +%ifarch aarch64 %bcond_with swiftshader +%bcond_with lto %else %bcond_without swiftshader +%bcond_without lto %endif %if 0%{?suse_version} >= 1550 %bcond_without system_harfbuzz +%bcond_without system_freetype %else %bcond_with system_harfbuzz +%bcond_with system_freetype %endif -%bcond_without lto %bcond_with clang Name: chromium Version: 96.0.4664.110 @@ -104,6 +105,8 @@ Patch74: chromium-96-RestrictedCookieManager-tuple.patch Patch75: chromium-96-DrmRenderNodePathFinder-include.patch Patch76: chromium-96-CouponDB-include.patch +Patch77: chromium-96-freetype-unbundle.patch +Patch78: chromium-96-EnumTable-crash.patch # Google seem not too keen on merging this but GPU accel is quite important # https://chromium-review.googlesource.com/c/chromium/src/+/532294 # https://github.com/saiarcot895/chromium-ubuntu-build/tree/master/debian/patches @@ -269,7 +272,10 @@ BuildRequires: lld12 BuildRequires: llvm12 %else +#!BuildIgnore: gcc BuildRequires: clang +BuildRequires: gcc10 +BuildRequires: libstdc++6-devel-gcc10 BuildRequires: lld BuildRequires: llvm %endif @@ -743,9 +749,11 @@ %endif %if %{with clang} myconf_gn+=" is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false" +%if %{with lto} && %{with clang} %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150300 myconf_gn+=" use_thin_lto=true" %endif +%endif myconf_gn+=" use_lld=true" %else myconf_gn+=" is_clang=false" ++++++ INSTALL.sh ++++++ --- /var/tmp/diff_new_pack.jJUiGD/_old 2021-12-24 20:23:41.174035331 +0100 +++ /var/tmp/diff_new_pack.jJUiGD/_new 2021-12-24 20:23:41.182035336 +0100 @@ -53,13 +53,6 @@ cp -a {} "${STAGEDIR}/${INSTALLDIR}/locales/" \; find "${STAGEDIR}/${INSTALLDIR}/locales" -type f -print -exec chmod 644 {} \; -# MEI Preload -if [ -f "${OUTPUTDIR}/MEIPreload/manifest.json" ]; then - install -m 755 -d "${STAGEDIR}/${INSTALLDIR}/MEIPreload/" - install -m 644 "${OUTPUTDIR}/MEIPreload/manifest.json" "${STAGEDIR}/${INSTALLDIR}/MEIPreload/" - install -m 644 "${OUTPUTDIR}/MEIPreload/preloaded_data.pb" "${STAGEDIR}/${INSTALLDIR}/MEIPreload/" -fi - # ANGLE if [ -f "${OUTPUTDIR}/libEGL.so" ]; then for file in libEGL.so libGLESv2.so; ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.jJUiGD/_old 2021-12-24 20:23:41.222035356 +0100 +++ /var/tmp/diff_new_pack.jJUiGD/_new 2021-12-24 20:23:41.226035359 +0100 @@ -26,6 +26,9 @@ <cpu> <flag>asimdrdm</flag> </cpu> + <memory> + <size unit="G">12</size> + </memory> </hardware> </overwrite> </constraints> ++++++ chromium-96-EnumTable-crash.patch ++++++ diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h index aad9e08..2f3fcad 100644 --- a/components/cast_channel/enum_table.h +++ b/components/cast_channel/enum_table.h @@ -8,6 +8,7 @@ #include <cstdint> #include <cstring> #include <ostream> +#include <vector> #include "base/check_op.h" #include "base/macros.h" @@ -188,7 +189,6 @@ class inline constexpr GenericEnumTableEntry(int32_t value); inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str); - GenericEnumTableEntry(const GenericEnumTableEntry&) = delete; GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete; private: @@ -254,7 +254,6 @@ class EnumTable { constexpr Entry(E value, base::StringPiece str) : GenericEnumTableEntry(static_cast<int32_t>(value), str) {} - Entry(const Entry&) = delete; Entry& operator=(const Entry&) = delete; }; @@ -313,15 +312,14 @@ class EnumTable { if (is_sorted_) { const std::size_t index = static_cast<std::size_t>(value); if (ANALYZER_ASSUME_TRUE(index < data_.size())) { - const auto& entry = data_.begin()[index]; + const auto& entry = data_[index]; if (ANALYZER_ASSUME_TRUE(entry.has_str())) return entry.str(); } return absl::nullopt; } return GenericEnumTableEntry::FindByValue( - reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()), - data_.size(), static_cast<int32_t>(value)); + &data_[0], data_.size(), static_cast<int32_t>(value)); } // This overload of GetString is designed for cases where the argument is a @@ -349,8 +347,7 @@ class EnumTable { // enum value directly. absl::optional<E> GetEnum(base::StringPiece str) const { auto* entry = GenericEnumTableEntry::FindByString( - reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()), - data_.size(), str); + &data_[0], data_.size(), str); return entry ? static_cast<E>(entry->value) : absl::optional<E>(); } @@ -365,7 +362,7 @@ class EnumTable { // Align the data on a cache line boundary. alignas(64) #endif - std::initializer_list<Entry> data_; + const std::vector<Entry> data_; bool is_sorted_; constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted) @@ -377,8 +374,8 @@ class EnumTable { for (std::size_t i = 0; i < data.size(); i++) { for (std::size_t j = i + 1; j < data.size(); j++) { - const Entry& ei = data.begin()[i]; - const Entry& ej = data.begin()[j]; + const Entry& ei = data[i]; + const Entry& ej = data[j]; DCHECK(ei.value != ej.value) << "Found duplicate enum values at indices " << i << " and " << j; DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str())) ++++++ chromium-96-freetype-unbundle.patch ++++++ --- a/build/linux/BUILD.gn +++ b/build/linux/BUILD.gn @@ -23,6 +23,7 @@ # the system, use with caution,for details see build/config/freetype/BUILD.gn. pkg_config("freetype_from_pkgconfig") { visibility = [ + "//build/config/freetype:freetype", "//third_party:freetype_harfbuzz", "//third_party/harfbuzz-ng:harfbuzz_source", ]