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" ]
}

Reply via email to