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-08-04 22:28:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/chromium (Old) and /work/SRC/openSUSE:Factory/.chromium.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chromium" Wed Aug 4 22:28:24 2021 rev:300 rq:909629 version:92.0.4515.107 Changes: -------- --- /work/SRC/openSUSE:Factory/chromium/chromium.changes 2021-07-21 19:06:23.491292683 +0200 +++ /work/SRC/openSUSE:Factory/.chromium.new.1899/chromium.changes 2021-08-04 22:28:52.293802960 +0200 @@ -1,0 +2,41 @@ +Sun Aug 1 11:14:20 UTC 2021 - Callum Farmer <gm...@opensuse.org> + +- Chromium 92.0.4515.107 (boo#1188590) + * CVE-2021-30565: Out of bounds write in Tab Groups + * CVE-2021-30566: Stack buffer overflow in Printing + * CVE-2021-30567: Use after free in DevTools + * CVE-2021-30568: Heap buffer overflow in WebGL + * CVE-2021-30569: Use after free in sqlite + * CVE-2021-30571: Insufficient policy enforcement in DevTools + * CVE-2021-30572: Use after free in Autofill + * CVE-2021-30573: Use after free in GPU + * CVE-2021-30574: Use after free in protocol handling + * CVE-2021-30575: Out of bounds read in Autofill + * CVE-2021-30576: Use after free in DevTools + * CVE-2021-30577: Insufficient policy enforcement in Installer + * CVE-2021-30578: Uninitialized Use in Media + * CVE-2021-30579: Use after free in UI framework + * CVE-2021-30581: Use after free in DevTools + * CVE-2021-30582: Inappropriate implementation in Animation + * CVE-2021-30584: Incorrect security UI in Downloads + * CVE-2021-30585: Use after free in sensor handling + * CVE-2021-30588: Type Confusion in V8 + * CVE-2021-30589: Insufficient validation of untrusted input in Sharing +- Switched from GCC+LTO to Clang+ThinLTO due to errors +- Removed patches: + * chromium-90-compiler.patch + * chromium-89-EnumTable-crash.patch + * chromium-86-ConsumeDurationNumber-constexpr.patch + * chromium-lp152-missing-includes.patch + * chromium-91-GCC_fix_vector_types_in_pcscan.patch + * chromium-91-system-icu.patch + * chromium-91-1190561-boo1186948.patch +- Added patches: + * chromium-91-compiler.patch + * chromium-92-EnumTable-crash.patch + * chromium-92-v8-constexpr.patch + * chromium-92-GetUsableSize-nullptr.patch + * chromium-freetype-2.11.patch + * chromium-clang-nomerge.patch + +------------------------------------------------------------------- Old: ---- chromium-86-ConsumeDurationNumber-constexpr.patch chromium-89-EnumTable-crash.patch chromium-90-compiler.patch chromium-91-1190561-boo1186948.patch chromium-91-GCC_fix_vector_types_in_pcscan.patch chromium-91-system-icu.patch chromium-91.0.4472.164.tar.xz chromium-lp152-missing-includes.patch New: ---- chromium-91-compiler.patch chromium-92-EnumTable-crash.patch chromium-92-GetUsableSize-nullptr.patch chromium-92-v8-constexpr.patch chromium-92.0.4515.107.tar.xz chromium-clang-nomerge.patch chromium-freetype-2.11.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ chromium.spec ++++++ --- /var/tmp/diff_new_pack.UG2IAq/_old 2021-08-04 22:29:00.929792426 +0200 +++ /var/tmp/diff_new_pack.UG2IAq/_new 2021-08-04 22:29:00.933792422 +0200 @@ -15,7 +15,15 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # - +%if "%{?suse_version}" >= "1550" +%define clang_version %{nil} +%endif +%if "%{?sle_version}" >= "150300" +%define clang_version 11 +%endif +%if "%{?sle_version}" == "150200" +%define clang_version 9 +%endif %define rname chromium # bsc#1108175 %define __provides_exclude ^lib.*\\.so.*$ @@ -38,18 +46,10 @@ %else %bcond_without swiftshader %endif -%ifarch x86_64 -%if %{?suse_version} > 1500 -%bcond_without lto -%else %bcond_with lto -%endif -%else -%bcond_with lto -%endif -%bcond_with clang +%bcond_without clang Name: chromium -Version: 91.0.4472.164 +Version: 92.0.4515.107 Release: 0 Summary: Google's open source browser project License: BSD-3-Clause AND LGPL-2.1-or-later @@ -84,27 +84,26 @@ # gentoo/fedora/arch patchset Patch12: chromium-78-protobuf-RepeatedPtrField-export.patch Patch13: chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch -Patch15: chromium-90-compiler.patch -Patch16: chromium-86-ConsumeDurationNumber-constexpr.patch +Patch15: chromium-91-compiler.patch Patch17: chromium-86-ImageMemoryBarrierData-init.patch Patch18: chromium-86-nearby-explicit.patch Patch19: chromium-86-nearby-include.patch Patch20: chromium-86-f_seal.patch Patch21: chromium-gcc11.patch -Patch22: chromium-lp152-missing-includes.patch Patch23: chromium-glibc-2.33.patch Patch25: chromium-90-fseal.patch -Patch29: chromium-89-EnumTable-crash.patch +Patch29: chromium-92-EnumTable-crash.patch Patch30: chromium-shim_headers.patch Patch31: chromium-89-missing-cstring-header.patch Patch33: chromium-88-gcc-fix-swiftshader-libEGL-visibility.patch Patch36: chromium-90-ruy-include.patch Patch40: chromium-91-java-only-allowed-in-android-builds.patch -Patch41: chromium-91-GCC_fix_vector_types_in_pcscan.patch -Patch42: chromium-91-system-icu.patch Patch44: chromium-91-libyuv-aarch64.patch -Patch45: chromium-91-1190561-boo1186948.patch Patch46: chromium-91-sql-standard-layout-type.patch +Patch47: chromium-92-v8-constexpr.patch +Patch48: chromium-92-GetUsableSize-nullptr.patch +Patch49: chromium-freetype-2.11.patch +Patch50: chromium-clang-nomerge.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 @@ -115,7 +114,6 @@ # PATCH-FIX-SUSE: allow prop codecs to be set with chromium branding Patch102: chromium-prop-codecs.patch BuildRequires: SDL-devel -BuildRequires: binutils-gold BuildRequires: bison BuildRequires: cups-devel BuildRequires: desktop-file-utils @@ -181,7 +179,6 @@ BuildRequires: pkgconfig(libpci) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libssl) -BuildRequires: pkgconfig(libtcmalloc) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(libusb-1.0) BuildRequires: pkgconfig(libva) @@ -231,17 +228,17 @@ Provides: chromium-based-browser = %{version} Provides: chromium-browser = %{version} Provides: web_browser +Provides: %{name}-suid-helper = %{version} Obsoletes: %{name}-suid-helper < %{version} Obsoletes: chromium-browser < %{version} -Provides: %{name}-suid-helper = %{version} -Obsoletes: chromium-beta-desktop-gnome -Obsoletes: chromium-beta-desktop-kde -Obsoletes: chromium-desktop-gnome -Obsoletes: chromium-desktop-kde -Obsoletes: chromium-dev-desktop-gnome -Obsoletes: chromium-dev-desktop-kde -Obsoletes: chromium-ffmpeg -Obsoletes: chromium-ffmpegsumo +Obsoletes: chromium-beta-desktop-gnome < %{version} +Obsoletes: chromium-beta-desktop-kde < %{version} +Obsoletes: chromium-desktop-gnome < %{version} +Obsoletes: chromium-desktop-kde < %{version} +Obsoletes: chromium-dev-desktop-gnome < %{version} +Obsoletes: chromium-dev-desktop-kde < %{version} +Obsoletes: chromium-ffmpeg < %{version} +Obsoletes: chromium-ffmpegsumo < %{version} # no 32bit supported and it takes ages to build ExcludeArch: %{ix86} %{arm} ppc ppc64 ppc64le s390 s390x %if 0%{?suse_version} <= 1500 @@ -261,8 +258,11 @@ BuildRequires: pkgconfig(vpx) >= 1.8.2 %endif %if %{with clang} -BuildRequires: clang >= 5.0.0 +BuildRequires: clang%{clang_version} +BuildRequires: lld%{clang_version} +BuildRequires: llvm%{clang_version} %else +BuildRequires: binutils-gold %if %{?suse_version} > 1500 BuildRequires: gcc >= 10 BuildRequires: gcc-c++ >= 10 @@ -314,6 +314,7 @@ buildtools/third_party/libc++ buildtools/third_party/libc++abi buildtools/third_party/libunwind + buildtools/third_party/eu-strip chrome/third_party/mozilla_security_manager courgette/third_party net/third_party/mozilla_security_manager @@ -369,7 +370,7 @@ third_party/devtools-frontend/src/front_end/third_party/axe-core third_party/devtools-frontend/src/front_end/third_party/chromium third_party/devtools-frontend/src/front_end/third_party/codemirror - third_party/devtools-frontend/src/front_end/third_party/fabricjs + third_party/devtools-frontend/src/front_end/third_party/diff third_party/devtools-frontend/src/front_end/third_party/i18n third_party/devtools-frontend/src/front_end/third_party/intl-messageformat third_party/devtools-frontend/src/front_end/third_party/lighthouse @@ -441,7 +442,6 @@ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2 third_party/one_euro_filter third_party/opencv - third_party/openh264 third_party/openscreen third_party/openscreen/src/third_party/mozilla third_party/openscreen/src/third_party/tinycbor/src/src @@ -487,7 +487,6 @@ third_party/swiftshader/third_party/marl third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1 third_party/swiftshader/third_party/subzero - third_party/tcmalloc third_party/tensorflow-text third_party/tflite third_party/tflite/src/third_party/eigen3 @@ -552,12 +551,29 @@ %if %{with clang} export CC=clang export CXX=clang++ +export AR=llvm-ar +export NM=llvm-nm %else +export AR=ar +export NM=nm +%if 0%{?suse_version} <= 1500 +mkdir -p "$HOME/bin/" +export CC=gcc-10 +export CXX=g++-10 +# some still call gcc/g++ +ln -sfn %{_bindir}/$CC $HOME/bin/gcc +ln -sfn %{_bindir}/$CXX $HOME/bin/g++ +export PATH="$HOME/bin/:$PATH" +%else +export CC=gcc +export CXX=g++ +%endif +%endif # REDUCE DEBUG as it gets TOO large ARCH_FLAGS="`echo %{optflags} | sed -e 's/^-g / /g' -e 's/ -g / /g' -e 's/ -g$//g'`" export CXXFLAGS="${ARCH_FLAGS} -Wno-return-type" # extra flags to reduce warnings that aren't very useful -export CXXFLAGS="${CXXFLAGS} -Wno-pedantic -Wno-unused-result -Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -Wno-deprecated-declarations" +export CXXFLAGS="${CXXFLAGS} -Wno-pedantic -Wno-unused-result -Wno-unused-function -Wno-unused-variable -Wno-deprecated-declarations" # ignore warnings for minor mistakes that are too common export CXXFLAGS="${CXXFLAGS} -Wno-return-type -Wno-parentheses -Wno-misleading-indentation" # ignore warnings that are not supported well until gcc 8 @@ -565,31 +581,31 @@ # ignore warnings due to gcc bug (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84055) export CXXFLAGS="${CXXFLAGS} -Wno-ignored-attributes" # ingore new gcc 8 warnings that aren't yet handled upstream -export CXXFLAGS="${CXXFLAGS} -Wno-address -Wno-dangling-else -Wno-packed-not-aligned" +export CXXFLAGS="${CXXFLAGS} -Wno-address -Wno-dangling-else" # for wayland export CXXFLAGS="${CXXFLAGS} -I/usr/include/wayland -I/usr/include/libxkbcommon" %ifarch aarch64 +%if %{without clang} export CXXFLAGS="${CXXFLAGS} -flax-vector-conversions" +%else +%if "%{?sle_version}" == "150200" +export CXXFLAGS="${CXXFLAGS} -flax-vector-conversions" +%else +export CXXFLAGS="${CXXFLAGS} -flax-vector-conversions=all" +%endif %endif -export CFLAGS="${CXXFLAGS}" -export CXXFLAGS="${CXXFLAGS} -Wno-subobject-linkage -Wno-class-memaccess -Wno-invalid-offsetof -fpermissive" -export CC=gcc -export CXX=g++ -export AR=ar -export NM=nm -%if 0%{?suse_version} <= 1500 -mkdir -p "$HOME/bin/" -export CC=gcc-10 -export CXX=g++-10 -# some still call gcc/g++ -ln -sfn %{_bindir}/$CC $HOME/bin/gcc -ln -sfn %{_bindir}/$CXX $HOME/bin/g++ -export PATH="$HOME/bin/:$PATH" %endif +%if %{without clang} +export CXXFLAGS="${CXXFLAGS} -Wno-unused-but-set-variable -Wno-packed-not-aligned" +%endif +export CFLAGS="${CXXFLAGS}" +%if %{without clang} +export CXXFLAGS="${CXXFLAGS} -Wno-subobject-linkage -Wno-class-memaccess" %endif +export CXXFLAGS="${CXXFLAGS} -Wno-invalid-offsetof -fpermissive" # do not eat all memory %limit_build -m 2600 -%if %{with lto} +%if %{with lto} && %{without clang} # reduce the threads for linking even more due to LTO eating ton of memory _link_threads=$(((%{jobs} - 2))) test "$_link_threads" -le 0 && _link_threads=1 @@ -634,6 +650,10 @@ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" myconf_gn+=" use_custom_libcxx=false" +%ifarch x86_64 +myconf_gn+=" target_cpu=\"x64\"" +%endif +myconf_gn+=" target_os=\"linux\"" myconf_gn+=" is_debug=false" myconf_gn+=" enable_nacl=false" %if %{with swiftshader} @@ -642,7 +662,6 @@ myconf_gn+=" is_component_ffmpeg=true" myconf_gn+=" use_cups=true" myconf_gn+=" use_aura=true" -myconf_gn+=" concurrent_links=1" myconf_gn+=" symbol_level=1" myconf_gn+=" blink_symbol_level=0" myconf_gn+=" use_kerberos=true" @@ -653,18 +672,19 @@ myconf_gn+=" is_component_build=false" myconf_gn+=" use_sysroot=false" myconf_gn+=" fatal_linker_warnings=false" -# Current tcmalloc does not support AArch64 -myconf_gn+=" use_allocator=\"tcmalloc\"" +myconf_gn+=" use_allocator=\"partition\"" +myconf_gn+=" use_allocator_shim=true" +myconf_gn+=" use_partition_alloc=true" myconf_gn+=" fieldtrial_testing_like_official_build=true" -myconf_gn+=" use_gold=true" myconf_gn+=" use_gnome_keyring=false" myconf_gn+=" use_unofficial_version_number=false" -myconf_gn+=" use_lld=false" myconf_gn+=" use_vaapi=true" myconf_gn+=" use_sysroot=false" myconf_gn+=" treat_warnings_as_errors=false" myconf_gn+=" enable_widevine=true" myconf_gn+=" use_dbus=true" +myconf_gn+=" media_use_openh264=false" +myconf_gn+=" rtc_use_h264=false" # See dependency logic in third_party/BUILD.gn %if %{with system_harfbuzz} myconf_gn+=" use_system_harfbuzz=true" @@ -678,8 +698,13 @@ %endif %if %{with clang} myconf_gn+=" is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false" +%if "%{?suse_version}" >= "1550" || "%{?sle_version}" >= "150300" +myconf_gn+=" use_thin_lto=true" +%endif +myconf_gn+=" use_lld=true" %else myconf_gn+=" is_clang=false" +myconf_gn+=" use_gold=true" %endif %if %{with lto} myconf_gn+=" gcc_lto=true" @@ -796,7 +821,7 @@ # link to browser plugin path. Plugin patch doesn't work. Why? mkdir -p %{buildroot}%{_libdir}/browser-plugins pushd %{buildroot}%{_libdir}/chromium -ln -s ../browser-plugins plugins +ln -s %{_libdir}/browser-plugins %{buildroot}%{_libdir}/chromium/plugins popd # Install the master_preferences file @@ -809,7 +834,7 @@ sed -i "s|@@PACKAGE@@|chromium|g" %{buildroot}%{_mandir}/man1/chromium.1 sed -i "s|@@MENUNAME@@|Chromium|g" %{buildroot}%{_mandir}/man1/chromium.1 -%fdupes %{buildroot} +%fdupes -s %{buildroot} %files %license LICENSE @@ -818,17 +843,11 @@ %config(noreplace) %{_sysconfdir}/default/chromium %dir %{_datadir}/gnome-control-center %dir %{_datadir}/gnome-control-center/default-apps -%{_libdir}/chromium/ -%if %{with swiftshader} -%dir %{_libdir}/chromium/swiftshader/ -%{_libdir}/chromium/swiftshader/*.so -%endif -%{_libdir}/chromium/*.so +%{_datadir}/gnome-control-center/default-apps/chromium-browser.xml +%{_libdir}/chromium %{_datadir}/applications/*.desktop -%dir %{_datadir}/metainfo/ %{_datadir}/metainfo/chromium-browser.appdata.xml -%{_datadir}/gnome-control-center/default-apps/chromium-browser.xml -%{_datadir}/icons/hicolor/ +%{_datadir}/icons/hicolor %exclude %{_libdir}/chromium/chromedriver %{_bindir}/chromium %{_mandir}/man1/chromium.1%{?ext_man} ++++++ chromium-86-ImageMemoryBarrierData-init.patch ++++++ --- /var/tmp/diff_new_pack.UG2IAq/_old 2021-08-04 22:29:00.973792372 +0200 +++ /var/tmp/diff_new_pack.UG2IAq/_new 2021-08-04 22:29:00.973792372 +0200 @@ -21,7 +21,7 @@ struct ImageMemoryBarrierData { -- char name[40]; +- char name[44]; + const char *name; // The Vk layout corresponding to the ImageLayout key. ++++++ chromium-90-compiler.patch -> chromium-91-compiler.patch ++++++ --- /work/SRC/openSUSE:Factory/chromium/chromium-90-compiler.patch 2021-05-10 15:39:19.161579142 +0200 +++ /work/SRC/openSUSE:Factory/.chromium.new.1899/chromium-91-compiler.patch 2021-08-04 22:28:36.629822187 +0200 @@ -1,6 +1,6 @@ From f4d0b0eb899005b4b8b6388e1d8bb82cc0018fc8 Mon Sep 17 00:00:00 2001 From: Mike Gilbert <flop...@gentoo.org> -Date: Tue, 13 Apr 2021 07:59:41 +0000 +Date: Wed, 7 Apr 2021 08:50:04 +0000 Subject: [PATCH] Disable various compiler configs --- @@ -8,10 +8,10 @@ 1 file changed, 17 insertions(+), 42 deletions(-) diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index 2166af0..90ad0c1 100644 +index 72ea590..539672d 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -267,8 +267,6 @@ config("compiler") { +@@ -273,8 +273,6 @@ config("compiler") { configs += [ # See the definitions below. @@ -20,7 +20,7 @@ ":compiler_codegen", ":compiler_deterministic", ] -@@ -509,24 +507,6 @@ config("compiler") { +@@ -518,24 +516,6 @@ config("compiler") { ldflags += [ "-Wl,-z,keep-text-section-prefix" ] } @@ -45,7 +45,7 @@ # C11/C++11 compiler flags setup. # --------------------------- if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || -@@ -1640,7 +1620,7 @@ config("chromium_code") { +@@ -1643,7 +1623,7 @@ config("chromium_code") { defines = [ "_HAS_NODISCARD" ] } } else { @@ -54,7 +54,7 @@ if (treat_warnings_as_errors) { cflags += [ "-Werror" ] -@@ -1649,10 +1629,6 @@ config("chromium_code") { +@@ -1652,10 +1632,6 @@ config("chromium_code") { # well. ldflags = [ "-Werror" ] } @@ -65,7 +65,7 @@ # In Chromium code, we define __STDC_foo_MACROS in order to get the # C99 macros on Mac and Linux. -@@ -1661,15 +1637,6 @@ config("chromium_code") { +@@ -1664,15 +1640,6 @@ config("chromium_code") { "__STDC_FORMAT_MACROS", ] @@ -81,7 +81,7 @@ if (is_mac) { cflags_objc = [ "-Wobjc-missing-property-synthesis" ] cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] -@@ -2069,7 +2036,8 @@ config("default_stack_frames") { +@@ -2068,7 +2035,8 @@ config("default_stack_frames") { } # Default "optimization on" config. @@ -91,7 +91,7 @@ if (is_win) { if (chrome_pgo_phase != 2) { # Favor size over speed, /O1 must be before the common flags. -@@ -2104,7 +2072,8 @@ config("optimize") { +@@ -2103,7 +2071,8 @@ config("optimize") { } # Turn off optimizations. @@ -101,7 +101,7 @@ if (is_win) { cflags = [ "/Od", # Disable optimization. -@@ -2144,7 +2113,8 @@ config("no_optimize") { +@@ -2143,7 +2112,8 @@ config("no_optimize") { # Turns up the optimization level. On Windows, this implies whole program # optimization and link-time code generation which is very expensive and should # be used sparingly. @@ -111,7 +111,7 @@ if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -2176,7 +2146,8 @@ config("optimize_max") { +@@ -2175,7 +2145,8 @@ config("optimize_max") { # # TODO(crbug.com/621335) - rework how all of these configs are related # so that we don't need this disclaimer. @@ -121,7 +121,7 @@ if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -2201,7 +2172,8 @@ config("optimize_speed") { +@@ -2200,7 +2171,8 @@ config("optimize_speed") { } } @@ -131,7 +131,7 @@ cflags = [ "-O1" ] + common_optimize_on_cflags ldflags = common_optimize_on_ldflags visibility = [ ":default_optimization" ] -@@ -2320,7 +2292,8 @@ config("win_pdbaltpath") { +@@ -2319,7 +2291,8 @@ config("win_pdbaltpath") { } # Full symbols. @@ -141,7 +141,7 @@ if (is_win) { if (is_clang) { cflags = [ "/Z7" ] # Debug information in the .obj files. -@@ -2423,7 +2396,8 @@ config("symbols") { +@@ -2422,7 +2395,8 @@ config("symbols") { # Minimal symbols. # This config guarantees to hold symbol for stack trace which are shown to user # when crash happens in unittests running on buildbot. @@ -151,7 +151,7 @@ if (is_win) { # Functions, files, and line tables only. cflags = [] -@@ -2482,7 +2456,8 @@ config("minimal_symbols") { +@@ -2481,7 +2455,8 @@ config("minimal_symbols") { # This configuration contains function names only. That is, the compiler is # told to not generate debug information and the linker then just puts function # names in the final debug information. ++++++ chromium-89-EnumTable-crash.patch -> chromium-92-EnumTable-crash.patch ++++++ --- /work/SRC/openSUSE:Factory/chromium/chromium-89-EnumTable-crash.patch 2021-03-10 08:49:53.998433458 +0100 +++ /work/SRC/openSUSE:Factory/.chromium.new.1899/chromium-92-EnumTable-crash.patch 2021-08-04 22:28:36.637822177 +0200 @@ -30,7 +30,7 @@ if (ANALYZER_ASSUME_TRUE(entry.has_str())) return entry.str(); } - return base::nullopt; + return absl::nullopt; } return GenericEnumTableEntry::FindByValue( - reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()), @@ -41,12 +41,12 @@ // This overload of GetString is designed for cases where the argument is a @@ -342,8 +340,7 @@ class EnumTable { // enum value directly. - base::Optional<E> GetEnum(base::StringPiece str) const { + 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) : base::Optional<E>(); + return entry ? static_cast<E>(entry->value) : absl::optional<E>(); } @@ -358,7 +355,7 @@ class EnumTable { ++++++ chromium-92-GetUsableSize-nullptr.patch ++++++ >From 61e16c92ff24bb71b9b7309a9d6d470ee91738bc Mon Sep 17 00:00:00 2001 From: Bartek Nowierski <bart...@chromium.org> Date: Wed, 21 Jul 2021 15:01:38 +0000 Subject: [PATCH] [PA] Make GetUsableSize() handle nullptr gracefully malloc_usable_size() is expected to not crush on NULL and return 0. Bug: 1221442 Change-Id: I6a3b90dcf3a8ad18114c206d87b98f60d5f50eb1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3042177 Commit-Queue: Bartek Nowierski <bart...@chromium.org> Commit-Queue: Kentaro Hara <hara...@chromium.org> Auto-Submit: Bartek Nowierski <bart...@chromium.org> Reviewed-by: Kentaro Hara <hara...@chromium.org> Cr-Commit-Position: refs/heads/master@{#903900} --- diff --git a/base/allocator/partition_allocator/partition_alloc_unittest.cc b/base/allocator/partition_allocator/partition_alloc_unittest.cc index c1212011..8863984 100644 --- a/base/allocator/partition_allocator/partition_alloc_unittest.cc +++ b/base/allocator/partition_allocator/partition_alloc_unittest.cc @@ -2838,6 +2838,10 @@ } } +TEST_F(PartitionAllocTest, GetUsableSizeNull) { + EXPECT_EQ(0ULL, PartitionRoot<ThreadSafe>::GetUsableSize(nullptr)); +} + TEST_F(PartitionAllocTest, GetUsableSize) { size_t delta = SystemPageSize() + 1; for (size_t size = 1; size <= kMinDirectMappedDownsize; size += delta) { diff --git a/base/allocator/partition_allocator/partition_root.h b/base/allocator/partition_allocator/partition_root.h index b72a1d9..baac9525 100644 --- a/base/allocator/partition_allocator/partition_root.h +++ b/base/allocator/partition_allocator/partition_root.h @@ -1220,6 +1220,9 @@ // PartitionAlloc's internal data. Used as malloc_usable_size. template <bool thread_safe> ALWAYS_INLINE size_t PartitionRoot<thread_safe>::GetUsableSize(void* ptr) { + // malloc_usable_size() is expected to handle NULL gracefully and return 0. + if (!ptr) + return 0; auto* slot_span = SlotSpan::FromSlotInnerPtr(ptr); auto* root = FromSlotSpan(slot_span); return slot_span->GetUsableSize(root); ++++++ chromium-92-v8-constexpr.patch ++++++ GCC: make VRegister::from_code() constexpr on aarch64 LiftoffRegister::gp() and LiftoffRegister::fp() are constexpr. Therefore, VRegister::from_code() needs to be constexpr as well. diff --git a/v8/src/codegen/arm64/register-arm64.h b/v8/src/codegen/arm64/register-arm64.h index 1150daf..21007a5 100644 --- a/v8/src/codegen/arm64/register-arm64.h +++ b/v8/src/codegen/arm64/register-arm64.h @@ -413,7 +413,7 @@ class VRegister : public CPURegister { static constexpr int kMaxNumRegisters = kNumberOfVRegisters; STATIC_ASSERT(kMaxNumRegisters == kDoubleAfterLast); - static VRegister from_code(int code) { + static constexpr VRegister from_code(int code) { // Always return a D register. return VRegister::Create(code, kDRegSizeInBits); } ++++++ chromium-91.0.4472.164.tar.xz -> chromium-92.0.4515.107.tar.xz ++++++ /work/SRC/openSUSE:Factory/chromium/chromium-91.0.4472.164.tar.xz /work/SRC/openSUSE:Factory/.chromium.new.1899/chromium-92.0.4515.107.tar.xz differ: char 26, line 1 ++++++ chromium-clang-nomerge.patch ++++++ Upstream-status: Inapproriate Upstream suggests to use Chromium's hermetic clang instead. Signed-off-by: Maksim Sisov <msi...@igalia.com> --- >From bde3186ccba169391fb428fcc296b2236ada0010 Mon Sep 17 00:00:00 2001 From: Maksim Sisov <msi...@igalia.com> Date: Wed, 5 May 2021 15:20:43 +0300 Subject: [PATCH] nomerge attribute on declaration is only available since clang 12 This change fixes builds with older clangs that do not allow nomerge attributes on declaration. Otherwise, the following error is produced - build error: 'nomerge' attribute cannot be applied to a declaration See https://reviews.llvm.org/D92800 Change-Id: I32e1f7dc9049737d54d8a16de5308aa5aae1ced1 --- base/compiler_specific.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/base/compiler_specific.h b/base/compiler_specific.h index 6693e9ea33e9..d3b425abe9ca 100644 --- a/base/compiler_specific.h +++ b/base/compiler_specific.h @@ -340,7 +340,8 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) { #endif // defined(__clang_analyzer__) // Use nomerge attribute to disable optimization of merging multiple same calls. -#if defined(__clang__) && __has_attribute(nomerge) +#if defined(__clang__) && (__clang_major__ >= 12) && \ + __has_attribute(nomerge) && !defined(OS_CHROMEOS) #define NOMERGE [[clang::nomerge]] #else #define NOMERGE -- 2.25.1 ++++++ chromium-freetype-2.11.patch ++++++ --- a/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp +++ b/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp @@ -712,7 +712,11 @@ void colrv1_draw_paint(SkCanvas* canvas, canvas->drawPaint(colrPaint); break; } +#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11 + case FT_COLR_PAINTFORMAT_TRANSFORM: +#else case FT_COLR_PAINTFORMAT_TRANSFORMED: +#endif case FT_COLR_PAINTFORMAT_TRANSLATE: case FT_COLR_PAINTFORMAT_ROTATE: case FT_COLR_PAINTFORMAT_SKEW: @@ -759,10 +763,17 @@ void colrv1_transform(SkCanvas* canvas, FT_Face face, FT_COLR_Paint colrv1_paint SkMatrix transform; switch (colrv1_paint.format) { +#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11 + case FT_COLR_PAINTFORMAT_TRANSFORM: { + transform = ToSkMatrix(colrv1_paint.u.transform.affine); + break; + } +#else case FT_COLR_PAINTFORMAT_TRANSFORMED: { transform = ToSkMatrix(colrv1_paint.u.transformed.affine); break; } +#endif case FT_COLR_PAINTFORMAT_TRANSLATE: { transform = SkMatrix::Translate( SkFixedToScalar(colrv1_paint.u.translate.dx), @@ -880,10 +891,17 @@ bool colrv1_traverse_paint(SkCanvas* canvas, traverse_result = colrv1_start_glyph(canvas, palette, face, paint.u.colr_glyph.glyphID, FT_COLOR_NO_ROOT_TRANSFORM); break; +#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11 + case FT_COLR_PAINTFORMAT_TRANSFORM: + colrv1_transform(canvas, face, paint); + traverse_result = colrv1_traverse_paint(canvas, palette, face, + paint.u.transform.paint, visited_set); +#else case FT_COLR_PAINTFORMAT_TRANSFORMED: colrv1_transform(canvas, face, paint); traverse_result = colrv1_traverse_paint(canvas, palette, face, paint.u.transformed.paint, visited_set); +#endif break; case FT_COLR_PAINTFORMAT_TRANSLATE: colrv1_transform(canvas, face, paint); ++++++ chromium-norar.patch ++++++ --- /var/tmp/diff_new_pack.UG2IAq/_old 2021-08-04 22:29:01.105792212 +0200 +++ /var/tmp/diff_new_pack.UG2IAq/_new 2021-08-04 22:29:01.105792212 +0200 @@ -84,10 +84,10 @@ --- chromium-86.0.4240.75.orig/chrome/services/file_util/BUILD.gn +++ chromium-86.0.4240.75/chrome/services/file_util/BUILD.gn @@ -15,7 +15,6 @@ source_set("file_util") { - "//build:chromeos_buildflags", - "//chrome/common/safe_browsing", - "//chrome/common/safe_browsing:archive_analyzer_results", -- "//chrome/common/safe_browsing:rar_analyzer", - "//components/safe_browsing:buildflags", - "//mojo/public/cpp/bindings", - ] + deps += [ + "//chrome/common/safe_browsing", + "//chrome/common/safe_browsing:archive_analyzer_results", +- "//chrome/common/safe_browsing:rar_analyzer", + ] + } + ++++++ chromium-prop-codecs.patch ++++++ --- /var/tmp/diff_new_pack.UG2IAq/_old 2021-08-04 22:29:01.113792202 +0200 +++ /var/tmp/diff_new_pack.UG2IAq/_new 2021-08-04 22:29:01.113792202 +0200 @@ -15,17 +15,3 @@ # Common configuration for targets in the media directory; these must not be # exported since things like USE_NEON and USE_CRAS have different meanings # elsewhere in the code base. -Index: chromium-85.0.4183.69/third_party/webrtc/webrtc.gni -=================================================================== ---- chromium-85.0.4183.69.orig/third_party/webrtc/webrtc.gni -+++ chromium-85.0.4183.69/third_party/webrtc/webrtc.gni -@@ -156,8 +156,7 @@ declare_args() { - # - # Enabling H264 when building with MSVC is currently not supported, see - # bugs.webrtc.org/9213#c13 for more info. -- rtc_use_h264 = -- proprietary_codecs && !is_android && !is_ios && !(is_win && !is_clang) -+ rtc_use_h264 = false - - # Enable this flag to make webrtc::Mutex be implemented by absl::Mutex. - rtc_use_absl_mutex = false