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-07-05 12:09:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nodejs-electron (Old) and /work/SRC/openSUSE:Factory/.nodejs-electron.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs-electron" Tue Jul 5 12:09:05 2022 rev:27 rq:986595 version:19.0.7 Changes: -------- --- /work/SRC/openSUSE:Factory/nodejs-electron/nodejs-electron.changes 2022-05-31 15:48:07.432017761 +0200 +++ /work/SRC/openSUSE:Factory/.nodejs-electron.new.1548/nodejs-electron.changes 2022-07-05 12:09:24.492550526 +0200 @@ -1,0 +2,119 @@ +Sat Jul 2 09:16:30 UTC 2022 - Bruno Pitrus <brunopit...@hotmail.com> +- Update to 19.0.7: + * Breaking change: nativeWindowOpen removed + * Updated Chromium to 102.0.5005.134 + * Fixed an error where setWindowOpenHandler() would crash if the callback threw an error. + * Fixed an issue where passing { name: 'All Files', extensions: ['*'] } in the filters param of open or save dialogs on Linux would disallow choosing files without an extension. + * Fixed missing Sec-CH-UA headers and empty navigator.userAgentData. + * Backported fix for CVE-2022-2162. +- Move lastchange.py in create tarball script before patching for reproducibility sake +- Disable widevine ??? not supported by upstream and does not build anymore +- Use gcc also on aarch64 due to clang crashes while compiling +- Temporarily disable aom codec on aarch64 Tumbleweed to reduce binary size +- Fix Fedora aarch64 build +- Fix private ANGLE dlls leaking into rpm provides (bsc#1108175) +- Ship chrome_crashpad_handler ??? some code expects it to be there +- Do not ship libVkICD_mock_icd.so ??? that's a build tool (not shipped by upstream) +- Do not compile tensorflow ??? it is huge, and urlbar prediction is of no use in Electron +- Do not compile openscreen/chromecast ??? useless in Electron +- Do not compile safe browsing ??? useless in Electron +- Do not compile error reporter ??? useless for our use case +- Disable webgpu support ??? it is HUGE and we do not ship any apps which depend on it +- Use system freetype, icu also on 15.3 and 15.4 +- Use system harfbuzz also on 15.4 +- Use system libraries instead of vendored ones: + * abseil (TW and Rawhide, GCC only) + * avif (15.4+ and Fedora only) + * brotli + * crc32c (TW and Fedora only) + * dav1d (TW and Rawhide only) + * double-conversion + * jsoncpp + * jxl (Fedora only) + * libbsd + * nspr + * spirv (TW only) + * woff2 + * xxhash + * zlib in courgette + * lcms2, libjpeg, libpng16, openjp2, tiff in PDFium + * cares in node + * nghttp2 in node (TW and Fedora only) + * XNVCtrl in angle (Fedora only) + * llvm in swiftshader (arm64 only; intel does not use llvm) +- Replace chromium-98-compiler.patch with chromium-102-compiler.patch +- Add patches: + * abseil_string_number_conversions-do-not-assume-ABI.patch + * abseil-remove-unused-targets.patch + * angle-system-xxhash.patch + * async_shared_storage_database_impl-missing-absl-WrapUnique.patch + * attribution_manager_impl-missing-absl-WrapUnique.patch + * ax_property_node-missing-unique_ptr-forward.patch + * base-system-nspr.patch + * byteswap-constexpr.patch (thanks Debian) + * byteswap-constexpr2.patch (thanks Debian) + * cares_public_headers.patch + * chromium-101-libxml-unbundle.patch + * chromium-102-fenced_frame_utils-include.patch + * chromium-99-pdfium-system-libtiff.patch (thanks Mageia) + * chromium-fix-pac-with-gcc.patch + * chromium-remove-bundled-roboto-font.patch + * dark_mode_types-uint8_t.patch + * device_perf_info-missing-uint32_t.patch + * ffmpeg-new-channel-layout.patch + * json_generation-missing-unique_ptr.patch + * metrics_recorder-missing-string.patch + * multi_channel_content_detector-missing-unique_ptr.patch + * multiplex_router-ExclusiveSyncWaitInfo-is-not-is_constructible_v-on-clang.patch + * nested-nested-nested-nested-nested-nested-regex-patterns.patch + * node-system-libs.patch (thanks Arch) + * pdfium-fix-system-libs.patch (thanks Mageia) + * process_doc_wrapper-do-not-assume-ABI.patch + * replace_gn_files-system-libs.patch + * skia_utils-missing-uint64_t.patch + * support-i386.patch (thanks Debian) + * swiftshader-use-system-llvm.patch + * system-libbsd.patch + * system-jsoncpp.patch (thanks Debian) + * system-zlib.patch (thanks Debian) + * thread_annotations-fix-build-with-system-abseil.patch +- Add GN shims (provided directly instead of as patches, but should also be submitted 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 + * brotli.gn + * crc32c.gn + * dav1d.gn (thanks Mageia) + * double-conversion.gn + * libaom.gn (thanks Mageia) + * libavif.gn + * libjxl.gn + * libXNVCtrl.gn + * swiftshader-SPIRV-Headers.gn + * swiftshader-SPIRV-Tools.gn + * vulkan-SPIRV-Headers.gn + * vulkan-SPIRV-Tools.gn + * woff2.gn +- Remove chromium-disable-parallel-gold.patch as it referes to old now-unsupported systems +- Remove patches applied upstream: + * chromium-98-MiraclePtr-gcc-ice.patch + * chromium-98-WaylandFrameManager-check.patch + * chromium-glibc-2.34.patch + * electron-16-v8-missing-utility-include.patch + * electron-17-breakpad-align-int-types.patch + +------------------------------------------------------------------- Old: ---- chromium-98-MiraclePtr-gcc-ice.patch chromium-98-WaylandFrameManager-check.patch chromium-98-compiler.patch chromium-disable-parallel-gold.patch chromium-glibc-2.34.patch electron-16-v8-missing-utility-include.patch electron-17-breakpad-align-int-types.patch electron-17.4.6.tar.xz New: ---- 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 angle-system-xxhash.patch async_shared_storage_database_impl-missing-absl-WrapUnique.patch attribution_manager_impl-missing-absl-WrapUnique.patch ax_property_node-missing-unique_ptr-forward.patch base-system-nspr.patch brotli.gn byteswap-constexpr.patch byteswap-constexpr2.patch cares_public_headers.patch chromium-101-libxml-unbundle.patch chromium-102-compiler.patch chromium-102-fenced_frame_utils-include.patch chromium-99-pdfium-system-libtiff.patch chromium-fix-pac-with-gcc.patch chromium-remove-bundled-roboto-font.patch crc32c.gn dark_mode_types-uint8_t.patch dav1d.gn device_perf_info-missing-uint32_t.patch double-conversion.gn electron-19.0.7.tar.xz ffmpeg-new-channel-layout.patch json_generation-missing-unique_ptr.patch libXNVCtrl.gn libaom.gn libavif.gn libjxl.gn metrics_recorder-missing-string.patch multi_channel_content_detector-missing-unique_ptr.patch nested-nested-nested-nested-nested-nested-regex-patterns.patch node-system-libs.patch pdfium-fix-system-libs.patch process_doc_wrapper-do-not-assume-ABI.patch replace_gn_files-system-libs.patch skia_utils-missing-uint64_t.patch support-i386.patch swiftshader-SPIRV-Headers.gn swiftshader-SPIRV-Tools.gn swiftshader-use-system-llvm.patch system-jsoncpp.patch system-libbsd.patch system-zlib.patch thread_annotations-fix-build-with-system-abseil.patch vulkan-SPIRV-Headers.gn vulkan-SPIRV-Tools.gn woff2.gn ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nodejs-electron.spec ++++++ ++++ 1028 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/nodejs-electron/nodejs-electron.spec ++++ and /work/SRC/openSUSE:Factory/.nodejs-electron.new.1548/nodejs-electron.spec ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.EAVmig/_old 2022-07-05 12:09:38.916571243 +0200 +++ /var/tmp/diff_new_pack.EAVmig/_new 2022-07-05 12:09:38.920571249 +0200 @@ -4,18 +4,24 @@ <disk> <size unit="G">24</size> </disk> + <memory> + <size unit="G">16</size> + </memory> <physicalmemory> - <size unit="G">8</size> + <size unit="G">12</size> </physicalmemory> + <processors>8</processors> </hardware> <overwrite> <conditions> <arch>x86_64</arch> + <arch>i586</arch> </conditions> <hardware> <memory> - <size unit="G">24</size> + <size unit="G">32</size> </memory> + <processors>16</processors> </hardware> </overwrite> <overwrite> @@ -24,7 +30,7 @@ </conditions> <hardware> <cpu> - <flag>asimdrdm</flag> + <flag>asimdrdm</flag> <!-- prevent scheduling on old machines --> </cpu> </hardware> </overwrite> ++++++ abseil-remove-unused-targets.patch ++++++ Make test targets invisible to GN to enable building with system abseil --- a/third_party/abseil-cpp/BUILD.gn 2022-06-14 12:31:29.330129700 +0200 +++ b/third_party/abseil-cpp/BUILD.gn 2022-06-23 22:05:35.293708600 +0200 @@ -106,15 +106,6 @@ visibility = [ ":absl" ] } -group("default") { - deps = [ - "absl/types:any", - "absl/types:bad_any_cast", - "absl/types:bad_optional_access", - "absl/types:optional", - "absl/types:span", - ] -} config("absl_include_config") { include_dirs = [ "." ] @@ -174,62 +165,3 @@ } } -if (build_with_chromium) { - import("//testing/test.gni") - - if (!is_component_build) { - test("absl_tests") { - testonly = true - deps = [ - "absl/algorithm:algorithm_test", - "absl/algorithm:container_test", - "absl/base:config_test", - "absl/cleanup:cleanup_test", - "absl/container:inlined_vector_test", - "absl/container:node_slot_policy_test", - "absl/container:sample_element_size_test", - "absl/hash:hash_test", - "absl/hash:low_level_hash_test", - "absl/memory:memory_test", - "absl/meta:type_traits_test", - "absl/profiling:exponential_biased_test", - "absl/profiling:periodic_sampler_test", - "absl/status:statusor_test", - "absl/strings:ascii_test", - "absl/strings:cord_data_edge_test", - "absl/strings:cord_rep_btree_navigator_test", - "absl/strings:cord_rep_btree_reader_test", - "absl/strings:cord_rep_btree_test", - "absl/strings:cord_rep_crc_test", - "absl/strings:cordz_functions_test", - "absl/strings:cordz_info_statistics_test", - "absl/strings:cordz_info_test", - "absl/strings:cordz_test", - "absl/strings:cordz_update_scope_test", - "absl/strings:cordz_update_tracker_test", - "absl/strings:match_test", - "absl/strings:str_replace_test", - "absl/strings:string_view_test", - "absl/types:optional_test", - "absl/types:variant_test", - "//third_party/googletest:gtest_main", - ] - } - } - - test("absl_hardening_tests") { - testonly = true - sources = [ "absl_hardening_test.cc" ] - deps = [ - "//base/test:run_all_unittests", - "//third_party/abseil-cpp/absl/base:config", - "//third_party/abseil-cpp/absl/container:fixed_array", - "//third_party/abseil-cpp/absl/container:inlined_vector", - "//third_party/abseil-cpp/absl/strings", - "//third_party/abseil-cpp/absl/types:optional", - "//third_party/abseil-cpp/absl/types:span", - "//third_party/abseil-cpp/absl/types:variant", - "//third_party/googletest:gtest", - ] - } -} --- a/BUILD.gn 2022-06-14 12:31:29.330129700 +0200 +++ b/BUILD.gn 2022-06-23 22:05:35.293708600 +0200 @@ -106,9 +106,6 @@ "//url:url_unittests", ] - if (!is_component_build) { - deps += [ "//third_party/abseil-cpp:absl_tests" ] - } if (!is_android && !is_chromecast) { deps += [ ++++++ abseil_string_number_conversions-do-not-assume-ABI.patch ++++++ You may not depend on the signatures of Abseil APIs. --- a/base/strings/abseil_string_number_conversions.h 2022-06-21 21:52:33.000000000 +0200 +++ b/base/strings/abseil_string_number_conversions.h 2022-06-24 07:31:47.677340600 +0200 @@ -8,9 +8,7 @@ #include "base/base_export.h" #include "base/strings/string_piece_forward.h" -namespace absl { -class uint128; -} // namespace absl +#include "third_party/abseil-cpp/absl/numeric/int128.h" namespace base { ++++++ absl_algorithm.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_algorithm_container") { packages = [ "absl_algorithm_container" ] } shim_headers("container_shim") { root_path = "." prefix = "absl/algorithm/" headers = [ "container.h", ] } source_set("container") { deps = [ ":container_shim" ] public_configs = [ ":system_absl_algorithm_container" ] } ++++++ absl_base.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_base") { packages = [ "absl_base" ] } pkg_config("system_absl_config") { packages = [ "absl_config" ] } pkg_config("system_absl_core_headers") { packages = [ "absl_core_headers" ] } shim_headers("base_shim") { root_path = "." prefix = "absl/base/" headers = [ "call_once.h", "casts.h", ] } source_set("base") { deps = [ ":base_shim" ] public_configs = [ ":system_absl_base" ] } shim_headers("config_shim") { root_path = "." prefix = "absl/base/" headers = [ "config.h", "options.h", "policy_checks.h", ] } source_set("config") { deps = [ ":config_shim" ] public_configs = [ ":system_absl_config" ] } shim_headers("core_headers_shim") { root_path = "." prefix = "absl/base/" headers = [ "attributes.h", "const_init.h", "macros.h", "optimization.h", "port.h", "thread_annotations.h", ] } source_set("core_headers") { deps = [ ":core_headers_shim" ] public_configs = [ ":system_absl_core_headers" ] } ++++++ absl_cleanup.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_cleanup") { packages = [ "absl_cleanup" ] } shim_headers("cleanup_shim") { root_path = "." prefix = "absl/cleanup/" headers = [ "cleanup.h", ] } source_set("cleanup") { deps = [ ":cleanup_shim" ] public_configs = [ ":system_absl_cleanup" ] } ++++++ absl_container.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_btree") { packages = [ "absl_btree" ] } pkg_config("system_absl_fixed_array") { packages = [ "absl_fixed_array" ] } pkg_config("system_absl_flat_hash_map") { packages = [ "absl_flat_hash_map" ] } pkg_config("system_absl_flat_hash_set") { packages = [ "absl_flat_hash_set" ] } pkg_config("system_absl_inlined_vector") { packages = [ "absl_inlined_vector" ] } pkg_config("system_absl_node_hash_map") { packages = [ "absl_node_hash_map" ] } pkg_config("system_absl_node_hash_set") { packages = [ "absl_node_hash_set" ] } shim_headers("btree_shim") { root_path = "." prefix = "absl/container/" headers = [ "btree_map.h", "btree_set.h", ] } source_set("btree") { deps = [ ":btree_shim" ] public_configs = [ ":system_absl_btree" ] } shim_headers("fixed_array_shim") { root_path = "." prefix = "absl/container/" headers = [ "fixed_array.h" ] } source_set("fixed_array") { deps = [ ":fixed_array_shim" ] public_configs = [ ":system_absl_fixed_array" ] } shim_headers("flat_hash_map_shim") { root_path = "." prefix = "absl/container/" headers = [ "flat_hash_map.h" ] } source_set("flat_hash_map") { deps = [ ":flat_hash_map_shim" ] public_configs = [ ":system_absl_flat_hash_map" ] } shim_headers("flat_hash_set_shim") { root_path = "." prefix = "absl/container/" headers = [ "flat_hash_set.h" ] } source_set("flat_hash_set") { deps = [ ":flat_hash_set_shim" ] public_configs = [ ":system_absl_flat_hash_set" ] } shim_headers("inlined_vector_shim") { root_path = "." prefix = "absl/container/" headers = [ "inlined_vector.h" ] } source_set("inlined_vector") { deps = [ ":inlined_vector_shim" ] public_configs = [ ":system_absl_inlined_vector" ] } shim_headers("node_hash_map_shim") { root_path = "." prefix = "absl/container/" headers = [ "node_hash_map.h" ] } source_set("node_hash_map") { deps = [ ":node_hash_map_shim" ] public_configs = [ ":system_absl_node_hash_map" ] } shim_headers("node_hash_set_shim") { root_path = "." prefix = "absl/container/" headers = [ "node_hash_set.h" ] } source_set("node_hash_set") { deps = [ ":node_hash_set_shim" ] public_configs = [ ":system_absl_node_hash_set" ] } ++++++ absl_debugging.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_failure_signal_handler") { packages = [ "absl_failure_signal_handler" ] } pkg_config("system_absl_stacktrace") { packages = [ "absl_stacktrace" ] } pkg_config("system_absl_symbolize") { packages = [ "absl_symbolize" ] } shim_headers("failure_signal_handler_shim") { root_path = "." prefix = "absl/debugging/" headers = [ "failure_signal_handler.h" ] } source_set("failure_signal_handler") { deps = [ ":failure_signal_handler_shim" ] public_configs = [ ":system_absl_failure_signal_handler" ] } shim_headers("stacktrace_shim") { root_path = "." prefix = "absl/debugging/" headers = [ "stacktrace.h" ] } source_set("stacktrace") { deps = [ ":stacktrace_shim" ] public_configs = [ ":system_absl_stacktrace" ] } shim_headers("symbolize_shim") { root_path = "." prefix = "absl/debugging/" headers = [ "symbolize.h", ] } source_set("symbolize") { deps = [ ":symbolize_shim" ] public_configs = [ ":system_absl_symbolize" ] } ++++++ absl_flags.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_flags") { packages = [ "absl_flags" ] } pkg_config("system_absl_flags_parse") { packages = [ "absl_flags_parse" ] } pkg_config("system_absl_flags_usage") { packages = [ "absl_flags_usage" ] } shim_headers("flag_shim") { root_path = "." prefix = "absl/flags/" headers = [ "declare.h", "flag.h", ] } source_set("flag") { deps = [ ":flag_shim" ] public_configs = [ ":system_absl_flags" ] } shim_headers("parse_shim") { root_path = "." prefix = "absl/flags/" headers = [ "parse.h" ] } source_set("parse") { deps = [ ":parse_shim" ] public_configs = [ ":system_absl_flags_parse" ] } shim_headers("usage_shim") { root_path = "." prefix = "absl/flags/" headers = [ "usage.h" ] } source_set("usage") { deps = [ ":usage_shim" ] public_configs = [ ":system_absl_flags_usage" ] } ++++++ absl_functional.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_bind_front") { packages = [ "absl_bind_front" ] } shim_headers("bind_front_shim") { root_path = "." prefix = "absl/functional/" headers = [ "bind_front.h" ] } source_set("bind_front") { deps = [ ":bind_front_shim" ] public_configs = [ ":system_absl_bind_front" ] } ++++++ absl_hash.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_hash") { packages = [ "absl_hash" ] } shim_headers("hash_shim") { root_path = "." prefix = "absl/hash/" headers = [ "hash.h" ] } source_set("hash") { deps = [ ":hash_shim" ] public_configs = [ ":system_absl_hash" ] } ++++++ absl_memory.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_memory") { packages = [ "absl_memory" ] } shim_headers("memory_shim") { root_path = "." prefix = "absl/memory/" headers = [ "memory.h" ] } source_set("memory") { deps = [ ":memory_shim" ] public_configs = [ ":system_absl_memory" ] } ++++++ absl_meta.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_type_traits") { packages = [ "absl_type_traits" ] } shim_headers("type_traits_shim") { root_path = "." prefix = "absl/meta/" headers = [ "type_traits.h" ] } source_set("type_traits") { deps = [ ":type_traits_shim" ] public_configs = [ ":system_absl_type_traits" ] } ++++++ absl_numeric.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_bits") { packages = [ "absl_bits" ] } pkg_config("system_absl_int128") { packages = [ "absl_int128" ] } shim_headers("bits_shim") { root_path = "." prefix = "absl/numeric/" headers = [ "bits.h" ] } source_set("bits") { deps = [ ":bits_shim" ] public_configs = [ ":system_absl_bits" ] } shim_headers("int128_shim") { root_path = "." prefix = "absl/numeric/" headers = [ "int128.h" ] } source_set("int128") { deps = [ ":int128_shim" ] public_configs = [ ":system_absl_int128" ] } ++++++ absl_random.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_random_random") { packages = [ "absl_random_random" ] } shim_headers("random_shim") { root_path = "." prefix = "absl/random/" headers = [ "random.h" ] } source_set("random") { deps = [ ":random_shim" ] public_configs = [ ":system_absl_random_random" ] } ++++++ absl_status.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_status") { packages = [ "absl_status" ] } pkg_config("system_absl_statusor") { packages = [ "absl_statusor" ] } shim_headers("status_shim") { root_path = "." prefix = "absl/status/" headers = [ "status.h", "status_payload_printer.h", ] } source_set("status") { deps = [ ":status_shim" ] public_configs = [ ":system_absl_status" ] } shim_headers("statusor_shim") { root_path = "." prefix = "absl/status/" headers = [ "statusor.h" ] } source_set("statusor") { deps = [ ":statusor_shim" ] public_configs = [ ":system_absl_statusor" ] } ++++++ absl_strings.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_cord") { packages = [ "absl_cord" ] } pkg_config("system_absl_strings") { packages = [ "absl_strings" ] } pkg_config("system_absl_str_format") { packages = [ "absl_str_format" ] } shim_headers("cord_shim") { root_path = "." prefix = "absl/strings/" headers = [ "cord.h" ] } source_set("cord") { deps = [ ":cord_shim" ] public_configs = [ ":system_absl_cord" ] } shim_headers("strings_shim") { root_path = "." prefix = "absl/strings/" headers = [ "ascii.h", "charconv.h", "escaping.h", "match.h", "numbers.h", "str_cat.h", "str_join.h", "str_replace.h", "str_split.h", "string_view.h", "strip.h", "substitute.h", ] } source_set("strings") { deps = [ ":strings_shim" ] public_configs = [ ":system_absl_strings" ] } shim_headers("str_format_shim") { root_path = "." prefix = "absl/strings/" headers = [ "str_format.h" ] } source_set("str_format") { deps = [ ":str_format_shim" ] public_configs = [ ":system_absl_str_format" ] } ++++++ absl_synchronization.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_synchronization") { packages = [ "absl_synchronization" ] } shim_headers("synchronization_shim") { root_path = "." prefix = "absl/synchronization/" headers = [ "barrier.h", "blocking_counter.h", "mutex.h", "notification.h", ] } source_set("synchronization") { deps = [ ":synchronization_shim" ] public_configs = [ ":system_absl_synchronization" ] } ++++++ absl_time.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_time") { packages = [ "absl_time" ] } shim_headers("time_shim") { root_path = "." prefix = "absl/time/" headers = [ "civil_time.h", "clock.h", "time.h", ] } source_set("time") { deps = [ ":time_shim" ] public_configs = [ ":system_absl_time" ] } ++++++ absl_types.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_absl_optional") { packages = [ "absl_optional" ] } pkg_config("system_absl_span") { packages = [ "absl_span" ] } pkg_config("system_absl_variant") { packages = [ "absl_variant" ] } shim_headers("optional_shim") { root_path = "." prefix = "absl/types/" headers = [ "optional.h" ] } source_set("optional") { deps = [ ":optional_shim" ] public_configs = [ ":system_absl_optional" ] } shim_headers("span_shim") { root_path = "." prefix = "absl/types/" headers = [ "span.h" ] } source_set("span") { deps = [ ":span_shim" ] public_configs = [ ":system_absl_span" ] } shim_headers("variant_shim") { root_path = "." prefix = "absl/types/" headers = [ "variant.h" ] } source_set("variant") { deps = [ ":variant_shim" ] public_configs = [ ":system_absl_variant" ] } ++++++ angle-system-xxhash.patch ++++++ --- a/third_party/angle/BUILD.gn 2022-06-21 21:57:49.019991551 +0200 +++ b/third_party/angle/BUILD.gn 2022-06-25 16:54:47.267968400 +0200 @@ -1,3 +1,4 @@ +import("//build/config/linux/pkg_config.gni") # Copyright 2019 The ANGLE Project Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -355,18 +356,12 @@ } } -angle_source_set("xxhash") { - sources = xxhash_sources - if (is_clang) { - cflags_c = [ "-Wno-implicit-fallthrough" ] - } +pkg_config("system_xxhash") { + packages = [ "libxxhash" ] } -if (angle_has_build) { - fuzzer_test("xxhash_fuzzer") { - sources = [ "src/common/third_party/xxhash/xxhash_fuzzer.cpp" ] - deps = [ ":xxhash" ] - } +source_set("xxhash") { + public_configs = [ ":system_xxhash" ] } angle_static_library("angle_common") { --- a/third_party/angle/src/common/hash_utils.h +++ b/third_party/angle/src/common/hash_utils.h @@ -9,7 +9,7 @@ #define COMMON_HASHUTILS_H_ #include "common/debug.h" -#include "common/third_party/xxhash/xxhash.h" +#include <xxhash.h> namespace angle { ++++++ async_shared_storage_database_impl-missing-absl-WrapUnique.patch ++++++ --- a/components/services/storage/shared_storage/async_shared_storage_database_impl.cc +++ b/components/services/storage/shared_storage/async_shared_storage_database_impl.cc @@ -16,6 +16,7 @@ #include "components/services/storage/shared_storage/shared_storage_options.h" #include "storage/browser/quota/special_storage_policy.h" #include "url/origin.h" +#include "third_party/abseil-cpp/absl/memory/memory.h" namespace storage { ++++++ attribution_manager_impl-missing-absl-WrapUnique.patch ++++++ --- a/content/browser/attribution_reporting/attribution_manager_impl.cc +++ b/content/browser/attribution_reporting/attribution_manager_impl.cc @@ -51,6 +51,7 @@ #include "content/public/common/content_switches.h" #include "storage/browser/quota/special_storage_policy.h" #include "url/gurl.h" +#include "third_party/abseil-cpp/absl/memory/memory.h" namespace content { (No newline at EOF) ++++++ ax_property_node-missing-unique_ptr-forward.patch ++++++ --- a/ui/accessibility/platform/inspect/ax_property_node.h 2022-06-21 21:52:56.275987974 +0200 +++ b/ui/accessibility/platform/inspect/ax_property_node.h 2022-06-24 23:18:58.285982565 +0200 @@ -5,7 +5,9 @@ #ifndef UI_ACCESSIBILITY_PLATFORM_INSPECT_AX_PROPERTY_NODE_H_ #define UI_ACCESSIBILITY_PLATFORM_INSPECT_AX_PROPERTY_NODE_H_ +#include <memory> #include <string> +#include <utility> #include <vector> #include "third_party/abseil-cpp/absl/types/optional.h" ++++++ base-system-nspr.patch ++++++ --- a/base/time/time.cc 2022-06-21 21:52:33.367987695 +0200 +++ b/base/time/time.cc 2022-06-30 13:15:58.619513336 +0200 @@ -21,7 +21,7 @@ #include <utility> #include "base/strings/stringprintf.h" -#include "base/third_party/nspr/prtime.h" +#include <prtime.h> #include "base/time/time_override.h" #include "build/build_config.h" #include "third_party/abseil-cpp/absl/types/optional.h" --- a/base/BUILD.gn 2022-06-30 13:13:20.315537859 +0200 +++ b/base/BUILD.gn 2022-06-30 13:25:39.947410797 +0200 @@ -1,3 +1,8 @@ +import("//build/config/linux/pkg_config.gni") + +pkg_config("system_nspr") { + packages = [ "nspr" ] +} # Copyright (c) 2013 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -826,8 +831,6 @@ "third_party/cityhash_v103/src/city_v103.cc", "third_party/cityhash_v103/src/city_v103.h", "third_party/icu/icu_utf.h", - "third_party/nspr/prtime.cc", - "third_party/nspr/prtime.h", "third_party/superfasthash/superfasthash.c", "thread_annotations.h", "threading/hang_watcher.cc", @@ -1414,6 +1417,7 @@ ":base_implementation", "//build/config:precompiled_headers", "//build/config/compiler:wglobal_constructors", + ":system_nspr", ] deps = [ ++++++ brotli.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_brotli_dec") { packages = [ "libbrotlidec" ] } pkg_config("system_brotli_enc") { packages = [ "libbrotlienc" ] } shim_headers("brotli_shim") { root_path = "include" headers = [ "brotli/decode.h", "brotli/encode.h", "brotli/port.h", "brotli/types.h", ] } source_set("dec") { deps = [ ":brotli_shim" ] public_configs = [ ":system_brotli_dec" ] } source_set("enc") { deps = [ ":brotli_shim" ] public_configs = [ ":system_brotli_enc" ] } copy("brotli") { sources = [ "/usr/bin/brotli" ] outputs = [ "$root_out_dir/brotli" ] } ++++++ byteswap-constexpr.patch ++++++ description: fix a build error on 32-bit platforms As described in https://bugs.debian.org/1011096 , recent versions of chromium fail to build on i386 and armhf. This patch, pulled from upstream, should fix it. commit e334ce2c23f02f0cc0bfde9e335fd50ec6143b62 Author: Chisoon Jeong <chisoon.je...@lge.com> Date: Thu Apr 28 21:00:50 2022 +0000 GCC: Fixed build error by adding constexpr to base::ByteSwap(unit32_t) Without this change build fails on compile step with error: In file included from //components/variations/hashing.cc:10: //base/sys_byteorder.h: In function 'constexpr uintptr_t base::ByteSwapUintPtrT(uintptr_t)': //base/sys_byteorder.h:66:20: error: call to non-'constexpr' function 'uint32_t base::ByteSwap(uint32_t)' 66 | return ByteSwap(static_cast<uint32_t>(x)); | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ Bug:819294 Change-Id: I05134e02020e38433fe8bbe94f8f6870dac76390 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3600155 Reviewed-by: Nico Weber <tha...@chromium.org> Commit-Queue: Nico Weber <tha...@chromium.org> Cr-Commit-Position: refs/heads/main@{#997404} diff --git a/base/sys_byteorder.h b/base/sys_byteorder.h index b001cc60c5e65..5516be76b13e3 100644 --- a/base/sys_byteorder.h +++ b/base/sys_byteorder.h @@ -30,7 +30,7 @@ inline uint16_t ByteSwap(uint16_t x) { #endif } -inline uint32_t ByteSwap(uint32_t x) { +inline constexpr uint32_t ByteSwap(uint32_t x) { #if defined(COMPILER_MSVC) && !defined(__clang__) return _byteswap_ulong(x); #else ++++++ byteswap-constexpr2.patch ++++++ author: Andres Salomon <dilin...@debian.org> description: fix constexpr FTBFS on i386/armhf Fix a build error that was already fixed in base/sys_byteorder.h. But since chromium has two copies of this file, it needs to also be fixed here. It only shows up on 32-bit platforms. ByteSwap is being called from another function that's constexpr, so it also needs to be marked as constexpr. Ideally the calling code needs to be changed to only have one copy of sys_byteorder.h. --- a/base/allocator/partition_allocator/base/sys_byteorder.h +++ b/base/allocator/partition_allocator/base/sys_byteorder.h @@ -31,7 +31,7 @@ inline uint16_t ByteSwap(uint16_t x) { #endif } -inline uint32_t ByteSwap(uint32_t x) { +inline constexpr uint32_t ByteSwap(uint32_t x) { #if defined(COMPILER_MSVC) && !defined(__clang__) return _byteswap_ulong(x); #else ++++++ cares_public_headers.patch ++++++ Index: node-v14.17.5/src/cares_wrap.h =================================================================== --- node-v14.17.5.orig/third_party/electron_node/src/cares_wrap.h +++ node-v14.17.5/third_party/electron_node/src/cares_wrap.h @@ -22,7 +22,7 @@ # include <netdb.h> #endif // __POSIX__ -# include <ares_nameser.h> +#include <arpa/nameser.h> namespace node { namespace cares_wrap { ++++++ chromium-101-libxml-unbundle.patch ++++++ --- a/build/linux/unbundle/libxml.gn +++ b/build/linux/unbundle/libxml.gn @@ -19,6 +19,7 @@ static_library("libxml_utils") { ":xml_reader", ":xml_writer", "//base/test:test_support", + "//services/data_decoder:lib", "//services/data_decoder:xml_parser_fuzzer_deps", ] sources = [ ++++++ chromium-98-compiler.patch -> chromium-102-compiler.patch ++++++ --- /work/SRC/openSUSE:Factory/nodejs-electron/chromium-98-compiler.patch 2022-03-18 16:41:51.261169219 +0100 +++ /work/SRC/openSUSE:Factory/.nodejs-electron.new.1548/chromium-102-compiler.patch 2022-07-05 12:09:11.512531883 +0200 @@ -1,17 +1,17 @@ From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001 From: Mike Gilbert <flop...@gentoo.org> -Date: Fri, 3 Dec 2021 09:50:31 +0000 +Date: Fri, 22 Apr 2022 09:05:24 +0000 Subject: [PATCH] Disable various compiler configs --- - build/config/compiler/BUILD.gn | 105 ++++++--------------------------- - 1 file changed, 17 insertions(+), 88 deletions(-) + build/config/compiler/BUILD.gn | 114 +++++---------------------------- + 1 file changed, 17 insertions(+), 97 deletions(-) diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index 5365544..e6d9b56 100644 +index d40843b..b92f03b 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -291,9 +291,7 @@ config("compiler") { +@@ -286,9 +286,7 @@ config("compiler") { configs += [ # See the definitions below. @@ -21,7 +21,7 @@ ":compiler_codegen", ":compiler_deterministic", ] -@@ -534,31 +532,6 @@ config("compiler") { +@@ -522,31 +520,6 @@ config("compiler") { ldflags += [ "-Wl,-z,keep-text-section-prefix" ] } @@ -50,10 +50,10 @@ - } - } - - # C11/C++11 compiler flags setup. - # --------------------------- - if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || -@@ -1231,45 +1204,6 @@ config("compiler_deterministic") { + # Rust compiler setup (for either clang or rustc). + if (enable_rust) { + defines += [ "RUST_ENABLED" ] +@@ -1232,45 +1205,6 @@ config("compiler_deterministic") { } } @@ -99,7 +99,23 @@ # 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. -@@ -1556,7 +1490,7 @@ config("chromium_code") { +@@ -1538,15 +1472,6 @@ config("default_warnings") { + cflags += [ "-Wno-deprecated-non-prototype" ] + } + +- if (!is_nacl && !(is_chromeos || +- default_toolchain == "//build/toolchain/cros:target")) { +- # TODO(https://crbug.com/1316298): Re-enable once test failure is figured out +- 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 +1540,7 @@ config("chromium_code") { defines = [ "_HAS_NODISCARD" ] } } else { @@ -108,7 +124,7 @@ if (treat_warnings_as_errors) { cflags += [ "-Werror" ] -@@ -1565,10 +1499,6 @@ config("chromium_code") { +@@ -1624,10 +1549,6 @@ config("chromium_code") { # well. ldflags = [ "-Werror" ] } @@ -119,7 +135,7 @@ # In Chromium code, we define __STDC_foo_MACROS in order to get the # C99 macros on Mac and Linux. -@@ -1577,15 +1507,6 @@ config("chromium_code") { +@@ -1636,15 +1557,6 @@ config("chromium_code") { "__STDC_FORMAT_MACROS", ] @@ -135,7 +151,7 @@ if (is_mac) { cflags_objc = [ "-Wobjc-missing-property-synthesis" ] cflags_objcc = [ "-Wobjc-missing-property-synthesis" ] -@@ -1988,7 +1909,8 @@ config("default_stack_frames") { +@@ -2035,7 +1947,8 @@ config("default_stack_frames") { } # Default "optimization on" config. @@ -145,7 +161,7 @@ if (is_win) { if (chrome_pgo_phase != 2) { # Favor size over speed, /O1 must be before the common flags. -@@ -2026,7 +1948,8 @@ config("optimize") { +@@ -2073,7 +1986,8 @@ config("optimize") { } # Turn off optimizations. @@ -155,7 +171,7 @@ if (is_win) { cflags = [ "/Od", # Disable optimization. -@@ -2066,7 +1989,8 @@ config("no_optimize") { +@@ -2113,7 +2027,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. @@ -165,7 +181,7 @@ if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -2099,7 +2023,8 @@ config("optimize_max") { +@@ -2146,7 +2061,8 @@ config("optimize_max") { # # TODO(crbug.com/621335) - rework how all of these configs are related # so that we don't need this disclaimer. @@ -175,7 +191,7 @@ if (is_nacl && is_nacl_irt) { # The NaCl IRT is a special case and always wants its own config. # Various components do: -@@ -2125,7 +2050,8 @@ config("optimize_speed") { +@@ -2172,7 +2088,8 @@ config("optimize_speed") { } } @@ -185,7 +201,7 @@ cflags = [ "-O1" ] + common_optimize_on_cflags rustflags = [ "-Copt-level=1" ] ldflags = common_optimize_on_ldflags -@@ -2245,7 +2171,8 @@ config("win_pdbaltpath") { +@@ -2291,7 +2208,8 @@ config("win_pdbaltpath") { } # Full symbols. @@ -195,7 +211,7 @@ if (is_win) { if (is_clang) { cflags = [ "/Z7" ] # Debug information in the .obj files. -@@ -2369,7 +2296,8 @@ config("symbols") { +@@ -2419,7 +2337,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. @@ -205,7 +221,7 @@ if (is_win) { # Functions, files, and line tables only. cflags = [] -@@ -2438,7 +2366,8 @@ config("minimal_symbols") { +@@ -2492,7 +2411,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. @@ -216,5 +232,5 @@ ldflags = [ "/DEBUG" ] -- -2.32.0 +2.35.1 ++++++ chromium-102-fenced_frame_utils-include.patch ++++++ >From 7c135a291184b59a59643ed6a8c40b4405ac0175 Mon Sep 17 00:00:00 2001 From: Stephan Hartmann <sth...@googlemail.com> Date: Wed, 27 Apr 2022 16:01:01 +0000 Subject: [PATCH] IWYU: add cstring for std::strlen in fenced_frame_utils --- third_party/blink/common/fenced_frame/fenced_frame_utils.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/third_party/blink/common/fenced_frame/fenced_frame_utils.cc b/third_party/blink/common/fenced_frame/fenced_frame_utils.cc index 9e2d3ad..68f4823 100644 --- a/third_party/blink/common/fenced_frame/fenced_frame_utils.cc +++ b/third_party/blink/common/fenced_frame/fenced_frame_utils.cc @@ -4,6 +4,8 @@ #include "third_party/blink/public/common/fenced_frame/fenced_frame_utils.h" +#include <cstring> + #include "base/guid.h" #include "base/strings/string_util.h" -- 2.35.1 ++++++ chromium-99-pdfium-system-libtiff.patch ++++++ --- patch99/third_party/pdfium/core/fxcodec/tiff/tiff_decoder.cpp 2022-02-10 05:21:05.000000000 +0100 +++ patch99/third_party/pdfium/core/fxcodec/tiff/tiff_decoder.cpp.system-libtiff 2022-02-14 15:21:53.169231723 +0100 @@ -22,9 +22,7 @@ #include "third_party/base/notreached.h" #include "third_party/base/numerics/safe_conversions.h" -extern "C" { -#include "third_party/libtiff/tiffiop.h" -} // extern C +#include <tiffio.h> namespace { @@ -190,7 +188,7 @@ TIFF* tiff_open(void* context, const cha tiff_write, tiff_seek, tiff_close, tiff_get_size, tiff_map, tiff_unmap); if (tif) { - tif->tif_fd = (int)(intptr_t)context; + (void)TIFFSetFileno(tif, (int)(intptr_t)context); } return tif; } diff -up chromium-60.0.3112.40/third_party/pdfium/third_party/BUILD.gn.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/third_party/BUILD.gn --- chromium-60.0.3112.40/third_party/pdfium/third_party/BUILD.gn.pdfium-system-libtiff-libpng 2017-06-22 00:04:10.000000000 +0200 +++ chromium-60.0.3112.40/third_party/pdfium/third_party/BUILD.gn 2017-06-24 22:25:18.901585830 +0200 @@ -501,59 +501,13 @@ source_set("fx_lpng") { } } +config("fx_tiff_config") { + libs = [ "tiff" ] +} + if (pdf_enable_xfa_tiff) { source_set("fx_tiff") { - configs -= [ "//build/config/compiler:chromium_code" ] - configs += [ - "//build/config/compiler:no_chromium_code", - ":pdfium_third_party_config", - ] - if (is_win) { - # Need to undefine the macro since it is redefined in tif_jpeg.c. - configs -= [ "//build/config/win:lean_and_mean" ] - } - deps = [ - ":zlib", - "../core/fxcrt", - "//third_party:jpeg", - ] - sources = [ - "libtiff/tif_aux.c", - "libtiff/tif_close.c", - "libtiff/tif_codec.c", - "libtiff/tif_color.c", - "libtiff/tif_compress.c", - "libtiff/tif_dir.c", - "libtiff/tif_dirinfo.c", - "libtiff/tif_dirread.c", - "libtiff/tif_dirwrite.c", - "libtiff/tif_dumpmode.c", - "libtiff/tif_error.c", - "libtiff/tif_extension.c", - "libtiff/tif_fax3.c", - "libtiff/tif_fax3sm.c", - "libtiff/tif_flush.c", - "libtiff/tif_getimage.c", - "libtiff/tif_jpeg.c", - "libtiff/tif_luv.c", - "libtiff/tif_lzw.c", - "libtiff/tif_next.c", - "libtiff/tif_open.c", - "libtiff/tif_packbits.c", - "libtiff/tif_pixarlog.c", - "libtiff/tif_predict.c", - "libtiff/tif_print.c", - "libtiff/tif_read.c", - "libtiff/tif_strip.c", - "libtiff/tif_swab.c", - "libtiff/tif_thunder.c", - "libtiff/tif_tile.c", - "libtiff/tif_version.c", - "libtiff/tif_warning.c", - "libtiff/tif_write.c", - "libtiff/tiffiop.h", - "libtiff/tiffvers.h", - ] + public_configs = [ ":fx_tiff_config" ] } } ++++++ chromium-fix-pac-with-gcc.patch ++++++ --- chromium-102.0.5005.61/v8/src/execution/arm64/pointer-authentication-arm64.h.orig 2022-06-01 12:11:14.983350526 +0200 +++ chromium-102.0.5005.61/v8/src/execution/arm64/pointer-authentication-arm64.h 2022-06-01 12:11:42.691630379 +0200 @@ -48,14 +48,14 @@ V8_INLINE Address PointerAuthentication: return Simulator::StripPAC(pc, Simulator::kInstructionPointer); #else asm volatile( - " mov x16, lr\n" - " mov lr, %[pc]\n" + " mov x16, x30\n" + " mov x30, %[pc]\n" " xpaclri\n" - " mov %[pc], lr\n" - " mov lr, x16\n" + " mov %[pc], x30\n" + " mov x30, x16\n" : [pc] "+r"(pc) : - : "x16", "lr"); + : "x16", "x30"); return pc; #endif } ++++++ chromium-remove-bundled-roboto-font.patch ++++++ This font is already available in opensuse and can be installed systemwide --- 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/third_party/jstemplate/resources.grdp", ] - if (!is_chromeos_ash && !is_android) { - # Roboto Font. Roboto-Regular and Roboto-Light is already available on - # Android, and Roboto-Medium is not used on Android. All 6 weights of - # Roboto are available on Chrome OS. - input_files_base_dir = rebase_path(".", "//") - input_files = [ - "roboto/roboto-bold.woff2", - "roboto/roboto-medium.woff2", - "roboto/roboto-regular.woff2", - ] - } if (include_polymer) { deps += [ 'roboto.css' -> 'roboto.css.new' --- a/ui/webui/resources/css/roboto.css 2022-06-15 15:58:23.846426661 +0200 +++ b/ui/webui/resources/css/roboto.css 2022-06-21 15:53:08.931243442 +0200 @@ -2,28 +2,3 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ -<if expr="not chromeos and not is_android"> -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 400; - src: local('Roboto'), local('Roboto-Regular'), - url(chrome://resources/roboto/roboto-regular.woff2) format('woff2'); -} - -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 500; - src: local('Roboto Medium'), local('Roboto-Medium'), - url(chrome://resources/roboto/roboto-medium.woff2) format('woff2'); -} - -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 700; - src: local('Roboto Bold'), local('Roboto-Bold'), - url(chrome://resources/roboto/roboto-bold.woff2) format('woff2'); -} -</if> ++++++ chromium-vaapi.patch ++++++ --- /var/tmp/diff_new_pack.EAVmig/_old 2022-07-05 12:09:39.392571927 +0200 +++ /var/tmp/diff_new_pack.EAVmig/_new 2022-07-05 12:09:39.392571927 +0200 @@ -22,7 +22,7 @@ =================================================================== --- electron-17.1.0.orig/chrome/browser/flag_descriptions.cc 2022-03-07 17:20:30.960813654 +0100 +++ electron-17.1.0/chrome/browser/flag_descriptions.cc 2022-03-09 08:25:19.662417046 +0100 -@@ -3981,12 +3981,24 @@ const char kUseAngleGL[] = "OpenGL"; +@@ -4031,12 +4031,24 @@ const char kUseAngleGL[] = "OpenGL"; #if BUILDFLAG(IS_CHROMEOS_ASH) @@ -44,14 +44,14 @@ + +#if BUILDFLAG(IS_CHROMEOS_ASH) + - const char kAllowDisableMouseAccelerationName[] = - "Allow disabling mouse acceleration"; - const char kAllowDisableMouseAccelerationDescription[] = + const char kAllowDisableTouchpadHapticFeedbackName[] = + "Allow disabling touchpad haptic feedback"; + const char kAllowDisableTouchpadHapticFeedbackDescription[] = Index: electron-17.1.0/chrome/browser/flag_descriptions.h =================================================================== --- electron-17.1.0.orig/chrome/browser/flag_descriptions.h 2022-03-07 17:20:30.960813654 +0100 +++ electron-17.1.0/chrome/browser/flag_descriptions.h 2022-03-09 08:25:19.666416981 +0100 -@@ -2299,9 +2299,21 @@ extern const char kUseAngleGL[]; +@@ -2305,9 +2305,21 @@ extern const char kUseAngleGL[]; #if BUILDFLAG(IS_CHROMEOS_ASH) @@ -70,7 +70,7 @@ + +// Chrome OS ------------------------------------------------------------------ + - extern const char kAllowDisableMouseAccelerationName[]; - extern const char kAllowDisableMouseAccelerationDescription[]; + extern const char kAllowDisableTouchpadHapticFeedbackName[]; + extern const char kAllowDisableTouchpadHapticFeedbackDescription[]; ++++++ crc32c.gn ++++++ import("//build/shim_headers.gni") shim_headers("crc32c_shim") { root_path = "src/include" headers = [ "crc32c/crc32c.h" ] } source_set("crc32c") { deps = [ ":crc32c_shim" ] libs = [ "crc32c" ] } ++++++ create_tarball.sh ++++++ --- /var/tmp/diff_new_pack.EAVmig/_old 2022-07-05 12:09:39.424571973 +0200 +++ /var/tmp/diff_new_pack.EAVmig/_new 2022-07-05 12:09:39.424571973 +0200 @@ -6,11 +6,11 @@ # # dnf install python3-base git-core npm16 yarn python2-base -ELECTRON_PKGVERSION="$(rpmspec -P ./*.spec | grep Version | sed -e 's/Version:[ ]*//g')" +ELECTRON_PKGVERSION="$(rpmspec -P ./*.spec | grep ^\s*Version | sed -e 's/Version:[ ]*//g')" ELECTRON_PKGNAME="electron" ELECTRON_PKGDIR="$(pwd)" ELECTRON_TMPDIR="$(mktemp --tmpdir -d electron-XXXXXXXX)" -ELECTRON_PATH="${ELECTRON_TMPDIR}/${ELECTRON_PKGNAME}-${ELECTRON_PKGVERSION}" +ELECTRON_PATH="${ELECTRON_TMPDIR}/src" echo "NAME: $ELECTRON_PKGNAME" echo "VERSION: $ELECTRON_PKGVERSION" @@ -45,6 +45,9 @@ PATH="$(pwd)/depot_tools:$PATH" export PATH +# HACK to make gclient much faster, do not download entire history +sed -i 's/remote or self.remote,$/remote or self.remote, "--depth=1"/' depot_tools/gclient_scm.py + echo ">>>>>> Create gclient config" cat >.gclient <<EOF @@ -65,13 +68,15 @@ cleanup_and_exit 1 fi -echo ">>>>>> Apply electron-${ELECTRON_PKGVERSION} patches" -python3 src/electron/script/apply_all_patches.py \ - src/electron/patches/config.json -if [ $? -ne 0 ]; then - echo "ERROR: apply_all_patches.py failed" - cleanup_and_exit 1 -fi +pushd src || cleanup_and_exit 1 + +echo ">>>>>> Create LASTCHANGE(.committime) file" +echo -n "LASTCHANGE=$(git log -1 --format=format:%H HEAD)" > build/util/LASTCHANGE +# shellcheck disable=1091 +source build/util/LASTCHANGE +echo -n "$(git log -1 --date=unix --format=format:%cd "$LASTCHANGE")" > build/util/LASTCHANGE.committime + +popd echo ">>>>>> Generate GPU_LISTS_VERSION" python3 src/build/util/lastchange.py -m GPU_LISTS_VERSION \ @@ -89,6 +94,14 @@ cleanup_and_exit 1 fi +echo ">>>>>> Apply electron-${ELECTRON_PKGVERSION} patches" +python3 src/electron/script/apply_all_patches.py \ + src/electron/patches/config.json +if [ $? -ne 0 ]; then + echo "ERROR: apply_all_patches.py failed" + cleanup_and_exit 1 +fi + echo ">>>>>> Download optimization profile" python3 src/tools/download_optimization_profile.py \ --newest_state=src/chrome/android/profiles/newest.txt \ @@ -126,23 +139,15 @@ fi popd || cleanup_and_exit 1 -mv src "${ELECTRON_PKGNAME}-${ELECTRON_PKGVERSION}" pushd "${ELECTRON_PATH}" || cleanup_and_exit 1 -echo ">>>>>> Create LASTCHANGE(.committime) file" -echo -n "LASTCHANGE=$(git log -1 --format=format:%H HEAD)" > build/util/LASTCHANGE -# shellcheck disable=1091 -source build/util/LASTCHANGE -echo -n "$(git log -1 --date=unix --format=format:%cd "$LASTCHANGE")" > build/util/LASTCHANGE.committime - echo ">>>>>> Remove bundled libs" keeplibs=( base/third_party/cityhash base/third_party/double_conversion base/third_party/dynamic_annotations base/third_party/icu - base/third_party/nspr base/third_party/superfasthash base/third_party/symbolize base/third_party/valgrind @@ -162,7 +167,6 @@ third_party/angle third_party/angle/src/common/third_party/base third_party/angle/src/common/third_party/smhasher - third_party/angle/src/common/third_party/xxhash third_party/angle/src/third_party/libXNVCtrl third_party/angle/src/third_party/trace_event third_party/angle/src/third_party/volk @@ -173,7 +177,6 @@ third_party/boringssl/src/third_party/fiat third_party/breakpad third_party/breakpad/breakpad/src/third_party/curl - third_party/brotli third_party/catapult third_party/catapult/common/py_vulcanize/third_party/rcssmin third_party/catapult/common/py_vulcanize/third_party/rjsmin @@ -200,11 +203,11 @@ third_party/dav1d third_party/dawn third_party/dawn/third_party - third_party/dawn/third_party/tint/src/ast third_party/depot_tools third_party/depot_tools/third_party/six third_party/devscripts third_party/devtools-frontend + third_party/devtools-frontend/src/front_end/third_party third_party/devtools-frontend/src/front_end/third_party/acorn third_party/devtools-frontend/src/front_end/third_party/axe-core third_party/devtools-frontend/src/front_end/third_party/chromium @@ -261,7 +264,7 @@ third_party/libphonenumber third_party/libsecret third_party/libsrtp - third_party/libsync + third_party/libsync/src third_party/libudev third_party/liburlpattern third_party/libva_protected_content @@ -271,12 +274,10 @@ third_party/libx11/src third_party/libxcb-keysyms/keysyms third_party/libxml/chromium - third_party/libXNVCtrl third_party/libyuv third_party/libzip third_party/lottie third_party/lss - third_party/lzma_sdk third_party/mako third_party/maldoca third_party/maldoca/src/third_party @@ -290,7 +291,6 @@ third_party/node third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2 third_party/one_euro_filter - third_party/opencv third_party/openscreen third_party/openscreen/src/third_party/mozilla third_party/openscreen/src/third_party/tinycbor/src/src @@ -300,9 +300,6 @@ third_party/pdfium/third_party/base third_party/pdfium/third_party/bigint third_party/pdfium/third_party/freetype - third_party/pdfium/third_party/lcms - third_party/pdfium/third_party/libopenjpeg20 - third_party/pdfium/third_party/libpng16 third_party/pdfium/third_party/libtiff third_party/pdfium/third_party/skia_shared third_party/perfetto @@ -332,19 +329,18 @@ third_party/sqlite third_party/swiftshader third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1 + third_party/swiftshader/third_party/SPIRV-Tools third_party/swiftshader/third_party/astc-encoder third_party/swiftshader/third_party/llvm-10.0 third_party/swiftshader/third_party/llvm-subzero third_party/swiftshader/third_party/marl third_party/swiftshader/third_party/subzero - third_party/tcmalloc third_party/tensorflow-text third_party/tflite third_party/tflite/src/third_party/eigen3 third_party/tflite/src/third_party/fft2d third_party/ukey2 third_party/usb_ids - third_party/usrsctp third_party/utf third_party/vulkan third_party/wayland @@ -385,10 +381,12 @@ # Remove generatted python bytecode find . -type d -name __pycache__ -print0 | xargs -0 rm -rvf find . -type f -name '*.pyc' -print -delete +# Remove empty directories +find . -type d -empty -print -delete popd || cleanup_and_exit 1 echo ">>>>>> Create tarball" -XZ_OPT="-T$(nproc) -e9" tar -vcJf "${ELECTRON_PKGDIR}/${ELECTRON_PKGNAME}-${ELECTRON_PKGVERSION}.tar.xz" "${ELECTRON_PKGNAME}-${ELECTRON_PKGVERSION}" +XZ_OPT="-T$(nproc) -e9 -vv" tar -vvcJf "${ELECTRON_PKGDIR}/${ELECTRON_PKGNAME}-${ELECTRON_PKGVERSION}.tar.xz" src if [ $? -ne 0 ]; then echo "ERROR: tar cJf failed" cleanup_and_exit 1 ++++++ dark_mode_types-uint8_t.patch ++++++ --- a/third_party/blink/renderer/platform/graphics/dark_mode_types.h 2022-06-21 21:52:42.607987807 +0200 +++ b/third_party/blink/renderer/platform/graphics/dark_mode_types.h 2022-06-24 22:25:53.282241863 +0200 @@ -5,6 +5,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_DARK_MODE_TYPES_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_DARK_MODE_TYPES_H_ +#include <cstdint> + namespace blink { enum class DarkModeResult : uint8_t { ++++++ dav1d.gn ++++++ # Copyright 2016 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/buildflag_header.gni") import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_dav1d") { packages = [ "dav1d" ] } shim_headers("dav1d_shim") { root_path = "libdav1d/include" headers = [ "dav1d/common.h", "dav1d/data.h", "dav1d/dav1d.h", "dav1d/headers.h", "dav1d/picture.h", "dav1d/version.h", ] } source_set("dav1d") { deps = [ ":dav1d_shim", ] public_configs = [ ":system_dav1d" ] } ++++++ device_perf_info-missing-uint32_t.patch ++++++ --- a/gpu/config/device_perf_info.h +++ b/gpu/config/device_perf_info.h @@ -5,6 +5,7 @@ #ifndef GPU_CONFIG_DEVICE_PERF_INFO_H_ #define GPU_CONFIG_DEVICE_PERF_INFO_H_ +#include <cstdint> #include "build/build_config.h" #include "gpu/gpu_export.h" #include "third_party/abseil-cpp/absl/types/optional.h" ++++++ double-conversion.gn ++++++ import("//build/shim_headers.gni") shim_headers("double_conversion_shim") { root_path = "." headers = [ "double-conversion/bignum.h", "double-conversion/cached-powers.h", "double-conversion/diy-fp.h", "double-conversion/double-conversion.h", "double-conversion/double-to-string.h", "double-conversion/fast-dtoa.h", "double-conversion/fixed-dtoa.h", "double-conversion/ieee.h", "double-conversion/string-to-double.h", "double-conversion/strtod.h", "double-conversion/utils.h", ] } source_set("double_conversion") { deps = [ ":double_conversion_shim" ] libs = [ "double-conversion" ] } ++++++ electron-13-fix-use-thin-lto.patch ++++++ --- /var/tmp/diff_new_pack.EAVmig/_old 2022-07-05 12:09:39.492572070 +0200 +++ /var/tmp/diff_new_pack.EAVmig/_new 2022-07-05 12:09:39.496572076 +0200 @@ -2,20 +2,15 @@ =================================================================== --- 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,12 @@ declare_args() { +@@ -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 - use_thin_lto = -- is_cfi || -- (is_clang && is_official_build && chrome_pgo_phase != 1 && -- (is_linux || is_win || (is_android && target_os != "chromeos") || -- ((is_chromeos_ash || is_chromeos_lacros) && is_chromeos_device))) -+ # use_thin_lto = -+ # is_cfi || -+ # (is_clang && is_official_build && chrome_pgo_phase != 1 && -+ # (is_linux || is_win || (is_android && target_os != "chromeos") || -+ # ((is_chromeos_ash || is_chromeos_lacros) && is_chromeos_device))) +- is_cfi || (is_clang && is_official_build && chrome_pgo_phase != 1 && +- (is_linux || is_win || is_mac || (is_ios && use_lld) || +- (is_android && target_os != "chromeos") || +- (is_chromeos && is_chromeos_device))) + use_thin_lto = false # If true, use Goma for ThinLTO code generation where applicable. ++++++ electron-16-std-vector-non-const.patch ++++++ --- /var/tmp/diff_new_pack.EAVmig/_old 2022-07-05 12:09:39.508572094 +0200 +++ /var/tmp/diff_new_pack.EAVmig/_new 2022-07-05 12:09:39.508572094 +0200 @@ -4,12 +4,12 @@ +++ electron-17.1.0/chrome/browser/process_singleton.h 2022-03-09 08:29:01.682773127 +0100 @@ -102,7 +102,7 @@ class ProcessSingleton { using NotificationCallback = - base::RepeatingCallback<bool(const base::CommandLine& command_line, + base::RepeatingCallback<bool(const base::CommandLine& command_line, const base::FilePath& current_directory, - const std::vector<const uint8_t> additional_data)>; + const std::vector<uint8_t> additional_data)>; - #if defined(OS_WIN) + #if BUILDFLAG(IS_WIN) ProcessSingleton(const std::string& program_name, Index: electron-17.1.0/chrome/browser/process_singleton_posix.cc =================================================================== @@ -55,7 +55,7 @@ =================================================================== --- electron-17.1.0.orig/chrome/browser/process_singleton_win.cc 2022-03-07 17:39:06.993345117 +0100 +++ electron-17.1.0/chrome/browser/process_singleton_win.cc 2022-03-09 08:29:01.682773127 +0100 -@@ -99,7 +99,7 @@ BOOL CALLBACK BrowserWindowEnumeration(H +@@ -81,7 +81,7 @@ BOOL CALLBACK BrowserWindowEnumeration(H bool ParseCommandLine(const COPYDATASTRUCT* cds, base::CommandLine* parsed_command_line, base::FilePath* current_directory, @@ -64,7 +64,7 @@ // We should have enough room for the shortest command (min_message_size) // and also be a multiple of wchar_t bytes. The shortest command // possible is L"START\0\0" (empty command line, current directory, -@@ -181,7 +181,7 @@ bool ParseCommandLine(const COPYDATASTRU +@@ -163,7 +163,7 @@ bool ParseCommandLine(const COPYDATASTRU msg.substr(fourth_null + 1, fifth_null - fourth_null); const uint8_t* additional_data_bytes = reinterpret_cast<const uint8_t*>(additional_data.c_str()); @@ -73,8 +73,8 @@ additional_data_bytes + additional_data_length); return true; -@@ -202,7 +202,7 @@ bool ProcessLaunchNotification( - const COPYDATASTRUCT* cds = reinterpret_cast<COPYDATASTRUCT*>(lparam); +@@ -187,7 +187,7 @@ bool ProcessLaunchNotification( + base::CommandLine parsed_command_line(base::CommandLine::NO_PROGRAM); base::FilePath current_directory; - std::vector<const uint8_t> additional_data; ++++++ electron-17.4.6.tar.xz -> electron-19.0.7.tar.xz ++++++ /work/SRC/openSUSE:Factory/nodejs-electron/electron-17.4.6.tar.xz /work/SRC/openSUSE:Factory/.nodejs-electron.new.1548/electron-19.0.7.tar.xz differ: char 15, line 1 ++++++ electron-launcher.sh ++++++ --- /var/tmp/diff_new_pack.EAVmig/_old 2022-07-05 12:09:39.544572145 +0200 +++ /var/tmp/diff_new_pack.EAVmig/_new 2022-07-05 12:09:39.548572151 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/bash +#!/bin/bash set -euo pipefail @@ -17,5 +17,5 @@ fi done -exec /usr/lib64/${name}/electron "$@" "${flags[@]}" +exec XXXLIBDIRXXX/${name}/electron "$@" "${flags[@]}" ++++++ ffmpeg-new-channel-layout.patch ++++++ >From 6e554a30893150793c2638e3689cf208ffc8e375 Mon Sep 17 00:00:00 2001 From: Dale Curtis <dalecur...@chromium.org> Date: Sat, 2 Apr 2022 05:13:53 +0000 Subject: [PATCH] Roll src/third_party/ffmpeg/ 574c39cce..32b2d1d526 (1125 commits) https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/574c39cce323..32b2d1d526 Created with: roll-dep src/third_party/ffmpeg Fixed: 1293918 Cq-Include-Trybots: luci.chromium.try:mac_chromium_asan_rel_ng,linux_chromium_asan_rel_ng,linux_chromium_chromeos_asan_rel_ng Change-Id: I41945d0f963e3d1f65940067bac22f63b68e37d2 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3565647 Auto-Submit: Dale Curtis <dalecur...@chromium.org> Reviewed-by: Dan Sanders <sande...@chromium.org> Commit-Queue: Dale Curtis <dalecur...@chromium.org> Cr-Commit-Position: refs/heads/main@{#988253} --- .../clear_key_cdm/ffmpeg_cdm_audio_decoder.cc | 29 ++++++++++--------- media/ffmpeg/ffmpeg_common.cc | 11 +++---- media/filters/audio_file_reader.cc | 9 +++--- media/filters/audio_file_reader_unittest.cc | 6 ++-- .../filters/audio_video_metadata_extractor.cc | 11 +++++-- .../filters/ffmpeg_aac_bitstream_converter.cc | 7 +++-- ...ffmpeg_aac_bitstream_converter_unittest.cc | 2 +- media/filters/ffmpeg_audio_decoder.cc | 13 +++++---- 8 files changed, 51 insertions(+), 37 deletions(-) diff --git a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc index e4fc3f460e2..9b1ad9f7675 100644 --- a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc +++ b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc @@ -74,7 +74,7 @@ void CdmAudioDecoderConfigToAVCodecContext( codec_context->sample_fmt = AV_SAMPLE_FMT_NONE; } - codec_context->channels = config.channel_count; + codec_context->ch_layout.nb_channels = config.channel_count; codec_context->sample_rate = config.samples_per_second; if (config.extra_data) { @@ -124,8 +124,8 @@ void CopySamples(cdm::AudioFormat cdm_format, case cdm::kAudioFormatPlanarS16: case cdm::kAudioFormatPlanarF32: { const int decoded_size_per_channel = - decoded_audio_size / av_frame.channels; - for (int i = 0; i < av_frame.channels; ++i) { + decoded_audio_size / av_frame.ch_layout.nb_channels; + for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) { memcpy(output_buffer, av_frame.extended_data[i], decoded_size_per_channel); output_buffer += decoded_size_per_channel; @@ -185,13 +185,14 @@ bool FFmpegCdmAudioDecoder::Initialize( // Success! decoding_loop_ = std::make_unique<FFmpegDecodingLoop>(codec_context_.get()); samples_per_second_ = config.samples_per_second; - bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8; + bytes_per_frame_ = + codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8; output_timestamp_helper_ = std::make_unique<AudioTimestampHelper>(config.samples_per_second); is_initialized_ = true; // Store initial values to guard against midstream configuration changes. - channels_ = codec_context_->channels; + channels_ = codec_context_->ch_layout.nb_channels; av_sample_format_ = codec_context_->sample_fmt; return true; @@ -291,17 +292,19 @@ cdm::Status FFmpegCdmAudioDecoder::DecodeBuffer( for (auto& frame : audio_frames) { int decoded_audio_size = 0; if (frame->sample_rate != samples_per_second_ || - frame->channels != channels_ || frame->format != av_sample_format_) { + frame->ch_layout.nb_channels != channels_ || + frame->format != av_sample_format_) { DLOG(ERROR) << "Unsupported midstream configuration change!" << " Sample Rate: " << frame->sample_rate << " vs " - << samples_per_second_ << ", Channels: " << frame->channels - << " vs " << channels_ << ", Sample Format: " << frame->format - << " vs " << av_sample_format_; + << samples_per_second_ + << ", Channels: " << frame->ch_layout.nb_channels << " vs " + << channels_ << ", Sample Format: " << frame->format << " vs " + << av_sample_format_; return cdm::kDecodeError; } decoded_audio_size = av_samples_get_buffer_size( - nullptr, codec_context_->channels, frame->nb_samples, + nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples, codec_context_->sample_fmt, 1); if (!decoded_audio_size) continue; @@ -320,9 +323,9 @@ bool FFmpegCdmAudioDecoder::OnNewFrame( size_t* total_size, std::vector<std::unique_ptr<AVFrame, ScopedPtrAVFreeFrame>>* audio_frames, AVFrame* frame) { - *total_size += av_samples_get_buffer_size(nullptr, codec_context_->channels, - frame->nb_samples, - codec_context_->sample_fmt, 1); + *total_size += av_samples_get_buffer_size( + nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples, + codec_context_->sample_fmt, 1); audio_frames->emplace_back(av_frame_clone(frame)); return true; } diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc index 87ca8969626..76f03d6608e 100644 --- a/media/ffmpeg/ffmpeg_common.cc +++ b/media/ffmpeg/ffmpeg_common.cc @@ -345,10 +345,11 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, codec_context->sample_fmt, codec_context->codec_id); ChannelLayout channel_layout = - codec_context->channels > 8 + codec_context->ch_layout.nb_channels > 8 ? CHANNEL_LAYOUT_DISCRETE - : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout, - codec_context->channels); + : ChannelLayoutToChromeChannelLayout( + codec_context->ch_layout.u.mask, + codec_context->ch_layout.nb_channels); int sample_rate = codec_context->sample_rate; switch (codec) { @@ -401,7 +402,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, extra_data, encryption_scheme, seek_preroll, codec_context->delay); if (channel_layout == CHANNEL_LAYOUT_DISCRETE) - config->SetChannelsForDiscrete(codec_context->channels); + config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels); #if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO) // These are bitstream formats unknown to ffmpeg, so they don't have @@ -470,7 +471,7 @@ void AudioDecoderConfigToAVCodecContext(const AudioDecoderConfig& config, // TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses // said information to decode. - codec_context->channels = config.channels(); + codec_context->ch_layout.nb_channels = config.channels(); codec_context->sample_rate = config.samples_per_second(); if (config.extra_data().empty()) { diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc index 5f257bdfaa6..e1be5aa9a5b 100644 --- a/media/filters/audio_file_reader.cc +++ b/media/filters/audio_file_reader.cc @@ -113,14 +113,15 @@ bool AudioFileReader::OpenDecoder() { // Verify the channel layout is supported by Chrome. Acts as a sanity check // against invalid files. See http://crbug.com/171962 - if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout, - codec_context_->channels) == + if (ChannelLayoutToChromeChannelLayout( + codec_context_->ch_layout.u.mask, + codec_context_->ch_layout.nb_channels) == CHANNEL_LAYOUT_UNSUPPORTED) { return false; } // Store initial values to guard against midstream configuration changes. - channels_ = codec_context_->channels; + channels_ = codec_context_->ch_layout.nb_channels; audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id); sample_rate_ = codec_context_->sample_rate; av_sample_format_ = codec_context_->sample_fmt; @@ -223,7 +224,7 @@ bool AudioFileReader::OnNewFrame( if (frames_read < 0) return false; - const int channels = frame->channels; + const int channels = frame->ch_layout.nb_channels; if (frame->sample_rate != sample_rate_ || channels != channels_ || frame->format != av_sample_format_) { DLOG(ERROR) << "Unsupported midstream configuration change!" diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc index 2aba7927a31..1f45a50cace 100644 --- a/media/filters/audio_file_reader_unittest.cc +++ b/media/filters/audio_file_reader_unittest.cc @@ -121,11 +121,11 @@ class AudioFileReaderTest : public testing::Test { EXPECT_FALSE(reader_->Open()); } - void RunTestFailingDecode(const char* fn) { + void RunTestFailingDecode(const char* fn, int expect_read = 0) { Initialize(fn); EXPECT_TRUE(reader_->Open()); std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets; - EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0); + EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read); } void RunTestPartialDecode(const char* fn) { @@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) { } TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) { - RunTestFailingDecode("midstream_config_change.mp3"); + RunTestFailingDecode("midstream_config_change.mp3", 42624); } #endif diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc index 185819eb936..69ff508c221 100644 --- a/media/filters/audio_video_metadata_extractor.cc +++ b/media/filters/audio_video_metadata_extractor.cc @@ -113,6 +113,15 @@ bool AudioVideoMetadataExtractor::Extract(DataSource* source, if (!stream) continue; + void* display_matrix = + av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr); + if (display_matrix) { + rotation_ = VideoTransformation::FromFFmpegDisplayMatrix( + static_cast<int32_t*>(display_matrix)) + .rotation; + info.tags["rotate"] = base::NumberToString(rotation_); + } + // Extract dictionary from streams also. Needed for containers that attach // metadata to contained streams instead the container itself, like OGG. ExtractDictionary(stream->metadata, &info.tags); @@ -255,8 +264,6 @@ void AudioVideoMetadataExtractor::ExtractDictionary(AVDictionary* metadata, if (raw_tags->find(tag->key) == raw_tags->end()) (*raw_tags)[tag->key] = tag->value; - if (ExtractInt(tag, "rotate", &rotation_)) - continue; if (ExtractString(tag, "album", &album_)) continue; if (ExtractString(tag, "artist", &artist_)) diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc index 6f231c85729..ca5e5fb927d 100644 --- a/media/filters/ffmpeg_aac_bitstream_converter.cc +++ b/media/filters/ffmpeg_aac_bitstream_converter.cc @@ -195,14 +195,15 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) { if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id || audio_profile_ != stream_codec_parameters_->profile || sample_rate_index_ != sample_rate_index || - channel_configuration_ != stream_codec_parameters_->channels || + channel_configuration_ != + stream_codec_parameters_->ch_layout.nb_channels || frame_length_ != header_plus_packet_size) { header_generated_ = GenerateAdtsHeader(stream_codec_parameters_->codec_id, 0, // layer stream_codec_parameters_->profile, sample_rate_index, 0, // private stream - stream_codec_parameters_->channels, + stream_codec_parameters_->ch_layout.nb_channels, 0, // originality 0, // home 0, // copyrighted_stream @@ -214,7 +215,7 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) { codec_ = stream_codec_parameters_->codec_id; audio_profile_ = stream_codec_parameters_->profile; sample_rate_index_ = sample_rate_index; - channel_configuration_ = stream_codec_parameters_->channels; + channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels; frame_length_ = header_plus_packet_size; } diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc index 1fd4c5ccd7d..f59bcd8fdaf 100644 --- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc +++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc @@ -34,7 +34,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test { memset(&test_parameters_, 0, sizeof(AVCodecParameters)); test_parameters_.codec_id = AV_CODEC_ID_AAC; test_parameters_.profile = FF_PROFILE_AAC_MAIN; - test_parameters_.channels = 2; + test_parameters_.ch_layout.nb_channels = 2; test_parameters_.extradata = extradata_header_; test_parameters_.extradata_size = sizeof(extradata_header_); } diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc index 6a56c675f7d..4615fdeb3fb 100644 --- a/media/filters/ffmpeg_audio_decoder.cc +++ b/media/filters/ffmpeg_audio_decoder.cc @@ -28,7 +28,7 @@ namespace media { // Return the number of channels from the data in |frame|. static inline int DetermineChannels(AVFrame* frame) { - return frame->channels; + return frame->ch_layout.nb_channels; } // Called by FFmpeg's allocation routine to allocate a buffer. Uses @@ -231,7 +231,7 @@ bool FFmpegAudioDecoder::OnNewFrame(const DecoderBuffer& buffer, // Translate unsupported into discrete layouts for discrete configurations; // ffmpeg does not have a labeled discrete configuration internally. ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout( - codec_context_->channel_layout, codec_context_->channels); + codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels); if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED && config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) { channel_layout = CHANNEL_LAYOUT_DISCRETE; @@ -348,11 +348,11 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) { // Success! av_sample_format_ = codec_context_->sample_fmt; - if (codec_context_->channels != config.channels()) { + if (codec_context_->ch_layout.nb_channels != config.channels()) { MEDIA_LOG(ERROR, media_log_) << "Audio configuration specified " << config.channels() << " channels, but FFmpeg thinks the file contains " - << codec_context_->channels << " channels"; + << codec_context_->ch_layout.nb_channels << " channels"; ReleaseFFmpegResources(); state_ = DecoderState::kUninitialized; return false; @@ -403,7 +403,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s, if (frame->nb_samples <= 0) return AVERROR(EINVAL); - if (s->channels != channels) { + if (s->ch_layout.nb_channels != channels) { DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count."; return AVERROR(EINVAL); } @@ -436,7 +436,8 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s, ChannelLayout channel_layout = config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE ? CHANNEL_LAYOUT_DISCRETE - : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels); + : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask, + s->ch_layout.nb_channels); if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) { DLOG(ERROR) << "Unsupported channel layout."; ++++++ gcc-enable-lto.patch ++++++ --- /var/tmp/diff_new_pack.EAVmig/_old 2022-07-05 12:09:39.576572191 +0200 +++ /var/tmp/diff_new_pack.EAVmig/_new 2022-07-05 12:09:39.580572196 +0200 @@ -53,19 +53,19 @@ if (is_android) { sources += [ -Index: electron-17.1.0/base/BUILD.gn -=================================================================== ---- electron-17.1.0.orig/base/BUILD.gn 2022-03-07 17:20:29.432807450 +0100 -+++ electron-17.1.0/base/BUILD.gn 2022-03-09 08:25:02.250701641 +0100 -@@ -2026,6 +2026,10 @@ component("base") { - ] - } - -+ if (gcc_lto) { -+ configs -= [ "//build/config/compiler:gcc_lto" ] -+ } +Index: chromium-96.0.4664.93/base/BUILD.gn +=================================================================== +--- a/base/BUILD.gn ++++ b/base/BUILD.gn +@@ -1986,6 +1986,10 @@ + } + } + ++ if (gcc_lto) { ++ configs -= [ "//build/config/compiler:gcc_lto" ] ++ } + - if (current_cpu == "x64") { - defines += [ "PA_PCSCAN_STACK_SUPPORTED" ] - sources += [ "allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc" ] + if (use_partition_alloc) { + sources += [ + "allocator/partition_allocator/address_pool_manager_unittest.cc", ++++++ json_generation-missing-unique_ptr.patch ++++++ --- a/components/policy/core/browser/webui/json_generation.h +++ b/components/policy/core/browser/webui/json_generation.h @@ -5,6 +5,7 @@ #ifndef COMPONENTS_POLICY_CORE_BROWSER_WEBUI_JSON_GENERATION_H_ #define COMPONENTS_POLICY_CORE_BROWSER_WEBUI_JSON_GENERATION_H_ +#include <memory> #include <string> #include "components/policy/policy_export.h" ++++++ libXNVCtrl.gn ++++++ import("//build/shim_headers.gni") shim_headers("libXNVCtrl_shim") { root_path = "../../../../../third_party/libXNVCtrl" prefix = "NVCtrl/" headers = [ "NVCtrl.h", "NVCtrlLib.h", "nv_control.h", ] } source_set("libXNVCtrl") { deps = [ ":libXNVCtrl_shim" ] libs = [ "XNVCtrl", "xcb", ] } ++++++ libaom.gn ++++++ # Copyright 2016 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/buildflag_header.gni") import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") import("//third_party/libaom/options.gni") pkg_config("system_libaom") { packages = [ "aom" ] } buildflag_header("libaom_buildflags") { header = "libaom_buildflags.h" flags = [ "ENABLE_LIBAOM_DECODER=$enable_libaom_decoder" ] } shim_headers("libaom_shim") { root_path = "source/libaom" headers = [ "aom/aom.h", "aom/aom_codec.h", "aom/aom_decoder.h", "aom/aom_encoder.h", "aom/aom_frame_buffer.h", "aom/aom_image.h", "aom/aom_integer.h", "aom/aomcx.h", "aom/aomdx.h", ] } source_set("libaom") { deps = [ ":libaom_shim", ] public_configs = [ ":system_libaom" ] } ++++++ libavif.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_libavif") { packages = [ "libavif" ] } shim_headers("avif_shim") { root_path = "src/include" headers = [ "avif/avif.h" ] } source_set("libavif") { deps = [ ":avif_shim", ] public_configs = [ ":system_libavif" ] } ++++++ libjxl.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_libjxl") { packages = [ "libjxl" ] } shim_headers("jxl_shim") { root_path = "src/lib/include" headers = [ "jxl/butteraugli.h", "jxl/butteraugli_cxx.h", "jxl/codestream_header.h", "jxl/color_encoding.h", "jxl/decode.h", "jxl/decode_cxx.h", "jxl/encode.h", "jxl/encode_cxx.h", "jxl/jxl_export.h", "jxl/jxl_threads_export.h", "jxl/memory_manager.h", "jxl/parallel_runner.h", "jxl/resizable_parallel_runner.h", "jxl/resizable_parallel_runner_cxx.h", "jxl/thread_parallel_runner.h", "jxl/thread_parallel_runner_cxx.h", "jxl/types.h", ] } source_set("libjxl") { deps = [ ":jxl_shim", ] public_configs = [ ":system_libjxl" ] } ++++++ metrics_recorder-missing-string.patch ++++++ --- a/device/bluetooth/bluez/metrics_recorder.h 2022-06-21 21:52:39.079987764 +0200 +++ b/device/bluetooth/bluez/metrics_recorder.h 2022-06-24 20:38:27.125802209 +0200 @@ -5,6 +5,7 @@ #ifndef DEVICE_BLUETOOTH_BLUEZ_METRICS_RECORDER_H_ #define DEVICE_BLUETOOTH_BLUEZ_METRICS_RECORDER_H_ +#include <string> #include "third_party/abseil-cpp/absl/types/optional.h" namespace bluetooth { ++++++ multi_channel_content_detector-missing-unique_ptr.patch ++++++ --- a/third_party/webrtc/modules/audio_processing/aec3/multi_channel_content_detector.h +++ b/third_party/webrtc/modules/audio_processing/aec3/multi_channel_content_detector.h @@ -14,6 +14,7 @@ #include <stddef.h> +#include <memory> #include <vector> #include "absl/types/optional.h" ++++++ nested-nested-nested-nested-nested-nested-regex-patterns.patch ++++++ description: fix build error when building with clang & GNU libstdc++ author: Stephan Hartmann <sth...@googlemail.com> Apparently this doesn't happen with the embedded clang, but we get this: In file included from ../../components/autofill/core/browser/form_parsing/regex_patterns.cc:5: In file included from ../../components/autofill/core/browser/form_parsing/regex_patterns.h:8: In file included from ../../base/containers/span.h:10: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/algorithm:74: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/pstl/glue_algorithm_defs.h:13: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:54: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/tuple:39: /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/array:268:52: fatal error: instantiating fold expression with 303 arguments exceeded expression nesting limit of 256 -> array<enable_if_t<(is_same_v<_Tp, _Up> && ...), _Tp>, ~~~~~~~~~~~~~~~~~~~~~~~~^~~~ gen/components/autofill/core/browser/form_parsing/regex_patterns_inl.h:77:22: note: while substituting deduced template arguments into function template '<deduction guide for array>' [with _Tp = autofill::MatchingPattern, _Up = <autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPatter[...] This is fixed upstream in chromium 103 with the following commit: https://chromium-review.googlesource.com/c/chromium/src/+/3613356 However, that depends on other stuff and we can't use it without a bunch more changes - so we'll just use this fix which I nabbed from Stephan Hartmann instead: https://github.com/stha09/chromium-patches/blob/master/chromium-102-regex_pattern-array.patch --- a/components/autofill/core/browser/BUILD.gn +++ b/components/autofill/core/browser/BUILD.gn @@ -54,6 +54,11 @@ action("regex_patterns_inl_h") { } static_library("browser") { + if (is_clang) { + cflags = [ + "-fbracket-depth=1000", + ] + } sources = [ "address_normalization_manager.cc", "address_normalization_manager.h", ++++++ node-system-libs.patch ++++++ --- a/third_party/electron_node/BUILD.gn 2022-06-15 16:17:43.423991754 +0200 +++ b/third_party/electron_node/BUILD.gn 2022-06-20 16:24:07.832340077 +0200 @@ -40,6 +40,23 @@ # Allows embedders to override the NODE_MODULE_VERSION define node_module_version = "" + + use_system_cares = false + use_system_nghttp2 = false +} + +if (is_linux) { + import("//build/config/linux/pkg_config.gni") + if(use_system_cares) { + pkg_config("cares") { + packages = [ "libcares" ] + } + } + if(use_system_nghttp2) { + pkg_config("nghttp2") { + packages = [ "libnghttp2" ] + } + } } assert(!node_use_dtrace, "node_use_dtrace not supported in GN") @@ -182,17 +199,25 @@ component("node_lib") { deps = [ ":node_js2c", - "deps/cares", "deps/histogram", "deps/googletest:gtest", "deps/llhttp", - "deps/nghttp2", "deps/uvwasi", "//third_party/zlib", "//third_party/brotli:dec", "//third_party/brotli:enc", "//v8:v8_libplatform", ] + if(use_system_cares) { + configs += [ ":cares" ] + } else { + deps += [ "deps/cares" ] + } + if(use_system_nghttp2) { + configs += [ ":nghttp2" ] + } else { + deps += [ "deps/nghttp2" ] + } public_deps = [ "deps/uv", "//electron:electron_js2c", ++++++ pdfium-fix-system-libs.patch ++++++ --- chromium-74.0.3729.40/third_party/pdfium/core/fpdfapi/render/BUILD.gn.system-openjpeg 2019-03-27 19:52:48.000000000 +0100 +++ chromium-74.0.3729.40/third_party/pdfium/core/fpdfapi/render/BUILD.gn 2019-03-30 20:16:31.748282727 +0100 @@ -56,6 +56,7 @@ jumbo_source_set("render") { "../font", "../page", "../parser", + "../../../third_party:libopenjpeg2", ] visibility = [ "../../../*" ] if (is_win) { --- chromium-77.0.3865.10/third_party/pdfium/core/fpdfapi/page/BUILD.gn.system-openjpeg 2019-08-06 13:58:27.000000000 +0200 +++ chromium-77.0.3865.10/third_party/pdfium/core/fpdfapi/page/BUILD.gn 2019-08-17 23:49:04.913234649 +0200 @@ -105,6 +105,8 @@ jumbo_source_set("page") { ] configs += [ "../../../:pdfium_strict_config" ] deps = [ + "../../../third_party:libopenjpeg2", + "../../../third_party:lcms2", "../../../constants", "../../fxcodec", "../../fxcrt", ++++++ process_doc_wrapper-do-not-assume-ABI.patch ++++++ You may not depend on the signatures of Abseil APIs. --- a/third_party/maldoca/src/maldoca/service/common/process_doc_wrapper.h 2022-06-21 21:52:33.000000000 +0200 +++ a/third_party/maldoca/src/maldoca/service/common/process_doc_wrapper.h 2022-06-24 07:31:47.677340600 +0200 @@ -8,9 +8,7 @@ #include "maldoca/service/proto/maldoca_service.pb.h" #include "maldoca/service/proto/processing_config.pb.h" -namespace absl { -class Status; -} // namespace absl +#include "third_party/abseil-cpp/absl/status/status.h" namespace third_party_maldoca { ++++++ replace_gn_files-system-libs.patch ++++++ --- 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,37 @@ 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', + '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', 'ffmpeg': 'third_party/ffmpeg/BUILD.gn', 'flac': 'third_party/flac/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', 'libdrm': 'third_party/libdrm/BUILD.gn', 'libevent': 'base/third_party/libevent/BUILD.gn', 'libjpeg': 'third_party/libjpeg.gni', @@ -33,6 +61,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', } ++++++ skia_utils-missing-uint64_t.patch ++++++ --- a/gpu/command_buffer/common/skia_utils.h +++ b/gpu/command_buffer/common/skia_utils.h @@ -5,6 +5,7 @@ #ifndef GPU_COMMAND_BUFFER_COMMON_SKIA_UTILS_H_ #define GPU_COMMAND_BUFFER_COMMON_SKIA_UTILS_H_ +#include <cstdint> #include "gpu/raster_export.h" #include "third_party/abseil-cpp/absl/types/optional.h" ++++++ support-i386.patch ++++++ author: Andres Salomon <dilin...@debian.org> description: don't disable i386 builds on linux https://chromium-review.googlesource.com/c/chromium/src/+/3583780 Chromium upstream decided to kill off i386 builds on Linux. They were goin to add a 'force_x86_support' arg, but instead "[distributions that still support i386] can patch the file." At this point, i386 on linux is completely unsupported upstream, so we're on our own with bugs. --- a/BUILD.gn +++ b/BUILD.gn @@ -1509,9 +1509,7 @@ if (!is_ios) { } # TODO(cassew): Add more OS's that don't support x86. -is_valid_x86_target = - target_os != "ios" && target_os != "mac" && - (target_os != "linux" || use_libfuzzer || !build_with_chromium) +is_valid_x86_target = true 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.") ++++++ swiftshader-SPIRV-Headers.gn ++++++ import("//build/shim_headers.gni") shim_headers("SPIRV-Headers_shim") { root_path = "../../../../third_party/SPIRV-Headers/include" headers = [ "spirv/unified1/GLSL.std.450.h", "spirv/unified1/NonSemanticClspvReflection.h", "spirv/unified1/NonSemanticDebugPrintf.h", "spirv/unified1/OpenCL.std.h", "spirv/unified1/spirv.h", "spirv/unified1/spirv.hpp", ] } source_set("spv_headers") { deps = [ ":SPIRV-Headers_shim" ] } ++++++ swiftshader-SPIRV-Tools.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_SPIRV-Tools") { packages = [ "SPIRV-Tools" ] } shim_headers("SPIRV-Tools_shim") { root_path = "../../../../third_party/SPIRV-Tools/include" headers = [ "spirv-tools/instrument.hpp", "spirv-tools/libspirv.h", "spirv-tools/libspirv.hpp", "spirv-tools/linker.hpp", "spirv-tools/optimizer.hpp", ] } source_set("spvtools_headers") { deps = [ ":SPIRV-Tools_shim" ] public_configs = [ ":system_SPIRV-Tools" ] } source_set("spvtools_opt") { deps = [ ":SPIRV-Tools_shim" ] public_configs = [ ":system_SPIRV-Tools" ] } source_set("spvtools_val") { deps = [ ":SPIRV-Tools_shim" ] public_configs = [ ":system_SPIRV-Tools" ] } ++++++ swiftshader-use-system-llvm.patch ++++++ --- a/third_party/swiftshader/src/Reactor/BUILD.gn 2022-06-21 22:03:49.111995951 +0200 +++ b/third_party/swiftshader/src/Reactor/BUILD.gn 2022-06-24 14:57:25.017656238 +0200 @@ -308,11 +263,9 @@ if (supports_llvm) { swiftshader_source_set("swiftshader_llvm_reactor") { - llvm_dir = "../../third_party/llvm-10.0" deps = [ ":swiftshader_reactor_base", - "$llvm_dir:swiftshader_llvm", ] sources = [ @@ -323,24 +276,7 @@ configs = [ ":swiftshader_llvm_reactor_private_config" ] - include_dirs = [ - "$llvm_dir/llvm/include/", - "$llvm_dir/configs/common/include/", - ] - - if (is_linux || is_chromeos) { - include_dirs += [ "$llvm_dir/configs/linux/include/" ] - } else if (is_fuchsia) { - include_dirs += [ "$llvm_dir/configs/fuchsia/include/" ] - } else if (is_win) { - include_dirs += [ "$llvm_dir/configs/windows/include/" ] - } else if (is_android) { - include_dirs += [ "$llvm_dir/configs/android/include/" ] - } else if (is_mac) { - include_dirs += [ "$llvm_dir/configs/darwin/include/" ] - } else { - assert(false, "llvm not configured for target platform") - } + libs = ["LLVM"] } } ++++++ system-jsoncpp.patch ++++++ description: use system jsoncpp author: Michael Gilbert <mgilb...@debian.org> --- a/third_party/jsoncpp/BUILD.gn +++ b/third_party/jsoncpp/BUILD.gn @@ -3,6 +3,7 @@ # found in the LICENSE file. import("//testing/libfuzzer/fuzzer_test.gni") +import("//build/config/linux/pkg_config.gni") declare_args() { # Allow individual projects to remove the warning suppression @@ -11,49 +12,12 @@ declare_args() { jsoncpp_no_deprecated_declarations = true } -config("jsoncpp_config") { - include_dirs = [ "source/include" ] - - # TODO(crbug.com/983223): Update JsonCpp BUILD.gn to remove deprecated - # declaration flag. - # This temporary flag allowing clients to update to the new version, and then - # update to the new StreamWriter and CharReader classes. - if (jsoncpp_no_deprecated_declarations && - (!is_win || (is_clang && !is_ios))) { - cflags_cc = [ "-Wno-deprecated-declarations" ] - } +pkg_config("jsoncpp_config") { + packages = [ "jsoncpp" ] } -source_set("jsoncpp") { - sources = [ - "source/include/json/allocator.h", - "source/include/json/assertions.h", - "source/include/json/config.h", - "source/include/json/forwards.h", - "source/include/json/json.h", - "source/include/json/json_features.h", - "source/include/json/reader.h", - "source/include/json/value.h", - "source/include/json/version.h", - "source/include/json/writer.h", - "source/src/lib_json/json_reader.cpp", - "source/src/lib_json/json_tool.h", - "source/src/lib_json/json_value.cpp", - "source/src/lib_json/json_writer.cpp", - ] - +group("jsoncpp") { public_configs = [ ":jsoncpp_config" ] - - defines = [ - "JSON_USE_EXCEPTION=0", - "JSON_USE_NULLREF=0", - ] - - include_dirs = [ "source/src/lib_json" ] - - if (!is_win || is_clang) { - cflags_cc = [ "-Wno-implicit-fallthrough" ] - } } if (build_with_chromium) { --- a/components/mirroring/service/receiver_response.cc +++ b/components/mirroring/service/receiver_response.cc @@ -10,8 +10,8 @@ #include "base/logging.h" #include "base/strings/string_util.h" #include "components/mirroring/service/value_util.h" -#include "third_party/jsoncpp/source/include/json/reader.h" -#include "third_party/jsoncpp/source/include/json/writer.h" +#include <json/reader.h> +#include <json/writer.h> namespace mirroring { namespace { --- a/components/mirroring/service/receiver_response.h +++ b/components/mirroring/service/receiver_response.h @@ -11,7 +11,7 @@ #include "base/check.h" #include "base/component_export.h" -#include "third_party/jsoncpp/source/include/json/value.h" +#include <json/value.h> #include "third_party/openscreen/src/cast/streaming/answer_messages.h" namespace mirroring { --- a/third_party/openscreen/src/cast/streaming/answer_messages.h +++ b/third_party/openscreen/src/cast/streaming/answer_messages.h @@ -17,7 +17,7 @@ #include "absl/types/optional.h" #include "cast/streaming/resolution.h" #include "cast/streaming/ssrc.h" -#include "json/value.h" +#include <json/value.h> #include "platform/base/error.h" #include "util/simple_fraction.h" ++++++ system-libbsd.patch ++++++ This source file was copied from libbsd, use the system library instead --- a/third_party/libsync/BUILD.gn 2022-06-21 21:52:53.867987945 +0200 +++ a/third_party/libsync/BUILD.gn 2022-06-28 17:30:45.327377489 +0200 @@ -31,7 +31,6 @@ "src/include/sync/sync.h", "src/sw_sync.h", "src/sync.c", - "strlcpy.c", ] configs -= [ "//build/config/compiler:chromium_code" ] @@ -41,6 +40,8 @@ ] public_configs = [ ":libsync_config" ] + + libs = [ "bsd" ] } } ++++++ system-libdrm.patch ++++++ --- /var/tmp/diff_new_pack.EAVmig/_old 2022-07-05 12:09:39.772572473 +0200 +++ /var/tmp/diff_new_pack.EAVmig/_new 2022-07-05 12:09:39.772572473 +0200 @@ -14,19 +14,6 @@ } source_set("libdrm") { -Index: chromium-98.0.4758.80/media/gpu/chromeos/video_decoder_pipeline.cc -=================================================================== ---- chromium-98.0.4758.80.orig/media/gpu/chromeos/video_decoder_pipeline.cc -+++ chromium-98.0.4758.80/media/gpu/chromeos/video_decoder_pipeline.cc -@@ -28,7 +28,7 @@ - - #if BUILDFLAG(USE_VAAPI) - #include "media/gpu/vaapi/vaapi_video_decoder.h" --#include "third_party/libdrm/src/include/drm/drm_fourcc.h" -+#include <drm_fourcc.h> - #elif BUILDFLAG(USE_V4L2_CODEC) - #include "media/gpu/v4l2/v4l2_video_decoder.h" - #else Index: chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/crtc_controller.h =================================================================== --- chromium-98.0.4758.80.orig/ui/ozone/platform/drm/gpu/crtc_controller.h ++++++ system-zlib.patch ++++++ description: use system zlib library instead of embedded lzma in courgette author: Michael Gilbert <mgilb...@debian.org> --- a/courgette/BUILD.gn +++ b/courgette/BUILD.gn @@ -58,7 +58,6 @@ static_library("courgette_lib") { deps = [ "//base", - "//third_party/lzma_sdk", ] public_deps = [ @@ -79,7 +78,6 @@ source_set("courgette_common") { ] deps = [ "//base", - "//third_party/lzma_sdk", ] } --- a/courgette/crc.cc +++ b/courgette/crc.cc @@ -7,6 +7,8 @@ #include <stdint.h> #include <stddef.h> +#define COURGETTE_USE_CRC_LIB + #ifdef COURGETTE_USE_CRC_LIB # include "zlib.h" #else ++++++ thread_annotations-fix-build-with-system-abseil.patch ++++++ --- a/base/thread_annotations.h 2022-06-21 21:52:33.363987695 +0200 +++ b/base/thread_annotations.h 2022-06-24 16:18:54.238568316 +0200 @@ -40,6 +40,8 @@ #include "base/check_op.h" #include "build/build_config.h" +#include <absl/base/internal/thread_annotations.h> + #if defined(__clang__) #define THREAD_ANNOTATION_ATTRIBUTE__(x) __attribute__((x)) #else @@ -227,21 +229,7 @@ // but the compiler cannot confirm that. #define TS_UNCHECKED_READ(x) thread_safety_analysis::ts_unchecked_read(x) -namespace thread_safety_analysis { - -// Takes a reference to a guarded data member, and returns an unguarded -// reference. -template <typename T> -inline const T& ts_unchecked_read(const T& v) NO_THREAD_SAFETY_ANALYSIS { - return v; -} - -template <typename T> -inline T& ts_unchecked_read(T& v) NO_THREAD_SAFETY_ANALYSIS { - return v; -} -} // namespace thread_safety_analysis // The above is imported as-is from abseil-cpp. The following Chromium-specific // synonyms are added for Chromium concepts (SequenceChecker/ThreadChecker). ++++++ vulkan-SPIRV-Headers.gn ++++++ # This shim can only be used if you build Chromium without DAWN import("//build/shim_headers.gni") shim_headers("vulkan-SPIRV-Headers_shim") { root_path = "include" headers = [ "spirv/unified1/GLSL.std.450.h", "spirv/unified1/NonSemanticClspvReflection.h", "spirv/unified1/NonSemanticDebugPrintf.h", "spirv/unified1/OpenCL.std.h", "spirv/unified1/spirv.h", "spirv/unified1/spirv.hpp", ] } source_set("spv_headers") { deps = [ ":vulkan-SPIRV-Headers_shim" ] } ++++++ vulkan-SPIRV-Tools.gn ++++++ # This shim can only be used if you build Chromium without DAWN import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("spvtools_internal_config") { packages = [ "SPIRV-Tools" ] } shim_headers("vulkan-SPIRV-Tools_shim") { root_path = "include" headers = [ "spirv-tools/instrument.hpp", "spirv-tools/libspirv.h", "spirv-tools/libspirv.hpp", "spirv-tools/linker.hpp", "spirv-tools/optimizer.hpp", ] } source_set("SPIRV-Tools") { deps = [ ":vulkan-SPIRV-Tools_shim" ] public_configs = [ ":spvtools_internal_config" ] } source_set("spvtools") { deps = [ ":vulkan-SPIRV-Tools_shim" ] public_configs = [ ":spvtools_internal_config" ] } source_set("spvtools_core_enums_unified1") { deps = [ ":vulkan-SPIRV-Tools_shim" ] public_configs = [ ":spvtools_internal_config" ] } source_set("spvtools_core_tables_unified1") { deps = [ ":vulkan-SPIRV-Tools_shim" ] public_configs = [ ":spvtools_internal_config" ] } source_set("spvtools_headers") { deps = [ ":vulkan-SPIRV-Tools_shim" ] public_configs = [ ":spvtools_internal_config" ] } source_set("spvtools_language_header_cldebuginfo100") { deps = [ ":vulkan-SPIRV-Tools_shim" ] public_configs = [ ":spvtools_internal_config" ] } source_set("spvtools_language_header_debuginfo") { deps = [ ":vulkan-SPIRV-Tools_shim" ] public_configs = [ ":spvtools_internal_config" ] } source_set("spvtools_language_header_vkdebuginfo100") { deps = [ ":vulkan-SPIRV-Tools_shim" ] public_configs = [ ":spvtools_internal_config" ] } source_set("spvtools_opt") { deps = [ ":vulkan-SPIRV-Tools_shim" ] public_configs = [ ":spvtools_internal_config" ] } source_set("spvtools_val") { deps = [ ":vulkan-SPIRV-Tools_shim" ] public_configs = [ ":spvtools_internal_config" ] } ++++++ woff2.gn ++++++ import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_woff2") { packages = [ "libwoff2dec" ] } shim_headers("woff2_shim") { root_path = "include" headers = [ "woff2/decode.h", "woff2/encode.h", "woff2/output.h", ] } source_set("woff2_dec") { deps = [ ":woff2_shim" ] public_configs = [ ":system_woff2" ] }