Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nodejs-electron for openSUSE:Factory checked in at 2022-10-08 01:22:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nodejs-electron (Old) and /work/SRC/openSUSE:Factory/.nodejs-electron.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs-electron" Sat Oct 8 01:22:49 2022 rev:37 rq:1008785 version:21.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/nodejs-electron/nodejs-electron.changes 2022-09-23 14:16:07.926108335 +0200 +++ /work/SRC/openSUSE:Factory/.nodejs-electron.new.2275/nodejs-electron.changes 2022-10-08 01:22:58.573920197 +0200 @@ -1,0 +2,106 @@ +Thu Oct 6 18:00:00 UTC 2022 - Bruno Pitrus <brunopit...@hotmail.com> +- New upstream release 21.1.0 + * Added WebContents.opener to access window opener + * Added webContents.fromFrame(frame) to get the WebContents corresponding to a WebFrameMain instance + * Provided display_id for desktopCapturer on Linux + * Updated Chromium to 106.0.5249.91 +- Add backported argument_spec-missing-isnan-isinf.patch +- Add partition_alloc-no-lto.patch + * LTO is still broken but this gets us past the build error + +------------------------------------------------------------------- +Tue Oct 4 20:58:18 UTC 2022 - Bruno Pitrus <brunopit...@hotmail.com> +- New upstream release 21.0.1 + * Update Chromium to 106.0.5249.61 +- Add backported patch to fix build error + * gtk_ui_platform_stub-incomplete-type-LinuxInputMethodContext.patch + +------------------------------------------------------------------- +Mon Oct 3 10:49:19 UTC 2022 - Bruno Pitrus <brunopit...@hotmail.com> +- New upstream release 21.0.0 + * ABI break: NODE_MODULE_VERSION is now 109. Native modules may need recompiling + * Update Chromium to 106.0.5249.51 + * Update Node to 16.16.0 + * Enabled the V8 memory cage for external buffers. See https://www.electronjs.org/blog/v8-memory-cage for more details. + * Added app.getSystemLocale() method. + * Added new WebContents.ipc and WebFrameMain.ipc APIs. + * Added support for Web Bluetooth pin pairing + * Enable missing HKDF support in Node.js crypto + * Fixed a crash that occured when loading non-standard schemes from iframes. + * Fixed a crash when switching origins with emulation settings set. + * Fixed an issue where screen.getCursorScreenPoint() crashed on Wayland + when it was called before a BrowserWindow had been created. + * Fixed an issue where serialPort.open() failed with + `NetworkError: Failed to open serial port.` + * Fixed the 'length' property in UploadFile objects being ignored. +- Add -doc subpackage. +- Do not build PDF viewer as it is huge and we don't ship any apps using it. +- Intentionally break any downstream software using the @electron/fuses script during build, + as it never actually worked with system electron and the maintainer needs to + be alerted to possible ABI breaks. + * add disable-fuses.patch +- Switch to vendored AVIF on 15.4 and F36 due to the system one being too old. +- Fix angle trying to load a custom libvulkan we do not ship. +- Drop patches applied upstream: + * absl_algorithm.gn + * absl_base.gn + * absl_cleanup.gn + * absl_container.gn + * absl_debugging.gn + * absl_flags.gn + * absl_functional.gn + * absl_hash.gn + * absl_memory.gn + * absl_meta.gn + * absl_numeric.gn + * absl_random.gn + * absl_status.gn + * absl_strings.gn + * absl_synchronization.gn + * absl_time.gn + * absl_types.gn + * absl_utility.gn + * brotli.gn + * crc32c.gn + * dav1d.gn + * double-conversion.gn + * libaom.gn + * libavif.gn + * libjxl.gn + * libXNVCtrl.gn + * libyuv.gn + * swiftshader-SPIRV-Headers.gn + * swiftshader-SPIRV-Tools.gn + * vulkan-SPIRV-Headers.gn + * vulkan-SPIRV-Tools.gn + * woff2.gn + * abseil_string_number_conversions-do-not-assume-ABI.patch + * attribution_manager_impl-missing-absl-WrapUnique.patch + * ax_property_node-missing-unique_ptr-forward.patch + * byteswap-constexpr2.patch + * chromium-fix-pac-with-gcc.patch + * content_renderer_client-invalid-application-of-sizeof-to-incomplete-type-cast_streaming-ResourceProvider.patch + * dark_mode_types-uint8_t.patch + * device_perf_info-missing-uint32_t.patch + * extract_first_nonzero_index-neon64.patch + * json_generation-missing-unique_ptr.patch + * metrics_recorder-missing-string.patch + * multi_channel_content_detector-missing-unique_ptr.patch + * skia_utils-missing-uint64_t.patch +- Add backported patches to fix build errors + * pending_beacon_dispatcher-virtual-functions-cannot-be-constexpr.patch + * std_lib_extras-missing-intptr_t.patch +- Fix build with system abseil + * remove abseil-remove-unused-targets.patch + * add system-abseil-missing-shims.patch + * add crashpad-use-system-abseil.patch +- Reverse upstream changes to fix build with system ffmpeg + * audio_file_reader-ffmpeg-AVFrame-duration.patch +- Conditionally reverse upstream changes and add hacks in v8 headers to build with icu-69 + * intl-objects-icu71-UNUM_APPROXIMATELY_SIGN_FIELD.patch + * v8-icu69-FormattedNumberRange-no-default-constructible.patch + * electron-devel now requires icu-devel on old OS's +- Reverse upstream changes to build with system avif + * avif_image_decoder-AVIF_PIXEL_FORMAT_COUNT.patch + +------------------------------------------------------------------- Old: ---- abseil-remove-unused-targets.patch abseil_string_number_conversions-do-not-assume-ABI.patch absl_algorithm.gn absl_base.gn absl_cleanup.gn absl_container.gn absl_debugging.gn absl_flags.gn absl_functional.gn absl_hash.gn absl_memory.gn absl_meta.gn absl_numeric.gn absl_random.gn absl_status.gn absl_strings.gn absl_synchronization.gn absl_time.gn absl_types.gn absl_utility.gn attribution_manager_impl-missing-absl-WrapUnique.patch ax_property_node-missing-unique_ptr-forward.patch brotli.gn byteswap-constexpr2.patch chromium-fix-pac-with-gcc.patch content_renderer_client-invalid-application-of-sizeof-to-incomplete-type-cast_streaming-ResourceProvider.patch crc32c.gn dark_mode_types-uint8_t.patch dav1d.gn device_perf_info-missing-uint32_t.patch double-conversion.gn electron-20.2.0.tar.xz extract_first_nonzero_index-neon64.patch json_generation-missing-unique_ptr.patch libXNVCtrl.gn libaom.gn libavif.gn libjxl.gn libyuv.gn metrics_recorder-missing-string.patch multi_channel_content_detector-missing-unique_ptr.patch skia_utils-missing-uint64_t.patch swiftshader-SPIRV-Headers.gn swiftshader-SPIRV-Tools.gn vulkan-SPIRV-Headers.gn vulkan-SPIRV-Tools.gn woff2.gn New: ---- argument_spec-missing-isnan-isinf.patch audio_file_reader-ffmpeg-AVFrame-duration.patch avif_image_decoder-AVIF_PIXEL_FORMAT_COUNT.patch crashpad-use-system-abseil.patch disable-fuses.patch electron-21.1.0.tar.xz gtk_ui_platform_stub-incomplete-type-LinuxInputMethodContext.patch intl-objects-icu71-UNUM_APPROXIMATELY_SIGN_FIELD.patch partition_alloc-no-lto.patch pending_beacon_dispatcher-virtual-functions-cannot-be-constexpr.patch std_lib_extras-missing-intptr_t.patch system-abseil-missing-shims.patch v8-icu69-FormattedNumberRange-no-default-constructible.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nodejs-electron.spec ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.053939646 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.061939664 +0200 @@ -23,7 +23,7 @@ %define mod_name electron # https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json -%define abi_version 107 +%define abi_version 109 # Do not provide libEGL.so, etc??? %define __provides_exclude ^lib.*\\.so.*$ @@ -90,28 +90,41 @@ %bcond_with mold %if %{without lld} -#Electron built with LTO crashes on selecting any text. -#See https://gist.github.com/brjsp/80620a5a0be9efbee6b9154cb127879d for the stack trace. + +%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500 || 0%{?fedora} +#TODO: Fix LTO build. +#Electron 19 crashed on selecting any text. see https://gist.github.com/brjsp/80620a5a0be9efbee6b9154cb127879d for the stack trace. +#Electron 20 ran vscode fine, but Signal had problems with renderer process infinite loop hang. +#Electron 21 fails linking currently. +#[ 755s] /usr/lib64/gcc/x86_64-suse-linux/12/../../../../x86_64-suse-linux/bin/ld: /tmp/cch8lk8g.ltrans11.ltrans.o: in function `partition_alloc::internal::PCScan::JoinScan()': +#[ 755s] /home/abuild/rpmbuild/BUILD/src/out/Release/../../base/allocator/partition_allocator/starscan/stack/stack.cc:139: undefined reference to `PAPushAllRegistersAndIterateStack' #%%bcond_without lto %bcond_with lto %else +#Protoc on Leap crashes when built with LTO. %bcond_with lto %endif +%else #without lld +%bcond_with lto +%endif #without lld + %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400 || 0%{?fedora} %bcond_without system_harfbuzz -%bcond_without system_avif %else %bcond_with system_harfbuzz +%endif + +%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500 || 0%{?fedora} >= 37 +%bcond_without system_avif +%else %bcond_with system_avif %endif %bcond_without system_freetype %bcond_without system_nghttp2 %bcond_without system_double_conversion -%bcond_without system_jsoncpp %bcond_without system_woff2 -%bcond_without system_tiff %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150600 || 0%{?fedora} >= 37 @@ -192,7 +205,7 @@ Name: nodejs-electron -Version: 20.2.0 +Version: 21.1.0 Release: 0 Summary: Build cross platform desktop apps with JavaScript, HTML, and CSS License: AFL-2.0 AND Apache-2.0 AND blessing AND BSD-2-Clause AND BSD-3-Clause AND BSD-Protection AND BSD-Source-Code AND bzip2-1.0.6 AND IJG AND ISC AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND MIT AND MIT-CMU AND MIT-open-group AND (MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later) AND MPL-2.0 AND OpenSSL AND SGI-B-2.0 AND SUSE-Public-Domain AND X11 @@ -204,48 +217,20 @@ Source11: electron.desktop Source12: electron-logo-symbolic.svg # Shim generators for unbundling libraries -Source20: absl_algorithm.gn -Source21: absl_base.gn -Source22: absl_cleanup.gn -Source23: absl_container.gn -Source24: absl_debugging.gn -Source25: absl_flags.gn -Source26: absl_functional.gn -Source27: absl_hash.gn -Source28: absl_memory.gn -Source29: absl_meta.gn -Source30: absl_numeric.gn -Source31: absl_random.gn -Source32: absl_status.gn -Source33: absl_strings.gn -Source34: absl_synchronization.gn -Source35: absl_time.gn -Source36: absl_types.gn -Source37: brotli.gn -Source38: crc32c.gn -# https://svnweb.mageia.org/packages/cauldron/chromium-browser-stable/current/SOURCES/chromium-79-system-dav1d.patch -Source39: dav1d.gn -Source40: double-conversion.gn -# https://svnweb.mageia.org/packages/cauldron/chromium-browser-stable/current/SOURCES/chromium-79-system-libaom.patch -Source41: libaom.gn -Source42: libavif.gn -Source43: libjxl.gn -Source44: libXNVCtrl.gn -Source45: swiftshader-SPIRV-Headers.gn -Source46: swiftshader-SPIRV-Tools.gn -Source47: vulkan-SPIRV-Headers.gn -Source48: vulkan-SPIRV-Tools.gn -Source49: woff2.gn Source50: flatbuffers.gn Source51: libsecret.gn -Source52: libyuv.gn -Source53: absl_utility.gn # Reverse upstream changes to be able to build against ffmpeg-4 Source400: ffmpeg-new-channel-layout.patch +Source401: audio_file_reader-ffmpeg-AVFrame-duration.patch # ???and against icu-69 -Source401: NumberFormat-icu71-incrementExact.patch +Source410: NumberFormat-icu71-incrementExact.patch +Source411: intl-objects-icu71-UNUM_APPROXIMATELY_SIGN_FIELD.patch + +#Reverse upstream changes to build against system libavif. +#All of this patch is dead code, so it can be reversed unconditionally. +Source420: avif_image_decoder-AVIF_PIXEL_FORMAT_COUNT.patch # PATCHES for openSUSE-specific things @@ -261,36 +246,30 @@ Patch25: electron-16-system-node-headers.patch # https://sources.debian.org/patches/chromium/102.0.5005.115-1/debianization/support-i386.patch/ Patch39: support-i386.patch -Patch49: abseil-remove-unused-targets.patch # from https://sources.debian.org/patches/chromium/103.0.5060.53-1/disable/catapult.patch/ Patch67: disable-catapult.patch Patch68: do-not-build-libvulkan.so.patch Patch69: nasm-generate-debuginfo.patch +Patch70: disable-fuses.patch # PATCHES to use system libs Patch1002: chromium-system-libusb.patch Patch1017: system-libdrm.patch # http://svnweb.mageia.org/packages/updates/7/chromium-browser-stable/current/SOURCES/chromium-74-pdfium-system-libopenjpeg2.patch?view=markup Patch1038: pdfium-fix-system-libs.patch -%if %{with system_jsoncpp} # https://sources.debian.org/patches/chromium/102.0.5005.115-1/system/jsoncpp.patch/ Patch1040: system-jsoncpp.patch -%endif # https://sources.debian.org/patches/chromium/102.0.5005.115-1/system/zlib.patch/ Patch1041: system-zlib.patch Patch1043: node-system-libs.patch Patch1044: replace_gn_files-system-libs.patch Patch1045: angle-system-xxhash.patch -%if %{with system_tiff} # https://svnweb.mageia.org/packages/cauldron/chromium-browser-stable/current/SOURCES/chromium-99-pdfium-system-libtiff-libpng.patch Patch1046: chromium-99-pdfium-system-libtiff.patch -%endif Patch1047: cares_public_headers.patch Patch1048: chromium-remove-bundled-roboto-font.patch Patch1053: swiftshader-use-system-llvm.patch -%if %{with system_abseil} Patch1054: thread_annotations-fix-build-with-system-abseil.patch -%endif Patch1063: system-libbsd.patch Patch1065: base-system-nspr.patch Patch1066: system-gtest.patch @@ -302,6 +281,8 @@ Patch1072: node-system-icu.patch Patch1073: system-nasm.patch Patch1074: no-zlib-headers.patch +Patch1075: system-abseil-missing-shims.patch +Patch1076: crashpad-use-system-abseil.patch # PATCHES to fix interaction with third-party software Patch2004: chromium-gcc11.patch @@ -318,6 +299,8 @@ # Fix electron patched code Patch2024: electron-16-std-vector-non-const.patch Patch2029: electron-16-webpack-fix-openssl-3.patch +Patch2030: v8-icu69-FormattedNumberRange-no-default-constructible.patch +Patch2031: partition_alloc-no-lto.patch # PATCHES that should be submitted upstream verbatim or near-verbatim @@ -328,19 +311,7 @@ Patch3028: electron-16-third_party-symbolize-missing-include.patch # From https://git.droidware.info/wchen342/ungoogled-chromium-fedora Patch3033: chromium-94.0.4606.71-InkDropHost-crash.patch -# https://sources.debian.org/patches/chromium/102.0.5005.115-1/bullseye/byteswap-constexpr2.patch/ -Patch3035: byteswap-constexpr2.patch -Patch3042: chromium-fix-pac-with-gcc.patch -Patch3050: abseil_string_number_conversions-do-not-assume-ABI.patch -Patch3051: multi_channel_content_detector-missing-unique_ptr.patch -Patch3055: json_generation-missing-unique_ptr.patch Patch3056: async_shared_storage_database_impl-missing-absl-WrapUnique.patch -Patch3057: metrics_recorder-missing-string.patch -Patch3058: skia_utils-missing-uint64_t.patch -Patch3059: device_perf_info-missing-uint32_t.patch -Patch3060: dark_mode_types-uint8_t.patch -Patch3061: ax_property_node-missing-unique_ptr-forward.patch -Patch3062: attribution_manager_impl-missing-absl-WrapUnique.patch # https://salsa.debian.org/chromium-team/chromium/-/blob/456851fc808b2a5b5c762921699994e957645917/debian/patches/upstream/nested-nested-nested-nested-nested-nested-regex-patterns.patch Patch3064: nested-nested-nested-nested-nested-nested-regex-patterns.patch # Fedora patch to fix build with python3.11 @@ -348,10 +319,12 @@ Patch3067: reproducible-config.gypi.patch Patch3068: content_language_parser-missing-string.patch Patch3069: aggregatable_attribution_utils-do-not-assume-abseil-ABI.patch -Patch3070: content_renderer_client-invalid-application-of-sizeof-to-incomplete-type-cast_streaming-ResourceProvider.patch Patch3072: attribution_response_parsing-do-not-assume-abseil-ABI.patch Patch3073: common.gypi-cpp-version.patch -Patch3074: extract_first_nonzero_index-neon64.patch +Patch3074: pending_beacon_dispatcher-virtual-functions-cannot-be-constexpr.patch +Patch3075: std_lib_extras-missing-intptr_t.patch +Patch3076: gtk_ui_platform_stub-incomplete-type-LinuxInputMethodContext.patch +Patch3077: argument_spec-missing-isnan-isinf.patch %if %{with clang} BuildRequires: clang @@ -394,9 +367,7 @@ %endif BuildRequires: libbsd-devel BuildRequires: libpng-devel -%if %{with system_tiff} BuildRequires: libtiff-devel -%endif %if %{with system_nvctrl} BuildRequires: libXNVCtrl-devel %endif @@ -497,14 +468,20 @@ %if %{with system_harfbuzz} BuildRequires: pkgconfig(harfbuzz) >= 3 %endif + %if %{with icu_71} BuildRequires: pkgconfig(icu-i18n) >= 71 %else -BuildRequires: pkgconfig(icu-i18n) >= 68 + +%if 0%{?fedora} +BuildRequires: libicu-devel < 70 +%else +BuildRequires: icu.691-devel %endif -%if %{with system_jsoncpp} -BuildRequires: pkgconfig(jsoncpp) + %endif + +BuildRequires: pkgconfig(jsoncpp) BuildRequires: pkgconfig(krb5) BuildRequires: pkgconfig(lcms2) %if %{with ffmpeg_5} @@ -618,9 +595,28 @@ Requires: nodejs-electron%{?_isa} = %{version} Requires: pkgconfig(zlib) +%if %{without icu_71} +#SUSE patched code includes icu headers +%if 0%{?fedora} +Requires: libicu-devel%{?_isa} +%else +Requires: icu.691-devel%{?_isa} +%endif +%endif + %description devel Development headers for Electron projects. +%package doc +Summary: Electron API documentation +Group: Documentation/Other +Enhances: nodejs-electron-devel = %{version} +BuildArch: noarch + + +%description doc +Development documentation for the Electron runtime. + %prep # Use stable path to source to make use of ccache @@ -629,14 +625,27 @@ # Sanity check if macro corresponds to the actual ABI test $(grep ^node_module_version electron/build/args/all.gn | sed 's/.* = //') = %abi_version +%if %{without system_abseil} +patch -R -p1 < %PATCH1054 +patch -R -p1 < %PATCH1076 +%endif + %if %{without ffmpeg_5} patch -R -p1 < %SOURCE400 %endif %if %{without icu_71} -patch -R -p1 < %SOURCE401 +patch -R -p1 < %SOURCE410 +patch -R -p1 < %SOURCE411 +%else +patch -R -p1 < %PATCH2030 %endif +# This one depends on an ffmpeg nightly, reverting unconditionally. +patch -R -p1 < %SOURCE401 + +# This one is dead code, we cen revert it even when using bundled avif. +patch -R -p1 < %SOURCE420 # Link system wayland-protocols-devel into where chrome expects them mkdir -p third_party/wayland-protocols/kde/src @@ -769,6 +778,9 @@ %if %{with lto} && %{without clang} # reduce the threads for linking even more due to LTO eating ton of memory _link_threads=$(((%{jobs} - 2))) +%ifarch aarch64 +_link_threads=1 +%endif test "$_link_threads" -le 0 && _link_threads=1 export LDFLAGS="-flto=$_link_threads --param lto-max-streaming-parallelism=1" %endif @@ -929,6 +941,9 @@ %endif %ifarch aarch64 myconf_gn+=" host_cpu=\"arm64\"" +#default is "standard" which does not work with gcc +#This does not raise the cpu requirements according to https://developer.arm.com/documentation/101754/0616/armclang-Reference/armclang-Command-line-Options/-mbranch-protection +myconf_gn+=" arm_control_flow_integrity=\"pac\"" %endif %ifarch %arm myconf_gn+=" host_cpu=\"arm\"" @@ -948,6 +963,9 @@ %endif %endif #ifarch arm + + + myconf_gn+=" host_os=\"linux\"" myconf_gn+=" is_debug=false" myconf_gn+=" dcheck_always_on=false" @@ -961,6 +979,17 @@ myconf_gn+=" use_cups=true" myconf_gn+=" use_aura=true" +# always load system libvulkan.so +myconf_gn+=" angle_use_custom_libvulkan=false" + +# do not build PDF support +myconf_gn+=" enable_pdf=false" +myconf_gn+=" enable_pdf_viewer=false" +myconf_gn+=" enable_print_preview=false" +myconf_gn+=" enable_basic_printing=false" + + + # This requires the non-free closure_compiler.jar. If we ever need to build chrome with JS typecheck, # we would need to package it separately and compile it from sources, since the chrome git repo # provides only a compiled binary. @@ -996,7 +1025,7 @@ myconf_gn+=" safe_browsing_mode=0" #Do not build Chromecast -myconf_gn+=" enable_openscreen=false" +myconf_gn+=" enable_remoting=false" myconf_gn+=" enable_media_remoting=false" @@ -1008,6 +1037,8 @@ myconf_gn+=" use_allocator=\"partition\"" myconf_gn+=" use_allocator_shim=true" myconf_gn+=" use_partition_alloc=true" + + myconf_gn+=" disable_fieldtrial_testing_config=true" myconf_gn+=" use_gnome_keyring=false" myconf_gn+=" use_unofficial_version_number=false" @@ -1162,7 +1193,6 @@ %files %license electron/LICENSE out/Release/LICENSES.chromium.html -%doc electron/README.md %{_bindir}/electron %{_datadir}/pixmaps/electron.png %{_datadir}/icons/hicolor/symbolic/apps/electron-symbolic.svg @@ -1178,4 +1208,8 @@ %{_includedir}/electron %{_rpmconfigdir}/macros.d/macros.electron +%files doc +%doc electron/README.md +%doc electron/docs + %changelog ++++++ argument_spec-missing-isnan-isinf.patch ++++++ >From ed9b58042c57f737d5a04ce0e8deba1a97d19e09 Mon Sep 17 00:00:00 2001 From: Andres Salomon <dilin...@queued.net> Date: Wed, 28 Sep 2022 03:41:16 +0000 Subject: [PATCH] Fix missing cmath header build failure in renderer extension Building 106.0.5249.51 on a Debian machine, I hit the following build error: FAILED: obj/extensions/renderer/renderer/argument_spec.o clang++ [...] -o obj/extensions/renderer/renderer/argument_spec.o ../../extensions/renderer/bindings/argument_spec.cc:410:16: error: no member named 'isnan' in namespace 'std' if (std::isnan(double_val) || std::isinf(double_val)) { ~~~~~^ ../../extensions/renderer/bindings/argument_spec.cc:410:42: error: no member named 'isinf' in namespace 'std' if (std::isnan(double_val) || std::isinf(double_val)) { ~~~~~^ 2 errors generated. isnan and isinf are both found in the cmath header, so simply including it fixes that build error. R=rdevlin.cro...@chromium.org, tjudk...@chromium.org Change-Id: I95c49a8f90a5a734b62b8988dc3138e3afa3c6f6 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3913616 Commit-Queue: Andres Salomon <dilin...@queued.net> Auto-Submit: Andres Salomon <dilin...@queued.net> Reviewed-by: Tim <tjudk...@chromium.org> Cr-Commit-Position: refs/heads/main@{#1052196} --- extensions/renderer/bindings/argument_spec.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extensions/renderer/bindings/argument_spec.cc b/extensions/renderer/bindings/argument_spec.cc index 1e10bf1b561f4..eadd7ec3e3c9d 100644 --- a/extensions/renderer/bindings/argument_spec.cc +++ b/extensions/renderer/bindings/argument_spec.cc @@ -4,6 +4,8 @@ #include "extensions/renderer/bindings/argument_spec.h" +#include <cmath> + #include "base/check.h" #include "base/strings/string_piece.h" #include "base/strings/string_util.h" ++++++ audio_file_reader-ffmpeg-AVFrame-duration.patch ++++++ >From ded379824f5de39357b6b1894578101aba5cdf05 Mon Sep 17 00:00:00 2001 From: Eugene Zemtsov <eug...@chromium.org> Date: Fri, 29 Jul 2022 04:41:04 +0000 Subject: [PATCH] Roll src/third_party/ffmpeg/ 880df5ede..b71ecd02b (279 commits) https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/880df5ede50a..b71ecd02b479 $ git log 880df5ede..b71ecd02b --date=short --no-merges --format='%ad %ae %s' 2022-07-27 eugene Roll for M106 2022-07-25 andreas.rheinhardt avcodec/x86/pngdsp: Remove obsolete ff_add_bytes_l2_mmx() 2022-07-22 andreas.rheinhardt avcodec/hevcdec: Output MD5-message in one piece 2022-07-24 epirat07 configure: properly require libx264 if enabled 2022-07-24 zane avformat/argo_cvg: expose loop/reverb/checksum via metadata (...) 2022-05-03 leo.izen avcodec/libjxldec: properly tag output colorspace 2022-06-25 ffmpeg avfilter/Makefile: always make colorspace.o 2022-03-02 brad avutil/ppc/cpu: Use proper header for OpenBSD PPC CPU detection 2022-06-24 jamrial avformat/http: include version.h 2022-05-16 mbonda-at-nvidia.com AV1 VDPAU hwaccel Decode support Created with: roll-dep src/third_party/ffmpeg ffmpeg usage fix: Switch from AVFrame::pkt_duration to AVFrame::duration, AVFrame::pkt_duration is deprecated Bug: 1344646 Change-Id: Iaa3abf48ef81dae6d282bca8f0fa2a8dffeeba25 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3788638 Reviewed-by: Will Cassella <cas...@chromium.org> Commit-Queue: Eugene Zemtsov <eug...@chromium.org> Cr-Commit-Position: refs/heads/main@{#1029623} --- DEPS | 2 +- media/filters/audio_file_reader.cc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc index e1be5aa9a5b13..951c003956fb5 100644 --- a/media/filters/audio_file_reader.cc +++ b/media/filters/audio_file_reader.cc @@ -243,10 +243,10 @@ bool AudioFileReader::OnNewFrame( // silence from being output. In the case where we are also discarding some // portion of the packet (as indicated by a negative pts), we further want to // adjust the duration downward by however much exists before zero. - if (audio_codec_ == AudioCodec::kAAC && frame->pkt_duration) { + if (audio_codec_ == AudioCodec::kAAC && frame->duration) { const base::TimeDelta pkt_duration = ConvertFromTimeBase( glue_->format_context()->streams[stream_index_]->time_base, - frame->pkt_duration + std::min(static_cast<int64_t>(0), frame->pts)); + frame->duration + std::min(static_cast<int64_t>(0), frame->pts)); const base::TimeDelta frame_duration = base::Seconds(frames_read / static_cast<double>(sample_rate_)); ++++++ avif_image_decoder-AVIF_PIXEL_FORMAT_COUNT.patch ++++++ >From 6882302cd00eb7749c01e25e2478a832f5f8552f Mon Sep 17 00:00:00 2001 From: Wan-Teh Chang <w...@google.com> Date: Tue, 16 Aug 2022 16:38:05 +0000 Subject: [PATCH] Roll src/third_party/libavif/src/ dd2d67c5f..d22d4de94 (35 commits) https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git/+log/dd2d67c5f976..d22d4de94120 $ git log dd2d67c5f..d22d4de94 --date=short --no-merges --format='%ad %ae %s' 2022-08-11 vigneshv Refactor libyuv yuv->rgb conversion with function pointers 2022-08-10 vigneshv Use per-row conditional in avifImageIdentity8ToRGB8Color 2022-08-11 wtc Turn on caching of Build SVT-AV1 and Build libjpeg 2022-08-11 vigneshv Update libyuv.cmd to 9b17af9b 2022-08-10 wtc ext/svt.sh: Do not build the SVT-AV1 decoder 2022-08-10 wtc Ext: Update to SVT-AV1 v1.2.0 2022-08-09 vigneshv Support YUV422->RGB565 conversion with libyuv 2022-08-10 yguyon Run ext/libjpeg.cmd in GitHub CI 2022-08-04 vigneshv Add support RGB565 format 2022-08-09 wtc avifPNGWrite: Output RGB if input has no alpha (...) 2022-08-02 wtc Fix MSVC warnings 2022-08-01 yguyon Make avifImageAllocatePlanes() return avifResult 2022-08-01 yguyon Bump AppVeyor Visual Studio version to 2022 2022-07-28 wtc Shorten AppVeyor build to fix build timeout 2022-07-28 wtc Add int32_t casts to fix MSVC warnings 2022-07-25 ccom svt: null metadata field on EbBufferHeaderType 2022-07-15 vrabaud Adding a basic test for lossless. (#984) 2022-07-12 yguyon Use I420ToRGB24Matrix() in reformat_libyuv.c 2022-07-11 wtc Initialize base class avifRWData with {nullptr, 0} 2022-07-11 yguyon Rename YUVToRGB test suite to RGBToYUV Created with: roll-dep src/third_party/libavif/src Update two switch statements in avif_image_decoder.cc to handle the new enum value 'AVIF_PIXEL_FORMAT_COUNT', otherwise there are -Wswitch warnings. R=dalecur...@chromium.org,jz...@chromium.org Change-Id: I303f40763bd6894be9be7f2c60807678fc4939f8 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3828790 Commit-Queue: Wan-Teh Chang <w...@google.com> Reviewed-by: James Zern <jz...@google.com> Cr-Commit-Position: refs/heads/main@{#1035544} --- DEPS | 2 +- .../renderer/platform/image-decoders/avif/avif_image_decoder.cc | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc index c24bf8e0446d3..6ccc4bcfe2c36 100644 --- a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc +++ b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc @@ -158,6 +158,7 @@ media::VideoPixelFormat AvifToVideoPixelFormat(avifPixelFormat fmt, case AVIF_PIXEL_FORMAT_YUV444: return kYUV444Formats[has_alpha][depth_index]; case AVIF_PIXEL_FORMAT_NONE: + case AVIF_PIXEL_FORMAT_COUNT: NOTREACHED(); return media::PIXEL_FORMAT_UNKNOWN; } @@ -300,6 +301,7 @@ cc::YUVSubsampling AVIFImageDecoder::GetYUVSubsampling() const { case AVIF_PIXEL_FORMAT_YUV400: return cc::YUVSubsampling::kUnknown; case AVIF_PIXEL_FORMAT_NONE: + case AVIF_PIXEL_FORMAT_COUNT: NOTREACHED(); return cc::YUVSubsampling::kUnknown; } ++++++ base-system-nspr.patch ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.149939866 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.153939875 +0200 @@ -30,7 +30,7 @@ "thread_annotations.h", "threading/hang_watcher.cc", @@ -1414,6 +1417,7 @@ - + "//build/config/compiler:prevent_unsafe_narrowing", "//build/config/compiler:wexit_time_destructors", "//build/config/compiler:wglobal_constructors", + ":system_nspr", ++++++ chromium-102-compiler.patch ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.165939903 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.169939912 +0200 @@ -109,22 +109,6 @@ # Tells the compiler not to use absolute paths when passing the default # paths to the tools it invokes. We don't want this because we don't # really need it and it can mess up the goma cache entries. -@@ -1538,15 +1473,6 @@ - cflags += [ "-Wno-unqualified-std-cast-call" ] - } - -- if (!is_nacl && !(is_chromeos || -- default_toolchain == "//build/toolchain/cros:target")) { -- # TODO(https://crbug.com/1322823): Remove flags once potential miscompile is investigated. -- cflags += [ -- "-Xclang", -- "-no-opaque-pointers", -- ] -- } -- - if (is_fuchsia) { - # TODO(https://bugs.chromium.org/p/fuchsia/issues/detail?id=77383) - cflags += [ "-Wno-deprecated-copy" ] @@ -1615,7 +1541,7 @@ defines = [ "_HAS_NODISCARD" ] } @@ -145,13 +129,14 @@ # In Chromium code, we define __STDC_foo_MACROS in order to get the # C99 macros on Mac and Linux. -@@ -1636,15 +1558,6 @@ +@@ -1636,16 +1558,6 @@ "__STDC_FORMAT_MACROS", ] - if (!is_debug && !using_sanitizer && current_cpu != "s390x" && - current_cpu != "s390" && current_cpu != "ppc64" && -- current_cpu != "mips" && current_cpu != "mips64") { +- current_cpu != "mips" && current_cpu != "mips64" && +- current_cpu != "riscv64") { - # Non-chromium code is not guaranteed to compile cleanly with - # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are - # disabled, so only do that for Release build. ++++++ chromium-remove-bundled-roboto-font.patch ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.205939994 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.209940004 +0200 @@ -3,7 +3,7 @@ --- a/ui/webui/resources/BUILD.gn 2022-06-15 15:58:23.822426713 +0200 +++ b/ui/webui/resources/BUILD.gn 2022-06-21 15:51:23.647223308 +0200 @@ -36,17 +36,6 @@ - "$root_gen_dir/ui/webui/resources/cr_components/color_change_listener/resources.grdp", + "$root_gen_dir/third_party/jstemplate/resources.grdp", ] - if (!is_chromeos_ash && !is_android) { ++++++ chromium-system-libusb.patch ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.217940022 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.221940031 +0200 @@ -32,8 +32,8 @@ --- electron-16.0.6.orig/build/linux/unbundle/replace_gn_files.py 2022-01-10 16:06:45.861270275 +0100 +++ electron-16.0.6/build/linux/unbundle/replace_gn_files.py 2022-01-13 16:02:37.237389046 +0100 @@ -25,6 +25,7 @@ REPLACEMENTS = { - 'libevent': 'base/third_party/libevent/BUILD.gn', 'libjpeg': 'third_party/libjpeg.gni', + 'libjxl' : 'third_party/libjxl/BUILD.gn', 'libpng': 'third_party/libpng/BUILD.gn', + 'libusb': 'third_party/libusb/BUILD.gn', 'libvpx': 'third_party/libvpx/BUILD.gn', ++++++ crashpad-use-system-abseil.patch ++++++ --- a/components/crash/core/app/crashpad.cc +++ b/components/crash/core/app/crashpad.cc @@ -28,7 +28,7 @@ #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "components/crash/core/app/crash_reporter_client.h" -#include "third_party/abseil-cpp/absl/base/internal/raw_logging.h" +#include <absl/base/internal/raw_logging.h> #include "third_party/crashpad/crashpad/client/annotation.h" #include "third_party/crashpad/crashpad/client/annotation_list.h" #include "third_party/crashpad/crashpad/client/crash_report_database.h" @@ -49,6 +49,7 @@ #include "components/crash/core/common/crash_key.h" // nogncheck #endif +#define raw_log_internal raw_logging_internal namespace crash_reporter { namespace { ++++++ create_tarball.sh ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.253940104 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.257940114 +0200 @@ -219,6 +219,7 @@ third_party/hunspell #heavily forked version third_party/iccjpeg #not in any distro third_party/inspector_protocol #integral part of chrome + third_party/ipcz #not in any distro third_party/jinja2 #Patch for deterministic builds. CONSIDER UNBUNDLING this when chrome switches to jinja 3.x third_party/jstemplate #javascript third_party/khronos #Modified to add ANGLE definitions ++++++ disable-catapult.patch ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.269940141 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.273940151 +0200 @@ -10,11 +10,11 @@ - "//third_party/catapult/telemetry:bitmaptools($host_toolchain)", ] if (!is_android) { - deps += [ "//chrome/test:telemetry_perf_unittests" ] + if (!is_castos) { @@ -379,7 +378,6 @@ group("gn_all") { - "//net/android:net_junit_tests", "//services:services_junit_tests", "//testing/android/junit:junit_unit_tests", + "//third_party/android_build_tools/lint:custom_lint_java", - "//third_party/catapult/devil", "//third_party/r8:custom_d8_java", "//tools/android:android_tools", @@ -51,9 +51,9 @@ - "//third_party/catapult/devil/", - "//third_party/catapult/dependency_manager/", - "//third_party/catapult/third_party/typ/", - "//third_party/depot_tools/pylint", "//third_party/depot_tools/pylint-1.5", "//third_party/depot_tools/pylint_main.py", + "//third_party/depot_tools/pylintrc", --- a/tools/binary_size/BUILD.gn +++ b/tools/binary_size/BUILD.gn @@ -20,7 +20,6 @@ python_library("sizes_py") { ++++++ disable-fuses.patch ++++++ Upstream allows some customization of runtime behavior by performing binary witchcraft on the Electron executable. This cannot work with a systemwide electron, and any program depending on features gated behind a fuse would need additional patching anyway. This patch removes fuse switches from the binary and makes the makes the compiler able to optimize away any dependant code which is now dead. --- src/electron/build/fuses/build.py.old 2022-09-22 10:38:21.630415700 +0200 +++ src/electron/build/fuses/build.py 2022-09-25 19:02:31.522510400 +0200 @@ -7,7 +7,9 @@ dir_path = os.path.dirname(os.path.realpath(__file__)) -SENTINEL = "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX" +# If your build process tries to patch the electron binary, it's going to break anyway with system electron. +# Changing the magic number to ensure that the build fails instead of getting problems later in runtime. +SENTINEL = "Unavailable with system electron" TEMPLATE_H = """ #ifndef ELECTRON_FUSES_H_ @@ -23,7 +25,7 @@ namespace electron::fuses { -extern const volatile char kFuseWire[]; +constexpr char kFuseWire[] = { /* sentinel */ {sentinel}, /* fuse_version */ {fuse_version}, /* fuse_wire_length */ {fuse_wire_length}, /* fuse_wire */ {initial_config}}; {getters} @@ -41,8 +43,6 @@ namespace electron::fuses { -const volatile char kFuseWire[] = { /* sentinel */ {sentinel}, /* fuse_version */ {fuse_version}, /* fuse_wire_length */ {fuse_wire_length}, /* fuse_wire */ {initial_config}}; - {getters} } // namespace electron:fuses @@ -71,12 +71,18 @@ index += 1 initial_config += fuse_defaults[fuse] name = ''.join(word.title() for word in fuse.split('_')) - getters_h += "FUSE_EXPORT bool Is{name}Enabled();\n".replace("{name}", name) - getters_cc += """ -bool Is{name}Enabled() { + getters_h += """ +constexpr bool INLINE_Is{name}Enabled() { return kFuseWire[{index}] == '1'; } +#define Is{name}Enabled INLINE_Is{name}Enabled """.replace("{name}", name).replace("{index}", str(index)) + getters_cc += """ +#undef Is{name}Enabled +FUSE_EXPORT bool Is{name}Enabled() { + return INLINE_Is{name}Enabled(); +} +""".replace("{name}", name) def c_hex(n): s = hex(n)[2:] @@ -88,12 +94,13 @@ arr.append(c_hex(ord(char))) return ",".join(arr) -header = TEMPLATE_H.replace("{getters}", getters_h.strip()) -impl = TEMPLATE_CC.replace("{sentinel}", hex_arr(SENTINEL)) -impl = impl.replace("{fuse_version}", c_hex(fuse_version)) -impl = impl.replace("{fuse_wire_length}", c_hex(len(fuses))) -impl = impl.replace("{initial_config}", hex_arr(initial_config)) -impl = impl.replace("{getters}", getters_cc.strip()) +header = TEMPLATE_H.replace("{sentinel}", hex_arr(SENTINEL)) +header = header.replace("{fuse_version}", c_hex(fuse_version)) +header = header.replace("{fuse_wire_length}", c_hex(len(fuses))) +header = header.replace("{initial_config}", hex_arr(initial_config)) +header = header.replace("{getters}", getters_h.strip()) + +impl = TEMPLATE_CC.replace("{getters}", getters_cc.strip()) with open(sys.argv[1], 'w') as f: f.write(header) ++++++ electron-13-fix-use-thin-lto.patch ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.305940224 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.309940233 +0200 @@ -2,13 +2,14 @@ =================================================================== --- electron-17.1.0.orig/build/config/compiler/compiler.gni 2022-03-09 08:27:56.719840060 +0100 +++ electron-17.1.0/build/config/compiler/compiler.gni 2022-03-09 13:07:58.709063960 +0100 -@@ -71,11 +71,7 @@ declare_args() { - # Use it by default on official-optimized android and Chrome OS builds, but - # not ARC or linux-chromeos since it's been seen to not play nicely with - # Chrome's clang. crbug.com/1033839 +@@ -71,12 +71,7 @@ declare_args() { + # Disabled in iOS cronet builds since build step cronet_static_complete + # wants to build a .a file consumable by external clients, and they won't + # have the same LLVM revisions as us, making bitcode useless to them. - use_thin_lto = - is_cfi || (is_clang && is_official_build && chrome_pgo_phase != 1 && -- (is_linux || is_win || is_mac || (is_ios && use_lld) || +- (is_linux || is_win || is_mac || +- (is_ios && use_lld && !is_cronet_build) || - (is_android && target_os != "chromeos") || - (is_chromeos && is_chromeos_device))) + use_thin_lto = false ++++++ electron-16-std-vector-non-const.patch ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.321940260 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.325940270 +0200 @@ -113,7 +113,7 @@ --- electron-17.1.0.orig/electron/shell/browser/api/electron_api_app.h 2022-03-07 16:07:24.343397858 +0100 +++ electron-17.1.0/electron/shell/browser/api/electron_api_app.h 2022-03-09 08:29:01.682773127 +0100 @@ -194,7 +194,7 @@ class App : public ElectronBrowserClient - std::string GetLocaleCountryCode(); + std::string GetSystemLocale(gin_helper::ErrorThrower thrower) const; void OnSecondInstance(const base::CommandLine& cmd, const base::FilePath& cwd, - const std::vector<const uint8_t> additional_data); ++++++ electron-20.2.0.tar.xz -> electron-21.1.0.tar.xz ++++++ /work/SRC/openSUSE:Factory/nodejs-electron/electron-20.2.0.tar.xz /work/SRC/openSUSE:Factory/.nodejs-electron.new.2275/electron-21.1.0.tar.xz differ: char 15, line 1 ++++++ gtk_ui_platform_stub-incomplete-type-LinuxInputMethodContext.patch ++++++ >From bba20934da0ab4066f178ab278c0728b3ef49d16 Mon Sep 17 00:00:00 2001 From: Stephan Hartmann <sth...@googlemail.com> Date: Mon, 22 Aug 2022 16:42:16 +0000 Subject: [PATCH] libstdc++: fix incomplete type of ui::LinuxInputMethodContext Destructor of std::unique_ptr in libstdc++ uses sizeof() which requires full definition of ui::LinuxInputMethodContext for return type of gtk::GtkUiPlatformStub::CreateInputMethodContext(). Bug: 957519 Change-Id: I0e74265e1f352afec374dc6b0abb6d6b79371cf1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3845078 Reviewed-by: Thomas Anderson <thomasander...@chromium.org> Commit-Queue: Stephan Hartmann <sth...@googlemail.com> Cr-Commit-Position: refs/heads/main@{#1037800} --- ui/gtk/gtk_ui_platform_stub.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/gtk/gtk_ui_platform_stub.cc b/ui/gtk/gtk_ui_platform_stub.cc index 5f01c8bd8ffda..bfd10bc796109 100644 --- a/ui/gtk/gtk_ui_platform_stub.cc +++ b/ui/gtk/gtk_ui_platform_stub.cc @@ -5,6 +5,7 @@ #include "ui/gtk/gtk_ui_platform_stub.h" #include "base/callback.h" +#include "ui/base/ime/linux/linux_input_method_context.h" namespace gtk { ++++++ intl-objects-icu71-UNUM_APPROXIMATELY_SIGN_FIELD.patch ++++++ >From ba6db33e06999bf6f6b34c487c09e60ae76337c1 Mon Sep 17 00:00:00 2001 From: Frank Tang <ft...@chromium.org> Date: Tue, 21 Jun 2022 17:42:26 -0700 Subject: [PATCH] Fix unreachable code under --harmony-intl-number-format-v3 ICU 71 added new enum value UNUM_APPROXIMATELY_SIGN_FIELD need to map to "approximatelySign" We also discover a spec bug in https://github.com/tc39/proposal-intl-numberformat-v3/issues/99 All the parts of formatRangeToParts should have a source "shared" for the case that start and end are the same or very close. Bug: chromium:1336865 Change-Id: I89142479989d3d2017d8cb89194db737710c38ed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3717278 Reviewed-by: Shu-yu Guo <s...@chromium.org> Commit-Queue: Frank Tang <ft...@chromium.org> Cr-Commit-Position: refs/heads/main@{#81286} --- src/init/heap-symbols.h | 1 + src/objects/intl-objects.cc | 3 + test/intl/regress-1336865.js | 79 ++++++++++++++++++++ tools/v8heapconst.py | 140 +++++++++++++++++------------------ 4 files changed, 153 insertions(+), 70 deletions(-) create mode 100644 test/intl/regress-1336865.js diff --git a/src/init/heap-symbols.h b/src/init/heap-symbols.h index da2cdccf1d5..c00e2c45097 100644 --- a/v8/src/init/heap-symbols.h +++ b/v8/src/init/heap-symbols.h @@ -8,6 +8,7 @@ #ifdef V8_INTL_SUPPORT #define INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _) \ V(_, adoptText_string, "adoptText") \ + V(_, approximatelySign_string, "approximatelySign") \ V(_, baseName_string, "baseName") \ V(_, accounting_string, "accounting") \ V(_, breakType_string, "breakType") \ diff --git a/src/objects/intl-objects.cc b/src/objects/intl-objects.cc index 93f7000bf5d..25cc4fdd04a 100644 --- a/v8/src/objects/intl-objects.cc +++ b/v8/src/objects/intl-objects.cc @@ -2744,6 +2744,9 @@ Handle<String> Intl::NumberFieldToType(Isolate* isolate, case UNUM_MEASURE_UNIT_FIELD: return isolate->factory()->unit_string(); + case UNUM_APPROXIMATELY_SIGN_FIELD: + return isolate->factory()->approximatelySign_string(); + default: UNREACHABLE(); } ++++++ partition_alloc-no-lto.patch ++++++ Compile files which declare functions in inline assembly without LTO due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57703 --- src/base/allocator/partition_allocator/BUILD.gn.old 2022-10-01 13:53:03.367797474 +0200 +++ src/base/allocator/partition_allocator/BUILD.gn 2022-10-05 14:23:53.999860356 +0200 @@ -51,6 +51,22 @@ } } +source_set("partition_alloc_asm") { + defines = [ "PA_PCSCAN_STACK_SUPPORTED" ] + cflags = [ "-fno-lto" ] + if (current_cpu == "x64") { + sources = [ "starscan/stack/asm/x64/push_registers_asm.cc" ] + } else if (current_cpu == "x86") { + sources = [ "starscan/stack/asm/x86/push_registers_asm.cc" ] + } else if (current_cpu == "arm") { + sources = [ "starscan/stack/asm/arm/push_registers_asm.cc" ] + } else if (current_cpu == "arm64") { + sources = [ "starscan/stack/asm/arm64/push_registers_asm.cc" ] + } else { + # To support a trampoline for another arch, please refer to v8/src/heap/base. + } +} + target(partition_alloc_target_type, "partition_alloc") { sources = [ "address_pool_manager.cc", @@ -262,20 +278,10 @@ "partition_alloc_base/mac/scoped_typeref.h", ] } - if (current_cpu == "x64") { - defines += [ "PA_PCSCAN_STACK_SUPPORTED" ] - sources += [ "starscan/stack/asm/x64/push_registers_asm.cc" ] - } else if (current_cpu == "x86") { - defines += [ "PA_PCSCAN_STACK_SUPPORTED" ] - sources += [ "starscan/stack/asm/x86/push_registers_asm.cc" ] - } else if (current_cpu == "arm") { - defines += [ "PA_PCSCAN_STACK_SUPPORTED" ] - sources += [ "starscan/stack/asm/arm/push_registers_asm.cc" ] - } else if (current_cpu == "arm64") { + deps = [] + if (current_cpu == "x64" || current_cpu == "x86" || current_cpu == "arm" || current_cpu == "arm64") { defines += [ "PA_PCSCAN_STACK_SUPPORTED" ] - sources += [ "starscan/stack/asm/arm64/push_registers_asm.cc" ] - } else { - # To support a trampoline for another arch, please refer to v8/src/heap/base. + deps += [ ":partition_alloc_asm" ] } public_deps = [ ":chromecast_buildflags", @@ -289,7 +295,6 @@ ":partition_alloc_implementation", ":memory_tagging", ] - deps = [] public_configs = [] if (is_android) { # tagging.cc requires __arm_mte_set_* functions. ++++++ pending_beacon_dispatcher-virtual-functions-cannot-be-constexpr.patch ++++++ >From 177ad3a80b18aa94e6564f7ba71ee7a849ff5b36 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz <jdap...@igalia.com> Date: Thu, 1 Sep 2022 15:52:05 +0000 Subject: [PATCH] libstdc++: do not make ReverseBeaconTimeoutSorter function call operator constexpr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In C++17 STL, std::sort is not a constexpr in any case. So we do not get any benefit from making ReverseBeaconTimeoutSorter a constexpr. This will fail, as in GCC the function call operator is implicitly virtual, and virtuals cannot be constexpr before C++20. Bug: 819294, 957519 Change-Id: I596f7ea9acb7747f4816b59a86ba794f16e195b2 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3864599 Reviewed-by: Nate Chapin <jap...@chromium.org> Commit-Queue: Jos?? Dapena Paz <jdap...@igalia.com> Cr-Commit-Position: refs/heads/main@{#1042121} --- .../blink/renderer/core/frame/pending_beacon_dispatcher.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/third_party/blink/renderer/core/frame/pending_beacon_dispatcher.cc b/third_party/blink/renderer/core/frame/pending_beacon_dispatcher.cc index 777921b9b5fda..aef913ae85059 100644 --- a/third_party/blink/renderer/core/frame/pending_beacon_dispatcher.cc +++ b/third_party/blink/renderer/core/frame/pending_beacon_dispatcher.cc @@ -25,9 +25,8 @@ namespace { constexpr base::TimeDelta kBeaconTimeoutInterval = base::Milliseconds(100); struct ReverseBeaconTimeoutSorter { - constexpr bool operator()( - const Member<PendingBeaconDispatcher::PendingBeacon>& lhs, - const Member<PendingBeaconDispatcher::PendingBeacon>& rhs) { + bool operator()(const Member<PendingBeaconDispatcher::PendingBeacon>& lhs, + const Member<PendingBeaconDispatcher::PendingBeacon>& rhs) { // Negative timeout is not accepted. DCHECK(!lhs->GetBackgroundTimeout().is_negative()); DCHECK(!rhs->GetBackgroundTimeout().is_negative()); ++++++ replace_gn_files-system-libs.patch ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.481940628 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.485940637 +0200 @@ -1,57 +1,12 @@ --- chromium-79.0.3945.29/build/linux/unbundle/replace_gn_files.py.system-dav1d 2019-11-09 14:30:17.297016975 +0100 +++ chromium-79.0.3945.29/build/linux/unbundle/replace_gn_files.py 2019-11-10 09:40:19.694662891 +0100 -@@ -17,12 +17,41 @@ import sys - - - REPLACEMENTS = { -+ 'absl_algorithm': 'third_party/abseil-cpp/absl/algorithm/BUILD.gn', -+ 'absl_base': 'third_party/abseil-cpp/absl/base/BUILD.gn', -+ 'absl_cleanup': 'third_party/abseil-cpp/absl/cleanup/BUILD.gn', -+ 'absl_container': 'third_party/abseil-cpp/absl/container/BUILD.gn', -+ 'absl_debugging': 'third_party/abseil-cpp/absl/debugging/BUILD.gn', -+ 'absl_flags': 'third_party/abseil-cpp/absl/flags/BUILD.gn', -+ 'absl_functional': 'third_party/abseil-cpp/absl/functional/BUILD.gn', -+ 'absl_hash': 'third_party/abseil-cpp/absl/hash/BUILD.gn', -+ 'absl_memory': 'third_party/abseil-cpp/absl/memory/BUILD.gn', -+ 'absl_meta': 'third_party/abseil-cpp/absl/meta/BUILD.gn', -+ 'absl_numeric': 'third_party/abseil-cpp/absl/numeric/BUILD.gn', -+ 'absl_random': 'third_party/abseil-cpp/absl/random/BUILD.gn', -+ 'absl_status': 'third_party/abseil-cpp/absl/status/BUILD.gn', -+ 'absl_strings': 'third_party/abseil-cpp/absl/strings/BUILD.gn', -+ 'absl_synchronization': 'third_party/abseil-cpp/absl/synchronization/BUILD.gn', -+ 'absl_time': 'third_party/abseil-cpp/absl/time/BUILD.gn', -+ 'absl_types': 'third_party/abseil-cpp/absl/types/BUILD.gn', -+ 'absl_utility': 'third_party/abseil-cpp/absl/utility/BUILD.gn', -+ 'brotli': 'third_party/brotli/BUILD.gn', -+ 'crc32c': 'third_party/crc32c/BUILD.gn', -+ 'dav1d': 'third_party/dav1d/BUILD.gn', -+ 'double-conversion': 'base/third_party/double_conversion/BUILD.gn', +@@ -40,6 +40,8 @@ import sys + 'double-conversion': 'base/third_party/double_conversion/BUILD.gn', 'ffmpeg': 'third_party/ffmpeg/BUILD.gn', 'flac': 'third_party/flac/BUILD.gn', + 'flatbuffers': 'third_party/flatbuffers/BUILD.gn', ++ 'libsecret' : 'third_party/libsecret/BUILD.gn', 'fontconfig': 'third_party/fontconfig/BUILD.gn', 'freetype': 'build/config/freetype/freetype.gni', 'harfbuzz-ng': 'third_party/harfbuzz-ng/harfbuzz.gni', - 'icu': 'third_party/icu/BUILD.gn', -+ 'libXNVCtrl' : 'third_party/angle/src/third_party/libXNVCtrl/BUILD.gn', -+ 'libaom' : 'third_party/libaom/BUILD.gn', -+ 'libavif' : 'third_party/libavif/BUILD.gn', -+ 'libjxl' : 'third_party/libjxl/BUILD.gn', -+ 'libsecret' : 'third_party/libsecret/BUILD.gn', -+ 'libyuv' : 'third_party/libyuv/BUILD.gn', - 'libdrm': 'third_party/libdrm/BUILD.gn', - 'libevent': 'base/third_party/libevent/BUILD.gn', - 'libjpeg': 'third_party/libjpeg.gni', -@@ -33,6 +65,11 @@ - 'opus': 'third_party/opus/BUILD.gn', - 're2': 'third_party/re2/BUILD.gn', - 'snappy': 'third_party/snappy/BUILD.gn', -+ 'swiftshader-SPIRV-Headers' : 'third_party/swiftshader/third_party/SPIRV-Headers/BUILD.gn', -+ 'swiftshader-SPIRV-Tools' : 'third_party/swiftshader/third_party/SPIRV-Tools/BUILD.gn', -+ 'vulkan-SPIRV-Headers' : 'third_party/vulkan-deps/spirv-headers/src/BUILD.gn', -+ 'vulkan-SPIRV-Tools' : 'third_party/vulkan-deps/spirv-tools/src/BUILD.gn', -+ 'woff2': 'third_party/woff2/BUILD.gn', - 'zlib': 'third_party/zlib/BUILD.gn', - } - ++++++ std_lib_extras-missing-intptr_t.patch ++++++ --- src/third_party/blink/renderer/platform/wtf/std_lib_extras.h.old 2022-09-27 21:24:37.479779030 +0200 +++ src/third_party/blink/renderer/platform/wtf/std_lib_extras.h 2022-10-03 12:46:11.010900350 +0200 @@ -27,6 +27,7 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_STD_LIB_EXTRAS_H_ #include <cstddef> +#include <cstdint> #include "base/check.h" #include "base/dcheck_is_on.h" ++++++ support-i386.patch ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.509940692 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.513940701 +0200 @@ -20,7 +20,7 @@ - target_os != "ios" && target_os != "mac" && - (target_os != "linux" || use_libfuzzer || !build_with_chromium) +is_valid_x86_target = true + + # Note: v8_target_cpu == arm allows using the V8 arm simulator on x86 for fuzzing. assert( - is_valid_x86_target || target_cpu != "x86", - "'target_cpu=x86' is not supported for 'target_os=$target_os'. Consider omitting 'target_cpu' (default) or using 'target_cpu=x64' instead.") ++++++ system-abseil-missing-shims.patch ++++++ >From 6ebb4b4d397d29f8cf2bc2f2c4c2e81fcd060253 Mon Sep 17 00:00:00 2001 From: Bruno Pitrus <brunopit...@hotmail.com> Date: Sat, 17 Sep 2022 20:43:39 +0000 Subject: [PATCH] Add missing libraries to Abseil shim This is needed to build Chromium 102 or newer with system Abseil. Change-Id: I724367416b59637a77c7bb6d24a201fa83057dc7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3902464 Reviewed-by: Thomas Anderson <thomasander...@chromium.org> Commit-Queue: Thomas Anderson <thomasander...@chromium.org> Auto-Submit: Bruno Pitrus <brunopit...@hotmail.com> Cr-Commit-Position: refs/heads/main@{#1048414} --- build/linux/unbundle/absl_functional.gn | 15 +++++++++++++++ build/linux/unbundle/absl_utility.gn | 17 +++++++++++++++++ build/linux/unbundle/replace_gn_files.py | 3 ++- 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 build/linux/unbundle/absl_utility.gn diff --git a/build/linux/unbundle/absl_utility.gn b/build/linux/unbundle/absl_utility.gn new file mode 100644 index 0000000000000..8dda6ed01afa1 --- /dev/null +++ b/build/linux/unbundle/absl_utility.gn @@ -0,0 +1,17 @@ +import("//build/config/linux/pkg_config.gni") +import("//build/shim_headers.gni") + +pkg_config("system_absl_utility") { + packages = [ "absl_utility" ] +} + +shim_headers("utility_shim") { + root_path = "." + prefix = "absl/utility/" + headers = [ "utility.h" ] +} + +source_set("utility") { + deps = [ ":utility_shim" ] + public_configs = [ ":system_absl_utility" ] +} diff --git a/build/linux/unbundle/replace_gn_files.py b/build/linux/unbundle/replace_gn_files.py index e921ec57f9c1d..6b57c1955e60b 100755 --- a/build/linux/unbundle/replace_gn_files.py +++ b/build/linux/unbundle/replace_gn_files.py @@ -15,7 +15,7 @@ REPLACEMENTS = { - # Use system libabsl_2xxx. These 17 shims MUST be used together. + # Use system libabsl_2xxx. These 18 shims MUST be used together. 'absl_algorithm': 'third_party/abseil-cpp/absl/algorithm/BUILD.gn', 'absl_base': 'third_party/abseil-cpp/absl/base/BUILD.gn', 'absl_cleanup': 'third_party/abseil-cpp/absl/cleanup/BUILD.gn', @@ -33,6 +33,7 @@ 'absl_synchronization': 'third_party/abseil-cpp/absl/synchronization/BUILD.gn', 'absl_time': 'third_party/abseil-cpp/absl/time/BUILD.gn', 'absl_types': 'third_party/abseil-cpp/absl/types/BUILD.gn', + 'absl_utility': 'third_party/abseil-cpp/absl/utility/BUILD.gn', # 'brotli': 'third_party/brotli/BUILD.gn', 'crc32c': 'third_party/crc32c/BUILD.gn', --- src/build/linux/unbundle/absl_base.gn.old 2022-09-27 10:37:01.546436600 +0200 +++ src/build/linux/unbundle/absl_base.gn 2022-09-27 18:15:13.664636500 +0200 @@ -62,3 +62,6 @@ source_set("config_test") { } + +source_set("prefetch_test") { +} --- src/build/linux/unbundle/absl_functional.gn.old 2022-09-27 10:37:01.546436600 +0200 +++ src/build/linux/unbundle/absl_functional.gn 2022-09-27 18:17:20.334173300 +0200 @@ -15,3 +15,36 @@ deps = [ ":bind_front_shim" ] public_configs = [ ":system_absl_bind_front" ] } + +pkg_config("system_absl_function_ref") { + packages = [ "absl_function_ref" ] +} + +shim_headers("function_ref_shim") { + root_path = "." + prefix = "absl/functional/" + headers = [ "function_ref.h" ] +} + +source_set("function_ref") { + deps = [ ":function_ref_shim" ] + public_configs = [ ":system_absl_function_ref" ] +} + +pkg_config("system_absl_any_invocable") { + packages = [ "absl_any_invocable" ] +} + +shim_headers("any_invocable_shim") { + root_path = "." + prefix = "absl/functional/" + headers = [ "any_invocable.h" ] +} + +source_set("any_invocable") { + deps = [ ":any_invocable_shim" ] + public_configs = [ ":system_absl_any_invocable" ] +} + +source_set("any_invocable_test") { +} --- src/build/linux/unbundle/absl_strings.gn.old 2022-09-27 10:37:01.546436600 +0200 +++ src/build/linux/unbundle/absl_strings.gn 2022-09-27 18:17:44.553539300 +0200 @@ -61,6 +61,8 @@ source_set("ascii_test") { } +source_set("cord_buffer_test") { +} source_set("cord_data_edge_test") { } source_set("cord_rep_btree_navigator_test") { ++++++ system-gtest.patch ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.533940747 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.537940756 +0200 @@ -6,11 +6,10 @@ // and testing/gmock, instead of directly including files in // third_party/googletest. --#include "third_party/googletest/src/googletest/include/gtest/gtest_prod.h" +-#include "third_party/googletest/src/googletest/include/gtest/gtest_prod.h" // IWYU pragma: export +#include <gtest/gtest_prod.h> #endif // TESTING_GTEST_INCLUDE_GTEST_GTEST_PROD_H_ -\ No newline at end of file --- a/third_party/electron_node/deps/googletest/BUILD.gn 2022-07-22 14:56:38.984761919 +0200 +++ b/third_party/electron_node/deps/googletest/BUILD.gn 2022-07-29 19:21:57.655767809 +0200 @@ -1,61 +1,11 @@ ++++++ system-pydeps.patch ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.561940811 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.565940820 +0200 @@ -71,4 +71,15 @@ ../../build/scripts/blinkbuild/__init__.py ../../build/scripts/blinkbuild/name_style_converter.py bind_gen/__init__.py +--- a/third_party/blink/renderer/modules/sanitizer_api/builtins/generate_attribute_lists.py ++++ b/third_party/blink/renderer/modules/sanitizer_api/builtins/generate_attribute_lists.py +@@ -4,7 +4,7 @@ + # found in the LICENSE file. + """Generate list of attribute names known to this version of Chromium.""" + +-from pyjson5.src import json5 ++import json5 + import optparse + import sys + ++++++ system-six.patch ++++++ --- /var/tmp/diff_new_pack.kw086C/_old 2022-10-08 01:23:07.577940848 +0200 +++ /var/tmp/diff_new_pack.kw086C/_new 2022-10-08 01:23:07.585940866 +0200 @@ -15,22 +15,4 @@ help='Wrap this script in another python ' 'execution to disable site-packages. This is a ' 'fix for http://crbug.com/605592') ---- a/third_party/protobuf/BUILD.gn -+++ b/third_party/protobuf/BUILD.gn -@@ -696,7 +696,6 @@ - ":copy_google", - ":copy_google_protobuf", - ":copy_google_protobuf_internal", -- ":copy_six", - ] - } - -@@ -707,7 +706,6 @@ - - # Targets that depend on this should depend on the copied data files. - data = get_target_outputs(":copy_google") -- data += get_target_outputs(":copy_six") - data += get_target_outputs(":copy_google_protobuf") - data += get_target_outputs(":copy_google_protobuf_internal") - } ++++++ v8-icu69-FormattedNumberRange-no-default-constructible.patch ++++++ --- src/v8/include/v8-maybe.h.old 2022-09-27 21:29:49.591750100 +0200 +++ src/v8/include/v8-maybe.h 2022-10-02 15:29:28.460199600 +0200 @@ -8,11 +8,15 @@ #include <type_traits> #include <utility> +#include <unicode/numberrangeformatter.h> + #include "v8-internal.h" // NOLINT(build/include_directory) #include "v8config.h" // NOLINT(build/include_directory) namespace v8 { +icu::number::FormattedNumberRange SUSE_AwfulHackForIcu69(); + namespace api_internal { // Called when ToChecked is called on an empty Maybe. V8_EXPORT void FromJustIsNothing(); @@ -155,6 +159,11 @@ inline Maybe<void> JustVoid() { return Maybe<void>(Maybe<void>::JustTag()); } +//Awful hack to make Electron compile with icu-69. Note that this header is public +//thus electron-devel now requires icu-devel +template<> inline Maybe<icu::number::FormattedNumberRange>::Maybe() : has_value_(false), + value_(SUSE_AwfulHackForIcu69()) {} + } // namespace v8 #endif // INCLUDE_V8_MAYBE_H_ --- src/v8/src/objects/js-number-format.cc.old 2022-09-27 21:29:49.787848100 +0200 +++ src/v8/src/objects/js-number-format.cc 2022-10-02 15:36:28.816558900 +0200 @@ -30,6 +30,12 @@ #include "unicode/uvernum.h" // for U_ICU_VERSION_MAJOR_NUM namespace v8 { + +icu::number::FormattedNumberRange SUSE_AwfulHackForIcu69() { + // This constructor is private so the file needs compiled with -fno-access-control + return icu::number::FormattedNumberRange(U_INVALID_STATE_ERROR); +} + namespace internal { namespace { --- src/v8/BUILD.gn.old 2022-09-27 21:33:45.805792800 +0200 +++ src/v8/BUILD.gn 2022-10-02 15:43:25.581854000 +0200 @@ -5293,6 +5293,9 @@ "src/tracing/trace-categories.h", ] } + +#SUSE: patched code in js-number-format.cc accesses private ICU api + cflags_cc = [ "-fno-access-control" ] } group("v8_base") {