diff options
Diffstat (limited to 'devel/electron18/files')
1130 files changed, 51728 insertions, 0 deletions
diff --git a/devel/electron18/files/apply-electron-patches.sh b/devel/electron18/files/apply-electron-patches.sh new file mode 100644 index 000000000000..9d974b536054 --- /dev/null +++ b/devel/electron18/files/apply-electron-patches.sh @@ -0,0 +1,26 @@ +#! /bin/sh + +PATH=/bin:/usr/bin:/usr/local/bin + +GIT_CMD="git" +PATCH_CMD="${GIT_CMD} apply" +#PATCH_FLAGS="--numstat --check" # for debugging +PATCH_FLAGS="--verbose --reject" + +WRKSRC=$1 +PATCH_CONF=${WRKSRC}/electron/patches/config.json + +${GIT_CMD} status "${WRKSRC}" > /dev/null 2>&1 && IS_GIT_REPO=1 + +PATCHD_REPOD_PAIRS=$(sed -e '1d; $d; /^$/d; s/[",]//g; s/: */:/' "${PATCH_CONF}") +for prp in ${PATCHD_REPOD_PAIRS}; do + pd=$(echo "${prp}" | awk -F: '{print $1}' | sed -e 's/src/./') + rd=$(echo "${prp}" | awk -F: '{print $2}' | sed -e 's/src/./') + (cd "${WRKSRC}/${rd}" && \ + if [ -n "${IS_GIT_REPO}" ]; then + PATCH_FLAGS="${PATCH_FLAGS} --directory=$(${GIT_CMD} rev-parse --show-prefix)" + fi && \ + while read -r p; do + ${PATCH_CMD} ${PATCH_FLAGS} "${WRKSRC}/${pd}/${p}" + done < "${WRKSRC}/${pd}/.patches") +done diff --git a/devel/electron18/files/package.json b/devel/electron18/files/package.json new file mode 100644 index 000000000000..5ac68a087d05 --- /dev/null +++ b/devel/electron18/files/package.json @@ -0,0 +1,144 @@ +{ + "name": "electron", + "version": "18.3.4", + "repository": "https://github.com/electron/electron", + "description": "Build cross platform desktop apps with JavaScript, HTML, and CSS", + "devDependencies": { + "@azure/storage-blob": "^12.9.0", + "@electron/docs-parser": "^0.12.3", + "@electron/typescript-definitions": "^8.9.5", + "@octokit/auth-app": "^2.10.0", + "@octokit/rest": "^18.0.3", + "@primer/octicons": "^10.0.0", + "@types/basic-auth": "^1.1.3", + "@types/busboy": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/chai-as-promised": "^7.1.3", + "@types/dirty-chai": "^2.0.2", + "@types/express": "^4.17.13", + "@types/fs-extra": "^9.0.1", + "@types/klaw": "^3.0.1", + "@types/minimist": "^1.2.0", + "@types/mocha": "^7.0.2", + "@types/node": "^16.11.26", + "@types/semver": "^7.3.3", + "@types/send": "^0.14.5", + "@types/split": "^1.0.0", + "@types/stream-json": "^1.5.1", + "@types/temp": "^0.8.34", + "@types/uuid": "^3.4.6", + "@types/webpack": "^4.41.21", + "@types/webpack-env": "^1.16.3", + "@typescript-eslint/eslint-plugin": "^4.4.1", + "@typescript-eslint/parser": "^4.4.1", + "asar": "^3.1.0", + "aws-sdk": "^2.814.0", + "check-for-leaks": "^1.2.1", + "colors": "1.4.0", + "dotenv-safe": "^4.0.4", + "dugite": "^1.103.0", + "eslint": "^7.4.0", + "eslint-config-standard": "^14.1.1", + "eslint-plugin-import": "^2.22.0", + "eslint-plugin-mocha": "^7.0.1", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-standard": "^4.0.1", + "eslint-plugin-typescript": "^0.14.0", + "express": "^4.16.4", + "folder-hash": "^2.1.1", + "fs-extra": "^9.0.1", + "got": "^6.3.0", + "husky": "^6.0.0", + "klaw": "^3.0.0", + "lint": "^1.1.2", + "lint-staged": "^10.2.11", + "markdownlint": "^0.21.1", + "markdownlint-cli": "^0.25.0", + "minimist": "^1.2.5", + "null-loader": "^4.0.0", + "pre-flight": "^1.1.0", + "remark-cli": "^10.0.0", + "remark-preset-lint-markdown-style-guide": "^4.0.0", + "semver": "^5.6.0", + "shx": "^0.3.2", + "standard-markdown": "^6.0.0", + "stream-json": "^1.7.1", + "tap-xunit": "^2.4.1", + "temp": "^0.8.3", + "timers-browserify": "1.4.2", + "ts-loader": "^8.0.2", + "ts-node": "6.2.0", + "typescript": "^4.5.5", + "webpack": "^4.43.0", + "webpack-cli": "^3.3.12", + "wrapper-webpack-plugin": "^2.1.0" + }, + "private": true, + "scripts": { + "asar": "asar", + "generate-version-json": "node script/generate-version-json.js", + "lint": "node ./script/lint.js && npm run lint:clang-format && npm run lint:docs", + "lint:js": "node ./script/lint.js --js", + "lint:clang-format": "python3 script/run-clang-format.py -r -c shell/ || (echo \"\\nCode not formatted correctly.\" && exit 1)", + "lint:clang-tidy": "ts-node ./script/run-clang-tidy.ts", + "lint:cpp": "node ./script/lint.js --cc", + "lint:objc": "node ./script/lint.js --objc", + "lint:py": "node ./script/lint.js --py", + "lint:gn": "node ./script/lint.js --gn", + "lint:docs": "remark docs -qf && npm run lint:js-in-markdown && npm run create-typescript-definitions && npm run lint:docs-relative-links && npm run lint:markdownlint", + "lint:docs-relative-links": "python3 ./script/check-relative-doc-links.py", + "lint:markdownlint": "markdownlint \"*.md\" \"docs/**/*.md\"", + "lint:js-in-markdown": "standard-markdown docs", + "create-api-json": "electron-docs-parser --dir=./", + "create-typescript-definitions": "npm run create-api-json && electron-typescript-definitions --api=electron-api.json && node spec/ts-smoke/runner.js", + "gn-typescript-definitions": "npm run create-typescript-definitions && shx cp electron.d.ts", + "pre-flight": "pre-flight", + "gn-check": "node ./script/gn-check.js", + "precommit": "lint-staged", + "preinstall": "node -e 'process.exit(0)'", + "prepack": "check-for-leaks", + "repl": "node ./script/start.js --interactive", + "start": "node ./script/start.js", + "test": "node ./script/spec-runner.js", + "tsc": "tsc", + "webpack": "webpack" + }, + "license": "MIT", + "author": "Electron Community", + "keywords": [ + "electron" + ], + "lint-staged": { + "*.{js,ts}": [ + "node script/lint.js --js --fix --only --" + ], + "*.{js,ts,d.ts}": [ + "ts-node script/gen-filenames.ts" + ], + "*.{cc,mm,c,h}": [ + "python3 script/run-clang-format.py -r -c --fix" + ], + "*.md": [ + "npm run lint:docs" + ], + "*.{gn,gni}": [ + "npm run gn-check", + "python3 script/run-gn-format.py" + ], + "*.py": [ + "node script/lint.js --py --fix --only --" + ], + "docs/api/**/*.md": [ + "ts-node script/gen-filenames.ts", + "markdownlint --config .markdownlint.autofix.json --fix", + "git add filenames.auto.gni" + ], + "{*.patch,.patches}": [ + "node script/lint.js --patches --only --", + "ts-node script/check-patch-diff.ts" + ], + "DEPS": [ + "node script/gen-hunspell-filenames.js" + ] + } +} diff --git a/devel/electron18/files/patch-BUILD.gn b/devel/electron18/files/patch-BUILD.gn new file mode 100644 index 000000000000..f90dc011c359 --- /dev/null +++ b/devel/electron18/files/patch-BUILD.gn @@ -0,0 +1,72 @@ +--- BUILD.gn.orig 2022-05-19 05:17:30 UTC ++++ BUILD.gn +@@ -53,7 +53,7 @@ declare_args() { + root_extra_deps = [] + } + +-if (is_official_build) { ++if (is_official_build && !is_bsd) { + # An official (maximally optimized!) component (optimized for build times) + # build doesn't make sense and usually doesn't work. + assert(!is_component_build) +@@ -452,7 +452,7 @@ group("gn_all") { + ] + } + +- if (is_linux || is_chromeos || is_android) { ++ if ((is_linux && !is_bsd) || is_chromeos || is_android) { + deps += [ + "//third_party/breakpad:breakpad_unittests", + "//third_party/breakpad:core-2-minidump", +@@ -636,6 +636,15 @@ group("gn_all") { + } + } + ++ if (is_bsd) { ++ deps -= [ ++ "//third_party/breakpad:dump_syms($host_toolchain)", ++ "//third_party/breakpad:microdump_stackwalk($host_toolchain)", ++ "//third_party/breakpad:minidump_dump($host_toolchain)", ++ "//third_party/breakpad:minidump_stackwalk($host_toolchain)", ++ ] ++ } ++ + if (is_mac) { + deps += [ + "//third_party/breakpad:crash_inspector", +@@ -685,7 +694,7 @@ group("gn_all") { + host_os == "win") { + deps += [ "//chrome/test/mini_installer:mini_installer_tests" ] + } +- } else if (!is_android && !is_ios && !is_fuchsia) { ++ } else if (!is_android && !is_ios && !is_fuchsia && !is_bsd) { + deps += [ "//third_party/breakpad:symupload($host_toolchain)" ] + } + +@@ -1147,7 +1156,7 @@ if (!is_ios) { + data_deps += [ "//content/web_test:web_test_common_mojom_js_data_deps" ] + } + +- if (!is_win && !is_android) { ++ if (!is_win && !is_android && !is_bsd) { + data_deps += + [ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ] + } +@@ -1156,7 +1165,7 @@ if (!is_ios) { + data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux && !is_bsd) || is_chromeos) { + data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ] + } + +@@ -1535,7 +1544,7 @@ group("chromium_builder_perf") { + + if (is_win) { + data_deps += [ "//chrome/installer/mini_installer:mini_installer" ] +- } else { ++ } else if (!is_bsd) { + data_deps += + [ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ] + } diff --git a/devel/electron18/files/patch-apps_ui_views_app__window__frame__view.cc b/devel/electron18/files/patch-apps_ui_views_app__window__frame__view.cc new file mode 100644 index 000000000000..3b9f08d38995 --- /dev/null +++ b/devel/electron18/files/patch-apps_ui_views_app__window__frame__view.cc @@ -0,0 +1,11 @@ +--- apps/ui/views/app_window_frame_view.cc.orig 2022-05-19 05:17:31 UTC ++++ apps/ui/views/app_window_frame_view.cc +@@ -138,7 +138,7 @@ gfx::Rect AppWindowFrameView::GetWindowBoundsForClient + gfx::Rect window_bounds = client_bounds; + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Get the difference between the widget's client area bounds and window + // bounds, and grow |window_bounds| by that amount. + gfx::Insets native_frame_insets = diff --git a/devel/electron18/files/patch-ash_display_mirror__window__controller.cc b/devel/electron18/files/patch-ash_display_mirror__window__controller.cc new file mode 100644 index 000000000000..6c3ae5023688 --- /dev/null +++ b/devel/electron18/files/patch-ash_display_mirror__window__controller.cc @@ -0,0 +1,14 @@ +--- ash/display/mirror_window_controller.cc.orig 2022-05-19 05:17:32 UTC ++++ ash/display/mirror_window_controller.cc +@@ -296,7 +296,11 @@ void MirrorWindowController::UpdateWindow( + return info.id() == iter->first; + }) == display_info_list.end()) { + CloseAndDeleteHost(iter->second, true); ++#if defined(__llvm__) ++ mirroring_host_info_map_.erase(iter++); ++#else + iter = mirroring_host_info_map_.erase(iter); ++#endif + } else { + ++iter; + } diff --git a/devel/electron18/files/patch-base_BUILD.gn b/devel/electron18/files/patch-base_BUILD.gn new file mode 100644 index 000000000000..49d12ea44ebc --- /dev/null +++ b/devel/electron18/files/patch-base_BUILD.gn @@ -0,0 +1,146 @@ +--- base/BUILD.gn.orig 2022-05-19 05:17:33 UTC ++++ base/BUILD.gn +@@ -999,7 +999,7 @@ mixed_component("base") { + "timer/hi_res_timer_manager_posix.cc", + ] + +- if (!is_nacl && !is_apple) { ++ if (!is_nacl && !is_apple && !is_bsd) { + sources += [ + "cpu_affinity_posix.cc", + "cpu_affinity_posix.h", +@@ -1010,6 +1010,12 @@ mixed_component("base") { + "profiler/thread_delegate_posix.h", + ] + } ++ ++ if (is_bsd) { ++ sources += [ ++ "profiler/stack_sampler_posix.cc", ++ ] ++ } + } + + if (is_win) { +@@ -1478,11 +1484,23 @@ mixed_component("base") { + # building inside the cros_sdk environment - use host_toolchain as a + # more robust check for this. + if (!use_sysroot && +- (is_android || ((is_linux || is_chromeos) && !is_chromecast)) && ++ (is_android || ((is_linux || is_chromeos) && !is_chromecast && !is_bsd)) && + host_toolchain != "//build/toolchain/cros:host") { + libs += [ "atomic" ] + } + ++ # *BSD needs libkvm ++ if (is_bsd) { ++ libs += [ "kvm" ] ++ } ++ ++ if (is_freebsd) { ++ libs += [ ++ "execinfo", ++ "util", ++ ] ++ } ++ + if (use_allocator_shim) { + sources += [ + "allocator/allocator_shim.cc", +@@ -1506,7 +1524,7 @@ mixed_component("base") { + ] + configs += [ "//base/allocator:mac_no_default_new_delete_symbols" ] + } +- if (is_chromeos || is_linux) { ++ if (is_chromeos || (is_linux && !is_bsd)) { + sources += [ + "allocator/allocator_shim_override_cpp_symbols.h", + "allocator/allocator_shim_override_glibc_weak_symbols.h", +@@ -1563,7 +1581,7 @@ mixed_component("base") { + # Allow more direct string conversions on platforms with native utf8 + # strings + # TODO(crbug/1052397): Consider replacing is_ash with is_chromeos once lacros switches to target_os=chromeos +- if (is_apple || is_chromeos_ash || is_chromecast || is_fuchsia) { ++ if (is_apple || is_chromeos_ash || is_chromecast || is_fuchsia || is_bsd) { + defines += [ "SYSTEM_NATIVE_UTF8" ] + } + +@@ -2243,6 +2261,42 @@ mixed_component("base") { + } + } + ++ if (is_bsd) { ++ sources -= [ ++ "files/file_path_watcher_linux.cc", ++ "files/file_util_linux.cc", ++ "files/scoped_file_linux.cc", ++ "process/memory_linux.cc", ++ "process/process_linux.cc", ++ "system/sys_info_linux.cc", ++ "process/process_iterator_linux.cc", ++ "process/process_metrics_linux.cc", ++ "process/process_handle_linux.cc" ++ ] ++ sources += [ ++ "process/memory_stubs.cc", ++ "files/file_path_watcher_kqueue.cc", ++ "files/file_path_watcher_kqueue.h", ++ "files/file_path_watcher_bsd.cc", ++ ] ++ } ++ ++ if (is_openbsd) { ++ sources += [ ++ "process/process_handle_openbsd.cc", ++ "process/process_iterator_openbsd.cc", ++ "process/process_metrics_openbsd.cc", ++ "system/sys_info_openbsd.cc", ++ ] ++ } else if (is_freebsd) { ++ sources += [ ++ "process/process_handle_freebsd.cc", ++ "process/process_iterator_freebsd.cc", ++ "process/process_metrics_freebsd.cc", ++ "system/sys_info_freebsd.cc", ++ ] ++ } ++ + # iOS + if (is_ios) { + sources -= [ +@@ -3495,7 +3549,7 @@ test("base_unittests") { + } + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "debug/proc_maps_linux_unittest.cc", + "files/scoped_file_linux_unittest.cc", +@@ -3543,7 +3597,7 @@ test("base_unittests") { + "posix/unix_domain_socket_unittest.cc", + "task/thread_pool/task_tracker_posix_unittest.cc", + ] +- if (!is_nacl && !is_apple) { ++ if (!is_nacl && !is_apple && !is_bsd) { + sources += [ + "cpu_affinity_posix_unittest.cc", + "profiler/stack_copier_signal_unittest.cc", +@@ -3555,7 +3609,7 @@ test("base_unittests") { + # Allow more direct string conversions on platforms with native utf8 + # strings + # TODO(crbug/1052397): Consider replacing is_ash with is_chromeos once lacros switches to target_os=chromeos +- if (is_apple || is_chromeos_ash || is_chromecast || is_fuchsia) { ++ if (is_apple || is_chromeos_ash || is_chromecast || is_fuchsia || is_bsd) { + defines += [ "SYSTEM_NATIVE_UTF8" ] + } + +@@ -3724,7 +3778,7 @@ test("base_unittests") { + } + } + +- if (is_fuchsia || is_linux || is_chromeos) { ++ if ((is_fuchsia || is_linux || is_chromeos) && !is_bsd) { + sources += [ + "debug/elf_reader_unittest.cc", + "debug/test_elf_image_builder.cc", diff --git a/devel/electron18/files/patch-base_allocator_partition__allocator_address__space__randomization.h b/devel/electron18/files/patch-base_allocator_partition__allocator_address__space__randomization.h new file mode 100644 index 000000000000..945bce175511 --- /dev/null +++ b/devel/electron18/files/patch-base_allocator_partition__allocator_address__space__randomization.h @@ -0,0 +1,11 @@ +--- base/allocator/partition_allocator/address_space_randomization.h.orig 2022-05-19 05:17:34 UTC ++++ base/allocator/partition_allocator/address_space_randomization.h +@@ -38,7 +38,7 @@ AslrMask(uintptr_t bits) { + + #if defined(ARCH_CPU_64_BITS) + +- #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR) ++ #if defined(MEMORY_TOOL_REPLACES_ALLOCATOR) && !defined(OS_BSD) + + // We shouldn't allocate system pages at all for sanitizer builds. However, + // we do, and if random hint addresses interfere with address ranges diff --git a/devel/electron18/files/patch-base_allocator_partition__allocator_page__allocator.h b/devel/electron18/files/patch-base_allocator_partition__allocator_page__allocator.h new file mode 100644 index 000000000000..d5e61163bbcf --- /dev/null +++ b/devel/electron18/files/patch-base_allocator_partition__allocator_page__allocator.h @@ -0,0 +1,11 @@ +--- base/allocator/partition_allocator/page_allocator.h.orig 2022-05-19 03:45:15 UTC ++++ base/allocator/partition_allocator/page_allocator.h +@@ -194,7 +194,7 @@ BASE_EXPORT void DecommitAndZeroSystemPages(void* addr + // Whether decommitted memory is guaranteed to be zeroed when it is + // recommitted. Do not assume that this will not change over time. + constexpr BASE_EXPORT bool DecommittedMemoryIsAlwaysZeroed() { +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + return false; + #else + return true; diff --git a/devel/electron18/files/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h b/devel/electron18/files/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h new file mode 100644 index 000000000000..250dde5c8aaa --- /dev/null +++ b/devel/electron18/files/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h @@ -0,0 +1,16 @@ +--- base/allocator/partition_allocator/page_allocator_internals_posix.h.orig 2022-05-19 05:17:34 UTC ++++ base/allocator/partition_allocator/page_allocator_internals_posix.h +@@ -352,8 +352,12 @@ bool TryRecommitSystemPagesInternal( + + void DiscardSystemPagesInternal(uintptr_t address, size_t length) { + void* ptr = reinterpret_cast<void*>(address); +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) ++#if BUILDFLAG(IS_BSD) ++ int ret = madvise(ptr, length, MADV_FREE); ++#else + int ret = madvise(ptr, length, MADV_FREE_REUSABLE); ++#endif + if (ret) { + // MADV_FREE_REUSABLE sometimes fails, so fall back to MADV_DONTNEED. + ret = madvise(ptr, length, MADV_DONTNEED); diff --git a/devel/electron18/files/patch-base_allocator_partition__allocator_partition__alloc.cc b/devel/electron18/files/patch-base_allocator_partition__allocator_partition__alloc.cc new file mode 100644 index 000000000000..bd01c9abe568 --- /dev/null +++ b/devel/electron18/files/patch-base_allocator_partition__allocator_partition__alloc.cc @@ -0,0 +1,15 @@ +--- base/allocator/partition_allocator/partition_alloc.cc.orig 2022-05-11 07:16:46 UTC ++++ base/allocator/partition_allocator/partition_alloc.cc +@@ -56,7 +56,12 @@ void PartitionAllocGlobalInit(OomFunction on_out_of_me + "maximum direct mapped allocation"); + + // Check that some of our zanier calculations worked out as expected. ++#if defined(__i386__) && defined(OS_FREEBSD) ++ // alignof(std::max_align_t) is only 4 on FreeBSD/i386 ++ static_assert(kSmallestBucket >= kAlignment, "generic smallest bucket"); ++#else + static_assert(kSmallestBucket == kAlignment, "generic smallest bucket"); ++#endif + static_assert(kMaxBucketed == 917504, "generic max bucketed"); + STATIC_ASSERT_OR_PA_CHECK( + MaxSystemPagesPerRegularSlotSpan() <= 16, diff --git a/devel/electron18/files/patch-base_allocator_partition__allocator_partition__alloc__config.h b/devel/electron18/files/patch-base_allocator_partition__allocator_partition__alloc__config.h new file mode 100644 index 000000000000..3d27f7357db5 --- /dev/null +++ b/devel/electron18/files/patch-base_allocator_partition__allocator_partition__alloc__config.h @@ -0,0 +1,20 @@ +--- base/allocator/partition_allocator/partition_alloc_config.h.orig 2022-05-19 05:17:34 UTC ++++ base/allocator/partition_allocator/partition_alloc_config.h +@@ -59,7 +59,7 @@ static_assert(sizeof(void*) != 8, ""); + + // POSIX is not only UNIX, e.g. macOS and other OSes. We do use Linux-specific + // features such as futex(2). +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #define PA_HAS_LINUX_KERNEL + #endif + +@@ -179,7 +179,7 @@ constexpr bool kUseLazyCommit = false; + + // On these platforms, lock all the partitions before fork(), and unlock after. + // This may be required on more platforms in the future. +-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #define PA_HAS_ATFORK_HANDLER + #endif + diff --git a/devel/electron18/files/patch-base_allocator_partition__allocator_partition__page.h b/devel/electron18/files/patch-base_allocator_partition__allocator_partition__page.h new file mode 100644 index 000000000000..5305b3a936ae --- /dev/null +++ b/devel/electron18/files/patch-base_allocator_partition__allocator_partition__page.h @@ -0,0 +1,22 @@ +--- base/allocator/partition_allocator/partition_page.h.orig 2022-06-04 07:17:41 UTC ++++ base/allocator/partition_allocator/partition_page.h +@@ -128,7 +128,8 @@ struct __attribute__((packed)) SlotSpanMetadata { + PartitionBucket<thread_safe>* const bucket = nullptr; + + // CHECK()ed in AllocNewSlotSpan(). +-#if defined(PA_HAS_64_BITS_POINTERS) && BUILDFLAG(IS_APPLE) ++#if (defined(PA_HAS_64_BITS_POINTERS) && BUILDFLAG(IS_APPLE)) || \ ++ (BUILDFLAG(IS_FREEBSD) && defined(__i386__)) + // System page size is not a constant on Apple OSes, but is either 4 or 16kiB + // (1 << 12 or 1 << 14), as checked in PartitionRoot::Init(). And + // PartitionPageSize() is 4 times the OS page size. +@@ -148,7 +149,9 @@ struct __attribute__((packed)) SlotSpanMetadata { + #endif // defined(PA_HAS_64_BITS_POINTERS) && BUILDFLAG(IS_APPLE) + // The maximum number of bits needed to cover all currently supported OSes. + static constexpr size_t kMaxSlotsPerSlotSpanBits = 13; ++#if !BUILDFLAG(IS_FREEBSD) && defined(__i386__) + static_assert(kMaxSlotsPerSlotSpan < (1 << kMaxSlotsPerSlotSpanBits), ""); ++#endif + + // |marked_full| isn't equivalent to being full. Slot span is marked as full + // iff it isn't on the active slot span list (or any other list). diff --git a/devel/electron18/files/patch-base_allocator_partition__allocator_partition__root.h b/devel/electron18/files/patch-base_allocator_partition__allocator_partition__root.h new file mode 100644 index 000000000000..52f218e18d4e --- /dev/null +++ b/devel/electron18/files/patch-base_allocator_partition__allocator_partition__root.h @@ -0,0 +1,11 @@ +--- base/allocator/partition_allocator/partition_root.h.orig 2022-05-19 05:17:34 UTC ++++ base/allocator/partition_allocator/partition_root.h +@@ -1071,7 +1071,7 @@ ALWAYS_INLINE void PartitionRoot<thread_safe>::FreeNoH + // essentially). + #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && \ + ((BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMECAST)) || \ +- (BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_64_BITS))) ++ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_64_BITS))) + PA_CHECK(IsManagedByPartitionAlloc(object_addr)); + #endif + diff --git a/devel/electron18/files/patch-base_allocator_partition__allocator_spinning__mutex.cc b/devel/electron18/files/patch-base_allocator_partition__allocator_spinning__mutex.cc new file mode 100644 index 000000000000..52ae50accf4a --- /dev/null +++ b/devel/electron18/files/patch-base_allocator_partition__allocator_spinning__mutex.cc @@ -0,0 +1,47 @@ +--- base/allocator/partition_allocator/spinning_mutex.cc.orig 2022-05-19 05:17:34 UTC ++++ base/allocator/partition_allocator/spinning_mutex.cc +@@ -17,7 +17,15 @@ + + #if defined(PA_HAS_LINUX_KERNEL) + #include <errno.h> ++#if defined(OS_OPENBSD) ++#include <sys/futex.h> ++#elif defined(OS_FREEBSD) ++#include <sys/types.h> ++#include <sys/thr.h> ++#include <sys/umtx.h> ++#else + #include <linux/futex.h> ++#endif + #include <sys/syscall.h> + #include <unistd.h> + #endif // defined(PA_HAS_LINUX_KERNEL) +@@ -85,8 +93,13 @@ void SpinningMutex::FutexWait() { + // |kLockedContended| anymore. Note that even without spurious wakeups, the + // value of |state_| is not guaranteed when this returns, as another thread + // may get the lock before we get to run. ++#if defined(OS_FREEBSD) ++ int err = _umtx_op(&state_, UMTX_OP_WAIT_UINT_PRIVATE, ++ kLockedContended, nullptr, nullptr); ++#else + int err = syscall(SYS_futex, &state_, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, + kLockedContended, nullptr, nullptr, 0); ++#endif + + if (err) { + // These are programming error, check them. +@@ -98,8 +111,14 @@ void SpinningMutex::FutexWait() { + + void SpinningMutex::FutexWake() { + int saved_errno = errno; ++#if defined(OS_FREEBSD) ++ long retval = _umtx_op(&state_, UMTX_OP_WAKE_PRIVATE, ++ 1 /* wake up a single waiter */, nullptr, nullptr); ++#else + long retval = syscall(SYS_futex, &state_, FUTEX_WAKE | FUTEX_PRIVATE_FLAG, + 1 /* wake up a single waiter */, nullptr, nullptr, 0); ++#endif ++ + PA_CHECK(retval != -1); + errno = saved_errno; + } diff --git a/devel/electron18/files/patch-base_allocator_partition__allocator_starscan_stack_stack.cc b/devel/electron18/files/patch-base_allocator_partition__allocator_starscan_stack_stack.cc new file mode 100644 index 000000000000..33e2d4d8f2ca --- /dev/null +++ b/devel/electron18/files/patch-base_allocator_partition__allocator_starscan_stack_stack.cc @@ -0,0 +1,50 @@ +--- base/allocator/partition_allocator/starscan/stack/stack.cc.orig 2022-05-19 05:17:34 UTC ++++ base/allocator/partition_allocator/starscan/stack/stack.cc +@@ -17,6 +17,10 @@ + #include <pthread.h> + #endif + ++#if defined(OS_BSD) ++#include <pthread_np.h> ++#endif ++ + #if defined(LIBC_GLIBC) + extern "C" void* __libc_stack_end; + #endif +@@ -48,6 +52,36 @@ void* GetStackTop() { + + void* GetStackTop() { + return pthread_get_stackaddr_np(pthread_self()); ++} ++ ++#elif defined(OS_OPENBSD) ++ ++void* GetStackTop() { ++ stack_t ss; ++ if (pthread_stackseg_np(pthread_self(), &ss) != 0) ++ return nullptr; ++ return reinterpret_cast<uint8_t*>(ss.ss_sp); ++} ++ ++#elif defined(OS_FREEBSD) ++ ++void* GetStackTop() { ++ pthread_attr_t attr; ++ int error = pthread_attr_init(&attr); ++ if (error) { ++ return nullptr; ++ } ++ error = pthread_attr_get_np(pthread_self(), &attr); ++ if (!error) { ++ void* base; ++ size_t size; ++ error = pthread_attr_getstack(&attr, &base, &size); ++ PA_CHECK(!error); ++ pthread_attr_destroy(&attr); ++ return reinterpret_cast<uint8_t*>(base) + size; ++ } ++ pthread_attr_destroy(&attr); ++ return nullptr; + } + + #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) diff --git a/devel/electron18/files/patch-base_atomicops.h b/devel/electron18/files/patch-base_atomicops.h new file mode 100644 index 000000000000..13798b80a082 --- /dev/null +++ b/devel/electron18/files/patch-base_atomicops.h @@ -0,0 +1,14 @@ +--- base/atomicops.h.orig 2022-05-11 07:16:46 UTC ++++ base/atomicops.h +@@ -57,7 +57,11 @@ typedef intptr_t Atomic64; + + // Use AtomicWord for a machine-sized pointer. It will use the Atomic32 or + // Atomic64 routines below, depending on your architecture. ++#if !defined(OS_OPENBSD) && defined(__i386__) ++typedef Atomic32 AtomicWord; ++#else + typedef intptr_t AtomicWord; ++#endif + + // Atomically execute: + // result = *ptr; diff --git a/devel/electron18/files/patch-base_base__paths__posix.cc b/devel/electron18/files/patch-base_base__paths__posix.cc new file mode 100644 index 000000000000..5350fe5b7c71 --- /dev/null +++ b/devel/electron18/files/patch-base_base__paths__posix.cc @@ -0,0 +1,98 @@ +--- base/base_paths_posix.cc.orig 2022-05-19 03:45:15 UTC ++++ base/base_paths_posix.cc +@@ -15,6 +15,7 @@ + #include <ostream> + #include <string> + ++#include "base/command_line.h" + #include "base/environment.h" + #include "base/files/file_path.h" + #include "base/files/file_util.h" +@@ -25,9 +26,13 @@ + #include "base/process/process_metrics.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_FREEBSD) ++#if BUILDFLAG(IS_BSD) + #include <sys/param.h> + #include <sys/sysctl.h> ++#if BUILDFLAG(IS_OPENBSD) ++#include <kvm.h> ++#define MAXTOKENS 2 ++#endif + #elif BUILDFLAG(IS_SOLARIS) || BUILDFLAG(IS_AIX) + #include <stdlib.h> + #endif +@@ -68,13 +73,65 @@ bool PathProviderPosix(int key, FilePath* result) { + *result = FilePath(bin_dir); + return true; + #elif BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_AIX) +- // There is currently no way to get the executable path on OpenBSD +- char* cpath; +- if ((cpath = getenv("CHROME_EXE_PATH")) != NULL) +- *result = FilePath(cpath); +- else +- *result = FilePath("/usr/local/chrome/chrome"); +- return true; ++ char *cpath; ++#if !BUILDFLAG(IS_AIX) ++ struct kinfo_file *files; ++ kvm_t *kd = NULL; ++ char errbuf[_POSIX2_LINE_MAX]; ++ static char retval[PATH_MAX]; ++ int cnt; ++ struct stat sb; ++ pid_t cpid = getpid(); ++ bool ret = false; ++ ++ const base::CommandLine* command_line = ++ base::CommandLine::ForCurrentProcess(); ++ ++ VLOG(1) << "PathProviderPosix argv: " << command_line->argv()[0]; ++ ++ if (realpath(command_line->argv()[0].c_str(), retval) == NULL) ++ goto out; ++ ++ if (stat(command_line->argv()[0].c_str(), &sb) < 0) ++ goto out; ++ ++ if (!command_line->HasSwitch("no-sandbox")) { ++ ret = true; ++ *result = FilePath(retval); ++ VLOG(1) << "PathProviderPosix (sandbox) result: " << retval; ++ goto out; ++ } ++ ++ if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, errbuf)) == NULL) ++ goto out; ++ ++ if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, cpid, ++ sizeof(struct kinfo_file), &cnt)) == NULL) ++ goto out; ++ ++ for (int i = 0; i < cnt; i++) { ++ if (files[i].fd_fd == KERN_FILE_TEXT && ++ files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) && ++ files[i].va_fileid == sb.st_ino) { ++ ret = true; ++ *result = FilePath(retval); ++ VLOG(1) << "PathProviderPosix result: " << retval; ++ } ++ } ++out: ++ if (kd) ++ kvm_close(kd); ++ if (!ret) { ++#endif ++ if ((cpath = getenv("CHROME_EXE_PATH")) != NULL) ++ *result = FilePath(cpath); ++ else ++ *result = FilePath("/usr/local/chrome/chrome"); ++ return true; ++#if !BUILDFLAG(IS_AIX) ++ } ++ return ret; ++#endif + #endif + } + case DIR_SRC_TEST_DATA_ROOT: { diff --git a/devel/electron18/files/patch-base_base__switches.cc b/devel/electron18/files/patch-base_base__switches.cc new file mode 100644 index 000000000000..73802d3ad5ff --- /dev/null +++ b/devel/electron18/files/patch-base_base__switches.cc @@ -0,0 +1,11 @@ +--- base/base_switches.cc.orig 2022-05-19 05:17:34 UTC ++++ base/base_switches.cc +@@ -170,7 +170,7 @@ const char kForceFieldTrialParams[] = "force-fieldtria + + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Controls whether or not retired instruction counts are surfaced for threads + // in trace events on Linux. + // diff --git a/devel/electron18/files/patch-base_base__switches.h b/devel/electron18/files/patch-base_base__switches.h new file mode 100644 index 000000000000..7fefb3d8cc7e --- /dev/null +++ b/devel/electron18/files/patch-base_base__switches.h @@ -0,0 +1,11 @@ +--- base/base_switches.h.orig 2022-05-19 05:17:34 UTC ++++ base/base_switches.h +@@ -60,7 +60,7 @@ extern const char kEnableIdleTracing[]; + extern const char kForceFieldTrialParams[]; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kEnableThreadInstructionCount[]; + + // TODO(crbug.com/1176772): Remove kEnableCrashpad and IsCrashpadEnabled() when diff --git a/devel/electron18/files/patch-base_cpu.h b/devel/electron18/files/patch-base_cpu.h new file mode 100644 index 000000000000..5b0b92ce499a --- /dev/null +++ b/devel/electron18/files/patch-base_cpu.h @@ -0,0 +1,11 @@ +--- base/cpu.h.orig 2022-05-19 03:45:15 UTC ++++ base/cpu.h +@@ -108,7 +108,7 @@ class BASE_EXPORT CPU final { + const std::string& cpu_brand() const { return cpu_brand_; } + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + enum class CoreType { + kUnknown = 0, + kOther, diff --git a/devel/electron18/files/patch-base_debug_debugger__posix.cc b/devel/electron18/files/patch-base_debug_debugger__posix.cc new file mode 100644 index 000000000000..061647515d35 --- /dev/null +++ b/devel/electron18/files/patch-base_debug_debugger__posix.cc @@ -0,0 +1,68 @@ +--- base/debug/debugger_posix.cc.orig 2022-05-19 05:17:34 UTC ++++ base/debug/debugger_posix.cc +@@ -36,6 +36,10 @@ + #include <sys/sysctl.h> + #endif + ++#if BUILDFLAG(IS_OPENBSD) ++#include <sys/proc.h> ++#endif ++ + #if BUILDFLAG(IS_FREEBSD) + #include <sys/user.h> + #endif +@@ -96,32 +100,51 @@ bool BeingDebugged() { + + // Caution: struct kinfo_proc is marked __APPLE_API_UNSTABLE. The source and + // binary interfaces may change. ++#if BUILDFLAG(IS_OPENBSD) ++ struct kinfo_proc *info; ++ size_t info_size; ++#else + struct kinfo_proc info; + size_t info_size = sizeof(info); ++#endif + + #if BUILDFLAG(IS_OPENBSD) + if (sysctl(mib, base::size(mib), NULL, &info_size, NULL, 0) < 0) + return -1; + + mib[5] = (info_size / sizeof(struct kinfo_proc)); ++ if ((info = reinterpret_cast<kinfo_proc*>(malloc(info_size))) == NULL) { ++ is_set = true; ++ being_debugged = false; ++ return being_debugged; ++ } ++ ++ int sysctl_result = sysctl(mib, base::size(mib), info, &info_size, NULL, 0); + #endif + ++#if !BUILDFLAG(IS_OPENBSD) + int sysctl_result = sysctl(mib, base::size(mib), &info, &info_size, NULL, 0); ++#endif + DCHECK_EQ(sysctl_result, 0); + if (sysctl_result != 0) { + is_set = true; + being_debugged = false; +- return being_debugged; ++ goto out; + } + + // This process is being debugged if the P_TRACED flag is set. + is_set = true; + #if BUILDFLAG(IS_FREEBSD) + being_debugged = (info.ki_flag & P_TRACED) != 0; +-#elif BUILDFLAG(IS_BSD) +- being_debugged = (info.p_flag & P_TRACED) != 0; ++#elif BUILDFLAG(IS_OPENBSD) ++ being_debugged = (info->p_psflags & PS_TRACED) != 0; + #else + being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0; ++#endif ++ ++out: ++#if BUILDFLAG(IS_OPENBSD) ++ free(info); + #endif + return being_debugged; + } diff --git a/devel/electron18/files/patch-base_debug_elf__reader.cc b/devel/electron18/files/patch-base_debug_elf__reader.cc new file mode 100644 index 000000000000..caa6dce3467f --- /dev/null +++ b/devel/electron18/files/patch-base_debug_elf__reader.cc @@ -0,0 +1,18 @@ +--- base/debug/elf_reader.cc.orig 2022-05-11 07:16:46 UTC ++++ base/debug/elf_reader.cc +@@ -76,6 +76,7 @@ size_t ReadElfBuildId(const void* elf_mapped_base, + bool found = false; + while (current_section < section_end) { + current_note = reinterpret_cast<const Nhdr*>(current_section); ++#if !defined(OS_BSD) + if (current_note->n_type == NT_GNU_BUILD_ID) { + StringPiece note_name(current_section + sizeof(Nhdr), + current_note->n_namesz); +@@ -85,6 +86,7 @@ size_t ReadElfBuildId(const void* elf_mapped_base, + break; + } + } ++#endif + + size_t section_size = bits::AlignUp(current_note->n_namesz, 4) + + bits::AlignUp(current_note->n_descsz, 4) + diff --git a/devel/electron18/files/patch-base_debug_proc__maps__linux.cc b/devel/electron18/files/patch-base_debug_proc__maps__linux.cc new file mode 100644 index 000000000000..56b247264003 --- /dev/null +++ b/devel/electron18/files/patch-base_debug_proc__maps__linux.cc @@ -0,0 +1,11 @@ +--- base/debug/proc_maps_linux.cc.orig 2022-05-19 03:45:15 UTC ++++ base/debug/proc_maps_linux.cc +@@ -13,7 +13,7 @@ + #include "base/strings/string_split.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #include <inttypes.h> + #endif + diff --git a/devel/electron18/files/patch-base_debug_stack__trace__posix.cc b/devel/electron18/files/patch-base_debug_stack__trace__posix.cc new file mode 100644 index 000000000000..d3243a235b3f --- /dev/null +++ b/devel/electron18/files/patch-base_debug_stack__trace__posix.cc @@ -0,0 +1,38 @@ +--- base/debug/stack_trace_posix.cc.orig 2022-05-19 05:17:34 UTC ++++ base/debug/stack_trace_posix.cc +@@ -38,7 +38,7 @@ + #include <AvailabilityMacros.h> + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/debug/proc_maps_linux.h" + #endif + +@@ -695,6 +695,9 @@ class SandboxSymbolizeHelper { + // for the modules that are loaded in the current process. + // Returns true on success. + bool CacheMemoryRegions() { ++#if BUILDFLAG(IS_BSD) ++ return false; ++#else + // Reads /proc/self/maps. + std::string contents; + if (!ReadProcMaps(&contents)) { +@@ -712,6 +715,7 @@ class SandboxSymbolizeHelper { + + is_initialized_ = true; + return true; ++#endif + } + + // Opens all object files and caches their file descriptors. +@@ -868,7 +872,7 @@ size_t CollectStackTrace(void** trace, size_t count) { + // If we do not have unwind tables, then try tracing using frame pointers. + return base::debug::TraceStackFramePointers(const_cast<const void**>(trace), + count, 0); +-#elif !defined(__UCLIBC__) && !defined(_AIX) ++#elif !defined(__UCLIBC__) && !defined(_AIX) && !BUILDFLAG(IS_BSD) + // Though the backtrace API man page does not list any possible negative + // return values, we take no chance. + return base::saturated_cast<size_t>(backtrace(trace, count)); diff --git a/devel/electron18/files/patch-base_files_file__path__watcher__bsd.cc b/devel/electron18/files/patch-base_files_file__path__watcher__bsd.cc new file mode 100644 index 000000000000..a99ff700edff --- /dev/null +++ b/devel/electron18/files/patch-base_files_file__path__watcher__bsd.cc @@ -0,0 +1,57 @@ +--- base/files/file_path_watcher_bsd.cc.orig 2022-05-13 07:20:04 UTC ++++ base/files/file_path_watcher_bsd.cc +@@ -0,0 +1,54 @@ ++// Copyright 2021 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. ++ ++#include <memory> ++ ++#include "base/files/file_path_watcher.h" ++#include "base/files/file_path_watcher_kqueue.h" ++#include "base/memory/ptr_util.h" ++#include "build/build_config.h" ++ ++namespace base { ++ ++namespace { ++ ++class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate { ++ public: ++ FilePathWatcherImpl() = default; ++ FilePathWatcherImpl(const FilePathWatcherImpl&) = delete; ++ FilePathWatcherImpl& operator=(const FilePathWatcherImpl&) = delete; ++ ~FilePathWatcherImpl() override = default; ++ ++ bool Watch(const FilePath& path, ++ Type type, ++ const FilePathWatcher::Callback& callback) override { ++ DCHECK(!impl_.get()); ++ if (type == Type::kRecursive) { ++ if (!FilePathWatcher::RecursiveWatchAvailable()) ++ return false; ++ } else { ++ impl_ = std::make_unique<FilePathWatcherKQueue>(); ++ } ++ DCHECK(impl_.get()); ++ return impl_->Watch(path, type, callback); ++ } ++ ++ void Cancel() override { ++ if (impl_.get()) ++ impl_->Cancel(); ++ set_cancelled(); ++ } ++ ++ private: ++ std::unique_ptr<PlatformDelegate> impl_; ++}; ++ ++} // namespace ++ ++FilePathWatcher::FilePathWatcher() { ++ sequence_checker_.DetachFromSequence(); ++ impl_ = std::make_unique<FilePathWatcherImpl>(); ++} ++ ++} // namespace base diff --git a/devel/electron18/files/patch-base_files_file__path__watcher__kqueue.h b/devel/electron18/files/patch-base_files_file__path__watcher__kqueue.h new file mode 100644 index 000000000000..408ab1ec7ca2 --- /dev/null +++ b/devel/electron18/files/patch-base_files_file__path__watcher__kqueue.h @@ -0,0 +1,10 @@ +--- base/files/file_path_watcher_kqueue.h.orig 2022-05-11 07:00:27 UTC ++++ base/files/file_path_watcher_kqueue.h +@@ -5,6 +5,7 @@ + #ifndef BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_ + #define BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_ + ++#include <sys/time.h> + #include <sys/event.h> + + #include <memory> diff --git a/devel/electron18/files/patch-base_files_file__path__watcher__unittest.cc b/devel/electron18/files/patch-base_files_file__path__watcher__unittest.cc new file mode 100644 index 000000000000..36f54bff410f --- /dev/null +++ b/devel/electron18/files/patch-base_files_file__path__watcher__unittest.cc @@ -0,0 +1,29 @@ +--- base/files/file_path_watcher_unittest.cc.orig 2022-05-19 05:17:34 UTC ++++ base/files/file_path_watcher_unittest.cc +@@ -450,7 +450,7 @@ TEST_F(FilePathWatcherTest, WatchDirectory) { + VLOG(1) << "Waiting for file1 creation"; + ASSERT_TRUE(WaitForEvents()); + +-#if !BUILDFLAG(IS_APPLE) ++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + // Mac implementation does not detect files modified in a directory. + ASSERT_TRUE(WriteFile(file1, "content v2")); + VLOG(1) << "Waiting for file1 modification"; +@@ -1038,7 +1038,7 @@ enum Permission { + Execute + }; + +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + bool ChangeFilePermissions(const FilePath& path, Permission perm, bool allow) { + struct stat stat_buf; + +@@ -1069,7 +1069,7 @@ bool ChangeFilePermissions(const FilePath& path, Permi + } + #endif // BUILDFLAG(IS_APPLE) + +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + // Linux implementation of FilePathWatcher doesn't catch attribute changes. + // http://crbug.com/78043 + // Windows implementation of FilePathWatcher catches attribute changes that diff --git a/devel/electron18/files/patch-base_files_file__util__posix.cc b/devel/electron18/files/patch-base_files_file__util__posix.cc new file mode 100644 index 000000000000..b097b4efd8d1 --- /dev/null +++ b/devel/electron18/files/patch-base_files_file__util__posix.cc @@ -0,0 +1,52 @@ +--- base/files/file_util_posix.cc.orig 2022-05-11 07:16:46 UTC ++++ base/files/file_util_posix.cc +@@ -694,32 +694,34 @@ bool CreateDirectoryAndGetError(const FilePath& full_p + File::Error* error) { + ScopedBlockingCall scoped_blocking_call( + FROM_HERE, BlockingType::MAY_BLOCK); // For call to mkdir(). ++ const FilePath kFileSystemRoot("/"); + std::vector<FilePath> subpaths; + + // Collect a list of all parent directories. + FilePath last_path = full_path; +- subpaths.push_back(full_path); ++ if (full_path != kFileSystemRoot) ++ subpaths.push_back(full_path); + for (FilePath path = full_path.DirName(); +- path.value() != last_path.value(); path = path.DirName()) { ++ (path.value() != last_path.value() && ++ (path != kFileSystemRoot)); path = path.DirName()) { + subpaths.push_back(path); + last_path = path; + } + + // Iterate through the parents and create the missing ones. + for (auto i = subpaths.rbegin(); i != subpaths.rend(); ++i) { +- if (DirectoryExists(*i)) +- continue; +- if (mkdir(i->value().c_str(), 0700) == 0) +- continue; +- // Mkdir failed, but it might have failed with EEXIST, or some other error +- // due to the directory appearing out of thin air. This can occur if +- // two processes are trying to create the same file system tree at the same +- // time. Check to see if it exists and make sure it is a directory. +- int saved_errno = errno; +- if (!DirectoryExists(*i)) { +- if (error) +- *error = File::OSErrorToFileError(saved_errno); +- return false; ++ if (!PathExists(*i)) { ++ if ((mkdir(i->value().c_str(), 0700) == -1) && ++ ((full_path != *i) ? (errno != ENOENT) : (-1))) { ++ int saved_errno = errno; ++ if (error) ++ *error = File::OSErrorToFileError(saved_errno); ++ return false; ++ } ++ } else if (!DirectoryExists(*i)) { ++ if (error) ++ *error = File::OSErrorToFileError(ENOTDIR); ++ return false; + } + } + return true; diff --git a/devel/electron18/files/patch-base_files_file__util__unittest.cc b/devel/electron18/files/patch-base_files_file__util__unittest.cc new file mode 100644 index 000000000000..41b4c3fb83a7 --- /dev/null +++ b/devel/electron18/files/patch-base_files_file__util__unittest.cc @@ -0,0 +1,20 @@ +--- base/files/file_util_unittest.cc.orig 2022-05-19 05:17:34 UTC ++++ base/files/file_util_unittest.cc +@@ -3524,7 +3524,7 @@ TEST_F(FileUtilTest, ReadFileToStringWithNamedPipe) { + } + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + TEST_F(FileUtilTest, ReadFileToStringWithProcFileSystem) { + FilePath file_path("/proc/cpuinfo"); + std::string data = "temp"; +@@ -4240,7 +4240,7 @@ TEST(FileUtilMultiThreadedTest, MultiThreadedTempFiles + NULL); + #else + size_t bytes_written = +- ::write(::fileno(output_file.get()), content.c_str(), content.length()); ++ ::write(fileno(output_file.get()), content.c_str(), content.length()); + #endif + EXPECT_EQ(content.length(), bytes_written); + ::fflush(output_file.get()); diff --git a/devel/electron18/files/patch-base_files_important__file__writer__cleaner.cc b/devel/electron18/files/patch-base_files_important__file__writer__cleaner.cc new file mode 100644 index 000000000000..a016ca55351c --- /dev/null +++ b/devel/electron18/files/patch-base_files_important__file__writer__cleaner.cc @@ -0,0 +1,12 @@ +--- base/files/important_file_writer_cleaner.cc.orig 2022-05-19 03:45:15 UTC ++++ base/files/important_file_writer_cleaner.cc +@@ -25,7 +25,8 @@ namespace base { + namespace { + + base::Time GetUpperBoundTime() { +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) ++// needed because of .CreationTime() pledge ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // If process creation time is not available then use instance creation + // time as the upper-bound for old files. Modification times may be + // rounded-down to coarse-grained increments, e.g. FAT has 2s granularity, diff --git a/devel/electron18/files/patch-base_files_scoped__file.cc b/devel/electron18/files/patch-base_files_scoped__file.cc new file mode 100644 index 000000000000..32e4f92e0351 --- /dev/null +++ b/devel/electron18/files/patch-base_files_scoped__file.cc @@ -0,0 +1,11 @@ +--- base/files/scoped_file.cc.orig 2022-05-19 03:45:15 UTC ++++ base/files/scoped_file.cc +@@ -31,7 +31,7 @@ void ScopedFDCloseTraits::Free(int fd) { + int ret = IGNORE_EINTR(close(fd)); + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \ +- BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // NB: Some file descriptors can return errors from close() e.g. network + // filesystems such as NFS and Linux input devices. On Linux, macOS, and + // Fuchsia's POSIX layer, errors from close other than EBADF do not indicate diff --git a/devel/electron18/files/patch-base_i18n_icu__util.cc b/devel/electron18/files/patch-base_i18n_icu__util.cc new file mode 100644 index 000000000000..39a39b676795 --- /dev/null +++ b/devel/electron18/files/patch-base_i18n_icu__util.cc @@ -0,0 +1,20 @@ +--- base/i18n/icu_util.cc.orig 2022-05-19 05:17:34 UTC ++++ base/i18n/icu_util.cc +@@ -52,7 +52,7 @@ + #endif + + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \ +- ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + !BUILDFLAG(IS_CHROMECAST)) + #include "third_party/icu/source/i18n/unicode/timezone.h" + #endif +@@ -346,7 +346,7 @@ void InitializeIcuTimeZone() { + FuchsiaIntlProfileWatcher::GetPrimaryTimeZoneIdForIcuInitialization(); + icu::TimeZone::adoptDefault( + icu::TimeZone::createTimeZone(icu::UnicodeString::fromUTF8(zone_id))); +-#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + !BUILDFLAG(IS_CHROMECAST) + // To respond to the time zone change properly, the default time zone + // cache in ICU has to be populated on starting up. diff --git a/devel/electron18/files/patch-base_linux__util.cc b/devel/electron18/files/patch-base_linux__util.cc new file mode 100644 index 000000000000..ab6564a58b95 --- /dev/null +++ b/devel/electron18/files/patch-base_linux__util.cc @@ -0,0 +1,28 @@ +--- base/linux_util.cc.orig 2022-05-11 07:16:46 UTC ++++ base/linux_util.cc +@@ -15,6 +15,7 @@ + + #include <iomanip> + #include <memory> ++#include <sstream> + + #include "base/files/dir_reader_posix.h" + #include "base/files/file_util.h" +@@ -134,6 +135,9 @@ void SetLinuxDistro(const std::string& distro) { + } + + bool GetThreadsForProcess(pid_t pid, std::vector<pid_t>* tids) { ++#if defined(OS_BSD) ++ return false; ++#else + // 25 > strlen("/proc//task") + strlen(std::to_string(INT_MAX)) + 1 = 22 + char buf[25]; + strings::SafeSPrintf(buf, "/proc/%d/task", pid); +@@ -153,6 +157,7 @@ bool GetThreadsForProcess(pid_t pid, std::vector<pid_t + } + + return true; ++#endif + } + + pid_t FindThreadIDWithSyscall(pid_t pid, const std::string& expected_data, diff --git a/devel/electron18/files/patch-base_logging__unittest.cc b/devel/electron18/files/patch-base_logging__unittest.cc new file mode 100644 index 000000000000..c6bbea585928 --- /dev/null +++ b/devel/electron18/files/patch-base_logging__unittest.cc @@ -0,0 +1,31 @@ +--- base/logging_unittest.cc.orig 2022-05-19 05:17:34 UTC ++++ base/logging_unittest.cc +@@ -32,7 +32,7 @@ + #include "base/posix/eintr_wrapper.h" + #endif // BUILDFLAG(IS_POSIX) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) + #include <ucontext.h> + #endif + +@@ -552,14 +552,18 @@ void CheckCrashTestSighandler(int, siginfo_t* info, vo + // need the arch-specific boilerplate below, which is inspired by breakpad. + // At the same time, on OSX, ucontext.h is deprecated but si_addr works fine. + uintptr_t crash_addr = 0; +-#if BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FREEBSD) + crash_addr = reinterpret_cast<uintptr_t>(info->si_addr); + #else // OS_* + ucontext_t* context = reinterpret_cast<ucontext_t*>(context_ptr); + #if defined(ARCH_CPU_X86) + crash_addr = static_cast<uintptr_t>(context->uc_mcontext.gregs[REG_EIP]); + #elif defined(ARCH_CPU_X86_64) ++#if BUILDFLAG(IS_OPENBSD) ++ crash_addr = static_cast<uintptr_t>(context->sc_rip); ++#else + crash_addr = static_cast<uintptr_t>(context->uc_mcontext.gregs[REG_RIP]); ++#endif + #elif defined(ARCH_CPU_ARMEL) + crash_addr = static_cast<uintptr_t>(context->uc_mcontext.arm_pc); + #elif defined(ARCH_CPU_ARM64) diff --git a/devel/electron18/files/patch-base_memory_discardable__memory.cc b/devel/electron18/files/patch-base_memory_discardable__memory.cc new file mode 100644 index 000000000000..d20eb38f6056 --- /dev/null +++ b/devel/electron18/files/patch-base_memory_discardable__memory.cc @@ -0,0 +1,38 @@ +--- base/memory/discardable_memory.cc.orig 2022-05-19 05:17:34 UTC ++++ base/memory/discardable_memory.cc +@@ -24,7 +24,7 @@ const base::Feature kMadvFreeDiscardableMemory{ + "MadvFreeDiscardableMemory", base::FEATURE_DISABLED_BY_DEFAULT}; + #endif // BUILDFLAG(IS_POSIX) + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const base::Feature kDiscardableMemoryBackingTrial{ + "DiscardableMemoryBackingTrial", base::FEATURE_DISABLED_BY_DEFAULT}; + +@@ -49,7 +49,7 @@ const base::FeatureParam<DiscardableMemoryTrialGroup> + + namespace { + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + DiscardableMemoryBacking GetBackingForFieldTrial() { + DiscardableMemoryTrialGroup trial_group = +@@ -68,7 +68,7 @@ DiscardableMemoryBacking GetBackingForFieldTrial() { + + } // namespace + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + // Probe capabilities of this device to determine whether we should participate + // in the discardable memory backing trial. +@@ -98,7 +98,7 @@ DiscardableMemory::DiscardableMemory() = default; + DiscardableMemory::~DiscardableMemory() = default; + + DiscardableMemoryBacking GetDiscardableMemoryBacking() { +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (DiscardableMemoryBackingFieldTrialIsEnabled()) { + return GetBackingForFieldTrial(); + } diff --git a/devel/electron18/files/patch-base_memory_discardable__memory__internal.h b/devel/electron18/files/patch-base_memory_discardable__memory__internal.h new file mode 100644 index 000000000000..d1a2f2db16e6 --- /dev/null +++ b/devel/electron18/files/patch-base_memory_discardable__memory__internal.h @@ -0,0 +1,11 @@ +--- base/memory/discardable_memory_internal.h.orig 2022-05-19 03:45:15 UTC ++++ base/memory/discardable_memory_internal.h +@@ -10,7 +10,7 @@ + #include "base/metrics/field_trial_params.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + namespace base { + diff --git a/devel/electron18/files/patch-base_memory_madv__free__discardable__memory__posix.cc b/devel/electron18/files/patch-base_memory_madv__free__discardable__memory__posix.cc new file mode 100644 index 000000000000..752a5204e1c3 --- /dev/null +++ b/devel/electron18/files/patch-base_memory_madv__free__discardable__memory__posix.cc @@ -0,0 +1,21 @@ +--- base/memory/madv_free_discardable_memory_posix.cc.orig 2022-05-19 05:17:34 UTC ++++ base/memory/madv_free_discardable_memory_posix.cc +@@ -294,6 +294,10 @@ void MadvFreeDiscardableMemoryPosix::SetKeepMemoryForT + + bool MadvFreeDiscardableMemoryPosix::IsResident() const { + DFAKE_SCOPED_RECURSIVE_LOCK(thread_collision_warner_); ++// XXX mincore ++#if BUILDFLAG(IS_BSD) ++ return false; ++#else + #if BUILDFLAG(IS_APPLE) + std::vector<char> vec(allocated_pages_); + #else +@@ -309,6 +313,7 @@ bool MadvFreeDiscardableMemoryPosix::IsResident() cons + return false; + } + return true; ++#endif + } + + bool MadvFreeDiscardableMemoryPosix::IsDiscarded() const { diff --git a/devel/electron18/files/patch-base_memory_platform__shared__memory__region.h b/devel/electron18/files/patch-base_memory_platform__shared__memory__region.h new file mode 100644 index 000000000000..56ea02151914 --- /dev/null +++ b/devel/electron18/files/patch-base_memory_platform__shared__memory__region.h @@ -0,0 +1,29 @@ +--- base/memory/platform_shared_memory_region.h.orig 2022-05-19 05:17:34 UTC ++++ base/memory/platform_shared_memory_region.h +@@ -23,7 +23,7 @@ + #include "base/files/scoped_file.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + namespace content { + class SandboxIPCHandler; + } +@@ -116,7 +116,7 @@ class BASE_EXPORT PlatformSharedMemoryRegion { + kMaxValue = GET_SHMEM_TEMP_DIR_FAILURE + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Structure to limit access to executable region creation. + struct ExecutableRegion { + private: +@@ -263,7 +263,7 @@ class BASE_EXPORT PlatformSharedMemoryRegion { + CheckPlatformHandlePermissionsCorrespondToMode); + static PlatformSharedMemoryRegion Create(Mode mode, + size_t size +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + , + bool executable = false + #endif diff --git a/devel/electron18/files/patch-base_memory_platform__shared__memory__region__posix.cc b/devel/electron18/files/patch-base_memory_platform__shared__memory__region__posix.cc new file mode 100644 index 000000000000..210daa145950 --- /dev/null +++ b/devel/electron18/files/patch-base_memory_platform__shared__memory__region__posix.cc @@ -0,0 +1,29 @@ +--- base/memory/platform_shared_memory_region_posix.cc.orig 2022-05-19 05:17:34 UTC ++++ base/memory/platform_shared_memory_region_posix.cc +@@ -70,7 +70,7 @@ FDPair ScopedFDPair::get() const { + return {fd.get(), readonly_fd.get()}; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // static + ScopedFD PlatformSharedMemoryRegion::ExecutableRegion::CreateFD(size_t size) { + PlatformSharedMemoryRegion region = +@@ -204,7 +204,7 @@ bool PlatformSharedMemoryRegion::MapAtInternal(off_t o + // static + PlatformSharedMemoryRegion PlatformSharedMemoryRegion::Create(Mode mode, + size_t size +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + , + bool executable + #endif +@@ -233,7 +233,7 @@ PlatformSharedMemoryRegion PlatformSharedMemoryRegion: + // flag. + FilePath directory; + if (!GetShmemTempDir( +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + executable, + #else + false /* executable */, diff --git a/devel/electron18/files/patch-base_message__loop_message__pump__glib.cc b/devel/electron18/files/patch-base_message__loop_message__pump__glib.cc new file mode 100644 index 000000000000..7353559cf1ab --- /dev/null +++ b/devel/electron18/files/patch-base_message__loop_message__pump__glib.cc @@ -0,0 +1,28 @@ +--- base/message_loop/message_pump_glib.cc.orig 2022-05-19 05:17:34 UTC ++++ base/message_loop/message_pump_glib.cc +@@ -8,6 +8,11 @@ + #include <glib.h> + #include <math.h> + ++#if BUILDFLAG(IS_BSD) ++#include <pthread.h> ++#include <pthread_np.h> ++#endif ++ + #include "base/logging.h" + #include "base/notreached.h" + #include "base/numerics/safe_conversions.h" +@@ -50,9 +55,13 @@ int GetTimeIntervalMilliseconds(TimeTicks next_task_ti + } + + bool RunningOnMainThread() { ++#if BUILDFLAG(IS_BSD) ++ return pthread_main_np(); ++#else + auto pid = getpid(); + auto tid = PlatformThread::CurrentId(); + return pid > 0 && tid > 0 && pid == tid; ++#endif + } + + // A brief refresher on GLib: diff --git a/devel/electron18/files/patch-base_native__library__posix.cc b/devel/electron18/files/patch-base_native__library__posix.cc new file mode 100644 index 000000000000..38015378f0d8 --- /dev/null +++ b/devel/electron18/files/patch-base_native__library__posix.cc @@ -0,0 +1,11 @@ +--- base/native_library_posix.cc.orig 2022-05-19 05:17:34 UTC ++++ base/native_library_posix.cc +@@ -32,7 +32,7 @@ NativeLibrary LoadNativeLibraryWithOptions(const FileP + // http://crbug.com/17943, http://crbug.com/17557, http://crbug.com/36892, + // and http://crbug.com/40794. + int flags = RTLD_LAZY; +-#if BUILDFLAG(IS_ANDROID) || !defined(RTLD_DEEPBIND) ++#if BUILDFLAG(IS_ANDROID) || !defined(RTLD_DEEPBIND) || BUILDFLAG(IS_BSD) + // Certain platforms don't define RTLD_DEEPBIND. Android dlopen() requires + // further investigation, as it might vary across versions. Crash here to + // warn developers that they're trying to rely on uncertain behavior. diff --git a/devel/electron18/files/patch-base_native__library__unittest.cc b/devel/electron18/files/patch-base_native__library__unittest.cc new file mode 100644 index 000000000000..1834dce165ae --- /dev/null +++ b/devel/electron18/files/patch-base_native__library__unittest.cc @@ -0,0 +1,11 @@ +--- base/native_library_unittest.cc.orig 2022-05-19 03:45:15 UTC ++++ base/native_library_unittest.cc +@@ -119,7 +119,7 @@ TEST(NativeLibraryTest, LoadLibrary) { + // versions with respect to symbol resolution scope. + // TSan and MSan error out on RTLD_DEEPBIND, https://crbug.com/705255 + #if !BUILDFLAG(IS_ANDROID) && !defined(THREAD_SANITIZER) && \ +- !defined(MEMORY_SANITIZER) ++ !defined(MEMORY_SANITIZER) && !BUILDFLAG(IS_BSD) + + // Verifies that the |prefer_own_symbols| option satisfies its guarantee that + // a loaded library will always prefer local symbol resolution before diff --git a/devel/electron18/files/patch-base_posix_can__lower__nice__to.cc b/devel/electron18/files/patch-base_posix_can__lower__nice__to.cc new file mode 100644 index 000000000000..4acd0dd41a9b --- /dev/null +++ b/devel/electron18/files/patch-base_posix_can__lower__nice__to.cc @@ -0,0 +1,16 @@ +--- base/posix/can_lower_nice_to.cc.orig 2022-05-19 03:45:15 UTC ++++ base/posix/can_lower_nice_to.cc +@@ -11,8 +11,12 @@ + + #include "build/build_config.h" + ++#if BUILDFLAG(IS_FREEBSD) ++#include <sys/param.h> ++#endif ++ + // Not defined on AIX by default. +-#if BUILDFLAG(IS_AIX) ++#if BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + #if defined(RLIMIT_NICE) + #error Assumption about OS_AIX is incorrect + #endif diff --git a/devel/electron18/files/patch-base_posix_unix__domain__socket.cc b/devel/electron18/files/patch-base_posix_unix__domain__socket.cc new file mode 100644 index 000000000000..cf0cb87aefb4 --- /dev/null +++ b/devel/electron18/files/patch-base_posix_unix__domain__socket.cc @@ -0,0 +1,39 @@ +--- base/posix/unix_domain_socket.cc.orig 2022-05-19 03:45:15 UTC ++++ base/posix/unix_domain_socket.cc +@@ -50,7 +50,7 @@ bool CreateSocketPair(ScopedFD* one, ScopedFD* two) { + + // static + bool UnixDomainSocket::EnableReceiveProcessId(int fd) { +-#if !BUILDFLAG(IS_APPLE) ++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + const int enable = 1; + return setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &enable, sizeof(enable)) == 0; + #else +@@ -140,7 +140,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd, + + const size_t kControlBufferSize = + CMSG_SPACE(sizeof(int) * kMaxFileDescriptors) +-#if !BUILDFLAG(IS_APPLE) ++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + // macOS does not support ucred. + // macOS supports xucred, but this structure is insufficient. + + CMSG_SPACE(sizeof(struct ucred)) +@@ -168,7 +168,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd, + wire_fds = reinterpret_cast<int*>(CMSG_DATA(cmsg)); + wire_fds_len = payload_len / sizeof(int); + } +-#if !BUILDFLAG(IS_APPLE) ++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + // macOS does not support SCM_CREDENTIALS. + if (cmsg->cmsg_level == SOL_SOCKET && + cmsg->cmsg_type == SCM_CREDENTIALS) { +@@ -202,6 +202,9 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd, + socklen_t pid_size = sizeof(pid); + if (getsockopt(fd, SOL_LOCAL, LOCAL_PEERPID, &pid, &pid_size) != 0) + pid = -1; ++#elif BUILDFLAG(IS_BSD) ++ NOTIMPLEMENTED(); ++ pid = -1; + #else + // |pid| will legitimately be -1 if we read EOF, so only DCHECK if we + // actually received a message. Unfortunately, Linux allows sending zero diff --git a/devel/electron18/files/patch-base_posix_unix__domain__socket__unittest.cc b/devel/electron18/files/patch-base_posix_unix__domain__socket__unittest.cc new file mode 100644 index 000000000000..63feb7863c87 --- /dev/null +++ b/devel/electron18/files/patch-base_posix_unix__domain__socket__unittest.cc @@ -0,0 +1,11 @@ +--- base/posix/unix_domain_socket_unittest.cc.orig 2022-05-19 03:45:15 UTC ++++ base/posix/unix_domain_socket_unittest.cc +@@ -10,6 +10,8 @@ + #include <sys/types.h> + #include <unistd.h> + ++#include <signal.h> ++ + #include "base/bind.h" + #include "base/callback_helpers.h" + #include "base/files/file_util.h" diff --git a/devel/electron18/files/patch-base_process_kill.h b/devel/electron18/files/patch-base_process_kill.h new file mode 100644 index 000000000000..9c8b196ab475 --- /dev/null +++ b/devel/electron18/files/patch-base_process_kill.h @@ -0,0 +1,11 @@ +--- base/process/kill.h.orig 2022-05-19 05:17:34 UTC ++++ base/process/kill.h +@@ -112,7 +112,7 @@ BASE_EXPORT TerminationStatus GetTerminationStatus(Pro + BASE_EXPORT TerminationStatus GetKnownDeadTerminationStatus( + ProcessHandle handle, int* exit_code); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Spawns a thread to wait asynchronously for the child |process| to exit + // and then reaps it. + BASE_EXPORT void EnsureProcessGetsReaped(Process process); diff --git a/devel/electron18/files/patch-base_process_kill__posix.cc b/devel/electron18/files/patch-base_process_kill__posix.cc new file mode 100644 index 000000000000..097aec1b62d5 --- /dev/null +++ b/devel/electron18/files/patch-base_process_kill__posix.cc @@ -0,0 +1,11 @@ +--- base/process/kill_posix.cc.orig 2022-05-19 05:17:34 UTC ++++ base/process/kill_posix.cc +@@ -159,7 +159,7 @@ void EnsureProcessTerminated(Process process) { + 0, new BackgroundReaper(std::move(process), Seconds(2))); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void EnsureProcessGetsReaped(Process process) { + DCHECK(!process.is_current()); + diff --git a/devel/electron18/files/patch-base_process_launch.h b/devel/electron18/files/patch-base_process_launch.h new file mode 100644 index 000000000000..ccb499f53e50 --- /dev/null +++ b/devel/electron18/files/patch-base_process_launch.h @@ -0,0 +1,11 @@ +--- base/process/launch.h.orig 2022-05-19 05:17:34 UTC ++++ base/process/launch.h +@@ -195,7 +195,7 @@ struct BASE_EXPORT LaunchOptions { + bool clear_environment = false; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // If non-zero, start the process using clone(), using flags as provided. + // Unlike in clone, clone_flags may not contain a custom termination signal + // that is sent to the parent when the child dies. The termination signal will diff --git a/devel/electron18/files/patch-base_process_launch__posix.cc b/devel/electron18/files/patch-base_process_launch__posix.cc new file mode 100644 index 000000000000..86a2400e9833 --- /dev/null +++ b/devel/electron18/files/patch-base_process_launch__posix.cc @@ -0,0 +1,12 @@ +--- base/process/launch_posix.cc.orig 2022-05-11 07:16:46 UTC ++++ base/process/launch_posix.cc +@@ -64,6 +64,9 @@ + #error "macOS should use launch_mac.cc" + #endif + ++#if defined(OS_FREEBSD) ++#pragma weak environ ++#endif + extern char** environ; + + namespace base { diff --git a/devel/electron18/files/patch-base_process_memory.cc b/devel/electron18/files/patch-base_process_memory.cc new file mode 100644 index 000000000000..b53f85c81729 --- /dev/null +++ b/devel/electron18/files/patch-base_process_memory.cc @@ -0,0 +1,20 @@ +--- base/process/memory.cc.orig 2022-05-19 05:17:34 UTC ++++ base/process/memory.cc +@@ -65,14 +65,16 @@ NOINLINE void OnNoMemoryInternal(size_t size) { + + } // namespace internal + ++#if !BUILDFLAG(IS_BSD) + void TerminateBecauseOutOfMemory(size_t size) { + internal::OnNoMemoryInternal(size); + } ++#endif + + // Defined in memory_mac.mm for macOS + use_allocator="none". In case of + // USE_PARTITION_ALLOC_AS_MALLOC, no need to route the call to the system + // default calloc of macOS. +-#if !BUILDFLAG(IS_APPLE) || BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) ++#if (!BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD)) || BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) + + bool UncheckedCalloc(size_t num_items, size_t size, void** result) { + const size_t alloc_size = num_items * size; diff --git a/devel/electron18/files/patch-base_process_process__handle.cc b/devel/electron18/files/patch-base_process_process__handle.cc new file mode 100644 index 000000000000..d21402a0632b --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__handle.cc @@ -0,0 +1,11 @@ +--- base/process/process_handle.cc.orig 2022-05-19 03:45:15 UTC ++++ base/process/process_handle.cc +@@ -30,7 +30,7 @@ UniqueProcId GetUniqueIdForProcess() { + : UniqueProcId(GetCurrentProcId()); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_AIX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + + void InitUniqueIdForProcessInPidNamespace(ProcessId pid_outside_of_namespace) { + DCHECK(pid_outside_of_namespace != kNullProcessId); diff --git a/devel/electron18/files/patch-base_process_process__handle.h b/devel/electron18/files/patch-base_process_process__handle.h new file mode 100644 index 000000000000..f42415b5d768 --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__handle.h @@ -0,0 +1,11 @@ +--- base/process/process_handle.h.orig 2022-05-19 03:45:15 UTC ++++ base/process/process_handle.h +@@ -106,7 +106,7 @@ BASE_EXPORT ProcessId GetCurrentProcId(); + // processes may be reused. + BASE_EXPORT UniqueProcId GetUniqueIdForProcess(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // When a process is started in a different PID namespace from the browser + // process, this function must be called with the process's PID in the browser's + // PID namespace in order to initialize its unique ID. Not thread safe. diff --git a/devel/electron18/files/patch-base_process_process__handle__freebsd.cc b/devel/electron18/files/patch-base_process_process__handle__freebsd.cc new file mode 100644 index 000000000000..e43bd6086675 --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__handle__freebsd.cc @@ -0,0 +1,23 @@ +--- base/process/process_handle_freebsd.cc.orig 2021-09-14 01:51:47 UTC ++++ base/process/process_handle_freebsd.cc +@@ -12,15 +12,19 @@ + #include <unistd.h> + + #include "base/cxx17_backports.h" ++#include "base/files/file_path.h" + + namespace base { + + ProcessId GetParentProcessId(ProcessHandle process) { + struct kinfo_proc info; +- size_t length; ++ size_t length = sizeof(struct kinfo_proc); + int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process }; + + if (sysctl(mib, base::size(mib), &info, &length, NULL, 0) < 0) ++ return -1; ++ ++ if (length < sizeof(struct kinfo_proc)) + return -1; + + return info.ki_ppid; diff --git a/devel/electron18/files/patch-base_process_process__handle__openbsd.cc b/devel/electron18/files/patch-base_process_process__handle__openbsd.cc new file mode 100644 index 000000000000..53e42c48a449 --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__handle__openbsd.cc @@ -0,0 +1,89 @@ +--- base/process/process_handle_openbsd.cc.orig 2022-05-11 07:16:46 UTC ++++ base/process/process_handle_openbsd.cc +@@ -3,8 +3,11 @@ + // found in the LICENSE file. + + #include "base/process/process_handle.h" ++#include "base/files/file_util.h" + + #include <stddef.h> ++#include <sys/param.h> ++#include <sys/proc.h> + #include <sys/sysctl.h> + #include <sys/types.h> + #include <unistd.h> +@@ -14,39 +17,59 @@ + namespace base { + + ProcessId GetParentProcessId(ProcessHandle process) { +- struct kinfo_proc info; ++ struct kinfo_proc *info; + size_t length; ++ pid_t ppid; + int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process, + sizeof(struct kinfo_proc), 0 }; + + if (sysctl(mib, base::size(mib), NULL, &length, NULL, 0) < 0) + return -1; + ++ info = (struct kinfo_proc *)malloc(length); ++ + mib[5] = (length / sizeof(struct kinfo_proc)); + +- if (sysctl(mib, base::size(mib), &info, &length, NULL, 0) < 0) +- return -1; ++ if (sysctl(mib, base::size(mib), info, &length, NULL, 0) < 0) { ++ ppid = -1; ++ goto out; ++ } + +- return info.p_ppid; ++ ppid = info->p_ppid; ++ ++out: ++ free(info); ++ return ppid; + } + + FilePath GetProcessExecutablePath(ProcessHandle process) { +- struct kinfo_proc kp; +- size_t len; ++ struct kinfo_proc *info; ++ size_t length; ++ char *path = NULL; + int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process, + sizeof(struct kinfo_proc), 0 }; + +- if (sysctl(mib, base::size(mib), NULL, &len, NULL, 0) == -1) ++ if (sysctl(mib, base::size(mib), NULL, &length, NULL, 0) == -1) + return FilePath(); +- mib[5] = (len / sizeof(struct kinfo_proc)); +- if (sysctl(mib, base::size(mib), &kp, &len, NULL, 0) < 0) +- return FilePath(); +- if ((kp.p_flag & P_SYSTEM) != 0) +- return FilePath(); +- if (strcmp(kp.p_comm, "chrome") == 0) +- return FilePath(kp.p_comm); + +- return FilePath(); ++ info = (struct kinfo_proc *)malloc(length); ++ ++ mib[5] = (length / sizeof(struct kinfo_proc)); ++ ++ if (sysctl(mib, base::size(mib), info, &length, NULL, 0) < 0) ++ goto out; ++ ++ if ((info->p_flag & P_SYSTEM) != 0) ++ goto out; ++ ++ if (strcmp(info->p_comm, "chrome") == 0) { ++ path = info->p_comm; ++ goto out; ++ } ++ ++out: ++ free(info); ++ return FilePath(path); + } + + } // namespace base diff --git a/devel/electron18/files/patch-base_process_process__iterator__freebsd.cc b/devel/electron18/files/patch-base_process_process__iterator__freebsd.cc new file mode 100644 index 000000000000..0491e2a111a9 --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__iterator__freebsd.cc @@ -0,0 +1,51 @@ +--- base/process/process_iterator_freebsd.cc.orig 2021-09-14 01:51:47 UTC ++++ base/process/process_iterator_freebsd.cc +@@ -21,7 +21,7 @@ ProcessIterator::ProcessIterator(const ProcessFilter* + : index_of_kinfo_proc_(), + filter_(filter) { + +- int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, getuid() }; ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, (int) getuid() }; + + bool done = false; + int try_num = 1; +@@ -40,7 +40,7 @@ ProcessIterator::ProcessIterator(const ProcessFilter* + num_of_kinfo_proc += 16; + kinfo_procs_.resize(num_of_kinfo_proc); + len = num_of_kinfo_proc * sizeof(struct kinfo_proc); +- if (sysctl(mib, base::size(mib), &kinfo_procs_[0], &len, NULL, 0) < 0) { ++ if (sysctl(mib, base::size(mib), kinfo_procs_.data(), &len, NULL, 0) < 0) { + // If we get a mem error, it just means we need a bigger buffer, so + // loop around again. Anything else is a real error and give up. + if (errno != ENOMEM) { +@@ -50,7 +50,7 @@ ProcessIterator::ProcessIterator(const ProcessFilter* + } + } else { + // Got the list, just make sure we're sized exactly right +- size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc); ++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc); + kinfo_procs_.resize(num_of_kinfo_proc); + done = true; + } +@@ -72,18 +72,13 @@ bool ProcessIterator::CheckForNextProcess() { + for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++index_of_kinfo_proc_) { + size_t length; + struct kinfo_proc kinfo = kinfo_procs_[index_of_kinfo_proc_]; +- int mib[] = { CTL_KERN, KERN_PROC_ARGS, kinfo.ki_pid }; ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_ARGS, kinfo.ki_pid }; + + if ((kinfo.ki_pid > 0) && (kinfo.ki_stat == SZOMB)) + continue; + +- length = 0; +- if (sysctl(mib, base::size(mib), NULL, &length, NULL, 0) < 0) { +- LOG(ERROR) << "failed to figure out the buffer size for a command line"; +- continue; +- } +- +- data.resize(length); ++ data.resize(ARG_MAX); ++ length = ARG_MAX; + + if (sysctl(mib, base::size(mib), &data[0], &length, NULL, 0) < 0) { + LOG(ERROR) << "failed to fetch a commandline"; diff --git a/devel/electron18/files/patch-base_process_process__iterator__openbsd.cc b/devel/electron18/files/patch-base_process_process__iterator__openbsd.cc new file mode 100644 index 000000000000..aa0a99325f5d --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__iterator__openbsd.cc @@ -0,0 +1,45 @@ +--- base/process/process_iterator_openbsd.cc.orig 2022-05-11 07:16:46 UTC ++++ base/process/process_iterator_openbsd.cc +@@ -6,6 +6,9 @@ + + #include <errno.h> + #include <stddef.h> ++#include <unistd.h> ++#include <sys/param.h> ++#include <sys/proc.h> + #include <sys/sysctl.h> + + #include "base/cxx17_backports.h" +@@ -19,12 +22,13 @@ ProcessIterator::ProcessIterator(const ProcessFilter* + : index_of_kinfo_proc_(), + filter_(filter) { + +- int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, getuid(), ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_UID, static_cast<int>(getuid()), + sizeof(struct kinfo_proc), 0 }; + + bool done = false; + int try_num = 1; + const int max_tries = 10; ++ size_t num_of_kinfo_proc; + + do { + size_t len = 0; +@@ -33,7 +37,7 @@ ProcessIterator::ProcessIterator(const ProcessFilter* + kinfo_procs_.resize(0); + done = true; + } else { +- size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc); ++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc); + // Leave some spare room for process table growth (more could show up + // between when we check and now) + num_of_kinfo_proc += 16; +@@ -49,7 +53,7 @@ ProcessIterator::ProcessIterator(const ProcessFilter* + } + } else { + // Got the list, just make sure we're sized exactly right +- size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc); ++ num_of_kinfo_proc = len / sizeof(struct kinfo_proc); + kinfo_procs_.resize(num_of_kinfo_proc); + done = true; + } diff --git a/devel/electron18/files/patch-base_process_process__metrics.cc b/devel/electron18/files/patch-base_process_process__metrics.cc new file mode 100644 index 000000000000..cc89edddf6e5 --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__metrics.cc @@ -0,0 +1,47 @@ +--- base/process/process_metrics.cc.orig 2022-05-19 05:17:34 UTC ++++ base/process/process_metrics.cc +@@ -18,7 +18,7 @@ namespace base { + namespace { + + #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + int CalculateEventsPerSecond(uint64_t event_count, + uint64_t* last_event_count, + base::TimeTicks* last_calculated) { +@@ -55,7 +55,7 @@ SystemMetrics SystemMetrics::Sample() { + SystemMetrics system_metrics; + + system_metrics.committed_memory_ = GetSystemCommitCharge(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + GetSystemMemoryInfo(&system_metrics.memory_info_); + GetVmStatInfo(&system_metrics.vmstat_info_); + GetSystemDiskInfo(&system_metrics.disk_info_); +@@ -74,7 +74,7 @@ Value SystemMetrics::ToValue() const { + Value res(Value::Type::DICTIONARY); + + res.SetIntKey("committed_memory", static_cast<int>(committed_memory_)); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + Value meminfo = memory_info_.ToValue(); + Value vmstat = vmstat_info_.ToValue(); + meminfo.MergeDictionary(&vmstat); +@@ -100,7 +100,7 @@ std::unique_ptr<ProcessMetrics> ProcessMetrics::Create + #endif // !BUILDFLAG(IS_MAC) + } + +-#if !BUILDFLAG(IS_FREEBSD) || !BUILDFLAG(IS_POSIX) ++#if !BUILDFLAG(IS_BSD) || !BUILDFLAG(IS_POSIX) + double ProcessMetrics::GetPlatformIndependentCPUUsage() { + TimeDelta cumulative_cpu = GetCumulativeCPUUsage(); + TimeTicks time = TimeTicks::Now(); +@@ -126,7 +126,7 @@ double ProcessMetrics::GetPlatformIndependentCPUUsage( + #endif + + #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + int ProcessMetrics::CalculateIdleWakeupsPerSecond( + uint64_t absolute_idle_wakeups) { + return CalculateEventsPerSecond(absolute_idle_wakeups, diff --git a/devel/electron18/files/patch-base_process_process__metrics.h b/devel/electron18/files/patch-base_process_process__metrics.h new file mode 100644 index 000000000000..f96d37afb8f1 --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__metrics.h @@ -0,0 +1,119 @@ +--- base/process/process_metrics.h.orig 2022-05-19 05:17:34 UTC ++++ base/process/process_metrics.h +@@ -36,7 +36,7 @@ + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + #include <string> + #include <utility> + #include <vector> +@@ -52,7 +52,7 @@ class Value; + // Full declaration is in process_metrics_iocounters.h. + struct IoCounters; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // Minor and major page fault counts since the process creation. + // Both counts are process-wide, and exclude child processes. + // +@@ -107,7 +107,7 @@ class BASE_EXPORT ProcessMetrics { + // convenience wrapper for CreateProcessMetrics(). + static std::unique_ptr<ProcessMetrics> CreateCurrentProcessMetrics(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // Resident Set Size is a Linux/Android specific memory concept. Do not + // attempt to extend this to other platforms. + BASE_EXPORT size_t GetResidentSetSize() const; +@@ -134,7 +134,7 @@ class BASE_EXPORT ProcessMetrics { + [[nodiscard]] TimeDelta GetCumulativeCPUUsage(); + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + // Emits the cumulative CPU usage for all currently active threads since they + // were started into the output parameter (replacing its current contents). + // Threads that have already terminated will not be reported. Thus, the sum of +@@ -217,7 +217,7 @@ class BASE_EXPORT ProcessMetrics { + int GetOpenFdSoftLimit() const; + #endif // BUILDFLAG(IS_POSIX) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // Bytes of swap as reported by /proc/[pid]/status. + uint64_t GetVmSwapBytes() const; + +@@ -238,7 +238,7 @@ class BASE_EXPORT ProcessMetrics { + #endif // !BUILDFLAG(IS_MAC) + + #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + int CalculateIdleWakeupsPerSecond(uint64_t absolute_idle_wakeups); + #endif + #if BUILDFLAG(IS_APPLE) +@@ -249,7 +249,7 @@ class BASE_EXPORT ProcessMetrics { + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + CPU::CoreType GetCoreType(int core_index); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || + // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_AIX) +@@ -274,7 +274,7 @@ class BASE_EXPORT ProcessMetrics { + uint64_t last_cumulative_disk_usage_ = 0; + + #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + // Same thing for idle wakeups. + TimeTicks last_idle_wakeups_time_; + uint64_t last_absolute_idle_wakeups_; +@@ -317,7 +317,7 @@ BASE_EXPORT void IncreaseFdLimitTo(unsigned int max_de + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_AIX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Data about system-wide memory consumption. Values are in KB. Available on + // Windows, Mac, Linux, Android and Chrome OS. + // +@@ -352,7 +352,7 @@ struct BASE_EXPORT SystemMemoryInfoKB { + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + // This provides an estimate of available memory as described here: + // https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773 + // NOTE: this is ONLY valid in kernels 3.14 and up. Its value will always +@@ -367,7 +367,7 @@ struct BASE_EXPORT SystemMemoryInfoKB { + #endif + + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + int buffers = 0; + int cached = 0; + int active_anon = 0; +@@ -404,7 +404,7 @@ BASE_EXPORT bool GetSystemMemoryInfo(SystemMemoryInfoK + // BUILDFLAG(IS_FUCHSIA) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + // Parse the data found in /proc/<pid>/stat and return the sum of the + // CPU-related ticks. Returns -1 on parse error. + // Exposed for testing. +@@ -591,7 +591,7 @@ class BASE_EXPORT SystemMetrics { + FRIEND_TEST_ALL_PREFIXES(SystemMetricsTest, SystemMetrics); + + size_t committed_memory_; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + SystemMemoryInfoKB memory_info_; + VmStatInfo vmstat_info_; + SystemDiskInfo disk_info_; diff --git a/devel/electron18/files/patch-base_process_process__metrics__freebsd.cc b/devel/electron18/files/patch-base_process_process__metrics__freebsd.cc new file mode 100644 index 000000000000..dfb2e7508ea0 --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__metrics__freebsd.cc @@ -0,0 +1,292 @@ +--- base/process/process_metrics_freebsd.cc.orig 2022-05-19 05:17:34 UTC ++++ base/process/process_metrics_freebsd.cc +@@ -3,21 +3,41 @@ + // found in the LICENSE file. + + #include "base/process/process_metrics.h" ++#include "base/notreached.h" + + #include <stddef.h> ++#include <sys/types.h> + #include <sys/sysctl.h> + #include <sys/user.h> + #include <unistd.h> + ++#include <fcntl.h> /* O_RDONLY */ ++#include <kvm.h> ++#include <libutil.h> ++ + #include "base/cxx17_backports.h" + #include "base/memory/ptr_util.h" + #include "base/process/process_metrics_iocounters.h" ++#include "base/values.h" + + namespace base { ++namespace { + ++int GetPageShift() { ++ int pagesize = getpagesize(); ++ int pageshift = 0; ++ ++ while (pagesize > 1) { ++ pageshift++; ++ pagesize >>= 1; ++ } ++ ++ return pageshift; ++} ++} ++ + ProcessMetrics::ProcessMetrics(ProcessHandle process) +- : process_(process), +- last_cpu_(0) {} ++ : process_(process) {} + + // static + std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics( +@@ -27,17 +47,18 @@ std::unique_ptr<ProcessMetrics> ProcessMetrics::Create + + double ProcessMetrics::GetPlatformIndependentCPUUsage() { + struct kinfo_proc info; +- int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, process_}; +- size_t length = sizeof(info); ++ size_t length = sizeof(struct kinfo_proc); + ++ int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, process_ }; ++ + if (sysctl(mib, base::size(mib), &info, &length, NULL, 0) < 0) +- return 0; ++ return 0.0; + +- return (info.ki_pctcpu / FSCALE) * 100.0; ++ return static_cast<double>((info.ki_pctcpu * 100.0) / FSCALE); + } + + TimeDelta ProcessMetrics::GetCumulativeCPUUsage() { +- NOTREACHED(); ++ NOTIMPLEMENTED(); + return TimeDelta(); + } + +@@ -68,4 +89,221 @@ size_t GetSystemCommitCharge() { + return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize); + } + ++int GetNumberOfThreads(ProcessHandle process) { ++ // Taken from FreeBSD top (usr.bin/top/machine.c) ++ ++ kvm_t* kd = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvm_open"); ++ if (kd == NULL) ++ return 0; ++ ++ struct kinfo_proc* pbase; ++ int nproc; ++ pbase = kvm_getprocs(kd, KERN_PROC_PID, process, &nproc); ++ if (pbase == NULL) ++ return 0; ++ ++ if (kvm_close(kd) == -1) ++ return 0; ++ ++ return nproc; ++} ++ ++bool GetSystemMemoryInfo(SystemMemoryInfoKB *meminfo) { ++ unsigned int mem_total, mem_free, swap_total, swap_used; ++ size_t length; ++ int pagesizeKB; ++ ++ pagesizeKB = getpagesize() / 1024; ++ ++ length = sizeof(mem_total); ++ if (sysctlbyname("vm.stats.vm.v_page_count", &mem_total, ++ &length, NULL, 0) != 0 || length != sizeof(mem_total)) ++ return false; ++ ++ length = sizeof(mem_free); ++ if (sysctlbyname("vm.stats.vm.v_free_count", &mem_free, &length, NULL, 0) ++ != 0 || length != sizeof(mem_free)) ++ return false; ++ ++ length = sizeof(swap_total); ++ if (sysctlbyname("vm.swap_size", &swap_total, &length, NULL, 0) ++ != 0 || length != sizeof(swap_total)) ++ return false; ++ ++ length = sizeof(swap_used); ++ if (sysctlbyname("vm.swap_anon_use", &swap_used, &length, NULL, 0) ++ != 0 || length != sizeof(swap_used)) ++ return false; ++ ++ meminfo->total = mem_total * pagesizeKB; ++ meminfo->free = mem_free * pagesizeKB; ++ meminfo->swap_total = swap_total * pagesizeKB; ++ meminfo->swap_free = (swap_total - swap_used) * pagesizeKB; ++ ++ return true; ++} ++ ++int ProcessMetrics::GetOpenFdCount() const { ++ struct kinfo_file * kif; ++ int cnt; ++ ++ if ((kif = kinfo_getfile(process_, &cnt)) == NULL) ++ return -1; ++ ++ free(kif); ++ ++ return cnt; ++} ++ ++int ProcessMetrics::GetOpenFdSoftLimit() const { ++ size_t length; ++ int total_count = 0; ++ int mib[] = { CTL_KERN, KERN_MAXFILESPERPROC }; ++ ++ length = sizeof(total_count); ++ ++ if (sysctl(mib, base::size(mib), &total_count, &length, NULL, 0) < 0) { ++ total_count = -1; ++ } ++ ++ return total_count; ++} ++ ++size_t ProcessMetrics::GetResidentSetSize() const { ++ kvm_t *kd = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, "kvm_open"); ++ ++ if (kd == nullptr) ++ return 0; ++ ++ struct kinfo_proc *pp; ++ int nproc; ++ ++ if ((pp = kvm_getprocs(kd, KERN_PROC_PID, process_, &nproc)) == nullptr) { ++ kvm_close(kd); ++ return 0; ++ } ++ ++ size_t rss; ++ ++ if (nproc > 0) { ++ rss = pp->ki_rssize << GetPageShift(); ++ } else { ++ rss = 0; ++ } ++ ++ kvm_close(kd); ++ return rss; ++} ++ ++uint64_t ProcessMetrics::GetVmSwapBytes() const { ++ kvm_t *kd = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, "kvm_open"); ++ ++ if (kd == nullptr) ++ return 0; ++ ++ struct kinfo_proc *pp; ++ int nproc; ++ ++ if ((pp = kvm_getprocs(kd, KERN_PROC_PID, process_, &nproc)) == nullptr) { ++ kvm_close(kd); ++ return 0; ++ } ++ ++ size_t swrss; ++ ++ if (nproc > 0) { ++ swrss = pp->ki_swrss > pp->ki_rssize ++ ? (pp->ki_swrss - pp->ki_rssize) << GetPageShift() ++ : 0; ++ } else { ++ swrss = 0; ++ } ++ ++ kvm_close(kd); ++ return swrss; ++} ++ ++int ProcessMetrics::GetIdleWakeupsPerSecond() { ++ NOTIMPLEMENTED(); ++ return 0; ++} ++ ++bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) { ++ NOTIMPLEMENTED(); ++ return false; ++} ++ ++bool GetVmStatInfo(VmStatInfo* vmstat) { ++ NOTIMPLEMENTED(); ++ return false; ++} ++ ++SystemDiskInfo::SystemDiskInfo() { ++ reads = 0; ++ reads_merged = 0; ++ sectors_read = 0; ++ read_time = 0; ++ writes = 0; ++ writes_merged = 0; ++ sectors_written = 0; ++ write_time = 0; ++ io = 0; ++ io_time = 0; ++ weighted_io_time = 0; ++} ++ ++SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo& other) = default; ++ ++SystemDiskInfo& SystemDiskInfo::operator=(const SystemDiskInfo&) = default; ++ ++Value SystemDiskInfo::ToValue() const { ++ Value res(Value::Type::DICTIONARY); ++ ++ // Write out uint64_t variables as doubles. ++ // Note: this may discard some precision, but for JS there's no other option. ++ res.SetDoubleKey("reads", static_cast<double>(reads)); ++ res.SetDoubleKey("reads_merged", static_cast<double>(reads_merged)); ++ res.SetDoubleKey("sectors_read", static_cast<double>(sectors_read)); ++ res.SetDoubleKey("read_time", static_cast<double>(read_time)); ++ res.SetDoubleKey("writes", static_cast<double>(writes)); ++ res.SetDoubleKey("writes_merged", static_cast<double>(writes_merged)); ++ res.SetDoubleKey("sectors_written", static_cast<double>(sectors_written)); ++ res.SetDoubleKey("write_time", static_cast<double>(write_time)); ++ res.SetDoubleKey("io", static_cast<double>(io)); ++ res.SetDoubleKey("io_time", static_cast<double>(io_time)); ++ res.SetDoubleKey("weighted_io_time", static_cast<double>(weighted_io_time)); ++ ++ return res; ++} ++ ++Value SystemMemoryInfoKB::ToValue() const { ++ Value res(Value::Type::DICTIONARY); ++ ++ res.SetIntKey("total", total); ++ res.SetIntKey("free", free); ++ res.SetIntKey("available", available); ++ res.SetIntKey("buffers", buffers); ++ res.SetIntKey("cached", cached); ++ res.SetIntKey("active_anon", active_anon); ++ res.SetIntKey("inactive_anon", inactive_anon); ++ res.SetIntKey("active_file", active_file); ++ res.SetIntKey("inactive_file", inactive_file); ++ res.SetIntKey("swap_total", swap_total); ++ res.SetIntKey("swap_free", swap_free); ++ res.SetIntKey("swap_used", swap_total - swap_free); ++ res.SetIntKey("dirty", dirty); ++ res.SetIntKey("reclaimable", reclaimable); ++ ++ return res; ++} ++ ++Value VmStatInfo::ToValue() const { ++ Value res(Value::Type::DICTIONARY); ++ ++ res.SetIntKey("pswpin", pswpin); ++ res.SetIntKey("pswpout", pswpout); ++ res.SetIntKey("pgmajfault", pgmajfault); ++ ++ return res; ++} + } // namespace base diff --git a/devel/electron18/files/patch-base_process_process__metrics__openbsd.cc b/devel/electron18/files/patch-base_process_process__metrics__openbsd.cc new file mode 100644 index 000000000000..039ac63f63d5 --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__metrics__openbsd.cc @@ -0,0 +1,235 @@ +--- base/process/process_metrics_openbsd.cc.orig 2022-05-19 05:17:34 UTC ++++ base/process/process_metrics_openbsd.cc +@@ -4,17 +4,36 @@ + + #include "base/process/process_metrics.h" + ++#include "base/files/file_util.h" ++#include "base/logging.h" ++#include "base/process/internal_linux.h" ++#include "base/strings/string_number_conversions.h" ++#include "base/strings/string_split.h" ++#include "base/strings/string_tokenizer.h" ++#include "base/strings/string_util.h" ++#include "base/system/sys_info.h" ++#include "base/threading/thread_restrictions.h" ++#include "base/notreached.h" ++ + #include <stddef.h> + #include <stdint.h> ++#include <fcntl.h> + #include <sys/param.h> + #include <sys/sysctl.h> ++#include <sys/vmmeter.h> + ++#include <kvm.h> ++ + #include "base/cxx17_backports.h" + #include "base/memory/ptr_util.h" + #include "base/process/process_metrics_iocounters.h" ++#include "base/values.h" + + namespace base { + ++ProcessMetrics::ProcessMetrics(ProcessHandle process) ++ : process_(process) {} ++ + // static + std::unique_ptr<ProcessMetrics> ProcessMetrics::CreateProcessMetrics( + ProcessHandle process) { +@@ -25,49 +44,24 @@ bool ProcessMetrics::GetIOCounters(IoCounters* io_coun + return false; + } + +-static int GetProcessCPU(pid_t pid) { ++double ProcessMetrics::GetPlatformIndependentCPUUsage() { + struct kinfo_proc info; +- size_t length; +- int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid, +- sizeof(struct kinfo_proc), 0 }; ++ size_t length = sizeof(struct kinfo_proc); + +- if (sysctl(mib, base::size(mib), NULL, &length, NULL, 0) < 0) +- return -1; ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_, ++ sizeof(struct kinfo_proc), 1 }; + +- mib[5] = (length / sizeof(struct kinfo_proc)); ++ if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) ++ return 0.0; + +- if (sysctl(mib, base::size(mib), &info, &length, NULL, 0) < 0) +- return 0; +- +- return info.p_pctcpu; ++ return static_cast<double>((info.p_pctcpu * 100.0) / FSCALE); + } + +-double ProcessMetrics::GetPlatformIndependentCPUUsage() { +- TimeTicks time = TimeTicks::Now(); +- +- if (last_cpu_time_.is_zero()) { +- // First call, just set the last values. +- last_cpu_time_ = time; +- return 0; +- } +- +- int cpu = GetProcessCPU(process_); +- +- last_cpu_time_ = time; +- double percentage = static_cast<double>((cpu * 100.0) / FSCALE); +- +- return percentage; +-} +- + TimeDelta ProcessMetrics::GetCumulativeCPUUsage() { + NOTREACHED(); + return TimeDelta(); + } + +-ProcessMetrics::ProcessMetrics(ProcessHandle process) +- : process_(process), +- last_cpu_(0) {} +- + size_t GetSystemCommitCharge() { + int mib[] = { CTL_VM, VM_METER }; + int pagesize; +@@ -75,7 +69,7 @@ size_t GetSystemCommitCharge() { + unsigned long mem_total, mem_free, mem_inactive; + size_t len = sizeof(vmtotal); + +- if (sysctl(mib, base::size(mib), &vmtotal, &len, NULL, 0) < 0) ++ if (sysctl(mib, std::size(mib), &vmtotal, &len, NULL, 0) < 0) + return 0; + + mem_total = vmtotal.t_vm; +@@ -85,6 +79,129 @@ size_t GetSystemCommitCharge() { + pagesize = getpagesize(); + + return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize); ++} ++ ++int ProcessMetrics::GetOpenFdCount() const { ++ struct kinfo_file *files; ++ kvm_t *kd = NULL; ++ int total_count = 0; ++ char errbuf[_POSIX2_LINE_MAX]; ++ ++ if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, errbuf)) == NULL) ++ goto out; ++ ++ if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, process_, ++ sizeof(struct kinfo_file), &total_count)) == NULL) { ++ total_count = 0; ++ goto out; ++ } ++ ++ kvm_close(kd); ++ ++out: ++ return total_count; ++} ++ ++int ProcessMetrics::GetOpenFdSoftLimit() const { ++ return GetMaxFds(); ++} ++ ++uint64_t ProcessMetrics::GetVmSwapBytes() const { ++ NOTIMPLEMENTED(); ++ return 0; ++} ++ ++bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo) { ++ NOTIMPLEMENTED_LOG_ONCE(); ++ return false; ++} ++ ++SystemDiskInfo::SystemDiskInfo() { ++ reads = 0; ++ reads_merged = 0; ++ sectors_read = 0; ++ read_time = 0; ++ writes = 0; ++ writes_merged = 0; ++ sectors_written = 0; ++ write_time = 0; ++ io = 0; ++ io_time = 0; ++ weighted_io_time = 0; ++} ++ ++SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo& other) = default; ++ ++bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) { ++ NOTIMPLEMENTED(); ++ return false; ++} ++ ++bool GetVmStatInfo(VmStatInfo* vmstat) { ++ NOTIMPLEMENTED(); ++ return false; ++} ++ ++int ProcessMetrics::GetIdleWakeupsPerSecond() { ++ NOTIMPLEMENTED(); ++ return 0; ++} ++ ++Value SystemMemoryInfoKB::ToValue() const { ++ Value res(Value::Type::DICTIONARY); ++ res.SetIntKey("total", total); ++ res.SetIntKey("free", free); ++ res.SetIntKey("available", available); ++ res.SetIntKey("buffers", buffers); ++ res.SetIntKey("cached", cached); ++ res.SetIntKey("active_anon", active_anon); ++ res.SetIntKey("inactive_anon", inactive_anon); ++ res.SetIntKey("active_file", active_file); ++ res.SetIntKey("inactive_file", inactive_file); ++ res.SetIntKey("swap_total", swap_total); ++ res.SetIntKey("swap_free", swap_free); ++ res.SetIntKey("swap_used", swap_total - swap_free); ++ res.SetIntKey("dirty", dirty); ++ res.SetIntKey("reclaimable", reclaimable); ++ ++ NOTIMPLEMENTED(); ++ ++ return res; ++} ++ ++Value VmStatInfo::ToValue() const { ++ Value res(Value::Type::DICTIONARY); ++ res.SetIntKey("pswpin", pswpin); ++ res.SetIntKey("pswpout", pswpout); ++ res.SetIntKey("pgmajfault", pgmajfault); ++ ++ NOTIMPLEMENTED(); ++ ++ return res; ++} ++ ++SystemDiskInfo& SystemDiskInfo::operator=(const SystemDiskInfo&) = default; ++ ++Value SystemDiskInfo::ToValue() const { ++ Value res(Value::Type::DICTIONARY); ++ ++ // Write out uint64_t variables as doubles. ++ // Note: this may discard some precision, but for JS there's no other option. ++ res.SetDoubleKey("reads", static_cast<double>(reads)); ++ res.SetDoubleKey("reads_merged", static_cast<double>(reads_merged)); ++ res.SetDoubleKey("sectors_read", static_cast<double>(sectors_read)); ++ res.SetDoubleKey("read_time", static_cast<double>(read_time)); ++ res.SetDoubleKey("writes", static_cast<double>(writes)); ++ res.SetDoubleKey("writes_merged", static_cast<double>(writes_merged)); ++ res.SetDoubleKey("sectors_written", static_cast<double>(sectors_written)); ++ res.SetDoubleKey("write_time", static_cast<double>(write_time)); ++ res.SetDoubleKey("io", static_cast<double>(io)); ++ res.SetDoubleKey("io_time", static_cast<double>(io_time)); ++ res.SetDoubleKey("weighted_io_time", static_cast<double>(weighted_io_time)); ++ ++ NOTIMPLEMENTED(); ++ ++ return res; + } + + } // namespace base diff --git a/devel/electron18/files/patch-base_process_process__metrics__posix.cc b/devel/electron18/files/patch-base_process_process__metrics__posix.cc new file mode 100644 index 000000000000..f508db145a15 --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__metrics__posix.cc @@ -0,0 +1,20 @@ +--- base/process/process_metrics_posix.cc.orig 2022-05-19 03:45:15 UTC ++++ base/process/process_metrics_posix.cc +@@ -20,6 +20,8 @@ + + #if BUILDFLAG(IS_APPLE) + #include <malloc/malloc.h> ++#elif BUILDFLAG(IS_OPENBSD) ++#include <stdlib.h> + #else + #include <malloc.h> + #endif +@@ -133,7 +135,7 @@ size_t ProcessMetrics::GetMallocUsage() { + return stats.size_in_use; + #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + return GetMallocUsageMallinfo(); +-#elif BUILDFLAG(IS_FUCHSIA) ++#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // TODO(fuchsia): Not currently exposed. https://crbug.com/735087. + return 0; + #endif diff --git a/devel/electron18/files/patch-base_process_process__posix.cc b/devel/electron18/files/patch-base_process_process__posix.cc new file mode 100644 index 000000000000..15014510bcc1 --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__posix.cc @@ -0,0 +1,93 @@ +--- base/process/process_posix.cc.orig 2022-05-19 05:17:34 UTC ++++ base/process/process_posix.cc +@@ -23,10 +23,15 @@ + #include "build/build_config.h" + #include "third_party/abseil-cpp/absl/types/optional.h" + +-#if BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include <sys/event.h> + #endif + ++#if defined(OS_BSD) ++#include <sys/types.h> ++#include <sys/sysctl.h> ++#endif ++ + #if BUILDFLAG(CLANG_PROFILING) + #include "base/test/clang_profiling.h" + #endif +@@ -95,7 +100,7 @@ bool WaitpidWithTimeout(base::ProcessHandle handle, + return ret_pid > 0; + } + +-#if BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // Using kqueue on Mac so that we can wait on non-child processes. + // We can't use kqueues on child processes because we need to reap + // our own children using wait. +@@ -200,7 +205,7 @@ bool WaitForExitWithTimeoutImpl(base::ProcessHandle ha + const bool exited = (parent_pid < 0); + + if (!exited && parent_pid != our_pid) { +-#if BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // On Mac we can wait on non child processes. + return WaitForSingleNonChildProcess(handle, timeout); + #else +@@ -356,7 +361,55 @@ void Process::Exited(int exit_code) const {} + + int Process::GetPriority() const { + DCHECK(IsValid()); ++// avoid pledge(2) violation ++#if defined(OS_BSD) ++ return 0; ++#else + return getpriority(PRIO_PROCESS, process_); ++#endif ++} ++ ++Time Process::CreationTime() const { ++// avoid ps pledge in the network process ++#if !defined(OS_BSD) ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), ++ sizeof(struct kinfo_proc), 0 }; ++ struct kinfo_proc *info = nullptr; ++ size_t info_size; ++#endif ++ Time ct = Time(); ++ ++#if !defined(OS_BSD) ++ if (sysctl(mib, base::size(mib), NULL, &info_size, NULL, 0) < 0) ++ goto out; ++ ++ mib[5] = (info_size / sizeof(struct kinfo_proc)); ++ if ((info = reinterpret_cast<kinfo_proc*>(malloc(info_size))) == NULL) ++ goto out; ++ ++ if (sysctl(mib, base::size(mib), info, &info_size, NULL, 0) < 0) ++ goto out; ++ ++ ct = Time::FromTimeT(info->p_ustart_sec); ++ ++out: ++ if (info) ++ free(info); ++#endif ++ return ct; ++} ++ ++bool Process::IsProcessBackgrounded() const { ++ return false; ++} ++ ++bool Process::SetProcessBackgrounded(bool value) { ++ return false; ++} ++ ++// static ++bool Process::CanBackgroundProcesses() { ++ return false; + } + + } // namespace base diff --git a/devel/electron18/files/patch-base_process_process__unittest.cc b/devel/electron18/files/patch-base_process_process__unittest.cc new file mode 100644 index 000000000000..9b98204ed1ca --- /dev/null +++ b/devel/electron18/files/patch-base_process_process__unittest.cc @@ -0,0 +1,11 @@ +--- base/process/process_unittest.cc.orig 2022-05-19 05:17:34 UTC ++++ base/process/process_unittest.cc +@@ -140,7 +140,7 @@ TEST_F(ProcessTest, CreationTimeOtherProcess) { + // was spawned and a time recorded after it was spawned. However, since the + // base::Time and process creation clocks don't match, tolerate some error. + constexpr base::TimeDelta kTolerance = +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, process creation time is relative to boot time which has a + // 1-second resolution. Tolerate 1 second for the imprecise boot time and + // 100 ms for the imprecise clock. diff --git a/devel/electron18/files/patch-base_profiler_stack__sampling__profiler__test__util.cc b/devel/electron18/files/patch-base_profiler_stack__sampling__profiler__test__util.cc new file mode 100644 index 000000000000..519472da8dae --- /dev/null +++ b/devel/electron18/files/patch-base_profiler_stack__sampling__profiler__test__util.cc @@ -0,0 +1,11 @@ +--- base/profiler/stack_sampling_profiler_test_util.cc.orig 2022-05-19 05:17:34 UTC ++++ base/profiler/stack_sampling_profiler_test_util.cc +@@ -32,7 +32,7 @@ + // Fortunately, it provides _alloca, which functions identically. + #include <malloc.h> + #define alloca _alloca +-#else ++#elif !BUILDFLAG(IS_BSD) + #include <alloca.h> + #endif + diff --git a/devel/electron18/files/patch-base_profiler_stack__sampling__profiler__unittest.cc b/devel/electron18/files/patch-base_profiler_stack__sampling__profiler__unittest.cc new file mode 100644 index 000000000000..7d94e16f6dd3 --- /dev/null +++ b/devel/electron18/files/patch-base_profiler_stack__sampling__profiler__unittest.cc @@ -0,0 +1,11 @@ +--- base/profiler/stack_sampling_profiler_unittest.cc.orig 2022-05-19 05:17:34 UTC ++++ base/profiler/stack_sampling_profiler_unittest.cc +@@ -41,7 +41,7 @@ + #include <intrin.h> + #include <malloc.h> + #include <windows.h> +-#else ++#elif !BUILDFLAG(IS_BSD) + #include <alloca.h> + #endif + diff --git a/devel/electron18/files/patch-base_rand__util.h b/devel/electron18/files/patch-base_rand__util.h new file mode 100644 index 000000000000..ab0b23f0481b --- /dev/null +++ b/devel/electron18/files/patch-base_rand__util.h @@ -0,0 +1,11 @@ +--- base/rand_util.h.orig 2022-05-19 03:45:15 UTC ++++ base/rand_util.h +@@ -81,7 +81,7 @@ void RandomShuffle(Itr first, Itr last) { + std::shuffle(first, last, RandomBitGenerator()); + } + +-#if BUILDFLAG(IS_POSIX) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_OPENBSD) + BASE_EXPORT int GetUrandomFD(); + #endif + diff --git a/devel/electron18/files/patch-base_rand__util__posix.cc b/devel/electron18/files/patch-base_rand__util__posix.cc new file mode 100644 index 000000000000..a06e8357c1d6 --- /dev/null +++ b/devel/electron18/files/patch-base_rand__util__posix.cc @@ -0,0 +1,52 @@ +--- base/rand_util_posix.cc.orig 2022-05-19 05:17:34 UTC ++++ base/rand_util_posix.cc +@@ -17,7 +17,7 @@ + #include "base/posix/eintr_wrapper.h" + #include "build/build_config.h" + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_NACL) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD) + #include "third_party/lss/linux_syscall_support.h" + #elif BUILDFLAG(IS_MAC) + // TODO(crbug.com/995996): Waiting for this header to appear in the iOS SDK. +@@ -34,6 +34,7 @@ static constexpr int kOpenFlags = O_RDONLY; + static constexpr int kOpenFlags = O_RDONLY | O_CLOEXEC; + #endif + ++#if !BUILDFLAG(IS_OPENBSD) + // We keep the file descriptor for /dev/urandom around so we don't need to + // reopen it (which is expensive), and since we may not even be able to reopen + // it if we are later put in a sandbox. This class wraps the file descriptor so +@@ -51,6 +52,7 @@ class URandomFd { + private: + const int fd_; + }; ++#endif + + } // namespace + +@@ -62,6 +64,7 @@ namespace base { + // (https://chromium-review.googlesource.com/c/chromium/src/+/1545096) and land + // it or some form of it. + void RandBytes(void* output, size_t output_length) { ++#if !BUILDFLAG(IS_OPENBSD) + #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_NACL) + // We have to call `getrandom` via Linux Syscall Support, rather than through + // the libc wrapper, because we might not have an up-to-date libc (e.g. on +@@ -93,11 +96,16 @@ void RandBytes(void* output, size_t output_length) { + const bool success = + ReadFromFD(urandom_fd, static_cast<char*>(output), output_length); + CHECK(success); ++#else ++ arc4random_buf(static_cast<char*>(output), output_length); ++#endif + } + ++#if !BUILDFLAG(IS_OPENBSD) + int GetUrandomFD() { + static NoDestructor<URandomFd> urandom_fd; + return urandom_fd->fd(); + } ++#endif + + } // namespace base diff --git a/devel/electron18/files/patch-base_strings_safe__sprintf__unittest.cc b/devel/electron18/files/patch-base_strings_safe__sprintf__unittest.cc new file mode 100644 index 000000000000..12ba2a05b3ba --- /dev/null +++ b/devel/electron18/files/patch-base_strings_safe__sprintf__unittest.cc @@ -0,0 +1,18 @@ +--- base/strings/safe_sprintf_unittest.cc.orig 2022-05-19 03:45:15 UTC ++++ base/strings/safe_sprintf_unittest.cc +@@ -731,6 +731,7 @@ TEST(SafeSPrintfTest, EmbeddedNul) { + #endif + } + ++#if !BUILDFLAG(IS_BSD) + TEST(SafeSPrintfTest, EmitNULL) { + char buf[40]; + #if defined(__GNUC__) +@@ -747,6 +748,7 @@ TEST(SafeSPrintfTest, EmitNULL) { + #pragma GCC diagnostic pop + #endif + } ++#endif + + TEST(SafeSPrintfTest, PointerSize) { + // The internal data representation is a 64bit value, independent of the diff --git a/devel/electron18/files/patch-base_synchronization_lock__impl.h b/devel/electron18/files/patch-base_synchronization_lock__impl.h new file mode 100644 index 000000000000..ea97f1ebb168 --- /dev/null +++ b/devel/electron18/files/patch-base_synchronization_lock__impl.h @@ -0,0 +1,23 @@ +--- base/synchronization/lock_impl.h.orig 2022-05-19 05:17:34 UTC ++++ base/synchronization/lock_impl.h +@@ -107,6 +107,10 @@ void LockImpl::Unlock() { + } + + #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_FREEBSD) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wthread-safety-analysis" ++#endif + + BASE_EXPORT std::string SystemErrorCodeToString(int error_code); + +@@ -121,6 +125,9 @@ void LockImpl::Unlock() { + int rv = pthread_mutex_unlock(&native_handle_); + DCHECK_EQ(rv, 0) << ". " << strerror(rv); + } ++#if BUILDFLAG(IS_FREEBSD) ++#pragma GCC diagnostic pop ++#endif + #endif + + // This is an implementation used for AutoLock templated on the lock type. diff --git a/devel/electron18/files/patch-base_syslog__logging.cc b/devel/electron18/files/patch-base_syslog__logging.cc new file mode 100644 index 000000000000..835d690f60c1 --- /dev/null +++ b/devel/electron18/files/patch-base_syslog__logging.cc @@ -0,0 +1,20 @@ +--- base/syslog_logging.cc.orig 2022-05-19 03:45:15 UTC ++++ base/syslog_logging.cc +@@ -15,7 +15,7 @@ + #include "base/strings/string_util.h" + #include "base/win/scoped_handle.h" + #include "base/win/win_util.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // <syslog.h> defines LOG_INFO, LOG_WARNING macros that could conflict with + // base::LOG_INFO, base::LOG_WARNING. + #include <syslog.h> +@@ -147,7 +147,7 @@ EventLogMessage::~EventLogMessage() { + + if (user_sid != nullptr) + ::LocalFree(user_sid); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kEventSource[] = "chrome"; + openlog(kEventSource, LOG_NOWAIT | LOG_PID, LOG_USER); + // We can't use the defined names for the logging severity from syslog.h diff --git a/devel/electron18/files/patch-base_system_sys__info.cc b/devel/electron18/files/patch-base_system_sys__info.cc new file mode 100644 index 000000000000..d1bc06f5f15f --- /dev/null +++ b/devel/electron18/files/patch-base_system_sys__info.cc @@ -0,0 +1,11 @@ +--- base/system/sys_info.cc.orig 2022-05-19 05:17:34 UTC ++++ base/system/sys_info.cc +@@ -100,7 +100,7 @@ void SysInfo::GetHardwareInfo(base::OnceCallback<void( + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_APPLE) + base::ThreadPool::PostTaskAndReplyWithResult( + FROM_HERE, {}, base::BindOnce(&GetHardwareInfoSync), std::move(callback)); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::ThreadPool::PostTaskAndReplyWithResult( + FROM_HERE, {base::MayBlock()}, base::BindOnce(&GetHardwareInfoSync), + std::move(callback)); diff --git a/devel/electron18/files/patch-base_system_sys__info.h b/devel/electron18/files/patch-base_system_sys__info.h new file mode 100644 index 000000000000..dbaa67f50fad --- /dev/null +++ b/devel/electron18/files/patch-base_system_sys__info.h @@ -0,0 +1,20 @@ +--- base/system/sys_info.h.orig 2022-05-19 05:17:34 UTC ++++ base/system/sys_info.h +@@ -212,6 +212,8 @@ class BASE_EXPORT SysInfo { + // On Desktop this returns true when memory <= 2GB. + static bool IsLowEndDevice(); + ++ static uint64_t MaxSharedMemorySize(); ++ + private: + FRIEND_TEST_ALL_PREFIXES(SysInfoTest, AmountOfAvailablePhysicalMemory); + FRIEND_TEST_ALL_PREFIXES(debug::SystemMetricsTest, ParseMeminfo); +@@ -222,7 +224,7 @@ class BASE_EXPORT SysInfo { + static HardwareInfo GetHardwareInfoSync(); + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + static int64_t AmountOfAvailablePhysicalMemory( + const SystemMemoryInfoKB& meminfo); + #endif diff --git a/devel/electron18/files/patch-base_system_sys__info__freebsd.cc b/devel/electron18/files/patch-base_system_sys__info__freebsd.cc new file mode 100644 index 000000000000..3a32dc451dc6 --- /dev/null +++ b/devel/electron18/files/patch-base_system_sys__info__freebsd.cc @@ -0,0 +1,113 @@ +--- base/system/sys_info_freebsd.cc.orig 2022-05-19 03:45:15 UTC ++++ base/system/sys_info_freebsd.cc +@@ -9,30 +9,106 @@ + #include <sys/sysctl.h> + + #include "base/notreached.h" ++#include "base/process/process_metrics.h" ++#include "base/strings/string_util.h" + + namespace base { + ++int SysInfo::NumberOfProcessors() { ++ int mib[] = {CTL_HW, HW_NCPU}; ++ int ncpu; ++ size_t size = sizeof(ncpu); ++ if (sysctl(mib, base::size(mib), &ncpu, &size, NULL, 0) < 0) { ++ NOTREACHED(); ++ return 1; ++ } ++ return ncpu; ++} ++ + int64_t SysInfo::AmountOfPhysicalMemoryImpl() { +- int pages, page_size; ++ int pages, page_size, r = 0; + size_t size = sizeof(pages); +- sysctlbyname("vm.stats.vm.v_page_count", &pages, &size, NULL, 0); +- sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0); +- if (pages == -1 || page_size == -1) { ++ ++ if (r == 0) ++ r = sysctlbyname("vm.stats.vm.v_page_count", &pages, &size, NULL, 0); ++ if (r == 0) ++ r = sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0); ++ ++ if (r == -1) { + NOTREACHED(); + return 0; + } ++ + return static_cast<int64_t>(pages) * page_size; + } + ++int64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() { ++ int page_size, r = 0; ++ unsigned int pgfree, pginact, pgcache; ++ size_t size = sizeof(page_size); ++ size_t szpg = sizeof(pgfree); ++ ++ if (r == 0) ++ r = sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0); ++ if (r == 0) ++ r = sysctlbyname("vm.stats.vm.v_free_count", &pgfree, &szpg, NULL, 0); ++ if (r == 0) ++ r = sysctlbyname("vm.stats.vm.v_inactive_count", &pginact, &szpg, NULL, 0); ++ if (r == 0) ++ r = sysctlbyname("vm.stats.vm.v_cache_count", &pgcache, &szpg, NULL, 0); ++ ++ if (r == -1) { ++ NOTREACHED(); ++ return 0; ++ } ++ ++ return static_cast<int64_t>((pgfree + pginact + pgcache) * page_size); ++} ++ + // static ++int64_t SysInfo::AmountOfAvailablePhysicalMemory(const SystemMemoryInfoKB& info) { ++ int64_t res_kb = info.available != 0 ++ ? info.available - info.active_file ++ : info.free + info.reclaimable + info.inactive_file; ++ return res_kb * 1024; ++} ++ ++// static ++std::string SysInfo::CPUModelName() { ++ int mib[] = { CTL_HW, HW_MODEL }; ++ char name[256]; ++ size_t size = base::size(name); ++ ++ if (sysctl(mib, base::size(mib), &name, &size, NULL, 0) == 0) { ++ return name; ++ } ++ ++ return std::string(); ++} ++ ++// static + uint64_t SysInfo::MaxSharedMemorySize() { + size_t limit; + size_t size = sizeof(limit); ++ + if (sysctlbyname("kern.ipc.shmmax", &limit, &size, NULL, 0) < 0) { + NOTREACHED(); + return 0; + } ++ + return static_cast<uint64_t>(limit); ++} ++ ++SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() { ++ HardwareInfo info; ++ ++ info.manufacturer = "FreeBSD"; ++ info.model = HardwareModelName(); ++ ++ DCHECK(IsStringUTF8(info.manufacturer)); ++ DCHECK(IsStringUTF8(info.model)); ++ ++ return info; + } + + } // namespace base diff --git a/devel/electron18/files/patch-base_system_sys__info__openbsd.cc b/devel/electron18/files/patch-base_system_sys__info__openbsd.cc new file mode 100644 index 000000000000..0de08501ca32 --- /dev/null +++ b/devel/electron18/files/patch-base_system_sys__info__openbsd.cc @@ -0,0 +1,102 @@ +--- base/system/sys_info_openbsd.cc.orig 2022-05-19 05:17:34 UTC ++++ base/system/sys_info_openbsd.cc +@@ -12,6 +12,7 @@ + + #include "base/cxx17_backports.h" + #include "base/notreached.h" ++#include "base/strings/string_util.h" + + namespace { + +@@ -29,9 +30,15 @@ int64_t AmountOfMemory(int pages_name) { + + namespace base { + ++// pledge(2) ++int64_t aofpmem = 0; ++int64_t aofapmem = 0; ++int64_t shmmax = 0; ++char cpumodel[256]; ++ + // static + int SysInfo::NumberOfProcessors() { +- int mib[] = {CTL_HW, HW_NCPU}; ++ int mib[] = {CTL_HW, HW_NCPUONLINE}; + int ncpu; + size_t size = sizeof(ncpu); + if (sysctl(mib, base::size(mib), &ncpu, &size, NULL, 0) < 0) { +@@ -43,38 +50,62 @@ int SysInfo::NumberOfProcessors() { + + // static + int64_t SysInfo::AmountOfPhysicalMemoryImpl() { +- return AmountOfMemory(_SC_PHYS_PAGES); ++ // pledge(2) ++ if (!aofpmem) ++ aofpmem = AmountOfMemory(_SC_PHYS_PAGES); ++ return aofpmem; + } + + // static + int64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() { + // We should add inactive file-backed memory also but there is no such + // information from OpenBSD unfortunately. +- return AmountOfMemory(_SC_AVPHYS_PAGES); ++ // pledge(2) ++ if (!aofapmem) ++ aofapmem = AmountOfMemory(_SC_AVPHYS_PAGES); ++ return aofapmem; + } + + // static ++std::string SysInfo::CPUModelName() { ++ int mib[] = {CTL_HW, HW_MODEL}; ++ size_t len = base::size(cpumodel); ++ ++ if (cpumodel[0] == '\0') { ++ if (sysctl(mib, base::size(mib), cpumodel, &len, NULL, 0) < 0) ++ return std::string(); ++ } ++ ++ return std::string(cpumodel, len - 1); ++} ++ ++// static + uint64_t SysInfo::MaxSharedMemorySize() { + int mib[] = {CTL_KERN, KERN_SHMINFO, KERN_SHMINFO_SHMMAX}; + size_t limit; + size_t size = sizeof(limit); ++ // pledge(2) ++ if (shmmax) ++ goto out; + if (sysctl(mib, base::size(mib), &limit, &size, NULL, 0) < 0) { + NOTREACHED(); + return 0; + } +- return static_cast<uint64_t>(limit); ++ shmmax = static_cast<uint64_t>(limit); ++out: ++ return shmmax; + } + + // static +-std::string SysInfo::CPUModelName() { +- int mib[] = {CTL_HW, HW_MODEL}; +- char name[256]; +- size_t len = base::size(name); +- if (sysctl(mib, base::size(mib), name, &len, NULL, 0) < 0) { +- NOTREACHED(); +- return std::string(); +- } +- return name; ++SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() { ++ HardwareInfo info; ++ // Set the manufacturer to "OpenBSD" and the model to ++ // an empty string. ++ info.manufacturer = "OpenBSD"; ++ info.model = HardwareModelName(); ++ DCHECK(IsStringUTF8(info.manufacturer)); ++ DCHECK(IsStringUTF8(info.model)); ++ return info; + } + + } // namespace base diff --git a/devel/electron18/files/patch-base_system_sys__info__posix.cc b/devel/electron18/files/patch-base_system_sys__info__posix.cc new file mode 100644 index 000000000000..f432ba53ef73 --- /dev/null +++ b/devel/electron18/files/patch-base_system_sys__info__posix.cc @@ -0,0 +1,43 @@ +--- base/system/sys_info_posix.cc.orig 2022-05-19 05:17:34 UTC ++++ base/system/sys_info_posix.cc +@@ -37,7 +37,7 @@ + + namespace { + +-#if !BUILDFLAG(IS_OPENBSD) ++#if !BUILDFLAG(IS_BSD) + int NumberOfProcessors() { + // sysconf returns the number of "logical" (not "physical") processors on both + // Mac and Linux. So we get the number of max available "logical" processors. +@@ -77,7 +77,7 @@ int NumberOfProcessors() { + + base::LazyInstance<base::internal::LazySysInfoValue<int, NumberOfProcessors>>:: + Leaky g_lazy_number_of_processors = LAZY_INSTANCE_INITIALIZER; +-#endif // !BUILDFLAG(IS_OPENBSD) ++#endif // !BUILDFLAG(IS_BSD) + + int64_t AmountOfVirtualMemory() { + struct rlimit limit; +@@ -143,11 +143,11 @@ bool GetDiskSpaceInfo(const base::FilePath& path, + + namespace base { + +-#if !BUILDFLAG(IS_OPENBSD) ++#if !BUILDFLAG(IS_BSD) + int SysInfo::NumberOfProcessors() { + return g_lazy_number_of_processors.Get().value(); + } +-#endif // !BUILDFLAG(IS_OPENBSD) ++#endif // !BUILDFLAG(IS_BSD) + + // static + int64_t SysInfo::AmountOfVirtualMemory() { +@@ -239,6 +239,8 @@ std::string SysInfo::OperatingSystemArchitecture() { + arch = "x86"; + } else if (arch == "amd64") { + arch = "x86_64"; ++ } else if (arch == "arm64") { ++ arch = "aarch64"; + } else if (std::string(info.sysname) == "AIX") { + arch = "ppc64"; + } diff --git a/devel/electron18/files/patch-base_system_sys__info__unittest.cc b/devel/electron18/files/patch-base_system_sys__info__unittest.cc new file mode 100644 index 000000000000..c4b3c8ab2554 --- /dev/null +++ b/devel/electron18/files/patch-base_system_sys__info__unittest.cc @@ -0,0 +1,19 @@ +--- base/system/sys_info_unittest.cc.orig 2022-05-19 05:17:34 UTC ++++ base/system/sys_info_unittest.cc +@@ -234,12 +234,15 @@ TEST_F(SysInfoTest, GetHardwareInfo) { + EXPECT_TRUE(IsStringUTF8(hardware_info->model)); + bool empty_result_expected = + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + false; + #else + true; + #endif + EXPECT_EQ(hardware_info->manufacturer.empty(), empty_result_expected); ++#if BUILDFLAG(IS_BSD) ++ empty_result_expected = true; ++#endif + EXPECT_EQ(hardware_info->model.empty(), empty_result_expected); + } + diff --git a/devel/electron18/files/patch-base_task_thread__pool_environment__config__unittest.cc b/devel/electron18/files/patch-base_task_thread__pool_environment__config__unittest.cc new file mode 100644 index 000000000000..5bc518a80245 --- /dev/null +++ b/devel/electron18/files/patch-base_task_thread__pool_environment__config__unittest.cc @@ -0,0 +1,11 @@ +--- base/task/thread_pool/environment_config_unittest.cc.orig 2022-05-19 03:45:15 UTC ++++ base/task/thread_pool/environment_config_unittest.cc +@@ -15,7 +15,7 @@ TEST(ThreadPoolEnvironmentConfig, CanUseBackgroundPrio + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) + EXPECT_TRUE(CanUseBackgroundPriorityForWorkerThread()); + #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_NACL) || BUILDFLAG(IS_BSD) + EXPECT_FALSE(CanUseBackgroundPriorityForWorkerThread()); + #else + #error Platform doesn't match any block diff --git a/devel/electron18/files/patch-base_test_launcher_test__launcher.cc b/devel/electron18/files/patch-base_test_launcher_test__launcher.cc new file mode 100644 index 000000000000..40b7f7a101bc --- /dev/null +++ b/devel/electron18/files/patch-base_test_launcher_test__launcher.cc @@ -0,0 +1,10 @@ +--- base/test/launcher/test_launcher.cc.orig 2022-05-19 03:45:15 UTC ++++ base/test/launcher/test_launcher.cc +@@ -63,6 +63,7 @@ + #include "testing/gtest/include/gtest/gtest.h" + + #if BUILDFLAG(IS_POSIX) ++#include <signal.h> + #include <fcntl.h> + + #include "base/files/file_descriptor_watcher_posix.h" diff --git a/devel/electron18/files/patch-base_test_test__file__util__linux.cc b/devel/electron18/files/patch-base_test_test__file__util__linux.cc new file mode 100644 index 000000000000..283fbf69cd33 --- /dev/null +++ b/devel/electron18/files/patch-base_test_test__file__util__linux.cc @@ -0,0 +1,13 @@ +--- base/test/test_file_util_linux.cc.orig 2022-05-19 03:45:15 UTC ++++ base/test/test_file_util_linux.cc +@@ -54,8 +54,10 @@ bool EvictFileFromSystemCache(const FilePath& file) { + return false; + if (fdatasync(fd.get()) != 0) + return false; ++#if !defined(OS_BSD) + if (posix_fadvise(fd.get(), 0, 0, POSIX_FADV_DONTNEED) != 0) + return false; ++#endif + return true; + } + diff --git a/devel/electron18/files/patch-base_test_test__file__util__posix.cc b/devel/electron18/files/patch-base_test_test__file__util__posix.cc new file mode 100644 index 000000000000..a28748325cf0 --- /dev/null +++ b/devel/electron18/files/patch-base_test_test__file__util__posix.cc @@ -0,0 +1,11 @@ +--- base/test/test_file_util_posix.cc.orig 2022-05-19 03:45:15 UTC ++++ base/test/test_file_util_posix.cc +@@ -88,7 +88,7 @@ void SyncPageCacheToDisk() { + } + + #if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_APPLE) && \ +- !BUILDFLAG(IS_ANDROID) ++ !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD) + bool EvictFileFromSystemCache(const FilePath& file) { + // There doesn't seem to be a POSIX way to cool the disk cache. + NOTIMPLEMENTED(); diff --git a/devel/electron18/files/patch-base_third__party_libevent_BUILD.gn b/devel/electron18/files/patch-base_third__party_libevent_BUILD.gn new file mode 100644 index 000000000000..54a799039c66 --- /dev/null +++ b/devel/electron18/files/patch-base_third__party_libevent_BUILD.gn @@ -0,0 +1,24 @@ +--- base/third_party/libevent/BUILD.gn.orig 2021-01-07 00:36:18 UTC ++++ base/third_party/libevent/BUILD.gn +@@ -43,13 +43,20 @@ static_library("libevent") { + "mac/event-config.h", + ] + include_dirs = [ "mac" ] +- } else if (is_linux || is_chromeos) { ++ } else if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "epoll.c", + "linux/config.h", + "linux/event-config.h", + ] + include_dirs = [ "linux" ] ++ } else if (is_bsd) { ++ sources += [ ++ "kqueue.c", ++ "freebsd/config.h", ++ "freebsd/event-config.h", ++ ] ++ include_dirs = [ "freebsd" ] + } else if (is_android) { + sources += [ + "android/config.h", diff --git a/devel/electron18/files/patch-base_third__party_libevent_event-config.h b/devel/electron18/files/patch-base_third__party_libevent_event-config.h new file mode 100644 index 000000000000..4bff75e5c811 --- /dev/null +++ b/devel/electron18/files/patch-base_third__party_libevent_event-config.h @@ -0,0 +1,11 @@ +--- base/third_party/libevent/event-config.h.orig 2022-05-11 07:00:27 UTC ++++ base/third_party/libevent/event-config.h +@@ -13,6 +13,8 @@ + #include "base/third_party/libevent/linux/event-config.h" + #elif defined(__FreeBSD__) + #include "base/third_party/libevent/freebsd/event-config.h" ++#elif defined(__OpenBSD__) ++#include "base/third_party/libevent/openbsd/event-config.h" + #elif defined(__sun) + #include "base/third_party/libevent/solaris/event-config.h" + #elif defined(_AIX) diff --git a/devel/electron18/files/patch-base_third__party_libevent_openbsd_config.h b/devel/electron18/files/patch-base_third__party_libevent_openbsd_config.h new file mode 100644 index 000000000000..cb325373930e --- /dev/null +++ b/devel/electron18/files/patch-base_third__party_libevent_openbsd_config.h @@ -0,0 +1,279 @@ +--- base/third_party/libevent/openbsd/config.h.orig 2022-05-13 07:20:04 UTC ++++ base/third_party/libevent/openbsd/config.h +@@ -0,0 +1,276 @@ ++/* config.h. Generated from config.h.in by configure. */ ++/* config.h.in. Generated from configure.in by autoheader. */ ++ ++/* Define if clock_gettime is available in libc */ ++#define DNS_USE_CPU_CLOCK_FOR_ID 1 ++ ++/* Define is no secure id variant is available */ ++/* #undef DNS_USE_GETTIMEOFDAY_FOR_ID */ ++ ++/* Define to 1 if you have the `clock_gettime' function. */ ++#define HAVE_CLOCK_GETTIME 1 ++ ++/* Define if /dev/poll is available */ ++/* #undef HAVE_DEVPOLL */ ++ ++/* Define to 1 if you have the <dlfcn.h> header file. */ ++#define HAVE_DLFCN_H 1 ++ ++/* Define if your system supports the epoll system calls */ ++/* #undef HAVE_EPOLL */ ++ ++/* Define to 1 if you have the `epoll_ctl' function. */ ++/* #undef HAVE_EPOLL_CTL */ ++ ++/* Define if your system supports event ports */ ++/* #undef HAVE_EVENT_PORTS */ ++ ++/* Define to 1 if you have the `fcntl' function. */ ++#define HAVE_FCNTL 1 ++ ++/* Define to 1 if you have the <fcntl.h> header file. */ ++#define HAVE_FCNTL_H 1 ++ ++/* Define to 1 if the system has the type `fd_mask'. */ ++#define HAVE_FD_MASK 1 ++ ++/* Define to 1 if you have the `getaddrinfo' function. */ ++#define HAVE_GETADDRINFO 1 ++ ++/* Define to 1 if you have the `getegid' function. */ ++#define HAVE_GETEGID 1 ++ ++/* Define to 1 if you have the `geteuid' function. */ ++#define HAVE_GETEUID 1 ++ ++/* Define to 1 if you have the `getnameinfo' function. */ ++#define HAVE_GETNAMEINFO 1 ++ ++/* Define to 1 if you have the `gettimeofday' function. */ ++#define HAVE_GETTIMEOFDAY 1 ++ ++/* Define to 1 if you have the `inet_ntop' function. */ ++#define HAVE_INET_NTOP 1 ++ ++/* Define to 1 if you have the <inttypes.h> header file. */ ++#define HAVE_INTTYPES_H 1 ++ ++/* Define to 1 if you have the `issetugid' function. */ ++#define HAVE_ISSETUGID 1 ++ ++/* Define to 1 if you have the `kqueue' function. */ ++#define HAVE_KQUEUE 1 ++ ++/* Define to 1 if you have the `nsl' library (-lnsl). */ ++/* #undef HAVE_LIBNSL */ ++ ++/* Define to 1 if you have the `resolv' library (-lresolv). */ ++/* #undef HAVE_LIBRESOLV */ ++ ++/* Define to 1 if you have the `rt' library (-lrt). */ ++/* #undef HAVE_LIBRT */ ++ ++/* Define to 1 if you have the `socket' library (-lsocket). */ ++/* #undef HAVE_LIBSOCKET */ ++ ++/* Define to 1 if you have the <memory.h> header file. */ ++#define HAVE_MEMORY_H 1 ++ ++/* Define to 1 if you have the <netinet/in6.h> header file. */ ++/* #undef HAVE_NETINET_IN6_H */ ++ ++/* Define to 1 if you have the `poll' function. */ ++#define HAVE_POLL 1 ++ ++/* Define to 1 if you have the <poll.h> header file. */ ++#define HAVE_POLL_H 1 ++ ++/* Define to 1 if you have the `port_create' function. */ ++/* #undef HAVE_PORT_CREATE */ ++ ++/* Define to 1 if you have the <port.h> header file. */ ++/* #undef HAVE_PORT_H */ ++ ++/* Define to 1 if you have the `select' function. */ ++#define HAVE_SELECT 1 ++ ++/* Define if F_SETFD is defined in <fcntl.h> */ ++#define HAVE_SETFD 1 ++ ++/* Define to 1 if you have the `sigaction' function. */ ++#define HAVE_SIGACTION 1 ++ ++/* Define to 1 if you have the `signal' function. */ ++#define HAVE_SIGNAL 1 ++ ++/* Define to 1 if you have the <signal.h> header file. */ ++#define HAVE_SIGNAL_H 1 ++ ++/* Define to 1 if you have the <stdarg.h> header file. */ ++#define HAVE_STDARG_H 1 ++ ++/* Define to 1 if you have the <stdint.h> header file. */ ++#define HAVE_STDINT_H 1 ++ ++/* Define to 1 if you have the <stdlib.h> header file. */ ++#define HAVE_STDLIB_H 1 ++ ++/* Define to 1 if you have the <strings.h> header file. */ ++#define HAVE_STRINGS_H 1 ++ ++/* Define to 1 if you have the <string.h> header file. */ ++#define HAVE_STRING_H 1 ++ ++/* Define to 1 if you have the `strlcpy' function. */ ++#define HAVE_STRLCPY 1 ++ ++/* Define to 1 if you have the `strsep' function. */ ++#define HAVE_STRSEP 1 ++ ++/* Define to 1 if you have the `strtok_r' function. */ ++#define HAVE_STRTOK_R 1 ++ ++/* Define to 1 if you have the `strtoll' function. */ ++#define HAVE_STRTOLL 1 ++ ++/* Define to 1 if the system has the type `struct in6_addr'. */ ++#define HAVE_STRUCT_IN6_ADDR 1 ++ ++/* Define to 1 if you have the <sys/devpoll.h> header file. */ ++/* #undef HAVE_SYS_DEVPOLL_H */ ++ ++/* Define to 1 if you have the <sys/epoll.h> header file. */ ++/* #undef HAVE_SYS_EPOLL_H */ ++ ++/* Define to 1 if you have the <sys/event.h> header file. */ ++#define HAVE_SYS_EVENT_H 1 ++ ++/* Define to 1 if you have the <sys/ioctl.h> header file. */ ++#define HAVE_SYS_IOCTL_H 1 ++ ++/* Define to 1 if you have the <sys/param.h> header file. */ ++#define HAVE_SYS_PARAM_H 1 ++ ++/* Define to 1 if you have the <sys/queue.h> header file. */ ++#define HAVE_SYS_QUEUE_H 1 ++ ++/* Define to 1 if you have the <sys/select.h> header file. */ ++#define HAVE_SYS_SELECT_H 1 ++ ++/* Define to 1 if you have the <sys/socket.h> header file. */ ++#define HAVE_SYS_SOCKET_H 1 ++ ++/* Define to 1 if you have the <sys/stat.h> header file. */ ++#define HAVE_SYS_STAT_H 1 ++ ++/* Define to 1 if you have the <sys/time.h> header file. */ ++#define HAVE_SYS_TIME_H 1 ++ ++/* Define to 1 if you have the <sys/types.h> header file. */ ++#define HAVE_SYS_TYPES_H 1 ++ ++/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */ ++#define HAVE_TAILQFOREACH 1 ++ ++/* Define if timeradd is defined in <sys/time.h> */ ++#define HAVE_TIMERADD 1 ++ ++/* Define if timerclear is defined in <sys/time.h> */ ++#define HAVE_TIMERCLEAR 1 ++ ++/* Define if timercmp is defined in <sys/time.h> */ ++#define HAVE_TIMERCMP 1 ++ ++/* Define if timerisset is defined in <sys/time.h> */ ++#define HAVE_TIMERISSET 1 ++ ++/* Define to 1 if the system has the type `uint16_t'. */ ++#define HAVE_UINT16_T 1 ++ ++/* Define to 1 if the system has the type `uint32_t'. */ ++#define HAVE_UINT32_T 1 ++ ++/* Define to 1 if the system has the type `uint64_t'. */ ++#define HAVE_UINT64_T 1 ++ ++/* Define to 1 if the system has the type `uint8_t'. */ ++#define HAVE_UINT8_T 1 ++ ++/* Define to 1 if you have the <unistd.h> header file. */ ++#define HAVE_UNISTD_H 1 ++ ++/* Define to 1 if you have the `vasprintf' function. */ ++#define HAVE_VASPRINTF 1 ++ ++/* Define if kqueue works correctly with pipes */ ++#define HAVE_WORKING_KQUEUE 1 ++ ++/* Define to the sub-directory in which libtool stores uninstalled libraries. ++ */ ++#define LT_OBJDIR ".libs/" ++ ++/* Numeric representation of the version */ ++#define NUMERIC_VERSION 0x01040f00 ++ ++/* Name of package */ ++#define PACKAGE "libevent" ++ ++/* Define to the address where bug reports for this package should be sent. */ ++#define PACKAGE_BUGREPORT "" ++ ++/* Define to the full name of this package. */ ++#define PACKAGE_NAME "" ++ ++/* Define to the full name and version of this package. */ ++#define PACKAGE_STRING "" ++ ++/* Define to the one symbol short name of this package. */ ++#define PACKAGE_TARNAME "" ++ ++/* Define to the home page for this package. */ ++#define PACKAGE_URL "" ++ ++/* Define to the version of this package. */ ++#define PACKAGE_VERSION "" ++ ++/* The size of `int', as computed by sizeof. */ ++#define SIZEOF_INT 4 ++ ++/* The size of `long', as computed by sizeof. */ ++#define SIZEOF_LONG 8 ++ ++/* The size of `long long', as computed by sizeof. */ ++#define SIZEOF_LONG_LONG 8 ++ ++/* The size of `short', as computed by sizeof. */ ++#define SIZEOF_SHORT 2 ++ ++/* Define to 1 if you have the ANSI C header files. */ ++#define STDC_HEADERS 1 ++ ++/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ ++#define TIME_WITH_SYS_TIME 1 ++ ++/* Version number of package */ ++#define VERSION "1.4.15" ++ ++/* Define to appropriate substitue if compiler doesnt have __func__ */ ++/* #undef __func__ */ ++ ++/* Define to empty if `const' does not conform to ANSI C. */ ++/* #undef const */ ++ ++/* Define to `__inline__' or `__inline' if that's what the C compiler ++ calls it, or to nothing if 'inline' is not supported under any name. */ ++#ifndef __cplusplus ++/* #undef inline */ ++#endif ++ ++/* Define to `int' if <sys/types.h> does not define. */ ++/* #undef pid_t */ ++ ++/* Define to `unsigned int' if <sys/types.h> does not define. */ ++/* #undef size_t */ ++ ++/* Define to unsigned int if you dont have it */ ++/* #undef socklen_t */ diff --git a/devel/electron18/files/patch-base_third__party_libevent_openbsd_event-config.h b/devel/electron18/files/patch-base_third__party_libevent_openbsd_event-config.h new file mode 100644 index 000000000000..39e595ac1ef3 --- /dev/null +++ b/devel/electron18/files/patch-base_third__party_libevent_openbsd_event-config.h @@ -0,0 +1,287 @@ +--- base/third_party/libevent/openbsd/event-config.h.orig 2022-05-13 07:20:04 UTC ++++ base/third_party/libevent/openbsd/event-config.h +@@ -0,0 +1,284 @@ ++/* event-config.h ++ * Generated by autoconf; post-processed by libevent. ++ * Do not edit this file. ++ * Do not rely on macros in this file existing in later versions. ++ */ ++#ifndef _EVENT_CONFIG_H_ ++#define _EVENT_CONFIG_H_ ++/* config.h. Generated from config.h.in by configure. */ ++/* config.h.in. Generated from configure.in by autoheader. */ ++ ++/* Define if clock_gettime is available in libc */ ++#define _EVENT_DNS_USE_CPU_CLOCK_FOR_ID 1 ++ ++/* Define is no secure id variant is available */ ++/* #undef _EVENT_DNS_USE_GETTIMEOFDAY_FOR_ID */ ++ ++/* Define to 1 if you have the `clock_gettime' function. */ ++#define _EVENT_HAVE_CLOCK_GETTIME 1 ++ ++/* Define if /dev/poll is available */ ++/* #undef _EVENT_HAVE_DEVPOLL */ ++ ++/* Define to 1 if you have the <dlfcn.h> header file. */ ++#define _EVENT_HAVE_DLFCN_H 1 ++ ++/* Define if your system supports the epoll system calls */ ++/* #undef _EVENT_HAVE_EPOLL */ ++ ++/* Define to 1 if you have the `epoll_ctl' function. */ ++/* #undef _EVENT_HAVE_EPOLL_CTL */ ++ ++/* Define if your system supports event ports */ ++/* #undef _EVENT_HAVE_EVENT_PORTS */ ++ ++/* Define to 1 if you have the `fcntl' function. */ ++#define _EVENT_HAVE_FCNTL 1 ++ ++/* Define to 1 if you have the <fcntl.h> header file. */ ++#define _EVENT_HAVE_FCNTL_H 1 ++ ++/* Define to 1 if the system has the type `fd_mask'. */ ++#define _EVENT_HAVE_FD_MASK 1 ++ ++/* Define to 1 if you have the `getaddrinfo' function. */ ++#define _EVENT_HAVE_GETADDRINFO 1 ++ ++/* Define to 1 if you have the `getegid' function. */ ++#define _EVENT_HAVE_GETEGID 1 ++ ++/* Define to 1 if you have the `geteuid' function. */ ++#define _EVENT_HAVE_GETEUID 1 ++ ++/* Define to 1 if you have the `getnameinfo' function. */ ++#define _EVENT_HAVE_GETNAMEINFO 1 ++ ++/* Define to 1 if you have the `gettimeofday' function. */ ++#define _EVENT_HAVE_GETTIMEOFDAY 1 ++ ++/* Define to 1 if you have the `inet_ntop' function. */ ++#define _EVENT_HAVE_INET_NTOP 1 ++ ++/* Define to 1 if you have the <inttypes.h> header file. */ ++#define _EVENT_HAVE_INTTYPES_H 1 ++ ++/* Define to 1 if you have the `issetugid' function. */ ++#define _EVENT_HAVE_ISSETUGID 1 ++ ++/* Define to 1 if you have the `kqueue' function. */ ++#define _EVENT_HAVE_KQUEUE 1 ++ ++/* Define to 1 if you have the `nsl' library (-lnsl). */ ++/* #undef _EVENT_HAVE_LIBNSL */ ++ ++/* Define to 1 if you have the `resolv' library (-lresolv). */ ++/* #undef _EVENT_HAVE_LIBRESOLV */ ++ ++/* Define to 1 if you have the `rt' library (-lrt). */ ++/* #undef _EVENT_HAVE_LIBRT */ ++ ++/* Define to 1 if you have the `socket' library (-lsocket). */ ++/* #undef _EVENT_HAVE_LIBSOCKET */ ++ ++/* Define to 1 if you have the <memory.h> header file. */ ++#define _EVENT_HAVE_MEMORY_H 1 ++ ++/* Define to 1 if you have the <netinet/in6.h> header file. */ ++/* #undef _EVENT_HAVE_NETINET_IN6_H */ ++ ++/* Define to 1 if you have the `poll' function. */ ++#define _EVENT_HAVE_POLL 1 ++ ++/* Define to 1 if you have the <poll.h> header file. */ ++#define _EVENT_HAVE_POLL_H 1 ++ ++/* Define to 1 if you have the `port_create' function. */ ++/* #undef _EVENT_HAVE_PORT_CREATE */ ++ ++/* Define to 1 if you have the <port.h> header file. */ ++/* #undef _EVENT_HAVE_PORT_H */ ++ ++/* Define to 1 if you have the `select' function. */ ++#define _EVENT_HAVE_SELECT 1 ++ ++/* Define if F_SETFD is defined in <fcntl.h> */ ++#define _EVENT_HAVE_SETFD 1 ++ ++/* Define to 1 if you have the `sigaction' function. */ ++#define _EVENT_HAVE_SIGACTION 1 ++ ++/* Define to 1 if you have the `signal' function. */ ++#define _EVENT_HAVE_SIGNAL 1 ++ ++/* Define to 1 if you have the <signal.h> header file. */ ++#define _EVENT_HAVE_SIGNAL_H 1 ++ ++/* Define to 1 if you have the <stdarg.h> header file. */ ++#define _EVENT_HAVE_STDARG_H 1 ++ ++/* Define to 1 if you have the <stdint.h> header file. */ ++#define _EVENT_HAVE_STDINT_H 1 ++ ++/* Define to 1 if you have the <stdlib.h> header file. */ ++#define _EVENT_HAVE_STDLIB_H 1 ++ ++/* Define to 1 if you have the <strings.h> header file. */ ++#define _EVENT_HAVE_STRINGS_H 1 ++ ++/* Define to 1 if you have the <string.h> header file. */ ++#define _EVENT_HAVE_STRING_H 1 ++ ++/* Define to 1 if you have the `strlcpy' function. */ ++#define _EVENT_HAVE_STRLCPY 1 ++ ++/* Define to 1 if you have the `strsep' function. */ ++#define _EVENT_HAVE_STRSEP 1 ++ ++/* Define to 1 if you have the `strtok_r' function. */ ++#define _EVENT_HAVE_STRTOK_R 1 ++ ++/* Define to 1 if you have the `strtoll' function. */ ++#define _EVENT_HAVE_STRTOLL 1 ++ ++/* Define to 1 if the system has the type `struct in6_addr'. */ ++#define _EVENT_HAVE_STRUCT_IN6_ADDR 1 ++ ++/* Define to 1 if you have the <sys/devpoll.h> header file. */ ++/* #undef _EVENT_HAVE_SYS_DEVPOLL_H */ ++ ++/* Define to 1 if you have the <sys/epoll.h> header file. */ ++/* #undef _EVENT_HAVE_SYS_EPOLL_H */ ++ ++/* Define to 1 if you have the <sys/event.h> header file. */ ++#define _EVENT_HAVE_SYS_EVENT_H 1 ++ ++/* Define to 1 if you have the <sys/ioctl.h> header file. */ ++#define _EVENT_HAVE_SYS_IOCTL_H 1 ++ ++/* Define to 1 if you have the <sys/param.h> header file. */ ++#define _EVENT_HAVE_SYS_PARAM_H 1 ++ ++/* Define to 1 if you have the <sys/queue.h> header file. */ ++#define _EVENT_HAVE_SYS_QUEUE_H 1 ++ ++/* Define to 1 if you have the <sys/select.h> header file. */ ++#define _EVENT_HAVE_SYS_SELECT_H 1 ++ ++/* Define to 1 if you have the <sys/socket.h> header file. */ ++#define _EVENT_HAVE_SYS_SOCKET_H 1 ++ ++/* Define to 1 if you have the <sys/stat.h> header file. */ ++#define _EVENT_HAVE_SYS_STAT_H 1 ++ ++/* Define to 1 if you have the <sys/time.h> header file. */ ++#define _EVENT_HAVE_SYS_TIME_H 1 ++ ++/* Define to 1 if you have the <sys/types.h> header file. */ ++#define _EVENT_HAVE_SYS_TYPES_H 1 ++ ++/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */ ++#define _EVENT_HAVE_TAILQFOREACH 1 ++ ++/* Define if timeradd is defined in <sys/time.h> */ ++#define _EVENT_HAVE_TIMERADD 1 ++ ++/* Define if timerclear is defined in <sys/time.h> */ ++#define _EVENT_HAVE_TIMERCLEAR 1 ++ ++/* Define if timercmp is defined in <sys/time.h> */ ++#define _EVENT_HAVE_TIMERCMP 1 ++ ++/* Define if timerisset is defined in <sys/time.h> */ ++#define _EVENT_HAVE_TIMERISSET 1 ++ ++/* Define to 1 if the system has the type `uint16_t'. */ ++#define _EVENT_HAVE_UINT16_T 1 ++ ++/* Define to 1 if the system has the type `uint32_t'. */ ++#define _EVENT_HAVE_UINT32_T 1 ++ ++/* Define to 1 if the system has the type `uint64_t'. */ ++#define _EVENT_HAVE_UINT64_T 1 ++ ++/* Define to 1 if the system has the type `uint8_t'. */ ++#define _EVENT_HAVE_UINT8_T 1 ++ ++/* Define to 1 if you have the <unistd.h> header file. */ ++#define _EVENT_HAVE_UNISTD_H 1 ++ ++/* Define to 1 if you have the `vasprintf' function. */ ++#define _EVENT_HAVE_VASPRINTF 1 ++ ++/* Define if kqueue works correctly with pipes */ ++#define _EVENT_HAVE_WORKING_KQUEUE 1 ++ ++/* Define to the sub-directory in which libtool stores uninstalled libraries. ++ */ ++#define _EVENT_LT_OBJDIR ".libs/" ++ ++/* Numeric representation of the version */ ++#define _EVENT_NUMERIC_VERSION 0x01040f00 ++ ++/* Name of package */ ++#define _EVENT_PACKAGE "libevent" ++ ++/* Define to the address where bug reports for this package should be sent. */ ++#define _EVENT_PACKAGE_BUGREPORT "" ++ ++/* Define to the full name of this package. */ ++#define _EVENT_PACKAGE_NAME "" ++ ++/* Define to the full name and version of this package. */ ++#define _EVENT_PACKAGE_STRING "" ++ ++/* Define to the one symbol short name of this package. */ ++#define _EVENT_PACKAGE_TARNAME "" ++ ++/* Define to the home page for this package. */ ++#define _EVENT_PACKAGE_URL "" ++ ++/* Define to the version of this package. */ ++#define _EVENT_PACKAGE_VERSION "" ++ ++/* The size of `int', as computed by sizeof. */ ++#define _EVENT_SIZEOF_INT 4 ++ ++/* The size of `long', as computed by sizeof. */ ++#define _EVENT_SIZEOF_LONG 8 ++ ++/* The size of `long long', as computed by sizeof. */ ++#define _EVENT_SIZEOF_LONG_LONG 8 ++ ++/* The size of `short', as computed by sizeof. */ ++#define _EVENT_SIZEOF_SHORT 2 ++ ++/* Define to 1 if you have the ANSI C header files. */ ++#define _EVENT_STDC_HEADERS 1 ++ ++/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ ++#define _EVENT_TIME_WITH_SYS_TIME 1 ++ ++/* Version number of package */ ++#define _EVENT_VERSION "1.4.15" ++ ++/* Define to appropriate substitue if compiler doesnt have __func__ */ ++/* #undef _EVENT___func__ */ ++ ++/* Define to empty if `const' does not conform to ANSI C. */ ++/* #undef _EVENT_const */ ++ ++/* Define to `__inline__' or `__inline' if that's what the C compiler ++ calls it, or to nothing if 'inline' is not supported under any name. */ ++#ifndef _EVENT___cplusplus ++/* #undef _EVENT_inline */ ++#endif ++ ++/* Define to `int' if <sys/types.h> does not define. */ ++/* #undef _EVENT_pid_t */ ++ ++/* Define to `unsigned int' if <sys/types.h> does not define. */ ++/* #undef _EVENT_size_t */ ++ ++/* Define to unsigned int if you dont have it */ ++/* #undef _EVENT_socklen_t */ ++#endif diff --git a/devel/electron18/files/patch-base_third__party_symbolize_symbolize.cc b/devel/electron18/files/patch-base_third__party_symbolize_symbolize.cc new file mode 100644 index 000000000000..8b997ff53cb8 --- /dev/null +++ b/devel/electron18/files/patch-base_third__party_symbolize_symbolize.cc @@ -0,0 +1,11 @@ +--- base/third_party/symbolize/symbolize.cc.orig 2022-05-19 03:45:15 UTC ++++ base/third_party/symbolize/symbolize.cc +@@ -114,7 +114,7 @@ _END_GOOGLE_NAMESPACE_ + #if defined(HAVE_DLFCN_H) + #include <dlfcn.h> + #endif +-#if BUILDFLAG(IS_OPENBSD) ++#if defined(__OpenBSD__) + #include <sys/exec_elf.h> + #else + #include <elf.h> diff --git a/devel/electron18/files/patch-base_threading_platform__thread.h b/devel/electron18/files/patch-base_threading_platform__thread.h new file mode 100644 index 000000000000..8bc0277df4f5 --- /dev/null +++ b/devel/electron18/files/patch-base_threading_platform__thread.h @@ -0,0 +1,11 @@ +--- base/threading/platform_thread.h.orig 2022-05-19 05:17:34 UTC ++++ base/threading/platform_thread.h +@@ -205,7 +205,7 @@ class BASE_EXPORT PlatformThread { + // Returns a realtime period provided by `delegate`. + static TimeDelta GetRealtimePeriod(Delegate* delegate); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Toggles a specific thread's priority at runtime. This can be used to + // change the priority of a thread in a different process and will fail + // if the calling process does not have proper permissions. The diff --git a/devel/electron18/files/patch-base_threading_platform__thread__linux.cc b/devel/electron18/files/patch-base_threading_platform__thread__linux.cc new file mode 100644 index 000000000000..d61688b47745 --- /dev/null +++ b/devel/electron18/files/patch-base_threading_platform__thread__linux.cc @@ -0,0 +1,77 @@ +--- base/threading/platform_thread_linux.cc.orig 2022-05-19 05:17:34 UTC ++++ base/threading/platform_thread_linux.cc +@@ -29,7 +29,9 @@ + + #if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_AIX) + #include <pthread.h> ++#if !BUILDFLAG(IS_BSD) + #include <sys/prctl.h> ++#endif + #include <sys/resource.h> + #include <sys/time.h> + #include <sys/types.h> +@@ -132,7 +134,7 @@ int sched_setattr(pid_t pid, + #endif // !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_AIX) + #endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) + +-#if !BUILDFLAG(IS_NACL) ++#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD) + const FilePath::CharType kCgroupDirectory[] = + FILE_PATH_LITERAL("/sys/fs/cgroup"); + +@@ -286,7 +288,7 @@ void SetThreadCgroupsForThreadPriority(PlatformThreadI + namespace internal { + + namespace { +-#if !BUILDFLAG(IS_NACL) ++#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD) + const struct sched_param kRealTimePrio = {8}; + #endif + } // namespace +@@ -299,7 +301,7 @@ const ThreadPriorityToNiceValuePair kThreadPriorityToN + }; + + bool CanSetThreadPriorityToRealtimeAudio() { +-#if !BUILDFLAG(IS_NACL) ++#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD) + // A non-zero soft-limit on RLIMIT_RTPRIO is required to be allowed to invoke + // pthread_setschedparam in SetCurrentThreadPriorityForPlatform(). + struct rlimit rlim; +@@ -310,7 +312,7 @@ bool CanSetThreadPriorityToRealtimeAudio() { + } + + bool SetCurrentThreadPriorityForPlatform(ThreadPriority priority) { +-#if !BUILDFLAG(IS_NACL) ++#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD) + // For legacy schedtune interface + SetThreadCgroupsForThreadPriority(PlatformThread::CurrentId(), priority); + +@@ -328,7 +330,7 @@ bool SetCurrentThreadPriorityForPlatform(ThreadPriorit + } + + absl::optional<ThreadPriority> GetCurrentThreadPriorityForPlatform() { +-#if !BUILDFLAG(IS_NACL) ++#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD) + int maybe_sched_rr = 0; + struct sched_param maybe_realtime_prio = {0}; + if (pthread_getschedparam(pthread_self(), &maybe_sched_rr, +@@ -347,7 +349,7 @@ absl::optional<ThreadPriority> GetCurrentThreadPriorit + void PlatformThread::SetName(const std::string& name) { + ThreadIdNameManager::GetInstance()->SetName(name); + +-#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_AIX) ++#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_AIX) && !BUILDFLAG(IS_BSD) + // On linux we can get the thread names to show up in the debugger by setting + // the process name for the LWP. We don't want to do this for the main + // thread because that would rename the process, causing tools like killall +@@ -377,8 +379,10 @@ void PlatformThread::SetThreadPriority(ProcessId proce + // priority. + CHECK_NE(thread_id, process_id); + ++#if !BUILDFLAG(IS_BSD) + // For legacy schedtune interface + SetThreadCgroupsForThreadPriority(thread_id, priority); ++#endif + + #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) + // For upstream uclamp interface. We try both legacy (schedtune, as done diff --git a/devel/electron18/files/patch-base_threading_platform__thread__posix.cc b/devel/electron18/files/patch-base_threading_platform__thread__posix.cc new file mode 100644 index 000000000000..54b3183cfd2d --- /dev/null +++ b/devel/electron18/files/patch-base_threading_platform__thread__posix.cc @@ -0,0 +1,21 @@ +--- base/threading/platform_thread_posix.cc.orig 2022-05-20 04:30:53 UTC ++++ base/threading/platform_thread_posix.cc +@@ -76,7 +76,7 @@ void* ThreadFunc(void* params) { + if (!thread_params->joinable) + base::DisallowSingleton(); + +-#if !BUILDFLAG(IS_NACL) ++#if !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_BSD) + #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && defined(PA_ALLOW_PCSCAN) + internal::PCScan::NotifyThreadCreated(internal::GetStackPointer()); + #endif +@@ -363,6 +363,9 @@ bool PlatformThread::CanChangeThreadPriority(ThreadPri + // static + void PlatformThread::SetCurrentThreadPriorityImpl(ThreadPriority priority) { + #if BUILDFLAG(IS_NACL) ++ NOTIMPLEMENTED(); ++// avoid pledge(2) violation ++#elif BUILDFLAG(IS_BSD) + NOTIMPLEMENTED(); + #else + if (internal::SetCurrentThreadPriorityForPlatform(priority)) diff --git a/devel/electron18/files/patch-base_threading_platform__thread__unittest.cc b/devel/electron18/files/patch-base_threading_platform__thread__unittest.cc new file mode 100644 index 000000000000..01f64b2f17e0 --- /dev/null +++ b/devel/electron18/files/patch-base_threading_platform__thread__unittest.cc @@ -0,0 +1,47 @@ +--- base/threading/platform_thread_unittest.cc.orig 2022-05-19 05:17:34 UTC ++++ base/threading/platform_thread_unittest.cc +@@ -30,7 +30,7 @@ + #include "base/time/time.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <pthread.h> + #include <sys/syscall.h> + #include <sys/types.h> +@@ -319,7 +319,7 @@ TEST(PlatformThreadTest, + // and hardcodes what we know. Please inform scheduler-dev@chromium.org if this + // proprerty changes for a given platform. + TEST(PlatformThreadTest, CanChangeThreadPriority) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Ubuntu, RLIMIT_NICE and RLIMIT_RTPRIO are 0 by default, so we won't be + // able to increase priority to any level. + constexpr bool kCanIncreasePriority = false; +@@ -417,7 +417,7 @@ TEST(PlatformThreadTest, SetHugeThreadName) { + TEST(PlatformThreadTest, GetDefaultThreadStackSize) { + size_t stack_size = PlatformThread::GetDefaultThreadStackSize(); + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || \ +- ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + !defined(THREAD_SANITIZER)) || \ + (BUILDFLAG(IS_ANDROID) && !defined(ADDRESS_SANITIZER)) + EXPECT_EQ(0u, stack_size); +@@ -578,12 +578,16 @@ INSTANTIATE_TEST_SUITE_P( + + #endif // BUILDFLAG(IS_APPLE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + namespace { + + bool IsTidCacheCorrect() { ++#if BUILDFLAG(IS_BSD) ++ return PlatformThread::CurrentId() == reinterpret_cast<int64_t>(pthread_self()); ++#else + return PlatformThread::CurrentId() == syscall(__NR_gettid); ++#endif + } + + void* CheckTidCacheCorrectWrapper(void*) { diff --git a/devel/electron18/files/patch-base_time_time.cc b/devel/electron18/files/patch-base_time_time.cc new file mode 100644 index 000000000000..d430a9f89743 --- /dev/null +++ b/devel/electron18/files/patch-base_time_time.cc @@ -0,0 +1,11 @@ +--- base/time/time.cc.orig 2022-05-19 05:17:34 UTC ++++ base/time/time.cc +@@ -6,7 +6,7 @@ + + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // time.h is a widely included header and its size impacts build time. + // Try not to raise this limit unless necessary. See + // https://chromium.googlesource.com/chromium/src/+/HEAD/docs/wmax_tokens.md diff --git a/devel/electron18/files/patch-base_trace__event_malloc__dump__provider.cc b/devel/electron18/files/patch-base_trace__event_malloc__dump__provider.cc new file mode 100644 index 000000000000..4ddb620b3068 --- /dev/null +++ b/devel/electron18/files/patch-base_trace__event_malloc__dump__provider.cc @@ -0,0 +1,21 @@ +--- base/trace_event/malloc_dump_provider.cc.orig 2022-05-19 05:17:34 UTC ++++ base/trace_event/malloc_dump_provider.cc +@@ -23,6 +23,8 @@ + + #if BUILDFLAG(IS_APPLE) + #include <malloc/malloc.h> ++#elif defined(OS_BSD) ++#include <stdlib.h> + #else + #include <malloc.h> + #endif +@@ -220,6 +222,9 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDump + &allocated_objects_count); + #elif BUILDFLAG(IS_FUCHSIA) + // TODO(fuchsia): Port, see https://crbug.com/706592. ++#elif defined(OS_BSD) ++ total_virtual_size = 0; ++ allocated_objects_size = 0; + #else + #if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if __GLIBC_PREREQ(2, 33) diff --git a/devel/electron18/files/patch-base_trace__event_memory__dump__manager.cc b/devel/electron18/files/patch-base_trace__event_memory__dump__manager.cc new file mode 100644 index 000000000000..1efe778a98d5 --- /dev/null +++ b/devel/electron18/files/patch-base_trace__event_memory__dump__manager.cc @@ -0,0 +1,11 @@ +--- base/trace_event/memory_dump_manager.cc.orig 2022-05-19 05:17:34 UTC ++++ base/trace_event/memory_dump_manager.cc +@@ -82,7 +82,7 @@ const char* const MemoryDumpManager::kSystemAllocatorP + #if defined(MALLOC_MEMORY_TRACING_SUPPORTED) + MallocDumpProvider::kAllocatedObjects; + #else +- nullptr; ++ ""; + #endif + + // static diff --git a/devel/electron18/files/patch-base_trace__event_process__memory__dump.cc b/devel/electron18/files/patch-base_trace__event_process__memory__dump.cc new file mode 100644 index 000000000000..41b5bc46151c --- /dev/null +++ b/devel/electron18/files/patch-base_trace__event_process__memory__dump.cc @@ -0,0 +1,20 @@ +--- base/trace_event/process_memory_dump.cc.orig 2022-05-19 05:17:34 UTC ++++ base/trace_event/process_memory_dump.cc +@@ -105,7 +105,7 @@ absl::optional<size_t> ProcessMemoryDump::CountResiden + #if BUILDFLAG(IS_WIN) + std::unique_ptr<PSAPI_WORKING_SET_EX_INFORMATION[]> vec( + new PSAPI_WORKING_SET_EX_INFORMATION[max_vec_size]); +-#elif BUILDFLAG(IS_APPLE) ++#elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + std::unique_ptr<char[]> vec(new char[max_vec_size]); + #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) + std::unique_ptr<unsigned char[]> vec(new unsigned char[max_vec_size]); +@@ -130,7 +130,7 @@ absl::optional<size_t> ProcessMemoryDump::CountResiden + + for (size_t i = 0; i < page_count; i++) + resident_page_count += vec[i].VirtualAttributes.Valid; +-#elif BUILDFLAG(IS_FUCHSIA) ++#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // TODO(fuchsia): Port, see https://crbug.com/706592. + #elif BUILDFLAG(IS_APPLE) + // mincore in MAC does not fail with EAGAIN. diff --git a/devel/electron18/files/patch-base_tracing_trace__time.cc b/devel/electron18/files/patch-base_tracing_trace__time.cc new file mode 100644 index 000000000000..c1828596eb6b --- /dev/null +++ b/devel/electron18/files/patch-base_tracing_trace__time.cc @@ -0,0 +1,28 @@ +--- base/tracing/trace_time.cc.orig 2022-05-19 03:45:15 UTC ++++ base/tracing/trace_time.cc +@@ -8,13 +8,17 @@ + #include "build/build_config.h" + #include "third_party/perfetto/include/perfetto/base/time.h" + ++#if BUILDFLAG(IS_FREEBSD) ++#define CLOCK_BOOTTIME CLOCK_UPTIME ++#endif ++ + namespace base { + namespace tracing { + + int64_t TraceBootTicksNow() { + // On Windows and Mac, TRACE_TIME_TICKS_NOW() behaves like boottime already. + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + struct timespec ts; + int res = clock_gettime(CLOCK_BOOTTIME, &ts); + if (res != -1) +@@ -24,4 +28,4 @@ int64_t TraceBootTicksNow() { + } + + } // namespace tracing +-} // namespace base +\ No newline at end of file ++} // namespace base diff --git a/devel/electron18/files/patch-base_tracing_trace__time.h b/devel/electron18/files/patch-base_tracing_trace__time.h new file mode 100644 index 000000000000..9fa633d5e882 --- /dev/null +++ b/devel/electron18/files/patch-base_tracing_trace__time.h @@ -0,0 +1,11 @@ +--- base/tracing/trace_time.h.orig 2022-05-19 03:45:15 UTC ++++ base/tracing/trace_time.h +@@ -12,7 +12,7 @@ namespace base { + namespace tracing { + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Linux, Android, and Fuchsia all use CLOCK_MONOTONIC. See crbug.com/166153 + // about efforts to unify base::TimeTicks across all platforms. + constexpr perfetto::protos::pbzero::BuiltinClock kTraceClockId = diff --git a/devel/electron18/files/patch-build_config_BUILD.gn b/devel/electron18/files/patch-build_config_BUILD.gn new file mode 100644 index 000000000000..1b155cd1a0f9 --- /dev/null +++ b/devel/electron18/files/patch-build_config_BUILD.gn @@ -0,0 +1,22 @@ +--- build/config/BUILD.gn.orig 2022-05-19 03:45:15 UTC ++++ build/config/BUILD.gn +@@ -218,13 +218,17 @@ config("default_libs") { + "CoreText.framework", + "Foundation.framework", + ] +- } else if (is_linux || is_chromeos) { ++ } else if ((is_linux && !is_bsd) || is_chromeos) { + libs = [ + "dl", + "pthread", + "rt", + ] +- } ++ } else if (is_bsd) { ++ libs = [ ++ "pthread", ++ ] ++ } + } + + group("common_deps") { diff --git a/devel/electron18/files/patch-build_config_BUILDCONFIG.gn b/devel/electron18/files/patch-build_config_BUILDCONFIG.gn new file mode 100644 index 000000000000..63ac5fa67d60 --- /dev/null +++ b/devel/electron18/files/patch-build_config_BUILDCONFIG.gn @@ -0,0 +1,45 @@ +--- build/config/BUILDCONFIG.gn.orig 2022-05-13 07:19:54 UTC ++++ build/config/BUILDCONFIG.gn +@@ -139,7 +139,8 @@ declare_args() { + is_official_build = false + + # Set to true when compiling with the Clang compiler. +- is_clang = current_os != "linux" || ++ is_clang = current_os != "linux" || current_os == "openbsd" || ++ current_os == "freebsd" || + (current_cpu != "s390x" && current_cpu != "s390" && + current_cpu != "ppc64" && current_cpu != "ppc" && + current_cpu != "mips" && current_cpu != "mips64" && +@@ -221,6 +222,10 @@ if (host_toolchain == "") { + host_toolchain = "//build/toolchain/aix:$host_cpu" + } else if (host_os == "zos") { + host_toolchain = "//build/toolchain/zos:$host_cpu" ++ } else if (host_os == "openbsd") { ++ host_toolchain = "//build/toolchain/openbsd:clang_$host_cpu" ++ } else if (host_os == "freebsd") { ++ host_toolchain = "//build/toolchain/freebsd:clang_$host_cpu" + } else { + assert(false, "Unsupported host_os: $host_os") + } +@@ -265,6 +270,8 @@ if (target_os == "android") { + _default_toolchain = "//build/toolchain/aix:$target_cpu" + } else if (target_os == "zos") { + _default_toolchain = "//build/toolchain/zos:$target_cpu" ++} else if (target_os == "openbsd" || target_os == "freebsd") { ++ _default_toolchain = host_toolchain + } else { + assert(false, "Unsupported target_os: $target_os") + } +@@ -299,7 +306,11 @@ is_android = current_os == "android" + is_chromeos = current_os == "chromeos" + is_fuchsia = current_os == "fuchsia" + is_ios = current_os == "ios" +-is_linux = current_os == "linux" ++is_linux = current_os == "linux" || current_os == "openbsd" || ++ current_os == "freebsd" ++is_openbsd = current_os == "openbsd" ++is_freebsd = current_os == "freebsd" ++is_bsd = current_os == "openbsd" || current_os == "freebsd" + is_mac = current_os == "mac" + is_nacl = current_os == "nacl" + is_win = current_os == "win" || current_os == "winuwp" diff --git a/devel/electron18/files/patch-build_config_compiler_BUILD.gn b/devel/electron18/files/patch-build_config_compiler_BUILD.gn new file mode 100644 index 000000000000..e19141bd19a2 --- /dev/null +++ b/devel/electron18/files/patch-build_config_compiler_BUILD.gn @@ -0,0 +1,113 @@ +--- build/config/compiler/BUILD.gn.orig 2022-05-19 05:17:34 UTC ++++ build/config/compiler/BUILD.gn +@@ -236,13 +236,16 @@ config("default_include_dirs") { + # Compiler instrumentation can introduce dependencies in DSOs to symbols in + # the executable they are loaded into, so they are unresolved at link-time. + config("no_unresolved_symbols") { +- if (!using_sanitizer && ++ if (!using_sanitizer && !is_bsd && + (is_linux || is_chromeos || is_android || is_fuchsia)) { + ldflags = [ + "-Wl,-z,defs", + "-Wl,--as-needed", + ] + } ++ if (current_cpu == "x86" && is_openbsd) { ++ ldflags = [ "-Wl,-z,notext" ] ++ } + } + + # compiler --------------------------------------------------------------------- +@@ -452,6 +455,10 @@ config("compiler") { + } + } + ++ if (is_openbsd) { ++ ldflags += [ "-Wl,-z,wxneeded" ] ++ } ++ + # Linux-specific compiler flags setup. + # ------------------------------------ + if ((is_posix || is_fuchsia) && !is_apple && use_lld) { +@@ -534,7 +541,7 @@ config("compiler") { + ldflags += [ "-Wl,-z,keep-text-section-prefix" ] + } + +- if (is_clang && !is_nacl && current_os != "zos") { ++ if (is_clang && !is_nacl && current_os != "zos" && !is_bsd) { + cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] + + # TODO(hans): Remove this once Clang generates better optimized debug info +@@ -908,7 +915,7 @@ config("compiler_cpu_abi") { + ] + } + } else if (current_cpu == "arm") { +- if (is_clang && !is_android && !is_nacl) { ++ if (is_clang && !is_android && !is_nacl && !is_bsd) { + cflags += [ "--target=arm-linux-gnueabihf" ] + ldflags += [ "--target=arm-linux-gnueabihf" ] + } +@@ -922,7 +929,7 @@ config("compiler_cpu_abi") { + cflags += [ "-mtune=$arm_tune" ] + } + } else if (current_cpu == "arm64") { +- if (is_clang && !is_android && !is_nacl && !is_fuchsia) { ++ if (is_clang && !is_android && !is_nacl && !is_fuchsia && !is_bsd) { + cflags += [ "--target=aarch64-linux-gnu" ] + ldflags += [ "--target=aarch64-linux-gnu" ] + } +@@ -1243,7 +1250,7 @@ config("compiler_deterministic") { + # different build directory like "out/feature_a" and "out/feature_b" if + # we build same files with same compile flag. + # Other paths are already given in relative, no need to normalize them. +- if (is_nacl) { ++ if (is_nacl || is_bsd) { + # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here. + cflags += [ + "-Xclang", +@@ -1533,7 +1540,7 @@ config("default_warnings") { + "-Wno-ignored-pragma-optimize", + ] + +- if (is_chromeos || default_toolchain == "//build/toolchain/cros:target") { ++ if (is_chromeos || default_toolchain == "//build/toolchain/cros:target" || is_bsd) { + # TODO(https://crbug.com/1016945): Re-enable once ChromeOS toolchain is up to date + cflags += [ "-Wno-builtin-assume-aligned-alignment" ] + } +@@ -1725,7 +1732,7 @@ config("no_chromium_code") { + # third-party libraries. + "-Wno-c++11-narrowing", + ] +- if (!is_nacl) { ++ if (!is_nacl && !is_freebsd) { + cflags += [ + # Disabled for similar reasons as -Wunused-variable. + "-Wno-unused-but-set-variable", +@@ -2239,7 +2246,7 @@ config("afdo_optimize_size") { + # There are some targeted places that AFDO regresses, so we provide a separate + # config to allow AFDO to be disabled per-target. + config("afdo") { +- if (is_clang) { ++ if (is_clang && !is_bsd) { + cflags = [] + if (clang_emit_debug_info_for_profiling) { + # Add the following flags to generate debug info for profiling. +@@ -2255,7 +2262,7 @@ config("afdo") { + cflags += [ "-fprofile-sample-use=${rebased_clang_sample_profile}" ] + inputs = [ _clang_sample_profile ] + } +- } else if (auto_profile_path != "" && is_a_target_toolchain) { ++ } else if (auto_profile_path != "" && is_a_target_toolchain && !is_bsd) { + cflags = [ "-fauto-profile=${auto_profile_path}" ] + inputs = [ auto_profile_path ] + } +@@ -2398,7 +2405,8 @@ config("symbols") { + } + } + +- if (is_clang && (!is_nacl || is_nacl_saigo) && current_os != "zos") { ++ if (is_clang && (!is_nacl || is_nacl_saigo) && current_os != "zos" && ++ !is_bsd) { + if (is_apple) { + # TODO(https://crbug.com/1050118): Investigate missing debug info on mac. + # Make sure we don't use constructor homing on mac. diff --git a/devel/electron18/files/patch-build_config_compiler_pgo_pgo.gni b/devel/electron18/files/patch-build_config_compiler_pgo_pgo.gni new file mode 100644 index 000000000000..02c05d65664d --- /dev/null +++ b/devel/electron18/files/patch-build_config_compiler_pgo_pgo.gni @@ -0,0 +1,11 @@ +--- build/config/compiler/pgo/pgo.gni.orig 2021-04-14 01:08:36 UTC ++++ build/config/compiler/pgo/pgo.gni +@@ -16,7 +16,7 @@ declare_args() { + # TODO(crbug.com/1052397): Remove chromeos_is_browser_only once + # target_os switch for lacros-chrome is completed. + (is_win || is_mac || +- (is_linux && !chromeos_is_browser_only && !is_chromecast))) { ++ (is_linux && !chromeos_is_browser_only && !is_chromecast && !is_bsd))) { + chrome_pgo_phase = 2 + } + diff --git a/devel/electron18/files/patch-build_config_linux_BUILD.gn b/devel/electron18/files/patch-build_config_linux_BUILD.gn new file mode 100644 index 000000000000..cbec501bf212 --- /dev/null +++ b/devel/electron18/files/patch-build_config_linux_BUILD.gn @@ -0,0 +1,11 @@ +--- build/config/linux/BUILD.gn.orig 2022-05-11 07:16:46 UTC ++++ build/config/linux/BUILD.gn +@@ -42,7 +42,7 @@ config("runtime_library") { + + if ((!(is_chromeos_ash || is_chromeos_lacros) || + default_toolchain != "//build/toolchain/cros:target") && +- (!use_custom_libcxx || current_cpu == "mipsel")) { ++ (!use_custom_libcxx || current_cpu == "mipsel") && !is_bsd) { + libs = [ "atomic" ] + } + } diff --git a/devel/electron18/files/patch-build_config_linux_pkg-config.py b/devel/electron18/files/patch-build_config_linux_pkg-config.py new file mode 100644 index 000000000000..c193109a7476 --- /dev/null +++ b/devel/electron18/files/patch-build_config_linux_pkg-config.py @@ -0,0 +1,11 @@ +--- build/config/linux/pkg-config.py.orig 2022-05-11 07:00:27 UTC ++++ build/config/linux/pkg-config.py +@@ -109,7 +109,7 @@ def main(): + # If this is run on non-Linux platforms, just return nothing and indicate + # success. This allows us to "kind of emulate" a Linux build from other + # platforms. +- if "linux" not in sys.platform: ++ if not sys.platform.startswith(tuple(['linux', 'openbsd', 'freebsd'])): + print("[[],[],[],[],[]]") + return 0 + diff --git a/devel/electron18/files/patch-build_config_ozone.gni b/devel/electron18/files/patch-build_config_ozone.gni new file mode 100644 index 000000000000..5d7b49430108 --- /dev/null +++ b/devel/electron18/files/patch-build_config_ozone.gni @@ -0,0 +1,19 @@ +--- build/config/ozone.gni.orig 2022-05-19 05:17:34 UTC ++++ build/config/ozone.gni +@@ -91,7 +91,15 @@ declare_args() { + } else if (is_chromeos_lacros) { + ozone_platform = "wayland" + ozone_platform_wayland = true +- } else if (is_linux) { ++ } else if (is_linux && !is_bsd) { ++ ozone_platform = "x11" ++ ozone_platform_wayland = true ++ ozone_platform_x11 = true ++ } else if (is_openbsd) { ++ ozone_platform = "x11" ++ ozone_platform_wayland = false ++ ozone_platform_x11 = true ++ } else if (is_freebsd) { + ozone_platform = "x11" + ozone_platform_wayland = true + ozone_platform_x11 = true diff --git a/devel/electron18/files/patch-build_config_rust.gni b/devel/electron18/files/patch-build_config_rust.gni new file mode 100644 index 000000000000..332bf8c33aea --- /dev/null +++ b/devel/electron18/files/patch-build_config_rust.gni @@ -0,0 +1,11 @@ +--- build/config/rust.gni.orig 2022-05-19 05:17:34 UTC ++++ build/config/rust.gni +@@ -116,7 +116,7 @@ if (enable_rust) { + rust_sysroot = "//third_party/rust-toolchain" + use_unverified_rust_toolchain = false + } else { +- if (host_os != "linux") { ++ if (host_os != "linux" && host_os != "openbsd" && host_os != "freebsd") { + assert(false, + "Attempt to use Android Rust toolchain on an unsupported platform") + } diff --git a/devel/electron18/files/patch-build_config_v8__target__cpu.gni b/devel/electron18/files/patch-build_config_v8__target__cpu.gni new file mode 100644 index 000000000000..696e23cf26a2 --- /dev/null +++ b/devel/electron18/files/patch-build_config_v8__target__cpu.gni @@ -0,0 +1,13 @@ +--- build/config/v8_target_cpu.gni.orig 2022-05-11 07:00:27 UTC ++++ build/config/v8_target_cpu.gni +@@ -36,6 +36,10 @@ declare_args() { + if (v8_target_cpu == "") { + if (current_toolchain == "//build/toolchain/linux:clang_x64_v8_arm64") { + v8_target_cpu = "arm64" ++ } else if (current_toolchain == "//build/toolchain/openbsd:clang_arm64") { ++ v8_target_cpu = "arm64" ++ } else if (current_toolchain == "//build/toolchain/freebsd:clang_arm64") { ++ v8_target_cpu = "arm64" + } else if (current_toolchain == "//build/toolchain/linux:clang_x86_v8_arm") { + v8_target_cpu = "arm" + } else if (current_toolchain == diff --git a/devel/electron18/files/patch-build_detect__host__arch.py b/devel/electron18/files/patch-build_detect__host__arch.py new file mode 100644 index 000000000000..d09ac4de3025 --- /dev/null +++ b/devel/electron18/files/patch-build_detect__host__arch.py @@ -0,0 +1,11 @@ +--- build/detect_host_arch.py.orig 2021-01-07 00:36:18 UTC ++++ build/detect_host_arch.py +@@ -21,6 +21,8 @@ def HostArch(): + host_arch = 'ia32' + elif host_arch in ['x86_64', 'amd64']: + host_arch = 'x64' ++ elif host_arch.startswith('arm64'): ++ host_arch = 'arm64' + elif host_arch.startswith('arm'): + host_arch = 'arm' + elif host_arch.startswith('aarch64'): diff --git a/devel/electron18/files/patch-build_gn__run__binary.py b/devel/electron18/files/patch-build_gn__run__binary.py new file mode 100644 index 000000000000..6386f3ded4e0 --- /dev/null +++ b/devel/electron18/files/patch-build_gn__run__binary.py @@ -0,0 +1,11 @@ +--- build/gn_run_binary.py.orig 2022-05-11 07:00:27 UTC ++++ build/gn_run_binary.py +@@ -24,7 +24,7 @@ if not os.path.isabs(path): + # The rest of the arguments are passed directly to the executable. + args = [path] + sys.argv[2:] + +-ret = subprocess.call(args) ++ret = subprocess.call(args, env={"CHROME_EXE_PATH":"${WRKSRC}/out/Release/chrome","LD_LIBRARY_PATH":"${WRKSRC}/out/Release"}) + if ret != 0: + if ret <= -100: + # Windows error codes such as 0xC0000005 and 0xC0000409 are much easier to diff --git a/devel/electron18/files/patch-build_linux_chrome.map b/devel/electron18/files/patch-build_linux_chrome.map new file mode 100644 index 000000000000..c649d3e08b3f --- /dev/null +++ b/devel/electron18/files/patch-build_linux_chrome.map @@ -0,0 +1,13 @@ +--- build/linux/chrome.map.orig 2022-05-19 03:45:15 UTC ++++ build/linux/chrome.map +@@ -20,6 +20,10 @@ global: + # Program entry point. + _start; + ++ # FreeBSD specific variables. ++ __progname; ++ environ; ++ + # Memory allocation symbols. We want chrome and any libraries to + # share the same heap, so it is correct to export these symbols. + aligned_alloc; diff --git a/devel/electron18/files/patch-build_linux_strip__binary.py b/devel/electron18/files/patch-build_linux_strip__binary.py new file mode 100644 index 000000000000..c2ea9d8239fd --- /dev/null +++ b/devel/electron18/files/patch-build_linux_strip__binary.py @@ -0,0 +1,10 @@ +--- build/linux/strip_binary.py.orig 2022-05-11 07:16:46 UTC ++++ build/linux/strip_binary.py +@@ -10,6 +10,7 @@ import sys + + + def main(): ++ return 0 + argparser = argparse.ArgumentParser(description='eu-strip binary.') + + argparser.add_argument('--eu-strip-binary-path', help='eu-strip path.') diff --git a/devel/electron18/files/patch-build_linux_unbundle_libusb.gn b/devel/electron18/files/patch-build_linux_unbundle_libusb.gn new file mode 100644 index 000000000000..500e6b423ce6 --- /dev/null +++ b/devel/electron18/files/patch-build_linux_unbundle_libusb.gn @@ -0,0 +1,27 @@ +--- build/linux/unbundle/libusb.gn.orig 2021-01-25 11:28:15 UTC ++++ build/linux/unbundle/libusb.gn +@@ -0,0 +1,24 @@ ++# 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/config/linux/pkg_config.gni") ++import("//build/shim_headers.gni") ++ ++pkg_config("system_libusb") { ++ packages = [ "libusb-1.0" ] ++} ++ ++shim_headers("libusb_shim") { ++ root_path = "src/libusb" ++ headers = [ ++ "libusb.h", ++ ] ++} ++ ++source_set("libusb") { ++ deps = [ ++ ":libusb_shim", ++ ] ++ public_configs = [ ":system_libusb" ] ++} diff --git a/devel/electron18/files/patch-build_linux_unbundle_replace__gn__files.py b/devel/electron18/files/patch-build_linux_unbundle_replace__gn__files.py new file mode 100644 index 000000000000..edc386dbc180 --- /dev/null +++ b/devel/electron18/files/patch-build_linux_unbundle_replace__gn__files.py @@ -0,0 +1,10 @@ +--- build/linux/unbundle/replace_gn_files.py.orig 2021-11-19 04:25:04 UTC ++++ build/linux/unbundle/replace_gn_files.py +@@ -25,6 +25,7 @@ REPLACEMENTS = { + 'libevent': 'base/third_party/libevent/BUILD.gn', + 'libjpeg': 'third_party/libjpeg.gni', + 'libpng': 'third_party/libpng/BUILD.gn', ++ 'libusb': 'third_party/libusb/BUILD.gn', + 'libvpx': 'third_party/libvpx/BUILD.gn', + 'libwebp': 'third_party/libwebp/BUILD.gn', + 'libxml': 'third_party/libxml/BUILD.gn', diff --git a/devel/electron18/files/patch-build_toolchain_freebsd_BUILD.gn b/devel/electron18/files/patch-build_toolchain_freebsd_BUILD.gn new file mode 100644 index 000000000000..3afd3c1b8126 --- /dev/null +++ b/devel/electron18/files/patch-build_toolchain_freebsd_BUILD.gn @@ -0,0 +1,69 @@ +--- build/toolchain/freebsd/BUILD.gn.orig 2022-05-13 07:20:04 UTC ++++ build/toolchain/freebsd/BUILD.gn +@@ -0,0 +1,66 @@ ++# Copyright 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. ++ ++import("//build/config/sysroot.gni") ++import("//build/toolchain/gcc_toolchain.gni") ++ ++clang_toolchain("clang_x86") { ++ toolchain_args = { ++ current_cpu = "x86" ++ current_os = "freebsd" ++ } ++} ++ ++gcc_toolchain("x86") { ++ cc = "gcc" ++ cxx = "g++" ++ ++ readelf = "readelf" ++ nm = "nm" ++ ar = "ar" ++ ld = cxx ++ ++ toolchain_args = { ++ current_cpu = "x86" ++ current_os = "freebsd" ++ is_clang = false ++ } ++} ++ ++clang_toolchain("clang_x64") { ++ toolchain_args = { ++ current_cpu = "x64" ++ current_os = "freebsd" ++ } ++} ++ ++gcc_toolchain("x64") { ++ cc = "gcc" ++ cxx = "g++" ++ ++ readelf = "readelf" ++ nm = "nm" ++ ar = "ar" ++ ld = cxx ++ ++ toolchain_args = { ++ current_cpu = "x64" ++ current_os = "freebsd" ++ is_clang = false ++ } ++} ++ ++clang_toolchain("clang_arm") { ++ toolchain_args = { ++ current_cpu = "arm64" ++ current_os = "freebsd" ++ } ++} ++ ++clang_toolchain("clang_arm64") { ++ toolchain_args = { ++ current_cpu = "arm64" ++ current_os = "freebsd" ++ } ++} diff --git a/devel/electron18/files/patch-build_toolchain_gcc__solink__wrapper.py b/devel/electron18/files/patch-build_toolchain_gcc__solink__wrapper.py new file mode 100644 index 000000000000..70496fe7ab9d --- /dev/null +++ b/devel/electron18/files/patch-build_toolchain_gcc__solink__wrapper.py @@ -0,0 +1,11 @@ +--- build/toolchain/gcc_solink_wrapper.py.orig 2022-05-11 07:00:27 UTC ++++ build/toolchain/gcc_solink_wrapper.py +@@ -39,7 +39,7 @@ def CollectDynSym(args): + """Replaces: nm --format=posix -g -D -p $sofile | cut -f1-2 -d' '""" + toc = '' + nm = subprocess.Popen(wrapper_utils.CommandToRun( +- [args.nm, '--format=posix', '-g', '-D', '-p', args.sofile]), ++ [args.nm, '-g', '-D', '-p', args.sofile]), + stdout=subprocess.PIPE, + bufsize=-1, + universal_newlines=True) diff --git a/devel/electron18/files/patch-build_toolchain_gcc__toolchain.gni b/devel/electron18/files/patch-build_toolchain_gcc__toolchain.gni new file mode 100644 index 000000000000..c30f54b35828 --- /dev/null +++ b/devel/electron18/files/patch-build_toolchain_gcc__toolchain.gni @@ -0,0 +1,35 @@ +--- build/toolchain/gcc_toolchain.gni.orig 2022-05-19 05:17:34 UTC ++++ build/toolchain/gcc_toolchain.gni +@@ -53,6 +53,13 @@ if (enable_resource_allowlist_generation) { + "enable_resource_allowlist_generation=true does not work for target_os=$target_os") + } + ++declare_args() { ++ extra_cflags = "" ++ extra_cppflags = "" ++ extra_cxxflags = "" ++ extra_ldflags = "" ++} ++ + # This template defines a toolchain for something that works like gcc + # (including clang). + # +@@ -771,13 +778,12 @@ template("gcc_toolchain") { + # use_gold too. + template("clang_toolchain") { + gcc_toolchain(target_name) { +- prefix = rebase_path("$clang_base_path/bin", root_build_dir) +- cc = "${prefix}/clang" +- cxx = "${prefix}/clang++" ++ cc = "cc" ++ cxx = "c++" + ld = cxx +- readelf = "${prefix}/llvm-readelf" +- ar = "${prefix}/llvm-ar" +- nm = "${prefix}/llvm-nm" ++ readelf = "readelf" ++ ar = "ar" ++ nm = "nm" + + forward_variables_from(invoker, + [ diff --git a/devel/electron18/files/patch-build_toolchain_openbsd_BUILD.gn b/devel/electron18/files/patch-build_toolchain_openbsd_BUILD.gn new file mode 100644 index 000000000000..1ce8a6afcc11 --- /dev/null +++ b/devel/electron18/files/patch-build_toolchain_openbsd_BUILD.gn @@ -0,0 +1,69 @@ +--- build/toolchain/openbsd/BUILD.gn.orig 2022-05-13 07:20:04 UTC ++++ build/toolchain/openbsd/BUILD.gn +@@ -0,0 +1,66 @@ ++# Copyright 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. ++ ++import("//build/config/sysroot.gni") ++import("//build/toolchain/gcc_toolchain.gni") ++ ++clang_toolchain("clang_x86") { ++ toolchain_args = { ++ current_cpu = "x86" ++ current_os = "openbsd" ++ } ++} ++ ++gcc_toolchain("x86") { ++ cc = "gcc" ++ cxx = "g++" ++ ++ readelf = "readelf" ++ nm = "nm" ++ ar = "ar" ++ ld = cxx ++ ++ toolchain_args = { ++ current_cpu = "x86" ++ current_os = "openbsd" ++ is_clang = false ++ } ++} ++ ++clang_toolchain("clang_x64") { ++ toolchain_args = { ++ current_cpu = "x64" ++ current_os = "openbsd" ++ } ++} ++ ++gcc_toolchain("x64") { ++ cc = "gcc" ++ cxx = "g++" ++ ++ readelf = "readelf" ++ nm = "nm" ++ ar = "ar" ++ ld = cxx ++ ++ toolchain_args = { ++ current_cpu = "x64" ++ current_os = "openbsd" ++ is_clang = false ++ } ++} ++ ++clang_toolchain("clang_arm") { ++ toolchain_args = { ++ current_cpu = "arm64" ++ current_os = "openbsd" ++ } ++} ++ ++clang_toolchain("clang_arm64") { ++ toolchain_args = { ++ current_cpu = "arm64" ++ current_os = "openbsd" ++ } ++} diff --git a/devel/electron18/files/patch-cc_BUILD.gn b/devel/electron18/files/patch-cc_BUILD.gn new file mode 100644 index 000000000000..19605a5878b3 --- /dev/null +++ b/devel/electron18/files/patch-cc_BUILD.gn @@ -0,0 +1,19 @@ +--- cc/BUILD.gn.orig 2022-05-19 05:17:34 UTC ++++ cc/BUILD.gn +@@ -664,7 +664,7 @@ cc_test_static_library("test_support") { + if (enable_vulkan) { + deps += [ "//gpu/vulkan/init" ] + } +- if (!is_android) { ++ if (!is_android && !is_bsd) { + data_deps = [ "//third_party/mesa_headers" ] + } + } +@@ -891,7 +891,6 @@ cc_test("cc_unittests") { + data = [ "//components/viz/test/data/" ] + data_deps = [ + "//testing/buildbot/filters:cc_unittests_filters", +- "//third_party/mesa_headers", + ] + + if (is_android && enable_chrome_android_internal) { diff --git a/devel/electron18/files/patch-chrome_app_chrome__command__ids.h b/devel/electron18/files/patch-chrome_app_chrome__command__ids.h new file mode 100644 index 000000000000..2ea6de20a262 --- /dev/null +++ b/devel/electron18/files/patch-chrome_app_chrome__command__ids.h @@ -0,0 +1,11 @@ +--- chrome/app/chrome_command_ids.h.orig 2022-05-19 05:17:35 UTC ++++ chrome/app/chrome_command_ids.h +@@ -66,7 +66,7 @@ + #define IDC_NAME_WINDOW 34049 + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #define IDC_USE_SYSTEM_TITLE_BAR 34051 + #define IDC_RESTORE_WINDOW 34052 + #endif diff --git a/devel/electron18/files/patch-chrome_app_chrome__main.cc b/devel/electron18/files/patch-chrome_app_chrome__main.cc new file mode 100644 index 000000000000..047835f4c5dd --- /dev/null +++ b/devel/electron18/files/patch-chrome_app_chrome__main.cc @@ -0,0 +1,20 @@ +--- chrome/app/chrome_main.cc.orig 2022-05-19 05:17:35 UTC ++++ chrome/app/chrome_main.cc +@@ -25,7 +25,7 @@ + #include "chrome/app/notification_metrics.h" + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/base_switches.h" + #endif + +@@ -146,7 +146,7 @@ int ChromeMain(int argc, const char** argv) { + headless::SetUpCommandLine(command_line); + } else { + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + if (command_line->HasSwitch(switches::kHeadless)) { + #if BUILDFLAG(GOOGLE_CHROME_BRANDING) + command_line->AppendSwitch(::headless::switches::kEnableCrashReporter); diff --git a/devel/electron18/files/patch-chrome_app_chrome__main__delegate.cc b/devel/electron18/files/patch-chrome_app_chrome__main__delegate.cc new file mode 100644 index 000000000000..0ad32048f3f8 --- /dev/null +++ b/devel/electron18/files/patch-chrome_app_chrome__main__delegate.cc @@ -0,0 +1,107 @@ +--- chrome/app/chrome_main_delegate.cc.orig 2022-05-19 05:17:35 UTC ++++ chrome/app/chrome_main_delegate.cc +@@ -114,7 +114,7 @@ + #include "chrome/app/chrome_crash_reporter_client.h" + #endif + +-#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD) + #include "components/nacl/common/nacl_paths.h" + #include "components/nacl/zygote/nacl_fork_delegate_linux.h" + #endif +@@ -158,12 +158,12 @@ + #include "v8/include/v8.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/environment.h" + #endif + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/policy/policy_path_parser.h" + #include "components/crash/core/app/crashpad.h" + #endif +@@ -311,7 +311,7 @@ void AdjustLinuxOOMScore(const std::string& process_ty + // and resources loaded. + bool SubprocessNeedsResourceBundle(const std::string& process_type) { + return +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The zygote process opens the resources for the renderers. + process_type == switches::kZygoteProcess || + #endif +@@ -351,7 +351,7 @@ bool HandleVersionSwitches(const base::CommandLine& co + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Show the man page if --help or -h is on the command line. + void HandleHelpSwitches(const base::CommandLine& command_line) { + if (command_line.HasSwitch(switches::kHelp) || +@@ -415,7 +415,7 @@ void InitializeUserDataDir(base::CommandLine* command_ + std::string process_type = + command_line->GetSwitchValueASCII(switches::kProcessType); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, Chrome does not support running multiple copies under different + // DISPLAYs, so the profile directory can be specified in the environment to + // support the virtual desktop use-case. +@@ -499,7 +499,7 @@ void RecordMainStartupMetrics(base::TimeTicks applicat + #endif + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Record the startup process creation time on supported platforms. On Android + // this is recorded in ChromeMainDelegateAndroid. + startup_metric_utils::RecordStartupProcessCreationTime( +@@ -680,6 +680,8 @@ void ChromeMainDelegate::PostFieldTrialInitialization( + // not always enabled on Linux/ChromeOS. + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + bool enable_gwp_asan = crash_reporter::IsCrashpadEnabled(); ++#elif BUILDFLAG(IS_BSD) ++ bool enable_gwp_asan = false; + #else + bool enable_gwp_asan = true; + #endif +@@ -815,7 +817,7 @@ bool ChromeMainDelegate::BasicStartupComplete(int* exi + } + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // This will directly exit if the user asked for help. + HandleHelpSwitches(command_line); + #endif +@@ -846,7 +848,7 @@ bool ChromeMainDelegate::BasicStartupComplete(int* exi + #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) + chromeos::dbus_paths::RegisterPathProvider(); + #endif +-#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++#if BUILDFLAG(ENABLE_NACL) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + nacl::RegisterPathProvider(); + #endif + +@@ -1161,7 +1163,7 @@ void ChromeMainDelegate::PreSandboxStartup() { + locale; + } + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + // Zygote needs to call InitCrashReporter() in RunZygote(). + if (process_type != switches::kZygoteProcess) { + #if BUILDFLAG(IS_ANDROID) +@@ -1237,7 +1239,7 @@ absl::variant<int, content::MainFunctionParams> Chrome + + // This entry is not needed on Linux, where the NaCl loader + // process is launched via nacl_helper instead. +-#if BUILDFLAG(ENABLE_NACL) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(ENABLE_NACL) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + {switches::kNaClLoaderProcess, NaClMain}, + #else + {"<invalid>", nullptr}, // To avoid constant array of size 0 diff --git a/devel/electron18/files/patch-chrome_app_chromium__strings.grd b/devel/electron18/files/patch-chrome_app_chromium__strings.grd new file mode 100644 index 000000000000..c1d35f494976 --- /dev/null +++ b/devel/electron18/files/patch-chrome_app_chromium__strings.grd @@ -0,0 +1,29 @@ +--- chrome/app/chromium_strings.grd.orig 2022-05-19 05:17:35 UTC ++++ chrome/app/chromium_strings.grd +@@ -298,7 +298,7 @@ If you update this file, be sure also to update google + Welcome to Chromium; new browser window opened + </message> + </if> +- <if expr="is_macosx or is_linux"> ++ <if expr="is_macosx or is_posix"> + <message name="IDS_FIRST_RUN_DIALOG_WINDOW_TITLE" desc="Window title of First Run dialog on Mac and Linux, displayed in title bar"> + Welcome to Chromium + </message> +@@ -818,7 +818,7 @@ Permissions you've already given to websites and apps + </if> + + <!-- about:browser-switch strings --> +- <if expr="is_win or is_macosx or is_fuchsia or (is_linux and not chromeos)"> ++ <if expr="is_win or is_macosx or is_fuchsia or (is_posix and not chromeos)"> + <message name="IDS_ABOUT_BROWSER_SWITCH_DESCRIPTION_UNKNOWN_BROWSER" desc="Description shown while waiting for an alternative browser to open, when the browser name is not auto-detected"> + Your system administrator has configured Chromium to open an alternative browser to access <ph name="TARGET_URL_HOSTNAME">$1<ex>example.com</ex></ph>. + </message> +@@ -944,7 +944,7 @@ Permissions you've already given to websites and apps + </message> + + <!-- ProcessSingleton --> +- <if expr="is_linux or is_macosx"> ++ <if expr="is_posix or is_macosx"> + <message name="IDS_PROFILE_IN_USE_POSIX" desc="Message shown when the browser cannot start because the profile is in use on a different host."> + The profile appears to be in use by another Chromium process (<ph name="PROCESS_ID">$1<ex>12345</ex></ph>) on another computer (<ph name="HOST_NAME">$2<ex>example.com</ex></ph>). Chromium has locked the profile so that it doesn't get corrupted. If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chromium. + </message> diff --git a/devel/electron18/files/patch-chrome_app_generated__resources.grd b/devel/electron18/files/patch-chrome_app_generated__resources.grd new file mode 100644 index 000000000000..b38c8a911279 --- /dev/null +++ b/devel/electron18/files/patch-chrome_app_generated__resources.grd @@ -0,0 +1,56 @@ +--- chrome/app/generated_resources.grd.orig 2022-05-19 05:17:35 UTC ++++ chrome/app/generated_resources.grd +@@ -2,7 +2,7 @@ + + <!-- + This file contains definitions of resources that will be translated for each +-locale. The variables is_win, is_macosx, is_linux, and is_posix are available ++locale. The variables is_win, is_macosx, is_posix, and is_posix are available + for making strings OS specific. Other platform defines such as use_titlecase + are declared in tools/grit/grit_rule.gni. + --> +@@ -298,7 +298,7 @@ are declared in tools/grit/grit_rule.gni. + <part file="profiles_strings.grdp" /> + + <!-- Web app intent picker strings --> +- <if expr="is_win or is_macosx or is_linux"> ++ <if expr="is_win or is_macosx or is_posix"> + <part file="url_handler_intent_picker_strings.grdp" /> + </if> + +@@ -2833,7 +2833,7 @@ are declared in tools/grit/grit_rule.gni. + </if> + + <!-- Bluetooth Device Credentials (i.e. PIN/Passkey) dialog --> +- <if expr="is_win or is_linux"> ++ <if expr="is_win or is_posix"> + <message name="IDS_BLUETOOTH_DEVICE_CREDENTIALS_TITLE" desc="Title of the Bluetooth device credentials prompt dialog."> + Device Credentials + </message> +@@ -5686,7 +5686,7 @@ Keep your key file in a safe place. You will need it t + </if> + + <!-- chrome://browser-switch strings --> +- <if expr="is_win or is_macosx or is_fuchsia or (is_linux and not chromeos)"> ++ <if expr="is_win or is_macosx or is_fuchsia or (is_posix and not chromeos)"> + <message name="IDS_ABOUT_BROWSER_SWITCH_TITLE" desc="about:browser-switch page title"> + Legacy Browser Support + </message> +@@ -8217,7 +8217,7 @@ Keep your key file in a safe place. You will need it t + Google Pay + </message> + +- <if expr="is_linux and not chromeos and not lacros"> ++ <if expr="is_posix and not chromeos and not lacros"> + <message name="IDS_SHOW_WINDOW_DECORATIONS" desc="The label of a radio button in the options dialog for using the system title bar and borders."> + Use system title bar and borders + </message> +@@ -9372,7 +9372,7 @@ Please help our engineers fix this problem. Tell us wh + Set as default + </message> + +- <if expr="is_linux and not chromeos and not lacros"> ++ <if expr="is_posix and not chromeos and not lacros"> + <message name="IDS_MINIMIZE_WINDOW_MENU" desc="The Linux browser window menu item text for minimizing the window."> + Minimize + </message> diff --git a/devel/electron18/files/patch-chrome_app_google__chrome__strings.grd b/devel/electron18/files/patch-chrome_app_google__chrome__strings.grd new file mode 100644 index 000000000000..102ed6c76cc5 --- /dev/null +++ b/devel/electron18/files/patch-chrome_app_google__chrome__strings.grd @@ -0,0 +1,29 @@ +--- chrome/app/google_chrome_strings.grd.orig 2022-05-19 05:17:35 UTC ++++ chrome/app/google_chrome_strings.grd +@@ -303,7 +303,7 @@ chromium_strings.grd. --> + Welcome to Chrome; new browser window opened + </message> + </if> +- <if expr="is_macosx or is_linux"> ++ <if expr="is_macosx or is_posix"> + <message name="IDS_FIRST_RUN_DIALOG_WINDOW_TITLE" desc="Window title of First Run dialog on Mac and Linux, displayed in title bar"> + Welcome to Google Chrome + </message> +@@ -863,7 +863,7 @@ Permissions you've already given to websites and apps + </if> + + <!-- about:browser-switch strings --> +- <if expr="is_win or is_macosx or is_fuchsia or (is_linux and not chromeos)"> ++ <if expr="is_win or is_macosx or is_fuchsia or (is_posix and not chromeos)"> + <message name="IDS_ABOUT_BROWSER_SWITCH_DESCRIPTION_UNKNOWN_BROWSER" desc="Description shown while waiting for an alternative browser to open, when the browser name is not auto-detected"> + Your system administrator has configured Google Chrome to open an alternative browser to access <ph name="TARGET_URL_HOSTNAME">$1<ex>example.com</ex></ph>. + </message> +@@ -1012,7 +1012,7 @@ Permissions you've already given to websites and apps + </message> + + <!-- ProcessSingleton --> +- <if expr="is_linux or is_macosx"> ++ <if expr="is_posix or is_macosx"> + <message name="IDS_PROFILE_IN_USE_POSIX" desc="Message shown when the browser cannot start because the profile is in use on a different host."> + The profile appears to be in use by another Google Chrome process (<ph name="PROCESS_ID">$1<ex>12345</ex></ph>) on another computer (<ph name="HOST_NAME">$2<ex>example.com</ex></ph>). Chrome has locked the profile so that it doesn't get corrupted. If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chrome. + </message> diff --git a/devel/electron18/files/patch-chrome_app_profiles__strings.grdp b/devel/electron18/files/patch-chrome_app_profiles__strings.grdp new file mode 100644 index 000000000000..55c6e35238e0 --- /dev/null +++ b/devel/electron18/files/patch-chrome_app_profiles__strings.grdp @@ -0,0 +1,11 @@ +--- chrome/app/profiles_strings.grdp.orig 2022-05-11 07:16:46 UTC ++++ chrome/app/profiles_strings.grdp +@@ -66,7 +66,7 @@ + Add Profile... + </message> + </if> +- <if expr="is_linux"> ++ <if expr="is_posix"> + <message name="IDS_PROFILES_ADD_PROFILE_LABEL" desc="Menu item for adding a new profile."> + Add profile... + </message> diff --git a/devel/electron18/files/patch-chrome_app_settings__strings.grdp b/devel/electron18/files/patch-chrome_app_settings__strings.grdp new file mode 100644 index 000000000000..445ac5b92040 --- /dev/null +++ b/devel/electron18/files/patch-chrome_app_settings__strings.grdp @@ -0,0 +1,20 @@ +--- chrome/app/settings_strings.grdp.orig 2022-05-19 05:17:36 UTC ++++ chrome/app/settings_strings.grdp +@@ -131,7 +131,7 @@ + Theme + </message> + </if> +- <if expr="is_linux and not chromeos and not lacros"> ++ <if expr="is_posix and not chromeos and not lacros"> + <message name="IDS_SETTINGS_SYSTEM_THEME" desc="Text of the label describing the system (GTK+) browser theme on Linux"> + GTK+ + </message> +@@ -145,7 +145,7 @@ + Use Classic + </message> + </if> +- <if expr="not is_linux or chromeos_ash or chromeos_lacros or is_fuchsia"> ++ <if expr="not is_posix or chromeos_ash or chromeos_lacros or is_fuchsia"> + <message name="IDS_SETTINGS_RESET_TO_DEFAULT_THEME" desc="Name of the control which resets the browser theme back to the default theme."> + Reset to default + </message> diff --git a/devel/electron18/files/patch-chrome_app_theme_chrome__unscaled__resources.grd b/devel/electron18/files/patch-chrome_app_theme_chrome__unscaled__resources.grd new file mode 100644 index 000000000000..7af9e5cd5431 --- /dev/null +++ b/devel/electron18/files/patch-chrome_app_theme_chrome__unscaled__resources.grd @@ -0,0 +1,32 @@ +--- chrome/app/theme/chrome_unscaled_resources.grd.orig 2022-05-19 05:17:36 UTC ++++ chrome/app/theme/chrome_unscaled_resources.grd +@@ -15,12 +15,12 @@ + <release seq="1"> + <includes> + <if expr="_google_chrome"> +- <if expr="not is_linux"> ++ <if expr="not is_posix"> + <include name="IDR_PRODUCT_LOGO_64" file="google_chrome/product_logo_64.png" type="BINDATA" /> + <include name="IDR_PRODUCT_LOGO_128" file="google_chrome/product_logo_128.png" type="BINDATA" /> + <include name="IDR_PRODUCT_LOGO_256" file="google_chrome/product_logo_256.png" type="BINDATA" /> + </if> +- <if expr="is_linux"> ++ <if expr="is_posix"> + <include name="IDR_PRODUCT_LOGO_64" file="google_chrome/linux/product_logo_64.png" type="BINDATA" /> + <include name="IDR_PRODUCT_LOGO_128" file="google_chrome/linux/product_logo_128.png" type="BINDATA" /> + <include name="IDR_PRODUCT_LOGO_128_BETA" file="google_chrome/linux/product_logo_128_beta.png" type="BINDATA" /> +@@ -52,12 +52,12 @@ + </if> + </if> + <if expr="not _google_chrome"> +- <if expr="not is_linux"> ++ <if expr="not is_posix"> + <include name="IDR_PRODUCT_LOGO_64" file="chromium/product_logo_64.png" type="BINDATA" /> + <include name="IDR_PRODUCT_LOGO_128" file="chromium/product_logo_128.png" type="BINDATA" /> + <include name="IDR_PRODUCT_LOGO_256" file="chromium/product_logo_256.png" type="BINDATA" /> + </if> +- <if expr="is_linux"> ++ <if expr="is_posix"> + <include name="IDR_PRODUCT_LOGO_64" file="chromium/linux/product_logo_64.png" type="BINDATA" /> + <include name="IDR_PRODUCT_LOGO_128" file="chromium/linux/product_logo_128.png" type="BINDATA" /> + <include name="IDR_PRODUCT_LOGO_256" file="chromium/linux/product_logo_256.png" type="BINDATA" /> diff --git a/devel/electron18/files/patch-chrome_app_theme_theme__resources.grd b/devel/electron18/files/patch-chrome_app_theme_theme__resources.grd new file mode 100644 index 000000000000..e74a4425f72d --- /dev/null +++ b/devel/electron18/files/patch-chrome_app_theme_theme__resources.grd @@ -0,0 +1,11 @@ +--- chrome/app/theme/theme_resources.grd.orig 2021-01-07 00:36:21 UTC ++++ chrome/app/theme/theme_resources.grd +@@ -25,7 +25,7 @@ + <!-- KEEP THESE IN ALPHABETICAL ORDER! DO NOT ADD TO RANDOM PLACES JUST + BECAUSE YOUR RESOURCES ARE FUNCTIONALLY RELATED OR FALL UNDER THE + SAME CONDITIONALS. --> +- <if expr="is_linux or is_win or chromeos"> ++ <if expr="is_posix or is_win or chromeos"> + <structure type="chrome_scaled_image" name="IDR_ACCESSIBILITY_CAPTIONS_PREVIEW_BACKGROUND" file="common/captions-preview-bg.png" /> + </if> + <if expr="toolkit_views and not is_macosx"> diff --git a/devel/electron18/files/patch-chrome_browser_about__flags.cc b/devel/electron18/files/patch-chrome_browser_about__flags.cc new file mode 100644 index 000000000000..7007e66f07e9 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_about__flags.cc @@ -0,0 +1,128 @@ +--- chrome/browser/about_flags.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/about_flags.cc +@@ -206,7 +206,7 @@ + #include "ui/native_theme/native_theme_features.h" + #include "ui/ui_features.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/allocator/buildflags.h" + #endif + +@@ -275,7 +275,7 @@ + #include "chrome/browser/supervised_user/supervised_user_features/supervised_user_features.h" + #endif // ENABLE_SUPERVISED_USERS + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD) + #include "ui/ozone/buildflags.h" + #include "ui/ozone/public/ozone_switches.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) +@@ -362,7 +362,7 @@ const FeatureEntry::Choice kUseAngleChoicesMac[] = { + gl::kANGLEImplementationMetalName}}; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const FeatureEntry::Choice kOzonePlatformHintRuntimeChoices[] = { + {flag_descriptions::kOzonePlatformHintChoiceDefault, "", ""}, + {flag_descriptions::kOzonePlatformHintChoiceAuto, +@@ -976,7 +976,7 @@ const FeatureEntry::FeatureVariation kPageContentAnnot + }; + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + const FeatureEntry::FeatureParam kOmniboxDocumentProviderServerScoring[] = { + {"DocumentUseServerScore", "true"}, + {"DocumentUseClientScore", "false"}, +@@ -3425,7 +3425,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(chromeos::kLacrosTtsSupport)}, + #endif // BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + { + "enable-accelerated-video-decode", + flag_descriptions::kAcceleratedVideoDecodeName, +@@ -3839,7 +3839,7 @@ const FeatureEntry kFeatureEntries[] = { + {"enable-login-detection", flag_descriptions::kEnableLoginDetectionName, + flag_descriptions::kEnableLoginDetectionDescription, kOsAll, + FEATURE_VALUE_TYPE(login_detection::kLoginDetection)}, +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {"enable-navigation-predictor", + flag_descriptions::kEnableNavigationPredictorName, + flag_descriptions::kEnableNavigationPredictorDescription, +@@ -4032,7 +4032,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(features::kWebShare)}, + #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + {"ozone-platform-hint", flag_descriptions::kOzonePlatformHintName, + flag_descriptions::kOzonePlatformHintDescription, kOsLinux, + MULTI_VALUE_TYPE(kOzonePlatformHintRuntimeChoices)}, +@@ -4051,7 +4051,7 @@ const FeatureEntry kFeatureEntries[] = { + password_manager::features::kForceInitialSyncWhenDecryptionFails)}, + #endif // BUILDFLAG(IS_LINUX) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + {"skip-undecryptable-passwords", + flag_descriptions::kSkipUndecryptablePasswordsName, + flag_descriptions::kSkipUndecryptablePasswordsDescription, +@@ -4761,7 +4761,7 @@ const FeatureEntry kFeatureEntries[] = { + "OmniboxBundledExperimentV1")}, + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + {"omnibox-experimental-keyword-mode", + flag_descriptions::kOmniboxExperimentalKeywordModeName, + flag_descriptions::kOmniboxExperimentalKeywordModeDescription, kOsDesktop, +@@ -5159,7 +5159,7 @@ const FeatureEntry kFeatureEntries[] = { + #endif // BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + {"webui-feedback", flag_descriptions::kWebuiFeedbackName, + flag_descriptions::kWebuiFeedbackDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kWebUIFeedback)}, +@@ -6199,7 +6199,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(features::kMouseSubframeNoImplicitCapture)}, + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + {"global-media-controls-modern-ui", + flag_descriptions::kGlobalMediaControlsModernUIName, + flag_descriptions::kGlobalMediaControlsModernUIDescription, +@@ -6913,7 +6913,7 @@ const FeatureEntry kFeatureEntries[] = { + #endif + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + {"incognito-clear-browsing-data-dialog-for-desktop", + flag_descriptions::kIncognitoClearBrowsingDataDialogForDesktopName, + flag_descriptions::kIncognitoClearBrowsingDataDialogForDesktopDescription, +@@ -7038,7 +7038,7 @@ const FeatureEntry kFeatureEntries[] = { + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + {"commander", flag_descriptions::kCommanderName, + flag_descriptions::kCommanderDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kCommander)}, +@@ -7292,7 +7292,7 @@ const FeatureEntry kFeatureEntries[] = { + + #if BUILDFLAG(IS_WIN) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ +- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + { + "ui-debug-tools", + flag_descriptions::kUIDebugToolsName, diff --git a/devel/electron18/files/patch-chrome_browser_after__startup__task__utils.cc b/devel/electron18/files/patch-chrome_browser_after__startup__task__utils.cc new file mode 100644 index 000000000000..c24a40704e24 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_after__startup__task__utils.cc @@ -0,0 +1,29 @@ +--- chrome/browser/after_startup_task_utils.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/after_startup_task_utils.cc +@@ -25,7 +25,7 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "ui/views/linux_ui/linux_ui.h" + #endif + +@@ -111,7 +111,7 @@ void SetBrowserStartupIsComplete() { + + g_startup_complete_flag.Get().Set(); + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Process::Current().CreationTime() is not available on all platforms. + const base::Time process_creation_time = + base::Process::Current().CreationTime(); +@@ -130,7 +130,7 @@ void SetBrowserStartupIsComplete() { + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Make sure we complete the startup notification sequence, or launchers will + // get confused by not receiving the expected message from the main process. + views::LinuxUI* linux_ui = views::LinuxUI::instance(); diff --git a/devel/electron18/files/patch-chrome_browser_apps_platform__apps_api_music__manager__private_device__id__linux.cc b/devel/electron18/files/patch-chrome_browser_apps_platform__apps_api_music__manager__private_device__id__linux.cc new file mode 100644 index 000000000000..488fcbd9e91d --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_apps_platform__apps_api_music__manager__private_device__id__linux.cc @@ -0,0 +1,71 @@ +--- chrome/browser/apps/platform_apps/api/music_manager_private/device_id_linux.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/apps/platform_apps/api/music_manager_private/device_id_linux.cc +@@ -4,6 +4,15 @@ + + #include "chrome/browser/apps/platform_apps/api/music_manager_private/device_id.h" + ++#include "build/build_config.h" ++ ++#if defined(OS_BSD) ++#include <sys/types.h> ++#include <net/if_dl.h> ++#include <netinet/in.h> ++#include <sys/socket.h> ++#endif ++ + #include <ifaddrs.h> + #include <net/if.h> + #include <stddef.h> +@@ -106,11 +115,33 @@ class MacAddressProcessor { + const char* const prefixes[], + size_t prefixes_count) { + const int MAC_LENGTH = 6; ++#if defined(OS_BSD) ++ struct ifaddrs *ifap, *ifinfo; ++#else + struct ifreq ifinfo; ++#endif + + memset(&ifinfo, 0, sizeof(ifinfo)); +- strncpy(ifinfo.ifr_name, ifaddr->ifa_name, sizeof(ifinfo.ifr_name) - 1); + ++#if defined(OS_BSD) ++ int result = getifaddrs(&ifap); ++ if (result != 0) ++ return true; ++ result = 1; // no MAC found yet ++ for (ifinfo = ifap; ifinfo != NULL; ifinfo = ifinfo->ifa_next) { ++ struct sockaddr* sa = ifinfo->ifa_addr; ++ if (sa->sa_family == AF_LINK && ++ !strncmp(ifinfo->ifa_name, ifaddr->ifa_name, ++ sizeof(ifinfo->ifa_name) - 1)) { ++ result = 0; ++ break; ++ } ++ } ++ ++ char mac_address[6]; ++ strncpy(mac_address, (const char*)LLADDR((struct sockaddr_dl*)ifinfo->ifa_addr), sizeof(mac_address)); ++#else ++ strncpy(ifinfo.ifr_name, ifaddr->ifa_name, sizeof(ifinfo.ifr_name) - 1); + int sd = socket(AF_INET, SOCK_DGRAM, 0); + int result = ioctl(sd, SIOCGIFHWADDR, &ifinfo); + close(sd); +@@ -120,11 +151,17 @@ class MacAddressProcessor { + + const char* mac_address = + static_cast<const char*>(ifinfo.ifr_hwaddr.sa_data); ++#endif + if (!is_valid_mac_address_.Run(mac_address, MAC_LENGTH)) + return true; + ++#if defined(OS_BSD) ++ if (!IsValidPrefix(ifinfo->ifa_name, prefixes, prefixes_count)) ++ return true; ++#else + if (!IsValidPrefix(ifinfo.ifr_name, prefixes, prefixes_count)) + return true; ++#endif + + // Got one! + found_mac_address_ = diff --git a/devel/electron18/files/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc b/devel/electron18/files/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc new file mode 100644 index 000000000000..2fa60ab88317 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_apps_platform__apps_platform__app__launch.cc @@ -0,0 +1,20 @@ +--- chrome/browser/apps/platform_apps/platform_app_launch.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/apps/platform_apps/platform_app_launch.cc +@@ -18,7 +18,7 @@ + #include "extensions/common/constants.h" + #include "extensions/common/extension.h" + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/browser.h" + #include "chrome/browser/ui/browser_navigator.h" + #include "chrome/browser/ui/browser_window.h" +@@ -121,7 +121,7 @@ bool OpenExtensionApplicationTab(Profile* profile, con + return app_tab != nullptr; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool OpenDeprecatedApplicationPrompt(Profile* profile, + const std::string& app_id) { + if (!extensions::IsExtensionUnsupportedDeprecatedApp(profile, app_id)) diff --git a/devel/electron18/files/patch-chrome_browser_apps_platform__apps_platform__app__launch.h b/devel/electron18/files/patch-chrome_browser_apps_platform__apps_platform__app__launch.h new file mode 100644 index 000000000000..12b406650c8a --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_apps_platform__apps_platform__app__launch.h @@ -0,0 +1,11 @@ +--- chrome/browser/apps/platform_apps/platform_app_launch.h.orig 2022-05-19 03:45:16 UTC ++++ chrome/browser/apps/platform_apps/platform_app_launch.h +@@ -36,7 +36,7 @@ bool OpenExtensionApplicationWindow(Profile* profile, + // and false otherwise. + bool OpenExtensionApplicationTab(Profile* profile, const std::string& app_id); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Opens the deprecated Chrome Apps flow if |app_id| refers to a Chrome App and + // Chrome Apps are deprecated on the |profile|. Returns true if that was the + // case, or false otherwise. diff --git a/devel/electron18/files/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc b/devel/electron18/files/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc new file mode 100644 index 000000000000..a5f374459474 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc @@ -0,0 +1,11 @@ +--- chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc +@@ -89,7 +89,7 @@ ChromeAutocompleteSchemeClassifier::GetInputTypeForSch + return metrics::OmniboxInputType::QUERY; + + case ExternalProtocolHandler::UNKNOWN: { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Linux impl of GetApplicationNameForProtocol doesn't distinguish + // between URL schemes with handers and those without. This will + // make the default behaviour be search on Linux. diff --git a/devel/electron18/files/patch-chrome_browser_background_background__mode__manager.cc b/devel/electron18/files/patch-chrome_browser_background_background__mode__manager.cc new file mode 100644 index 000000000000..546c51b0cdb7 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_background_background__mode__manager.cc @@ -0,0 +1,11 @@ +--- chrome/browser/background/background_mode_manager.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/background/background_mode_manager.cc +@@ -899,7 +899,7 @@ gfx::ImageSkia GetStatusTrayIcon() { + return gfx::ImageSkia(); + + return family->CreateExact(size).AsImageSkia(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( + IDR_PRODUCT_LOGO_128); + #elif BUILDFLAG(IS_MAC) diff --git a/devel/electron18/files/patch-chrome_browser_background_background__mode__optimizer.cc b/devel/electron18/files/patch-chrome_browser_background_background__mode__optimizer.cc new file mode 100644 index 000000000000..c28cc33ed6dc --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_background_background__mode__optimizer.cc @@ -0,0 +1,11 @@ +--- chrome/browser/background/background_mode_optimizer.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/background/background_mode_optimizer.cc +@@ -31,7 +31,7 @@ std::unique_ptr<BackgroundModeOptimizer> BackgroundMod + switches::kKeepAliveForTest)) + return nullptr; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(features::kBackgroundModeAllowRestart)) + return base::WrapUnique(new BackgroundModeOptimizer()); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron18/files/patch-chrome_browser_browser__features.cc b/devel/electron18/files/patch-chrome_browser_browser__features.cc new file mode 100644 index 000000000000..cc91f5001170 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_browser__features.cc @@ -0,0 +1,11 @@ +--- chrome/browser/browser_features.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/browser_features.cc +@@ -29,7 +29,7 @@ const base::Feature kColorProviderRedirectionForThemeP + // the browser exits. + const base::Feature kDestroyProfileOnBrowserClose{ + "DestroyProfileOnBrowserClose", +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + }; + #else diff --git a/devel/electron18/files/patch-chrome_browser_browser__process__impl.cc b/devel/electron18/files/patch-chrome_browser_browser__process__impl.cc new file mode 100644 index 000000000000..60e46e9635b7 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_browser__process__impl.cc @@ -0,0 +1,29 @@ +--- chrome/browser/browser_process_impl.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/browser_process_impl.cc +@@ -208,7 +208,7 @@ + #include "components/enterprise/browser/controller/chrome_browser_cloud_management_controller.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/error_reporting/chrome_js_error_report_processor.h" // nogncheck + #endif + +@@ -1157,7 +1157,7 @@ void BrowserProcessImpl::PreMainMessageLoopRun() { + + ApplyMetricsReportingPolicy(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + ChromeJsErrorReportProcessor::Create(); + #endif + +@@ -1412,7 +1412,7 @@ void BrowserProcessImpl::Unpin() { + // Mac is currently not supported. + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. +-#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD) + + bool BrowserProcessImpl::IsRunningInBackground() const { + // Check if browser is in the background. diff --git a/devel/electron18/files/patch-chrome_browser_browser__process__impl.h b/devel/electron18/files/patch-chrome_browser_browser__process__impl.h new file mode 100644 index 000000000000..8f31668489e4 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_browser__process__impl.h @@ -0,0 +1,11 @@ +--- chrome/browser/browser_process_impl.h.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/browser_process_impl.h +@@ -367,7 +367,7 @@ class BrowserProcessImpl : public BrowserProcess, + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD) + base::RepeatingTimer autoupdate_timer_; + + // Gets called by autoupdate timer to see if browser needs restart and can be diff --git a/devel/electron18/files/patch-chrome_browser_chrome__browser__interface__binders.cc b/devel/electron18/files/patch-chrome_browser_chrome__browser__interface__binders.cc new file mode 100644 index 000000000000..3439e373c6d2 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_chrome__browser__interface__binders.cc @@ -0,0 +1,71 @@ +--- chrome/browser/chrome_browser_interface_binders.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/chrome_browser_interface_binders.cc +@@ -96,13 +96,13 @@ + #endif // BUILDFLAG(FULL_SAFE_BROWSING) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS_ASH) ++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/connectors_internals/connectors_internals.mojom.h" + #include "chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h" + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/app_settings/web_app_settings_ui.h" + #include "ui/webui/resources/cr_components/app_management/app_management.mojom.h" + #endif +@@ -172,7 +172,7 @@ + #endif // BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/discards/discards.mojom.h" + #include "chrome/browser/ui/webui/discards/discards_ui.h" + #include "chrome/browser/ui/webui/discards/site_data.mojom.h" +@@ -665,7 +665,7 @@ void PopulateChromeFrameBinders( + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (!render_frame_host->GetParent()) { + map->Add<chrome::mojom::DraggableRegions>( + base::BindRepeating(&DraggableRegionsHostImpl::CreateIfAllowed)); +@@ -673,7 +673,7 @@ void PopulateChromeFrameBinders( + #endif + + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(blink::features::kDesktopPWAsSubApps) && + !render_frame_host->GetParent()) { + map->Add<blink::mojom::SubAppsService>( +@@ -714,14 +714,14 @@ void PopulateChromeWebUIFrameBinders( + SegmentationInternalsUI>(map); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS_ASH) ++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD) + RegisterWebUIControllerInterfaceBinder< + connectors_internals::mojom::PageHandler, + enterprise_connectors::ConnectorsInternalsUI>(map); + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + RegisterWebUIControllerInterfaceBinder< + app_management::mojom::PageHandlerFactory, WebAppSettingsUI>(map); + #endif +@@ -1040,7 +1040,7 @@ void PopulateChromeWebUIFrameBinders( + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + RegisterWebUIControllerInterfaceBinder<discards::mojom::DetailsProvider, + DiscardsUI>(map); + diff --git a/devel/electron18/files/patch-chrome_browser_chrome__browser__main.cc b/devel/electron18/files/patch-chrome_browser_chrome__browser__main.cc new file mode 100644 index 000000000000..0a3db0dcbaaa --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_chrome__browser__main.cc @@ -0,0 +1,52 @@ +--- chrome/browser/chrome_browser_main.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/chrome_browser_main.cc +@@ -231,11 +231,11 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/first_run/upgrade_util_linux.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/crash/core/app/breakpad_linux.h" + #include "components/crash/core/app/crashpad.h" + #endif +@@ -270,7 +270,7 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + #include "chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.h" + #include "chrome/browser/metrics/desktop_session_duration/touch_mode_stats_tracker.h" +@@ -1007,7 +1007,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { + AddFirstRunNewTabs(browser_creator_.get(), master_prefs_->new_tabs); + } + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Create directory for user-level Native Messaging manifest files. This + // makes it less likely that the directory will be created by third-party + // software with incorrect owner or permission. See crbug.com/725513 . +@@ -1020,7 +1020,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { + } + #endif // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + // Set the product channel for crash reports. + if (!crash_reporter::IsCrashpadEnabled()) { + breakpad::SetChannelCrashKey( +@@ -1041,7 +1041,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + metrics::DesktopSessionDurationTracker::Initialize(); + ProfileActivityMetricsRecorder::Initialize(); diff --git a/devel/electron18/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc b/devel/electron18/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc new file mode 100644 index 000000000000..a1ead8769bb2 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_chrome__browser__main__extra__parts__linux.cc @@ -0,0 +1,11 @@ +--- chrome/browser/chrome_browser_main_extra_parts_linux.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/chrome_browser_main_extra_parts_linux.cc +@@ -120,7 +120,7 @@ ChromeBrowserMainExtraPartsLinux::ChromeBrowserMainExt + ChromeBrowserMainExtraPartsLinux::~ChromeBrowserMainExtraPartsLinux() = default; + + void ChromeBrowserMainExtraPartsLinux::PreEarlyInitialization() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On the desktop, we fix the platform name if necessary. + // See https://crbug.com/1246928. + auto* const command_line = base::CommandLine::ForCurrentProcess(); diff --git a/devel/electron18/files/patch-chrome_browser_chrome__browser__main__linux.cc b/devel/electron18/files/patch-chrome_browser_chrome__browser__main__linux.cc new file mode 100644 index 000000000000..856224ab39f4 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_chrome__browser__main__linux.cc @@ -0,0 +1,20 @@ +--- chrome/browser/chrome_browser_main_linux.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/chrome_browser_main_linux.cc +@@ -57,7 +57,7 @@ ChromeBrowserMainPartsLinux::~ChromeBrowserMainPartsLi + } + + void ChromeBrowserMainPartsLinux::PostCreateMainMessageLoop() { +-#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) + // No-op: Ash and Lacros Bluetooth DBusManager initialization depend on + // FeatureList, and is done elsewhere. + #else +@@ -122,7 +122,7 @@ void ChromeBrowserMainPartsLinux::PostBrowserStart() { + #endif // defined(USE_DBUS) && !BUILDFLAG(IS_CHROMEOS) + + void ChromeBrowserMainPartsLinux::PostDestroyThreads() { +-#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) + // No-op; per PostBrowserStart() comment, this is done elsewhere. + #else + bluez::BluezDBusManager::Shutdown(); diff --git a/devel/electron18/files/patch-chrome_browser_chrome__browser__main__posix.cc b/devel/electron18/files/patch-chrome_browser_chrome__browser__main__posix.cc new file mode 100644 index 000000000000..55106e53ca6c --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_chrome__browser__main__posix.cc @@ -0,0 +1,11 @@ +--- chrome/browser/chrome_browser_main_posix.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/chrome_browser_main_posix.cc +@@ -72,7 +72,7 @@ void ExitHandler::ExitWhenPossibleOnUIThread(int signa + } else { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + switch (signal) { + case SIGINT: + case SIGHUP: diff --git a/devel/electron18/files/patch-chrome_browser_chrome__content__browser__client.cc b/devel/electron18/files/patch-chrome_browser_chrome__content__browser__client.cc new file mode 100644 index 000000000000..59ec2744e98a --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_chrome__content__browser__client.cc @@ -0,0 +1,159 @@ +--- chrome/browser/chrome_content_browser_client.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/chrome_content_browser_client.cc +@@ -374,7 +374,7 @@ + #include "services/service_manager/public/mojom/interface_provider_spec.mojom.h" + #include "storage/browser/file_system/external_mount_points.h" + #include "third_party/cros_system_api/switches/chrome_switches.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/chrome_browser_main_linux.h" + #elif BUILDFLAG(IS_ANDROID) + #include "base/android/application_status_listener.h" +@@ -444,17 +444,17 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + #include "chrome/browser/browser_switcher/browser_switcher_navigation_throttle.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/crash/core/app/crash_switches.h" + #include "components/crash/core/app/crashpad.h" + #endif + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + #if !BUILDFLAG(IS_ANDROID) + #include "base/debug/leak_annotations.h" + #include "components/crash/core/app/breakpad_linux.h" +@@ -462,12 +462,12 @@ + #include "components/crash/content/browser/crash_handler_host_linux.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/app_settings/web_app_settings_navigation_throttle.h" + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_CHROMEOS_ASH) ++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/connectors/device_trust/navigation_throttle.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || + // BUILDFLAG(IS_CHROMEOS_ASH) +@@ -489,11 +489,11 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/chrome_browser_main_extra_parts_linux.h" + #elif defined(USE_OZONE) + #include "chrome/browser/chrome_browser_main_extra_parts_ozone.h" +@@ -880,7 +880,7 @@ blink::mojom::AutoplayPolicy GetAutoplayPolicyForWebCo + int GetCrashSignalFD(const base::CommandLine& command_line) { + return crashpad::CrashHandlerHost::Get()->GetDeathSignalSocket(); + } +-#elif BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) ++#elif BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + breakpad::CrashHandlerHostLinux* CreateCrashHandlerHost( + const std::string& process_type) { + base::FilePath dumps_path; +@@ -1376,7 +1376,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts( + #elif BUILDFLAG(IS_CHROMEOS_LACROS) + main_parts = std::make_unique<ChromeBrowserMainPartsLacros>( + std::move(parameters), &startup_data_); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + main_parts = std::make_unique<ChromeBrowserMainPartsLinux>( + std::move(parameters), &startup_data_); + #elif BUILDFLAG(IS_ANDROID) +@@ -1410,7 +1410,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts( + std::make_unique<ChromeBrowserMainExtraPartsViewsLacros>()); + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + main_parts->AddParts( + std::make_unique<ChromeBrowserMainExtraPartsViewsLinux>()); + #else +@@ -1427,7 +1427,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts( + main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsLacros>()); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsLinux>()); + #elif defined(USE_OZONE) + main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsOzone>()); +@@ -2101,7 +2101,7 @@ bool ChromeContentBrowserClient::AreDirectSocketsAllow + Profile* profile = Profile::FromBrowserContext(context); + return profile && profile->GetPrefs()->GetBoolean( + policy::policy_prefs::kEnableDirectSockets); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // There are currently no reliable way to determine managed status on Linux. + return false; + #elif BUILDFLAG(IS_MAC) +@@ -2190,6 +2190,8 @@ void ChromeContentBrowserClient::AppendExtraCommandLin + #elif BUILDFLAG(IS_POSIX) + #if BUILDFLAG(IS_ANDROID) + bool enable_crash_reporter = true; ++#elif BUILDFLAG(IS_BSD) ++ bool enable_crash_reporter = false; + #else + bool enable_crash_reporter = false; + if (crash_reporter::IsCrashpadEnabled()) { +@@ -2498,7 +2500,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLin + ThreadProfilerConfiguration::Get()->AppendCommandLineSwitchForChildProcess( + command_line); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Processes may only query perf_event_open with the BPF sandbox disabled. + if (browser_command_line.HasSwitch(switches::kEnableThreadInstructionCount) && + command_line->HasSwitch(sandbox::policy::switches::kNoSandbox)) { +@@ -3880,7 +3882,7 @@ void ChromeContentBrowserClient::GetAdditionalFileSyst + } + } + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess( + const base::CommandLine& command_line, + int child_process_id, +@@ -4292,14 +4294,14 @@ ChromeContentBrowserClient::CreateThrottlesForNavigati + &throttles); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + MaybeAddThrottle( + WebAppSettingsNavigationThrottle::MaybeCreateThrottleFor(handle), + &throttles); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_CHROMEOS_ASH) ++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD) + MaybeAddThrottle(enterprise_connectors::DeviceTrustNavigationThrottle:: + MaybeCreateThrottleFor(handle), + &throttles); +@@ -4332,7 +4334,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigati + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + MaybeAddThrottle(browser_switcher::BrowserSwitcherNavigationThrottle:: + MaybeCreateThrottleFor(handle), diff --git a/devel/electron18/files/patch-chrome_browser_chrome__content__browser__client.h b/devel/electron18/files/patch-chrome_browser_chrome__content__browser__client.h new file mode 100644 index 000000000000..c660dff0ed3b --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_chrome__content__browser__client.h @@ -0,0 +1,11 @@ +--- chrome/browser/chrome_content_browser_client.h.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/chrome_content_browser_client.h +@@ -417,7 +417,7 @@ class ChromeContentBrowserClient : public content::Con + void OverridePageVisibilityState( + content::RenderFrameHost* render_frame_host, + content::PageVisibilityState* visibility_state) override; +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + void GetAdditionalMappedFilesForChildProcess( + const base::CommandLine& command_line, + int child_process_id, diff --git a/devel/electron18/files/patch-chrome_browser_crash__upload__list_crash__upload__list.cc b/devel/electron18/files/patch-chrome_browser_crash__upload__list_crash__upload__list.cc new file mode 100644 index 000000000000..764b88f78c3e --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_crash__upload__list_crash__upload__list.cc @@ -0,0 +1,11 @@ +--- chrome/browser/crash_upload_list/crash_upload_list.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/crash_upload_list/crash_upload_list.cc +@@ -52,7 +52,7 @@ scoped_refptr<UploadList> CreateCrashUploadList() { + // to log uploads in CrashUploadList::kReporterLogFilename. + // Linux is handled below. + #if !(BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) || \ +- BUILDFLAG(IS_LINUX)) ++ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + if (crash_reporter::IsCrashpadEnabled()) { + return new CrashUploadListCrashpad(); + } diff --git a/devel/electron18/files/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc b/devel/electron18/files/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc new file mode 100644 index 000000000000..25825eca6299 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_custom__handlers_chrome__protocol__handler__registry__delegate.cc @@ -0,0 +1,11 @@ +--- chrome/browser/custom_handlers/chrome_protocol_handler_registry_delegate.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/custom_handlers/chrome_protocol_handler_registry_delegate.cc +@@ -69,7 +69,7 @@ void ChromeProtocolHandlerRegistryDelegate::CheckDefau + // If true default protocol handlers will be removed if the OS level + // registration for a protocol is no longer Chrome. + bool ChromeProtocolHandlerRegistryDelegate::ShouldRemoveHandlersNotInOS() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // We don't do this on Linux as the OS registration there is not reliable, + // and Chrome OS doesn't have any notion of OS registration. + // TODO(benwells): When Linux support is more reliable remove this diff --git a/devel/electron18/files/patch-chrome_browser_defaults.cc b/devel/electron18/files/patch-chrome_browser_defaults.cc new file mode 100644 index 000000000000..2040af55541a --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_defaults.cc @@ -0,0 +1,11 @@ +--- chrome/browser/defaults.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/defaults.cc +@@ -48,7 +48,7 @@ const bool kSyncAutoStarts = true; + const bool kSyncAutoStarts = false; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const bool kScrollEventChangesTab = true; + #else + const bool kScrollEventChangesTab = false; diff --git a/devel/electron18/files/patch-chrome_browser_dev__ui__browser__resources.grd b/devel/electron18/files/patch-chrome_browser_dev__ui__browser__resources.grd new file mode 100644 index 000000000000..492ab467ae68 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_dev__ui__browser__resources.grd @@ -0,0 +1,11 @@ +--- chrome/browser/dev_ui_browser_resources.grd.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/dev_ui_browser_resources.grd +@@ -46,7 +46,7 @@ This file specifies browser resources for developer-fa + <include name="IDR_PREDICTORS_RESOURCE_PREFETCH_PREDICTOR_JS" file="resources\predictors\resource_prefetch_predictor.js" type="BINDATA" /> + <include name="IDR_MEDIA_SESSION_MOJOM_WEBUI_JS" file="${root_gen_dir}\mojom-webui\services\media_session\public\mojom\media_session.mojom-webui.js" use_base_dir="false" type="BINDATA" /> + +- <if expr="is_android or is_linux"> ++ <if expr="is_android or is_posix"> + <include name="IDR_SANDBOX_INTERNALS_HTML" file="resources\sandbox_internals\sandbox_internals.html" preprocess="true" type="BINDATA" /> + <include name="IDR_SANDBOX_INTERNALS_JS" file="resources\sandbox_internals\sandbox_internals.js" preprocess="true" type="BINDATA" /> + </if> diff --git a/devel/electron18/files/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc b/devel/electron18/files/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc new file mode 100644 index 000000000000..c59700c47d0c --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc @@ -0,0 +1,11 @@ +--- chrome/browser/device_identity/device_oauth2_token_service_factory.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/device_identity/device_oauth2_token_service_factory.cc +@@ -28,7 +28,7 @@ std::unique_ptr<DeviceOAuth2TokenStore> CreatePlatform + return std::make_unique<chromeos::DeviceOAuth2TokenStoreChromeOS>( + local_state); + #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) || \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD) + return std::make_unique<DeviceOAuth2TokenStoreDesktop>(local_state); + #else + NOTREACHED(); diff --git a/devel/electron18/files/patch-chrome_browser_devtools_devtools__eye__dropper.cc b/devel/electron18/files/patch-chrome_browser_devtools_devtools__eye__dropper.cc new file mode 100644 index 000000000000..f28d98dda2e7 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_devtools_devtools__eye__dropper.cc @@ -0,0 +1,11 @@ +--- chrome/browser/devtools/devtools_eye_dropper.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/devtools/devtools_eye_dropper.cc +@@ -186,7 +186,7 @@ void DevToolsEyeDropper::UpdateCursor() { + // magnified projection only with centered hotspot. + // Mac Retina requires cursor to be > 120px in order to render smoothly. + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const float kCursorSize = 63; + const float kDiameter = 63; + const float kHotspotOffset = 32; diff --git a/devel/electron18/files/patch-chrome_browser_diagnostics_diagnostics__writer.h b/devel/electron18/files/patch-chrome_browser_diagnostics_diagnostics__writer.h new file mode 100644 index 000000000000..6ce49765d875 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_diagnostics_diagnostics__writer.h @@ -0,0 +1,11 @@ +--- chrome/browser/diagnostics/diagnostics_writer.h.orig 2022-05-11 07:00:29 UTC ++++ chrome/browser/diagnostics/diagnostics_writer.h +@@ -14,6 +14,8 @@ namespace diagnostics { + // Console base class used internally. + class SimpleConsole; + ++#undef MACHINE ++ + class DiagnosticsWriter : public DiagnosticsModel::Observer { + public: + // The type of formatting done by this writer. diff --git a/devel/electron18/files/patch-chrome_browser_download_chrome__download__manager__delegate.cc b/devel/electron18/files/patch-chrome_browser_download_chrome__download__manager__delegate.cc new file mode 100644 index 000000000000..6bf71ff8c83c --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_download_chrome__download__manager__delegate.cc @@ -0,0 +1,47 @@ +--- chrome/browser/download/chrome_download_manager_delegate.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/download/chrome_download_manager_delegate.cc +@@ -1541,7 +1541,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDe + target_info->is_filetype_handled_safely) + DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (item->GetOriginalMimeType() == "application/x-x509-user-cert") + DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true); + #endif +@@ -1610,7 +1610,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDe + bool ChromeDownloadManagerDelegate::IsOpenInBrowserPreferreredForFile( + const base::FilePath& path) { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (path.MatchesExtension(FILE_PATH_LITERAL(".pdf"))) { + return !download_prefs_->ShouldOpenPdfInSystemReader(); + } +@@ -1718,7 +1718,7 @@ void ChromeDownloadManagerDelegate::CheckDownloadAllow + content::CheckDownloadAllowedCallback check_download_allowed_cb) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // Don't download pdf if it is a file URL, as that might cause an infinite + // download loop if Chrome is not the system pdf viewer. + if (url.SchemeIsFile() && download_prefs_->ShouldOpenPdfInSystemReader()) { +@@ -1760,7 +1760,7 @@ std::unique_ptr<download::DownloadItemRenameHandler> + ChromeDownloadManagerDelegate::GetRenameHandlerForDownload( + download::DownloadItem* download_item) { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return enterprise_connectors::FileSystemRenameHandler::CreateIfNeeded( + download_item); + #else +@@ -1776,7 +1776,7 @@ void ChromeDownloadManagerDelegate::CheckSavePackageAl + DCHECK(download_item->IsSavePackageDownload()); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (!base::FeatureList::IsEnabled( + download::features::kAllowSavePackageScanning)) { + std::move(callback).Run(true); diff --git a/devel/electron18/files/patch-chrome_browser_download_download__commands.cc b/devel/electron18/files/patch-chrome_browser_download_download__commands.cc new file mode 100644 index 000000000000..a93ea5f59ddb --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_download_download__commands.cc @@ -0,0 +1,20 @@ +--- chrome/browser/download/download_commands.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/download/download_commands.cc +@@ -27,7 +27,7 @@ + #include "ui/base/clipboard/scoped_clipboard_writer.h" + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/browser.h" + #include "chrome/browser/ui/browser_finder.h" + #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" +@@ -168,7 +168,7 @@ void DownloadCommands::ExecuteCommand(Command command) + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + + Browser* DownloadCommands::GetBrowser() const { + if (!model_) diff --git a/devel/electron18/files/patch-chrome_browser_download_download__commands.h b/devel/electron18/files/patch-chrome_browser_download_download__commands.h new file mode 100644 index 000000000000..b2a487bcb67f --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_download_download__commands.h @@ -0,0 +1,11 @@ +--- chrome/browser/download/download_commands.h.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/download/download_commands.h +@@ -54,7 +54,7 @@ class DownloadCommands { + void ExecuteCommand(Command command); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + bool IsDownloadPdf() const; + bool CanOpenPdfInSystemViewer() const; + Browser* GetBrowser() const; diff --git a/devel/electron18/files/patch-chrome_browser_download_download__item__model.cc b/devel/electron18/files/patch-chrome_browser_download_download__item__model.cc new file mode 100644 index 000000000000..d8b83b9c0095 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_download_download__item__model.cc @@ -0,0 +1,20 @@ +--- chrome/browser/download/download_item_model.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/download/download_item_model.cc +@@ -640,7 +640,7 @@ bool DownloadItemModel::IsCommandChecked( + download_crx_util::IsExtensionDownload(*download_); + case DownloadCommands::ALWAYS_OPEN_TYPE: + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (download_commands->CanOpenPdfInSystemViewer()) { + DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(profile()); + return prefs->ShouldOpenPdfInSystemReader(); +@@ -681,7 +681,7 @@ void DownloadItemModel::ExecuteCommand(DownloadCommand + DownloadCommands::ALWAYS_OPEN_TYPE); + DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(profile()); + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (download_commands->CanOpenPdfInSystemViewer()) { + prefs->SetShouldOpenPdfInSystemReader(!is_checked); + SetShouldPreferOpeningInBrowser(is_checked); diff --git a/devel/electron18/files/patch-chrome_browser_download_download__prefs.cc b/devel/electron18/files/patch-chrome_browser_download_download__prefs.cc new file mode 100644 index 000000000000..e0b564ff33bc --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_download_download__prefs.cc @@ -0,0 +1,99 @@ +--- chrome/browser/download/download_prefs.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/download/download_prefs.cc +@@ -13,6 +13,7 @@ + #include "base/callback_helpers.h" + #include "base/check.h" + #include "base/cxx17_backports.h" ++#include "base/command_line.h" + #include "base/feature_list.h" + #include "base/files/file_util.h" + #include "base/no_destructor.h" +@@ -60,6 +61,10 @@ + #include "chrome/browser/ui/pdf/adobe_reader_info_win.h" + #endif + ++#if BUILDFLAG(IS_OPENBSD) ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++#endif ++ + using content::BrowserContext; + using content::BrowserThread; + using content::DownloadManager; +@@ -70,7 +75,7 @@ namespace { + // Consider downloads 'dangerous' if they go to the home directory on Linux and + // to the desktop on any platform. + bool DownloadPathIsDangerous(const base::FilePath& download_path) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::FilePath home_dir = base::GetHomeDir(); + if (download_path == home_dir) { + return true; +@@ -168,7 +173,7 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profi + #endif // BUILDFLAG(IS_CHROMEOS_ASH) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + should_open_pdf_in_system_reader_ = + prefs->GetBoolean(prefs::kOpenPdfDownloadInSystemReader); + #endif +@@ -287,7 +292,7 @@ void DownloadPrefs::RegisterProfilePrefs( + registry->RegisterFilePathPref(prefs::kSaveFileDefaultDirectory, + default_download_path); + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + registry->RegisterBooleanPref(prefs::kOpenPdfDownloadInSystemReader, false); + #endif + #if BUILDFLAG(IS_ANDROID) +@@ -421,7 +426,7 @@ bool DownloadPrefs::IsDownloadPathManaged() const { + + bool DownloadPrefs::IsAutoOpenByUserUsed() const { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (ShouldOpenPdfInSystemReader()) + return true; + #endif +@@ -436,7 +441,7 @@ bool DownloadPrefs::IsAutoOpenEnabled(const GURL& url, + DCHECK(extension[0] == base::FilePath::kExtensionSeparator); + extension.erase(0, 1); + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (base::FilePath::CompareEqualIgnoreCase(extension, + FILE_PATH_LITERAL("pdf")) && + ShouldOpenPdfInSystemReader()) +@@ -491,7 +496,7 @@ void DownloadPrefs::DisableAutoOpenByUserBasedOnExtens + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + void DownloadPrefs::SetShouldOpenPdfInSystemReader(bool should_open) { + if (should_open_pdf_in_system_reader_ == should_open) + return; +@@ -513,7 +518,7 @@ bool DownloadPrefs::ShouldOpenPdfInSystemReader() cons + + void DownloadPrefs::ResetAutoOpenByUser() { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + SetShouldOpenPdfInSystemReader(false); + #endif + auto_open_by_user_.clear(); +@@ -653,7 +658,14 @@ base::FilePath DownloadPrefs::SanitizeDownloadTargetPa + #else + // If the stored download directory is an absolute path, we presume it's + // correct; there's not really much more validation we can do here. ++#if BUILDFLAG(IS_OPENBSD) ++ // If unveil(2) is used, force the file dialog directory to something we ++ // know is available. ++ auto* sandbox = sandbox::policy::SandboxLinux::GetInstance(); ++ if (!sandbox->unveil_initialized() && path.IsAbsolute()) ++#else + if (path.IsAbsolute()) ++#endif + return path; + + // When the default download directory is *not* an absolute path, we use the diff --git a/devel/electron18/files/patch-chrome_browser_download_download__prefs.h b/devel/electron18/files/patch-chrome_browser_download_download__prefs.h new file mode 100644 index 000000000000..28e55ebf696f --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_download_download__prefs.h @@ -0,0 +1,20 @@ +--- chrome/browser/download/download_prefs.h.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/download/download_prefs.h +@@ -122,7 +122,7 @@ class DownloadPrefs { + void DisableAutoOpenByUserBasedOnExtension(const base::FilePath& file_name); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // Store the user preference to disk. If |should_open| is true, also disable + // the built-in PDF plugin. If |should_open| is false, enable the PDF plugin. + void SetShouldOpenPdfInSystemReader(bool should_open); +@@ -181,7 +181,7 @@ class DownloadPrefs { + std::unique_ptr<policy::URLBlocklist> auto_open_allowed_by_urls_; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + bool should_open_pdf_in_system_reader_; + #endif + diff --git a/devel/electron18/files/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc b/devel/electron18/files/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc new file mode 100644 index 000000000000..72fa4bf58a3e --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__connector__service__factory.cc @@ -0,0 +1,29 @@ +--- chrome/browser/enterprise/connectors/device_trust/device_trust_connector_service_factory.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/enterprise/connectors/device_trust/device_trust_connector_service_factory.cc +@@ -12,7 +12,7 @@ + #include "components/keyed_service/content/browser_context_dependency_manager.h" + #include "components/keyed_service/core/keyed_service.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "chrome/browser/browser_process.h" + #include "chrome/browser/enterprise/connectors/device_trust/browser/browser_device_trust_connector_service.h" + #include "chrome/browser/policy/chrome_browser_policy_connector.h" +@@ -37,7 +37,7 @@ DeviceTrustConnectorService* DeviceTrustConnectorServi + + bool DeviceTrustConnectorServiceFactory::ServiceIsCreatedWithBrowserContext() + const { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return IsDeviceTrustConnectorFeatureEnabled(); + #else + return false; +@@ -58,7 +58,7 @@ KeyedService* DeviceTrustConnectorServiceFactory::Buil + + DeviceTrustConnectorService* service = nullptr; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (IsDeviceTrustConnectorFeatureEnabled()) { + auto* key_manager = g_browser_process->browser_policy_connector() + ->chrome_browser_cloud_management_controller() diff --git a/devel/electron18/files/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc b/devel/electron18/files/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc new file mode 100644 index 000000000000..2899f7df210f --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_enterprise_connectors_device__trust_device__trust__service__factory.cc @@ -0,0 +1,11 @@ +--- chrome/browser/enterprise/connectors/device_trust/device_trust_service_factory.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/enterprise/connectors/device_trust/device_trust_service_factory.cc +@@ -21,7 +21,7 @@ + #include "components/policy/content/policy_blocklist_service.h" + #include "content/public/browser/browser_context.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "chrome/browser/browser_process.h" + #include "chrome/browser/enterprise/connectors/device_trust/attestation/desktop/desktop_attestation_service.h" + #include "chrome/browser/policy/chrome_browser_policy_connector.h" diff --git a/devel/electron18/files/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc b/devel/electron18/files/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc new file mode 100644 index 000000000000..67a691d3a608 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_enterprise_connectors_device__trust_key__management_core_persistence_key__persistence__delegate__factory.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/key_persistence_delegate_factory.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/key_persistence_delegate_factory.cc +@@ -13,7 +13,7 @@ + #include "chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/win_key_persistence_delegate.h" + #elif BUILDFLAG(IS_MAC) + #include "chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/mac_key_persistence_delegate.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/connectors/device_trust/key_management/core/persistence/linux_key_persistence_delegate.h" + #endif + +@@ -44,7 +44,7 @@ KeyPersistenceDelegateFactory::CreateKeyPersistenceDel + return std::make_unique<WinKeyPersistenceDelegate>(); + #elif BUILDFLAG(IS_MAC) + return std::make_unique<MacKeyPersistenceDelegate>(); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return std::make_unique<LinuxKeyPersistenceDelegate>(); + #else + NOTREACHED(); diff --git a/devel/electron18/files/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc b/devel/electron18/files/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc new file mode 100644 index 000000000000..7e745d4ed010 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_enterprise_connectors_device__trust_signals_signals__service__factory.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/connectors/device_trust/signals/signals_service_factory.cc.orig 2022-05-19 05:17:36 UTC ++++ chrome/browser/enterprise/connectors/device_trust/signals/signals_service_factory.cc +@@ -14,7 +14,7 @@ + #include "chrome/browser/enterprise/connectors/device_trust/signals/signals_service_impl.h" + #include "chrome/browser/profiles/profile.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "base/check.h" + #include "chrome/browser/enterprise/connectors/device_trust/signals/decorators/browser/browser_signals_decorator.h" + #include "chrome/browser/policy/chrome_browser_policy_connector.h" +@@ -44,7 +44,7 @@ std::unique_ptr<SignalsService> CreateSignalsService( + decorators.push_back( + std::make_unique<ContentSignalsDecorator>(policy_blocklist_service)); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + policy::ChromeBrowserPolicyConnector* browser_policy_connector = + g_browser_process->browser_policy_connector(); + DCHECK(browser_policy_connector); diff --git a/devel/electron18/files/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc b/devel/electron18/files/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc new file mode 100644 index 000000000000..126338e90cfb --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_enterprise_remote__commands_cbcm__remote__commands__factory.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.cc +@@ -11,7 +11,7 @@ + #include "chrome/browser/profiles/profile_manager.h" + #include "components/policy/core/common/remote_commands/remote_command_job.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/connectors/device_trust/device_trust_features.h" + #include "chrome/browser/enterprise/remote_commands/rotate_attestation_credential_job.h" + #include "chrome/browser/policy/chrome_browser_policy_connector.h" +@@ -31,7 +31,7 @@ CBCMRemoteCommandsFactory::BuildJobForType( + g_browser_process->profile_manager()); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (enterprise_connectors::IsDeviceTrustConnectorFeatureEnabled() && + type == enterprise_management:: + RemoteCommand_Type_BROWSER_ROTATE_ATTESTATION_CREDENTIAL) { diff --git a/devel/electron18/files/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc b/devel/electron18/files/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc new file mode 100644 index 000000000000..5a4980c4f9cc --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/signals/device_info_fetcher.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/enterprise/signals/device_info_fetcher.cc +@@ -10,7 +10,7 @@ + #include "chrome/browser/enterprise/signals/device_info_fetcher_mac.h" + #elif BUILDFLAG(IS_WIN) + #include "chrome/browser/enterprise/signals/device_info_fetcher_win.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/signals/device_info_fetcher_linux.h" + #endif + +@@ -70,7 +70,7 @@ std::unique_ptr<DeviceInfoFetcher> DeviceInfoFetcher:: + return std::make_unique<DeviceInfoFetcherMac>(); + #elif BUILDFLAG(IS_WIN) + return std::make_unique<DeviceInfoFetcherWin>(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return std::make_unique<DeviceInfoFetcherLinux>(); + #else + return std::make_unique<StubDeviceFetcher>(); diff --git a/devel/electron18/files/patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc b/devel/electron18/files/patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc new file mode 100644 index 000000000000..25cdcfb4fbe3 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_enterprise_signals_device__info__fetcher__linux.cc @@ -0,0 +1,78 @@ +--- chrome/browser/enterprise/signals/device_info_fetcher_linux.cc.orig 2022-05-11 07:00:29 UTC ++++ chrome/browser/enterprise/signals/device_info_fetcher_linux.cc +@@ -4,12 +4,23 @@ + + #include "chrome/browser/enterprise/signals/device_info_fetcher_linux.h" + ++#include "build/build_config.h" ++ + #if defined(USE_GIO) + #include <gio/gio.h> + #endif // defined(USE_GIO) + #include <sys/stat.h> ++#if !defined(OS_BSD) + #include <sys/sysmacros.h> ++#endif + ++#if defined(OS_BSD) ++#include <sys/types.h> ++#include <sys/socket.h> ++#include <ifaddrs.h> ++#include <net/if_dl.h> ++#endif ++ + #include <string> + + #include "base/environment.h" +@@ -118,6 +129,7 @@ SettingValue GetScreenlockSecured() { + // Implements the logic from the native host installation script. First find the + // root device identifier, then locate its parent and get its type. + SettingValue GetDiskEncrypted() { ++#if !defined(OS_BSD) + struct stat info; + // First figure out the device identifier. Fail fast if this fails. + if (stat("/", &info) != 0) +@@ -139,11 +151,35 @@ SettingValue GetDiskEncrypted() { + } + return SettingValue::UNKNOWN; + } ++#endif + return SettingValue::DISABLED; + } + + std::vector<std::string> GetMacAddresses() { + std::vector<std::string> result; ++#if defined(OS_BSD) ++ struct ifaddrs* ifa = nullptr; ++ ++ if (getifaddrs(&ifa) != 0) ++ return result; ++ ++ struct ifaddrs* interface = ifa; ++ for (; interface != nullptr; interface = interface->ifa_next) { ++ if (interface->ifa_addr == nullptr || ++ interface->ifa_addr->sa_family != AF_LINK) { ++ continue; ++ } ++ struct sockaddr_dl* sdl = ++ reinterpret_cast<struct sockaddr_dl*>(interface->ifa_addr); ++ if (!sdl || sdl->sdl_alen != 6) ++ continue; ++ char* link_address = static_cast<char*>(LLADDR(sdl)); ++ result.push_back(base::StringPrintf( ++ "%02x:%02x:%02x:%02x:%02x:%02x", link_address[0] & 0xff, ++ link_address[1] & 0xff, link_address[2] & 0xff, link_address[3] & 0xff, ++ link_address[4] & 0xff, link_address[5] & 0xff)); ++ } ++#else + base::DirReaderPosix reader("/sys/class/net"); + if (!reader.IsValid()) + return result; +@@ -166,6 +202,7 @@ std::vector<std::string> GetMacAddresses() { + &address); + result.push_back(address); + } ++#endif + return result; + } + diff --git a/devel/electron18/files/patch-chrome_browser_extensions_BUILD.gn b/devel/electron18/files/patch-chrome_browser_extensions_BUILD.gn new file mode 100644 index 000000000000..42bf4aee73bf --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_extensions_BUILD.gn @@ -0,0 +1,13 @@ +--- chrome/browser/extensions/BUILD.gn.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/extensions/BUILD.gn +@@ -1299,6 +1299,10 @@ static_library("extensions") { + deps += [ "//chrome/services/printing/public/mojom" ] + } + ++ if (is_bsd) { ++ sources -= [ "api/image_writer_private/removable_storage_provider_linux.cc" ] ++ } ++ + if (enable_service_discovery) { + sources += [ + "api/mdns/mdns_api.cc", diff --git a/devel/electron18/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc b/devel/electron18/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc new file mode 100644 index 000000000000..cc3829138024 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_chrome__desktop__report__request__helper.cc @@ -0,0 +1,29 @@ +--- chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc +@@ -24,7 +24,7 @@ + #include "base/win/registry.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/environment.h" + #include "base/nix/xdg_util.h" + #endif +@@ -208,7 +208,7 @@ base::FilePath GetEndpointVerificationDir() { + bool got_path = false; + #if BUILDFLAG(IS_WIN) + got_path = base::PathService::Get(base::DIR_LOCAL_APP_DATA, &path); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::unique_ptr<base::Environment> env(base::Environment::Create()); + path = base::nix::GetXDGDirectory(env.get(), base::nix::kXdgConfigHomeEnvVar, + base::nix::kDotConfigDir); +@@ -219,7 +219,7 @@ base::FilePath GetEndpointVerificationDir() { + if (!got_path) + return path; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + path = path.AppendASCII("google"); + #else + path = path.AppendASCII("Google"); diff --git a/devel/electron18/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc b/devel/electron18/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc new file mode 100644 index 000000000000..3ad204f9d1d9 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.cc @@ -0,0 +1,11 @@ +--- chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.cc +@@ -155,7 +155,7 @@ EnterpriseReportingPrivateGetDeviceIdFunction:: + + // getPersistentSecret + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + + EnterpriseReportingPrivateGetPersistentSecretFunction:: + EnterpriseReportingPrivateGetPersistentSecretFunction() = default; diff --git a/devel/electron18/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h b/devel/electron18/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h new file mode 100644 index 000000000000..0cb14268139f --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_enterprise__reporting__private__api.h @@ -0,0 +1,11 @@ +--- chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.h.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_api.h +@@ -45,7 +45,7 @@ class EnterpriseReportingPrivateGetDeviceIdFunction : + ~EnterpriseReportingPrivateGetDeviceIdFunction() override; + }; + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + + class EnterpriseReportingPrivateGetPersistentSecretFunction + : public ExtensionFunction { diff --git a/devel/electron18/files/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc b/devel/electron18/files/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc new file mode 100644 index 000000000000..60a0005aae44 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc @@ -0,0 +1,20 @@ +--- chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc.orig 2021-01-07 00:36:22 UTC ++++ chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc +@@ -22,6 +22,7 @@ static base::LazyInstance<scoped_refptr<StorageDeviceL + + void RemovableStorageProvider::GetAllDevices(DeviceListReadyCallback callback) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); ++#if !defined(OS_BSD) + if (g_test_device_list.Get().get() != nullptr) { + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, +@@ -35,6 +36,9 @@ void RemovableStorageProvider::GetAllDevices(DeviceLis + base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}, + base::BindOnce(&RemovableStorageProvider::PopulateDeviceList), + std::move(callback)); ++#else ++ NOTIMPLEMENTED(); ++#endif + } + + // static diff --git a/devel/electron18/files/patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc b/devel/electron18/files/patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc new file mode 100644 index 000000000000..adce04bc1dd2 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_extensions_api_messaging_native__process__launcher__posix.cc @@ -0,0 +1,11 @@ +--- chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc +@@ -82,7 +82,7 @@ bool NativeProcessLauncher::LaunchNativeProcess( + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Don't use no_new_privs mode, e.g. in case the host needs to use sudo. + options.allow_new_privs = true; + #endif diff --git a/devel/electron18/files/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc b/devel/electron18/files/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc new file mode 100644 index 000000000000..65196f9e114b --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc @@ -0,0 +1,20 @@ +--- chrome/browser/extensions/api/settings_private/prefs_util.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/extensions/api/settings_private/prefs_util.cc +@@ -182,7 +182,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlist + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + (*s_allowlist)[::prefs::kUseCustomChromeFrame] = + settings_api::PrefType::PREF_TYPE_BOOLEAN; + #endif +@@ -196,7 +196,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlist + settings_api::PrefType::PREF_TYPE_NUMBER; + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + (*s_allowlist)[::prefs::kUsesSystemTheme] = + settings_api::PrefType::PREF_TYPE_BOOLEAN; + #endif diff --git a/devel/electron18/files/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc b/devel/electron18/files/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc new file mode 100644 index 000000000000..221b2a75e2e1 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc @@ -0,0 +1,29 @@ +--- chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc +@@ -30,7 +30,7 @@ + #include "extensions/browser/process_manager.h" + #include "extensions/common/error_utils.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "extensions/common/permissions/permissions_data.h" + #endif + +@@ -39,7 +39,7 @@ namespace { + bool CanEnableAudioDebugRecordingsFromExtension( + const extensions::Extension* extension) { + bool enabled_by_permissions = false; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (extension) { + enabled_by_permissions = + extension->permissions_data()->active_permissions().HasAPIPermission( +@@ -580,7 +580,7 @@ void WebrtcLoggingPrivateStartEventLoggingFunction::Fi + + ExtensionFunction::ResponseAction + WebrtcLoggingPrivateGetLogsDirectoryFunction::Run() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Unlike other WebrtcLoggingPrivate functions that take a RequestInfo object, + // this function shouldn't be called by a component extension on behalf of + // some web code. It returns a DirectoryEntry for use directly in the calling diff --git a/devel/electron18/files/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc b/devel/electron18/files/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc new file mode 100644 index 000000000000..76c40cfa2f4d --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc @@ -0,0 +1,20 @@ +--- chrome/browser/extensions/browser_context_keyed_service_factories.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/extensions/browser_context_keyed_service_factories.cc +@@ -52,7 +52,7 @@ + #include "extensions/browser/api/networking_private/networking_private_delegate_factory.h" + #include "ppapi/buildflags/buildflags.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/extensions/api/system_indicator/system_indicator_manager_factory.h" + #endif + +@@ -124,7 +124,7 @@ void EnsureBrowserContextKeyedServiceFactoriesBuilt() + extensions::SettingsPrivateEventRouterFactory::GetInstance(); + extensions::SettingsOverridesAPI::GetFactoryInstance(); + extensions::SignedInDevicesManager::GetFactoryInstance(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + extensions::SystemIndicatorManagerFactory::GetInstance(); + #endif + extensions::TabGroupsEventRouterFactory::GetInstance(); diff --git a/devel/electron18/files/patch-chrome_browser_extensions_external__provider__impl.cc b/devel/electron18/files/patch-chrome_browser_extensions_external__provider__impl.cc new file mode 100644 index 000000000000..cadb8e9edd9e --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_extensions_external__provider__impl.cc @@ -0,0 +1,20 @@ +--- chrome/browser/extensions/external_provider_impl.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/extensions/external_provider_impl.cc +@@ -818,7 +818,7 @@ void ExternalProviderImpl::CreateExternalProviders( + if (!profile->GetPrefs()->GetBoolean(pref_names::kBlockExternalExtensions)) { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + provider_list->push_back(std::make_unique<ExternalProviderImpl>( + service, + base::MakeRefCounted<ExternalPrefLoader>( +@@ -846,7 +846,7 @@ void ExternalProviderImpl::CreateExternalProviders( + bundled_extension_creation_flags)); + + // Define a per-user source of external extensions. +-#if BUILDFLAG(IS_MAC) || ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if BUILDFLAG(IS_MAC) || ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + BUILDFLAG(CHROMIUM_BRANDING)) + provider_list->push_back(std::make_unique<ExternalProviderImpl>( + service, diff --git a/devel/electron18/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc b/devel/electron18/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc new file mode 100644 index 000000000000..b6ef95865ee5 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc @@ -0,0 +1,11 @@ +--- chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc +@@ -217,7 +217,7 @@ const struct { + {base::DIR_HOME, FILE_PATH_LITERAL("Library/Mobile Documents"), + kDontBlockChildren}, + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux also block access to devices via /dev, as well as security + // sensitive data in /sys and /proc. + {kNoBasePathKey, FILE_PATH_LITERAL("/dev"), kBlockAllChildren}, diff --git a/devel/electron18/files/patch-chrome_browser_first__run_first__run__dialog.h b/devel/electron18/files/patch-chrome_browser_first__run_first__run__dialog.h new file mode 100644 index 000000000000..f63873c5ae4a --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_first__run_first__run__dialog.h @@ -0,0 +1,11 @@ +--- chrome/browser/first_run/first_run_dialog.h.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/first_run/first_run_dialog.h +@@ -12,7 +12,7 @@ + // Hide this function on platforms where the dialog does not exist. + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD) + + class Profile; + diff --git a/devel/electron18/files/patch-chrome_browser_first__run_first__run__internal.h b/devel/electron18/files/patch-chrome_browser_first__run_first__run__internal.h new file mode 100644 index 000000000000..7f41c888155f --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_first__run_first__run__internal.h @@ -0,0 +1,11 @@ +--- chrome/browser/first_run/first_run_internal.h.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/first_run/first_run_internal.h +@@ -58,7 +58,7 @@ FirstRunState DetermineFirstRunState(bool has_sentinel + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD) + // For testing, forces the first run dialog to either be shown or not. If not + // called, the decision to show the dialog or not will be made by Chrome based + // on a number of factors (such as install type, whether it's a Chrome-branded diff --git a/devel/electron18/files/patch-chrome_browser_flag__descriptions.cc b/devel/electron18/files/patch-chrome_browser_flag__descriptions.cc new file mode 100644 index 000000000000..acb61caa7378 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_flag__descriptions.cc @@ -0,0 +1,56 @@ +--- chrome/browser/flag_descriptions.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/flag_descriptions.cc +@@ -5508,7 +5508,7 @@ const char kDownloadShelfWebUIDescription[] = + // Random platform combinations ----------------------------------------------- + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + + const char kWebuiFeedbackName[] = "WebUI Feedback"; + const char kWebuiFeedbackDescription[] = +@@ -5519,7 +5519,7 @@ const char kWebuiFeedbackDescription[] = + // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + + const char kCommanderName[] = "Commander"; + const char kCommanderDescription[] = +@@ -5545,7 +5545,7 @@ const char kWebShareDescription[] = + "platforms."; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + const char kOzonePlatformHintChoiceDefault[] = "Default"; + const char kOzonePlatformHintChoiceAuto[] = "Auto"; + const char kOzonePlatformHintChoiceX11[] = "X11"; +@@ -5557,7 +5557,7 @@ const char kOzonePlatformHintDescription[] = + "\"X11\". \"Auto\" selects Wayland if possible, X11 otherwise. "; + #endif // BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const char kCleanUndecryptablePasswordsLinuxName[] = + "Cleanup local undecryptable passwords during initial sync flow"; + const char kCleanUndecryptablePasswordsLinuxDescription[] = +@@ -5570,7 +5570,7 @@ const char kForcePasswordInitialSyncWhenDecryptionFail + "storage and requests initial sync."; + #endif // BUILDFLAG(IS_LINUX) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + const char kSkipUndecryptablePasswordsName[] = + "Skip undecryptable passwords to use the available decryptable " + "passwords."; +@@ -5687,7 +5687,7 @@ const char kElasticOverscrollDescription[] = + + #if BUILDFLAG(IS_WIN) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ +- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + const char kUIDebugToolsName[] = "Debugging tools for UI"; + const char kUIDebugToolsDescription[] = + "Enables additional keyboard shortcuts to help debugging."; diff --git a/devel/electron18/files/patch-chrome_browser_flag__descriptions.h b/devel/electron18/files/patch-chrome_browser_flag__descriptions.h new file mode 100644 index 000000000000..65b6aaa0269a --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_flag__descriptions.h @@ -0,0 +1,47 @@ +--- chrome/browser/flag_descriptions.h.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/flag_descriptions.h +@@ -3178,7 +3178,7 @@ extern const char kDownloadShelfWebUIDescription[]; + // Random platform combinations ----------------------------------------------- + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + + extern const char kWebuiFeedbackName[]; + extern const char kWebuiFeedbackDescription[]; +@@ -3187,7 +3187,7 @@ extern const char kWebuiFeedbackDescription[]; + // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + + extern const char kCommanderName[]; + extern const char kCommanderDescription[]; +@@ -3206,7 +3206,7 @@ extern const char kWebShareName[]; + extern const char kWebShareDescription[]; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extern const char kOzonePlatformHintChoiceDefault[]; + extern const char kOzonePlatformHintChoiceAuto[]; + extern const char kOzonePlatformHintChoiceX11[]; +@@ -3222,7 +3222,7 @@ extern const char kForcePasswordInitialSyncWhenDecrypt + extern const char kForcePasswordInitialSyncWhenDecryptionFailsDescription[]; + #endif // BUILDFLAG(IS_LINUX) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + extern const char kSkipUndecryptablePasswordsName[]; + extern const char kSkipUndecryptablePasswordsDescription[]; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) +@@ -3304,7 +3304,7 @@ extern const char kElasticOverscrollDescription[]; + + #if BUILDFLAG(IS_WIN) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ +- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + extern const char kUIDebugToolsName[]; + extern const char kUIDebugToolsDescription[]; + #endif diff --git a/devel/electron18/files/patch-chrome_browser_headless_headless__mode__util.cc b/devel/electron18/files/patch-chrome_browser_headless_headless__mode__util.cc new file mode 100644 index 000000000000..37138e510fdf --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_headless_headless__mode__util.cc @@ -0,0 +1,29 @@ +--- chrome/browser/headless/headless_mode_util.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/headless/headless_mode_util.cc +@@ -9,7 +9,7 @@ + // Native headless is currently available on Linux, Windows and Mac platforms. + // More platforms will be added later, so avoid function level clutter by + // providing stub implementations at the end of the file. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + + #include <cstdlib> + #include <vector> +@@ -17,7 +17,7 @@ + #include "base/base_switches.h" + #include "ui/gfx/switches.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/ozone/public/ozone_switches.h" + #endif // BUILDFLAG(IS_LINUX) + +@@ -51,7 +51,7 @@ void SetUpCommandLine(const base::CommandLine* command + base::CommandLine::ForCurrentProcess()->AppendSwitch( + ::switches::kNoErrorDialogs); + } +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Native headless chrome on Linux relies on ozone/headless platform. + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( + ::switches::kOzonePlatform, switches::kHeadless); diff --git a/devel/electron18/files/patch-chrome_browser_intranet__redirect__detector.h b/devel/electron18/files/patch-chrome_browser_intranet__redirect__detector.h new file mode 100644 index 000000000000..6a227723b0e9 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_intranet__redirect__detector.h @@ -0,0 +1,11 @@ +--- chrome/browser/intranet_redirect_detector.h.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/intranet_redirect_detector.h +@@ -27,7 +27,7 @@ class SimpleURLLoader; + class PrefRegistrySimple; + + #if !(BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD)) + #error "IntranetRedirectDetector should only be built on Desktop platforms." + #endif + diff --git a/devel/electron18/files/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc b/devel/electron18/files/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc new file mode 100644 index 000000000000..75d7c2ebc6ae --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc @@ -0,0 +1,15 @@ +--- chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc.orig 2022-05-11 07:00:29 UTC ++++ chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc +@@ -39,10 +39,12 @@ void MTPDeviceMapService::RegisterMTPFileSystem( + // Note that this initializes the delegate asynchronously, but since + // the delegate will only be used from the IO thread, it is guaranteed + // to be created before use of it expects it to be there. ++#if !defined(OS_BSD) + CreateMTPDeviceAsyncDelegate( + device_location, read_only, + base::BindOnce(&MTPDeviceMapService::AddAsyncDelegate, + base::Unretained(this), device_location, read_only)); ++#endif + mtp_device_usage_map_[key] = 0; + } + diff --git a/devel/electron18/files/patch-chrome_browser_media__galleries_media__file__system__registry.cc b/devel/electron18/files/patch-chrome_browser_media__galleries_media__file__system__registry.cc new file mode 100644 index 000000000000..f2280b08346d --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_media__galleries_media__file__system__registry.cc @@ -0,0 +1,16 @@ +--- chrome/browser/media_galleries/media_file_system_registry.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/media_galleries/media_file_system_registry.cc +@@ -744,7 +744,12 @@ class MediaFileSystemRegistry::MediaFileSystemContextI + // Constructor in 'private' section because depends on private class definition. + MediaFileSystemRegistry::MediaFileSystemRegistry() + : file_system_context_(new MediaFileSystemContextImpl) { +- StorageMonitor::GetInstance()->AddObserver(this); ++ /* ++ * This conditional is needed for shutdown. Destructors ++ * try to get the media file system registry. ++ */ ++ if (StorageMonitor::GetInstance()) ++ StorageMonitor::GetInstance()->AddObserver(this); + } + + MediaFileSystemRegistry::~MediaFileSystemRegistry() { diff --git a/devel/electron18/files/patch-chrome_browser_media_audio__service__util.cc b/devel/electron18/files/patch-chrome_browser_media_audio__service__util.cc new file mode 100644 index 000000000000..cfe82b765087 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_media_audio__service__util.cc @@ -0,0 +1,20 @@ +--- chrome/browser/media/audio_service_util.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/media/audio_service_util.cc +@@ -21,7 +21,7 @@ + + namespace { + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + bool GetPolicyOrFeature(const char* policy_name, const base::Feature& feature) { + const policy::PolicyMap& policies = +@@ -41,7 +41,7 @@ bool GetPolicyOrFeature(const char* policy_name, const + bool IsAudioServiceSandboxEnabled() { + // TODO(crbug.com/1052397): Remove !IS_CHROMEOS_LACROS once lacros starts being + // built with OS_CHROMEOS instead of OS_LINUX. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + return GetPolicyOrFeature(policy::key::kAudioSandboxEnabled, + features::kAudioServiceSandbox); diff --git a/devel/electron18/files/patch-chrome_browser_media_router_discovery_BUILD.gn b/devel/electron18/files/patch-chrome_browser_media_router_discovery_BUILD.gn new file mode 100644 index 000000000000..91e35f7463ff --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_media_router_discovery_BUILD.gn @@ -0,0 +1,11 @@ +--- chrome/browser/media/router/discovery/BUILD.gn.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/media/router/discovery/BUILD.gn +@@ -94,7 +94,7 @@ static_library("discovery") { + "media_sink_discovery_metrics.h", + ] + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ "discovery_network_list_wifi_linux.cc" ] + } + diff --git a/devel/electron18/files/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc b/devel/electron18/files/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc new file mode 100644 index 000000000000..4988275c79b3 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc @@ -0,0 +1,48 @@ +--- chrome/browser/media/router/discovery/discovery_network_list_posix.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/media/router/discovery/discovery_network_list_posix.cc +@@ -5,11 +5,12 @@ + #include "chrome/browser/media/router/discovery/discovery_network_list.h" + + #include <ifaddrs.h> ++#include <sys/socket.h> ++#include <sys/types.h> ++#include <sys/time.h> + #include <net/if.h> + #include <net/if_arp.h> + #include <netinet/in.h> +-#include <sys/socket.h> +-#include <sys/types.h> + + #include <algorithm> + +@@ -18,7 +19,7 @@ + #include "chrome/browser/media/router/discovery/discovery_network_list_wifi.h" + #include "net/base/net_errors.h" + +-#if !BUILDFLAG(IS_MAC) ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + #include <netpacket/packet.h> + #else + #include <net/if_dl.h> +@@ -27,7 +28,7 @@ + namespace media_router { + namespace { + +-#if !BUILDFLAG(IS_MAC) ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + using sll = struct sockaddr_ll; + #define SOCKET_ARP_TYPE(s) ((s)->sll_hatype) + #define SOCKET_ADDRESS_LEN(s) ((s)->sll_halen) +@@ -38,6 +39,12 @@ using sll = struct sockaddr_dl; + #define SOCKET_ARP_TYPE(s) ((s)->sdl_type) + #define SOCKET_ADDRESS_LEN(s) ((s)->sdl_alen) + #define SOCKET_ADDRESS(s) (LLADDR(s)) ++#endif ++ ++#if BUILDFLAG(IS_BSD) ++bool MaybeGetWifiSSID(const std::string& if_name, std::string* ssid_out) { ++ return false; ++} + #endif + + void GetDiscoveryNetworkInfoListImpl( diff --git a/devel/electron18/files/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc b/devel/electron18/files/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc new file mode 100644 index 000000000000..ac82ca159820 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc @@ -0,0 +1,30 @@ +--- chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc.orig 2021-01-07 00:36:23 UTC ++++ chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc +@@ -9,7 +9,11 @@ + #include <sys/socket.h> + #include <sys/types.h> + ++#include "build/build_config.h" ++ ++#if !defined(OS_BSD) + #include <linux/wireless.h> ++#endif + + #include "base/check.h" + #include "base/files/scoped_file.h" +@@ -20,6 +24,7 @@ namespace media_router { + bool MaybeGetWifiSSID(const std::string& if_name, std::string* ssid_out) { + DCHECK(ssid_out); + ++#if !defined(OS_BSD) + base::ScopedFD ioctl_socket(socket(AF_INET, SOCK_DGRAM, 0)); + if (!ioctl_socket.is_valid()) { + // AF_INET is for IPv4, so it may fail for IPv6-only hosts even when there +@@ -41,6 +46,7 @@ bool MaybeGetWifiSSID(const std::string& if_name, std: + ssid_out->assign(ssid); + return true; + } ++#endif + return false; + } + diff --git a/devel/electron18/files/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc b/devel/electron18/files/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc new file mode 100644 index 000000000000..eda0994c79c1 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc @@ -0,0 +1,11 @@ +--- chrome/browser/media/webrtc/webrtc_event_log_uploader.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/media/webrtc/webrtc_event_log_uploader.cc +@@ -40,7 +40,7 @@ const char kProduct[] = "Chrome"; + const char kProduct[] = "Chrome_Mac"; + #elif BUILDFLAG(IS_CHROMEOS_ASH) + const char kProduct[] = "Chrome_ChromeOS"; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + const char kProduct[] = "Chrome_Linux"; + #elif BUILDFLAG(IS_ANDROID) + const char kProduct[] = "Chrome_Android"; diff --git a/devel/electron18/files/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc b/devel/electron18/files/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc new file mode 100644 index 000000000000..6e5a28bab98f --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc @@ -0,0 +1,13 @@ +--- chrome/browser/media/webrtc/webrtc_log_uploader.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/media/webrtc/webrtc_log_uploader.cc +@@ -363,6 +363,10 @@ void WebRtcLogUploader::SetupMultipart( + const char product[] = "Chrome_ChromeOS"; + #elif BUILDFLAG(IS_FUCHSIA) + const char product[] = "Chrome_Fuchsia"; ++#elif defined(OS_OPENBSD) ++ const char product[] = "Chrome_OpenBSD"; ++#elif defined(OS_FREEBSD) ++ const char product[] = "Chrome_FreeBSD"; + #else + #error Platform not supported. + #endif diff --git a/devel/electron18/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc b/devel/electron18/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc new file mode 100644 index 000000000000..84088fb9630c --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc @@ -0,0 +1,33 @@ +--- chrome/browser/media/webrtc/webrtc_logging_controller.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/media/webrtc/webrtc_logging_controller.cc +@@ -25,10 +25,10 @@ + #include "content/public/browser/browser_context.h" + #include "content/public/browser/render_process_host.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/public/browser/child_process_security_policy.h" + #include "storage/browser/file_system/isolated_context.h" +-#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + using webrtc_event_logging::WebRtcEventLogManager; + +@@ -282,7 +282,7 @@ void WebRtcLoggingController::StartEventLogging( + web_app_id, callback); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void WebRtcLoggingController::GetLogsDirectory( + LogsDirectoryCallback callback, + LogsDirectoryErrorCallback error_callback) { +@@ -328,7 +328,7 @@ void WebRtcLoggingController::GrantLogsDirectoryAccess + FROM_HERE, + base::BindOnce(std::move(callback), file_system.id(), registered_name)); + } +-#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + void WebRtcLoggingController::OnRtpPacket( + std::unique_ptr<uint8_t[]> packet_header, diff --git a/devel/electron18/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h b/devel/electron18/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h new file mode 100644 index 000000000000..478afe1e6d19 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h @@ -0,0 +1,20 @@ +--- chrome/browser/media/webrtc/webrtc_logging_controller.h.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/media/webrtc/webrtc_logging_controller.h +@@ -132,7 +132,7 @@ class WebRtcLoggingController + size_t web_app_id, + const StartEventLoggingCallback& callback); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Ensures that the WebRTC Logs directory exists and then grants render + // process access to the 'WebRTC Logs' directory, and invokes |callback| with + // the ids necessary to create a DirectoryEntry object. +@@ -191,7 +191,7 @@ class WebRtcLoggingController + bool success, + const std::string& error_message); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Grants the render process access to the 'WebRTC Logs' directory, and + // invokes |callback| with the ids necessary to create a DirectoryEntry + // object. If the |logs_path| couldn't be created or found, |error_callback| diff --git a/devel/electron18/files/patch-chrome_browser_memory__details.cc b/devel/electron18/files/patch-chrome_browser_memory__details.cc new file mode 100644 index 000000000000..c2504b4efb94 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_memory__details.cc @@ -0,0 +1,20 @@ +--- chrome/browser/memory_details.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/memory_details.cc +@@ -38,7 +38,7 @@ + #include "services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h" + #include "ui/base/l10n/l10n_util.h" + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD) + #include "content/public/browser/zygote_host/zygote_host_linux.h" + #endif + +@@ -329,7 +329,7 @@ void MemoryDetails::CollectChildInfoOnUIThread() { + std::ref(process))); + } + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD) + if (content::ZygoteHost::GetInstance()->IsZygotePid(process.pid)) { + process.process_type = content::PROCESS_TYPE_ZYGOTE; + } diff --git a/devel/electron18/files/patch-chrome_browser_memory__details__linux.cc b/devel/electron18/files/patch-chrome_browser_memory__details__linux.cc new file mode 100644 index 000000000000..6837b7164bba --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_memory__details__linux.cc @@ -0,0 +1,37 @@ +--- chrome/browser/memory_details_linux.cc.orig 2022-05-11 07:00:29 UTC ++++ chrome/browser/memory_details_linux.cc +@@ -13,6 +13,7 @@ + #include <set> + + #include "base/bind.h" ++#include "base/command_line.h" + #include "base/files/file_util.h" + #include "base/process/process_iterator.h" + #include "base/process/process_metrics.h" +@@ -27,6 +28,7 @@ + #include "content/public/browser/browser_task_traits.h" + #include "content/public/browser/browser_thread.h" + #include "content/public/common/process_type.h" ++#include "sandbox/policy/switches.h" + #include "ui/base/l10n/l10n_util.h" + + using base::ProcessEntry; +@@ -70,9 +72,18 @@ ProcessData GetProcessDataMemoryInformation( + + std::unique_ptr<base::ProcessMetrics> metrics( + base::ProcessMetrics::CreateProcessMetrics(pid)); ++ ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ if (!command_line->HasSwitch(sandbox::policy::switches::kNoSandbox)) { ++ pmi.num_open_fds = 0; ++ pmi.open_fds_soft_limit = 0; ++ goto out; ++ } ++ + pmi.num_open_fds = metrics->GetOpenFdCount(); + pmi.open_fds_soft_limit = metrics->GetOpenFdSoftLimit(); + ++out: + process_data.processes.push_back(pmi); + } + return process_data; diff --git a/devel/electron18/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc b/devel/electron18/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc new file mode 100644 index 000000000000..e0d9e6b0ff5c --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc @@ -0,0 +1,23 @@ +--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc +@@ -57,8 +57,10 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) ++#if !BUILDFLAG(IS_BSD) + #include <gnu/libc-version.h> ++#endif + + #include "base/linux_util.h" + #include "base/strings/string_split.h" +@@ -223,7 +225,7 @@ void RecordStartupMetrics() { + + // Record whether Chrome is the default browser or not. + // Disabled on Linux due to hanging browser tests, see crbug.com/1216328. +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + shell_integration::DefaultWebClientState default_state = + shell_integration::GetDefaultBrowser(); + base::UmaHistogramEnumeration("DefaultBrowser.State", default_state, diff --git a/devel/electron18/files/patch-chrome_browser_metrics_chrome__metrics__service__client.cc b/devel/electron18/files/patch-chrome_browser_metrics_chrome__metrics__service__client.cc new file mode 100644 index 000000000000..21d018fb3606 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_metrics_chrome__metrics__service__client.cc @@ -0,0 +1,29 @@ +--- chrome/browser/metrics/chrome_metrics_service_client.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/metrics/chrome_metrics_service_client.cc +@@ -773,7 +773,7 @@ void ChromeMetricsServiceClient::RegisterMetricsServic + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + metrics_service_->RegisterMetricsProvider( + std::make_unique<DesktopPlatformFeaturesMetricsProvider>()); +@@ -869,7 +869,7 @@ void ChromeMetricsServiceClient::RegisterMetricsServic + std::make_unique<PowerMetricsProvider>()); + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + metrics_service_->RegisterMetricsProvider( + metrics::CreateDesktopSessionMetricsProvider()); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) +@@ -1045,7 +1045,7 @@ bool ChromeMetricsServiceClient::RegisterForProfileEve + #endif + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + // This creates the DesktopProfileSessionDurationsServices if it didn't exist + // already. diff --git a/devel/electron18/files/patch-chrome_browser_metrics_perf_cpu__identity.cc b/devel/electron18/files/patch-chrome_browser_metrics_perf_cpu__identity.cc new file mode 100644 index 000000000000..1467b22135f6 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_metrics_perf_cpu__identity.cc @@ -0,0 +1,11 @@ +--- chrome/browser/metrics/perf/cpu_identity.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/metrics/perf/cpu_identity.cc +@@ -106,7 +106,7 @@ CPUIdentity GetCPUIdentity() { + result.release = + #if BUILDFLAG(IS_CHROMEOS_ASH) + base::SysInfo::KernelVersion(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + base::SysInfo::OperatingSystemVersion(); + #else + #error "Unsupported configuration" diff --git a/devel/electron18/files/patch-chrome_browser_net_system__network__context__manager.cc b/devel/electron18/files/patch-chrome_browser_net_system__network__context__manager.cc new file mode 100644 index 000000000000..e6b7dc89da21 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_net_system__network__context__manager.cc @@ -0,0 +1,38 @@ +--- chrome/browser/net/system_network_context_manager.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/net/system_network_context_manager.cc +@@ -84,7 +84,7 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "chrome/common/chrome_paths_internal.h" + #include "chrome/grit/chromium_strings.h" + #include "ui/base/l10n/l10n_util.h" +@@ -144,7 +144,7 @@ network::mojom::HttpAuthDynamicParamsPtr CreateHttpAut + auth_dynamic_params->basic_over_http_enabled = + local_state->GetBoolean(prefs::kBasicAuthOverHttpEnabled); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + auth_dynamic_params->delegate_by_kdc_policy = + local_state->GetBoolean(prefs::kAuthNegotiateDelegateByKdcPolicy); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) +@@ -377,7 +377,7 @@ SystemNetworkContextManager::SystemNetworkContextManag + pref_change_registrar_.Add(prefs::kAllHttpAuthSchemesAllowedForOrigins, + auth_pref_callback); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + pref_change_registrar_.Add(prefs::kAuthNegotiateDelegateByKdcPolicy, + auth_pref_callback); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) +@@ -437,7 +437,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRe + registry->RegisterStringPref(prefs::kAuthServerAllowlist, std::string()); + registry->RegisterStringPref(prefs::kAuthNegotiateDelegateAllowlist, + std::string()); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + registry->RegisterBooleanPref(prefs::kAuthNegotiateDelegateByKdcPolicy, + false); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron18/files/patch-chrome_browser_new__tab__page_modules_drive_drive__service.cc b/devel/electron18/files/patch-chrome_browser_new__tab__page_modules_drive_drive__service.cc new file mode 100644 index 000000000000..0e6c16255bae --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_new__tab__page_modules_drive_drive__service.cc @@ -0,0 +1,11 @@ +--- chrome/browser/new_tab_page/modules/drive/drive_service.cc.orig 2022-05-11 07:16:48 UTC ++++ chrome/browser/new_tab_page/modules/drive/drive_service.cc +@@ -28,7 +28,7 @@ + #include "services/network/public/cpp/resource_request.h" + + namespace { +-#if OS_LINUX ++#if defined(OS_LINUX) || defined(OS_BSD) + constexpr char kPlatform[] = "LINUX"; + #elif OS_WIN + constexpr char kPlatform[] = "WINDOWS"; diff --git a/devel/electron18/files/patch-chrome_browser_notifications_notification__display__service__impl.cc b/devel/electron18/files/patch-chrome_browser_notifications_notification__display__service__impl.cc new file mode 100644 index 000000000000..576416f6235b --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_notifications_notification__display__service__impl.cc @@ -0,0 +1,38 @@ +--- chrome/browser/notifications/notification_display_service_impl.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/notifications/notification_display_service_impl.cc +@@ -32,7 +32,7 @@ + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include "chrome/browser/send_tab_to_self/desktop_notification_handler.h" + #include "chrome/browser/sharing/sharing_notification_handler.h" + #endif +@@ -65,7 +65,7 @@ NotificationDisplayServiceImpl* NotificationDisplaySer + // static + void NotificationDisplayServiceImpl::RegisterProfilePrefs( + user_prefs::PrefRegistrySyncable* registry) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + registry->RegisterBooleanPref(prefs::kAllowNativeNotifications, true); + registry->RegisterBooleanPref(prefs::kAllowSystemNotifications, true); + #endif +@@ -82,7 +82,7 @@ NotificationDisplayServiceImpl::NotificationDisplaySer + std::make_unique<PersistentNotificationHandler>()); + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + AddNotificationHandler( + NotificationHandler::Type::SEND_TAB_TO_SELF, + std::make_unique<send_tab_to_self::DesktopNotificationHandler>( +@@ -90,7 +90,7 @@ NotificationDisplayServiceImpl::NotificationDisplaySer + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + AddNotificationHandler( + NotificationHandler::Type::TAILORED_SECURITY, + std::make_unique<safe_browsing::TailoredSecurityNotificationHandler>()); diff --git a/devel/electron18/files/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc b/devel/electron18/files/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc new file mode 100644 index 000000000000..d80be019cabb --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc @@ -0,0 +1,11 @@ +--- chrome/browser/notifications/notification_platform_bridge_delegator.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/notifications/notification_platform_bridge_delegator.cc +@@ -57,7 +57,7 @@ bool SystemNotificationsEnabled(Profile* profile) { + #elif BUILDFLAG(IS_WIN) + return NotificationPlatformBridgeWin::SystemNotificationEnabled(); + #else +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (profile) { + // Prefs take precedence over flags. + PrefService* prefs = profile->GetPrefs(); diff --git a/devel/electron18/files/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc b/devel/electron18/files/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc new file mode 100644 index 000000000000..86d940d06daa --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_password__manager_password__reuse__manager__factory.cc @@ -0,0 +1,11 @@ +--- chrome/browser/password_manager/password_reuse_manager_factory.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/password_manager/password_reuse_manager_factory.cc +@@ -94,7 +94,7 @@ KeyedService* PasswordReuseManagerFactory::BuildServic + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS_LACROS) ++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + std::unique_ptr<password_manager::PasswordStoreSigninNotifier> notifier = + std::make_unique<password_manager::PasswordStoreSigninNotifierImpl>( + IdentityManagerFactory::GetForProfile(profile)); diff --git a/devel/electron18/files/patch-chrome_browser_performance__manager_policies_high__pmf__discard__policy.cc b/devel/electron18/files/patch-chrome_browser_performance__manager_policies_high__pmf__discard__policy.cc new file mode 100644 index 000000000000..31d9192e6945 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_performance__manager_policies_high__pmf__discard__policy.cc @@ -0,0 +1,20 @@ +--- chrome/browser/performance_manager/policies/high_pmf_discard_policy.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/performance_manager/policies/high_pmf_discard_policy.cc +@@ -17,7 +17,7 @@ + #include "content/public/browser/browser_task_traits.h" + #include "content/public/browser/browser_thread.h" + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + #include "base/memory/memory_pressure_monitor.h" + #endif + +@@ -122,7 +122,7 @@ void HighPMFDiscardPolicy::OnProcessMemoryMetricsAvail + + if (should_discard) { + discard_attempt_in_progress_ = true; +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + // Record the memory pressure level before discarding a tab. + content::GetUIThreadTaskRunner({})->PostTask( + FROM_HERE, base::BindOnce([]() { diff --git a/devel/electron18/files/patch-chrome_browser_performance__monitor_process__metrics__recorder__util.cc b/devel/electron18/files/patch-chrome_browser_performance__monitor_process__metrics__recorder__util.cc new file mode 100644 index 000000000000..9a41ebdede29 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_performance__monitor_process__metrics__recorder__util.cc @@ -0,0 +1,11 @@ +--- chrome/browser/performance_monitor/process_metrics_recorder_util.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/performance_monitor/process_metrics_recorder_util.cc +@@ -39,7 +39,7 @@ void RecordProcessHistograms(const char* histogram_suf + metrics.cpu_usage * kCPUUsageFactor, kCPUUsageHistogramMin, + kCPUUsageHistogramMax, kCPUUsageHistogramBucketCount); + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + base::UmaHistogramCounts10000( + base::JoinString({"PerformanceMonitor.IdleWakeups.", histogram_suffix}, + ""), diff --git a/devel/electron18/files/patch-chrome_browser_performance__monitor_process__monitor.cc b/devel/electron18/files/patch-chrome_browser_performance__monitor_process__monitor.cc new file mode 100644 index 000000000000..26add386e2f0 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_performance__monitor_process__monitor.cc @@ -0,0 +1,11 @@ +--- chrome/browser/performance_monitor/process_monitor.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/performance_monitor/process_monitor.cc +@@ -82,7 +82,7 @@ ProcessMonitor::Metrics& operator+=(ProcessMonitor::Me + lhs.cpu_usage += rhs.cpu_usage; + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + lhs.idle_wakeups += rhs.idle_wakeups; + #endif + diff --git a/devel/electron18/files/patch-chrome_browser_performance__monitor_process__monitor.h b/devel/electron18/files/patch-chrome_browser_performance__monitor_process__monitor.h new file mode 100644 index 000000000000..153cb3398ffa --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_performance__monitor_process__monitor.h @@ -0,0 +1,11 @@ +--- chrome/browser/performance_monitor/process_monitor.h.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/performance_monitor/process_monitor.h +@@ -52,7 +52,7 @@ class ProcessMonitor { + double cpu_usage = 0.0; + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_AIX) ++ BUILDFLAG(IS_AIX) || BUILDFLAG(IS_BSD) + // Returns the number of average idle cpu wakeups per second since the last + // time the metric was sampled. + int idle_wakeups = 0; diff --git a/devel/electron18/files/patch-chrome_browser_platform__util__linux.cc b/devel/electron18/files/patch-chrome_browser_platform__util__linux.cc new file mode 100644 index 000000000000..c4ad9cd95913 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_platform__util__linux.cc @@ -0,0 +1,12 @@ +--- chrome/browser/platform_util_linux.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/platform_util_linux.cc +@@ -298,7 +298,9 @@ void RunCommand(const std::string& command, + + base::LaunchOptions options; + options.current_directory = working_directory; ++#if !defined(OS_BSD) + options.allow_new_privs = true; ++#endif + // xdg-open can fall back on mailcap which eventually might plumb through + // to a command that needs a terminal. Set the environment variable telling + // it that we definitely don't have a terminal available and that it should diff --git a/devel/electron18/files/patch-chrome_browser_plugins_plugins__resource__service.cc b/devel/electron18/files/patch-chrome_browser_plugins_plugins__resource__service.cc new file mode 100644 index 000000000000..84459522b2e2 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_plugins_plugins__resource__service.cc @@ -0,0 +1,11 @@ +--- chrome/browser/plugins/plugins_resource_service.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/plugins/plugins_resource_service.cc +@@ -62,7 +62,7 @@ GURL GetPluginsServerURL() { + filename = "plugins_win.json"; + #elif BUILDFLAG(IS_CHROMEOS_ASH) + filename = "plugins_chromeos.json"; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + filename = "plugins_linux.json"; + #elif BUILDFLAG(IS_MAC) + filename = "plugins_mac.json"; diff --git a/devel/electron18/files/patch-chrome_browser_policy_browser__signin__policy__handler.cc b/devel/electron18/files/patch-chrome_browser_policy_browser__signin__policy__handler.cc new file mode 100644 index 000000000000..540a47365b03 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_policy_browser__signin__policy__handler.cc @@ -0,0 +1,11 @@ +--- chrome/browser/policy/browser_signin_policy_handler.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/policy/browser_signin_policy_handler.cc +@@ -43,7 +43,7 @@ void BrowserSigninPolicyHandler::ApplyPolicySettings(c + const base::Value* value = policies.GetValue(policy_name()); + switch (static_cast<BrowserSigninMode>(value->GetInt())) { + case BrowserSigninMode::kForced: +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + prefs->SetValue(prefs::kForceBrowserSignin, base::Value(true)); + #endif + [[fallthrough]]; diff --git a/devel/electron18/files/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc b/devel/electron18/files/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc new file mode 100644 index 000000000000..9904e8077c60 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc @@ -0,0 +1,38 @@ +--- chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc +@@ -46,7 +46,7 @@ + #include "chrome/browser/policy/browser_dm_token_storage_mac.h" + #endif // BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/policy/browser_dm_token_storage_linux.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +@@ -55,7 +55,7 @@ + #include "chrome/install_static/install_util.h" + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/connectors/device_trust/device_trust_features.h" + #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/device_trust_key_manager_impl.h" + #include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/key_rotation_launcher.h" +@@ -88,7 +88,7 @@ void ChromeBrowserCloudManagementControllerDesktop:: + + #if BUILDFLAG(IS_MAC) + storage_delegate = std::make_unique<BrowserDMTokenStorageMac>(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + storage_delegate = std::make_unique<BrowserDMTokenStorageLinux>(); + #elif BUILDFLAG(IS_WIN) + storage_delegate = std::make_unique<BrowserDMTokenStorageWin>(); +@@ -243,7 +243,7 @@ ChromeBrowserCloudManagementControllerDesktop::CreateC + + std::unique_ptr<enterprise_connectors::DeviceTrustKeyManager> + ChromeBrowserCloudManagementControllerDesktop::CreateDeviceTrustKeyManager() { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (enterprise_connectors::IsDeviceTrustConnectorFeatureEnabled()) { + auto key_rotation_launcher = + enterprise_connectors::KeyRotationLauncher::Create( diff --git a/devel/electron18/files/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc b/devel/electron18/files/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc new file mode 100644 index 000000000000..3ec5f8097375 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc @@ -0,0 +1,47 @@ +--- chrome/browser/policy/configuration_policy_handler_list_factory.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/policy/configuration_policy_handler_list_factory.cc +@@ -1456,7 +1456,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + base::Value::Type::BOOLEAN }, + #endif // !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + { key::kAuthNegotiateDelegateByKdcPolicy, + prefs::kAuthNegotiateDelegateByKdcPolicy, + base::Value::Type::BOOLEAN }, +@@ -1565,7 +1565,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = + base::Value::Type::BOOLEAN }, + #endif // BUILDFLAG(IS_CHROMEOS_ASH) + +-#if BUILDFLAG(ENABLE_EXTENSIONS) && (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)) ++#if BUILDFLAG(ENABLE_EXTENSIONS) && (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + { key::kChromeAppsEnabled, + extensions::pref_names::kChromeAppsEnabled, + base::Value::Type::BOOLEAN }, +@@ -1885,7 +1885,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildH + #endif // BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + handlers->AddHandler( + std::make_unique< + enterprise_connectors::EnterpriseConnectorsPolicyHandler>( +@@ -2256,7 +2256,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildH + SimpleSchemaValidatingPolicyHandler::MANDATORY_ALLOWED)); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + handlers->AddHandler(std::make_unique<SimpleSchemaValidatingPolicyHandler>( + key::kWebAppSettings, prefs::kWebAppSettings, chrome_schema, + SCHEMA_ALLOW_UNKNOWN, +@@ -2287,7 +2287,7 @@ std::unique_ptr<ConfigurationPolicyHandlerList> BuildH + policy::key::kSpellcheckLanguageBlocklist)); + #endif // BUILDFLAG(ENABLE_SPELLCHECK) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + handlers->AddHandler(std::make_unique<SimpleDeprecatingPolicyHandler>( + std::make_unique<SimplePolicyHandler>(key::kAllowNativeNotifications, + prefs::kAllowNativeNotifications, diff --git a/devel/electron18/files/patch-chrome_browser_policy_device__management__service__configuration.cc b/devel/electron18/files/patch-chrome_browser_policy_device__management__service__configuration.cc new file mode 100644 index 000000000000..567090ebd8ca --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_policy_device__management__service__configuration.cc @@ -0,0 +1,20 @@ +--- chrome/browser/policy/device_management_service_configuration.cc.orig 2022-05-19 03:45:17 UTC ++++ chrome/browser/policy/device_management_service_configuration.cc +@@ -21,7 +21,7 @@ + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ + ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ +- !BUILDFLAG(IS_ANDROID)) ++ !BUILDFLAG(IS_ANDROID)) || BUILDFLAG(IS_BSD) + #include "chrome/browser/enterprise/connectors/common.h" + #include "chrome/browser/enterprise/connectors/connectors_service.h" + #endif +@@ -100,7 +100,7 @@ DeviceManagementServiceConfiguration::GetReportingConn + content::BrowserContext* context) const { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ + ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ +- !BUILDFLAG(IS_ANDROID)) ++ !BUILDFLAG(IS_ANDROID)) || BUILDFLAG(IS_BSD) + auto* service = + enterprise_connectors::ConnectorsServiceFactory::GetForBrowserContext( + context); diff --git a/devel/electron18/files/patch-chrome_browser_prefs_browser__prefs.cc b/devel/electron18/files/patch-chrome_browser_prefs_browser__prefs.cc new file mode 100644 index 000000000000..6e7d8f4ac6ae --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_prefs_browser__prefs.cc @@ -0,0 +1,46 @@ +--- chrome/browser/prefs/browser_prefs.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/prefs/browser_prefs.cc +@@ -418,14 +418,14 @@ + #include "components/os_crypt/os_crypt.h" + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + #include "chrome/browser/web_applications/url_handler_prefs.h" + #endif + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + #include "chrome/browser/browser_switcher/browser_switcher_prefs.h" + #endif +@@ -1139,7 +1139,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) + // TODO(crbug/1169547) Remove `BUILDFLAG(IS_CHROMEOS_LACROS)` once the + // migration is complete. + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_CHROMEOS_LACROS) ++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + enterprise_connectors::RegisterLocalPrefs(registry); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) + +@@ -1171,7 +1171,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) + #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + web_app::url_handler_prefs::RegisterLocalStatePrefs(registry); + #endif +@@ -1469,7 +1469,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySync + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + browser_switcher::BrowserSwitcherPrefs::RegisterProfilePrefs(registry); + #endif diff --git a/devel/electron18/files/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc b/devel/electron18/files/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc new file mode 100644 index 000000000000..00414d02c3ec --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc @@ -0,0 +1,11 @@ +--- chrome/browser/prefs/pref_service_incognito_allowlist.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/prefs/pref_service_incognito_allowlist.cc +@@ -139,7 +139,7 @@ const char* const kPersistentPrefNames[] = { + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Toggleing custom frames affects all open windows in the profile, hence + // should be written to the regular profile when changed in incognito mode. + prefs::kUseCustomChromeFrame, diff --git a/devel/electron18/files/patch-chrome_browser_printing_print__job__worker.cc b/devel/electron18/files/patch-chrome_browser_printing_print__job__worker.cc new file mode 100644 index 000000000000..2a9de3d7327b --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_printing_print__job__worker.cc @@ -0,0 +1,11 @@ +--- chrome/browser/printing/print_job_worker.cc.orig 2022-05-20 04:30:53 UTC ++++ chrome/browser/printing/print_job_worker.cc +@@ -225,7 +225,7 @@ void PrintJobWorker::UpdatePrintSettings(base::Value n + crash_key = std::make_unique<crash_keys::ScopedPrinterInfo>( + print_backend->GetPrinterDriverInfo(printer_name)); + +-#if BUILDFLAG(IS_LINUX) && defined(USE_CUPS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(USE_CUPS) + PrinterBasicInfo basic_info; + if (print_backend->GetPrinterBasicInfo(printer_name, &basic_info) == + mojom::ResultCode::kSuccess) { diff --git a/devel/electron18/files/patch-chrome_browser_process__singleton__posix.cc b/devel/electron18/files/patch-chrome_browser_process__singleton__posix.cc new file mode 100644 index 000000000000..4fc5f82e0cfa --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_process__singleton__posix.cc @@ -0,0 +1,36 @@ +--- chrome/browser/process_singleton_posix.cc.orig 2022-05-31 05:47:45 UTC ++++ chrome/browser/process_singleton_posix.cc +@@ -101,13 +101,13 @@ + #include "ui/base/l10n/l10n_util.h" + + #if 0 +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/process_singleton_dialog_linux.h" + #endif + #endif + + #if defined(TOOLKIT_VIEWS) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + #include "ui/views/linux_ui/linux_ui.h" + #endif + +@@ -364,7 +364,7 @@ bool DisplayProfileInUseError(const base::FilePath& lo + if (g_disable_prompt) + return g_user_opted_unlock_in_use_profile; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::u16string relaunch_button_text = + l10n_util::GetStringUTF16(IDS_PROFILE_IN_USE_LINUX_RELAUNCH); + return ShowProcessSingletonDialog(error, relaunch_button_text); +@@ -989,7 +989,7 @@ ProcessSingleton::NotifyResult ProcessSingleton::Notif + return PROCESS_NONE; + } else if (strncmp(buf, kACKToken, base::size(kACKToken) - 1) == 0) { + #if defined(TOOLKIT_VIEWS) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + // Likely NULL in unit tests. + views::LinuxUI* linux_ui = views::LinuxUI::instance(); + if (linux_ui) diff --git a/devel/electron18/files/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc b/devel/electron18/files/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc new file mode 100644 index 000000000000..a54a9d62a1af --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc @@ -0,0 +1,11 @@ +--- chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +@@ -393,7 +393,7 @@ void ChromeBrowserMainExtraPartsProfiles:: + #endif + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + metrics::DesktopProfileSessionDurationsServiceFactory::GetInstance(); + #endif diff --git a/devel/electron18/files/patch-chrome_browser_profiles_profile__impl.cc b/devel/electron18/files/patch-chrome_browser_profiles_profile__impl.cc new file mode 100644 index 000000000000..2720315f6849 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_profiles_profile__impl.cc @@ -0,0 +1,31 @@ +--- chrome/browser/profiles/profile_impl.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/profiles/profile_impl.cc +@@ -263,6 +263,10 @@ + #include "chrome/browser/spellchecker/spellcheck_service.h" + #endif + ++#if BUILDFLAG(IS_OPENBSD) ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++#endif ++ + using bookmarks::BookmarkModel; + using content::BrowserThread; + using content::DownloadManagerDelegate; +@@ -848,7 +852,17 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) + } + + base::FilePath ProfileImpl::last_selected_directory() { ++#if BUILDFLAG(IS_OPENBSD) ++ // If unveil(2) is used, force the file dialog directory to something we ++ // know is available. ++ auto* sandbox = sandbox::policy::SandboxLinux::GetInstance(); ++ if (sandbox->unveil_initialized()) ++ return GetPrefs()->GetFilePath(prefs::kDownloadDefaultDirectory); ++ else ++ return GetPrefs()->GetFilePath(prefs::kSelectFileLastDirectory); ++#else + return GetPrefs()->GetFilePath(prefs::kSelectFileLastDirectory); ++#endif + } + + void ProfileImpl::set_last_selected_directory(const base::FilePath& path) { diff --git a/devel/electron18/files/patch-chrome_browser_profiles_profiles__state.cc b/devel/electron18/files/patch-chrome_browser_profiles_profiles__state.cc new file mode 100644 index 000000000000..9032aa102a33 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_profiles_profiles__state.cc @@ -0,0 +1,11 @@ +--- chrome/browser/profiles/profiles_state.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/profiles/profiles_state.cc +@@ -176,7 +176,7 @@ bool IsGuestModeRequested(const base::CommandLine& com + PrefService* local_state, + bool show_warning) { + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + DCHECK(local_state); + + // Check if guest mode enforcement commandline switch or policy are provided. diff --git a/devel/electron18/files/patch-chrome_browser_renderer__preferences__util.cc b/devel/electron18/files/patch-chrome_browser_renderer__preferences__util.cc new file mode 100644 index 000000000000..1fdffa37370f --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_renderer__preferences__util.cc @@ -0,0 +1,29 @@ +--- chrome/browser/renderer_preferences_util.cc.orig 2022-05-19 05:17:37 UTC ++++ chrome/browser/renderer_preferences_util.cc +@@ -37,7 +37,7 @@ + #include "ui/views/controls/textfield/textfield.h" + #endif + +-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + #include "chrome/browser/themes/theme_service.h" + #include "chrome/browser/themes/theme_service_factory.h" + #include "ui/views/linux_ui/linux_ui.h" +@@ -159,7 +159,7 @@ void UpdateFromSystemSettings(blink::RendererPreferenc + prefs->caret_blink_interval = views::Textfield::GetCaretBlinkInterval(); + #endif + +-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + views::LinuxUI* linux_ui = views::LinuxUI::instance(); + if (linux_ui) { + if (ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme()) { +@@ -179,7 +179,7 @@ void UpdateFromSystemSettings(blink::RendererPreferenc + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + content::UpdateFontRendererPreferencesFromSystemSettings(prefs); + #endif + diff --git a/devel/electron18/files/patch-chrome_browser_resources_plugin__metadata_plugins__linux.json b/devel/electron18/files/patch-chrome_browser_resources_plugin__metadata_plugins__linux.json new file mode 100644 index 000000000000..93b22d5be064 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_resources_plugin__metadata_plugins__linux.json @@ -0,0 +1,31 @@ +--- chrome/browser/resources/plugin_metadata/plugins_linux.json.orig 2022-05-11 07:00:30 UTC ++++ chrome/browser/resources/plugin_metadata/plugins_linux.json +@@ -1,28 +1,5 @@ + { + "x-version": 46, +- "adobe-flash-player": { +- "mime_types": [ +- "application/futuresplash", +- "application/x-shockwave-flash" +- ], +- "matching_mime_types": [ +- "application/futuresplash" +- ], +- "versions": [ +- { +- "version": "32.0.0.445", +- "status": "up_to_date", +- "reference": "https://helpx.adobe.com/security/products/flash-player/apsb20-58.html" +- } +- ], +- "lang": "en-US", +- "name": "Adobe Flash Player", +- "help_url": "https://support.google.com/chrome/?p=plugin_flash", +- "url": "https://support.google.com/chrome/answer/6258784", +- "displayurl": true, +- "group_name_matcher": "*Shockwave Flash*", +- "plugin_is_deprecated": true +- }, + "google-chrome-pdf": { + "mime_types": [ + ], diff --git a/devel/electron18/files/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.ts b/devel/electron18/files/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.ts new file mode 100644 index 000000000000..24e4a46e0b27 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.ts @@ -0,0 +1,20 @@ +--- chrome/browser/resources/settings/appearance_page/appearance_browser_proxy.ts.orig 2022-05-11 07:16:48 UTC ++++ chrome/browser/resources/settings/appearance_page/appearance_browser_proxy.ts +@@ -16,7 +16,7 @@ export interface AppearanceBrowserProxy { + + useDefaultTheme(): void; + +- // <if expr="is_linux and not chromeos"> ++ // <if expr="is_bsd and not chromeos"> + useSystemTheme(): void; + // </if> + +@@ -44,7 +44,7 @@ export class AppearanceBrowserProxyImpl implements App + chrome.send('useDefaultTheme'); + } + +- // <if expr="is_linux and not chromeos"> ++ // <if expr="is_bsd and not chromeos"> + useSystemTheme() { + chrome.send('useSystemTheme'); + } diff --git a/devel/electron18/files/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html b/devel/electron18/files/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html new file mode 100644 index 000000000000..3f9bafb251f4 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html @@ -0,0 +1,29 @@ +--- chrome/browser/resources/settings/appearance_page/appearance_page.html.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/resources/settings/appearance_page/appearance_page.html +@@ -27,7 +27,7 @@ + <cr-link-row class="first" hidden="[[!pageVisibility.setTheme]]" + label="$i18n{themes}" sub-label="[[themeSublabel_]]" + on-click="openThemeUrl_" external></cr-link-row> +-<if expr="not is_linux or chromeos_ash or chromeos_lacros"> ++<if expr="not is_posix or chromeos_ash or chromeos_lacros"> + <template is="dom-if" if="[[prefs.extensions.theme.id.value]]"> + <div class="separator"></div> + <cr-button id="useDefault" on-click="onUseDefaultTap_"> +@@ -35,7 +35,7 @@ + </cr-button> + </template> + </if> +-<if expr="is_linux and not chromeos and not lacros"> ++<if expr="is_posix and not chromeos and not lacros"> + <div class="settings-row continuation" + hidden="[[!showThemesSecondary_( + prefs.extensions.theme.id.value, useSystemTheme_)]]" +@@ -109,7 +109,7 @@ + pref="{{prefs.bookmark_bar.show_on_all_tabs}}" + label="$i18n{showBookmarksBar}"> + </settings-toggle-button> +-<if expr="is_linux and not chromeos and not lacros"> ++<if expr="is_posix and not chromeos and not lacros"> + <div class="hr" hidden="[[!pageVisibility.bookmarksBar]]"></div> + <settings-toggle-button + hidden="[[!showCustomChromeFrame_]]" diff --git a/devel/electron18/files/patch-chrome_browser_resources_settings_appearance__page_appearance__page.ts b/devel/electron18/files/patch-chrome_browser_resources_settings_appearance__page_appearance__page.ts new file mode 100644 index 000000000000..28936791b335 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_resources_settings_appearance__page_appearance__page.ts @@ -0,0 +1,51 @@ +--- chrome/browser/resources/settings/appearance_page/appearance_page.ts.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/resources/settings/appearance_page/appearance_page.ts +@@ -146,7 +146,7 @@ export class SettingsAppearancePageElement extends + 'prefs.autogenerated.theme.policy.color.controlledBy)', + }, + +- // <if expr="is_linux and not chromeos and not lacros"> ++ // <if expr="is_posix and not chromeos and not lacros"> + /** + * Whether to show the "Custom Chrome Frame" setting. + */ +@@ -168,7 +168,7 @@ export class SettingsAppearancePageElement extends + 'themeChanged_(' + + 'prefs.extensions.theme.id.value, useSystemTheme_, isForcedTheme_)', + +- // <if expr="is_linux and not chromeos"> ++ // <if expr="is_posix and not chromeos"> + // NOTE: this pref only exists on Linux. + 'useSystemThemePrefChanged_(prefs.extensions.theme.use_system.value)', + // </if> +@@ -187,7 +187,7 @@ export class SettingsAppearancePageElement extends + private showReaderModeOption_: boolean; + private isForcedTheme_: boolean; + +- // <if expr="is_linux and not chromeos and not lacros"> ++ // <if expr="is_posix and not chromeos and not lacros"> + private showCustomChromeFrame_: boolean; + // </if> + +@@ -265,7 +265,7 @@ export class SettingsAppearancePageElement extends + this.appearanceBrowserProxy_.useDefaultTheme(); + } + +- // <if expr="is_linux and not chromeos"> ++ // <if expr="is_posix and not chromeos"> + private useSystemThemePrefChanged_(useSystemTheme: boolean) { + this.useSystemTheme_ = useSystemTheme; + } +@@ -326,10 +326,10 @@ export class SettingsAppearancePageElement extends + } + + let i18nId; +- // <if expr="is_linux and not chromeos and not lacros"> ++ // <if expr="is_posix and not chromeos and not lacros"> + i18nId = useSystemTheme ? 'systemTheme' : 'classicTheme'; + // </if> +- // <if expr="not is_linux or chromeos_ash or chromeos_lacros"> ++ // <if expr="not is_posix or chromeos_ash or chromeos_lacros"> + i18nId = 'chooseFromWebStore'; + // </if> + this.themeSublabel_ = this.i18n(i18nId); diff --git a/devel/electron18/files/patch-chrome_browser_resources_settings_autofill__page_passwords__shared__css.html b/devel/electron18/files/patch-chrome_browser_resources_settings_autofill__page_passwords__shared__css.html new file mode 100644 index 000000000000..c84eac18ec22 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_resources_settings_autofill__page_passwords__shared__css.html @@ -0,0 +1,11 @@ +--- chrome/browser/resources/settings/autofill_page/passwords_shared_css.html.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/resources/settings/autofill_page/passwords_shared_css.html +@@ -64,7 +64,7 @@ + * necessary to prevent Chrome from using the operating system's font + * instead of the Material Design font. + * TODO(dbeam): why not font: inherit? */ +-<if expr="chromeos_ash or chromeos_lacros or is_linux"> ++<if expr="chromeos_ash or chromeos_lacros or is_posix"> + font-family: 'DejaVu Sans Mono', monospace; + </if> + <if expr="is_win"> diff --git a/devel/electron18/files/patch-chrome_browser_resources_settings_route.ts b/devel/electron18/files/patch-chrome_browser_resources_settings_route.ts new file mode 100644 index 000000000000..ada2ca78d711 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_resources_settings_route.ts @@ -0,0 +1,11 @@ +--- chrome/browser/resources/settings/route.ts.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/resources/settings/route.ts +@@ -185,7 +185,7 @@ function createBrowserSettingsRoutes(): SettingsRoutes + + r.ACCESSIBILITY = r.ADVANCED.createSection('/accessibility', 'a11y'); + +- // <if expr="is_linux"> ++ // <if expr="is_posix"> + r.CAPTIONS = r.ACCESSIBILITY.createChild('/captions'); + // </if> + diff --git a/devel/electron18/files/patch-chrome_browser_resources_signin_signin__shared__css.html b/devel/electron18/files/patch-chrome_browser_resources_signin_signin__shared__css.html new file mode 100644 index 000000000000..f1593fbf79ac --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_resources_signin_signin__shared__css.html @@ -0,0 +1,11 @@ +--- chrome/browser/resources/signin/signin_shared_css.html.orig 2021-07-15 19:13:33 UTC ++++ chrome/browser/resources/signin/signin_shared_css.html +@@ -30,7 +30,7 @@ + margin-inline-start: 8px; + } + +-<if expr="is_macosx or is_linux"> ++<if expr="is_macosx or is_posix"> + .action-container { + flex-flow: row-reverse; + justify-content: flex-start; diff --git a/devel/electron18/files/patch-chrome_browser_safe__browsing_download__protection_file__analyzer.cc b/devel/electron18/files/patch-chrome_browser_safe__browsing_download__protection_file__analyzer.cc new file mode 100644 index 000000000000..ef05183141e1 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_safe__browsing_download__protection_file__analyzer.cc @@ -0,0 +1,29 @@ +--- chrome/browser/safe_browsing/download_protection/file_analyzer.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/safe_browsing/download_protection/file_analyzer.cc +@@ -21,7 +21,7 @@ + #include "content/public/browser/browser_thread.h" + #include "url/gurl.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) | BUILDFLAG(IS_BSD) + #include "chrome/browser/safe_browsing/download_protection/document_analysis_service.h" + #endif + +@@ -102,7 +102,7 @@ void FileAnalyzer::Start(const base::FilePath& target_ + } else if (inspection_type == DownloadFileType::DMG) { + StartExtractDmgFeatures(); + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + } else if (base::FeatureList::IsEnabled( + safe_browsing::kClientSideDetectionDocumentScanning) && + inspection_type == DownloadFileType::OFFICE_DOCUMENT) { +@@ -286,7 +286,7 @@ void FileAnalyzer::OnDmgAnalysisFinished( + } + #endif // BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + void FileAnalyzer::StartExtractDocumentFeatures() { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + diff --git a/devel/electron18/files/patch-chrome_browser_safe__browsing_download__protection_file__analyzer.h b/devel/electron18/files/patch-chrome_browser_safe__browsing_download__protection_file__analyzer.h new file mode 100644 index 000000000000..d5e5fc7c16d1 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_safe__browsing_download__protection_file__analyzer.h @@ -0,0 +1,29 @@ +--- chrome/browser/safe_browsing/download_protection/file_analyzer.h.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/safe_browsing/download_protection/file_analyzer.h +@@ -16,7 +16,7 @@ + #include "components/safe_browsing/core/common/proto/csd.pb.h" + #include "third_party/protobuf/src/google/protobuf/repeated_field.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/services/file_util/public/cpp/sandboxed_document_analyzer.h" + #endif + +@@ -111,7 +111,7 @@ class FileAnalyzer { + const safe_browsing::ArchiveAnalyzerResults& archive_results); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + void StartExtractDocumentFeatures(); + void OnDocumentAnalysisFinished( + const DocumentAnalyzerResults& document_results); +@@ -131,7 +131,7 @@ class FileAnalyzer { + scoped_refptr<SandboxedDMGAnalyzer> dmg_analyzer_; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + scoped_refptr<SandboxedDocumentAnalyzer> document_analyzer_; + base::TimeTicks document_analysis_start_time_; + #endif diff --git a/devel/electron18/files/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc b/devel/electron18/files/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc new file mode 100644 index 000000000000..4d81d39d0dd5 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_safe__browsing_incident__reporting_incident__reporting__service.cc @@ -0,0 +1,11 @@ +--- chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc +@@ -709,7 +709,7 @@ void IncidentReportingService::OnEnvironmentDataCollec + + // Process::Current().CreationTime() is missing on some platforms. + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::TimeDelta uptime = + first_incident_time_ - base::Process::Current().CreationTime(); + environment_data->mutable_process()->set_uptime_msec(uptime.InMilliseconds()); diff --git a/devel/electron18/files/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc b/devel/electron18/files/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc new file mode 100644 index 000000000000..72efa60d04f0 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_send__tab__to__self_receiving__ui__handler__registry.cc @@ -0,0 +1,20 @@ +--- chrome/browser/send_tab_to_self/receiving_ui_handler_registry.cc.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/send_tab_to_self/receiving_ui_handler_registry.cc +@@ -16,7 +16,7 @@ + #include "components/send_tab_to_self/features.h" + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include "chrome/browser/send_tab_to_self/desktop_notification_handler.h" + #include "chrome/browser/ui/send_tab_to_self/send_tab_to_self_toolbar_icon_controller.h" + #endif +@@ -48,7 +48,7 @@ SendTabToSelfToolbarIconController* + ReceivingUiHandlerRegistry::GetToolbarButtonControllerForProfile( + Profile* profile) { + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + for (const std::unique_ptr<ReceivingUiHandler>& handler : + applicable_handlers_) { + auto* button_controller = diff --git a/devel/electron18/files/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc b/devel/electron18/files/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc new file mode 100644 index 000000000000..48427b069495 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_send__tab__to__self_send__tab__to__self__client__service.cc @@ -0,0 +1,20 @@ +--- chrome/browser/send_tab_to_self/send_tab_to_self_client_service.cc.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/send_tab_to_self/send_tab_to_self_client_service.cc +@@ -17,7 +17,7 @@ + #include "components/send_tab_to_self/send_tab_to_self_model.h" + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/send_tab_to_self/send_tab_to_self_toolbar_icon_controller.h" + #endif + +@@ -51,7 +51,7 @@ void SendTabToSelfClientService::EntriesAddedRemotely( + const std::vector<const SendTabToSelfEntry*>& new_entries) { + for (const std::unique_ptr<ReceivingUiHandler>& handler : GetHandlers()) { + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Only respond to notifications corresponding to this service's profile + // for these OSes; mobile does not have a Profile. + // Cast note: on desktop, handlers are guaranteed to be the derived class diff --git a/devel/electron18/files/patch-chrome_browser_sharing_sharing__device__registration.cc b/devel/electron18/files/patch-chrome_browser_sharing_sharing__device__registration.cc new file mode 100644 index 000000000000..3838b896ce97 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_sharing_sharing__device__registration.cc @@ -0,0 +1,11 @@ +--- chrome/browser/sharing/sharing_device_registration.cc.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/sharing/sharing_device_registration.cc +@@ -327,7 +327,7 @@ bool SharingDeviceRegistration::IsSmsFetcherSupported( + + bool SharingDeviceRegistration::IsRemoteCopySupported() const { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return true; + #else + return false; diff --git a/devel/electron18/files/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc b/devel/electron18/files/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc new file mode 100644 index 000000000000..7f27e5674308 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_sharing_sharing__handler__registry__impl.cc @@ -0,0 +1,20 @@ +--- chrome/browser/sharing/sharing_handler_registry_impl.cc.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/sharing/sharing_handler_registry_impl.cc +@@ -24,7 +24,7 @@ + #endif // BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS_LACROS)) BUILDFLAG(IS_CHROMEOS) +@@ -77,7 +77,7 @@ SharingHandlerRegistryImpl::SharingHandlerRegistryImpl + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (sharing_device_registration->IsRemoteCopySupported()) { + AddSharingHandler( + std::make_unique<RemoteCopyMessageHandler>(profile), diff --git a/devel/electron18/files/patch-chrome_browser_shutdown__signal__handlers__posix.cc b/devel/electron18/files/patch-chrome_browser_shutdown__signal__handlers__posix.cc new file mode 100644 index 000000000000..0b05cfe186c3 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_shutdown__signal__handlers__posix.cc @@ -0,0 +1,21 @@ +--- chrome/browser/shutdown_signal_handlers_posix.cc.orig 2022-05-11 07:00:30 UTC ++++ chrome/browser/shutdown_signal_handlers_posix.cc +@@ -187,12 +187,18 @@ void InstallShutdownSignalHandlers( + g_pipe_pid = getpid(); + g_shutdown_pipe_read_fd = pipefd[0]; + g_shutdown_pipe_write_fd = pipefd[1]; ++#if defined(OS_BSD) ++ // PTHREAD_STACK_MIN causes chromium to crash under *BSD, ++ // we request the default pthread stack size by specifying 0 here. ++ const size_t kShutdownDetectorThreadStackSize = 0; ++#else + #if !defined(ADDRESS_SANITIZER) + const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 2; + #else + // ASan instrumentation bloats the stack frames, so we need to increase the + // stack size to avoid hitting the guard page. + const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 4; ++#endif + #endif + ShutdownDetector* detector = new ShutdownDetector( + g_shutdown_pipe_read_fd, std::move(shutdown_callback), task_runner); diff --git a/devel/electron18/files/patch-chrome_browser_signin_signin__util.cc b/devel/electron18/files/patch-chrome_browser_signin_signin__util.cc new file mode 100644 index 000000000000..2ee2239a65f9 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_signin_signin__util.cc @@ -0,0 +1,11 @@ +--- chrome/browser/signin/signin_util.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/signin/signin_util.cc +@@ -39,7 +39,7 @@ + #include "ui/base/l10n/l10n_util.h" + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/browser_finder.h" + #include "chrome/browser/ui/browser_list.h" + #include "chrome/browser/ui/browser_list_observer.h" diff --git a/devel/electron18/files/patch-chrome_browser_sync_chrome__sync__client.cc b/devel/electron18/files/patch-chrome_browser_sync_chrome__sync__client.cc new file mode 100644 index 000000000000..88451b4c0846 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_sync_chrome__sync__client.cc @@ -0,0 +1,11 @@ +--- chrome/browser/sync/chrome_sync_client.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/sync/chrome_sync_client.cc +@@ -412,7 +412,7 @@ ChromeSyncClient::CreateDataTypeControllers(syncer::Sy + + // Chrome prefers OS provided spell checkers where they exist. So only sync the + // custom dictionary on platforms that typically don't provide one. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Dictionary sync is enabled by default. + if (GetPrefService()->GetBoolean(spellcheck::prefs::kSpellCheckEnable)) { + controllers.push_back( diff --git a/devel/electron18/files/patch-chrome_browser_sync_device__info__sync__client__impl.cc b/devel/electron18/files/patch-chrome_browser_sync_device__info__sync__client__impl.cc new file mode 100644 index 000000000000..df158865e588 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_sync_device__info__sync__client__impl.cc @@ -0,0 +1,11 @@ +--- chrome/browser/sync/device_info_sync_client_impl.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/sync/device_info_sync_client_impl.cc +@@ -38,7 +38,7 @@ std::string DeviceInfoSyncClientImpl::GetSigninScopedD + // in lacros-chrome once build flag switch of lacros-chrome is + // complete. + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + syncer::SyncPrefs prefs(profile_->GetPrefs()); + if (prefs.IsLocalSyncEnabled()) { + return "local_device"; diff --git a/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__group.cc b/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__group.cc new file mode 100644 index 000000000000..0849c18fc904 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__group.cc @@ -0,0 +1,38 @@ +--- chrome/browser/task_manager/sampling/task_group.cc.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/task_manager/sampling/task_group.cc +@@ -37,7 +37,7 @@ const int kBackgroundRefreshTypesMask = + #if BUILDFLAG(IS_WIN) + REFRESH_TYPE_START_TIME | REFRESH_TYPE_CPU_TIME | + #endif // BUILDFLAG(IS_WIN) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + REFRESH_TYPE_FD_COUNT | + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + #if BUILDFLAG(ENABLE_NACL) +@@ -122,7 +122,7 @@ TaskGroup::TaskGroup( + #if BUILDFLAG(ENABLE_NACL) + nacl_debug_stub_port_(nacl::kGdbDebugStubPortUnknown), + #endif // BUILDFLAG(ENABLE_NACL) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + open_fd_count_(-1), + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + idle_wakeups_per_second_(-1), +@@ -141,7 +141,7 @@ TaskGroup::TaskGroup( + weak_ptr_factory_.GetWeakPtr()), + base::BindRepeating(&TaskGroup::OnIdleWakeupsRefreshDone, + weak_ptr_factory_.GetWeakPtr()), +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + base::BindRepeating(&TaskGroup::OnOpenFdCountRefreshDone, + weak_ptr_factory_.GetWeakPtr()), + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) +@@ -321,7 +321,7 @@ void TaskGroup::OnRefreshNaClDebugStubPortDone(int nac + } + #endif // BUILDFLAG(ENABLE_NACL) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + void TaskGroup::OnOpenFdCountRefreshDone(int open_fd_count) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + diff --git a/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__group.h b/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__group.h new file mode 100644 index 000000000000..8bf9ea752d84 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__group.h @@ -0,0 +1,38 @@ +--- chrome/browser/task_manager/sampling/task_group.h.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/task_manager/sampling/task_group.h +@@ -42,7 +42,7 @@ constexpr int kUnsupportedVMRefreshFlags = + REFRESH_TYPE_WEBCACHE_STATS | REFRESH_TYPE_NETWORK_USAGE | + REFRESH_TYPE_NACL | REFRESH_TYPE_IDLE_WAKEUPS | REFRESH_TYPE_HANDLES | + REFRESH_TYPE_START_TIME | REFRESH_TYPE_CPU_TIME | REFRESH_TYPE_PRIORITY | +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + REFRESH_TYPE_FD_COUNT | + #endif + REFRESH_TYPE_HARD_FAULTS; +@@ -148,7 +148,7 @@ class TaskGroup { + } + #endif // BUILDFLAG(ENABLE_NACL) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + int open_fd_count() const { return open_fd_count_; } + void set_open_fd_count(int open_fd_count) { open_fd_count_ = open_fd_count; } + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) +@@ -168,7 +168,7 @@ class TaskGroup { + void RefreshNaClDebugStubPort(int child_process_unique_id); + void OnRefreshNaClDebugStubPortDone(int port); + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + void OnOpenFdCountRefreshDone(int open_fd_count); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + +@@ -240,7 +240,7 @@ class TaskGroup { + #if BUILDFLAG(ENABLE_NACL) + int nacl_debug_stub_port_; + #endif // BUILDFLAG(ENABLE_NACL) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // The number of file descriptors currently open by the process. + int open_fd_count_; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) diff --git a/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc b/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc new file mode 100644 index 000000000000..bff5c25b7014 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__group__sampler.cc @@ -0,0 +1,47 @@ +--- chrome/browser/task_manager/sampling/task_group_sampler.cc.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/task_manager/sampling/task_group_sampler.cc +@@ -44,7 +44,7 @@ TaskGroupSampler::TaskGroupSampler( + const OnCpuRefreshCallback& on_cpu_refresh, + const OnSwappedMemRefreshCallback& on_swapped_mem_refresh, + const OnIdleWakeupsCallback& on_idle_wakeups, +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + const OnOpenFdCountCallback& on_open_fd_count, + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + const OnProcessPriorityCallback& on_process_priority) +@@ -54,7 +54,7 @@ TaskGroupSampler::TaskGroupSampler( + on_cpu_refresh_callback_(on_cpu_refresh), + on_swapped_mem_refresh_callback_(on_swapped_mem_refresh), + on_idle_wakeups_callback_(on_idle_wakeups), +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + on_open_fd_count_callback_(on_open_fd_count), + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + on_process_priority_callback_(on_process_priority) { +@@ -86,7 +86,7 @@ void TaskGroupSampler::Refresh(int64_t refresh_flags) + base::BindOnce(on_swapped_mem_refresh_callback_)); + } + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (TaskManagerObserver::IsResourceRefreshEnabled(REFRESH_TYPE_IDLE_WAKEUPS, + refresh_flags)) { + base::PostTaskAndReplyWithResult( +@@ -96,7 +96,7 @@ void TaskGroupSampler::Refresh(int64_t refresh_flags) + } + #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (TaskManagerObserver::IsResourceRefreshEnabled(REFRESH_TYPE_FD_COUNT, + refresh_flags)) { + base::PostTaskAndReplyWithResult( +@@ -146,7 +146,7 @@ int TaskGroupSampler::RefreshIdleWakeupsPerSecond() { + return process_metrics_->GetIdleWakeupsPerSecond(); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + int TaskGroupSampler::RefreshOpenFdCount() { + DCHECK(worker_pool_sequenced_checker_.CalledOnValidSequence()); + diff --git a/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__group__sampler.h b/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__group__sampler.h new file mode 100644 index 000000000000..2f66254a1afe --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__group__sampler.h @@ -0,0 +1,38 @@ +--- chrome/browser/task_manager/sampling/task_group_sampler.h.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/task_manager/sampling/task_group_sampler.h +@@ -31,7 +31,7 @@ class TaskGroupSampler : public base::RefCountedThread + using OnCpuRefreshCallback = base::RepeatingCallback<void(double)>; + using OnSwappedMemRefreshCallback = base::RepeatingCallback<void(int64_t)>; + using OnIdleWakeupsCallback = base::RepeatingCallback<void(int)>; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + using OnOpenFdCountCallback = base::RepeatingCallback<void(int)>; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + using OnProcessPriorityCallback = base::RepeatingCallback<void(bool)>; +@@ -42,7 +42,7 @@ class TaskGroupSampler : public base::RefCountedThread + const OnCpuRefreshCallback& on_cpu_refresh, + const OnSwappedMemRefreshCallback& on_memory_refresh, + const OnIdleWakeupsCallback& on_idle_wakeups, +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + const OnOpenFdCountCallback& on_open_fd_count, + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + const OnProcessPriorityCallback& on_process_priority); +@@ -62,7 +62,7 @@ class TaskGroupSampler : public base::RefCountedThread + double RefreshCpuUsage(); + int64_t RefreshSwappedMem(); + int RefreshIdleWakeupsPerSecond(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + int RefreshOpenFdCount(); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + bool RefreshProcessPriority(); +@@ -86,7 +86,7 @@ class TaskGroupSampler : public base::RefCountedThread + const OnCpuRefreshCallback on_cpu_refresh_callback_; + const OnSwappedMemRefreshCallback on_swapped_mem_refresh_callback_; + const OnIdleWakeupsCallback on_idle_wakeups_callback_; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + const OnOpenFdCountCallback on_open_fd_count_callback_; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) + const OnProcessPriorityCallback on_process_priority_callback_; diff --git a/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc b/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc new file mode 100644 index 000000000000..351ea4e9d0a1 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_task__manager_sampling_task__manager__impl.cc @@ -0,0 +1,11 @@ +--- chrome/browser/task_manager/sampling/task_manager_impl.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/task_manager/sampling/task_manager_impl.cc +@@ -217,7 +217,7 @@ void TaskManagerImpl::GetUSERHandles(TaskId task_id, + } + + int TaskManagerImpl::GetOpenFdCount(TaskId task_id) const { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return GetTaskGroupByTaskId(task_id)->open_fd_count(); + #else + return -1; diff --git a/devel/electron18/files/patch-chrome_browser_task__manager_task__manager__observer.h b/devel/electron18/files/patch-chrome_browser_task__manager_task__manager__observer.h new file mode 100644 index 000000000000..de4cdd37b7b8 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_task__manager_task__manager__observer.h @@ -0,0 +1,11 @@ +--- chrome/browser/task_manager/task_manager_observer.h.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/task_manager/task_manager_observer.h +@@ -47,7 +47,7 @@ enum RefreshType { + // or backgrounded. + REFRESH_TYPE_PRIORITY = 1 << 13, + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + // For observers interested in getting the number of open file descriptors of + // processes. + REFRESH_TYPE_FD_COUNT = 1 << 14, diff --git a/devel/electron18/files/patch-chrome_browser_themes_theme__helper.cc b/devel/electron18/files/patch-chrome_browser_themes_theme__helper.cc new file mode 100644 index 000000000000..f86ed7137fb1 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_themes_theme__helper.cc @@ -0,0 +1,11 @@ +--- chrome/browser/themes/theme_helper.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/themes/theme_helper.cc +@@ -297,7 +297,7 @@ bool ThemeHelper::ShouldUseIncreasedContrastThemeSuppl + ui::NativeTheme* native_theme) const { + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // On Linux the GTK system theme provides the high contrast colors, + // so don't use the IncreasedContrastThemeSupplier. + return false; diff --git a/devel/electron18/files/patch-chrome_browser_themes_theme__service__factory.cc b/devel/electron18/files/patch-chrome_browser_themes_theme__service__factory.cc new file mode 100644 index 000000000000..4af6e72c0639 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_themes_theme__service__factory.cc @@ -0,0 +1,29 @@ +--- chrome/browser/themes/theme_service_factory.cc.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/themes/theme_service_factory.cc +@@ -25,7 +25,7 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/themes/theme_service_aura_linux.h" + #include "ui/views/linux_ui/linux_ui.h" + #endif +@@ -82,7 +82,7 @@ KeyedService* ThemeServiceFactory::BuildServiceInstanc + content::BrowserContext* profile) const { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + using ThemeService = ThemeServiceAuraLinux; + #endif + +@@ -96,7 +96,7 @@ void ThemeServiceFactory::RegisterProfilePrefs( + user_prefs::PrefRegistrySyncable* registry) { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + bool default_uses_system_theme = false; + + const views::LinuxUI* linux_ui = views::LinuxUI::instance(); diff --git a/devel/electron18/files/patch-chrome_browser_ui_browser__command__controller.cc b/devel/electron18/files/patch-chrome_browser_ui_browser__command__controller.cc new file mode 100644 index 000000000000..96ba3719eeba --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_browser__command__controller.cc @@ -0,0 +1,38 @@ +--- chrome/browser/ui/browser_command_controller.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/browser_command_controller.cc +@@ -88,7 +88,7 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "ui/base/ime/linux/text_edit_key_bindings_delegate_auralinux.h" + #endif + +@@ -277,7 +277,7 @@ bool BrowserCommandController::IsReservedCommandOrKey( + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // If this key was registered by the user as a content editing hotkey, then + // it is not reserved. + ui::TextEditKeyBindingsDelegateAuraLinux* delegate = +@@ -513,7 +513,7 @@ bool BrowserCommandController::ExecuteCommandWithDispo + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + case IDC_MINIMIZE_WINDOW: + browser_->window()->Minimize(); + break; +@@ -1040,7 +1040,7 @@ void BrowserCommandController::InitCommandState() { + #endif + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + command_updater_.UpdateCommandEnabled(IDC_MINIMIZE_WINDOW, true); + command_updater_.UpdateCommandEnabled(IDC_MAXIMIZE_WINDOW, true); + command_updater_.UpdateCommandEnabled(IDC_RESTORE_WINDOW, true); diff --git a/devel/electron18/files/patch-chrome_browser_ui_browser__dialogs.h b/devel/electron18/files/patch-chrome_browser_ui_browser__dialogs.h new file mode 100644 index 000000000000..5fd93cc48056 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_browser__dialogs.h @@ -0,0 +1,29 @@ +--- chrome/browser/ui/browser_dialogs.h.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/browser_dialogs.h +@@ -26,7 +26,7 @@ + #include "ui/base/models/dialog_model.h" + #include "ui/gfx/native_widget_types.h" + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + #include "chrome/browser/web_applications/web_app_id.h" + #endif +@@ -80,7 +80,7 @@ class WebDialogDelegate; + struct SelectedFileInfo; + } // namespace ui + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + namespace web_app { + struct UrlHandlerLaunchParams; +@@ -207,7 +207,7 @@ void ShowWebAppFileLaunchDialog(const std::vector<base + WebAppLaunchAcceptanceCallback close_callback); + #endif // !BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + // Callback that runs when the Web App URL Handler Intent Picker dialog is + // closed. `accepted` is true when the dialog is accepted, false otherwise. diff --git a/devel/electron18/files/patch-chrome_browser_ui_browser__view__prefs.cc b/devel/electron18/files/patch-chrome_browser_ui_browser__view__prefs.cc new file mode 100644 index 000000000000..fc28b6b887eb --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_browser__view__prefs.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/browser_view_prefs.cc.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/ui/browser_view_prefs.cc +@@ -17,7 +17,7 @@ namespace { + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + bool GetCustomFramePrefDefault() { + #if defined(USE_OZONE) + return ui::OzonePlatform::GetInstance() +@@ -35,7 +35,7 @@ void RegisterBrowserViewProfilePrefs( + user_prefs::PrefRegistrySyncable* registry) { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + registry->RegisterBooleanPref(prefs::kUseCustomChromeFrame, + GetCustomFramePrefDefault()); + #endif diff --git a/devel/electron18/files/patch-chrome_browser_ui_chrome__pages.cc b/devel/electron18/files/patch-chrome_browser_ui_chrome__pages.cc new file mode 100644 index 000000000000..924fe16665fd --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_chrome__pages.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/chrome_pages.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/chrome_pages.cc +@@ -550,7 +550,7 @@ void ShowBrowserSigninOrSettings(Browser* browser, + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + void ShowWebAppSettings(Browser* browser, + const std::string& app_id, + web_app::AppSettingsPageEntryPoint entry_point) { diff --git a/devel/electron18/files/patch-chrome_browser_ui_chrome__pages.h b/devel/electron18/files/patch-chrome_browser_ui_chrome__pages.h new file mode 100644 index 000000000000..f1f6399a58b1 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_chrome__pages.h @@ -0,0 +1,20 @@ +--- chrome/browser/ui/chrome_pages.h.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/chrome_pages.h +@@ -26,7 +26,7 @@ + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include "chrome/browser/web_applications/web_app_utils.h" + #endif + +@@ -201,7 +201,7 @@ void ShowBrowserSigninOrSettings(Browser* browser, + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Show chrome://app-settings/<app-id> page. + void ShowWebAppSettings(Browser* browser, + const std::string& app_id, diff --git a/devel/electron18/files/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc b/devel/electron18/files/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc new file mode 100644 index 000000000000..a2f2f2054f74 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_color_native__chrome__color__mixer.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/color/native_chrome_color_mixer.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/color/native_chrome_color_mixer.cc +@@ -6,7 +6,7 @@ + + #include "build/build_config.h" + +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD) + void AddNativeChromeColorMixer(ui::ColorProvider* provider, + const ui::ColorProviderManager::Key& key) {} + #endif diff --git a/devel/electron18/files/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc b/devel/electron18/files/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc new file mode 100644 index 000000000000..db6f4c3a6f45 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc +@@ -16,7 +16,7 @@ + + // NOTE(koz): Linux doesn't use the thick shadowed border, so we add padding + // here. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const int ExclusiveAccessBubble::kPaddingPx = 8; + #else + const int ExclusiveAccessBubble::kPaddingPx = 15; diff --git a/devel/electron18/files/patch-chrome_browser_ui_sad__tab.cc b/devel/electron18/files/patch-chrome_browser_ui_sad__tab.cc new file mode 100644 index 000000000000..4a3e3af0cecb --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_sad__tab.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/sad_tab.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/sad_tab.cc +@@ -188,7 +188,7 @@ std::vector<int> SadTab::GetSubMessages() { + // Only show Incognito suggestion if not already in Incognito mode. + if (!web_contents_->GetBrowserContext()->IsOffTheRecord()) + message_ids.insert(message_ids.begin(), IDS_SAD_TAB_RELOAD_INCOGNITO); +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Note: on macOS, Linux and ChromeOS, the first bullet is either one of + // IDS_SAD_TAB_RELOAD_CLOSE_TABS or IDS_SAD_TAB_RELOAD_CLOSE_NOTABS + // followed by one of the above suggestions. diff --git a/devel/electron18/files/patch-chrome_browser_ui_signin__view__controller.cc b/devel/electron18/files/patch-chrome_browser_ui_signin__view__controller.cc new file mode 100644 index 000000000000..4a44d47809d2 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_signin__view__controller.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/signin_view_controller.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/signin_view_controller.cc +@@ -259,7 +259,7 @@ void SigninViewController::ShowModalEnterpriseConfirma + SkColor profile_color, + base::OnceCallback<void(bool)> callback) { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS_LACROS) ++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + CloseModalSignin(); + dialog_ = std::make_unique<SigninModalDialogImpl>( + SigninViewControllerDelegate::CreateEnterpriseConfirmationDelegate( diff --git a/devel/electron18/files/patch-chrome_browser_ui_signin__view__controller__delegate.h b/devel/electron18/files/patch-chrome_browser_ui_signin__view__controller__delegate.h new file mode 100644 index 000000000000..af891281b8b8 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_signin__view__controller__delegate.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/signin_view_controller_delegate.h.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/signin_view_controller_delegate.h +@@ -74,7 +74,7 @@ class SigninViewControllerDelegate { + #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS_LACROS) ++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Returns a platform-specific SigninViewContolllerDelegate instance that + // displays the enterprise confirmation modal dialog. The returned object + // should delete itself when the window it's managing is closed. diff --git a/devel/electron18/files/patch-chrome_browser_ui_startup_bad__flags__prompt.cc b/devel/electron18/files/patch-chrome_browser_ui_startup_bad__flags__prompt.cc new file mode 100644 index 000000000000..8c9bbf11b520 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_startup_bad__flags__prompt.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/startup/bad_flags_prompt.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/startup/bad_flags_prompt.cc +@@ -90,7 +90,7 @@ static const char* kBadFlags[] = { + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Speech dispatcher is buggy, it can crash and it can make Chrome freeze. + // http://crbug.com/327295 + switches::kEnableSpeechDispatcher, diff --git a/devel/electron18/files/patch-chrome_browser_ui_startup_startup__browser__creator.cc b/devel/electron18/files/patch-chrome_browser_ui_startup_startup__browser__creator.cc new file mode 100644 index 000000000000..0a9502a547dd --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_startup_startup__browser__creator.cc @@ -0,0 +1,53 @@ +--- chrome/browser/ui/startup/startup_browser_creator.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/startup/startup_browser_creator.cc +@@ -126,12 +126,12 @@ + #endif // BUILDFLAG(ENABLE_PRINT_PREVIEW) + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + #include "chrome/browser/ui/startup/web_app_url_handling_startup_utils.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/startup/web_app_info_recorder_utils.h" + #endif + +@@ -518,7 +518,7 @@ bool MaybeLaunchAppShortcutWindow(const base::CommandL + return false; + } + +-#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD) + bool MaybeLaunchUrlHandlerWebAppFromCmd( + const base::CommandLine& command_line, + const base::FilePath& cur_dir, +@@ -989,7 +989,7 @@ bool StartupBrowserCreator::ProcessCmdLineImpl( + silent_launch = true; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Writes open and installed web apps to the specified file without + // launching a new browser window or tab. + if (base::FeatureList::IsEnabled(features::kListWebAppsSwitch) && +@@ -1181,7 +1181,7 @@ bool StartupBrowserCreator::ProcessCmdLineImpl( + CHECK_EQ(profile_info.mode, StartupProfileMode::kBrowserWindow) + << "Failed launch with app: couldn't pick a profile"; + std::string app_id = command_line.GetSwitchValueASCII(switches::kAppId); +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // If Chrome Apps are deprecated and |app_id| is a Chrome App, display the + // deprecation UI instead of launching the app. + if (apps::OpenDeprecatedApplicationPrompt(privacy_safe_profile, app_id)) +@@ -1220,7 +1220,7 @@ bool StartupBrowserCreator::ProcessCmdLineImpl( + web_app::startup::MaybeHandleWebAppLaunch( + command_line, cur_dir, privacy_safe_profile, is_first_run); + +-#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD) + handled_as_app = handled_as_app || + // Give web apps a chance to handle a URL. + MaybeLaunchUrlHandlerWebAppFromCmd( diff --git a/devel/electron18/files/patch-chrome_browser_ui_tab__helpers.cc b/devel/electron18/files/patch-chrome_browser_ui_tab__helpers.cc new file mode 100644 index 000000000000..c98b221de8e0 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_tab__helpers.cc @@ -0,0 +1,36 @@ +--- chrome/browser/ui/tab_helpers.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/tab_helpers.cc +@@ -179,7 +179,7 @@ + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/blocked_content/framebust_block_tab_helper.h" + #include "chrome/browser/ui/browser_finder.h" + #include "chrome/browser/ui/hats/hats_helper.h" +@@ -500,13 +500,13 @@ void TabHelpers::AttachTabHelpers(WebContents* web_con + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + metrics::DesktopSessionDurationObserver::CreateForWebContents(web_contents); + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled( + features::kHappinessTrackingSurveysForDesktopDemo) || + base::FeatureList::IsEnabled(features::kTrustSafetySentimentSurvey) || +@@ -517,7 +517,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_con + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + SharedHighlightingPromo::CreateForWebContents(web_contents); + #endif + diff --git a/devel/electron18/files/patch-chrome_browser_ui_task__manager_task__manager__columns.cc b/devel/electron18/files/patch-chrome_browser_ui_task__manager_task__manager__columns.cc new file mode 100644 index 000000000000..241d6e6cfb7c --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_task__manager_task__manager__columns.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/task_manager/task_manager_columns.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/task_manager/task_manager_columns.cc +@@ -94,7 +94,7 @@ const TableColumnData kColumns[] = { + base::size("100000") * kCharWidth, -1, true, false, false}, + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + {IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN, ui::TableColumn::RIGHT, -1, 0, + base::size("999") * kCharWidth, -1, true, false, false}, + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) diff --git a/devel/electron18/files/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc b/devel/electron18/files/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc new file mode 100644 index 000000000000..cd39a5d8a90f --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_task__manager_task__manager__table__model.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/task_manager/task_manager_table_model.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/task_manager/task_manager_table_model.cc +@@ -451,7 +451,7 @@ std::u16string TaskManagerTableModel::GetText(int row, + ? stringifier_->backgrounded_string() + : stringifier_->foregrounded_string(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + case IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN: { + const int fd_count = observed_task_manager()->GetOpenFdCount(tasks_[row]); + return fd_count >= 0 ? base::FormatNumber(fd_count) +@@ -618,7 +618,7 @@ int TaskManagerTableModel::CompareValues(int row1, + return BooleanCompare(is_proc1_bg, is_proc2_bg); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + case IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN: { + const int proc1_fd_count = + observed_task_manager()->GetOpenFdCount(tasks_[row1]); +@@ -792,7 +792,7 @@ void TaskManagerTableModel::UpdateRefreshTypes(int col + type = REFRESH_TYPE_KEEPALIVE_COUNT; + break; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + case IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN: + type = REFRESH_TYPE_FD_COUNT; + break; diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_accelerator__table.cc b/devel/electron18/files/patch-chrome_browser_ui_views_accelerator__table.cc new file mode 100644 index 000000000000..d799d3665bfa --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_accelerator__table.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/views/accelerator_table.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/views/accelerator_table.cc +@@ -62,7 +62,7 @@ const AcceleratorMapping kAcceleratorMap[] = { + {ui::VKEY_NUMPAD9, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_LAST_TAB}, + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + {ui::VKEY_9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB}, + {ui::VKEY_NUMPAD9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB}, + {ui::VKEY_NEXT, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, IDC_MOVE_TAB_NEXT}, +@@ -94,7 +94,7 @@ const AcceleratorMapping kAcceleratorMap[] = { + {ui::VKEY_NUMPAD8, ui::EF_PLATFORM_ACCELERATOR, IDC_SELECT_TAB_7}, + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + {ui::VKEY_1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0}, + {ui::VKEY_NUMPAD1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0}, + {ui::VKEY_2, ui::EF_ALT_DOWN, IDC_SELECT_TAB_1}, +@@ -139,7 +139,7 @@ const AcceleratorMapping kAcceleratorMap[] = { + IDC_SHOW_AVATAR_MENU}, + + // Platform-specific key maps. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + {ui::VKEY_BROWSER_BACK, ui::EF_NONE, IDC_BACK}, + {ui::VKEY_BROWSER_FORWARD, ui::EF_NONE, IDC_FORWARD}, + {ui::VKEY_BROWSER_HOME, ui::EF_NONE, IDC_HOME}, diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc b/devel/electron18/files/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc new file mode 100644 index 000000000000..c56f82c78b06 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc.orig 2022-05-19 05:17:38 UTC ++++ chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc +@@ -19,7 +19,7 @@ + #include "ui/gfx/image/image_skia.h" + #include "ui/views/widget/widget.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/shell_integration_linux.h" + #endif + +@@ -56,7 +56,7 @@ void ChromeNativeAppWindowViewsAura::OnBeforeWidgetIni + const AppWindow::CreateParams& create_params, + views::Widget::InitParams* init_params, + views::Widget* widget) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::string app_name = + web_app::GenerateApplicationNameFromAppId(app_window()->extension_id()); + // Set up a custom WM_CLASS for app windows. This allows task switchers in diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc b/devel/electron18/files/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc new file mode 100644 index 000000000000..bcf6cc032ff6 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_chrome__browser__main__extra__parts__views.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc +@@ -41,7 +41,7 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include <sys/stat.h> + #include <sys/types.h> + #include <unistd.h> +@@ -136,7 +136,7 @@ void ChromeBrowserMainExtraPartsViews::PreProfileInit( + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // On the Linux desktop, we want to prevent the user from logging in as root, + // so that we don't destroy the profile. Now that we have some minimal ui + // initialized, check to see if we're running as root and bail if we are. diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_chrome__views__delegate.h b/devel/electron18/files/patch-chrome_browser_ui_views_chrome__views__delegate.h new file mode 100644 index 000000000000..cfd239d53892 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_chrome__views__delegate.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/chrome_views_delegate.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/chrome_views_delegate.h +@@ -51,7 +51,7 @@ class ChromeViewsDelegate : public views::ViewsDelegat + base::OnceClosure callback) override; + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + gfx::ImageSkia* GetDefaultWindowIcon() const override; + bool WindowManagerProvidesTitleBar(bool maximized) override; + #endif diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_download_download__item__view.cc b/devel/electron18/files/patch-chrome_browser_ui_views_download_download__item__view.cc new file mode 100644 index 000000000000..15f523f95d98 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_download_download__item__view.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/download/download_item_view.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/download/download_item_view.cc +@@ -195,7 +195,7 @@ bool UseNewWarnings() { + } + + int GetFilenameStyle(const views::Label& label) { +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + if (UseNewWarnings()) + return STYLE_EMPHASIZED; + #endif +@@ -203,7 +203,7 @@ int GetFilenameStyle(const views::Label& label) { + } + + int GetFilenameStyle(const views::StyledLabel& label) { +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + if (UseNewWarnings()) + return STYLE_EMPHASIZED; + #endif diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_eye__dropper_eye__dropper__view.cc b/devel/electron18/files/patch-chrome_browser_ui_views_eye__dropper_eye__dropper__view.cc new file mode 100644 index 000000000000..d851be74ba2f --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_eye__dropper_eye__dropper__view.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/eye_dropper/eye_dropper_view.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/eye_dropper/eye_dropper_view.cc +@@ -157,7 +157,7 @@ EyeDropperView::EyeDropperView(content::RenderFrameHos + // EyeDropper/WidgetDelegate. + set_owned_by_client(); + SetPreferredSize(GetSize()); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Use TYPE_MENU for Linux to ensure that the eye dropper view is displayed + // above the color picker. + views::Widget::InitParams params(views::Widget::InitParams::TYPE_MENU); diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_eye__dropper_eye__dropper__view__aura.cc b/devel/electron18/files/patch-chrome_browser_ui_views_eye__dropper_eye__dropper__view__aura.cc new file mode 100644 index 000000000000..092792d179b8 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_eye__dropper_eye__dropper__view__aura.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/eye_dropper/eye_dropper_view_aura.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/eye_dropper/eye_dropper_view_aura.cc +@@ -81,7 +81,7 @@ void EyeDropperView::MoveViewToFront() { + } + + void EyeDropperView::CaptureInputIfNeeded() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // The eye dropper needs to capture input since it is not activated + // in order to avoid dismissing the color picker. + GetWidget()->GetNativeWindow()->SetCapture(); diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_first__run__dialog.cc b/devel/electron18/files/patch-chrome_browser_ui_views_first__run__dialog.cc new file mode 100644 index 000000000000..0ac4a5465335 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_first__run__dialog.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/first_run_dialog.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/first_run_dialog.cc +@@ -38,7 +38,7 @@ + + namespace { + +-#if !BUILDFLAG(IS_MAC) ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + void InitCrashReporterIfEnabled(bool enabled) { + if (!crash_reporter::IsCrashpadEnabled() && enabled) + breakpad::InitCrashReporter(std::string()); +@@ -122,7 +122,7 @@ bool FirstRunDialog::Accept() { + + #if BUILDFLAG(IS_MAC) + ChangeMetricsReportingState(report_crashes_->GetChecked()); +-#else ++#elif !BUILDFLAG(IS_BSD) + #if BUILDFLAG(IS_CHROMEOS_ASH) + metrics::structured::NeutrinoDevicesLog( + metrics::structured::NeutrinoDevicesLocation::kFirstRunDialog); diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__desktop__window__tree__host__linux.cc b/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__desktop__window__tree__host__linux.cc new file mode 100644 index 000000000000..ae4a820baf93 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__desktop__window__tree__host__linux.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/frame/browser_desktop_window_tree_host_linux.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/frame/browser_desktop_window_tree_host_linux.cc +@@ -150,7 +150,7 @@ bool BrowserDesktopWindowTreeHostLinux::SupportsClient + } + + void BrowserDesktopWindowTreeHostLinux::UpdateFrameHints() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto* view = static_cast<BrowserFrameViewLinux*>( + native_frame_->browser_frame()->GetFrameView()); + auto* layout = view->layout(); diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__desktop__window__tree__host__linux.h b/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__desktop__window__tree__host__linux.h new file mode 100644 index 000000000000..bcaf47ef362c --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__desktop__window__tree__host__linux.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/frame/browser_desktop_window_tree_host_linux.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/frame/browser_desktop_window_tree_host_linux.h +@@ -95,7 +95,7 @@ class BrowserDesktopWindowTreeHostLinux + // browser_desktop_window_tree_host_lacros.cc. + #if BUILDFLAG(IS_CHROMEOS_LACROS) + using DesktopBrowserFrameAuraPlatform = DesktopBrowserFrameLacros; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + using DesktopBrowserFrameAuraPlatform = DesktopBrowserFrameAuraLinux; + #else + #error Unknown platform diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__frame.cc b/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__frame.cc new file mode 100644 index 000000000000..2cdbe8f4c8ae --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__frame.cc @@ -0,0 +1,52 @@ +--- chrome/browser/ui/views/frame/browser_frame.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/frame/browser_frame.cc +@@ -49,11 +49,11 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "ui/display/screen.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/views/linux_ui/linux_ui.h" + #endif + +@@ -62,7 +62,7 @@ namespace { + bool IsUsingGtkTheme(Profile* profile) { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + return ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme(); + #else + return false; +@@ -268,7 +268,7 @@ void BrowserFrame::OnNativeWidgetWorkspaceChanged() { + IsVisibleOnAllWorkspaces()); + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // If the window was sent to a different workspace, prioritize it if + // it was sent to the current workspace and deprioritize it + // otherwise. This is done by MoveBrowsersInWorkspaceToFront() +@@ -381,7 +381,7 @@ void BrowserFrame::SelectNativeTheme() { + return; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const views::LinuxUI* linux_ui = views::LinuxUI::instance(); + // Ignore GTK+ for web apps with window-controls-overlay as the + // display_override so the web contents can blend with the overlay by using +@@ -400,7 +400,7 @@ bool BrowserFrame::RegenerateFrameOnThemeChange( + bool need_regenerate = false; + // TODO(crbug.com/1052397): Revisit the macro expression once build flag + // switch of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // GTK and user theme changes can both change frame buttons, so the frame + // always needs to be regenerated on Linux. + need_regenerate = true; diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc b/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc new file mode 100644 index 000000000000..4adabfd1b973 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__non__client__frame__view__factory__views.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc.orig 2022-05-19 03:45:18 UTC ++++ chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc +@@ -15,7 +15,7 @@ + #include "chrome/browser/ui/views/frame/glass_browser_frame_view.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/views/frame/browser_frame_view_layout_linux.h" + #include "chrome/browser/ui/views/frame/browser_frame_view_layout_linux_native.h" + #include "chrome/browser/ui/views/frame/browser_frame_view_linux.h" +@@ -33,7 +33,7 @@ namespace { + std::unique_ptr<OpaqueBrowserFrameView> CreateOpaqueBrowserFrameView( + BrowserFrame* frame, + BrowserView* browser_view) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto* linux_ui = views::LinuxUI::instance(); + auto* profile = browser_view->browser()->profile(); + auto* theme_service_factory = ThemeServiceFactory::GetForProfile(profile); diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__view.cc b/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__view.cc new file mode 100644 index 000000000000..0eae0b8947e6 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_frame_browser__view.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/frame/browser_view.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/frame/browser_view.cc +@@ -1825,7 +1825,7 @@ void BrowserView::TabDraggingStatusChanged(bool is_dra + // CrOS cleanup is done. + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + contents_web_view_->SetFastResize(is_dragging); + if (!is_dragging) { + // When tab dragging is ended, we need to make sure the web contents get diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc b/devel/electron18/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc new file mode 100644 index 000000000000..b5baa84c0c09 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/views/frame/opaque_browser_frame_view.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/frame/opaque_browser_frame_view.cc +@@ -53,7 +53,7 @@ + #include "ui/views/window/vector_icons/vector_icons.h" + #include "ui/views/window/window_shape.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/views/controls/menu/menu_runner.h" + #endif + +@@ -541,7 +541,7 @@ OpaqueBrowserFrameView::FrameButtonStyle + OpaqueBrowserFrameView::GetFrameButtonStyle() const { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + return FrameButtonStyle::kMdButton; + #else + return FrameButtonStyle::kImageButton; +@@ -751,7 +751,7 @@ gfx::Rect OpaqueBrowserFrameView::GetIconBounds() cons + } + + void OpaqueBrowserFrameView::WindowIconPressed() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Chrome OS doesn't show the window icon, and Windows handles this on its own + // due to the hit test being HTSYSMENU. + menu_runner_ = std::make_unique<views::MenuRunner>( diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h b/devel/electron18/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h new file mode 100644 index 000000000000..c9eec04a97f6 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/frame/opaque_browser_frame_view.h.orig 2022-05-19 03:45:19 UTC ++++ chrome/browser/ui/views/frame/opaque_browser_frame_view.h +@@ -224,7 +224,7 @@ class OpaqueBrowserFrameView : public BrowserNonClient + // Background painter for the window frame. + std::unique_ptr<views::FrameBackground> frame_background_; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<views::MenuRunner> menu_runner_; + #endif + diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc b/devel/electron18/files/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc new file mode 100644 index 000000000000..ceaf0e481261 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/views/frame/system_menu_model_builder.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/frame/system_menu_model_builder.cc +@@ -77,7 +77,7 @@ void SystemMenuModelBuilder::BuildSystemMenuForBrowser + ui::SimpleMenuModel* model) { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS) + model->AddItemWithStringId(IDC_MINIMIZE_WINDOW, IDS_MINIMIZE_WINDOW_MENU); + model->AddItemWithStringId(IDC_MAXIMIZE_WINDOW, IDS_MAXIMIZE_WINDOW_MENU); + model->AddItemWithStringId(IDC_RESTORE_WINDOW, IDS_RESTORE_WINDOW_MENU); +@@ -93,7 +93,7 @@ void SystemMenuModelBuilder::BuildSystemMenuForBrowser + } + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS) + model->AddSeparator(ui::NORMAL_SEPARATOR); + bool supports_server_side_decorations = true; + #if defined(USE_OZONE) && \ +@@ -148,7 +148,7 @@ void SystemMenuModelBuilder::BuildSystemMenuForAppOrPo + } + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + model->AddSeparator(ui::NORMAL_SEPARATOR); + model->AddItemWithStringId(IDC_CLOSE_WINDOW, IDS_CLOSE); + #endif diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc b/devel/electron18/files/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc new file mode 100644 index 000000000000..aaae9e65d50e --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_frame_system__menu__model__delegate.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/views/frame/system_menu_model_delegate.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/frame/system_menu_model_delegate.cc +@@ -23,7 +23,7 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "chrome/common/pref_names.h" + #include "components/prefs/pref_service.h" + #endif +@@ -40,7 +40,7 @@ SystemMenuModelDelegate::~SystemMenuModelDelegate() {} + bool SystemMenuModelDelegate::IsCommandIdChecked(int command_id) const { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + if (command_id == IDC_USE_SYSTEM_TITLE_BAR) { + PrefService* prefs = browser_->profile()->GetPrefs(); + return !prefs->GetBoolean(prefs::kUseCustomChromeFrame); +@@ -62,7 +62,7 @@ bool SystemMenuModelDelegate::IsCommandIdEnabled(int c + bool SystemMenuModelDelegate::IsCommandIdVisible(int command_id) const { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + bool is_maximized = browser_->window()->IsMaximized(); + switch (command_id) { + case IDC_MAXIMIZE_WINDOW: diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_hung__renderer__view.cc b/devel/electron18/files/patch-chrome_browser_ui_views_hung__renderer__view.cc new file mode 100644 index 000000000000..bc5afa80d4ac --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_hung__renderer__view.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/hung_renderer_view.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/hung_renderer_view.cc +@@ -403,7 +403,7 @@ void HungRendererDialogView::ForceCrashHungRenderer() + content::RenderProcessHost* rph = + hung_pages_table_model_->GetRenderWidgetHost()->GetProcess(); + if (rph) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // A generic |CrashDumpHungChildProcess()| is not implemented for Linux. + // Instead we send an explicit IPC to crash on the renderer's IO thread. + rph->ForceCrash(); diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc b/devel/electron18/files/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc new file mode 100644 index 000000000000..a60bbbf07b96 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_profiles_profile__menu__view__base.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/profiles/profile_menu_view_base.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/profiles/profile_menu_view_base.cc +@@ -611,7 +611,7 @@ void ProfileMenuViewBase::SetProfileIdentityInfo( + + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // crbug.com/1161166: Orca does not read the accessible window title of the + // bubble, so we duplicate it in the top-level menu item. To be revisited + // after considering other options, including fixes on the AT side. diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc b/devel/electron18/files/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc new file mode 100644 index 000000000000..d62d192937c2 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc +@@ -137,7 +137,7 @@ SigninViewControllerDelegateViews::CreateProfileCustom + #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS_LACROS) ++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // static + std::unique_ptr<views::WebView> + SigninViewControllerDelegateViews::CreateEnterpriseConfirmationWebView( +@@ -413,7 +413,7 @@ SigninViewControllerDelegate::CreateProfileCustomizati + #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS_LACROS) ++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // static + SigninViewControllerDelegate* + SigninViewControllerDelegate::CreateEnterpriseConfirmationDelegate( diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h b/devel/electron18/files/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h new file mode 100644 index 000000000000..2a8af9f90481 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_profiles_signin__view__controller__delegate__views.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.h +@@ -71,7 +71,7 @@ class SigninViewControllerDelegateViews + #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS_LACROS) ++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + static std::unique_ptr<views::WebView> CreateEnterpriseConfirmationWebView( + Browser* browser, + const AccountInfo& account_info, diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_tabs_new__tab__button.cc b/devel/electron18/files/patch-chrome_browser_ui_views_tabs_new__tab__button.cc new file mode 100644 index 000000000000..9285e4723752 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_tabs_new__tab__button.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/tabs/new_tab_button.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/tabs/new_tab_button.cc +@@ -59,7 +59,7 @@ NewTabButton::NewTabButton(TabStrip* tab_strip, Presse + SetAnimateOnStateChange(true); + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + SetTriggerableEventFlags(GetTriggerableEventFlags() | + ui::EF_MIDDLE_MOUSE_BUTTON); + #endif diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_tabs_tab.cc b/devel/electron18/files/patch-chrome_browser_ui_views_tabs_tab.cc new file mode 100644 index 000000000000..7d372c5af8da --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_tabs_tab.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/tabs/tab.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/tabs/tab.cc +@@ -580,7 +580,7 @@ void Tab::MaybeUpdateHoverStatus(const ui::MouseEvent& + if (mouse_hovered_ || !GetWidget()->IsMouseEventsEnabled()) + return; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Move the hit test area for hovering up so that it is not overlapped by tab + // hover cards when they are shown. + // TODO(crbug.com/978134): Once Linux/CrOS widget transparency is solved, diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc b/devel/electron18/files/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc new file mode 100644 index 000000000000..e270b7228cc9 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/views/tabs/tab_drag_controller.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/tabs/tab_drag_controller.cc +@@ -480,7 +480,7 @@ void TabDragController::Init(TabDragContext* source_co + // synchronous on desktop Linux, so use that. + // - Chrome OS + // Releasing capture on Ash cancels gestures so avoid it. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + can_release_capture_ = false; + #endif + start_point_in_screen_ = gfx::Point(source_view_offset, mouse_offset.y()); +@@ -1021,7 +1021,7 @@ TabDragController::DragBrowserToNewTabStrip(TabDragCon + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + // EndMoveLoop is going to snap the window back to its original location. + // Hide it so users don't see this. Hiding a window in Linux aura causes + // it to lose capture so skip it. +@@ -2353,7 +2353,7 @@ TabDragController::Liveness TabDragController::GetLoca + } + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Exclude windows which are pending deletion via Browser::TabStripEmpty(). + // These windows can be returned in the Linux Aura port because the browser + // window which was used for dragging is not hidden once all of its tabs are diff --git a/devel/electron18/files/patch-chrome_browser_ui_views_tabs_tab__hover__card__controller.cc b/devel/electron18/files/patch-chrome_browser_ui_views_tabs_tab__hover__card__controller.cc new file mode 100644 index 000000000000..6651ac6ee6c3 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_views_tabs_tab__hover__card__controller.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/tabs/tab_hover_card_controller.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/views/tabs/tab_hover_card_controller.cc +@@ -36,7 +36,7 @@ namespace { + // Fetches the Omnibox drop-down widget, or returns null if the drop-down is + // not visible. + void FixWidgetStackOrder(views::Widget* widget, const Browser* browser) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Ensure the hover card Widget assumes the highest z-order to avoid occlusion + // by other secondary UI Widgets (such as the omnibox Widget, see + // crbug.com/1226536). diff --git a/devel/electron18/files/patch-chrome_browser_ui_webui_about__ui.cc b/devel/electron18/files/patch-chrome_browser_ui_webui_about__ui.cc new file mode 100644 index 000000000000..97b54d5afaa7 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_webui_about__ui.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/webui/about_ui.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/webui/about_ui.cc +@@ -603,7 +603,7 @@ std::string ChromeURLs() { + return html; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::string AboutLinuxProxyConfig() { + std::string data; + AppendHeader(&data, +@@ -661,7 +661,7 @@ void AboutUIHTMLSource::StartDataRequest( + response = + ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(idr); + } +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + } else if (source_name_ == chrome::kChromeUILinuxProxyConfigHost) { + response = AboutLinuxProxyConfig(); + #endif diff --git a/devel/electron18/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc b/devel/electron18/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc new file mode 100644 index 000000000000..de20bf753b33 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc @@ -0,0 +1,98 @@ +--- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +@@ -296,7 +296,7 @@ + #include "chrome/browser/ui/webui/app_launcher_page_ui.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/webui_js_error/webui_js_error_ui.h" + #endif + +@@ -320,22 +320,22 @@ + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/discards/discards_ui.h" + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/sandbox/sandbox_internals_ui.h" + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS_ASH) ++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/connectors_internals/connectors_internals_ui.h" + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include "chrome/browser/ui/webui/app_settings/web_app_settings_ui.h" + #endif + +@@ -661,7 +661,7 @@ bool IsAboutUI(const GURL& url) { + #if !BUILDFLAG(IS_ANDROID) + || url.host_piece() == chrome::kChromeUITermsHost + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + || url.host_piece() == chrome::kChromeUILinuxProxyConfigHost + #endif + #if BUILDFLAG(IS_CHROMEOS_ASH) +@@ -1073,7 +1073,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* we + return &NewWebUI<ash::SampleSystemWebAppUI>; + #endif // !defined(OFFICIAL_BUILD) + #endif // BUILDFLAG(IS_CHROMEOS_ASH) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (url.host_piece() == chrome::kChromeUIWebUIJsErrorHost) + return &NewWebUI<WebUIJsErrorUI>; + #endif +@@ -1131,7 +1131,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* we + if (url.host_piece() == chrome::kChromeUINaClHost) + return &NewWebUI<NaClUI>; + #endif +-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + defined(TOOLKIT_VIEWS)) || \ + defined(USE_AURA) + if (url.host_piece() == chrome::kChromeUITabModalConfirmDialogHost) +@@ -1187,27 +1187,27 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* we + } + #endif + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + if (url.host_piece() == chrome::kChromeUISandboxHost) { + return &NewWebUI<SandboxInternalsUI>; + } + #endif + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS_ASH) ++ BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD) + if (url.host_piece() == chrome::kChromeUIConnectorsInternalsHost) + return &NewWebUI<enterprise_connectors::ConnectorsInternalsUI>; + #endif + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (url.host_piece() == chrome::kChromeUIDiscardsHost) + return &NewWebUI<DiscardsUI>; + #endif +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (url.host_piece() == chrome::kChromeUIBrowserSwitchHost) + return &NewWebUI<BrowserSwitchUI>; + #endif + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(features::kDesktopPWAsWebAppSettingsPage) && + url.host_piece() == chrome::kChromeUIWebAppSettingsHost) { + return &NewWebUI<WebAppSettingsUI>; diff --git a/devel/electron18/files/patch-chrome_browser_ui_webui_connectors__internals_zero__trust__utils.cc b/devel/electron18/files/patch-chrome_browser_ui_webui_connectors__internals_zero__trust__utils.cc new file mode 100644 index 000000000000..1cabff129fe5 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_webui_connectors__internals_zero__trust__utils.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/webui/connectors_internals/zero_trust_utils.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/webui/connectors_internals/zero_trust_utils.cc +@@ -9,7 +9,7 @@ + #include "base/strings/string_util.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "chrome/browser/browser_process.h" + #include "chrome/browser/policy/chrome_browser_policy_connector.h" + #include "components/enterprise/browser/controller/chrome_browser_cloud_management_controller.h" +@@ -66,7 +66,7 @@ void TrySetSignal(base::flat_map<std::string, std::str + std::vector<base::StringPiece>(values.begin(), values.end()), ", "); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + + connectors_internals::mojom::KeyTrustLevel ParseTrustLevel( + BPKUR::KeyTrustLevel trust_level) { +@@ -171,7 +171,7 @@ base::flat_map<std::string, std::string> SignalsToMap( + } + + connectors_internals::mojom::KeyInfoPtr GetKeyInfo() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + auto* key_manager = g_browser_process->browser_policy_connector() + ->chrome_browser_cloud_management_controller() + ->GetDeviceTrustKeyManager(); diff --git a/devel/electron18/files/patch-chrome_browser_ui_webui_ntp_app__launcher__handler.cc b/devel/electron18/files/patch-chrome_browser_ui_webui_ntp_app__launcher__handler.cc new file mode 100644 index 000000000000..ca926e19c11b --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_webui_ntp_app__launcher__handler.cc @@ -0,0 +1,29 @@ +--- chrome/browser/ui/webui/ntp/app_launcher_handler.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/webui/ntp/app_launcher_handler.cc +@@ -313,7 +313,7 @@ void AppLauncherHandler::CreateExtensionInfo(const Ext + base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode)); + + bool is_deprecated_app = false; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + is_deprecated_app = extensions::IsExtensionUnsupportedDeprecatedApp( + extension_service_->GetBrowserContext(), extension->id()); + #endif +@@ -756,7 +756,7 @@ void AppLauncherHandler::HandleLaunchApp(const base::L + + Profile* profile = extension_service_->profile(); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (extensions::IsExtensionUnsupportedDeprecatedApp(profile, extension_id)) { + // TODO(crbug.com/1225779): Show the deprecated apps dialog. + return; +@@ -1348,7 +1348,7 @@ void AppLauncherHandler::InstallOsHooks(const web_app: + options.os_hooks[web_app::OsHookType::kUninstallationViaOsSettings] = + web_app->CanUserUninstallWebApp(); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + options.os_hooks[web_app::OsHookType::kUrlHandlers] = true; + #else diff --git a/devel/electron18/files/patch-chrome_browser_ui_webui_settings_appearance__handler.cc b/devel/electron18/files/patch-chrome_browser_ui_webui_settings_appearance__handler.cc new file mode 100644 index 000000000000..4226cc8eaca5 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_webui_settings_appearance__handler.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/webui/settings/appearance_handler.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/webui/settings/appearance_handler.cc +@@ -31,7 +31,7 @@ void AppearanceHandler::RegisterMessages() { + base::Unretained(this))); + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD) + web_ui()->RegisterMessageCallback( + "useSystemTheme", + base::BindRepeating(&AppearanceHandler::HandleUseSystemTheme, +@@ -45,7 +45,7 @@ void AppearanceHandler::HandleUseDefaultTheme(base::Va + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD) + void AppearanceHandler::HandleUseSystemTheme(base::Value::ConstListView args) { + if (profile_->IsChild()) + NOTREACHED(); diff --git a/devel/electron18/files/patch-chrome_browser_ui_webui_settings_appearance__handler.h b/devel/electron18/files/patch-chrome_browser_ui_webui_settings_appearance__handler.h new file mode 100644 index 000000000000..0a09b8ff7896 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_webui_settings_appearance__handler.h @@ -0,0 +1,11 @@ +--- chrome/browser/ui/webui/settings/appearance_handler.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/webui/settings/appearance_handler.h +@@ -40,7 +40,7 @@ class AppearanceHandler : public SettingsPageUIHandler + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Changes the UI theme of the browser to the system (GTK+) theme. + void HandleUseSystemTheme(base::Value::ConstListView args); + #endif diff --git a/devel/electron18/files/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc b/devel/electron18/files/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc new file mode 100644 index 000000000000..d36aa3562ad2 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_webui_settings_settings__localized__strings__provider.cc @@ -0,0 +1,47 @@ +--- chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +@@ -118,7 +118,7 @@ + #include "chrome/browser/ui/webui/settings/chromeos/constants/routes.mojom.h" + #endif + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS) + #include "ui/display/screen.h" + #endif + +@@ -138,7 +138,7 @@ + #include "chrome/browser/ui/webui/certificate_manager_localized_strings_provider.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/ozone/public/ozone_platform.h" + #endif + +@@ -371,7 +371,7 @@ void AddAppearanceStrings(content::WebUIDataSource* ht + {"huge", IDS_SETTINGS_HUGE_FONT_SIZE}, + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS) + {"systemTheme", IDS_SETTINGS_SYSTEM_THEME}, + {"useSystemTheme", IDS_SETTINGS_USE_SYSTEM_THEME}, + {"classicTheme", IDS_SETTINGS_CLASSIC_THEME}, +@@ -379,7 +379,7 @@ void AddAppearanceStrings(content::WebUIDataSource* ht + #else + {"resetToDefaultTheme", IDS_SETTINGS_RESET_TO_DEFAULT_THEME}, + #endif +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS) + {"showWindowDecorations", IDS_SHOW_WINDOW_DECORATIONS}, + #endif + #if BUILDFLAG(IS_MAC) +@@ -400,7 +400,7 @@ void AddAppearanceStrings(content::WebUIDataSource* ht + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_LACROS) + bool show_custom_chrome_frame = ui::OzonePlatform::GetInstance() + ->GetPlatformRuntimeProperties() + .supports_server_side_window_decorations; diff --git a/devel/electron18/files/patch-chrome_browser_ui_webui_settings_settings__ui.cc b/devel/electron18/files/patch-chrome_browser_ui_webui_settings_settings__ui.cc new file mode 100644 index 000000000000..8230e7595e41 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_webui_settings_settings__ui.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ui/webui/settings/settings_ui.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/webui/settings/settings_ui.cc +@@ -140,7 +140,7 @@ + #include "chrome/browser/ui/webui/settings/native_certificates_handler.h" + #endif // BUILDFLAG(USE_NSS_CERTS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + #include "chrome/browser/ui/webui/settings/url_handlers_handler.h" + #include "chrome/browser/web_applications/web_app_provider.h" +@@ -243,7 +243,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) + AddSettingsPageUIHandler(std::make_unique<ChromeCleanupHandler>(profile)); + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + if (web_app::WebAppProvider::GetForWebApps(profile) != nullptr) { + AddSettingsPageUIHandler(std::make_unique<UrlHandlersHandler>( diff --git a/devel/electron18/files/patch-chrome_browser_ui_window__sizer_window__sizer.cc b/devel/electron18/files/patch-chrome_browser_ui_window__sizer_window__sizer.cc new file mode 100644 index 000000000000..50e594862b7e --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_ui_window__sizer_window__sizer.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/window_sizer/window_sizer.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/ui/window_sizer/window_sizer.cc +@@ -173,7 +173,7 @@ void WindowSizer::GetBrowserWindowBoundsAndShowState( + browser, window_bounds, show_state); + } + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Linux has its own implementation, see WindowSizerLinux. + // static + void WindowSizer::GetBrowserWindowBoundsAndShowState( diff --git a/devel/electron18/files/patch-chrome_browser_web__applications_extension__status__utils.h b/devel/electron18/files/patch-chrome_browser_web__applications_extension__status__utils.h new file mode 100644 index 000000000000..8277a6f0a233 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_web__applications_extension__status__utils.h @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/extension_status_utils.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/web_applications/extension_status_utils.h +@@ -42,7 +42,7 @@ bool IsExtensionDefaultInstalled(content::BrowserConte + bool IsExternalExtensionUninstalled(content::BrowserContext* context, + const std::string& extension_id); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Returns whether |extension_id| is a Chrome App and should be blocked by the + // Chrome Apps Deprecation. Policy installed Chrome Apps are still allowed, and + // all apps are allowed if the deprecation feature flag is not enabled. diff --git a/devel/electron18/files/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc b/devel/electron18/files/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc new file mode 100644 index 000000000000..84e94dc2ba44 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_web__applications_extensions_extension__status__utils.cc @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/extensions/extension_status_utils.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/web_applications/extensions/extension_status_utils.cc +@@ -87,7 +87,7 @@ bool IsExternalExtensionUninstalled(content::BrowserCo + return prefs && prefs->IsExternalExtensionUninstalled(extension_id); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool IsExtensionUnsupportedDeprecatedApp(content::BrowserContext* context, + const std::string& extension_id) { + if (!base::FeatureList::IsEnabled(features::kChromeAppsDeprecation)) diff --git a/devel/electron18/files/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h b/devel/electron18/files/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h new file mode 100644 index 000000000000..12359098b019 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_web__applications_os__integration_web__app__file__handler__registration.h @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/os_integration/web_app_file_handler_registration.h.orig 2022-05-19 03:45:19 UTC ++++ chrome/browser/web_applications/os_integration/web_app_file_handler_registration.h +@@ -44,7 +44,7 @@ void UnregisterFileHandlersWithOs(const AppId& app_id, + Profile* profile, + ResultCallback callback); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Exposed for testing purposes. Register the set of + // MIME-type-to-file-extensions mappings corresponding to |file_handlers|. File + // I/O and a a callout to the Linux shell are performed asynchronously. diff --git a/devel/electron18/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc b/devel/electron18/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc new file mode 100644 index 000000000000..17458c7db24e --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.cc @@ -0,0 +1,38 @@ +--- chrome/browser/web_applications/os_integration/web_app_shortcut.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/web_applications/os_integration/web_app_shortcut.cc +@@ -43,7 +43,7 @@ namespace { + + #if BUILDFLAG(IS_MAC) + const int kDesiredIconSizesForShortcut[] = {16, 32, 128, 256, 512}; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Linux supports icons of any size. FreeDesktop Icon Theme Specification states + // that "Minimally you should install a 48x48 icon in the hicolor theme." + const int kDesiredIconSizesForShortcut[] = {16, 32, 48, 128, 256, 512}; +@@ -133,7 +133,7 @@ ScopedShortcutOverrideForTesting::~ScopedShortcutOverr + } + } + } +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + directories = {&desktop}; + #endif + for (base::ScopedTempDir* dir : directories) { +@@ -177,7 +177,7 @@ std::unique_ptr<ScopedShortcutOverrideForTesting> Over + scoped_override->chrome_apps_folder.CreateUniqueTempDirUnderPath( + base_path); + DCHECK(success); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool success = + scoped_override->desktop.CreateUniqueTempDirUnderPath(base_path); + DCHECK(success); +@@ -195,7 +195,7 @@ std::unique_ptr<ScopedShortcutOverrideForTesting> Over + #elif BUILDFLAG(IS_MAC) + bool success = scoped_override->chrome_apps_folder.CreateUniqueTempDir(); + DCHECK(success); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool success = scoped_override->desktop.CreateUniqueTempDir(); + DCHECK(success); + #endif diff --git a/devel/electron18/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h b/devel/electron18/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h new file mode 100644 index 000000000000..5a2c14b60533 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut.h @@ -0,0 +1,29 @@ +--- chrome/browser/web_applications/os_integration/web_app_shortcut.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/web_applications/os_integration/web_app_shortcut.h +@@ -19,7 +19,7 @@ + #include "ui/gfx/image/image_family.h" + #include "url/gurl.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/browser/web_applications/os_integration/web_app_shortcut_linux.h" + #endif // BUILDFLAG(IS_LINUX) + +@@ -47,7 +47,7 @@ struct ScopedShortcutOverrideForTesting { + base::ScopedTempDir startup; + #elif BUILDFLAG(IS_MAC) + base::ScopedTempDir chrome_apps_folder; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::ScopedTempDir desktop; + #endif + }; +@@ -89,7 +89,7 @@ struct ShortcutInfo { + std::set<std::string> file_handler_extensions; + std::set<std::string> file_handler_mime_types; + std::set<std::string> protocol_handlers; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::set<DesktopActionInfo> actions; + #endif // BUILDFLAG(IS_LINUX) + diff --git a/devel/electron18/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut__manager.cc b/devel/electron18/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut__manager.cc new file mode 100644 index 000000000000..daa61b819ecd --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_web__applications_os__integration_web__app__shortcut__manager.cc @@ -0,0 +1,20 @@ +--- chrome/browser/web_applications/os_integration/web_app_shortcut_manager.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/web_applications/os_integration/web_app_shortcut_manager.cc +@@ -35,7 +35,7 @@ namespace web_app { + + namespace { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Aligns with other platform implementations that only support 10 items. + constexpr int kMaxApplicationDockMenuItems = 10; + #endif // BUILDFLAG(IS_LINUX) +@@ -382,7 +382,7 @@ std::unique_ptr<ShortcutInfo> WebAppShortcutManager::B + } + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const std::vector<WebAppShortcutsMenuItemInfo>& shortcuts_menu_item_infos = + app->shortcuts_menu_item_infos(); + int num_entries = std::min(static_cast<int>(shortcuts_menu_item_infos.size()), diff --git a/devel/electron18/files/patch-chrome_browser_web__applications_web__app__provider.cc b/devel/electron18/files/patch-chrome_browser_web__applications_web__app__provider.cc new file mode 100644 index 000000000000..4b04666a93fe --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_web__applications_web__app__provider.cc @@ -0,0 +1,11 @@ +--- chrome/browser/web_applications/web_app_provider.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/web_applications/web_app_provider.cc +@@ -289,7 +289,7 @@ void WebAppProvider::CreateSubsystems(Profile* profile + protocol_handler_manager.get()); + + std::unique_ptr<UrlHandlerManager> url_handler_manager; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + url_handler_manager = std::make_unique<UrlHandlerManagerImpl>(profile); + #endif diff --git a/devel/electron18/files/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc b/devel/electron18/files/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc new file mode 100644 index 000000000000..dd00e59e8287 --- /dev/null +++ b/devel/electron18/files/patch-chrome_browser_webauthn_chrome__authenticator__request__delegate.cc @@ -0,0 +1,11 @@ +--- chrome/browser/webauthn/chrome_authenticator_request_delegate.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/browser/webauthn/chrome_authenticator_request_delegate.cc +@@ -749,7 +749,7 @@ bool ChromeAuthenticatorRequestDelegate::ShouldPermitC + // TODO(crbug.com/1052397): Revisit the macro expression once build flag + // switch of lacros-chrome is complete. If updating this, also update + // kWebAuthCableServerLink. +-#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + // caBLEv1 is disabled on these platforms. It never launched on them because + // it causes problems in bluez. Rather than disabling caBLE completely, which diff --git a/devel/electron18/files/patch-chrome_common_channel__info.h b/devel/electron18/files/patch-chrome_common_channel__info.h new file mode 100644 index 000000000000..ccc7d2af8483 --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_channel__info.h @@ -0,0 +1,11 @@ +--- chrome/common/channel_info.h.orig 2022-05-19 03:45:19 UTC ++++ chrome/common/channel_info.h +@@ -107,7 +107,7 @@ std::string GetChannelSuffixForDataDir(); + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Returns the channel-specific filename of the desktop shortcut used to launch + // the browser. + std::string GetDesktopName(base::Environment* env); diff --git a/devel/electron18/files/patch-chrome_common_channel__info__posix.cc b/devel/electron18/files/patch-chrome_common_channel__info__posix.cc new file mode 100644 index 000000000000..3a9cb927c36a --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_channel__info__posix.cc @@ -0,0 +1,11 @@ +--- chrome/common/channel_info_posix.cc.orig 2022-05-19 03:45:19 UTC ++++ chrome/common/channel_info_posix.cc +@@ -93,7 +93,7 @@ std::string GetChannelSuffixForDataDir() { + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + std::string GetDesktopName(base::Environment* env) { + #if BUILDFLAG(GOOGLE_CHROME_BRANDING) + // Google Chrome packaged as a snap is a special case: the application name diff --git a/devel/electron18/files/patch-chrome_common_chrome__features.cc b/devel/electron18/files/patch-chrome_common_chrome__features.cc new file mode 100644 index 000000000000..57ac96e66400 --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_chrome__features.cc @@ -0,0 +1,92 @@ +--- chrome/common/chrome_features.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/common/chrome_features.cc +@@ -105,7 +105,7 @@ const base::Feature kAsyncDns { + }; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Enables or disables the Autofill survey triggered by opening a prompt to + // save address info. + const base::Feature kAutofillAddressSurvey{"AutofillAddressSurvey", +@@ -120,7 +120,7 @@ const base::Feature kAutofillPasswordSurvey{"AutofillP + base::FEATURE_DISABLED_BY_DEFAULT}; + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Enables the Restart background mode optimization. When all Chrome UI is + // closed and it goes in the background, allows to restart the browser to + // discard memory. +@@ -142,7 +142,7 @@ const base::Feature kBorealis{"Borealis", base::FEATUR + const base::Feature kChangePictureVideoMode{"ChangePictureVideoMode", + base::FEATURE_ENABLED_BY_DEFAULT}; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Controls whether Chrome Apps are supported. See https://crbug.com/1221251. + // If the feature is disabled, Chrome Apps continue to work. If enabled, Chrome + // Apps will not launch and will be marked in the UI as deprecated. +@@ -298,7 +298,7 @@ const base::Feature kDesktopPWAsNotificationIconAndTit + // Enables or disables Desktop PWAs to be auto-started on OS login. + const base::Feature kDesktopPWAsRunOnOsLogin { + "DesktopPWAsRunOnOsLogin", +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT +@@ -320,7 +320,7 @@ const base::Feature kDesktopPWAsWebBundles{"DesktopPWA + base::FEATURE_DISABLED_BY_DEFAULT}; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Serves web app settings at chrome://app-settings/<app-id>. + const base::Feature kDesktopPWAsWebAppSettingsPage{ + "DesktopPWAsWebAppSettingsPage", base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -330,7 +330,7 @@ const base::Feature kDesktopPWAsWebAppSettingsPage{ + const base::Feature kDnsOverHttps { + "DnsOverHttps", + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT +@@ -352,7 +352,7 @@ const base::FeatureParam<bool> kDnsOverHttpsFallbackPa + const base::FeatureParam<bool> kDnsOverHttpsShowUiParam { + &kDnsOverHttps, "ShowUi", + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + true + #else + false +@@ -624,7 +624,7 @@ const base::Feature kIncognitoNtpRevamp{"IncognitoNtpR + base::FEATURE_DISABLED_BY_DEFAULT}; + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // When enabled, removes any theme or background customization done by the user + // on the Incognito UI. + const base::Feature kIncognitoBrandConsistencyForDesktop{ +@@ -658,7 +658,7 @@ const base::Feature kLinkCapturingUiUpdate{"LinkCaptur + base::FEATURE_DISABLED_BY_DEFAULT}; + #endif + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(CHROME_FEATURES) + const base::Feature kLinuxLowMemoryMonitor{"LinuxLowMemoryMonitor", + base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -671,7 +671,7 @@ constexpr base::FeatureParam<int> kLinuxLowMemoryMonit + &kLinuxLowMemoryMonitor, "critical_level", 255}; + #endif // BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + const base::Feature kListWebAppsSwitch{"ListWebAppsSwitch", + base::FEATURE_DISABLED_BY_DEFAULT}; + #endif diff --git a/devel/electron18/files/patch-chrome_common_chrome__features.h b/devel/electron18/files/patch-chrome_common_chrome__features.h new file mode 100644 index 000000000000..737d65ec0f7c --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_chrome__features.h @@ -0,0 +1,65 @@ +--- chrome/common/chrome_features.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/common/chrome_features.h +@@ -90,7 +90,7 @@ extern const base::Feature kArcPiGhostWindow; + COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kAsyncDns; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::Feature kAutofillAddressSurvey; + COMPONENT_EXPORT(CHROME_FEATURES) +@@ -99,7 +99,7 @@ COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::Feature kAutofillPasswordSurvey; + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::Feature kBackgroundModeAllowRestart; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -121,7 +121,7 @@ extern const base::Feature kBrowserAppInstanceTracking + COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::Feature kChangePictureVideoMode; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::Feature kChromeAppsDeprecation; + #endif +@@ -219,7 +219,7 @@ COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::Feature kDesktopPWAsWebBundles; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::Feature kDesktopPWAsWebAppSettingsPage; + #endif +@@ -425,7 +425,7 @@ COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::Feature kIncognitoNtpRevamp; + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::Feature kIncognitoBrandConsistencyForDesktop; + +@@ -452,7 +452,7 @@ COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::Feature kLinkCapturingUiUpdate; + #endif + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::Feature kLinuxLowMemoryMonitor; + COMPONENT_EXPORT(CHROME_FEATURES) +@@ -461,7 +461,7 @@ COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::FeatureParam<int> kLinuxLowMemoryMonitorCriticalLevel; + #endif // BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(CHROME_FEATURES) + extern const base::Feature kListWebAppsSwitch; + #endif diff --git a/devel/electron18/files/patch-chrome_common_chrome__paths.cc b/devel/electron18/files/patch-chrome_common_chrome__paths.cc new file mode 100644 index 000000000000..34900bc6a138 --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_chrome__paths.cc @@ -0,0 +1,80 @@ +--- chrome/common/chrome_paths.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/common/chrome_paths.cc +@@ -44,14 +44,14 @@ + + namespace { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The path to the external extension <id>.json files. + // /usr/share seems like a good choice, see: http://www.pathname.com/fhs/ + const base::FilePath::CharType kFilepathSinglePrefExtensions[] = + #if BUILDFLAG(GOOGLE_CHROME_BRANDING) +- FILE_PATH_LITERAL("/usr/share/google-chrome/extensions"); ++ FILE_PATH_LITERAL("/usr/local/share/chromium/extensions"); + #else +- FILE_PATH_LITERAL("/usr/share/chromium/extensions"); ++ FILE_PATH_LITERAL("/usr/local/share/chromium/extensions"); + #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) + + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -178,7 +178,7 @@ bool PathProvider(int key, base::FilePath* result) { + return false; + break; + case chrome::DIR_DEFAULT_DOWNLOADS_SAFE: +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (!GetUserDownloadsDirectorySafe(&cur)) + return false; + break; +@@ -407,10 +407,12 @@ bool PathProvider(int key, base::FilePath* result) { + if (!base::PathExists(cur)) // We don't want to create this + return false; + break; +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) + case chrome::DIR_POLICY_FILES: { + #if BUILDFLAG(GOOGLE_CHROME_BRANDING) + cur = base::FilePath(FILE_PATH_LITERAL("/etc/opt/chrome/policies")); ++#elif BUILDFLAG(IS_FREEBSD) ++ cur = base::FilePath(FILE_PATH_LITERAL("/usr/local/etc/chromium/policies")); + #else + cur = base::FilePath(FILE_PATH_LITERAL("/etc/chromium/policies")); + #endif +@@ -422,7 +424,7 @@ bool PathProvider(int key, base::FilePath* result) { + #if BUILDFLAG(IS_CHROMEOS_ASH) || \ + ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \ + BUILDFLAG(CHROMIUM_BRANDING)) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + case chrome::DIR_USER_EXTERNAL_EXTENSIONS: { + if (!base::PathService::Get(chrome::DIR_USER_DATA, &cur)) + return false; +@@ -430,7 +432,7 @@ bool PathProvider(int key, base::FilePath* result) { + break; + } + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + case chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS: { + cur = base::FilePath(kFilepathSinglePrefExtensions); + break; +@@ -475,7 +477,7 @@ bool PathProvider(int key, base::FilePath* result) { + break; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + case chrome::DIR_NATIVE_MESSAGING: + #if BUILDFLAG(IS_MAC) + #if BUILDFLAG(GOOGLE_CHROME_BRANDING) +@@ -489,6 +491,9 @@ bool PathProvider(int key, base::FilePath* result) { + #if BUILDFLAG(GOOGLE_CHROME_BRANDING) + cur = base::FilePath(FILE_PATH_LITERAL( + "/etc/opt/chrome/native-messaging-hosts")); ++#elif BUILDFLAG(IS_FREEBSD) ++ cur = base::FilePath(FILE_PATH_LITERAL( ++ "/usr/local/etc/chromium/native-messaging-hosts")); + #else + cur = base::FilePath(FILE_PATH_LITERAL( + "/etc/chromium/native-messaging-hosts")); diff --git a/devel/electron18/files/patch-chrome_common_chrome__paths.h b/devel/electron18/files/patch-chrome_common_chrome__paths.h new file mode 100644 index 000000000000..aa961647c718 --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_chrome__paths.h @@ -0,0 +1,29 @@ +--- chrome/common/chrome_paths.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/common/chrome_paths.h +@@ -56,7 +56,7 @@ enum { + #if BUILDFLAG(IS_CHROMEOS_ASH) || \ + ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \ + BUILDFLAG(CHROMIUM_BRANDING)) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + DIR_USER_EXTERNAL_EXTENSIONS, // Directory for per-user external extensions + // on Chrome Mac and Chromium Linux. + // On Chrome OS, this path is used for OEM +@@ -64,7 +64,7 @@ enum { + // create it. + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + DIR_STANDALONE_EXTERNAL_EXTENSIONS, // Directory for 'per-extension' + // definition manifest files that + // describe extensions which are to be +@@ -105,7 +105,7 @@ enum { + DIR_CHROMEOS_CUSTOM_WALLPAPERS, // Directory where custom wallpapers + // reside. + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + DIR_NATIVE_MESSAGING, // System directory where native messaging host + // manifest files are stored. + DIR_USER_NATIVE_MESSAGING, // Directory with Native Messaging Hosts diff --git a/devel/electron18/files/patch-chrome_common_chrome__paths__internal.h b/devel/electron18/files/patch-chrome_common_chrome__paths__internal.h new file mode 100644 index 000000000000..105519738631 --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_chrome__paths__internal.h @@ -0,0 +1,11 @@ +--- chrome/common/chrome_paths_internal.h.orig 2022-05-19 03:45:19 UTC ++++ chrome/common/chrome_paths_internal.h +@@ -45,7 +45,7 @@ void GetUserCacheDirectory(const base::FilePath& profi + // Get the path to the user's documents directory. + bool GetUserDocumentsDirectory(base::FilePath* result); + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Gets the path to a safe default download directory for a user. + bool GetUserDownloadsDirectorySafe(base::FilePath* result); + #endif diff --git a/devel/electron18/files/patch-chrome_common_chrome__switches.cc b/devel/electron18/files/patch-chrome_common_chrome__switches.cc new file mode 100644 index 000000000000..cbc0a9058d89 --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_chrome__switches.cc @@ -0,0 +1,19 @@ +--- chrome/common/chrome_switches.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/common/chrome_switches.cc +@@ -794,14 +794,14 @@ const char kAllowNaClSocketAPI[] = "allow-n + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + const char kEnableNewAppMenuIcon[] = "enable-new-app-menu-icon"; + + // Causes the browser to launch directly in guest mode. + const char kGuest[] = "guest"; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Writes open and installed web apps for each profile to the specified file + // without launching a new browser window or tab. Pass a absolute file path to + // specify where to output the information. Can be used together with optional diff --git a/devel/electron18/files/patch-chrome_common_chrome__switches.h b/devel/electron18/files/patch-chrome_common_chrome__switches.h new file mode 100644 index 000000000000..c7c97c447131 --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_chrome__switches.h @@ -0,0 +1,17 @@ +--- chrome/common/chrome_switches.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/common/chrome_switches.h +@@ -248,12 +248,12 @@ extern const char kAllowNaClSocketAPI[]; + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + extern const char kEnableNewAppMenuIcon[]; + extern const char kGuest[]; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + extern const char kListApps[]; + extern const char kProfileBaseName[]; + #endif diff --git a/devel/electron18/files/patch-chrome_common_extensions_command.cc b/devel/electron18/files/patch-chrome_common_extensions_command.cc new file mode 100644 index 000000000000..f1015a46d5c8 --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_extensions_command.cc @@ -0,0 +1,11 @@ +--- chrome/common/extensions/command.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/common/extensions/command.cc +@@ -295,7 +295,7 @@ std::string Command::CommandPlatform() { + return values::kKeybindingPlatformMac; + #elif BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) + return values::kKeybindingPlatformChromeOs; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return values::kKeybindingPlatformLinux; + #else + return ""; diff --git a/devel/electron18/files/patch-chrome_common_media_cdm__host__file__path.cc b/devel/electron18/files/patch-chrome_common_media_cdm__host__file__path.cc new file mode 100644 index 000000000000..e8a85e367e1f --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_media_cdm__host__file__path.cc @@ -0,0 +1,11 @@ +--- chrome/common/media/cdm_host_file_path.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/common/media/cdm_host_file_path.cc +@@ -95,7 +95,7 @@ void AddCdmHostFilePaths( + cdm_host_file_paths->emplace_back(chrome_framework_path, + chrome_framework_sig_path); + +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + base::FilePath chrome_exe_dir; + if (!base::PathService::Get(base::DIR_EXE, &chrome_exe_dir)) diff --git a/devel/electron18/files/patch-chrome_common_pref__names.cc b/devel/electron18/files/patch-chrome_common_pref__names.cc new file mode 100644 index 000000000000..615fc9d16e89 --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_pref__names.cc @@ -0,0 +1,56 @@ +--- chrome/common/pref_names.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/common/pref_names.cc +@@ -1188,7 +1188,7 @@ const char kUseAshProxy[] = "lacros.proxy.use_ash_prox + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Linux specific preference on whether we should match the system theme. + const char kUsesSystemTheme[] = "extensions.theme.use_system"; + #endif +@@ -1291,7 +1291,7 @@ const char kShowUpdatePromotionInfoBar[] = + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Boolean that is false if we should show window manager decorations. If + // true, we draw a custom chrome frame (thicker title bar and blue border). + const char kUseCustomChromeFrame[] = "browser.custom_chrome_frame"; +@@ -1780,7 +1780,7 @@ const char kDownloadDefaultDirectory[] = "download.def + const char kDownloadDirUpgraded[] = "download.directory_upgrade"; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + const char kOpenPdfDownloadInSystemReader[] = + "download.open_pdf_in_system_reader"; + #endif +@@ -2069,7 +2069,7 @@ const char kWebAppsPreferences[] = "web_apps.web_app_i + // its isolation requirements. + const char kWebAppsIsolationState[] = "web_apps.isolation_state"; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + // Dictionary that maps origins to web apps that can act as URL handlers. + const char kWebAppsUrlHandlerInfo[] = "web_apps.url_handler_info"; +@@ -2199,7 +2199,7 @@ const char kAmbientAuthenticationInPrivateModesEnabled + // requests. + const char kBasicAuthOverHttpEnabled[] = "auth.basic_over_http_enabled"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Boolean that specifies whether OK-AS-DELEGATE flag from KDC is respected + // along with kAuthNegotiateDelegateAllowlist. + const char kAuthNegotiateDelegateByKdcPolicy[] = +@@ -3129,7 +3129,7 @@ const char kBlockAutoplayEnabled[] = "media.block_auto + const char kSandboxExternalProtocolBlocked[] = + "profile.sandbox_external_protocol_blocked"; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Boolean that indicates if native notifications are allowed to be used in + // place of Chrome notifications. Will be replaced by kAllowSystemNotifications. + const char kAllowNativeNotifications[] = "native_notifications.allowed"; diff --git a/devel/electron18/files/patch-chrome_common_pref__names.h b/devel/electron18/files/patch-chrome_common_pref__names.h new file mode 100644 index 000000000000..396fdf56ce9a --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_pref__names.h @@ -0,0 +1,56 @@ +--- chrome/common/pref_names.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/common/pref_names.h +@@ -372,7 +372,7 @@ extern const char kUseAshProxy[]; + #endif // BUILDFLAG(IS_CHROMEOS_LACROS) + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + extern const char kUsesSystemTheme[]; + #endif + extern const char kCurrentThemePackFilename[]; +@@ -401,7 +401,7 @@ extern const char kShowUpdatePromotionInfoBar[]; + #endif + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + extern const char kUseCustomChromeFrame[]; + #endif + #if BUILDFLAG(ENABLE_PLUGINS) +@@ -584,7 +584,7 @@ extern const char kDownloadExtensionsToOpenByPolicy[]; + extern const char kDownloadAllowedURLsForOpenByPolicy[]; + extern const char kDownloadDirUpgraded[]; + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + extern const char kOpenPdfDownloadInSystemReader[]; + #endif + #if BUILDFLAG(IS_ANDROID) +@@ -691,7 +691,7 @@ extern const char kWebAppsUninstalledDefaultChromeApps + extern const char kWebAppsPreferences[]; + extern const char kWebAppsIsolationState[]; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + extern const char kWebAppsUrlHandlerInfo[]; + #endif +@@ -830,7 +830,7 @@ extern const char kGloballyScopeHTTPAuthCacheEnabled[] + extern const char kAmbientAuthenticationInPrivateModesEnabled[]; + extern const char kBasicAuthOverHttpEnabled[]; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kAuthNegotiateDelegateByKdcPolicy[]; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) + +@@ -1068,7 +1068,7 @@ extern const char kBlockAutoplayEnabled[]; + #endif + extern const char kSandboxExternalProtocolBlocked[]; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extern const char kAllowNativeNotifications[]; + extern const char kAllowSystemNotifications[]; + #endif diff --git a/devel/electron18/files/patch-chrome_common_webui__url__constants.cc b/devel/electron18/files/patch-chrome_common_webui__url__constants.cc new file mode 100644 index 000000000000..ebaf07f11605 --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_webui__url__constants.cc @@ -0,0 +1,94 @@ +--- chrome/common/webui_url_constants.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/common/webui_url_constants.cc +@@ -434,18 +434,18 @@ const char kOsUIFlagsURL[] = "os://flags"; + const char kOsUIVersionURL[] = "os://version"; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kChromeUIWebUIJsErrorHost[] = "webuijserror"; + const char kChromeUIWebUIJsErrorURL[] = "chrome://webuijserror/"; + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kChromeUIConnectorsInternalsHost[] = "connectors-internals"; + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kChromeUIDiscardsHost[] = "discards"; + const char kChromeUIDiscardsURL[] = "chrome://discards/"; + #endif +@@ -460,14 +460,14 @@ const char kChromeUILinuxProxyConfigHost[] = "linux-pr + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + const char kChromeUISandboxHost[] = "sandbox"; + #endif + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) || \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD) + const char kChromeUIBrowserSwitchHost[] = "browser-switch"; + const char kChromeUIBrowserSwitchURL[] = "chrome://browser-switch/"; + const char kChromeUIEnterpriseProfileWelcomeHost[] = +@@ -482,7 +482,7 @@ const char kChromeUIProfilePickerUrl[] = "chrome://pro + const char kChromeUIProfilePickerStartupQuery[] = "startup"; + #endif + +-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + defined(TOOLKIT_VIEWS)) || \ + defined(USE_AURA) + const char kChromeUITabModalConfirmDialogHost[] = "tab-modal-confirm-dialog"; +@@ -554,7 +554,7 @@ const char kPrivacySandboxSubPagePath[] = "/privacySan + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + const char kChromeUIWebAppSettingsURL[] = "chrome://app-settings/"; + const char kChromeUIWebAppSettingsHost[] = "app-settings"; + #endif +@@ -678,21 +678,21 @@ const char* const kChromeHostURLs[] = { + kChromeUIAssistantOptInHost, + #endif + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + kChromeUIConnectorsInternalsHost, + #endif + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + kChromeUIDiscardsHost, + #endif +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + kChromeUIWebAppSettingsHost, + #endif + #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) + kChromeUILinuxProxyConfigHost, + #endif + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + kChromeUISandboxHost, + #endif + #if BUILDFLAG(IS_WIN) +@@ -749,7 +749,7 @@ const char* const kChromeDebugURLs[] = { + blink::kChromeUIGpuJavaCrashURL, + kChromeUIJavaCrashURL, + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + kChromeUIWebUIJsErrorURL, + #endif + kChromeUIQuitURL, diff --git a/devel/electron18/files/patch-chrome_common_webui__url__constants.h b/devel/electron18/files/patch-chrome_common_webui__url__constants.h new file mode 100644 index 000000000000..10e6120f29f2 --- /dev/null +++ b/devel/electron18/files/patch-chrome_common_webui__url__constants.h @@ -0,0 +1,57 @@ +--- chrome/common/webui_url_constants.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/common/webui_url_constants.h +@@ -371,24 +371,24 @@ extern const char kOsUIFlagsURL[]; + extern const char kOsUIVersionURL[]; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kChromeUIWebUIJsErrorHost[]; + extern const char kChromeUIWebUIJsErrorURL[]; + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kChromeUIConnectorsInternalsHost[]; + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + extern const char kChromeUIDiscardsHost[]; + extern const char kChromeUIDiscardsURL[]; + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + extern const char kChromeUIWebAppSettingsURL[]; + extern const char kChromeUIWebAppSettingsHost[]; + #endif +@@ -403,14 +403,14 @@ extern const char kChromeUILinuxProxyConfigHost[]; + #endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + extern const char kChromeUISandboxHost[]; + #endif + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) || \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD) + extern const char kChromeUIBrowserSwitchHost[]; + extern const char kChromeUIBrowserSwitchURL[]; + extern const char kChromeUIEnterpriseProfileWelcomeHost[]; +@@ -422,7 +422,7 @@ extern const char kChromeUIProfilePickerUrl[]; + extern const char kChromeUIProfilePickerStartupQuery[]; + #endif + +-#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + defined(TOOLKIT_VIEWS)) || \ + defined(USE_AURA) + extern const char kChromeUITabModalConfirmDialogHost[]; diff --git a/devel/electron18/files/patch-chrome_renderer_chrome__render__frame__observer.cc b/devel/electron18/files/patch-chrome_renderer_chrome__render__frame__observer.cc new file mode 100644 index 000000000000..66b6bd071741 --- /dev/null +++ b/devel/electron18/files/patch-chrome_renderer_chrome__render__frame__observer.cc @@ -0,0 +1,11 @@ +--- chrome/renderer/chrome_render_frame_observer.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/renderer/chrome_render_frame_observer.cc +@@ -280,7 +280,7 @@ void ChromeRenderFrameObserver::OnDestruct() { + + void ChromeRenderFrameObserver::DraggableRegionsChanged() { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Only the main frame is allowed to control draggable regions, to avoid other + // frames manipulate the regions in the browser process. + if (!render_frame()->IsMainFrame()) diff --git a/devel/electron18/files/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc b/devel/electron18/files/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc new file mode 100644 index 000000000000..6c5a3b135335 --- /dev/null +++ b/devel/electron18/files/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc @@ -0,0 +1,29 @@ +--- chrome/renderer/pepper/pepper_flash_font_file_host.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/renderer/pepper/pepper_flash_font_file_host.cc +@@ -16,7 +16,7 @@ + #include "ppapi/proxy/ppapi_messages.h" + #include "ppapi/proxy/serialized_structs.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/services/font/public/cpp/font_loader.h" + #include "pdf/font_table_linux.h" + #elif BUILDFLAG(IS_WIN) +@@ -30,7 +30,7 @@ PepperFlashFontFileHost::PepperFlashFontFileHost( + const ppapi::proxy::SerializedFontDescription& description, + PP_PrivateFontCharset charset) + : ResourceHost(host->GetPpapiHost(), instance, resource) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The global SkFontConfigInterface is configured and initialized with a + // SkFontconfigInterface compatible font_service::FontLoader in + // RendererBlinkPlatformImpl (called from RenderThreadImpl::Init) at startup +@@ -75,7 +75,7 @@ bool PepperFlashFontFileHost::GetFontData(uint32_t tab + void* buffer, + size_t* length) { + bool result = false; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (font_file_.IsValid()) { + result = + pdf::GetFontTable(font_file_.GetPlatformFile(), table, /*offset=*/0, diff --git a/devel/electron18/files/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h b/devel/electron18/files/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h new file mode 100644 index 000000000000..741c8436996d --- /dev/null +++ b/devel/electron18/files/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h @@ -0,0 +1,20 @@ +--- chrome/renderer/pepper/pepper_flash_font_file_host.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/renderer/pepper/pepper_flash_font_file_host.h +@@ -12,7 +12,7 @@ + #include "ppapi/c/private/pp_private_font_charset.h" + #include "ppapi/host/resource_host.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/files/file.h" + #elif BUILDFLAG(IS_WIN) + #include "third_party/skia/include/core/SkRefCnt.h" +@@ -52,7 +52,7 @@ class PepperFlashFontFileHost : public ppapi::host::Re + uint32_t table); + bool GetFontData(uint32_t table, void* buffer, size_t* length); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::File font_file_; + #elif BUILDFLAG(IS_WIN) + sk_sp<SkTypeface> typeface_; diff --git a/devel/electron18/files/patch-chrome_services_file__util_public_mojom_safe__document__analyzer__mojom__traits.h b/devel/electron18/files/patch-chrome_services_file__util_public_mojom_safe__document__analyzer__mojom__traits.h new file mode 100644 index 000000000000..6c508150be52 --- /dev/null +++ b/devel/electron18/files/patch-chrome_services_file__util_public_mojom_safe__document__analyzer__mojom__traits.h @@ -0,0 +1,11 @@ +--- chrome/services/file_util/public/mojom/safe_document_analyzer_mojom_traits.h.orig 2022-05-19 05:17:39 UTC ++++ chrome/services/file_util/public/mojom/safe_document_analyzer_mojom_traits.h +@@ -15,7 +15,7 @@ + #include "mojo/public/cpp/bindings/struct_traits.h" + + #if !BUILDFLAG(FULL_SAFE_BROWSING) || \ +- (!BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_WIN)) ++ (!BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD)) + #error BUILDFLAG(FULL_SAFE_BROWSING) should be set and either OS_LINUX or OS_WIN defined. + #endif + diff --git a/devel/electron18/files/patch-chrome_services_printing_print__backend__service__impl.cc b/devel/electron18/files/patch-chrome_services_printing_print__backend__service__impl.cc new file mode 100644 index 000000000000..5e0386e43dcd --- /dev/null +++ b/devel/electron18/files/patch-chrome_services_printing_print__backend__service__impl.cc @@ -0,0 +1,11 @@ +--- chrome/services/printing/print_backend_service_impl.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/services/printing/print_backend_service_impl.cc +@@ -510,7 +510,7 @@ void PrintBackendServiceImpl::UpdatePrintSettings( + crash_keys_ = std::make_unique<crash_keys::ScopedPrinterInfo>( + print_backend_->GetPrinterDriverInfo(printer_name)); + +-#if BUILDFLAG(IS_LINUX) && defined(USE_CUPS) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(USE_CUPS) + // Try to fill in advanced settings based upon basic info options. + PrinterBasicInfo basic_info; + if (print_backend_->GetPrinterBasicInfo(printer_name, &basic_info) == diff --git a/devel/electron18/files/patch-chrome_services_speech_audio__source__fetcher__impl.cc b/devel/electron18/files/patch-chrome_services_speech_audio__source__fetcher__impl.cc new file mode 100644 index 000000000000..3a6d315eeed8 --- /dev/null +++ b/devel/electron18/files/patch-chrome_services_speech_audio__source__fetcher__impl.cc @@ -0,0 +1,11 @@ +--- chrome/services/speech/audio_source_fetcher_impl.cc.orig 2022-05-19 03:45:19 UTC ++++ chrome/services/speech/audio_source_fetcher_impl.cc +@@ -68,7 +68,7 @@ void AudioSourceFetcherImpl::Start( + + // TODO(crbug.com/1185978): Check implementation / sandbox policy on Mac and + // Windows. +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + is_started_ = true; + // Initialize the AudioCapturerSource with |this| as the CaptureCallback, + // get the parameters for the device ID, then start audio capture. diff --git a/devel/electron18/files/patch-chrome_test_BUILD.gn b/devel/electron18/files/patch-chrome_test_BUILD.gn new file mode 100644 index 000000000000..300b8ed70d4c --- /dev/null +++ b/devel/electron18/files/patch-chrome_test_BUILD.gn @@ -0,0 +1,11 @@ +--- chrome/test/BUILD.gn.orig 2022-05-20 04:30:53 UTC ++++ chrome/test/BUILD.gn +@@ -9118,7 +9118,7 @@ test("chrome_app_unittests") { + "//components/safe_browsing:buildflags", + "//pdf:pdf_ppapi", + ] +- if (!is_fuchsia) { ++ if (!is_fuchsia && !is_bsd) { + deps += [ "//third_party/breakpad:client" ] + } + if (enable_gwp_asan) { diff --git a/devel/electron18/files/patch-chrome_test_chromedriver_chrome__launcher.cc b/devel/electron18/files/patch-chrome_test_chromedriver_chrome__launcher.cc new file mode 100644 index 000000000000..ffdf3cf96005 --- /dev/null +++ b/devel/electron18/files/patch-chrome_test_chromedriver_chrome__launcher.cc @@ -0,0 +1,10 @@ +--- chrome/test/chromedriver/chrome_launcher.cc.orig 2022-05-19 03:45:19 UTC ++++ chrome/test/chromedriver/chrome_launcher.cc +@@ -65,6 +65,7 @@ + #include <fcntl.h> + #include <sys/stat.h> + #include <sys/types.h> ++#include <sys/wait.h> + #include <unistd.h> + #elif BUILDFLAG(IS_WIN) + #include "chrome/test/chromedriver/keycode_text_conversion.h" diff --git a/devel/electron18/files/patch-chrome_test_chromedriver_chrome_chrome__finder.cc b/devel/electron18/files/patch-chrome_test_chromedriver_chrome_chrome__finder.cc new file mode 100644 index 000000000000..7643ce01426a --- /dev/null +++ b/devel/electron18/files/patch-chrome_test_chromedriver_chrome_chrome__finder.cc @@ -0,0 +1,20 @@ +--- chrome/test/chromedriver/chrome/chrome_finder.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/test/chromedriver/chrome/chrome_finder.cc +@@ -54,7 +54,7 @@ void GetApplicationDirs(std::vector<base::FilePath>* l + installation_locations[i].Append(L"Chromium\\Application")); + } + } +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void GetApplicationDirs(std::vector<base::FilePath>* locations) { + // TODO: Respect users' PATH variables. + // Until then, we use an approximation of the most common defaults. +@@ -139,7 +139,7 @@ bool FindChrome(base::FilePath* browser_exe) { + base::FilePath browser_exes_array[] = { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) + base::FilePath(chrome::kBrowserProcessExecutablePath), +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::FilePath("google-chrome"), + base::FilePath(chrome::kBrowserProcessExecutablePath), + base::FilePath("chromium"), diff --git a/devel/electron18/files/patch-chrome_test_chromedriver_key__converter__unittest.cc b/devel/electron18/files/patch-chrome_test_chromedriver_key__converter__unittest.cc new file mode 100644 index 000000000000..9487bc211ec1 --- /dev/null +++ b/devel/electron18/files/patch-chrome_test_chromedriver_key__converter__unittest.cc @@ -0,0 +1,20 @@ +--- chrome/test/chromedriver/key_converter_unittest.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/test/chromedriver/key_converter_unittest.cc +@@ -246,7 +246,7 @@ TEST(KeyConverter, ToggleModifiers) { + CheckEventsReleaseModifiers(keys, key_events); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Fails on bots: crbug.com/174962 + #define MAYBE_AllEnglishKeyboardSymbols DISABLED_AllEnglishKeyboardSymbols + #else +@@ -303,7 +303,7 @@ TEST(KeyConverter, AllEnglishKeyboardTextChars) { + TEST(KeyConverter, AllSpecialWebDriverKeysOnEnglishKeyboard) { + ui::ScopedKeyboardLayout keyboard_layout(ui::KEYBOARD_LAYOUT_ENGLISH_US); + const char kTextForKeys[] = { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + 0, 0, 0, 0, '\t', 0, '\r', '\r', 0, 0, 0, 0, 0, + #else + 0, 0, 0, 0, 0, 0, '\r', '\r', 0, 0, 0, 0, 0, diff --git a/devel/electron18/files/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc b/devel/electron18/files/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc new file mode 100644 index 000000000000..aaaf9f91085f --- /dev/null +++ b/devel/electron18/files/patch-chrome_test_chromedriver_keycode__text__conversion__unittest.cc @@ -0,0 +1,20 @@ +--- chrome/test/chromedriver/keycode_text_conversion_unittest.cc.orig 2022-05-19 03:45:19 UTC ++++ chrome/test/chromedriver/keycode_text_conversion_unittest.cc +@@ -64,7 +64,7 @@ std::string ConvertKeyCodeToTextNoError(ui::KeyboardCo + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Fails on bots: crbug.com/174962 + #define MAYBE_KeyCodeToText DISABLED_KeyCodeToText + #else +@@ -101,7 +101,7 @@ TEST(KeycodeTextConversionTest, MAYBE_KeyCodeToText) { + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Fails on bots: crbug.com/174962 + #define MAYBE_CharToKeyCode DISABLED_CharToKeyCode + #else diff --git a/devel/electron18/files/patch-chrome_updater_app_app__install.cc b/devel/electron18/files/patch-chrome_updater_app_app__install.cc new file mode 100644 index 000000000000..7ec3e4f681f5 --- /dev/null +++ b/devel/electron18/files/patch-chrome_updater_app_app__install.cc @@ -0,0 +1,11 @@ +--- chrome/updater/app/app_install.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/updater/app/app_install.cc +@@ -166,7 +166,7 @@ void AppInstall::WakeCandidate() { + update_service_internal, base::WrapRefCounted(this))); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/1276114) - implement. + void AppInstall::WakeCandidateDone() { + NOTIMPLEMENTED(); diff --git a/devel/electron18/files/patch-chrome_updater_app_app__uninstall.cc b/devel/electron18/files/patch-chrome_updater_app_app__uninstall.cc new file mode 100644 index 000000000000..ba8100de1887 --- /dev/null +++ b/devel/electron18/files/patch-chrome_updater_app_app__uninstall.cc @@ -0,0 +1,11 @@ +--- chrome/updater/app/app_uninstall.cc.orig 2022-05-19 03:45:22 UTC ++++ chrome/updater/app/app_uninstall.cc +@@ -32,7 +32,7 @@ + #include "chrome/updater/win/setup/uninstall.h" + #elif BUILDFLAG(IS_MAC) + #include "chrome/updater/mac/setup/setup.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/updater/linux/setup/setup.h" + #endif + diff --git a/devel/electron18/files/patch-chrome_updater_configurator.cc b/devel/electron18/files/patch-chrome_updater_configurator.cc new file mode 100644 index 000000000000..8d76a32afc3b --- /dev/null +++ b/devel/electron18/files/patch-chrome_updater_configurator.cc @@ -0,0 +1,11 @@ +--- chrome/updater/configurator.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/updater/configurator.cc +@@ -39,7 +39,7 @@ + #include "chrome/updater/win/net/network.h" + #elif BUILDFLAG(IS_MAC) + #include "chrome/updater/mac/net/network.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/updater/linux/net/network.h" + #endif + diff --git a/devel/electron18/files/patch-chrome_updater_device__management_cloud__policy__util.cc b/devel/electron18/files/patch-chrome_updater_device__management_cloud__policy__util.cc new file mode 100644 index 000000000000..4d27d1b81f7a --- /dev/null +++ b/devel/electron18/files/patch-chrome_updater_device__management_cloud__policy__util.cc @@ -0,0 +1,47 @@ +--- chrome/updater/device_management/cloud_policy_util.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/updater/device_management/cloud_policy_util.cc +@@ -22,7 +22,7 @@ + #include <wincred.h> + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include <pwd.h> + #include <sys/types.h> + #include <unistd.h> +@@ -36,7 +36,7 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include <limits.h> // For HOST_NAME_MAX + #endif + +@@ -63,7 +63,7 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/system/sys_info.h" + #endif + +@@ -111,7 +111,7 @@ std::string GetPolicyVerificationKey() { + std::string GetMachineName() { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + char hostname[HOST_NAME_MAX]; + if (gethostname(hostname, HOST_NAME_MAX) == 0) // Success. + return hostname; +@@ -161,7 +161,7 @@ std::string GetMachineName() { + } + + std::string GetOSVersion() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return base::SysInfo::OperatingSystemVersion(); + #elif BUILDFLAG(IS_WIN) + base::win::OSInfo::VersionNumber version_number = diff --git a/devel/electron18/files/patch-chrome_updater_device__management_dm__client.cc b/devel/electron18/files/patch-chrome_updater_device__management_dm__client.cc new file mode 100644 index 000000000000..0b37a75dbf11 --- /dev/null +++ b/devel/electron18/files/patch-chrome_updater_device__management_dm__client.cc @@ -0,0 +1,11 @@ +--- chrome/updater/device_management/dm_client.cc.orig 2022-05-19 03:45:22 UTC ++++ chrome/updater/device_management/dm_client.cc +@@ -36,7 +36,7 @@ + #include "chrome/updater/win/net/network.h" + #elif BUILDFLAG(IS_MAC) + #include "chrome/updater/mac/net/network.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/updater/linux/net/network.h" + #endif + diff --git a/devel/electron18/files/patch-chrome_updater_device__management_dm__storage.cc b/devel/electron18/files/patch-chrome_updater_device__management_dm__storage.cc new file mode 100644 index 000000000000..b8b94899037a --- /dev/null +++ b/devel/electron18/files/patch-chrome_updater_device__management_dm__storage.cc @@ -0,0 +1,11 @@ +--- chrome/updater/device_management/dm_storage.cc.orig 2022-05-19 03:45:22 UTC ++++ chrome/updater/device_management/dm_storage.cc +@@ -70,7 +70,7 @@ bool DeleteObsoletePolicies(const base::FilePath& cach + + } // namespace + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // crbug.com/1276162 - implement. + DMStorage::DMStorage(const base::FilePath& policy_cache_root) + : policy_cache_root_(policy_cache_root) { diff --git a/devel/electron18/files/patch-chrome_updater_installer.cc b/devel/electron18/files/patch-chrome_updater_installer.cc new file mode 100644 index 000000000000..3ae14c3b3272 --- /dev/null +++ b/devel/electron18/files/patch-chrome_updater_installer.cc @@ -0,0 +1,11 @@ +--- chrome/updater/installer.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/updater/installer.cc +@@ -225,7 +225,7 @@ absl::optional<base::FilePath> Installer::GetCurrentIn + return path->AppendASCII(pv_.GetString()); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + Installer::Result Installer::RunApplicationInstaller( + const base::FilePath& /*app_installer*/, + const std::string& /*arguments*/, diff --git a/devel/electron18/files/patch-chrome_updater_lib__util.cc b/devel/electron18/files/patch-chrome_updater_lib__util.cc new file mode 100644 index 000000000000..0b4ca5566a6e --- /dev/null +++ b/devel/electron18/files/patch-chrome_updater_lib__util.cc @@ -0,0 +1,11 @@ +--- chrome/updater/lib_util.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/updater/lib_util.cc +@@ -11,7 +11,7 @@ + + namespace updater { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + std::string UnescapeURLComponent(base::StringPiece escaped_text) { + return base::UnescapeURLComponent( diff --git a/devel/electron18/files/patch-chrome_updater_updater.cc b/devel/electron18/files/patch-chrome_updater_updater.cc new file mode 100644 index 000000000000..dbef09360c16 --- /dev/null +++ b/devel/electron18/files/patch-chrome_updater_updater.cc @@ -0,0 +1,11 @@ +--- chrome/updater/updater.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/updater/updater.cc +@@ -41,7 +41,7 @@ + #include "chrome/updater/win/win_util.h" + #elif BUILDFLAG(IS_MAC) + #include "chrome/updater/app/server/mac/server.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "chrome/updater/app/server/linux/server.h" + #endif + diff --git a/devel/electron18/files/patch-chrome_updater_util.cc b/devel/electron18/files/patch-chrome_updater_util.cc new file mode 100644 index 000000000000..edf18214e5b7 --- /dev/null +++ b/devel/electron18/files/patch-chrome_updater_util.cc @@ -0,0 +1,11 @@ +--- chrome/updater/util.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/updater/util.cc +@@ -253,7 +253,7 @@ GURL AppendQueryParameter(const GURL& url, + return url.ReplaceComponents(replacements); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + // TODO(crbug.com/1276188) - implement the functions below. + absl::optional<base::FilePath> GetUpdaterFolderPath(UpdaterScope scope) { diff --git a/devel/electron18/files/patch-chrome_utility_services.cc b/devel/electron18/files/patch-chrome_utility_services.cc new file mode 100644 index 000000000000..9e9d00bc56a8 --- /dev/null +++ b/devel/electron18/files/patch-chrome_utility_services.cc @@ -0,0 +1,29 @@ +--- chrome/utility/services.cc.orig 2022-05-19 05:17:39 UTC ++++ chrome/utility/services.cc +@@ -63,7 +63,7 @@ + #include "chrome/services/file_util/file_util_service.h" // nogncheck + #endif + +-#if BUILDFLAG(FULL_SAFE_BROWSING) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)) ++#if BUILDFLAG(FULL_SAFE_BROWSING) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)) + #include "chrome/services/file_util/document_analysis_service.h" // nogncheck + #endif + +@@ -216,7 +216,7 @@ auto RunCupsIppParser( + } + #endif + +-#if BUILDFLAG(FULL_SAFE_BROWSING) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)) ++#if BUILDFLAG(FULL_SAFE_BROWSING) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)) + auto RunDocumentAnalysis( + mojo::PendingReceiver<chrome::mojom::DocumentAnalysisService> receiver) { + return std::make_unique<DocumentAnalysisService>(std::move(receiver)); +@@ -382,7 +382,7 @@ void RegisterMainThreadServices(mojo::ServiceFactory& + services.Add(RunFileUtil); + #endif + +-#if BUILDFLAG(FULL_SAFE_BROWSING) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)) ++#if BUILDFLAG(FULL_SAFE_BROWSING) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)) + services.Add(RunDocumentAnalysis); + #endif + diff --git a/devel/electron18/files/patch-chromecast_browser_cast__browser__main__parts.cc b/devel/electron18/files/patch-chromecast_browser_cast__browser__main__parts.cc new file mode 100644 index 000000000000..c6e31a09e7ba --- /dev/null +++ b/devel/electron18/files/patch-chromecast_browser_cast__browser__main__parts.cc @@ -0,0 +1,65 @@ +--- chromecast/browser/cast_browser_main_parts.cc.orig 2022-05-19 05:17:39 UTC ++++ chromecast/browser/cast_browser_main_parts.cc +@@ -93,7 +93,7 @@ + #include "ui/base/ui_base_switches.h" + #include "ui/gl/gl_switches.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <fontconfig/fontconfig.h> + #include <signal.h> + #include <sys/prctl.h> +@@ -148,7 +148,7 @@ + #include "extensions/browser/extension_prefs.h" // nogncheck + #endif + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_OZONE) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(USE_OZONE) + #include "chromecast/browser/exo/wayland_server_controller.h" + #endif + +@@ -284,7 +284,7 @@ class CastViewsDelegate : public views::ViewsDelegate + + #endif // defined(USE_AURA) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + base::FilePath GetApplicationFontsDir() { + std::unique_ptr<base::Environment> env(base::Environment::Create()); +@@ -330,7 +330,7 @@ const DefaultCommandLineSwitch kDefaultSwitches[] = { + {cc::switches::kDisableThreadedAnimation, ""}, + #endif // BUILDFLAG(IS_ANDROID) + #endif // BUILDFLAG(IS_CAST_AUDIO_ONLY) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #if defined(ARCH_CPU_X86_FAMILY) + // This is needed for now to enable the x11 Ozone platform to work with + // current Linux/NVidia OpenGL drivers. +@@ -522,7 +522,7 @@ void CastBrowserMainParts::ToolkitInitialized() { + views_delegate_ = std::make_unique<CastViewsDelegate>(); + #endif // defined(USE_AURA) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::FilePath dir_font = GetApplicationFontsDir(); + const FcChar8 *dir_font_char8 = reinterpret_cast<const FcChar8*>(dir_font.value().data()); + if (!FcConfigAppFontAddDir(gfx::GetGlobalFontConfig(), dir_font_char8)) { +@@ -753,7 +753,7 @@ int CastBrowserMainParts::PreMainMessageLoopRun() { + cast_browser_process_->browser_context()); + #endif + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_OZONE) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(USE_OZONE) + wayland_server_controller_ = + std::make_unique<WaylandServerController>(window_manager_.get()); + #endif +@@ -828,7 +828,7 @@ void CastBrowserMainParts::PostMainMessageLoopRun() { + + cast_browser_process_->cast_service()->Stop(); + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_OZONE) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(USE_OZONE) + wayland_server_controller_.reset(); + #endif + #if BUILDFLAG(ENABLE_CHROMECAST_EXTENSIONS) diff --git a/devel/electron18/files/patch-chromecast_browser_cast__content__browser__client.cc b/devel/electron18/files/patch-chromecast_browser_cast__content__browser__client.cc new file mode 100644 index 000000000000..1f81cc65c387 --- /dev/null +++ b/devel/electron18/files/patch-chromecast_browser_cast__content__browser__client.cc @@ -0,0 +1,29 @@ +--- chromecast/browser/cast_content_browser_client.cc.orig 2022-05-19 05:17:39 UTC ++++ chromecast/browser/cast_content_browser_client.cc +@@ -135,7 +135,7 @@ + #include "extensions/common/constants.h" // nogncheck + #endif + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_OZONE) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(USE_OZONE) + #include "chromecast/browser/webview/webview_controller.h" + #endif // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_OZONE) + +@@ -476,7 +476,7 @@ void CastContentBrowserClient::AppendExtraCommandLineS + switches::kAudioOutputChannels)); + } + } else if (process_type == switches::kGpuProcess) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Necessary for accelerated 2d canvas. By default on Linux, Chromium + // assumes GLES2 contexts can be lost to a power-save mode, which breaks GPU + // canvas apps. +@@ -872,7 +872,7 @@ CastContentBrowserClient::CreateThrottlesForNavigation + handle, general_audience_browsing_service_.get())); + } + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_OZONE) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(USE_OZONE) + auto webview_throttle = WebviewController::MaybeGetNavigationThrottle(handle); + if (webview_throttle) { + throttles.push_back(std::move(webview_throttle)); diff --git a/devel/electron18/files/patch-chromecast_browser_cast__content__browser__client__receiver__bindings.cc b/devel/electron18/files/patch-chromecast_browser_cast__content__browser__client__receiver__bindings.cc new file mode 100644 index 000000000000..5db26e132735 --- /dev/null +++ b/devel/electron18/files/patch-chromecast_browser_cast__content__browser__client__receiver__bindings.cc @@ -0,0 +1,20 @@ +--- chromecast/browser/cast_content_browser_client_receiver_bindings.cc.orig 2022-05-19 03:45:22 UTC ++++ chromecast/browser/cast_content_browser_client_receiver_bindings.cc +@@ -35,7 +35,7 @@ + #include "media/mojo/services/media_service.h" // nogncheck + #endif // BUILDFLAG(ENABLE_CAST_RENDERER) + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_OZONE) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(USE_OZONE) + #include "chromecast/browser/webview/js_channel_service.h" + #include "chromecast/common/mojom/js_channel.mojom.h" + #endif +@@ -234,7 +234,7 @@ void CastContentBrowserClient::RunServiceInstance( + void CastContentBrowserClient::BindHostReceiverForRenderer( + content::RenderProcessHost* render_process_host, + mojo::GenericPendingReceiver receiver) { +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_OZONE) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(USE_OZONE) + if (auto r = receiver.As<::chromecast::mojom::JsChannelBindingProvider>()) { + JsChannelService::Create(render_process_host, std::move(r), + base::ThreadTaskRunnerHandle::Get()); diff --git a/devel/electron18/files/patch-chromecast_media_base_default__monotonic__clock.cc b/devel/electron18/files/patch-chromecast_media_base_default__monotonic__clock.cc new file mode 100644 index 000000000000..8fa05ce190c9 --- /dev/null +++ b/devel/electron18/files/patch-chromecast_media_base_default__monotonic__clock.cc @@ -0,0 +1,20 @@ +--- chromecast/media/base/default_monotonic_clock.cc.orig 2022-05-19 03:45:22 UTC ++++ chromecast/media/base/default_monotonic_clock.cc +@@ -11,7 +11,7 @@ + #include "base/time/time.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chromecast/media/base/buildflags.h" + #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) +@@ -28,7 +28,7 @@ std::unique_ptr<MonotonicClock> MonotonicClock::Create + return std::make_unique<DefaultMonotonicClock>(); + } + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + int64_t MonotonicClockNow() { + timespec now = {0, 0}; + #if BUILDFLAG(MEDIA_CLOCK_MONOTONIC_RAW) diff --git a/devel/electron18/files/patch-chromecast_renderer_cast__content__renderer__client.cc b/devel/electron18/files/patch-chromecast_renderer_cast__content__renderer__client.cc new file mode 100644 index 000000000000..c203533122ca --- /dev/null +++ b/devel/electron18/files/patch-chromecast_renderer_cast__content__renderer__client.cc @@ -0,0 +1,11 @@ +--- chromecast/renderer/cast_content_renderer_client.cc.orig 2022-05-19 05:17:39 UTC ++++ chromecast/renderer/cast_content_renderer_client.cc +@@ -194,7 +194,7 @@ void CastContentRendererClient::RenderFrameCreated( + dispatcher->OnRenderFrameCreated(render_frame); + #endif + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_OZONE) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(USE_OZONE) + // JsChannelBindings destroys itself when the RenderFrame is destroyed. + JsChannelBindings::Create(render_frame); + #endif diff --git a/devel/electron18/files/patch-components_autofill__payments__strings.grdp b/devel/electron18/files/patch-components_autofill__payments__strings.grdp new file mode 100644 index 000000000000..bf34e47d255b --- /dev/null +++ b/devel/electron18/files/patch-components_autofill__payments__strings.grdp @@ -0,0 +1,11 @@ +--- components/autofill_payments_strings.grdp.orig 2022-05-19 05:17:40 UTC ++++ components/autofill_payments_strings.grdp +@@ -118,7 +118,7 @@ + <message name="IDS_AUTOFILL_FIX_FLOW_PROMPT_SAVE_CARD_LABEL" desc="Text to show on the button to save the card to Google when the fix flow dialog is shown after the Autofill save card prompt." formatter_data="android_java"> + Save card + </message> +- <if expr="is_linux and not chromeos"> ++ <if expr="is_posix and not chromeos"> + <then> + <message name="IDS_AUTOFILL_SAVE_CARD_PROMPT_TITLE_TO_CLOUD" desc="Title text for the Autofill save card prompt when the card is to be saved by uploading it to Google Payments and also saved locally. The prompt can be either a bubble or an infobar."> + Do you want to save this card to your Google Account? diff --git a/devel/electron18/files/patch-components_autofill_core_browser_autofill__external__delegate.cc b/devel/electron18/files/patch-components_autofill_core_browser_autofill__external__delegate.cc new file mode 100644 index 000000000000..6579f62113de --- /dev/null +++ b/devel/electron18/files/patch-components_autofill_core_browser_autofill__external__delegate.cc @@ -0,0 +1,11 @@ +--- components/autofill/core/browser/autofill_external_delegate.cc.orig 2022-05-19 05:17:39 UTC ++++ components/autofill/core/browser/autofill_external_delegate.cc +@@ -130,7 +130,7 @@ void AutofillExternalDelegate::OnSuggestionsReturned( + // Append the "Hide Suggestions" menu item for only Autofill Address and + // Autocomplete popups. + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled( + features::kAutofillEnableHideSuggestionsUI)) { + // If the user has selected a suggestion, it indicates the suggestions are diff --git a/devel/electron18/files/patch-components_autofill_core_browser_personal__data__manager.cc b/devel/electron18/files/patch-components_autofill_core_browser_personal__data__manager.cc new file mode 100644 index 000000000000..4f93fdd18c4e --- /dev/null +++ b/devel/electron18/files/patch-components_autofill_core_browser_personal__data__manager.cc @@ -0,0 +1,12 @@ +--- components/autofill/core/browser/personal_data_manager.cc.orig 2022-05-19 05:17:40 UTC ++++ components/autofill/core/browser/personal_data_manager.cc +@@ -1986,7 +1986,8 @@ bool PersonalDataManager::ShouldShowCardsFromAccountOp + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \ +- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA) || \ ++ BUILDFLAG(IS_BSD) + // This option should only be shown for users that have not enabled the Sync + // Feature and that have server credit cards available. + if (!sync_service_ || sync_service_->IsSyncFeatureEnabled() || diff --git a/devel/electron18/files/patch-components_autofill_core_common_autofill__payments__features.cc b/devel/electron18/files/patch-components_autofill_core_common_autofill__payments__features.cc new file mode 100644 index 000000000000..94d3c2b4612b --- /dev/null +++ b/devel/electron18/files/patch-components_autofill_core_common_autofill__payments__features.cc @@ -0,0 +1,11 @@ +--- components/autofill/core/common/autofill_payments_features.cc.orig 2022-05-19 05:17:40 UTC ++++ components/autofill/core/common/autofill_payments_features.cc +@@ -192,7 +192,7 @@ const base::Feature kAutofillUpstreamAllowAllEmailDoma + bool ShouldShowImprovedUserConsentForCreditCardSave() { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + // The new user consent UI is fully launched on MacOS, Windows and Linux. + return true; diff --git a/devel/electron18/files/patch-components_autofill_core_common_autofill__util.cc b/devel/electron18/files/patch-components_autofill_core_common_autofill__util.cc new file mode 100644 index 000000000000..97b9d4c6ebce --- /dev/null +++ b/devel/electron18/files/patch-components_autofill_core_common_autofill__util.cc @@ -0,0 +1,11 @@ +--- components/autofill/core/common/autofill_util.cc.orig 2022-05-19 03:45:23 UTC ++++ components/autofill/core/common/autofill_util.cc +@@ -154,7 +154,7 @@ bool SanitizedFieldIsEmpty(const std::u16string& value + + bool ShouldAutoselectFirstSuggestionOnArrowDown() { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return true; + #else + return false; diff --git a/devel/electron18/files/patch-components_cast__channel_cast__message__util.cc b/devel/electron18/files/patch-components_cast__channel_cast__message__util.cc new file mode 100644 index 000000000000..6b51b05f6034 --- /dev/null +++ b/devel/electron18/files/patch-components_cast__channel_cast__message__util.cc @@ -0,0 +1,11 @@ +--- components/cast_channel/cast_message_util.cc.orig 2022-05-19 03:45:23 UTC ++++ components/cast_channel/cast_message_util.cc +@@ -168,7 +168,7 @@ int GetVirtualConnectPlatformValue() { + return 4; + #elif BUILDFLAG(IS_CHROMEOS_ASH) + return 5; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + return 6; + #else + return 0; diff --git a/devel/electron18/files/patch-components_content__settings_core_browser_website__settings__registry.cc b/devel/electron18/files/patch-components_content__settings_core_browser_website__settings__registry.cc new file mode 100644 index 000000000000..02bc63d490dd --- /dev/null +++ b/devel/electron18/files/patch-components_content__settings_core_browser_website__settings__registry.cc @@ -0,0 +1,11 @@ +--- components/content_settings/core/browser/website_settings_registry.cc.orig 2022-05-19 05:17:40 UTC ++++ components/content_settings/core/browser/website_settings_registry.cc +@@ -66,7 +66,7 @@ const WebsiteSettingsInfo* WebsiteSettingsRegistry::Re + #if BUILDFLAG(IS_WIN) + if (!(platform & PLATFORM_WINDOWS)) + return nullptr; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!(platform & PLATFORM_LINUX)) + return nullptr; + #elif BUILDFLAG(IS_MAC) diff --git a/devel/electron18/files/patch-components_cookie__config_cookie__store__util.cc b/devel/electron18/files/patch-components_cookie__config_cookie__store__util.cc new file mode 100644 index 000000000000..23ce2b2725b6 --- /dev/null +++ b/devel/electron18/files/patch-components_cookie__config_cookie__store__util.cc @@ -0,0 +1,11 @@ +--- components/cookie_config/cookie_store_util.cc.orig 2022-05-19 03:45:23 UTC ++++ components/cookie_config/cookie_store_util.cc +@@ -12,7 +12,7 @@ + namespace cookie_config { + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + namespace { + + // Use the operating system's mechanisms to encrypt cookies before writing diff --git a/devel/electron18/files/patch-components_crash_content_browser_BUILD.gn b/devel/electron18/files/patch-components_crash_content_browser_BUILD.gn new file mode 100644 index 000000000000..48c7d29ad45e --- /dev/null +++ b/devel/electron18/files/patch-components_crash_content_browser_BUILD.gn @@ -0,0 +1,29 @@ +--- components/crash/content/browser/BUILD.gn.orig 2022-05-11 07:00:33 UTC ++++ components/crash/content/browser/BUILD.gn +@@ -21,7 +21,7 @@ source_set("browser") { + "//content/public/common", + ] + +- if (is_linux || is_chromeos || is_android) { ++ if ((is_linux && !is_bsd) || is_chromeos || is_android) { + # Want this file on both Linux and Android. + sources += [ + "crash_handler_host_linux.cc", +@@ -37,7 +37,7 @@ source_set("browser") { + + # This is not in the GYP build but this target includes breakpad client + # headers, so add the dependency here. +- if ((is_posix && !is_ios) || is_fuchsia) { ++ if ((is_posix && !is_ios && !is_bsd) || is_fuchsia) { + configs += [ "//third_party/breakpad:client_config" ] + public_configs = [ "//third_party/breakpad:client_config" ] + } +@@ -59,7 +59,7 @@ source_set("browser") { + "//components/crash/android:jni_headers", + "//mojo/public/cpp/bindings", + ] +- } else { ++ } else if (!is_bsd) { + deps += [ "//third_party/breakpad:client" ] + } + } diff --git a/devel/electron18/files/patch-components_crash_core_app_BUILD.gn b/devel/electron18/files/patch-components_crash_core_app_BUILD.gn new file mode 100644 index 000000000000..ee8e75b8d2f9 --- /dev/null +++ b/devel/electron18/files/patch-components_crash_core_app_BUILD.gn @@ -0,0 +1,52 @@ +--- components/crash/core/app/BUILD.gn.orig 2022-05-19 03:45:23 UTC ++++ components/crash/core/app/BUILD.gn +@@ -52,7 +52,7 @@ static_library("app") { + "crashpad.h", + ] + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "breakpad_linux.cc", + "breakpad_linux.h", +@@ -61,6 +61,10 @@ static_library("app") { + ] + } + ++ if (is_bsd) { ++ sources -= [ "crashpad.cc" ] ++ } ++ + defines = [ "CRASH_IMPLEMENTATION" ] + + public_deps = [ ":lib" ] +@@ -88,7 +92,7 @@ static_library("app") { + libs = [ "log" ] + } + +- if (is_android || is_linux || is_chromeos) { ++ if ((is_android || is_linux || is_chromeos) && !is_bsd) { + deps += [ + "//base:base_static", + "//components/crash/core/common", +@@ -96,7 +100,7 @@ static_library("app") { + ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + deps += [ "//third_party/breakpad:client" ] + } + +@@ -216,11 +220,6 @@ if (is_mac || is_android || is_linux || is_chromeos) { + # define custom UserStreamDataSources. + executable("chrome_crashpad_handler") { + sources = [ "chrome_crashpad_handler.cc" ] +- +- deps = [ +- ":crashpad_handler_main", +- "//third_party/crashpad/crashpad/handler", +- ] + + if (is_mac && (is_component_build || is_asan)) { + ldflags = [ diff --git a/devel/electron18/files/patch-components_crash_core_app_chrome__crashpad__handler.cc b/devel/electron18/files/patch-components_crash_core_app_chrome__crashpad__handler.cc new file mode 100644 index 000000000000..e0d7358c1839 --- /dev/null +++ b/devel/electron18/files/patch-components_crash_core_app_chrome__crashpad__handler.cc @@ -0,0 +1,12 @@ +--- components/crash/core/app/chrome_crashpad_handler.cc.orig 2022-05-11 07:00:33 UTC ++++ components/crash/core/app/chrome_crashpad_handler.cc +@@ -6,5 +6,9 @@ + extern "C" int CrashpadHandlerMain(int argc, char* argv[]); + + int main(int argc, char* argv[]) { ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++ return -1; ++#else + return CrashpadHandlerMain(argc, argv); ++#endif + } diff --git a/devel/electron18/files/patch-components_crash_core_browser_crash__upload__list__crashpad.cc b/devel/electron18/files/patch-components_crash_core_browser_crash__upload__list__crashpad.cc new file mode 100644 index 000000000000..a80b332624c6 --- /dev/null +++ b/devel/electron18/files/patch-components_crash_core_browser_crash__upload__list__crashpad.cc @@ -0,0 +1,16 @@ +--- components/crash/core/browser/crash_upload_list_crashpad.cc.orig 2022-05-11 07:00:33 UTC ++++ components/crash/core/browser/crash_upload_list_crashpad.cc +@@ -51,9 +51,13 @@ std::vector<UploadList::UploadInfo> CrashUploadListCra + + void CrashUploadListCrashpad::ClearUploadList(const base::Time& begin, + const base::Time& end) { ++#if !defined(OS_BSD) + crash_reporter::ClearReportsBetween(begin, end); ++#endif + } + + void CrashUploadListCrashpad::RequestSingleUpload(const std::string& local_id) { ++#if !defined(OS_BSD) + crash_reporter::RequestSingleCrashUpload(local_id); ++#endif + } diff --git a/devel/electron18/files/patch-components_crash_core_common_BUILD.gn b/devel/electron18/files/patch-components_crash_core_common_BUILD.gn new file mode 100644 index 000000000000..ca8b837b1af3 --- /dev/null +++ b/devel/electron18/files/patch-components_crash_core_common_BUILD.gn @@ -0,0 +1,20 @@ +--- components/crash/core/common/BUILD.gn.orig 2022-05-11 07:16:50 UTC ++++ components/crash/core/common/BUILD.gn +@@ -8,7 +8,7 @@ import("//components/gwp_asan/buildflags/buildflags.gn + + declare_args() { + # If set to true, this will stub out and disable the entire crash key system. +- use_crash_key_stubs = is_fuchsia ++ use_crash_key_stubs = is_fuchsia || is_bsd + } + + group("common") { +@@ -190,7 +190,7 @@ source_set("unit_tests") { + sources += [ "crash_key_breakpad_ios_unittest.cc" ] + deps += [ "//third_party/breakpad:client" ] + include_dirs = [ "//third_party/breakpad/breakpad/src/" ] +- } else if (!is_mac && !is_win && !is_fuchsia && !is_android) { ++ } else if (!is_mac && !is_win && !is_fuchsia && !is_android && !is_bsd) { + include_dirs = [ "//third_party/breakpad/breakpad/src/" ] + sources += [ "crash_key_breakpad_unittest.cc" ] + } diff --git a/devel/electron18/files/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc b/devel/electron18/files/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc new file mode 100644 index 000000000000..a1d140c6545e --- /dev/null +++ b/devel/electron18/files/patch-components_discardable__memory_service_discardable__shared__memory__manager.cc @@ -0,0 +1,11 @@ +--- components/discardable_memory/service/discardable_shared_memory_manager.cc.orig 2022-05-11 07:16:50 UTC ++++ components/discardable_memory/service/discardable_shared_memory_manager.cc +@@ -171,7 +171,7 @@ int64_t GetDefaultMemoryLimit() { + // Limits the number of FDs used to 32, assuming a 4MB allocation size. + int64_t max_default_memory_limit = 128 * kMegabyte; + #else +- int64_t max_default_memory_limit = 512 * kMegabyte; ++ int64_t max_default_memory_limit = 128 * kMegabyte; + #endif + + // Use 1/8th of discardable memory on low-end devices. diff --git a/devel/electron18/files/patch-components_embedder__support_user__agent__utils__unittest.cc b/devel/electron18/files/patch-components_embedder__support_user__agent__utils__unittest.cc new file mode 100644 index 000000000000..f75c5c3181f8 --- /dev/null +++ b/devel/electron18/files/patch-components_embedder__support_user__agent__utils__unittest.cc @@ -0,0 +1,20 @@ +--- components/embedder_support/user_agent_utils_unittest.cc.orig 2022-05-19 05:17:40 UTC ++++ components/embedder_support/user_agent_utils_unittest.cc +@@ -54,7 +54,7 @@ namespace { + static constexpr char kChromeProductVersionRegex[] = + "Chrome/([0-9]+).([0-9]+).([0-9]+).([0-9]+)"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::string GetMachine() { + struct utsname unixinfo; + uname(&unixinfo); +@@ -162,7 +162,7 @@ void CheckUserAgentStringOrdering(bool mobile_device) + int value; + ASSERT_TRUE(base::StringToInt(pieces[i], &value)); + } +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // X11; Linux x86_64 + ASSERT_EQ(2u, pieces.size()); + ASSERT_EQ("X11", pieces[0]); diff --git a/devel/electron18/files/patch-components_feature__engagement_public_event__constants.cc b/devel/electron18/files/patch-components_feature__engagement_public_event__constants.cc new file mode 100644 index 000000000000..68d9ef6758c8 --- /dev/null +++ b/devel/electron18/files/patch-components_feature__engagement_public_event__constants.cc @@ -0,0 +1,11 @@ +--- components/feature_engagement/public/event_constants.cc.orig 2022-05-19 05:17:40 UTC ++++ components/feature_engagement/public/event_constants.cc +@@ -11,7 +11,7 @@ namespace feature_engagement { + namespace events { + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + const char kNewTabOpened[] = "new_tab_opened"; + const char kSixthTabOpened[] = "sixth_tab_opened"; + const char kTabGroupCreated[] = "tab_group_created"; diff --git a/devel/electron18/files/patch-components_feature__engagement_public_event__constants.h b/devel/electron18/files/patch-components_feature__engagement_public_event__constants.h new file mode 100644 index 000000000000..33034ed76fac --- /dev/null +++ b/devel/electron18/files/patch-components_feature__engagement_public_event__constants.h @@ -0,0 +1,11 @@ +--- components/feature_engagement/public/event_constants.h.orig 2022-05-19 05:17:40 UTC ++++ components/feature_engagement/public/event_constants.h +@@ -13,7 +13,7 @@ namespace events { + + // Desktop + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // The user has explicitly opened a new tab via an entry point from inside of + // Chrome. + extern const char kNewTabOpened[]; diff --git a/devel/electron18/files/patch-components_feature__engagement_public_feature__configurations.cc b/devel/electron18/files/patch-components_feature__engagement_public_feature__configurations.cc new file mode 100644 index 000000000000..6458c1ff9646 --- /dev/null +++ b/devel/electron18/files/patch-components_feature__engagement_public_feature__configurations.cc @@ -0,0 +1,21 @@ +--- components/feature_engagement/public/feature_configurations.cc.orig 2022-05-19 05:17:40 UTC ++++ components/feature_engagement/public/feature_configurations.cc +@@ -35,7 +35,7 @@ FeatureConfig CreateAlwaysTriggerConfig(const base::Fe + absl::optional<FeatureConfig> GetClientSideFeatureConfig( + const base::Feature* feature) { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (kIPHPasswordsAccountStorageFeature.name == feature->name) { + absl::optional<FeatureConfig> config = FeatureConfig(); + config->valid = true; +@@ -834,7 +834,8 @@ absl::optional<FeatureConfig> GetClientSideFeatureConf + #endif // BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \ ++ BUILDFLAG(IS_BSD) + if (kIPHAutofillVirtualCardSuggestionFeature.name == feature->name) { + // A config that allows the virtual card credit card suggestion IPH to be + // shown when: diff --git a/devel/electron18/files/patch-components_feature__engagement_public_feature__constants.cc b/devel/electron18/files/patch-components_feature__engagement_public_feature__constants.cc new file mode 100644 index 000000000000..fa276cd8f83c --- /dev/null +++ b/devel/electron18/files/patch-components_feature__engagement_public_feature__constants.cc @@ -0,0 +1,20 @@ +--- components/feature_engagement/public/feature_constants.cc.orig 2022-05-19 05:17:40 UTC ++++ components/feature_engagement/public/feature_constants.cc +@@ -22,7 +22,7 @@ const base::Feature kIPHDummyFeature{"IPH_Dummy", + base::FEATURE_DISABLED_BY_DEFAULT}; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + const base::Feature kIPHDesktopSharedHighlightingFeature{ + "IPH_DesktopSharedHighlighting", base::FEATURE_DISABLED_BY_DEFAULT}; + const base::Feature kIPHDesktopTabGroupsNewGroupFeature{ +@@ -286,7 +286,7 @@ const base::Feature kIPHDefaultSiteViewFeature{ + "IPH_DefaultSiteView", base::FEATURE_DISABLED_BY_DEFAULT}; + #endif // BUILDFLAG(IS_IOS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \ + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) + const base::Feature kIPHAutofillVirtualCardSuggestionFeature{ + "IPH_AutofillVirtualCardSuggestion", base::FEATURE_ENABLED_BY_DEFAULT}; diff --git a/devel/electron18/files/patch-components_feature__engagement_public_feature__constants.h b/devel/electron18/files/patch-components_feature__engagement_public_feature__constants.h new file mode 100644 index 000000000000..c5fe5c2d6939 --- /dev/null +++ b/devel/electron18/files/patch-components_feature__engagement_public_feature__constants.h @@ -0,0 +1,20 @@ +--- components/feature_engagement/public/feature_constants.h.orig 2022-05-19 05:17:40 UTC ++++ components/feature_engagement/public/feature_constants.h +@@ -30,7 +30,7 @@ extern const base::Feature kUseClientConfigIPH; + extern const base::Feature kIPHDummyFeature; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + extern const base::Feature kIPHDesktopSharedHighlightingFeature; + extern const base::Feature kIPHDesktopTabGroupsNewGroupFeature; + extern const base::Feature kIPHFocusHelpBubbleScreenReaderPromoFeature; +@@ -174,7 +174,7 @@ extern const base::Feature kIPHDiscoverFeedHeaderFeatu + extern const base::Feature kIPHDefaultSiteViewFeature; + #endif // BUILDFLAG(IS_IOS) + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \ + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) + extern const base::Feature kIPHAutofillVirtualCardSuggestionFeature; + extern const base::Feature kIPHUpdatedConnectionSecurityIndicatorsFeature; diff --git a/devel/electron18/files/patch-components_feature__engagement_public_feature__list.cc b/devel/electron18/files/patch-components_feature__engagement_public_feature__list.cc new file mode 100644 index 000000000000..104eefa0302f --- /dev/null +++ b/devel/electron18/files/patch-components_feature__engagement_public_feature__list.cc @@ -0,0 +1,21 @@ +--- components/feature_engagement/public/feature_list.cc.orig 2022-05-19 05:17:40 UTC ++++ components/feature_engagement/public/feature_list.cc +@@ -121,7 +121,7 @@ const base::Feature* const kAllFeatures[] = { + &kIPHDefaultSiteViewFeature, + #endif // BUILDFLAG(IS_IOS) + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + &kIPHDesktopTabGroupsNewGroupFeature, + &kIPHFocusHelpBubbleScreenReaderPromoFeature, + &kIPHGMCCastStartStopFeature, +@@ -143,7 +143,8 @@ const base::Feature* const kAllFeatures[] = { + // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \ ++ BUILDFLAG(IS_BSD) + &kIPHAutofillVirtualCardSuggestionFeature, + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || diff --git a/devel/electron18/files/patch-components_feature__engagement_public_feature__list.h b/devel/electron18/files/patch-components_feature__engagement_public_feature__list.h new file mode 100644 index 000000000000..1b28549c42af --- /dev/null +++ b/devel/electron18/files/patch-components_feature__engagement_public_feature__list.h @@ -0,0 +1,40 @@ +--- components/feature_engagement/public/feature_list.h.orig 2022-05-19 05:17:40 UTC ++++ components/feature_engagement/public/feature_list.h +@@ -224,7 +224,7 @@ DEFINE_VARIATION_PARAM(kIPHDefaultSiteViewFeature, "IP + #endif // BUILDFLAG(IS_IOS) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + DEFINE_VARIATION_PARAM(kIPHDesktopTabGroupsNewGroupFeature, + "IPH_DesktopTabGroupsNewGroup"); + DEFINE_VARIATION_PARAM(kIPHFocusModeFeature, "IPH_FocusMode"); +@@ -254,7 +254,8 @@ DEFINE_VARIATION_PARAM(kIPHDesktopSharedHighlightingFe + // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \ ++ BUILDFLAG(IS_BSD) + DEFINE_VARIATION_PARAM(kIPHAutofillVirtualCardSuggestionFeature, + "IPH_AutofillVirtualCardSuggestion"); + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || +@@ -359,7 +360,7 @@ constexpr flags_ui::FeatureEntry::FeatureVariation + VARIATION_ENTRY(kIPHDiscoverFeedHeaderFeature), + VARIATION_ENTRY(kIPHDefaultSiteViewFeature), + #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + VARIATION_ENTRY(kIPHDesktopTabGroupsNewGroupFeature), + VARIATION_ENTRY(kIPHFocusModeFeature), + VARIATION_ENTRY(kIPHGlobalMediaControls), +@@ -382,7 +383,8 @@ constexpr flags_ui::FeatureEntry::FeatureVariation + // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \ ++ BUILDFLAG(IS_BSD) + VARIATION_ENTRY(kIPHAutofillVirtualCardSuggestionFeature), + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || + // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || diff --git a/devel/electron18/files/patch-components_feed_core_proto_v2_wire_version.proto b/devel/electron18/files/patch-components_feed_core_proto_v2_wire_version.proto new file mode 100644 index 000000000000..de47d3b2fa90 --- /dev/null +++ b/devel/electron18/files/patch-components_feed_core_proto_v2_wire_version.proto @@ -0,0 +1,13 @@ +--- components/feed/core/proto/v2/wire/version.proto.orig 2021-07-15 19:13:37 UTC ++++ components/feed/core/proto/v2/wire/version.proto +@@ -25,8 +25,8 @@ message Version { + BETA = 3; + RELEASE = 4; + } +- optional int32 major = 1; +- optional int32 minor = 2; ++ optional int32 gmajor = 1; ++ optional int32 gminor = 2; + optional int32 build = 3; + optional int32 revision = 4; + optional Architecture architecture = 5; diff --git a/devel/electron18/files/patch-components_feed_core_v2_feed__network__impl__unittest.cc b/devel/electron18/files/patch-components_feed_core_v2_feed__network__impl__unittest.cc new file mode 100644 index 000000000000..5a48da3bfba0 --- /dev/null +++ b/devel/electron18/files/patch-components_feed_core_v2_feed__network__impl__unittest.cc @@ -0,0 +1,13 @@ +--- components/feed/core/v2/feed_network_impl_unittest.cc.orig 2022-05-19 03:45:24 UTC ++++ components/feed/core/v2/feed_network_impl_unittest.cc +@@ -678,8 +678,8 @@ TEST_F(FeedNetworkTest, SendApiRequest_DecodesClientIn + + EXPECT_EQ(feedwire::ClientInfo::CHROME_ANDROID, client_info.app_type()); + EXPECT_EQ(feedwire::Version::RELEASE, client_info.app_version().build_type()); +- EXPECT_EQ(1, client_info.app_version().major()); +- EXPECT_EQ(2, client_info.app_version().minor()); ++ EXPECT_EQ(1, client_info.app_version().gmajor()); ++ EXPECT_EQ(2, client_info.app_version().gminor()); + EXPECT_EQ(3, client_info.app_version().build()); + EXPECT_EQ(4, client_info.app_version().revision()); + EXPECT_FALSE(client_info.chrome_client_info().start_surface()); diff --git a/devel/electron18/files/patch-components_feed_core_v2_proto__util.cc b/devel/electron18/files/patch-components_feed_core_v2_proto__util.cc new file mode 100644 index 000000000000..189f6d5f28bc --- /dev/null +++ b/devel/electron18/files/patch-components_feed_core_v2_proto__util.cc @@ -0,0 +1,24 @@ +--- components/feed/core/v2/proto_util.cc.orig 2022-05-19 05:17:40 UTC ++++ components/feed/core/v2/proto_util.cc +@@ -88,8 +88,8 @@ feedwire::Version GetPlatformVersionMessage() { + + int32_t major, minor, revision; + base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &revision); +- result.set_major(major); +- result.set_minor(minor); ++ result.set_gmajor(major); ++ result.set_gminor(minor); + result.set_revision(revision); + #if BUILDFLAG(IS_ANDROID) + result.set_api_version(base::android::BuildInfo::GetInstance()->sdk_int()); +@@ -104,8 +104,8 @@ feedwire::Version GetAppVersionMessage(const ChromeInf + // Chrome's version is in the format: MAJOR,MINOR,BUILD,PATCH. + const std::vector<uint32_t>& numbers = chrome_info.version.components(); + if (numbers.size() > 3) { +- result.set_major(static_cast<int32_t>(numbers[0])); +- result.set_minor(static_cast<int32_t>(numbers[1])); ++ result.set_gmajor(static_cast<int32_t>(numbers[0])); ++ result.set_gminor(static_cast<int32_t>(numbers[1])); + result.set_build(static_cast<int32_t>(numbers[2])); + result.set_revision(static_cast<int32_t>(numbers[3])); + } diff --git a/devel/electron18/files/patch-components_feed_core_v2_proto__util__unittest.cc b/devel/electron18/files/patch-components_feed_core_v2_proto__util__unittest.cc new file mode 100644 index 000000000000..c2c95a0d0575 --- /dev/null +++ b/devel/electron18/files/patch-components_feed_core_v2_proto__util__unittest.cc @@ -0,0 +1,13 @@ +--- components/feed/core/v2/proto_util_unittest.cc.orig 2022-05-19 05:17:40 UTC ++++ components/feed/core/v2/proto_util_unittest.cc +@@ -39,8 +39,8 @@ TEST(ProtoUtilTest, CreateClientInfo) { + feedwire::ClientInfo result = CreateClientInfo(request_metadata); + EXPECT_EQ(feedwire::ClientInfo::CHROME_ANDROID, result.app_type()); + EXPECT_EQ(feedwire::Version::RELEASE, result.app_version().build_type()); +- EXPECT_EQ(1, result.app_version().major()); +- EXPECT_EQ(2, result.app_version().minor()); ++ EXPECT_EQ(1, result.app_version().gmajor()); ++ EXPECT_EQ(2, result.app_version().gminor()); + EXPECT_EQ(3, result.app_version().build()); + EXPECT_EQ(4, result.app_version().revision()); + EXPECT_FALSE(result.chrome_client_info().start_surface()); diff --git a/devel/electron18/files/patch-components_feed_core_v2_test_proto__printer.cc b/devel/electron18/files/patch-components_feed_core_v2_test_proto__printer.cc new file mode 100644 index 000000000000..8f72130e7eb2 --- /dev/null +++ b/devel/electron18/files/patch-components_feed_core_v2_test_proto__printer.cc @@ -0,0 +1,13 @@ +--- components/feed/core/v2/test/proto_printer.cc.orig 2022-05-19 05:17:40 UTC ++++ components/feed/core/v2/test/proto_printer.cc +@@ -157,8 +157,8 @@ class TextProtoPrinter { + } + TextProtoPrinter& operator<<(const feedwire::Version& v) { + BeginMessage(); +- PRINT_FIELD(major); +- PRINT_FIELD(minor); ++ PRINT_FIELD(gmajor); ++ PRINT_FIELD(gminor); + PRINT_FIELD(build); + PRINT_FIELD(revision); + PRINT_FIELD(architecture); diff --git a/devel/electron18/files/patch-components_flags__ui_flags__state.cc b/devel/electron18/files/patch-components_flags__ui_flags__state.cc new file mode 100644 index 000000000000..65e831778e5c --- /dev/null +++ b/devel/electron18/files/patch-components_flags__ui_flags__state.cc @@ -0,0 +1,11 @@ +--- components/flags_ui/flags_state.cc.orig 2022-05-19 05:17:40 UTC ++++ components/flags_ui/flags_state.cc +@@ -622,7 +622,7 @@ unsigned short FlagsState::GetCurrentPlatform() { + #elif BUILDFLAG(IS_CHROMEOS_ASH) + return kOsCrOS; + #elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ +- BUILDFLAG(IS_OPENBSD) ++ BUILDFLAG(IS_BSD) + return kOsLinux; + #elif BUILDFLAG(IS_ANDROID) + return kOsAndroid; diff --git a/devel/electron18/files/patch-components_gwp__asan_BUILD.gn b/devel/electron18/files/patch-components_gwp__asan_BUILD.gn new file mode 100644 index 000000000000..55bb57dce9cd --- /dev/null +++ b/devel/electron18/files/patch-components_gwp__asan_BUILD.gn @@ -0,0 +1,11 @@ +--- components/gwp_asan/BUILD.gn.orig 2022-05-11 07:00:33 UTC ++++ components/gwp_asan/BUILD.gn +@@ -14,7 +14,7 @@ test("gwp_asan_unittests") { + "//components/gwp_asan/common:unit_tests", + "//testing/gtest", + ] +- if (is_win || is_mac || is_linux || is_chromeos || is_android) { ++ if ((is_win || is_mac || is_linux || is_chromeos || is_android) && !is_bsd) { + deps += [ + "//components/gwp_asan/client:unit_tests", + "//components/gwp_asan/crash_handler:unit_tests", diff --git a/devel/electron18/files/patch-components_gwp__asan_crash__handler_crash__analyzer.cc b/devel/electron18/files/patch-components_gwp__asan_crash__handler_crash__analyzer.cc new file mode 100644 index 000000000000..867972859be5 --- /dev/null +++ b/devel/electron18/files/patch-components_gwp__asan_crash__handler_crash__analyzer.cc @@ -0,0 +1,20 @@ +--- components/gwp_asan/crash_handler/crash_analyzer.cc.orig 2022-05-19 03:45:24 UTC ++++ components/gwp_asan/crash_handler/crash_analyzer.cc +@@ -26,7 +26,7 @@ + #include "third_party/crashpad/crashpad/snapshot/process_snapshot.h" + #include "third_party/crashpad/crashpad/util/process/process_memory.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #include <signal.h> + #elif BUILDFLAG(IS_APPLE) + #include <mach/exception_types.h> +@@ -81,7 +81,7 @@ bool CrashAnalyzer::GetExceptionInfo( + + crashpad::VMAddress CrashAnalyzer::GetAccessAddress( + const crashpad::ExceptionSnapshot& exception) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + if (exception.Exception() == SIGSEGV || exception.Exception() == SIGBUS) + return exception.ExceptionAddress(); + #elif BUILDFLAG(IS_APPLE) diff --git a/devel/electron18/files/patch-components_invalidation_impl_invalidation__switches.cc b/devel/electron18/files/patch-components_invalidation_impl_invalidation__switches.cc new file mode 100644 index 000000000000..30be52a8b3ac --- /dev/null +++ b/devel/electron18/files/patch-components_invalidation_impl_invalidation__switches.cc @@ -0,0 +1,11 @@ +--- components/invalidation/impl/invalidation_switches.cc.orig 2022-05-19 03:45:24 UTC ++++ components/invalidation/impl/invalidation_switches.cc +@@ -21,7 +21,7 @@ const int kDefaultInstanceIDTokenTTLSeconds = 14 * 24 + const base::Feature kSyncInstanceIDTokenTTL { + "SyncInstanceIDTokenTTL", + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_IOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT diff --git a/devel/electron18/files/patch-components_metrics_drive__metrics__provider__linux.cc b/devel/electron18/files/patch-components_metrics_drive__metrics__provider__linux.cc new file mode 100644 index 000000000000..eee3b3e7d5db --- /dev/null +++ b/devel/electron18/files/patch-components_metrics_drive__metrics__provider__linux.cc @@ -0,0 +1,16 @@ +--- components/metrics/drive_metrics_provider_linux.cc.orig 2021-01-07 00:36:30 UTC ++++ components/metrics/drive_metrics_provider_linux.cc +@@ -4,7 +4,13 @@ + + #include "components/metrics/drive_metrics_provider.h" + ++#if defined(OS_BSD) ++#include <sys/types.h> ++#define MAJOR(dev) major(dev) ++#define MINOR(dev) minor(dev) ++#else + #include <linux/kdev_t.h> // For MAJOR()/MINOR(). ++#endif + #include <sys/stat.h> + #include <string> + diff --git a/devel/electron18/files/patch-components_neterror_resources_neterror.js b/devel/electron18/files/patch-components_neterror_resources_neterror.js new file mode 100644 index 000000000000..02d19b4be4c5 --- /dev/null +++ b/devel/electron18/files/patch-components_neterror_resources_neterror.js @@ -0,0 +1,11 @@ +--- components/neterror/resources/neterror.js.orig 2021-11-19 04:25:13 UTC ++++ components/neterror/resources/neterror.js +@@ -129,7 +129,7 @@ function detailsButtonClick() { + } + + let primaryControlOnLeft = true; +-// <if expr="is_macosx or is_ios or is_linux or is_android"> ++// <if expr="is_macosx or is_ios or is_linux or is_android or is_bsd"> + primaryControlOnLeft = false; + // </if> + diff --git a/devel/electron18/files/patch-components_network__session__configurator_browser_network__session__configurator.cc b/devel/electron18/files/patch-components_network__session__configurator_browser_network__session__configurator.cc new file mode 100644 index 000000000000..e080bbbca338 --- /dev/null +++ b/devel/electron18/files/patch-components_network__session__configurator_browser_network__session__configurator.cc @@ -0,0 +1,11 @@ +--- components/network_session_configurator/browser/network_session_configurator.cc.orig 2022-05-19 05:17:40 UTC ++++ components/network_session_configurator/browser/network_session_configurator.cc +@@ -784,7 +784,7 @@ net::URLRequestContextBuilder::HttpCacheParams::Type C + } + #endif // #if !BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return net::URLRequestContextBuilder::HttpCacheParams::DISK_SIMPLE; + #else + return net::URLRequestContextBuilder::HttpCacheParams::DISK_BLOCKFILE; diff --git a/devel/electron18/files/patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc b/devel/electron18/files/patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc new file mode 100644 index 000000000000..0b81ff350475 --- /dev/null +++ b/devel/electron18/files/patch-components_network__session__configurator_browser_network__session__configurator__unittest.cc @@ -0,0 +1,11 @@ +--- components/network_session_configurator/browser/network_session_configurator_unittest.cc.orig 2022-05-19 05:17:40 UTC ++++ components/network_session_configurator/browser/network_session_configurator_unittest.cc +@@ -776,7 +776,7 @@ TEST_F(NetworkSessionConfiguratorTest, HostRules) { + } + + TEST_F(NetworkSessionConfiguratorTest, DefaultCacheBackend) { +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + EXPECT_EQ(net::URLRequestContextBuilder::HttpCacheParams::DISK_SIMPLE, + ChooseCacheType()); + #elif BUILDFLAG(IS_MAC) diff --git a/devel/electron18/files/patch-components_new__or__sad__tab__strings.grdp b/devel/electron18/files/patch-components_new__or__sad__tab__strings.grdp new file mode 100644 index 000000000000..7cce3363bc5f --- /dev/null +++ b/devel/electron18/files/patch-components_new__or__sad__tab__strings.grdp @@ -0,0 +1,47 @@ +--- components/new_or_sad_tab_strings.grdp.orig 2022-05-11 07:16:50 UTC ++++ components/new_or_sad_tab_strings.grdp +@@ -51,7 +51,7 @@ + Open page in a new Incognito window (⇧⌘N) + </message> + </if> +- <if expr="is_win or is_linux or is_fuchsia or chromeos"> ++ <if expr="is_win or is_posix or is_fuchsia or chromeos"> + <message name="IDS_SAD_TAB_RELOAD_INCOGNITO" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to open the web page in Chrome's Incognito mode."> + Open page in a new Incognito window (Ctrl-Shift-N) + </message> +@@ -66,7 +66,7 @@ + Close other tabs or apps + </message> + </if> +- <if expr="is_linux and not chromeos"> ++ <if expr="is_posix and not chromeos"> + <message name="IDS_SAD_TAB_RELOAD_CLOSE_TABS" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to close other Chrome tabs or programs running on their computer."> + Close other tabs or programs + </message> +@@ -76,7 +76,7 @@ + Close other apps + </message> + </if> +- <if expr="is_linux and not chromeos"> ++ <if expr="is_posix and not chromeos"> + <message name="IDS_SAD_TAB_RELOAD_CLOSE_NOTABS" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to close other programs running on their computer (Linux)."> + Close other programs + </message> +@@ -91,7 +91,7 @@ + Restart Chromium + </message> + </if> +- <if expr="is_win or is_linux or is_macosx or is_fuchsia or chromeos"> ++ <if expr="is_win or is_posix or is_macosx or is_fuchsia or chromeos"> + <message name="IDS_SAD_TAB_RELOAD_RESTART_DEVICE" desc="One of the bullet points displayed on the web page if a reload failed to fix the issue, advising the user to restart their computer."> + Restart your computer + </message> +@@ -106,7 +106,7 @@ + Learn more + </message> + </if> +- <if expr="is_win or is_linux or is_macosx or is_fuchsia or chromeos"> ++ <if expr="is_win or is_posix or is_macosx or is_fuchsia or chromeos"> + <message name="IDS_SAD_TAB_ERROR_CODE" desc="The message displayed on the crashed web page indicating the type of the crash."> + Error code: <ph name="ERROR_CODE">$1<ex>STATUS_ACCESS_VIOLATION</ex></ph> + </message> diff --git a/devel/electron18/files/patch-components_os__crypt_keyring__util__linux.cc b/devel/electron18/files/patch-components_os__crypt_keyring__util__linux.cc new file mode 100644 index 000000000000..2ce91a18b6dc --- /dev/null +++ b/devel/electron18/files/patch-components_os__crypt_keyring__util__linux.cc @@ -0,0 +1,17 @@ +--- components/os_crypt/keyring_util_linux.cc.orig 2022-05-11 07:16:50 UTC ++++ components/os_crypt/keyring_util_linux.cc +@@ -69,12 +69,12 @@ bool GnomeKeyringLoader::LoadGnomeKeyring() { + if (keyring_loaded) + return true; + +- void* handle = dlopen("libgnome-keyring.so.0", RTLD_NOW | RTLD_GLOBAL); ++ void* handle = dlopen("libgnome-keyring.so", RTLD_NOW | RTLD_GLOBAL); + if (!handle) { + // We wanted to use GNOME Keyring, but we couldn't load it. Warn, because + // either the user asked for this, or we autodetected it incorrectly. (Or + // the system has broken libraries, which is also good to warn about.) +- LOG(WARNING) << "Could not load libgnome-keyring.so.0: " << dlerror(); ++ LOG(WARNING) << "Could not load libgnome-keyring.so: " << dlerror(); + return false; + } + diff --git a/devel/electron18/files/patch-components_os__crypt_libsecret__util__linux.cc b/devel/electron18/files/patch-components_os__crypt_libsecret__util__linux.cc new file mode 100644 index 000000000000..fb6a3788b0b8 --- /dev/null +++ b/devel/electron18/files/patch-components_os__crypt_libsecret__util__linux.cc @@ -0,0 +1,18 @@ +--- components/os_crypt/libsecret_util_linux.cc.orig 2022-05-11 07:16:50 UTC ++++ components/os_crypt/libsecret_util_linux.cc +@@ -101,13 +101,13 @@ bool LibsecretLoader::LoadLibsecret() { + if (libsecret_loaded_) + return true; + +- static void* handle = dlopen("libsecret-1.so.0", RTLD_NOW | RTLD_GLOBAL); ++ static void* handle = dlopen("libsecret-1.so", RTLD_NOW | RTLD_GLOBAL); + if (!handle) { + // We wanted to use libsecret, but we couldn't load it. Warn, because + // either the user asked for this, or we autodetected it incorrectly. (Or + // the system has broken libraries, which is also good to warn about.) + // TODO(crbug.com/607435): Channel this message to the user-facing log +- VLOG(1) << "Could not load libsecret-1.so.0: " << dlerror(); ++ VLOG(1) << "Could not load libsecret-1.so: " << dlerror(); + return false; + } + diff --git a/devel/electron18/files/patch-components_os__crypt_os__crypt.h b/devel/electron18/files/patch-components_os__crypt_os__crypt.h new file mode 100644 index 000000000000..820b548e2633 --- /dev/null +++ b/devel/electron18/files/patch-components_os__crypt_os__crypt.h @@ -0,0 +1,29 @@ +--- components/os_crypt/os_crypt.h.orig 2022-05-19 05:17:40 UTC ++++ components/os_crypt/os_crypt.h +@@ -14,7 +14,7 @@ + #include "build/build_config.h" + #include "build/chromecast_buildflags.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + class KeyStorageLinux; + #endif // BUILDFLAG(IS_LINUX) + +@@ -37,7 +37,7 @@ class OSCrypt { + OSCrypt(const OSCrypt&) = delete; + OSCrypt& operator=(const OSCrypt&) = delete; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set the configuration of OSCrypt. + // This method, or SetRawEncryptionKey(), must be called before using + // EncryptString() and DecryptString(). +@@ -149,7 +149,7 @@ class OSCrypt { + static COMPONENT_EXPORT(OS_CRYPT) void ResetStateForTesting(); + #endif + +-#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMECAST)) ++#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMECAST)) + // For unit testing purposes, inject methods to be used. + // |get_key_storage_mock| provides the desired |KeyStorage| implementation. + // If the provider returns |nullptr|, a hardcoded password will be used. diff --git a/devel/electron18/files/patch-components_paint__preview_browser_paint__preview__client.cc b/devel/electron18/files/patch-components_paint__preview_browser_paint__preview__client.cc new file mode 100644 index 000000000000..0574f56e5815 --- /dev/null +++ b/devel/electron18/files/patch-components_paint__preview_browser_paint__preview__client.cc @@ -0,0 +1,13 @@ +--- components/paint_preview/browser/paint_preview_client.cc.orig 2022-05-11 07:16:50 UTC ++++ components/paint_preview/browser/paint_preview_client.cc +@@ -313,8 +313,8 @@ void PaintPreviewClient::CapturePaintPreview( + metadata->set_url(url.spec()); + metadata->set_version(kPaintPreviewVersion); + auto* chromeVersion = metadata->mutable_chrome_version(); +- chromeVersion->set_major(CHROME_VERSION_MAJOR); +- chromeVersion->set_minor(CHROME_VERSION_MINOR); ++ chromeVersion->set_gmajor(CHROME_VERSION_MAJOR); ++ chromeVersion->set_gminor(CHROME_VERSION_MINOR); + chromeVersion->set_build(CHROME_VERSION_BUILD); + chromeVersion->set_patch(CHROME_VERSION_PATCH); + document_data.callback = std::move(callback); diff --git a/devel/electron18/files/patch-components_paint__preview_browser_paint__preview__client__unittest.cc b/devel/electron18/files/patch-components_paint__preview_browser_paint__preview__client__unittest.cc new file mode 100644 index 000000000000..c936f3b34fb7 --- /dev/null +++ b/devel/electron18/files/patch-components_paint__preview_browser_paint__preview__client__unittest.cc @@ -0,0 +1,13 @@ +--- components/paint_preview/browser/paint_preview_client_unittest.cc.orig 2022-05-19 03:45:24 UTC ++++ components/paint_preview/browser/paint_preview_client_unittest.cc +@@ -171,8 +171,8 @@ TEST_P(PaintPreviewClientRenderViewHostTest, CaptureMa + metadata->set_url(expected_url.spec()); + metadata->set_version(kPaintPreviewVersion); + auto* chromeVersion = metadata->mutable_chrome_version(); +- chromeVersion->set_major(CHROME_VERSION_MAJOR); +- chromeVersion->set_minor(CHROME_VERSION_MINOR); ++ chromeVersion->set_gmajor(CHROME_VERSION_MAJOR); ++ chromeVersion->set_gminor(CHROME_VERSION_MINOR); + chromeVersion->set_build(CHROME_VERSION_BUILD); + chromeVersion->set_patch(CHROME_VERSION_PATCH); + PaintPreviewFrameProto* main_frame = expected_proto.mutable_root_frame(); diff --git a/devel/electron18/files/patch-components_paint__preview_common_proto_paint__preview.proto b/devel/electron18/files/patch-components_paint__preview_common_proto_paint__preview.proto new file mode 100644 index 000000000000..c8edae9d2c18 --- /dev/null +++ b/devel/electron18/files/patch-components_paint__preview_common_proto_paint__preview.proto @@ -0,0 +1,13 @@ +--- components/paint_preview/common/proto/paint_preview.proto.orig 2021-11-19 04:25:14 UTC ++++ components/paint_preview/common/proto/paint_preview.proto +@@ -82,8 +82,8 @@ message PaintPreviewFrameProto { + // Stores Chrome version. + // NEXT_TAG = 5 + message ChromeVersionProto { +- optional uint64 major = 1; +- optional uint64 minor = 2; ++ optional uint64 gmajor = 1; ++ optional uint64 gminor = 2; + optional uint64 build = 3; + optional uint64 patch = 4; + } diff --git a/devel/electron18/files/patch-components_paint__preview_player_player__compositor__delegate.cc b/devel/electron18/files/patch-components_paint__preview_player_player__compositor__delegate.cc new file mode 100644 index 000000000000..6bd78d98038b --- /dev/null +++ b/devel/electron18/files/patch-components_paint__preview_player_player__compositor__delegate.cc @@ -0,0 +1,13 @@ +--- components/paint_preview/player/player_compositor_delegate.cc.orig 2022-05-19 05:17:40 UTC ++++ components/paint_preview/player/player_compositor_delegate.cc +@@ -445,8 +445,8 @@ void PlayerCompositorDelegate::ValidateProtoAndLoadAXT + // use the AXTreeUpdate. + auto chrome_version = capture_result_->proto.metadata().chrome_version(); + if (capture_result_->proto.metadata().has_chrome_version() && +- chrome_version.major() == CHROME_VERSION_MAJOR && +- chrome_version.minor() == CHROME_VERSION_MINOR && ++ chrome_version.gmajor() == CHROME_VERSION_MAJOR && ++ chrome_version.gminor() == CHROME_VERSION_MINOR && + chrome_version.build() == CHROME_VERSION_BUILD && + chrome_version.patch() == CHROME_VERSION_PATCH) { + paint_preview_service_->GetFileMixin()->GetAXTreeUpdate( diff --git a/devel/electron18/files/patch-components_password__manager_core_browser_login__database.cc b/devel/electron18/files/patch-components_password__manager_core_browser_login__database.cc new file mode 100644 index 000000000000..e7b82ef276fd --- /dev/null +++ b/devel/electron18/files/patch-components_password__manager_core_browser_login__database.cc @@ -0,0 +1,29 @@ +--- components/password_manager/core/browser/login_database.cc.orig 2022-05-19 05:17:40 UTC ++++ components/password_manager/core/browser/login_database.cc +@@ -664,7 +664,7 @@ std::string GeneratePlaceholders(size_t count) { + return result; + } + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Fills |form| with necessary data required to be removed from the database + // and returns it. + PasswordForm GetFormForRemoval(sql::Statement& statement) { +@@ -681,7 +681,7 @@ PasswordForm GetFormForRemoval(sql::Statement& stateme + // Whether we should try to return the decryptable passwords while the + // encryption service fails for some passwords. + bool ShouldReturnPartialPasswords() { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return base::FeatureList::IsEnabled(features::kSkipUndecryptablePasswords); + #else + return false; +@@ -1488,7 +1488,7 @@ bool LoginDatabase::DeleteAndRecreateDatabaseFile() { + } + + DatabaseCleanupResult LoginDatabase::DeleteUndecryptableLogins() { +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + TRACE_EVENT0("passwords", "LoginDatabase::DeleteUndecryptableLogins"); + // If the Keychain in MacOS or the real secret key in Linux is unavailable, + // don't delete any logins. diff --git a/devel/electron18/files/patch-components_password__manager_core_browser_login__database__unittest.cc b/devel/electron18/files/patch-components_password__manager_core_browser_login__database__unittest.cc new file mode 100644 index 000000000000..7157e8f008a3 --- /dev/null +++ b/devel/electron18/files/patch-components_password__manager_core_browser_login__database__unittest.cc @@ -0,0 +1,29 @@ +--- components/password_manager/core/browser/login_database_unittest.cc.orig 2022-05-19 05:17:40 UTC ++++ components/password_manager/core/browser/login_database_unittest.cc +@@ -2090,7 +2090,7 @@ TEST_F(LoginDatabaseUndecryptableLoginsTest, DeleteUnd + base::HistogramTester histogram_tester; + ASSERT_TRUE(db.Init()); + +-#if BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMECAST)) ++#if BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMECAST)) || BUILDFLAG(IS_BSD) + // Make sure that we can't get any logins when database is corrupted. + // Disabling the checks in chromecast because encryption is unavailable. + std::vector<std::unique_ptr<PasswordForm>> result; +@@ -2116,7 +2116,7 @@ TEST_F(LoginDatabaseUndecryptableLoginsTest, DeleteUnd + #endif + + // Check histograms. +-#if BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMECAST)) ++#if BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMECAST)) || BUILDFLAG(IS_BSD) + histogram_tester.ExpectUniqueSample("PasswordManager.CleanedUpPasswords", 2, + 1); + histogram_tester.ExpectUniqueSample( +@@ -2168,7 +2168,7 @@ TEST_F(LoginDatabaseUndecryptableLoginsTest, KeychainL + } + #endif // BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Test getting auto sign in logins when there are undecryptable ones + TEST_F(LoginDatabaseUndecryptableLoginsTest, GetAutoSignInLogins) { + PrimaryKeyToFormMap key_to_form_map; diff --git a/devel/electron18/files/patch-components_password__manager_core_browser_sync_password__sync__bridge.cc b/devel/electron18/files/patch-components_password__manager_core_browser_sync_password__sync__bridge.cc new file mode 100644 index 000000000000..c7babee2ff4d --- /dev/null +++ b/devel/electron18/files/patch-components_password__manager_core_browser_sync_password__sync__bridge.cc @@ -0,0 +1,20 @@ +--- components/password_manager/core/browser/sync/password_sync_bridge.cc.orig 2022-05-19 05:17:40 UTC ++++ components/password_manager/core/browser/sync/password_sync_bridge.cc +@@ -185,7 +185,7 @@ bool ShouldRecoverPasswordsDuringMerge() { + // Delete the local undecryptable copy when this is MacOS only. + #if BUILDFLAG(IS_MAC) + return true; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return base::FeatureList::IsEnabled( + features::kSyncUndecryptablePasswordsLinux); + #else +@@ -194,7 +194,7 @@ bool ShouldRecoverPasswordsDuringMerge() { + } + + bool ShouldCleanSyncMetadataDuringStartupWhenDecryptionFails() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return ShouldRecoverPasswordsDuringMerge() && + base::FeatureList::IsEnabled( + features::kForceInitialSyncWhenDecryptionFails); diff --git a/devel/electron18/files/patch-components_password__manager_core_common_password__manager__features.cc b/devel/electron18/files/patch-components_password__manager_core_common_password__manager__features.cc new file mode 100644 index 000000000000..b5c6bca45779 --- /dev/null +++ b/devel/electron18/files/patch-components_password__manager_core_common_password__manager__features.cc @@ -0,0 +1,29 @@ +--- components/password_manager/core/common/password_manager_features.cc.orig 2022-05-19 05:17:40 UTC ++++ components/password_manager/core/common/password_manager_features.cc +@@ -63,7 +63,7 @@ const base::Feature kFillingAcrossAffiliatedWebsites{ + const base::Feature kFillOnAccountSelect = {"fill-on-account-select", + base::FEATURE_DISABLED_BY_DEFAULT}; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // When enabled, initial sync will be forced during startup if the password + // store has encryption service failures. + const base::Feature kForceInitialSyncWhenDecryptionFails = { +@@ -145,7 +145,7 @@ const base::Feature kReparseServerPredictionsFollowing + const base::Feature kSecondaryServerFieldPredictions = { + "SecondaryServerFieldPredictions", base::FEATURE_ENABLED_BY_DEFAULT}; + +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Displays at least the decryptable and never saved logins in the password + // manager + const base::Feature kSkipUndecryptablePasswords = { +@@ -157,7 +157,7 @@ const base::Feature kSkipUndecryptablePasswords = { + const base::Feature kSupportForAddPasswordsInSettings = { + "SupportForAddPasswordsInSettings", base::FEATURE_DISABLED_BY_DEFAULT}; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // When enabled, all undecryptable passwords are deleted from the local database + // during initial sync flow. + const base::Feature kSyncUndecryptablePasswordsLinux = { diff --git a/devel/electron18/files/patch-components_password__manager_core_common_password__manager__features.h b/devel/electron18/files/patch-components_password__manager_core_common_password__manager__features.h new file mode 100644 index 000000000000..eb153eb5533e --- /dev/null +++ b/devel/electron18/files/patch-components_password__manager_core_common_password__manager__features.h @@ -0,0 +1,25 @@ +--- components/password_manager/core/common/password_manager_features.h.orig 2022-05-19 05:17:40 UTC ++++ components/password_manager/core/common/password_manager_features.h +@@ -27,7 +27,7 @@ extern const base::Feature kEnablePasswordsAccountStor + extern const base::Feature KEnablePasswordGenerationForClearTextFields; + extern const base::Feature kFillingAcrossAffiliatedWebsites; + extern const base::Feature kFillOnAccountSelect; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extern const base::Feature kForceInitialSyncWhenDecryptionFails; + #endif + extern const base::Feature kInferConfirmationPasswordField; +@@ -46,11 +46,11 @@ extern const base::Feature kPasswordScriptsFetching; + extern const base::Feature kRecoverFromNeverSaveAndroid; + extern const base::Feature kReparseServerPredictionsFollowingFormChange; + extern const base::Feature kSecondaryServerFieldPredictions; +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extern const base::Feature kSkipUndecryptablePasswords; + #endif + extern const base::Feature kSupportForAddPasswordsInSettings; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extern const base::Feature kSyncUndecryptablePasswordsLinux; + #endif + #if BUILDFLAG(IS_ANDROID) diff --git a/devel/electron18/files/patch-components_performance__manager_features.cc b/devel/electron18/files/patch-components_performance__manager_features.cc new file mode 100644 index 000000000000..5c3d34b2c86e --- /dev/null +++ b/devel/electron18/files/patch-components_performance__manager_features.cc @@ -0,0 +1,11 @@ +--- components/performance_manager/features.cc.orig 2022-05-19 03:45:24 UTC ++++ components/performance_manager/features.cc +@@ -21,7 +21,7 @@ const base::Feature kUrgentDiscardingFromPerformanceMa + "UrgentDiscardingFromPerformanceManager", + // Ash Chrome uses memory pressure evaluator instead of performance manager to + // discard tabs. +-#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FEATURE_DISABLED_BY_DEFAULT + #else + base::FEATURE_ENABLED_BY_DEFAULT diff --git a/devel/electron18/files/patch-components_permissions_prediction__service_prediction__common.cc b/devel/electron18/files/patch-components_permissions_prediction__service_prediction__common.cc new file mode 100644 index 000000000000..40d16995b648 --- /dev/null +++ b/devel/electron18/files/patch-components_permissions_prediction__service_prediction__common.cc @@ -0,0 +1,20 @@ +--- components/permissions/prediction_service/prediction_common.cc.orig 2022-05-19 03:45:24 UTC ++++ components/permissions/prediction_service/prediction_common.cc +@@ -36,7 +36,7 @@ int BucketizeValue(int count) { + + ClientFeatures_Platform GetCurrentPlatformProto() { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return permissions::ClientFeatures_Platform_PLATFORM_DESKTOP; + #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) + return permissions::ClientFeatures_Platform_PLATFORM_MOBILE; +@@ -47,7 +47,7 @@ ClientFeatures_Platform GetCurrentPlatformProto() { + + ClientFeatures_PlatformEnum GetCurrentPlatformEnumProto() { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return permissions::ClientFeatures_PlatformEnum_PLATFORM_DESKTOP_V2; + #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) + return permissions::ClientFeatures_PlatformEnum_PLATFORM_MOBILE_V2; diff --git a/devel/electron18/files/patch-components_policy_core_browser_policy__pref__mapping__test.cc b/devel/electron18/files/patch-components_policy_core_browser_policy__pref__mapping__test.cc new file mode 100644 index 000000000000..403e755c7c68 --- /dev/null +++ b/devel/electron18/files/patch-components_policy_core_browser_policy__pref__mapping__test.cc @@ -0,0 +1,11 @@ +--- components/policy/core/browser/policy_pref_mapping_test.cc.orig 2022-05-19 03:45:24 UTC ++++ components/policy/core/browser/policy_pref_mapping_test.cc +@@ -342,7 +342,7 @@ class PolicyTestCase { + const std::string os("chromeos_lacros"); + #elif BUILDFLAG(IS_IOS) + const std::string os("ios"); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const std::string os("linux"); + #elif BUILDFLAG(IS_MAC) + const std::string os("mac"); diff --git a/devel/electron18/files/patch-components_policy_core_common_cloud_cloud__policy__client.cc b/devel/electron18/files/patch-components_policy_core_common_cloud_cloud__policy__client.cc new file mode 100644 index 000000000000..1fe0a4408eec --- /dev/null +++ b/devel/electron18/files/patch-components_policy_core_common_cloud_cloud__policy__client.cc @@ -0,0 +1,11 @@ +--- components/policy/core/common/cloud/cloud_policy_client.cc.orig 2022-05-19 05:17:40 UTC ++++ components/policy/core/common/cloud/cloud_policy_client.cc +@@ -417,7 +417,7 @@ void CloudPolicyClient::FetchPolicy() { + fetch_request->set_invalidation_payload(invalidation_payload_); + } + } +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Only set browser device identifier for CBCM Chrome cloud policy on + // desktop. + if (base::FeatureList::IsEnabled( diff --git a/devel/electron18/files/patch-components_policy_core_common_cloud_cloud__policy__util.cc b/devel/electron18/files/patch-components_policy_core_common_cloud_cloud__policy__util.cc new file mode 100644 index 000000000000..76e0ad18446b --- /dev/null +++ b/devel/electron18/files/patch-components_policy_core_common_cloud_cloud__policy__util.cc @@ -0,0 +1,54 @@ +--- components/policy/core/common/cloud/cloud_policy_util.cc.orig 2022-05-19 05:17:40 UTC ++++ components/policy/core/common/cloud/cloud_policy_util.cc +@@ -19,7 +19,7 @@ + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \ +- BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include <pwd.h> + #include <sys/types.h> + #include <unistd.h> +@@ -34,10 +34,14 @@ + #import <SystemConfiguration/SCDynamicStoreCopySpecific.h> + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include <limits.h> // For HOST_NAME_MAX + #endif + ++#if BUILDFLAG(IS_FREEBSD) ++#define HOST_NAME_MAX MAXHOSTNAMELEN ++#endif ++ + #include <utility> + + #include "base/check.h" +@@ -77,7 +81,7 @@ namespace em = enterprise_management; + + std::string GetMachineName() { + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + char hostname[HOST_NAME_MAX]; + if (gethostname(hostname, HOST_NAME_MAX) == 0) // Success. + return hostname; +@@ -135,7 +139,7 @@ std::string GetMachineName() { + + std::string GetOSVersion() { + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_APPLE) || \ +- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + return base::SysInfo::OperatingSystemVersion(); + #elif BUILDFLAG(IS_WIN) + base::win::OSInfo::VersionNumber version_number = +@@ -158,7 +162,7 @@ std::string GetOSArchitecture() { + } + + std::string GetOSUsername() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + struct passwd* creds = getpwuid(getuid()); + if (!creds || !creds->pw_name) + return std::string(); diff --git a/devel/electron18/files/patch-components_policy_resources_policy__templates.json b/devel/electron18/files/patch-components_policy_resources_policy__templates.json new file mode 100644 index 000000000000..ce030ad89ea9 --- /dev/null +++ b/devel/electron18/files/patch-components_policy_resources_policy__templates.json @@ -0,0 +1,191 @@ +--- components/policy/resources/policy_templates.json.orig 2022-05-19 05:17:40 UTC ++++ components/policy/resources/policy_templates.json +@@ -1430,7 +1430,7 @@ + 'owners': ['file://components/policy/resources/OWNERS', 'pastarmovj@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.win7:11-', 'chrome.mac:11-', 'chrome.linux:11-'], ++ 'supported_on': ['chrome.win7:11-', 'chrome.mac:11-', 'chrome.linux:11-', 'chrome.openbsd:11-', 'chrome.freebsd:11-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': False, +@@ -2534,7 +2534,7 @@ + 'owners': ['file://remoting/OWNERS', 'jamiewalch@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.linux:25-', 'chrome.mac:25-'], ++ 'supported_on': ['chrome.linux:25-', 'chrome.mac:25-', 'chrome.openbsd:25-', 'chrome.freebsd:25-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': False, +@@ -4300,7 +4300,7 @@ + 'owners': ['file://components/policy/resources/OWNERS', 'pastarmovj@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.win:57-', 'chrome.mac:88-', 'chrome.linux:88-'], ++ 'supported_on': ['chrome.win:57-', 'chrome.mac:88-', 'chrome.linux:88-', 'chrome.openbsd:88-', 'chrome.freebsd:88-'], + 'features': { + 'dynamic_refresh': False, + 'per_profile': False, +@@ -4329,7 +4329,7 @@ + 'owners': ['file://components/policy/resources/OWNERS', 'pastarmovj@chromium.org'], + 'type': 'string', + 'schema': { 'type': 'string' }, +- 'supported_on': ['chrome.win:57-', 'chrome.mac:88-', 'chrome.linux:88-'], ++ 'supported_on': ['chrome.win:57-', 'chrome.mac:88-', 'chrome.linux:88-', 'chrome.openbsd:88-', 'chrome.freebsd:88-'], + 'features': { + 'dynamic_refresh': False, + 'per_profile': False, +@@ -5262,7 +5262,7 @@ + 'owners': ['file://components/policy/resources/OWNERS', 'rsorokin@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.linux:74-','chrome.mac:74-','chrome_os:74-'], ++ 'supported_on': ['chrome.linux:74-','chrome.mac:74-','chrome_os:74-','chrome.openbsd:74-','chrome.freebsd:74-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': False, +@@ -5323,7 +5323,7 @@ + 'owners': ['file://components/policy/resources/OWNERS', 'rsorokin@chromium.org'], + 'type': 'string', + 'schema': { 'type': 'string' }, +- 'supported_on': ['chrome.linux:9-'], ++ 'supported_on': ['chrome.linux:9-','chrome.openbsd:9-','chrome.freebsd:9-'], + 'features': { + 'dynamic_refresh': False, + 'per_profile': False, +@@ -5389,7 +5389,7 @@ + 'owners': ['file://components/policy/resources/OWNERS', 'rsorokin@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.linux:63-','chrome.mac:63-','chrome_os:63-','android:63-','webview_android:63-'], ++ 'supported_on': ['chrome.linux:63-','chrome.mac:63-','chrome_os:63-','android:63-','webview_android:63-','chrome.openbsd:63-','chrome.freebsd:63-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': False, +@@ -10460,7 +10460,7 @@ + 'owners': ['file://net/cert/OWNERS', 'rsleevi@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome_os:30-', 'chrome.linux:30-', 'chrome.win:30-'], ++ 'supported_on': ['chrome_os:30-', 'chrome.linux:30-', 'chrome.win:30-', 'chrome.openbsd:30-', 'chrome.freebsd:30-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': False, +@@ -10554,7 +10554,7 @@ + 'owners': ['file://components/policy/resources/OWNERS', 'pmarko@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome_os:77-83', 'chrome.linux:79-83', 'chrome.mac:83-'], ++ 'supported_on': ['chrome_os:77-83', 'chrome.linux:79-83', 'chrome.mac:83-', 'chrome.openbsd:79-83', 'chrome.freebsd:79-83'], + 'features': { + 'dynamic_refresh': False, + 'per_profile': False, +@@ -12551,7 +12551,7 @@ + 'owners': ['file://components/policy/resources/OWNERS', 'pmarko@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.win:19-', 'chrome.linux:19-'], ++ 'supported_on': ['chrome.win:19-', 'chrome.linux:19-', 'chrome.openbsd:19-', 'chrome.freebsd:19-'], + 'features': { + 'can_be_recommended': True, + 'dynamic_refresh': True, +@@ -13409,7 +13409,7 @@ + 'owners': ['file://components/policy/resources/OWNERS', 'bartfab@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.win:31-', 'chrome.linux:31-', 'chrome_os:31-'], ++ 'supported_on': ['chrome.win:31-', 'chrome.linux:31-', 'chrome_os:31-', 'chrome.openbsd:31-', 'chrome.freebsd:31-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': True, +@@ -20284,7 +20284,7 @@ + 'items': { 'type': 'string' } + }, + # Spell checking is provided by macOS, so can't be controlled on Mac. +- 'supported_on': ['chrome.win:65-', 'chrome.linux:65-', 'chrome_os:65-'], ++ 'supported_on': ['chrome.win:65-', 'chrome.linux:65-', 'chrome_os:65-', 'chrome.openbsd:65-', 'chrome.freebsd:65-'], + 'features': { + 'can_be_recommended': False, + 'dynamic_refresh': True, +@@ -20315,7 +20315,7 @@ + 'items': { 'type': 'string' } + }, + # Spell checking is provided by macOS, so can't be controlled on Mac. +- 'supported_on': ['chrome.win:75-', 'chrome.linux:75-', 'chrome_os:75-'], ++ 'supported_on': ['chrome.win:75-', 'chrome.linux:75-', 'chrome_os:75-', 'chrome.openbsd:75-', 'chrome.freebsd:75-'], + 'deprecated': True, + 'features': { + 'can_be_recommended': False, +@@ -20349,7 +20349,7 @@ + 'items': { 'type': 'string' } + }, + # Spell checking is provided by macOS, so can't be controlled on Mac. +- 'supported_on': ['chrome.win:86-', 'chrome.linux:86-', 'chrome_os:86-'], ++ 'supported_on': ['chrome.win:86-', 'chrome.linux:86-', 'chrome_os:86-', 'chrome.openbsd:86-', 'chrome.freebsd:86-'], + 'features': { + 'can_be_recommended': False, + 'dynamic_refresh': True, +@@ -21087,7 +21087,7 @@ + 'owners': ['fbeaufort@chromium.org', 'beccahughes@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.win:66-', 'chrome.linux:66-', 'chrome.mac:66-', 'chrome_os:66-'], ++ 'supported_on': ['chrome.win:66-', 'chrome.linux:66-', 'chrome.mac:66-', 'chrome_os:66-', 'chrome.openbsd:66-', 'chrome.freebsd:66-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': True, +@@ -25361,7 +25361,7 @@ + 'owners': ['file://services/audio/OWNERS', 'dalecurtis@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.win:79-', 'chrome.linux:79-', 'chrome.mac:79-'], ++ 'supported_on': ['chrome.win:79-', 'chrome.linux:79-', 'chrome.mac:79-', 'chrome.openbsd:79-', 'chrome.freebsd:79-'], + 'features': { + 'dynamic_refresh': False, + 'per_profile': False, +@@ -26703,7 +26703,7 @@ If this policy is left unset, privacy screen is disabl + 'owners': ['file://chrome/browser/notifications/OWNERS', 'knollr@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.linux:83-'], ++ 'supported_on': ['chrome.linux:83-','chrome.openbsd:83-','chrome.freebsd:83-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': True, +@@ -26727,7 +26727,7 @@ If set to False, <ph name="PRODUCT_NAME">$1<ex>Google + 'owners': ['file://chrome/browser/notifications/OWNERS'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.linux:90-'], ++ 'supported_on': ['chrome.linux:90-','chrome.openbsd:90-','chrome.freebsd:90-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': True, +@@ -27796,7 +27796,7 @@ If you disable this policy, web page scrolling to spec + 'owners': ['asumaneev@google.com'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.linux:91-92', 'chrome_os:91-'], ++ 'supported_on': ['chrome.linux:91-92', 'chrome_os:91-', 'chrome.openbsd:91-', 'chrome.freebsd:91-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': False, +@@ -29032,7 +29032,7 @@ When this policy is set, <ph name="PRODUCT_OS_NAME">$2 + }, + ], + 'default': True, +- 'supported_on': ['chrome.win:93-', 'chrome.linux:93-', 'chrome.mac:93-'], ++ 'supported_on': ['chrome.win:93-', 'chrome.linux:93-', 'chrome.mac:93-', 'chrome.openbsd:93-', 'chrome.freebsd:93-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': True, +@@ -29165,7 +29165,7 @@ When this policy is set, <ph name="PRODUCT_OS_NAME">$2 + 'owners': ['mattm@chromium.org'], + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'future_on': ['chrome.win', 'chrome.mac', 'chrome.linux'], ++ 'future_on': ['chrome.win', 'chrome.mac', 'chrome.linux', 'chrome.openbsd', 'chrome.freebsd'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': True, diff --git a/devel/electron18/files/patch-components_policy_tools_generate__policy__source.py b/devel/electron18/files/patch-components_policy_tools_generate__policy__source.py new file mode 100644 index 000000000000..4919fa1072d2 --- /dev/null +++ b/devel/electron18/files/patch-components_policy_tools_generate__policy__source.py @@ -0,0 +1,14 @@ +--- components/policy/tools/generate_policy_source.py.orig 2022-05-19 05:17:40 UTC ++++ components/policy/tools/generate_policy_source.py +@@ -49,8 +49,10 @@ PLATFORM_STRINGS = { + 'ios': ['ios'], + 'chrome.win': ['win'], + 'chrome.linux': ['linux'], ++ 'chrome.openbsd': ['openbsd'], ++ 'chrome.freebsd': ['freebsd'], + 'chrome.mac': ['mac'], +- 'chrome.*': ['win', 'mac', 'linux', 'fuchsia'], ++ 'chrome.*': ['win', 'mac', 'linux', 'fuchsia', 'openbsd', 'freebsd'], + 'chrome.win7': ['win'], + } + diff --git a/devel/electron18/files/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc b/devel/electron18/files/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc new file mode 100644 index 000000000000..b612b3f08521 --- /dev/null +++ b/devel/electron18/files/patch-components_safe__browsing_content_common_file__type__policies__unittest.cc @@ -0,0 +1,11 @@ +--- components/safe_browsing/content/common/file_type_policies_unittest.cc.orig 2022-05-19 03:45:25 UTC ++++ components/safe_browsing/content/common/file_type_policies_unittest.cc +@@ -139,7 +139,7 @@ TEST_F(FileTypePoliciesTest, UnpackResourceBundle) { + EXPECT_EQ(DownloadFileType::FULL_PING, file_type.ping_setting()); + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + EXPECT_EQ(DownloadFileType::ALLOW_ON_USER_GESTURE, + file_type.platform_settings(0).danger_level()); + EXPECT_EQ(DownloadFileType::DISALLOW_AUTO_OPEN, diff --git a/devel/electron18/files/patch-components_safe__browsing_content_resources_gen__file__type__proto.py b/devel/electron18/files/patch-components_safe__browsing_content_resources_gen__file__type__proto.py new file mode 100644 index 000000000000..3aa8cc57225a --- /dev/null +++ b/devel/electron18/files/patch-components_safe__browsing_content_resources_gen__file__type__proto.py @@ -0,0 +1,19 @@ +--- components/safe_browsing/content/resources/gen_file_type_proto.py.orig 2022-05-11 07:00:34 UTC ++++ components/safe_browsing/content/resources/gen_file_type_proto.py +@@ -35,6 +35,7 @@ def PlatformTypes(): + download_file_types_pb2.DownloadFileType.PLATFORM_CHROME_OS, + "fuchsia": download_file_types_pb2.DownloadFileType.PLATFORM_FUCHSIA, + "linux": download_file_types_pb2.DownloadFileType.PLATFORM_LINUX, ++ "openbsd": download_file_types_pb2.DownloadFileType.PLATFORM_LINUX, + "mac": download_file_types_pb2.DownloadFileType.PLATFORM_MAC, + "win": download_file_types_pb2.DownloadFileType.PLATFORM_WINDOWS, + } +@@ -179,7 +180,7 @@ class DownloadFileTypeProtoGenerator(BinaryProtoGenera + '-t', + '--type', + help='The platform type. One of android, chromeos, ' + +- 'linux, mac, win') ++ 'linux, mac, win, openbsd') + + def AddExtraCommandLineArgsForVirtualEnvRun(self, opts, command): + if opts.type is not None: diff --git a/devel/electron18/files/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc b/devel/electron18/files/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc new file mode 100644 index 000000000000..1f0f87cc3472 --- /dev/null +++ b/devel/electron18/files/patch-components_safe__browsing_core_browser_db_v4__protocol__manager__util.cc @@ -0,0 +1,11 @@ +--- components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc.orig 2022-05-19 05:17:41 UTC ++++ components/safe_browsing/core/browser/db/v4_protocol_manager_util.cc +@@ -115,7 +115,7 @@ std::ostream& operator<<(std::ostream& os, const ListI + PlatformType GetCurrentPlatformType() { + #if BUILDFLAG(IS_WIN) + return WINDOWS_PLATFORM; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return LINUX_PLATFORM; + #elif BUILDFLAG(IS_IOS) + return IOS_PLATFORM; diff --git a/devel/electron18/files/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc b/devel/electron18/files/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc new file mode 100644 index 000000000000..6fe90c640ace --- /dev/null +++ b/devel/electron18/files/patch-components_safe__browsing_core_browser_realtime_url__lookup__service__base.cc @@ -0,0 +1,11 @@ +--- components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc.orig 2022-05-19 05:17:41 UTC ++++ components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc +@@ -109,7 +109,7 @@ RTLookupRequest::OSType GetRTLookupRequestOSType() { + return RTLookupRequest::OS_TYPE_FUCHSIA; + #elif BUILDFLAG(IS_IOS) + return RTLookupRequest::OS_TYPE_IOS; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return RTLookupRequest::OS_TYPE_LINUX; + #elif BUILDFLAG(IS_MAC) + return RTLookupRequest::OS_TYPE_MAC; diff --git a/devel/electron18/files/patch-components_security__interstitials_content_utils.cc b/devel/electron18/files/patch-components_security__interstitials_content_utils.cc new file mode 100644 index 000000000000..4bae349db3a1 --- /dev/null +++ b/devel/electron18/files/patch-components_security__interstitials_content_utils.cc @@ -0,0 +1,11 @@ +--- components/security_interstitials/content/utils.cc.orig 2022-05-19 03:45:25 UTC ++++ components/security_interstitials/content/utils.cc +@@ -34,7 +34,7 @@ void LaunchDateAndTimeSettings() { + #if BUILDFLAG(IS_ANDROID) + JNIEnv* env = base::android::AttachCurrentThread(); + Java_DateAndTimeSettingsHelper_openDateAndTimeSettings(env); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + struct ClockCommand { + const char* const pathname; + const char* const argument; diff --git a/devel/electron18/files/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc b/devel/electron18/files/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc new file mode 100644 index 000000000000..98d5d4254ace --- /dev/null +++ b/devel/electron18/files/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.cc @@ -0,0 +1,29 @@ +--- components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.cc.orig 2022-05-19 03:45:25 UTC ++++ components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.cc +@@ -19,7 +19,7 @@ + + #if BUILDFLAG(IS_WIN) + #include "content/public/child/dwrite_font_proxy_init_win.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/services/font/public/cpp/font_loader.h" + #endif + +@@ -64,7 +64,7 @@ PaintPreviewCompositorCollectionImpl::PaintPreviewComp + // Initialize font access for Skia. + #if BUILDFLAG(IS_WIN) + content::InitializeDWriteFontProxy(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + mojo::PendingRemote<font_service::mojom::FontService> font_service; + content::UtilityThread::Get()->BindHostReceiver( + font_service.InitWithNewPipeAndPassReceiver()); +@@ -87,7 +87,7 @@ PaintPreviewCompositorCollectionImpl::PaintPreviewComp + base::BindOnce([] { SkFontMgr::RefDefault(); })); + + // Sanity check that fonts are working. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // No WebSandbox is provided on Linux so the local fonts aren't accessible. + // This is fine since since the subsetted fonts are provided in the SkPicture. + // However, we still need to check that the SkFontMgr starts as it is used by diff --git a/devel/electron18/files/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h b/devel/electron18/files/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h new file mode 100644 index 000000000000..7b5b7ec7b11e --- /dev/null +++ b/devel/electron18/files/patch-components_services_paint__preview__compositor_paint__preview__compositor__collection__impl.h @@ -0,0 +1,20 @@ +--- components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.h.orig 2022-05-19 03:45:25 UTC ++++ components/services/paint_preview_compositor/paint_preview_compositor_collection_impl.h +@@ -21,7 +21,7 @@ + #include "mojo/public/cpp/bindings/pending_receiver.h" + #include "mojo/public/cpp/bindings/receiver.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/services/font/public/cpp/font_loader.h" + #include "third_party/skia/include/core/SkRefCnt.h" + #endif +@@ -73,7 +73,7 @@ class PaintPreviewCompositorCollectionImpl + std::unique_ptr<PaintPreviewCompositorImpl>> + compositors_; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + sk_sp<font_service::FontLoader> font_loader_; + #endif + diff --git a/devel/electron18/files/patch-components_startup__metric__utils_browser_startup__metric__utils.cc b/devel/electron18/files/patch-components_startup__metric__utils_browser_startup__metric__utils.cc new file mode 100644 index 000000000000..ef7592296ac4 --- /dev/null +++ b/devel/electron18/files/patch-components_startup__metric__utils_browser_startup__metric__utils.cc @@ -0,0 +1,20 @@ +--- components/startup_metric_utils/browser/startup_metric_utils.cc.orig 2022-05-19 05:17:41 UTC ++++ components/startup_metric_utils/browser/startup_metric_utils.cc +@@ -347,7 +347,7 @@ base::TimeTicks StartupTimeToTimeTicks(base::Time time + + // Enabling this logic on OS X causes a significant performance regression. + // https://crbug.com/601270 +-#if !BUILDFLAG(IS_APPLE) ++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + static bool statics_initialized = false; + + base::ThreadPriority previous_priority = base::ThreadPriority::NORMAL; +@@ -361,7 +361,7 @@ base::TimeTicks StartupTimeToTimeTicks(base::Time time + static const base::Time time_base = base::Time::Now(); + static const base::TimeTicks trace_ticks_base = base::TimeTicks::Now(); + +-#if !BUILDFLAG(IS_APPLE) ++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + if (!statics_initialized) { + base::PlatformThread::SetCurrentThreadPriority(previous_priority); + } diff --git a/devel/electron18/files/patch-components_storage__monitor_BUILD.gn b/devel/electron18/files/patch-components_storage__monitor_BUILD.gn new file mode 100644 index 000000000000..85daba90bdff --- /dev/null +++ b/devel/electron18/files/patch-components_storage__monitor_BUILD.gn @@ -0,0 +1,11 @@ +--- components/storage_monitor/BUILD.gn.orig 2022-05-19 05:17:41 UTC ++++ components/storage_monitor/BUILD.gn +@@ -174,7 +174,7 @@ source_set("unit_tests") { + "mtp_manager_client_chromeos_unittest.cc", + "storage_monitor_chromeos_unittest.cc", + ] +- } else if (is_linux || is_chromeos_lacros) { ++ } else if ((is_linux || is_chromeos_lacros) && !is_bsd) { + sources += [ "storage_monitor_linux_unittest.cc" ] + } + } diff --git a/devel/electron18/files/patch-components_storage__monitor_removable__device__constants.cc b/devel/electron18/files/patch-components_storage__monitor_removable__device__constants.cc new file mode 100644 index 000000000000..fe2e1a0fde35 --- /dev/null +++ b/devel/electron18/files/patch-components_storage__monitor_removable__device__constants.cc @@ -0,0 +1,11 @@ +--- components/storage_monitor/removable_device_constants.cc.orig 2022-05-19 03:45:25 UTC ++++ components/storage_monitor/removable_device_constants.cc +@@ -10,7 +10,7 @@ namespace storage_monitor { + const char kFSUniqueIdPrefix[] = "UUID:"; + const char kVendorModelSerialPrefix[] = "VendorModelSerial:"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kVendorModelVolumeStoragePrefix[] = "VendorModelVolumeStorage:"; + #endif + diff --git a/devel/electron18/files/patch-components_storage__monitor_removable__device__constants.h b/devel/electron18/files/patch-components_storage__monitor_removable__device__constants.h new file mode 100644 index 000000000000..fd6d0774a6bf --- /dev/null +++ b/devel/electron18/files/patch-components_storage__monitor_removable__device__constants.h @@ -0,0 +1,11 @@ +--- components/storage_monitor/removable_device_constants.h.orig 2022-05-19 03:45:25 UTC ++++ components/storage_monitor/removable_device_constants.h +@@ -14,7 +14,7 @@ namespace storage_monitor { + extern const char kFSUniqueIdPrefix[]; + extern const char kVendorModelSerialPrefix[]; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kVendorModelVolumeStoragePrefix[]; + #endif + diff --git a/devel/electron18/files/patch-components_sync__device__info_local__device__info__util.cc b/devel/electron18/files/patch-components_sync__device__info_local__device__info__util.cc new file mode 100644 index 000000000000..6e28d8394480 --- /dev/null +++ b/devel/electron18/files/patch-components_sync__device__info_local__device__info__util.cc @@ -0,0 +1,11 @@ +--- components/sync_device_info/local_device_info_util.cc.orig 2022-05-19 05:17:41 UTC ++++ components/sync_device_info/local_device_info_util.cc +@@ -75,7 +75,7 @@ std::string GetPersonalizableDeviceNameInternal(); + sync_pb::SyncEnums::DeviceType GetLocalDeviceType() { + #if BUILDFLAG(IS_CHROMEOS_ASH) + return sync_pb::SyncEnums_DeviceType_TYPE_CROS; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + return sync_pb::SyncEnums_DeviceType_TYPE_LINUX; + #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) + return ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET diff --git a/devel/electron18/files/patch-components_sync__device__info_local__device__info__util__linux.cc b/devel/electron18/files/patch-components_sync__device__info_local__device__info__util__linux.cc new file mode 100644 index 000000000000..4defcff3e9ff --- /dev/null +++ b/devel/electron18/files/patch-components_sync__device__info_local__device__info__util__linux.cc @@ -0,0 +1,14 @@ +--- components/sync_device_info/local_device_info_util_linux.cc.orig 2022-05-11 07:16:51 UTC ++++ components/sync_device_info/local_device_info_util_linux.cc +@@ -14,6 +14,11 @@ + #include "ash/constants/devicetype.h" + #endif + ++#if defined(__FreeBSD__) ++#include <sys/param.h> ++#define HOST_NAME_MAX MAXHOSTNAMELEN ++#endif ++ + namespace syncer { + + #if BUILDFLAG(IS_CHROMEOS_ASH) diff --git a/devel/electron18/files/patch-components_translate_core_browser_translate__prefs.cc b/devel/electron18/files/patch-components_translate_core_browser_translate__prefs.cc new file mode 100644 index 000000000000..69ba919514e1 --- /dev/null +++ b/devel/electron18/files/patch-components_translate_core_browser_translate__prefs.cc @@ -0,0 +1,11 @@ +--- components/translate/core/browser/translate_prefs.cc.orig 2022-05-19 05:17:41 UTC ++++ components/translate/core/browser/translate_prefs.cc +@@ -905,7 +905,7 @@ bool TranslatePrefs::CanTranslateLanguage( + bool TranslatePrefs::IsDetailedLanguageSettingsEnabled() { + #if BUILDFLAG(IS_ANDROID) + return base::FeatureList::IsEnabled(language::kDetailedLanguageSettings); +-#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return base::FeatureList::IsEnabled( + language::kDesktopDetailedLanguageSettings); + #else diff --git a/devel/electron18/files/patch-components_translate_core_common_translate__util.cc b/devel/electron18/files/patch-components_translate_core_common_translate__util.cc new file mode 100644 index 000000000000..855fb614b3ea --- /dev/null +++ b/devel/electron18/files/patch-components_translate_core_common_translate__util.cc @@ -0,0 +1,11 @@ +--- components/translate/core/common/translate_util.cc.orig 2022-05-19 03:45:26 UTC ++++ components/translate/core/common/translate_util.cc +@@ -34,7 +34,7 @@ const base::Feature kTranslateSubFrames{"TranslateSubF + const base::Feature kTFLiteLanguageDetectionEnabled{ + "TFLiteLanguageDetectionEnabled", + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT diff --git a/devel/electron18/files/patch-components_update__client_update__query__params.cc b/devel/electron18/files/patch-components_update__client_update__query__params.cc new file mode 100644 index 000000000000..450a81478905 --- /dev/null +++ b/devel/electron18/files/patch-components_update__client_update__query__params.cc @@ -0,0 +1,11 @@ +--- components/update_client/update_query_params.cc.orig 2022-05-19 05:17:41 UTC ++++ components/update_client/update_query_params.cc +@@ -40,6 +40,8 @@ const char kOs[] = + "fuchsia"; + #elif BUILDFLAG(IS_OPENBSD) + "openbsd"; ++#elif defined(OS_FREEBSD) ++ "freebsd"; + #else + #error "unknown os" + #endif diff --git a/devel/electron18/files/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc b/devel/electron18/files/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc new file mode 100644 index 000000000000..46970d4b3d78 --- /dev/null +++ b/devel/electron18/files/patch-components_url__formatter_spoof__checks_idn__spoof__checker.cc @@ -0,0 +1,11 @@ +--- components/url_formatter/spoof_checks/idn_spoof_checker.cc.orig 2022-05-19 03:45:26 UTC ++++ components/url_formatter/spoof_checks/idn_spoof_checker.cc +@@ -285,7 +285,7 @@ IDNSpoofChecker::IDNSpoofChecker() { + // The ideal fix would be to change the omnibox font used for Thai. In + // that case, the Linux-only list should be revisited and potentially + // removed. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + "[ทนบพรหเแ๐ดลปฟม]", + #else + "[บพเแ๐]", diff --git a/devel/electron18/files/patch-components_viz_common_features.cc b/devel/electron18/files/patch-components_viz_common_features.cc new file mode 100644 index 000000000000..a6cd31e625a3 --- /dev/null +++ b/devel/electron18/files/patch-components_viz_common_features.cc @@ -0,0 +1,11 @@ +--- components/viz/common/features.cc.orig 2022-05-19 05:17:41 UTC ++++ components/viz/common/features.cc +@@ -67,7 +67,7 @@ const base::Feature kUseSkiaRenderer { + "UseSkiaRenderer", + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \ + BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT diff --git a/devel/electron18/files/patch-components_viz_common_gpu_dawn__context__provider.cc b/devel/electron18/files/patch-components_viz_common_gpu_dawn__context__provider.cc new file mode 100644 index 000000000000..32c802c7425f --- /dev/null +++ b/devel/electron18/files/patch-components_viz_common_gpu_dawn__context__provider.cc @@ -0,0 +1,11 @@ +--- components/viz/common/gpu/dawn_context_provider.cc.orig 2022-05-19 03:45:26 UTC ++++ components/viz/common/gpu/dawn_context_provider.cc +@@ -20,7 +20,7 @@ namespace { + wgpu::BackendType GetDefaultBackendType() { + #if BUILDFLAG(IS_WIN) + return wgpu::BackendType::D3D12; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return wgpu::BackendType::Vulkan; + #else + NOTREACHED(); diff --git a/devel/electron18/files/patch-components_viz_host_host__display__client.cc b/devel/electron18/files/patch-components_viz_host_host__display__client.cc new file mode 100644 index 000000000000..40fa1862cf6f --- /dev/null +++ b/devel/electron18/files/patch-components_viz_host_host__display__client.cc @@ -0,0 +1,11 @@ +--- components/viz/host/host_display_client.cc.orig 2022-05-20 04:30:53 UTC ++++ components/viz/host/host_display_client.cc +@@ -65,7 +65,7 @@ void HostDisplayClient::CreateLayeredWindowUpdater( + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + void HostDisplayClient::DidCompleteSwapWithNewSize(const gfx::Size& size) { + NOTIMPLEMENTED(); + } diff --git a/devel/electron18/files/patch-components_viz_host_host__display__client.h b/devel/electron18/files/patch-components_viz_host_host__display__client.h new file mode 100644 index 000000000000..a96593085af4 --- /dev/null +++ b/devel/electron18/files/patch-components_viz_host_host__display__client.h @@ -0,0 +1,11 @@ +--- components/viz/host/host_display_client.h.orig 2022-05-20 04:30:53 UTC ++++ components/viz/host/host_display_client.h +@@ -47,7 +47,7 @@ class VIZ_HOST_EXPORT HostDisplayClient : public mojom + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + void DidCompleteSwapWithNewSize(const gfx::Size& size) override; + #endif + diff --git a/devel/electron18/files/patch-components_viz_host_renderer__settings__creation.cc b/devel/electron18/files/patch-components_viz_host_renderer__settings__creation.cc new file mode 100644 index 000000000000..9d080d1082c0 --- /dev/null +++ b/devel/electron18/files/patch-components_viz_host_renderer__settings__creation.cc @@ -0,0 +1,11 @@ +--- components/viz/host/renderer_settings_creation.cc.orig 2022-05-20 04:30:53 UTC ++++ components/viz/host/renderer_settings_creation.cc +@@ -55,7 +55,7 @@ RendererSettings CreateRendererSettings() { + renderer_settings.partial_swap_enabled = + !command_line->HasSwitch(switches::kUIDisablePartialSwap); + +-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Simple frame rate throttling only works on macOS and Linux + renderer_settings.apply_simple_frame_rate_throttling = + features::IsSimpleFrameRateThrottlingEnabled(); diff --git a/devel/electron18/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc b/devel/electron18/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc new file mode 100644 index 000000000000..4ebf79016977 --- /dev/null +++ b/devel/electron18/files/patch-components_viz_service_display__embedder_skia__output__surface__impl.cc @@ -0,0 +1,11 @@ +--- components/viz/service/display_embedder/skia_output_surface_impl.cc.orig 2022-05-19 05:17:41 UTC ++++ components/viz/service/display_embedder/skia_output_surface_impl.cc +@@ -1171,7 +1171,7 @@ GrBackendFormat SkiaOutputSurfaceImpl::GetGrBackendFor + ->GetDeviceQueue() + ->GetVulkanPhysicalDevice(), + VK_IMAGE_TILING_OPTIMAL, ycbcr_info); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Textures that were allocated _on linux_ with ycbcr info came from + // VaapiVideoDecoder, which exports using DRM format modifiers. + return GrBackendFormat::MakeVk(gr_ycbcr_info, diff --git a/devel/electron18/files/patch-components_viz_service_display__embedder_software__output__surface.cc b/devel/electron18/files/patch-components_viz_service_display__embedder_software__output__surface.cc new file mode 100644 index 000000000000..3e61f94585e2 --- /dev/null +++ b/devel/electron18/files/patch-components_viz_service_display__embedder_software__output__surface.cc @@ -0,0 +1,20 @@ +--- components/viz/service/display_embedder/software_output_surface.cc.orig 2022-05-19 05:17:41 UTC ++++ components/viz/service/display_embedder/software_output_surface.cc +@@ -118,7 +118,7 @@ void SoftwareOutputSurface::SwapBuffersCallback(base:: + now.SnappedToNextTick(refresh_timebase_, refresh_interval_) - now; + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + if (needs_swap_size_notifications_) + client_->DidSwapWithSize(pixel_size); + #endif +@@ -149,7 +149,7 @@ gfx::OverlayTransform SoftwareOutputSurface::GetDispla + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + void SoftwareOutputSurface::SetNeedsSwapSizeNotifications( + bool needs_swap_size_notifications) { + needs_swap_size_notifications_ = needs_swap_size_notifications; diff --git a/devel/electron18/files/patch-components_viz_service_display__embedder_software__output__surface.h b/devel/electron18/files/patch-components_viz_service_display__embedder_software__output__surface.h new file mode 100644 index 000000000000..ac985dff95fe --- /dev/null +++ b/devel/electron18/files/patch-components_viz_service_display__embedder_software__output__surface.h @@ -0,0 +1,20 @@ +--- components/viz/service/display_embedder/software_output_surface.h.orig 2022-05-19 05:17:41 UTC ++++ components/viz/service/display_embedder/software_output_surface.h +@@ -56,7 +56,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputSurface : publi + gfx::OverlayTransform GetDisplayTransform() override; + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + void SetNeedsSwapSizeNotifications( + bool needs_swap_size_notifications) override; + #endif +@@ -78,7 +78,7 @@ class VIZ_SERVICE_EXPORT SoftwareOutputSurface : publi + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + bool needs_swap_size_notifications_ = false; + #endif + diff --git a/devel/electron18/files/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc b/devel/electron18/files/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc new file mode 100644 index 000000000000..2438f1723aba --- /dev/null +++ b/devel/electron18/files/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.cc @@ -0,0 +1,20 @@ +--- components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc.orig 2022-05-20 04:30:53 UTC ++++ components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc +@@ -98,7 +98,7 @@ RootCompositorFrameSinkImpl::Create( + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // For X11, we need notify client about swap completion after resizing, so the + // client can use it for synchronize with X11 WM. + output_surface->SetNeedsSwapSizeNotifications(true); +@@ -570,7 +570,7 @@ void RootCompositorFrameSinkImpl::DisplayDidCompleteSw + display_client_->DidCompleteSwapWithSize(pixel_size); + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + if (display_client_ && pixel_size != last_swap_pixel_size_) { + last_swap_pixel_size_ = pixel_size; + display_client_->DidCompleteSwapWithNewSize(last_swap_pixel_size_); diff --git a/devel/electron18/files/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h b/devel/electron18/files/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h new file mode 100644 index 000000000000..06c09756fc16 --- /dev/null +++ b/devel/electron18/files/patch-components_viz_service_frame__sinks_root__compositor__frame__sink__impl.h @@ -0,0 +1,11 @@ +--- components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h.orig 2022-05-19 05:17:41 UTC ++++ components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h +@@ -196,7 +196,7 @@ class VIZ_SERVICE_EXPORT RootCompositorFrameSinkImpl + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + gfx::Size last_swap_pixel_size_; + #endif + diff --git a/devel/electron18/files/patch-components_viz_test_fake__display__client.cc b/devel/electron18/files/patch-components_viz_test_fake__display__client.cc new file mode 100644 index 000000000000..e52adf9d78cc --- /dev/null +++ b/devel/electron18/files/patch-components_viz_test_fake__display__client.cc @@ -0,0 +1,11 @@ +--- components/viz/test/fake_display_client.cc.orig 2022-05-19 03:45:27 UTC ++++ components/viz/test/fake_display_client.cc +@@ -25,7 +25,7 @@ void FakeDisplayClient::CreateLayeredWindowUpdater( + mojo::PendingReceiver<mojom::LayeredWindowUpdater> receiver) {} + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void FakeDisplayClient::DidCompleteSwapWithNewSize(const gfx::Size& size) {} + #endif + diff --git a/devel/electron18/files/patch-components_viz_test_fake__display__client.h b/devel/electron18/files/patch-components_viz_test_fake__display__client.h new file mode 100644 index 000000000000..a9206b012893 --- /dev/null +++ b/devel/electron18/files/patch-components_viz_test_fake__display__client.h @@ -0,0 +1,11 @@ +--- components/viz/test/fake_display_client.h.orig 2022-05-19 03:45:27 UTC ++++ components/viz/test/fake_display_client.h +@@ -34,7 +34,7 @@ class FakeDisplayClient : public mojom::DisplayClient + mojo::PendingReceiver<mojom::LayeredWindowUpdater> receiver) override; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void DidCompleteSwapWithNewSize(const gfx::Size& size) override; + #endif + diff --git a/devel/electron18/files/patch-components_viz_test_mock__display__client.h b/devel/electron18/files/patch-components_viz_test_mock__display__client.h new file mode 100644 index 000000000000..f901b10ab431 --- /dev/null +++ b/devel/electron18/files/patch-components_viz_test_mock__display__client.h @@ -0,0 +1,11 @@ +--- components/viz/test/mock_display_client.h.orig 2022-05-19 03:45:27 UTC ++++ components/viz/test/mock_display_client.h +@@ -44,7 +44,7 @@ class MockDisplayClient : public mojom::DisplayClient + #endif + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + MOCK_METHOD1(DidCompleteSwapWithNewSize, void(const gfx::Size&)); + #endif + diff --git a/devel/electron18/files/patch-content_app_content__main.cc b/devel/electron18/files/patch-content_app_content__main.cc new file mode 100644 index 000000000000..9a3c2fc82a7e --- /dev/null +++ b/devel/electron18/files/patch-content_app_content__main.cc @@ -0,0 +1,11 @@ +--- content/app/content_main.cc.orig 2022-05-20 04:30:53 UTC ++++ content/app/content_main.cc +@@ -254,7 +254,7 @@ RunContentProcess(ContentMainParams params, + base::allocator::InstallDanglingRawPtrChecks(); + base::EnableTerminationOnOutOfMemory(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The various desktop environments set this environment variable that + // allows the dbus client library to connect directly to the bus. When this + // variable is not set (test environments like xvfb-run), the dbus client diff --git a/devel/electron18/files/patch-content_app_content__main__runner__impl.cc b/devel/electron18/files/patch-content_app_content__main__runner__impl.cc new file mode 100644 index 000000000000..f19af120307e --- /dev/null +++ b/devel/electron18/files/patch-content_app_content__main__runner__impl.cc @@ -0,0 +1,120 @@ +--- content/app/content_main_runner_impl.cc.orig 2022-05-20 04:30:53 UTC ++++ content/app/content_main_runner_impl.cc +@@ -130,13 +130,13 @@ + #include "base/posix/global_descriptors.h" + #include "content/public/common/content_descriptors.h" + +-#if !BUILDFLAG(IS_MAC) ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + #include "content/public/common/zygote/zygote_fork_delegate_linux.h" + #endif + + #endif // BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/native_library.h" + #include "base/rand_util.h" + #include "content/public/common/zygote/sandbox_support_linux.h" +@@ -170,6 +170,10 @@ + #include "media/base/media_switches.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include "base/system/sys_info.h" ++#endif ++ + #if BUILDFLAG(IS_ANDROID) + #include "base/system/sys_info.h" + #include "components/power_scheduler/power_scheduler.h" +@@ -337,7 +341,7 @@ void InitializeZygoteSandboxForBrowserProcess( + } + #endif // BUILDFLAG(USE_ZYGOTE_HANDLE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + #if BUILDFLAG(ENABLE_PLUGINS) + // Loads the (native) libraries but does not initialize them (i.e., does not +@@ -373,7 +377,7 @@ void PreloadLibraryCdms() { + } + #endif // BUILDFLAG(ENABLE_LIBRARY_CDMS) + +-#if BUILDFLAG(USE_ZYGOTE_HANDLE) ++#if BUILDFLAG(USE_ZYGOTE_HANDLE) || BUILDFLAG(IS_BSD) + void PreSandboxInit() { + // Pre-acquire resources needed by BoringSSL. See + // https://boringssl.googlesource.com/boringssl/+/HEAD/SANDBOXING.md +@@ -389,6 +393,11 @@ void PreSandboxInit() { + #endif + InitializeWebRtcModule(); + ++#if BUILDFLAG(IS_BSD) ++ // "cache" the amount of physical memory before pledge(2) ++ base::SysInfo::AmountOfPhysicalMemoryMB(); ++#endif ++ + // Set the android SkFontMgr for blink. We need to ensure this is done + // before the sandbox is initialized to allow the font manager to access + // font configuration files on disk. +@@ -558,7 +567,7 @@ int NO_STACK_PROTECTOR RunZygote(ContentMainDelegate* + delegate->ZygoteStarting(&zygote_fork_delegates); + media::InitializeMediaLibrary(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + PreSandboxInit(); + #endif + +@@ -744,11 +753,10 @@ int ContentMainRunnerImpl::Initialize(ContentMainParam + kFieldTrialDescriptor + base::GlobalDescriptors::kBaseDescriptor); + #endif // !BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + g_fds->Set(kCrashDumpSignal, + kCrashDumpSignal + base::GlobalDescriptors::kBaseDescriptor); +-#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || +- // BUILDFLAG(IS_OPENBSD) ++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + + #endif // !BUILDFLAG(IS_WIN) + +@@ -946,6 +954,16 @@ int ContentMainRunnerImpl::Initialize(ContentMainParam + } + #endif + ++#if BUILDFLAG(IS_BSD) ++ if (process_type.empty()) { ++ sandbox::policy::SandboxLinux::Options sandbox_options; ++ sandbox::policy::SandboxLinux::GetInstance()->InitializeSandbox( ++ sandbox::policy::SandboxTypeFromCommandLine( ++ *base::CommandLine::ForCurrentProcess()), ++ sandbox::policy::SandboxLinux::PreSandboxHook(), sandbox_options); ++ } ++#endif ++ + delegate_->SandboxInitialized(process_type); + + #if BUILDFLAG(USE_ZYGOTE_HANDLE) +@@ -1001,7 +1019,7 @@ int NO_STACK_PROTECTOR ContentMainRunnerImpl::Run() { + mojo::core::InitFeatures(); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // If dynamic Mojo Core is being used, ensure that it's loaded very early in + // the child/zygote process, before any sandbox is initialized. The library + // is not fully initialized with IPC support until a ChildProcess is later +@@ -1034,6 +1052,11 @@ int NO_STACK_PROTECTOR ContentMainRunnerImpl::Run() { + content_main_params_.reset(); + + RegisterMainThreadFactories(); ++ ++#if BUILDFLAG(IS_BSD) ++ if (!process_type.empty()) ++ PreSandboxInit(); ++#endif + + if (process_type.empty()) + return RunBrowser(std::move(main_params), start_minimal_browser); diff --git a/devel/electron18/files/patch-content_browser_BUILD.gn b/devel/electron18/files/patch-content_browser_BUILD.gn new file mode 100644 index 000000000000..25c2a4d9c774 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_BUILD.gn @@ -0,0 +1,16 @@ +--- content/browser/BUILD.gn.orig 2022-05-19 05:17:41 UTC ++++ content/browser/BUILD.gn +@@ -2331,6 +2331,13 @@ source_set("browser") { + ] + } + ++ if (is_bsd) { ++ sources -= [ ++ "sandbox_ipc_linux.cc", ++ "sandbox_ipc_linux.h", ++ ] ++ } ++ + if (is_chromeos) { + deps += [ "//components/value_store:value_store" ] + sources += [ diff --git a/devel/electron18/files/patch-content_browser_browser__child__process__host__impl.cc b/devel/electron18/files/patch-content_browser_browser__child__process__host__impl.cc new file mode 100644 index 000000000000..364a675129dc --- /dev/null +++ b/devel/electron18/files/patch-content_browser_browser__child__process__host__impl.cc @@ -0,0 +1,10 @@ +--- content/browser/browser_child_process_host_impl.cc.orig 2022-05-19 05:17:41 UTC ++++ content/browser/browser_child_process_host_impl.cc +@@ -292,6 +292,7 @@ void BrowserChildProcessHostImpl::LaunchWithoutExtraCo + switches::kDisableBestEffortTasks, + switches::kDisableLogging, + switches::kEnableLogging, ++ switches::kDisableUnveil, + switches::kIPCConnectionTimeout, + switches::kLogBestEffortTasks, + switches::kLogFile, diff --git a/devel/electron18/files/patch-content_browser_browser__main__loop.cc b/devel/electron18/files/patch-content_browser_browser__main__loop.cc new file mode 100644 index 000000000000..1c3b615d38eb --- /dev/null +++ b/devel/electron18/files/patch-content_browser_browser__main__loop.cc @@ -0,0 +1,46 @@ +--- content/browser/browser_main_loop.cc.orig 2022-05-19 05:17:41 UTC ++++ content/browser/browser_main_loop.cc +@@ -240,6 +240,12 @@ + #include "mojo/public/cpp/bindings/lib/test_random_mojo_delays.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include "content/browser/sandbox_host_linux.h" ++#include "content/public/common/zygote/sandbox_support_linux.h" ++#include "sandbox/policy/sandbox.h" ++#endif ++ + // One of the linux specific headers defines this as a macro. + #ifdef DestroyAll + #undef DestroyAll +@@ -547,6 +553,12 @@ int BrowserMainLoop::EarlyInitialization() { + // by now since a thread to start the ServiceManager has been created + // before the browser main loop starts. + DCHECK(SandboxHostLinux::GetInstance()->IsInitialized()); ++#elif BUILDFLAG(IS_BSD) ++ base::FileHandleMappingVector additional_remapped_fds; ++ base::LaunchOptions options; ++ SandboxHostLinux::GetInstance()->Init(); ++ const int sfd = SandboxHostLinux::GetInstance()->GetChildSocket(); ++ options.fds_to_remap.push_back(std::make_pair(sfd, GetSandboxFD())); + #endif + + // GLib's spawning of new processes is buggy, so it's important that at this +@@ -574,7 +586,7 @@ int BrowserMainLoop::EarlyInitialization() { + + // Up the priority of the UI thread unless it was already high (since Mac + // and recent versions of Android (O+) do this automatically). +-#if !BUILDFLAG(IS_MAC) ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled( + features::kBrowserUseDisplayThreadPriority) && + base::PlatformThread::GetCurrentThreadPriority() < +@@ -585,7 +597,7 @@ int BrowserMainLoop::EarlyInitialization() { + #endif // !BUILDFLAG(IS_MAC) + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // We use quite a few file descriptors for our IPC as well as disk the disk + // cache,and the default limit on the Mac is low (256), so bump it up. + diff --git a/devel/electron18/files/patch-content_browser_child__process__launcher__helper__linux.cc b/devel/electron18/files/patch-content_browser_child__process__launcher__helper__linux.cc new file mode 100644 index 000000000000..416faa8905ac --- /dev/null +++ b/devel/electron18/files/patch-content_browser_child__process__launcher__helper__linux.cc @@ -0,0 +1,92 @@ +--- content/browser/child_process_launcher_helper_linux.cc.orig 2022-05-20 04:30:53 UTC ++++ content/browser/child_process_launcher_helper_linux.cc +@@ -19,7 +19,9 @@ + #include "content/public/common/result_codes.h" + #include "content/public/common/sandboxed_process_launcher_delegate.h" + #include "content/public/common/zygote/sandbox_support_linux.h" ++#if !BUILDFLAG(IS_BSD) + #include "content/public/common/zygote/zygote_handle.h" ++#endif + #include "sandbox/policy/linux/sandbox_linux.h" + + namespace content { +@@ -50,6 +52,7 @@ bool ChildProcessLauncherHelper::BeforeLaunchOnLaunche + options->fds_to_remap = files_to_register.GetMappingWithIDAdjustment( + base::GlobalDescriptors::kBaseDescriptor); + ++#if !BUILDFLAG(IS_BSD) + if (GetProcessType() == switches::kRendererProcess) { + const int sandbox_fd = SandboxHostLinux::GetInstance()->GetChildSocket(); + options->fds_to_remap.push_back(std::make_pair(sandbox_fd, GetSandboxFD())); +@@ -66,6 +69,7 @@ bool ChildProcessLauncherHelper::BeforeLaunchOnLaunche + options->allow_new_privs = true; + } + } ++#endif + + options->environment = delegate_->GetEnvironment(); + +@@ -80,6 +84,7 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThr + int* launch_result) { + *is_synchronous_launch = true; + ++#if !BUILDFLAG(IS_BSD) + ZygoteHandle zygote_handle = + base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kNoZygote) + ? nullptr +@@ -93,7 +98,6 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThr + GetProcessType()); + *launch_result = LAUNCH_RESULT_SUCCESS; + +-#if !BUILDFLAG(IS_OPENBSD) + if (handle) { + // It could be a renderer process or an utility process. + int oom_score = content::kMiscOomScore; +@@ -102,13 +106,13 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThr + oom_score = content::kLowestRendererOomScore; + ZygoteHostImpl::GetInstance()->AdjustRendererOOMScore(handle, oom_score); + } +-#endif + + Process process; + process.process = base::Process(handle); + process.zygote = zygote_handle; + return process; + } ++#endif + + Process process; + process.process = base::LaunchProcess(*command_line(), options); +@@ -126,10 +130,14 @@ ChildProcessTerminationInfo ChildProcessLauncherHelper + const ChildProcessLauncherHelper::Process& process, + bool known_dead) { + ChildProcessTerminationInfo info; ++#if !BUILDFLAG(IS_BSD) + if (process.zygote) { + info.status = process.zygote->GetTerminationStatus( + process.process.Handle(), known_dead, &info.exit_code); + } else if (known_dead) { ++#else ++ if (known_dead) { ++#endif + info.status = base::GetKnownDeadTerminationStatus(process.process.Handle(), + &info.exit_code); + } else { +@@ -153,13 +161,17 @@ void ChildProcessLauncherHelper::ForceNormalProcessTer + DCHECK(CurrentlyOnProcessLauncherTaskRunner()); + process.process.Terminate(RESULT_CODE_NORMAL_EXIT, false); + // On POSIX, we must additionally reap the child. ++#if !BUILDFLAG(IS_BSD) + if (process.zygote) { + // If the renderer was created via a zygote, we have to proxy the reaping + // through the zygote process. + process.zygote->EnsureProcessTerminated(process.process.Handle()); + } else { ++#endif + base::EnsureProcessTerminated(std::move(process.process)); ++#if !BUILDFLAG(IS_BSD) + } ++#endif + } + + void ChildProcessLauncherHelper::SetProcessPriorityOnLauncherThread( diff --git a/devel/electron18/files/patch-content_browser_compositor_viz__process__transport__factory.cc b/devel/electron18/files/patch-content_browser_compositor_viz__process__transport__factory.cc new file mode 100644 index 000000000000..09dca355752d --- /dev/null +++ b/devel/electron18/files/patch-content_browser_compositor_viz__process__transport__factory.cc @@ -0,0 +1,11 @@ +--- content/browser/compositor/viz_process_transport_factory.cc.orig 2022-05-20 04:30:53 UTC ++++ content/browser/compositor/viz_process_transport_factory.cc +@@ -112,7 +112,7 @@ class HostDisplayClient : public viz::HostDisplayClien + // viz::HostDisplayClient: + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + void DidCompleteSwapWithNewSize(const gfx::Size& size) override { + compositor_->OnCompleteSwapWithNewSize(size); + } diff --git a/devel/electron18/files/patch-content_browser_compute__pressure_cpu__probe.cc b/devel/electron18/files/patch-content_browser_compute__pressure_cpu__probe.cc new file mode 100644 index 000000000000..8c1e6571306a --- /dev/null +++ b/devel/electron18/files/patch-content_browser_compute__pressure_cpu__probe.cc @@ -0,0 +1,10 @@ +--- content/browser/compute_pressure/cpu_probe.cc.orig 2022-05-19 03:45:28 UTC ++++ content/browser/compute_pressure/cpu_probe.cc +@@ -53,6 +53,7 @@ std::unique_ptr<CpuProbe> CpuProbe::Create() { + #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + return CpuProbeLinux::Create(); + #else ++ NOTIMPLEMENTED(); + return std::make_unique<NullCpuProbe>(); + #endif // BUILDFLAG(IS_ANDROID) + } diff --git a/devel/electron18/files/patch-content_browser_devtools_protocol_system__info__handler.cc b/devel/electron18/files/patch-content_browser_devtools_protocol_system__info__handler.cc new file mode 100644 index 000000000000..4a7039b9b578 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_devtools_protocol_system__info__handler.cc @@ -0,0 +1,11 @@ +--- content/browser/devtools/protocol/system_info_handler.cc.orig 2022-05-19 05:17:41 UTC ++++ content/browser/devtools/protocol/system_info_handler.cc +@@ -50,7 +50,7 @@ std::unique_ptr<SystemInfo::Size> GfxSizeToSystemInfoS + // Windows builds need more time -- see Issue 873112 and 1004472. + // Mac builds need more time - see Issue angleproject:6182. + #if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !defined(NDEBUG)) || \ +- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || defined(USE_OZONE) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || defined(USE_OZONE) || BUILDFLAG(IS_BSD) + static constexpr int kGPUInfoWatchdogTimeoutMultiplierOS = 3; + #else + static constexpr int kGPUInfoWatchdogTimeoutMultiplierOS = 1; diff --git a/devel/electron18/files/patch-content_browser_download_download__manager__impl.cc b/devel/electron18/files/patch-content_browser_download_download__manager__impl.cc new file mode 100644 index 000000000000..460a48e2436f --- /dev/null +++ b/devel/electron18/files/patch-content_browser_download_download__manager__impl.cc @@ -0,0 +1,29 @@ +--- content/browser/download/download_manager_impl.cc.orig 2022-05-19 05:17:41 UTC ++++ content/browser/download/download_manager_impl.cc +@@ -89,7 +89,7 @@ + #include "third_party/blink/public/common/storage_key/storage_key.h" + #include "url/origin.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/nix/xdg_util.h" + #endif + +@@ -217,7 +217,7 @@ class DownloadItemFactoryImpl : public download::Downl + } + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::FilePath GetTemporaryDownloadDirectory() { + std::unique_ptr<base::Environment> env(base::Environment::Create()); + return base::nix::GetXDGDirectory(env.get(), "XDG_DATA_HOME", ".local/share"); +@@ -653,7 +653,7 @@ bool DownloadManagerImpl::InterceptDownload( + + base::FilePath DownloadManagerImpl::GetDefaultDownloadDirectory() { + base::FilePath default_download_directory; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // TODO(thomasanderson,crbug.com/784010): Remove this when all Linux + // distros with versions of GTK lower than 3.14.7 are no longer + // supported. This should happen when support for Ubuntu Trusty and diff --git a/devel/electron18/files/patch-content_browser_font__access_font__enumeration__data__source.cc b/devel/electron18/files/patch-content_browser_font__access_font__enumeration__data__source.cc new file mode 100644 index 000000000000..89d7e369ba7d --- /dev/null +++ b/devel/electron18/files/patch-content_browser_font__access_font__enumeration__data__source.cc @@ -0,0 +1,29 @@ +--- content/browser/font_access/font_enumeration_data_source.cc.orig 2022-05-19 05:17:41 UTC ++++ content/browser/font_access/font_enumeration_data_source.cc +@@ -16,7 +16,7 @@ + #include "content/browser/font_access/font_enumeration_data_source_win.h" + #elif BUILDFLAG(IS_MAC) + #include "content/browser/font_access/font_enumeration_data_source_mac.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/browser/font_access/font_enumeration_data_source_linux.h" + #endif // BUILDFLAG(IS_WIN) + +@@ -61,7 +61,7 @@ std::unique_ptr<FontEnumerationDataSource> FontEnumera + return std::make_unique<FontEnumerationDataSourceWin>(); + #elif BUILDFLAG(IS_MAC) + return std::make_unique<FontEnumerationDataSourceMac>(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return std::make_unique<FontEnumerationDataSourceLinux>(); + #else + return std::make_unique<FontEnumerationDataSourceNull>(); +@@ -76,7 +76,7 @@ bool FontEnumerationDataSource::IsOsSupportedForTestin + return true; + #elif BUILDFLAG(IS_MAC) + return true; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return true; + #else + return false; diff --git a/devel/electron18/files/patch-content_browser_gpu_compositor__util.cc b/devel/electron18/files/patch-content_browser_gpu_compositor__util.cc new file mode 100644 index 000000000000..64e43c8ac0bf --- /dev/null +++ b/devel/electron18/files/patch-content_browser_gpu_compositor__util.cc @@ -0,0 +1,20 @@ +--- content/browser/gpu/compositor_util.cc.orig 2022-05-19 05:17:41 UTC ++++ content/browser/gpu/compositor_util.cc +@@ -145,7 +145,7 @@ const GpuFeatureData GetGpuFeatureData( + {"video_decode", + SafeGetFeatureStatus(gpu_feature_info, + gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE), +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + !base::FeatureList::IsEnabled(media::kVaapiVideoDecodeLinux), + #else + command_line.HasSwitch(switches::kDisableAcceleratedVideoDecode), +@@ -157,7 +157,7 @@ const GpuFeatureData GetGpuFeatureData( + {"video_encode", + SafeGetFeatureStatus(gpu_feature_info, + gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE), +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + !base::FeatureList::IsEnabled(media::kVaapiVideoEncodeLinux), + #else + command_line.HasSwitch(switches::kDisableAcceleratedVideoEncode), diff --git a/devel/electron18/files/patch-content_browser_gpu_gpu__process__host.cc b/devel/electron18/files/patch-content_browser_gpu_gpu__process__host.cc new file mode 100644 index 000000000000..0cb01c05a8ff --- /dev/null +++ b/devel/electron18/files/patch-content_browser_gpu_gpu__process__host.cc @@ -0,0 +1,28 @@ +--- content/browser/gpu/gpu_process_host.cc.orig 2022-05-20 04:30:53 UTC ++++ content/browser/gpu/gpu_process_host.cc +@@ -100,7 +100,7 @@ + #include "ui/ozone/public/ozone_switches.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/gfx/switches.h" + #endif + +@@ -253,6 +253,7 @@ static const char* const kSwitchNames[] = { + switches::kEnableBackgroundThreadPool, + switches::kEnableGpuRasterization, + switches::kEnableLogging, ++ switches::kDisableUnveil, + switches::kEnableDeJelly, + switches::kDeJellyScreenWidth, + switches::kDocumentTransitionSlowdownFactor, +@@ -290,7 +291,7 @@ static const char* const kSwitchNames[] = { + switches::kOzoneDumpFile, + switches::kDisableBufferBWCompression, + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + switches::kX11Display, + switches::kNoXshm, + #endif diff --git a/devel/electron18/files/patch-content_browser_media_media__keys__listener__manager__impl.cc b/devel/electron18/files/patch-content_browser_media_media__keys__listener__manager__impl.cc new file mode 100644 index 000000000000..2ece8f602e6a --- /dev/null +++ b/devel/electron18/files/patch-content_browser_media_media__keys__listener__manager__impl.cc @@ -0,0 +1,11 @@ +--- content/browser/media/media_keys_listener_manager_impl.cc.orig 2022-05-20 04:30:53 UTC ++++ content/browser/media/media_keys_listener_manager_impl.cc +@@ -237,7 +237,7 @@ void MediaKeysListenerManagerImpl::StartListeningForMe + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ +- BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + system_media_controls_ = system_media_controls::SystemMediaControls::Create( + media::AudioManager::GetGlobalAppName()); + #endif diff --git a/devel/electron18/files/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc b/devel/electron18/files/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc new file mode 100644 index 000000000000..e47570155ece --- /dev/null +++ b/devel/electron18/files/patch-content_browser_ppapi__plugin__process__host__receiver__bindings.cc @@ -0,0 +1,20 @@ +--- content/browser/ppapi_plugin_process_host_receiver_bindings.cc.orig 2022-05-19 03:45:28 UTC ++++ content/browser/ppapi_plugin_process_host_receiver_bindings.cc +@@ -8,7 +8,7 @@ + + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck + #include "content/browser/font_service.h" // nogncheck + #endif +@@ -17,7 +17,7 @@ namespace content { + + void PpapiPluginProcessHost::BindHostReceiver( + mojo::GenericPendingReceiver receiver) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) + ConnectToFontService(std::move(font_receiver)); + #endif diff --git a/devel/electron18/files/patch-content_browser_renderer__host_delegated__frame__host.cc b/devel/electron18/files/patch-content_browser_renderer__host_delegated__frame__host.cc new file mode 100644 index 000000000000..93f6a2a1fcd0 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_renderer__host_delegated__frame__host.cc @@ -0,0 +1,11 @@ +--- content/browser/renderer_host/delegated_frame_host.cc.orig 2022-05-19 05:17:42 UTC ++++ content/browser/renderer_host/delegated_frame_host.cc +@@ -288,7 +288,7 @@ void DelegatedFrameHost::EmbedSurface( + + if (!primary_surface_id || + primary_surface_id->local_surface_id() != local_surface_id_) { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // On Windows and Linux, we would like to produce new content as soon as + // possible or the OS will create an additional black gutter. Until we can + // block resize on surface synchronization on these platforms, we will not diff --git a/devel/electron18/files/patch-content_browser_renderer__host_input_input__device__change__observer.cc b/devel/electron18/files/patch-content_browser_renderer__host_input_input__device__change__observer.cc new file mode 100644 index 000000000000..bf96d02feff0 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_renderer__host_input_input__device__change__observer.cc @@ -0,0 +1,29 @@ +--- content/browser/renderer_host/input/input_device_change_observer.cc.orig 2022-05-19 03:45:28 UTC ++++ content/browser/renderer_host/input/input_device_change_observer.cc +@@ -9,7 +9,7 @@ + + #if BUILDFLAG(IS_WIN) + #include "ui/events/devices/input_device_observer_win.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/events/devices/device_data_manager.h" + #elif BUILDFLAG(IS_ANDROID) + #include "ui/events/devices/input_device_observer_android.h" +@@ -21,7 +21,7 @@ InputDeviceChangeObserver::InputDeviceChangeObserver(R + render_view_host_impl_ = rvhi; + #if BUILDFLAG(IS_WIN) + ui::InputDeviceObserverWin::GetInstance()->AddObserver(this); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + ui::DeviceDataManager::GetInstance()->AddObserver(this); + #elif BUILDFLAG(IS_ANDROID) + ui::InputDeviceObserverAndroid::GetInstance()->AddObserver(this); +@@ -31,7 +31,7 @@ InputDeviceChangeObserver::InputDeviceChangeObserver(R + InputDeviceChangeObserver::~InputDeviceChangeObserver() { + #if BUILDFLAG(IS_WIN) + ui::InputDeviceObserverWin::GetInstance()->RemoveObserver(this); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + ui::DeviceDataManager::GetInstance()->RemoveObserver(this); + #elif BUILDFLAG(IS_ANDROID) + ui::InputDeviceObserverAndroid::GetInstance()->RemoveObserver(this); diff --git a/devel/electron18/files/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc b/devel/electron18/files/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc new file mode 100644 index 000000000000..9b4dea13c5dc --- /dev/null +++ b/devel/electron18/files/patch-content_browser_renderer__host_pepper_pepper__file__io__host.cc @@ -0,0 +1,20 @@ +--- content/browser/renderer_host/pepper/pepper_file_io_host.cc.orig 2022-05-19 05:17:42 UTC ++++ content/browser/renderer_host/pepper/pepper_file_io_host.cc +@@ -456,7 +456,7 @@ void PepperFileIOHost::OnLocalFileOpened( + ppapi::host::ReplyMessageContext reply_context, + const base::FilePath& path, + base::File::Error error_code) { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Quarantining a file before its contents are available is only supported on + // Windows and Linux. + if (!FileOpenForWrite(open_flags_) || error_code != base::File::FILE_OK) { +@@ -490,7 +490,7 @@ void PepperFileIOHost::OnLocalFileOpened( + #endif + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void PepperFileIOHost::OnLocalFileQuarantined( + ppapi::host::ReplyMessageContext reply_context, + const base::FilePath& path, diff --git a/devel/electron18/files/patch-content_browser_renderer__host_render__message__filter.cc b/devel/electron18/files/patch-content_browser_renderer__host_render__message__filter.cc new file mode 100644 index 000000000000..28f061dc74c5 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_renderer__host_render__message__filter.cc @@ -0,0 +1,29 @@ +--- content/browser/renderer_host/render_message_filter.cc.orig 2022-05-19 05:17:42 UTC ++++ content/browser/renderer_host/render_message_filter.cc +@@ -67,7 +67,7 @@ + #if BUILDFLAG(IS_MAC) + #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/linux_util.h" + #include "base/threading/platform_thread.h" + #endif +@@ -129,7 +129,7 @@ void RenderMessageFilter::GenerateFrameRoutingID( + std::move(callback).Run(routing_id, frame_token, devtools_frame_token); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void RenderMessageFilter::SetThreadPriorityOnFileThread( + base::PlatformThreadId ns_tid, + base::ThreadPriority priority) { +@@ -150,7 +150,7 @@ void RenderMessageFilter::SetThreadPriorityOnFileThrea + } + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void RenderMessageFilter::SetThreadPriority(int32_t ns_tid, + base::ThreadPriority priority) { + constexpr base::TaskTraits kTraits = { diff --git a/devel/electron18/files/patch-content_browser_renderer__host_render__message__filter.h b/devel/electron18/files/patch-content_browser_renderer__host_render__message__filter.h new file mode 100644 index 000000000000..28262478d813 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_renderer__host_render__message__filter.h @@ -0,0 +1,19 @@ +--- content/browser/renderer_host/render_message_filter.h.orig 2022-05-19 03:45:28 UTC ++++ content/browser/renderer_host/render_message_filter.h +@@ -78,14 +78,14 @@ class RenderMessageFilter + void GenerateRoutingID(GenerateRoutingIDCallback routing_id) override; + void GenerateFrameRoutingID(GenerateFrameRoutingIDCallback callback) override; + void HasGpuProcess(HasGpuProcessCallback callback) override; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void SetThreadPriority(int32_t ns_tid, + base::ThreadPriority priority) override; + #endif + + void OnResolveProxy(const GURL& url, IPC::Message* reply_msg); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void SetThreadPriorityOnFileThread(base::PlatformThreadId ns_tid, + base::ThreadPriority priority); + #endif diff --git a/devel/electron18/files/patch-content_browser_renderer__host_render__process__host__impl.cc b/devel/electron18/files/patch-content_browser_renderer__host_render__process__host__impl.cc new file mode 100644 index 000000000000..322c1584bf19 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_renderer__host_render__process__host__impl.cc @@ -0,0 +1,37 @@ +--- content/browser/renderer_host/render_process_host_impl.cc.orig 2022-05-20 04:30:53 UTC ++++ content/browser/renderer_host/render_process_host_impl.cc +@@ -209,7 +209,7 @@ + #include "third_party/blink/public/mojom/android_font_lookup/android_font_lookup.mojom.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <sys/resource.h> + + #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck +@@ -1229,7 +1229,7 @@ static constexpr size_t kUnknownPlatformProcessLimit = + // to indicate failure and std::numeric_limits<size_t>::max() to indicate + // unlimited. + size_t GetPlatformProcessLimit() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + struct rlimit limit; + if (getrlimit(RLIMIT_NPROC, &limit) != 0) + return kUnknownPlatformProcessLimit; +@@ -1316,7 +1316,7 @@ class RenderProcessHostImpl::IOThreadHostImpl : public + return; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) { + ConnectToFontService(std::move(font_receiver)); + return; +@@ -3340,6 +3340,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLin + switches::kDisableSpeechAPI, + switches::kDisableThreadedCompositing, + switches::kDisableTouchDragDrop, ++ switches::kDisableUnveil, + switches::kDisableV8IdleTasks, + switches::kDisableVideoCaptureUseGpuMemoryBuffer, + switches::kDisableWebGLImageChromium, diff --git a/devel/electron18/files/patch-content_browser_renderer__host_render__process__host__impl.h b/devel/electron18/files/patch-content_browser_renderer__host_render__process__host__impl.h new file mode 100644 index 000000000000..87f6010f972b --- /dev/null +++ b/devel/electron18/files/patch-content_browser_renderer__host_render__process__host__impl.h @@ -0,0 +1,11 @@ +--- content/browser/renderer_host/render_process_host_impl.h.orig 2022-05-19 05:17:42 UTC ++++ content/browser/renderer_host/render_process_host_impl.h +@@ -465,7 +465,7 @@ class CONTENT_EXPORT RenderProcessHostImpl + // Sets this RenderProcessHost to be guest only. For Testing only. + void SetForGuestsOnlyForTesting(); + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + // Launch the zygote early in the browser startup. + static void EarlyZygoteLaunch(); + #endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_MAC) diff --git a/devel/electron18/files/patch-content_browser_renderer__host_render__view__host__impl.cc b/devel/electron18/files/patch-content_browser_renderer__host_render__view__host__impl.cc new file mode 100644 index 000000000000..640fce0beae8 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_renderer__host_render__view__host__impl.cc @@ -0,0 +1,11 @@ +--- content/browser/renderer_host/render_view_host_impl.cc.orig 2022-05-20 04:30:53 UTC ++++ content/browser/renderer_host/render_view_host_impl.cc +@@ -259,7 +259,7 @@ void RenderViewHostImpl::GetPlatformSpecificPrefs( + display::win::ScreenWin::GetSystemMetricsInDIP(SM_CYVSCROLL); + prefs->arrow_bitmap_width_horizontal_scroll_bar_in_dips = + display::win::ScreenWin::GetSystemMetricsInDIP(SM_CXHSCROLL); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + prefs->system_font_family_name = gfx::Font().GetFontName(); + #elif BUILDFLAG(IS_FUCHSIA) + // Make Blink's "focus ring" invisible. The focus ring is a hairline border diff --git a/devel/electron18/files/patch-content_browser_renderer__host_render__widget__host__view__aura.cc b/devel/electron18/files/patch-content_browser_renderer__host_render__widget__host__view__aura.cc new file mode 100644 index 000000000000..ebffa8bd0df1 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_renderer__host_render__widget__host__view__aura.cc @@ -0,0 +1,47 @@ +--- content/browser/renderer_host/render_widget_host_view_aura.cc.orig 2022-05-20 04:30:53 UTC ++++ content/browser/renderer_host/render_widget_host_view_aura.cc +@@ -115,7 +115,7 @@ + #include "ui/gfx/gdi_util.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "content/browser/accessibility/browser_accessibility_auralinux.h" + #include "ui/base/ime/linux/text_edit_command_auralinux.h" + #include "ui/base/ime/linux/text_edit_key_bindings_delegate_auralinux.h" +@@ -453,7 +453,7 @@ gfx::NativeViewAccessible RenderWidgetHostViewAura::Ge + if (manager) + return ToBrowserAccessibilityWin(manager->GetRoot())->GetCOM(); + +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + BrowserAccessibilityManager* manager = + host()->GetOrCreateRootBrowserAccessibilityManager(); + if (manager && manager->GetRoot()) +@@ -1576,7 +1576,7 @@ bool RenderWidgetHostViewAura::ShouldDoLearning() { + return GetTextInputManager() && GetTextInputManager()->should_do_learning(); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool RenderWidgetHostViewAura::SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) { +@@ -2412,7 +2412,7 @@ bool RenderWidgetHostViewAura::NeedsInputGrab() { + } + + bool RenderWidgetHostViewAura::NeedsMouseCapture() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + return NeedsInputGrab(); + #else + return false; +@@ -2604,7 +2604,7 @@ void RenderWidgetHostViewAura::ForwardKeyboardEventWit + if (!target_host) + return; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + ui::TextEditKeyBindingsDelegateAuraLinux* keybinding_delegate = + ui::GetTextEditKeyBindingsDelegate(); + std::vector<ui::TextEditCommandAuraLinux> commands; diff --git a/devel/electron18/files/patch-content_browser_renderer__host_render__widget__host__view__aura.h b/devel/electron18/files/patch-content_browser_renderer__host_render__widget__host__view__aura.h new file mode 100644 index 000000000000..bcf66083a165 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_renderer__host_render__widget__host__view__aura.h @@ -0,0 +1,11 @@ +--- content/browser/renderer_host/render_widget_host_view_aura.h.orig 2022-05-19 05:17:42 UTC ++++ content/browser/renderer_host/render_widget_host_view_aura.h +@@ -243,7 +243,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAura + ukm::SourceId GetClientSourceForMetrics() const override; + bool ShouldDoLearning() override; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override; diff --git a/devel/electron18/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc b/devel/electron18/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc new file mode 100644 index 000000000000..ca90a6825ca0 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc @@ -0,0 +1,11 @@ +--- content/browser/renderer_host/render_widget_host_view_event_handler.cc.orig 2022-05-19 03:45:28 UTC ++++ content/browser/renderer_host/render_widget_host_view_event_handler.cc +@@ -596,7 +596,7 @@ bool RenderWidgetHostViewEventHandler::CanRendererHand + if (event->type() == ui::ET_MOUSE_EXITED) { + if (mouse_locked || selection_popup) + return false; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Don't forward the mouse leave message which is received when the context + // menu is displayed by the page. This confuses the page and causes state + // changes. diff --git a/devel/electron18/files/patch-content_browser_sandbox__host__linux.cc b/devel/electron18/files/patch-content_browser_sandbox__host__linux.cc new file mode 100644 index 000000000000..c732d21c57e5 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_sandbox__host__linux.cc @@ -0,0 +1,18 @@ +--- content/browser/sandbox_host_linux.cc.orig 2022-05-11 07:00:38 UTC ++++ content/browser/sandbox_host_linux.cc +@@ -45,6 +45,7 @@ void SandboxHostLinux::Init() { + // Instead, it replies on a temporary socket provided by the caller. + PCHECK(0 == shutdown(browser_socket, SHUT_WR)) << "shutdown"; + ++#if !defined(OS_BSD) + int pipefds[2]; + CHECK(0 == pipe(pipefds)); + const int child_lifeline_fd = pipefds[0]; +@@ -55,6 +56,7 @@ void SandboxHostLinux::Init() { + ipc_thread_ = std::make_unique<base::DelegateSimpleThread>( + ipc_handler_.get(), "sandbox_ipc_thread"); + ipc_thread_->Start(); ++#endif + } + + } // namespace content diff --git a/devel/electron18/files/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc b/devel/electron18/files/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc new file mode 100644 index 000000000000..b2d3ee9118a5 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_scheduler_responsiveness_jank__monitor__impl.cc @@ -0,0 +1,11 @@ +--- content/browser/scheduler/responsiveness/jank_monitor_impl.cc.orig 2022-05-19 05:17:42 UTC ++++ content/browser/scheduler/responsiveness/jank_monitor_impl.cc +@@ -333,7 +333,7 @@ void JankMonitorImpl::ThreadExecutionState::DidRunTask + // in context menus, among others). Simply ignore the mismatches for now. + // See https://crbug.com/929813 for the details of why the mismatch + // happens. +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && defined(USE_OZONE) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) && defined(USE_OZONE) + task_execution_metadata_.clear(); + #endif + return; diff --git a/devel/electron18/files/patch-content_browser_scheduler_responsiveness_native__event__observer.cc b/devel/electron18/files/patch-content_browser_scheduler_responsiveness_native__event__observer.cc new file mode 100644 index 000000000000..659e32e2e3d0 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_scheduler_responsiveness_native__event__observer.cc @@ -0,0 +1,20 @@ +--- content/browser/scheduler/responsiveness/native_event_observer.cc.orig 2022-05-19 03:45:28 UTC ++++ content/browser/scheduler/responsiveness/native_event_observer.cc +@@ -15,7 +15,7 @@ + + #include "ui/events/platform/platform_event_source.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/aura/env.h" + #include "ui/events/event.h" + #endif +@@ -39,7 +39,7 @@ NativeEventObserver::~NativeEventObserver() { + DeregisterObserver(); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void NativeEventObserver::RegisterObserver() { + aura::Env::GetInstance()->AddWindowEventDispatcherObserver(this); + } diff --git a/devel/electron18/files/patch-content_browser_scheduler_responsiveness_native__event__observer.h b/devel/electron18/files/patch-content_browser_scheduler_responsiveness_native__event__observer.h new file mode 100644 index 000000000000..97e7bc1ed639 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_scheduler_responsiveness_native__event__observer.h @@ -0,0 +1,47 @@ +--- content/browser/scheduler/responsiveness/native_event_observer.h.orig 2022-05-19 03:45:28 UTC ++++ content/browser/scheduler/responsiveness/native_event_observer.h +@@ -15,7 +15,7 @@ + #include "content/public/browser/native_event_processor_observer_mac.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/aura/window_event_dispatcher_observer.h" + #endif + +@@ -40,7 +40,7 @@ namespace responsiveness { + class CONTENT_EXPORT NativeEventObserver + #if BUILDFLAG(IS_MAC) + : public NativeEventProcessorObserver +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + : public aura::WindowEventDispatcherObserver + #elif BUILDFLAG(IS_WIN) + : public base::MessagePumpForUI::Observer +@@ -57,7 +57,7 @@ class CONTENT_EXPORT NativeEventObserver + NativeEventObserver(WillRunEventCallback will_run_event_callback, + DidRunEventCallback did_run_event_callback); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + NativeEventObserver(const NativeEventObserver&) = delete; + NativeEventObserver& operator=(const NativeEventObserver&) = delete; +@@ -73,7 +73,7 @@ class CONTENT_EXPORT NativeEventObserver + // Exposed for tests. + void WillRunNativeEvent(const void* opaque_identifier) override; + void DidRunNativeEvent(const void* opaque_identifier) override; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // aura::WindowEventDispatcherObserver overrides: + void OnWindowEventDispatcherStartedProcessing( + aura::WindowEventDispatcher* dispatcher, +@@ -90,7 +90,7 @@ class CONTENT_EXPORT NativeEventObserver + void RegisterObserver(); + void DeregisterObserver(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + struct EventInfo { + const void* unique_id; + }; diff --git a/devel/electron18/files/patch-content_browser_utility__process__host__receiver__bindings.cc b/devel/electron18/files/patch-content_browser_utility__process__host__receiver__bindings.cc new file mode 100644 index 000000000000..1b911232f6c2 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_utility__process__host__receiver__bindings.cc @@ -0,0 +1,20 @@ +--- content/browser/utility_process_host_receiver_bindings.cc.orig 2022-05-19 03:45:28 UTC ++++ content/browser/utility_process_host_receiver_bindings.cc +@@ -10,7 +10,7 @@ + #include "content/public/browser/content_browser_client.h" + #include "content/public/common/content_client.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck + #include "content/browser/font_service.h" // nogncheck + #endif +@@ -19,7 +19,7 @@ namespace content { + + void UtilityProcessHost::BindHostReceiver( + mojo::GenericPendingReceiver receiver) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) { + ConnectToFontService(std::move(font_receiver)); + return; diff --git a/devel/electron18/files/patch-content_browser_utility__sandbox__delegate.cc b/devel/electron18/files/patch-content_browser_utility__sandbox__delegate.cc new file mode 100644 index 000000000000..f6cc0166bc87 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_utility__sandbox__delegate.cc @@ -0,0 +1,11 @@ +--- content/browser/utility_sandbox_delegate.cc.orig 2022-05-19 05:17:42 UTC ++++ content/browser/utility_sandbox_delegate.cc +@@ -62,7 +62,7 @@ UtilitySandboxedProcessLauncherDelegate:: + #if BUILDFLAG(ENABLE_PLUGINS) + sandbox_type_ == sandbox::mojom::Sandbox::kPpapi || + #endif +-#if BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + sandbox_type_ == sandbox::mojom::Sandbox::kVideoCapture || + #endif + #if BUILDFLAG(IS_CHROMEOS_ASH) diff --git a/devel/electron18/files/patch-content_browser_v8__snapshot__files.cc b/devel/electron18/files/patch-content_browser_v8__snapshot__files.cc new file mode 100644 index 000000000000..ed7f5624b23a --- /dev/null +++ b/devel/electron18/files/patch-content_browser_v8__snapshot__files.cc @@ -0,0 +1,11 @@ +--- content/browser/v8_snapshot_files.cc.orig 2022-05-19 03:45:28 UTC ++++ content/browser/v8_snapshot_files.cc +@@ -10,7 +10,7 @@ + namespace content { + + std::map<std::string, base::FilePath> GetV8SnapshotFilesToPreload() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #if defined(USE_V8_CONTEXT_SNAPSHOT) + return {{kV8ContextSnapshotDataDescriptor, + base::FilePath(FILE_PATH_LITERAL(V8_CONTEXT_SNAPSHOT_FILENAME))}}; diff --git a/devel/electron18/files/patch-content_browser_web__contents_web__contents__view__aura.cc b/devel/electron18/files/patch-content_browser_web__contents_web__contents__view__aura.cc new file mode 100644 index 000000000000..9b486bafaab3 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_web__contents_web__contents__view__aura.cc @@ -0,0 +1,29 @@ +--- content/browser/web_contents/web_contents_view_aura.cc.orig 2022-05-20 04:30:53 UTC ++++ content/browser/web_contents/web_contents_view_aura.cc +@@ -159,7 +159,7 @@ class WebDragSourceAura : public content::WebContentsO + raw_ptr<aura::Window> window_; + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Fill out the OSExchangeData with a file contents, synthesizing a name if + // necessary. + void PrepareDragForFileContents(const DropData& drop_data, +@@ -242,7 +242,7 @@ void PrepareDragData(const DropData& drop_data, + if (!drop_data.download_metadata.empty()) + PrepareDragForDownload(drop_data, provider, web_contents); + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // We set the file contents before the URL because the URL also sets file + // contents (to a .URL shortcut). We want to prefer file content data over + // a shortcut so we add it first. +@@ -1321,7 +1321,7 @@ void WebContentsViewAura::OnMouseEvent(ui::MouseEvent* + // Linux window managers like to handle raise-on-click themselves. If we + // raise-on-click manually, this may override user settings that prevent + // focus-stealing. +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + // It is possible for the web-contents to be destroyed while it is being + // activated. Use a weak-ptr to track whether that happened or not. + // More in https://crbug.com/1040725 diff --git a/devel/electron18/files/patch-content_browser_webui_web__ui__main__frame__observer.cc b/devel/electron18/files/patch-content_browser_webui_web__ui__main__frame__observer.cc new file mode 100644 index 000000000000..a4e54fc96be2 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_webui_web__ui__main__frame__observer.cc @@ -0,0 +1,38 @@ +--- content/browser/webui/web_ui_main_frame_observer.cc.orig 2022-05-19 05:17:42 UTC ++++ content/browser/webui/web_ui_main_frame_observer.cc +@@ -12,7 +12,7 @@ + #include "content/browser/webui/web_ui_impl.h" + #include "content/public/browser/navigation_handle.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/callback_helpers.h" + #include "base/feature_list.h" + #include "base/logging.h" +@@ -31,7 +31,7 @@ namespace content { + + namespace { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Remove the pieces of the URL we don't want to send back with the error + // reports. In particular, do not send query or fragments as those can have + // privacy-sensitive information in them. +@@ -67,7 +67,7 @@ void WebUIMainFrameObserver::DidFinishNavigation( + web_ui_->DisallowJavascriptOnAllHandlers(); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void WebUIMainFrameObserver::OnDidAddMessageToConsole( + RenderFrameHost* source_frame, + blink::mojom::ConsoleMessageLevel log_level, +@@ -175,7 +175,7 @@ void WebUIMainFrameObserver::ReadyToCommitNavigation( + + // TODO(crbug.com/1129544) This is currently disabled due to Windows DLL + // thunking issues. Fix & re-enable. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + MaybeEnableWebUIJavaScriptErrorReporting(navigation_handle); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + } diff --git a/devel/electron18/files/patch-content_browser_webui_web__ui__main__frame__observer.h b/devel/electron18/files/patch-content_browser_webui_web__ui__main__frame__observer.h new file mode 100644 index 000000000000..5efe54b5ea37 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_webui_web__ui__main__frame__observer.h @@ -0,0 +1,20 @@ +--- content/browser/webui/web_ui_main_frame_observer.h.orig 2022-05-19 03:45:28 UTC ++++ content/browser/webui/web_ui_main_frame_observer.h +@@ -45,7 +45,7 @@ class CONTENT_EXPORT WebUIMainFrameObserver : public W + + // TODO(crbug.com/1129544) This is currently disabled due to Windows DLL + // thunking issues. Fix & re-enable. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On official Google builds, capture and report JavaScript error messages on + // WebUI surfaces back to Google. This allows us to fix JavaScript errors and + // exceptions. +@@ -61,7 +61,7 @@ class CONTENT_EXPORT WebUIMainFrameObserver : public W + void ReadyToCommitNavigation(NavigationHandle* navigation_handle) override; + + private: +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void MaybeEnableWebUIJavaScriptErrorReporting( + NavigationHandle* navigation_handle); + diff --git a/devel/electron18/files/patch-content_browser_zygote__host_zygote__host__impl__linux.cc b/devel/electron18/files/patch-content_browser_zygote__host_zygote__host__impl__linux.cc new file mode 100644 index 000000000000..089d7ea17697 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_zygote__host_zygote__host__impl__linux.cc @@ -0,0 +1,70 @@ +--- content/browser/zygote_host/zygote_host_impl_linux.cc.orig 2022-05-19 03:45:28 UTC ++++ content/browser/zygote_host/zygote_host_impl_linux.cc +@@ -28,6 +28,7 @@ namespace content { + + namespace { + ++#if !BUILDFLAG(IS_BSD) + // Receive a fixed message on fd and return the sender's PID. + // Returns true if the message received matches the expected message. + bool ReceiveFixedMessage(int fd, +@@ -49,6 +50,7 @@ bool ReceiveFixedMessage(int fd, + return false; + return true; + } ++#endif + + } // namespace + +@@ -58,9 +60,13 @@ ZygoteHost* ZygoteHost::GetInstance() { + } + + ZygoteHostImpl::ZygoteHostImpl() ++#if !BUILDFLAG(IS_BSD) + : use_namespace_sandbox_(false), + use_suid_sandbox_(false), + use_suid_sandbox_for_adj_oom_score_(false), ++#else ++ : ++#endif + sandbox_binary_(), + zygote_pids_lock_(), + zygote_pids_() {} +@@ -73,6 +79,7 @@ ZygoteHostImpl* ZygoteHostImpl::GetInstance() { + } + + void ZygoteHostImpl::Init(const base::CommandLine& command_line) { ++#if !BUILDFLAG(IS_BSD) + if (command_line.HasSwitch(sandbox::policy::switches::kNoSandbox)) { + return; + } +@@ -123,6 +130,7 @@ void ZygoteHostImpl::Init(const base::CommandLine& com + "you can try using --" + << sandbox::policy::switches::kNoSandbox << "."; + } ++#endif + } + + void ZygoteHostImpl::AddZygotePid(pid_t pid) { +@@ -147,6 +155,7 @@ pid_t ZygoteHostImpl::LaunchZygote( + base::CommandLine* cmd_line, + base::ScopedFD* control_fd, + base::FileHandleMappingVector additional_remapped_fds) { ++#if !BUILDFLAG(IS_BSD) + int fds[2]; + CHECK_EQ(0, socketpair(AF_UNIX, SOCK_SEQPACKET, 0, fds)); + CHECK(base::UnixDomainSocket::EnableReceiveProcessId(fds[0])); +@@ -214,9 +223,12 @@ pid_t ZygoteHostImpl::LaunchZygote( + + AddZygotePid(pid); + return pid; ++#else ++ return 0; ++#endif + } + +-#if !BUILDFLAG(IS_OPENBSD) ++#if !BUILDFLAG(IS_BSD) + void ZygoteHostImpl::AdjustRendererOOMScore(base::ProcessHandle pid, + int score) { + // 1) You can't change the oom_score_adj of a non-dumpable process diff --git a/devel/electron18/files/patch-content_browser_zygote__host_zygote__host__impl__linux.h b/devel/electron18/files/patch-content_browser_zygote__host_zygote__host__impl__linux.h new file mode 100644 index 000000000000..b906e008a309 --- /dev/null +++ b/devel/electron18/files/patch-content_browser_zygote__host_zygote__host__impl__linux.h @@ -0,0 +1,25 @@ +--- content/browser/zygote_host/zygote_host_impl_linux.h.orig 2021-09-14 01:51:56 UTC ++++ content/browser/zygote_host/zygote_host_impl_linux.h +@@ -42,8 +42,10 @@ class CONTENT_EXPORT ZygoteHostImpl : public ZygoteHos + base::ScopedFD* control_fd, + base::FileHandleMappingVector additional_remapped_fds); + ++#if !defined(OS_BSD) + void AdjustRendererOOMScore(base::ProcessHandle process_handle, + int score) override; ++#endif + bool HasZygote() { return !zygote_pids_.empty(); } + + private: +@@ -57,9 +59,11 @@ class CONTENT_EXPORT ZygoteHostImpl : public ZygoteHos + + int renderer_sandbox_status_; + ++#if !defined(OS_BSD) + bool use_namespace_sandbox_; + bool use_suid_sandbox_; + bool use_suid_sandbox_for_adj_oom_score_; ++#endif + std::string sandbox_binary_; + + // This lock protects the |zygote_pids_| set. diff --git a/devel/electron18/files/patch-content_child_child__process.cc b/devel/electron18/files/patch-content_child_child__process.cc new file mode 100644 index 000000000000..8b6b3b02be52 --- /dev/null +++ b/devel/electron18/files/patch-content_child_child__process.cc @@ -0,0 +1,11 @@ +--- content/child/child_process.cc.orig 2022-05-19 05:17:42 UTC ++++ content/child/child_process.cc +@@ -71,7 +71,7 @@ ChildProcess::ChildProcess(base::ThreadPriority io_thr + DCHECK(!g_lazy_child_process_tls.Pointer()->Get()); + g_lazy_child_process_tls.Pointer()->Set(this); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const base::CommandLine& command_line = + *base::CommandLine::ForCurrentProcess(); + const bool is_embedded_in_browser_process = diff --git a/devel/electron18/files/patch-content_common_BUILD.gn b/devel/electron18/files/patch-content_common_BUILD.gn new file mode 100644 index 000000000000..62b23574576f --- /dev/null +++ b/devel/electron18/files/patch-content_common_BUILD.gn @@ -0,0 +1,12 @@ +--- content/common/BUILD.gn.orig 2022-05-19 05:17:42 UTC ++++ content/common/BUILD.gn +@@ -406,6 +406,9 @@ if (is_linux || is_chromeos) { + public = [ "set_process_title_linux.h" ] + sources = [ "set_process_title_linux.cc" ] + deps = [ "//base" ] ++ if (is_bsd) { ++ sources -= [ "set_process_title_linux.cc" ] ++ } + } + } + diff --git a/devel/electron18/files/patch-content_common_font__list__unittest.cc b/devel/electron18/files/patch-content_common_font__list__unittest.cc new file mode 100644 index 000000000000..7eccb2dbeb63 --- /dev/null +++ b/devel/electron18/files/patch-content_common_font__list__unittest.cc @@ -0,0 +1,11 @@ +--- content/common/font_list_unittest.cc.orig 2022-05-19 05:17:42 UTC ++++ content/common/font_list_unittest.cc +@@ -51,7 +51,7 @@ TEST(FontList, GetFontList) { + EXPECT_TRUE(HasFontWithName(*fonts, "MS Gothic", "MS Gothic")); + EXPECT_TRUE(HasFontWithName(*fonts, "Segoe UI", "Segoe UI")); + EXPECT_TRUE(HasFontWithName(*fonts, "Verdana", "Verdana")); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + EXPECT_TRUE(HasFontWithName(*fonts, "Arimo", "Arimo")); + #else + EXPECT_TRUE(HasFontWithName(*fonts, "Arial", "Arial")); diff --git a/devel/electron18/files/patch-content_common_mojo__core__library__support.cc b/devel/electron18/files/patch-content_common_mojo__core__library__support.cc new file mode 100644 index 000000000000..0b3a8c43ab46 --- /dev/null +++ b/devel/electron18/files/patch-content_common_mojo__core__library__support.cc @@ -0,0 +1,11 @@ +--- content/common/mojo_core_library_support.cc.orig 2022-05-19 03:45:28 UTC ++++ content/common/mojo_core_library_support.cc +@@ -15,7 +15,7 @@ bool IsMojoCoreSharedLibraryEnabled() { + } + + absl::optional<base::FilePath> GetMojoCoreSharedLibraryPath() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const base::CommandLine& command_line = + *base::CommandLine::ForCurrentProcess(); + if (!command_line.HasSwitch(switches::kMojoCoreLibraryPath)) diff --git a/devel/electron18/files/patch-content_common_user__agent.cc b/devel/electron18/files/patch-content_common_user__agent.cc new file mode 100644 index 000000000000..2452b3d7c79c --- /dev/null +++ b/devel/electron18/files/patch-content_common_user__agent.cc @@ -0,0 +1,19 @@ +--- content/common/user_agent.cc.orig 2022-05-19 05:17:42 UTC ++++ content/common/user_agent.cc +@@ -245,6 +245,16 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(cons + "Android %s", os_version.c_str() + #elif BUILDFLAG(IS_FUCHSIA) + "Fuchsia" ++#elif BUILDFLAG(IS_BSD) ++#if defined(__x86_64__) ++ "Linux x86_64; %s %s", ++#elif defined(__aarch64__) ++ "Linux aarch64; %s %s", ++#else ++ "Linux i686; %s %s", ++#endif ++ unixinfo.sysname, // e.g. Linux ++ cpu_type.c_str() // e.g. i686 + #elif BUILDFLAG(IS_POSIX) + "%s %s", + unixinfo.sysname, // e.g. Linux diff --git a/devel/electron18/files/patch-content_gpu_gpu__main.cc b/devel/electron18/files/patch-content_gpu_gpu__main.cc new file mode 100644 index 000000000000..8f4862c456e5 --- /dev/null +++ b/devel/electron18/files/patch-content_gpu_gpu__main.cc @@ -0,0 +1,73 @@ +--- content/gpu/gpu_main.cc.orig 2022-05-20 04:30:53 UTC ++++ content/gpu/gpu_main.cc +@@ -86,7 +86,7 @@ + #include "sandbox/win/src/sandbox.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/gpu/gpu_sandbox_hook_linux.h" + #include "sandbox/policy/linux/sandbox_linux.h" + #include "sandbox/policy/sandbox_type.h" +@@ -108,7 +108,7 @@ namespace content { + + namespace { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool StartSandboxLinux(gpu::GpuWatchdogThread*, + const gpu::GPUInfo*, + const gpu::GpuPreferences&); +@@ -170,7 +170,7 @@ class ContentSandboxHelper : public gpu::GpuSandboxHel + bool EnsureSandboxInitialized(gpu::GpuWatchdogThread* watchdog_thread, + const gpu::GPUInfo* gpu_info, + const gpu::GpuPreferences& gpu_prefs) override { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return StartSandboxLinux(watchdog_thread, gpu_info, gpu_prefs); + #elif BUILDFLAG(IS_WIN) + return StartSandboxWindows(sandbox_info_); +@@ -270,7 +270,7 @@ int GpuMain(MainFunctionParams parameters) { + std::make_unique<base::SingleThreadTaskExecutor>( + gpu_preferences.message_pump_type); + } +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #error "Unsupported Linux platform." + #elif BUILDFLAG(IS_MAC) + // Cross-process CoreAnimation requires a CFRunLoop to function at all, and +@@ -412,17 +412,19 @@ int GpuMain(MainFunctionParams parameters) { + + namespace { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool StartSandboxLinux(gpu::GpuWatchdogThread* watchdog_thread, + const gpu::GPUInfo* gpu_info, + const gpu::GpuPreferences& gpu_prefs) { + TRACE_EVENT0("gpu,startup", "Initialize sandbox"); + ++#if !BUILDFLAG(IS_BSD) + if (watchdog_thread) { + // SandboxLinux needs to be able to ensure that the thread + // has really been stopped. + sandbox::policy::SandboxLinux::GetInstance()->StopThread(watchdog_thread); + } ++#endif + + // SandboxLinux::InitializeSandbox() must always be called + // with only one thread. +@@ -457,11 +459,13 @@ bool StartSandboxLinux(gpu::GpuWatchdogThread* watchdo + *base::CommandLine::ForCurrentProcess()), + base::BindOnce(GpuProcessPreSandboxHook), sandbox_options); + ++#if !BUILDFLAG(IS_BSD) + if (watchdog_thread) { + base::Thread::Options thread_options; + thread_options.timer_slack = base::TIMER_SLACK_MAXIMUM; + watchdog_thread->StartWithOptions(std::move(thread_options)); + } ++#endif + + return res; + } diff --git a/devel/electron18/files/patch-content_gpu_gpu__sandbox__hook__linux.cc b/devel/electron18/files/patch-content_gpu_gpu__sandbox__hook__linux.cc new file mode 100644 index 000000000000..362ae84f7046 --- /dev/null +++ b/devel/electron18/files/patch-content_gpu_gpu__sandbox__hook__linux.cc @@ -0,0 +1,70 @@ +--- content/gpu/gpu_sandbox_hook_linux.cc.orig 2022-05-19 05:17:42 UTC ++++ content/gpu/gpu_sandbox_hook_linux.cc +@@ -104,6 +104,7 @@ static const char kLibV4lEncPluginPath[] = + + constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE; + ++#if !defined(OS_BSD) + void AddV4L2GpuPermissions( + std::vector<BrokerFilePermission>* permissions, + const sandbox::policy::SandboxSeccompBPF::Options& options) { +@@ -420,8 +421,10 @@ std::vector<BrokerFilePermission> FilePermissionsForGp + AddStandardGpuPermissions(&permissions); + return permissions; + } ++#endif + + void LoadArmGpuLibraries() { ++#if !defined(OS_BSD) + // Preload the Mali library. + if (UseChromecastSandboxAllowlist()) { + for (const char* path : kAllowedChromecastPaths) { +@@ -463,6 +466,7 @@ void LoadArmGpuLibraries() { + dlopen(driver_paths[i], dlopen_flag); + } + } ++#endif + } + + bool LoadAmdGpuLibraries() { +@@ -526,12 +530,14 @@ void LoadV4L2Libraries( + } + + void LoadChromecastV4L2Libraries() { ++#if !defined(OS_BSD) + for (const char* path : kAllowedChromecastPaths) { + const std::string library_path(std::string(path) + + std::string("libvpcodec.so")); + if (dlopen(library_path.c_str(), dlopen_flag)) + break; + } ++#endif + } + + bool LoadLibrariesForGpu( +@@ -558,6 +564,7 @@ bool LoadLibrariesForGpu( + return true; + } + ++#if !defined(OS_BSD) + sandbox::syscall_broker::BrokerCommandSet CommandSetForGPU( + const sandbox::policy::SandboxLinux::Options& options) { + sandbox::syscall_broker::BrokerCommandSet command_set; +@@ -580,13 +587,17 @@ bool BrokerProcessPreSandboxHook( + SetProcessTitleFromCommandLine(nullptr); + return true; + } ++#endif + + } // namespace + + bool GpuProcessPreSandboxHook(sandbox::policy::SandboxLinux::Options options) { ++ NOTIMPLEMENTED(); ++#if !defined(OS_BSD) + sandbox::policy::SandboxLinux::GetInstance()->StartBrokerProcess( + CommandSetForGPU(options), FilePermissionsForGpu(options), + base::BindOnce(BrokerProcessPreSandboxHook), options); ++#endif + + if (!LoadLibrariesForGpu(options)) + return false; diff --git a/devel/electron18/files/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc b/devel/electron18/files/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc new file mode 100644 index 000000000000..5df628bcd37a --- /dev/null +++ b/devel/electron18/files/patch-content_ppapi__plugin_ppapi__blink__platform__impl.cc @@ -0,0 +1,29 @@ +--- content/ppapi_plugin/ppapi_blink_platform_impl.cc.orig 2022-05-19 03:45:28 UTC ++++ content/ppapi_plugin/ppapi_blink_platform_impl.cc +@@ -20,7 +20,7 @@ + + #if BUILDFLAG(IS_MAC) + #include "content/child/child_process_sandbox_support_impl_mac.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/child/child_process_sandbox_support_impl_linux.h" + #include "mojo/public/cpp/bindings/pending_remote.h" + #endif +@@ -35,7 +35,7 @@ typedef struct CGFont* CGFontRef; + namespace content { + + PpapiBlinkPlatformImpl::PpapiBlinkPlatformImpl() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + mojo::PendingRemote<font_service::mojom::FontService> font_service; + ChildThread::Get()->BindHostReceiver( + font_service.InitWithNewPipeAndPassReceiver()); +@@ -53,7 +53,7 @@ PpapiBlinkPlatformImpl::~PpapiBlinkPlatformImpl() { + void PpapiBlinkPlatformImpl::Shutdown() {} + + blink::WebSandboxSupport* PpapiBlinkPlatformImpl::GetSandboxSupport() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return sandbox_support_.get(); + #else + return nullptr; diff --git a/devel/electron18/files/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h b/devel/electron18/files/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h new file mode 100644 index 000000000000..36805d433b68 --- /dev/null +++ b/devel/electron18/files/patch-content_ppapi__plugin_ppapi__blink__platform__impl.h @@ -0,0 +1,25 @@ +--- content/ppapi_plugin/ppapi_blink_platform_impl.h.orig 2022-05-19 03:45:28 UTC ++++ content/ppapi_plugin/ppapi_blink_platform_impl.h +@@ -12,7 +12,7 @@ + #include "build/build_config.h" + #include "content/child/blink_platform_impl.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/services/font/public/cpp/font_loader.h" + #include "third_party/skia/include/core/SkRefCnt.h" + #endif +@@ -39,11 +39,11 @@ class PpapiBlinkPlatformImpl : public BlinkPlatformImp + blink::WebThemeEngine* ThemeEngine() override; + + private: +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + std::unique_ptr<blink::WebSandboxSupport> sandbox_support_; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + sk_sp<font_service::FontLoader> font_loader_; + #endif + }; diff --git a/devel/electron18/files/patch-content_ppapi__plugin_ppapi__plugin__main.cc b/devel/electron18/files/patch-content_ppapi__plugin_ppapi__plugin__main.cc new file mode 100644 index 000000000000..4922c664565e --- /dev/null +++ b/devel/electron18/files/patch-content_ppapi__plugin_ppapi__plugin__main.cc @@ -0,0 +1,23 @@ +--- content/ppapi_plugin/ppapi_plugin_main.cc.orig 2022-05-19 03:45:28 UTC ++++ content/ppapi_plugin/ppapi_plugin_main.cc +@@ -53,6 +53,11 @@ + #include "gin/v8_initializer.h" + #endif + ++#if BUILDFLAG(IS_OPENBSD) ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++#include "sandbox/policy/sandbox_type.h" ++#endif ++ + #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) + #include <stdlib.h> + #endif +@@ -136,7 +141,7 @@ int PpapiPluginMain(MainFunctionParams parameters) { + gin::V8Initializer::LoadV8Snapshot(); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_OPENBSD) + sandbox::policy::SandboxLinux::GetInstance()->InitializeSandbox( + sandbox::policy::SandboxTypeFromCommandLine(command_line), + sandbox::policy::SandboxLinux::PreSandboxHook(), diff --git a/devel/electron18/files/patch-content_public_browser_zygote__host_zygote__host__linux.h b/devel/electron18/files/patch-content_public_browser_zygote__host_zygote__host__linux.h new file mode 100644 index 000000000000..229951e7797c --- /dev/null +++ b/devel/electron18/files/patch-content_public_browser_zygote__host_zygote__host__linux.h @@ -0,0 +1,16 @@ +--- content/public/browser/zygote_host/zygote_host_linux.h.orig 2021-01-07 00:36:33 UTC ++++ content/public/browser/zygote_host/zygote_host_linux.h +@@ -30,11 +30,13 @@ class ZygoteHost { + // after the first render has been forked. + virtual int GetRendererSandboxStatus() = 0; + ++#if !defined(OS_BSD) + // Adjust the OOM score of the given renderer's PID. The allowed + // range for the score is [0, 1000], where higher values are more + // likely to be killed by the OOM killer. + virtual void AdjustRendererOOMScore(base::ProcessHandle process_handle, + int score) = 0; ++#endif + }; + + } // namespace content diff --git a/devel/electron18/files/patch-content_public_common_common__param__traits__macros.h b/devel/electron18/files/patch-content_public_common_common__param__traits__macros.h new file mode 100644 index 000000000000..8058b662fbc5 --- /dev/null +++ b/devel/electron18/files/patch-content_public_common_common__param__traits__macros.h @@ -0,0 +1,11 @@ +--- content/public/common/common_param_traits_macros.h.orig 2022-05-19 03:45:28 UTC ++++ content/public/common/common_param_traits_macros.h +@@ -128,7 +128,7 @@ IPC_STRUCT_TRAITS_BEGIN(blink::RendererPreferences) + IPC_STRUCT_TRAITS_MEMBER(accept_languages) + IPC_STRUCT_TRAITS_MEMBER(plugin_fullscreen_allowed) + IPC_STRUCT_TRAITS_MEMBER(caret_browsing_enabled) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + IPC_STRUCT_TRAITS_MEMBER(system_font_family_name) + #endif + #if BUILDFLAG(IS_WIN) diff --git a/devel/electron18/files/patch-content_public_common_content__features.cc b/devel/electron18/files/patch-content_public_common_content__features.cc new file mode 100644 index 000000000000..16ac4212b854 --- /dev/null +++ b/devel/electron18/files/patch-content_public_common_content__features.cc @@ -0,0 +1,50 @@ +--- content/public/common/content_features.cc.orig 2022-05-19 05:17:42 UTC ++++ content/public/common/content_features.cc +@@ -50,7 +50,7 @@ const base::Feature kAudioServiceOutOfProcess { + "AudioServiceOutOfProcess", + // TODO(crbug.com/1052397): Remove !IS_CHROMEOS_LACROS once lacros starts being + // built with OS_CHROMEOS instead of OS_LINUX. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) + base::FEATURE_ENABLED_BY_DEFAULT + #else +@@ -62,7 +62,7 @@ const base::Feature kAudioServiceOutOfProcess { + // kAudioServiceOutOfProcess feature is enabled. + const base::Feature kAudioServiceSandbox { + "AudioServiceSandbox", +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT +@@ -1030,7 +1030,7 @@ const base::Feature kWebAssemblyBaseline{"WebAssemblyB + const base::Feature kWebAssemblyCodeProtection{ + "WebAssemblyCodeProtection", base::FEATURE_ENABLED_BY_DEFAULT}; + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(ARCH_CPU_X86_64) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_X86_64) + // Use memory protection keys in userspace (PKU) (if available) to protect code + // JITed for WebAssembly. Fall back to traditional memory protection if + // WebAssemblyCodeProtection is also enabled. +@@ -1060,7 +1060,7 @@ const base::Feature kWebAssemblyTiering{"WebAssemblyTi + const base::Feature kWebAssemblyTrapHandler { + "WebAssemblyTrapHandler", + #if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_MAC)) && \ ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)) && \ + defined(ARCH_CPU_X86_64)) || \ + (BUILDFLAG(IS_MAC) && defined(ARCH_CPU_ARM64)) + base::FEATURE_ENABLED_BY_DEFAULT +@@ -1146,7 +1146,11 @@ const base::Feature kWebUIReportOnlyTrustedTypes{ + + // Controls whether the WebUSB API is enabled: + // https://wicg.github.io/webusb ++#if BUILDFLAG(IS_BSD) ++const base::Feature kWebUsb{"WebUSB", base::FEATURE_DISABLED_BY_DEFAULT}; ++#else + const base::Feature kWebUsb{"WebUSB", base::FEATURE_ENABLED_BY_DEFAULT}; ++#endif + + // Controls whether the WebXR Device API is enabled. + const base::Feature kWebXr{"WebXR", base::FEATURE_ENABLED_BY_DEFAULT}; diff --git a/devel/electron18/files/patch-content_public_common_content__features.h b/devel/electron18/files/patch-content_public_common_content__features.h new file mode 100644 index 000000000000..5293a6c8eb0d --- /dev/null +++ b/devel/electron18/files/patch-content_public_common_content__features.h @@ -0,0 +1,11 @@ +--- content/public/common/content_features.h.orig 2022-05-19 05:17:42 UTC ++++ content/public/common/content_features.h +@@ -258,7 +258,7 @@ CONTENT_EXPORT extern const base::Feature kV8VmFuture; + CONTENT_EXPORT extern const base::Feature kWebAppWindowControlsOverlay; + CONTENT_EXPORT extern const base::Feature kWebAssemblyBaseline; + CONTENT_EXPORT extern const base::Feature kWebAssemblyCodeProtection; +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(ARCH_CPU_X86_64) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_X86_64) + CONTENT_EXPORT extern const base::Feature kWebAssemblyCodeProtectionPku; + #endif // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && + // defined(ARCH_CPU_X86_64) diff --git a/devel/electron18/files/patch-content_public_common_content__switches.cc b/devel/electron18/files/patch-content_public_common_content__switches.cc new file mode 100644 index 000000000000..a69d9a9e3500 --- /dev/null +++ b/devel/electron18/files/patch-content_public_common_content__switches.cc @@ -0,0 +1,20 @@ +--- content/public/common/content_switches.cc.orig 2022-05-19 05:17:42 UTC ++++ content/public/common/content_switches.cc +@@ -383,6 +383,8 @@ const char kEnableGpuMemoryBufferVideoFrames[] = + // builds. + const char kEnableLogging[] = "enable-logging"; + ++const char kDisableUnveil[] = "disable-unveil"; ++ + // Enables the type, downlinkMax attributes of the NetInfo API. Also, enables + // triggering of change attribute of the NetInfo API when there is a change in + // the connection type. +@@ -981,7 +983,7 @@ const char kEnableAutomation[] = "enable-automation"; + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Allows sending text-to-speech requests to speech-dispatcher, a common + // Linux speech service. Because it's buggy, the user must explicitly + // enable it so that visiting a random webpage can't cause instability. diff --git a/devel/electron18/files/patch-content_public_common_content__switches.h b/devel/electron18/files/patch-content_public_common_content__switches.h new file mode 100644 index 000000000000..0790ea6e333d --- /dev/null +++ b/devel/electron18/files/patch-content_public_common_content__switches.h @@ -0,0 +1,19 @@ +--- content/public/common/content_switches.h.orig 2022-05-19 05:17:42 UTC ++++ content/public/common/content_switches.h +@@ -120,6 +120,7 @@ CONTENT_EXPORT extern const char kEnableBlinkTestFeatu + CONTENT_EXPORT extern const char kEnableGpuMemoryBufferVideoFrames[]; + CONTENT_EXPORT extern const char kEnableLCDText[]; + CONTENT_EXPORT extern const char kEnableLogging[]; ++CONTENT_EXPORT extern const char kDisableUnveil[]; + CONTENT_EXPORT extern const char kEnableNetworkInformationDownlinkMax[]; + CONTENT_EXPORT extern const char kEnableCanvas2DLayers[]; + CONTENT_EXPORT extern const char kEnableNewCanvas2DAPI[]; +@@ -267,7 +268,7 @@ CONTENT_EXPORT extern const char kRendererWaitForJavaD + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + CONTENT_EXPORT extern const char kEnableSpeechDispatcher[]; + #endif + diff --git a/devel/electron18/files/patch-content_public_common_use__zoom__for__dsf__policy.cc b/devel/electron18/files/patch-content_public_common_use__zoom__for__dsf__policy.cc new file mode 100644 index 000000000000..82b89efac9de --- /dev/null +++ b/devel/electron18/files/patch-content_public_common_use__zoom__for__dsf__policy.cc @@ -0,0 +1,11 @@ +--- content/public/common/use_zoom_for_dsf_policy.cc.orig 2022-05-19 05:17:42 UTC ++++ content/public/common/use_zoom_for_dsf_policy.cc +@@ -26,7 +26,7 @@ const base::Feature kUseZoomForDsfEnabledByDefault{ + + bool IsUseZoomForDSFEnabledByDefault() { + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return true; + #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) + return base::FeatureList::IsEnabled(kUseZoomForDsfEnabledByDefault); diff --git a/devel/electron18/files/patch-content_public_common_zygote_features.gni b/devel/electron18/files/patch-content_public_common_zygote_features.gni new file mode 100644 index 000000000000..161c46f349a1 --- /dev/null +++ b/devel/electron18/files/patch-content_public_common_zygote_features.gni @@ -0,0 +1,8 @@ +--- content/public/common/zygote/features.gni.orig 2021-01-07 00:36:33 UTC ++++ content/public/common/zygote/features.gni +@@ -2,4 +2,4 @@ + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + +-use_zygote_handle = is_posix && !is_android && !is_mac ++use_zygote_handle = is_posix && !is_android && !is_mac && !is_bsd diff --git a/devel/electron18/files/patch-content_public_test_mock__render__thread.cc b/devel/electron18/files/patch-content_public_test_mock__render__thread.cc new file mode 100644 index 000000000000..0e99c072327e --- /dev/null +++ b/devel/electron18/files/patch-content_public_test_mock__render__thread.cc @@ -0,0 +1,11 @@ +--- content/public/test/mock_render_thread.cc.orig 2022-05-19 05:17:42 UTC ++++ content/public/test/mock_render_thread.cc +@@ -64,7 +64,7 @@ class MockRenderMessageFilterImpl : public mojom::Rend + std::move(callback).Run(false); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void SetThreadPriority(int32_t platform_thread_id, + base::ThreadPriority thread_priority) override {} + #endif diff --git a/devel/electron18/files/patch-content_renderer_render__process__impl.cc b/devel/electron18/files/patch-content_renderer_render__process__impl.cc new file mode 100644 index 000000000000..da1a066b4dff --- /dev/null +++ b/devel/electron18/files/patch-content_renderer_render__process__impl.cc @@ -0,0 +1,29 @@ +--- content/renderer/render_process_impl.cc.orig 2022-05-19 05:17:42 UTC ++++ content/renderer/render_process_impl.cc +@@ -47,7 +47,7 @@ + #if BUILDFLAG(IS_WIN) + #include "base/win/win_util.h" + #endif +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(ARCH_CPU_X86_64) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_X86_64) + #include "v8/include/v8-wasm-trap-handler-posix.h" + #endif + +@@ -146,7 +146,7 @@ RenderProcessImpl::RenderProcessImpl() + SetV8FlagIfNotFeature(features::kWebAssemblyCodeProtection, + "--no-wasm-write-protect-code-memory"); + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(ARCH_CPU_X86_64) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_X86_64) + SetV8FlagIfFeature(features::kWebAssemblyCodeProtectionPku, + "--wasm-memory-protection-keys"); + SetV8FlagIfNotFeature(features::kWebAssemblyCodeProtectionPku, +@@ -227,7 +227,7 @@ RenderProcessImpl::RenderProcessImpl() + SetV8FlagIfFeature(features::kWebAssemblyDynamicTiering, + "--wasm-dynamic-tiering"); + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(ARCH_CPU_X86_64) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && defined(ARCH_CPU_X86_64) + if (base::FeatureList::IsEnabled(features::kWebAssemblyTrapHandler)) { + if (command_line->HasSwitch(switches::kEnableCrashpad) || + command_line->HasSwitch(switches::kEnableCrashReporter) || diff --git a/devel/electron18/files/patch-content_renderer_render__thread__impl.cc b/devel/electron18/files/patch-content_renderer_render__thread__impl.cc new file mode 100644 index 000000000000..d51dd7061479 --- /dev/null +++ b/devel/electron18/files/patch-content_renderer_render__thread__impl.cc @@ -0,0 +1,47 @@ +--- content/renderer/render_thread_impl.cc.orig 2022-05-20 04:30:53 UTC ++++ content/renderer/render_thread_impl.cc +@@ -189,7 +189,7 @@ + + #if BUILDFLAG(IS_MAC) + #include <malloc/malloc.h> +-#else ++#elif !BUILDFLAG(IS_OPENBSD) + #include <malloc.h> + #endif + +@@ -718,7 +718,7 @@ void RenderThreadImpl::Init() { + DCHECK(parsed_num_raster_threads) << string_value; + DCHECK_GT(num_raster_threads, 0); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + categorized_worker_pool_->SetBackgroundingCallback( + main_thread_scheduler_->DefaultTaskRunner(), + base::BindOnce( +@@ -741,7 +741,7 @@ void RenderThreadImpl::Init() { + base::DiscardableMemoryAllocator::SetInstance( + discardable_memory_allocator_.get()); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled( + blink::features::kBlinkCompositorUseDisplayThreadPriority)) { + render_message_filter()->SetThreadPriority( +@@ -1093,7 +1093,7 @@ media::GpuVideoAcceleratorFactories* RenderThreadImpl: + + const bool enable_video_decode_accelerator = + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FeatureList::IsEnabled(media::kVaapiVideoDecodeLinux) && + #else + !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode) && +@@ -1104,7 +1104,7 @@ media::GpuVideoAcceleratorFactories* RenderThreadImpl: + + const bool enable_video_encode_accelerator = + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FeatureList::IsEnabled(media::kVaapiVideoEncodeLinux) && + #else + !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoEncode) && diff --git a/devel/electron18/files/patch-content_renderer_renderer__blink__platform__impl.cc b/devel/electron18/files/patch-content_renderer_renderer__blink__platform__impl.cc new file mode 100644 index 000000000000..314c3ad58b83 --- /dev/null +++ b/devel/electron18/files/patch-content_renderer_renderer__blink__platform__impl.cc @@ -0,0 +1,48 @@ +--- content/renderer/renderer_blink_platform_impl.cc.orig 2022-05-20 04:30:53 UTC ++++ content/renderer/renderer_blink_platform_impl.cc +@@ -109,7 +109,7 @@ + + #if BUILDFLAG(IS_MAC) + #include "content/child/child_process_sandbox_support_impl_mac.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/child/child_process_sandbox_support_impl_linux.h" + #endif + +@@ -178,7 +178,7 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( + main_thread_scheduler_(main_thread_scheduler) { + // RenderThread may not exist in some tests. + if (RenderThreadImpl::current()) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + mojo::PendingRemote<font_service::mojom::FontService> font_service; + RenderThreadImpl::current()->BindHostReceiver( + font_service.InitWithNewPipeAndPassReceiver()); +@@ -188,7 +188,7 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( + #endif + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + if (sandboxEnabled()) { + #if BUILDFLAG(IS_MAC) + sandbox_support_ = std::make_unique<WebSandboxSupportMac>(); +@@ -283,7 +283,8 @@ RendererBlinkPlatformImpl::WrapSharedURLLoaderFactory( + /*terminate_sync_load_event=*/nullptr); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++// pledge ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD) + void RendererBlinkPlatformImpl::SetDisplayThreadPriority( + base::PlatformThreadId thread_id) { + if (RenderThreadImpl* render_thread = RenderThreadImpl::current()) { +@@ -298,7 +299,7 @@ blink::BlameContext* RendererBlinkPlatformImpl::GetTop + } + + blink::WebSandboxSupport* RendererBlinkPlatformImpl::GetSandboxSupport() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return sandbox_support_.get(); + #else + // These platforms do not require sandbox support. diff --git a/devel/electron18/files/patch-content_renderer_renderer__blink__platform__impl.h b/devel/electron18/files/patch-content_renderer_renderer__blink__platform__impl.h new file mode 100644 index 000000000000..942e53b7dd19 --- /dev/null +++ b/devel/electron18/files/patch-content_renderer_renderer__blink__platform__impl.h @@ -0,0 +1,29 @@ +--- content/renderer/renderer_blink_platform_impl.h.orig 2022-05-20 04:30:53 UTC ++++ content/renderer/renderer_blink_platform_impl.h +@@ -30,7 +30,7 @@ + #include "third_party/blink/public/mojom/cache_storage/cache_storage.mojom.h" + #include "third_party/blink/public/mojom/loader/code_cache.mojom.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/services/font/public/cpp/font_loader.h" // nogncheck + #include "third_party/skia/include/core/SkRefCnt.h" // nogncheck + #endif +@@ -279,7 +279,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : publi + void Collect3DContextInformation(blink::Platform::GraphicsInfo* gl_info, + const gpu::GPUInfo& gpu_info) const; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + std::unique_ptr<blink::WebSandboxSupport> sandbox_support_; + #endif + +@@ -307,7 +307,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : publi + mutable base::WaitableEvent io_thread_id_ready_event_; + base::PlatformThreadId io_thread_id_ = base::kInvalidThreadId; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + sk_sp<font_service::FontLoader> font_loader_; + #endif + diff --git a/devel/electron18/files/patch-content_renderer_renderer__main__platform__delegate__linux.cc b/devel/electron18/files/patch-content_renderer_renderer__main__platform__delegate__linux.cc new file mode 100644 index 000000000000..98f81c3625de --- /dev/null +++ b/devel/electron18/files/patch-content_renderer_renderer__main__platform__delegate__linux.cc @@ -0,0 +1,18 @@ +--- content/renderer/renderer_main_platform_delegate_linux.cc.orig 2022-05-19 03:45:28 UTC ++++ content/renderer/renderer_main_platform_delegate_linux.cc +@@ -44,6 +44,7 @@ bool RendererMainPlatformDelegate::EnableSandbox() { + // any renderer has been started. + // Here, we test that the status of SeccompBpf in the renderer is consistent + // with what SandboxLinux::GetStatus() said we would do. ++#if !defined(OS_BSD) + auto* linux_sandbox = sandbox::policy::SandboxLinux::GetInstance(); + if (linux_sandbox->GetStatus() & sandbox::policy::SandboxLinux::kSeccompBPF) { + CHECK(linux_sandbox->seccomp_bpf_started()); +@@ -65,6 +66,7 @@ bool RendererMainPlatformDelegate::EnableSandbox() { + CHECK_EQ(errno, EPERM); + } + #endif // __x86_64__ ++#endif + + return true; + } diff --git a/devel/electron18/files/patch-content_shell_BUILD.gn b/devel/electron18/files/patch-content_shell_BUILD.gn new file mode 100644 index 000000000000..2e4ad900d611 --- /dev/null +++ b/devel/electron18/files/patch-content_shell_BUILD.gn @@ -0,0 +1,11 @@ +--- content/shell/BUILD.gn.orig 2022-05-19 05:17:42 UTC ++++ content/shell/BUILD.gn +@@ -882,7 +882,7 @@ group("content_shell_crash_test") { + if (is_win) { + data_deps += [ "//build/win:copy_cdb_to_output" ] + } +- if (is_posix) { ++ if (is_posix && !is_bsd) { + data_deps += [ + "//third_party/breakpad:dump_syms", + "//third_party/breakpad:minidump_stackwalk", diff --git a/devel/electron18/files/patch-content_shell_app_shell__main__delegate.cc b/devel/electron18/files/patch-content_shell_app_shell__main__delegate.cc new file mode 100644 index 000000000000..1f6c2fd74dfa --- /dev/null +++ b/devel/electron18/files/patch-content_shell_app_shell__main__delegate.cc @@ -0,0 +1,11 @@ +--- content/shell/app/shell_main_delegate.cc.orig 2022-05-19 03:45:28 UTC ++++ content/shell/app/shell_main_delegate.cc +@@ -211,7 +211,7 @@ void ShellMainDelegate::PreSandboxStartup() { + // Reporting for sub-processes will be initialized in ZygoteForked. + if (process_type != switches::kZygoteProcess) { + crash_reporter::InitializeCrashpad(process_type.empty(), process_type); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + crash_reporter::SetFirstChanceExceptionHandler( + v8::TryHandleWebAssemblyTrapPosix); + #endif diff --git a/devel/electron18/files/patch-content_shell_browser_shell__browser__main__parts.cc b/devel/electron18/files/patch-content_shell_browser_shell__browser__main__parts.cc new file mode 100644 index 000000000000..d1561f4b870e --- /dev/null +++ b/devel/electron18/files/patch-content_shell_browser_shell__browser__main__parts.cc @@ -0,0 +1,20 @@ +--- content/shell/browser/shell_browser_main_parts.cc.orig 2022-05-19 05:17:42 UTC ++++ content/shell/browser/shell_browser_main_parts.cc +@@ -49,7 +49,7 @@ + #include "net/base/network_change_notifier.h" + #endif + +-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + #include "ui/base/ime/init/input_method_initializer.h" + #endif + +@@ -129,7 +129,7 @@ void ShellBrowserMainParts::PostCreateMainMessageLoop( + } + + int ShellBrowserMainParts::PreEarlyInitialization() { +-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + ui::InitializeInputMethodForTesting(); + #endif + #if BUILDFLAG(IS_ANDROID) diff --git a/devel/electron18/files/patch-content_shell_browser_shell__paths.cc b/devel/electron18/files/patch-content_shell_browser_shell__paths.cc new file mode 100644 index 000000000000..d8cc4d2fd9f6 --- /dev/null +++ b/devel/electron18/files/patch-content_shell_browser_shell__paths.cc @@ -0,0 +1,20 @@ +--- content/shell/browser/shell_paths.cc.orig 2022-05-19 03:45:28 UTC ++++ content/shell/browser/shell_paths.cc +@@ -13,7 +13,7 @@ + + #if BUILDFLAG(IS_FUCHSIA) + #include "base/fuchsia/file_utils.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/nix/xdg_util.h" + #endif + +@@ -25,7 +25,7 @@ bool GetDefaultUserDataDirectory(base::FilePath* resul + #if BUILDFLAG(IS_WIN) + CHECK(base::PathService::Get(base::DIR_LOCAL_APP_DATA, result)); + *result = result->Append(std::wstring(L"content_shell")); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::unique_ptr<base::Environment> env(base::Environment::Create()); + base::FilePath config_dir(base::nix::GetXDGDirectory( + env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir)); diff --git a/devel/electron18/files/patch-content_shell_utility_shell__content__utility__client.cc b/devel/electron18/files/patch-content_shell_utility_shell__content__utility__client.cc new file mode 100644 index 000000000000..2b49fda30beb --- /dev/null +++ b/devel/electron18/files/patch-content_shell_utility_shell__content__utility__client.cc @@ -0,0 +1,20 @@ +--- content/shell/utility/shell_content_utility_client.cc.orig 2022-05-19 03:45:28 UTC ++++ content/shell/utility/shell_content_utility_client.cc +@@ -32,7 +32,7 @@ + #include "sandbox/policy/sandbox.h" + #include "services/test/echo/echo_service.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/test/sandbox_status_service.h" + #endif + +@@ -142,7 +142,7 @@ void ShellContentUtilityClient::ExposeInterfacesToBrow + binders->Add<mojom::PowerMonitorTest>( + base::BindRepeating(&PowerMonitorTestImpl::MakeSelfOwnedReceiver), + base::ThreadTaskRunnerHandle::Get()); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (register_sandbox_status_helper_) { + binders->Add<content::mojom::SandboxStatusService>( + base::BindRepeating( diff --git a/devel/electron18/files/patch-content_test_BUILD.gn b/devel/electron18/files/patch-content_test_BUILD.gn new file mode 100644 index 000000000000..2faeafaa011d --- /dev/null +++ b/devel/electron18/files/patch-content_test_BUILD.gn @@ -0,0 +1,20 @@ +--- content/test/BUILD.gn.orig 2022-05-19 05:17:42 UTC ++++ content/test/BUILD.gn +@@ -1914,7 +1914,7 @@ static_library("run_all_unittests") { + ":test_support", + "//base/test:test_support", + ] +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + deps += [ "//content/common:set_process_title_linux" ] + } + } +@@ -2850,7 +2850,7 @@ test("content_unittests") { + deps += [ "//third_party/boringssl" ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ "../common/set_process_title_linux_unittest.cc" ] + deps += [ "//content/common:set_process_title_linux" ] + } diff --git a/devel/electron18/files/patch-content_utility_services.cc b/devel/electron18/files/patch-content_utility_services.cc new file mode 100644 index 000000000000..635e91883675 --- /dev/null +++ b/devel/electron18/files/patch-content_utility_services.cc @@ -0,0 +1,20 @@ +--- content/utility/services.cc.orig 2022-05-19 05:17:42 UTC ++++ content/utility/services.cc +@@ -67,7 +67,7 @@ + extern sandbox::TargetServices* g_utility_target_services; + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "sandbox/linux/services/libc_interceptor.h" + #include "sandbox/policy/mojom/sandbox.mojom.h" + #include "sandbox/policy/sandbox_type.h" +@@ -205,7 +205,7 @@ auto RunAudio(mojo::PendingReceiver<audio::mojom::Audi + << "task_policy_set TASK_QOS_POLICY"; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + auto* command_line = base::CommandLine::ForCurrentProcess(); + if (sandbox::policy::SandboxTypeFromCommandLine(*command_line) == + sandbox::mojom::Sandbox::kNoSandbox) { diff --git a/devel/electron18/files/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc b/devel/electron18/files/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc new file mode 100644 index 000000000000..586f1d1df1cf --- /dev/null +++ b/devel/electron18/files/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.cc @@ -0,0 +1,37 @@ +--- content/utility/speech/speech_recognition_sandbox_hook_linux.cc.orig 2022-05-11 07:00:39 UTC ++++ content/utility/speech/speech_recognition_sandbox_hook_linux.cc +@@ -12,11 +12,14 @@ + #include "sandbox/linux/syscall_broker/broker_command.h" + #include "sandbox/linux/syscall_broker/broker_file_permission.h" + ++#if !defined(OS_BSD) + using sandbox::syscall_broker::BrokerFilePermission; + using sandbox::syscall_broker::MakeBrokerCommandSet; ++#endif + + namespace speech { + ++#if !defined(OS_BSD) + namespace { + + // Gets the file permissions required by the Speech On-Device API (SODA). +@@ -50,9 +53,11 @@ std::vector<BrokerFilePermission> GetSodaFilePermissio + } + + } // namespace ++#endif + + bool SpeechRecognitionPreSandboxHook( + sandbox::policy::SandboxLinux::Options options) { ++#if !defined(OS_BSD) + #if BUILDFLAG(ENABLE_SODA) + base::FilePath test_binary_path = GetSodaTestBinaryPath(); + DVLOG(0) << "SODA test binary path: " << test_binary_path.value().c_str(); +@@ -77,6 +82,7 @@ bool SpeechRecognitionPreSandboxHook( + sandbox::policy::SandboxLinux::PreSandboxHook(), + options); + instance->EngageNamespaceSandboxIfPossible(); ++#endif + + return true; + } diff --git a/devel/electron18/files/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h b/devel/electron18/files/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h new file mode 100644 index 000000000000..39eb88eb990a --- /dev/null +++ b/devel/electron18/files/patch-content_utility_speech_speech__recognition__sandbox__hook__linux.h @@ -0,0 +1,14 @@ +--- content/utility/speech/speech_recognition_sandbox_hook_linux.h.orig 2022-05-11 07:00:39 UTC ++++ content/utility/speech/speech_recognition_sandbox_hook_linux.h +@@ -5,7 +5,11 @@ + #ifndef CONTENT_UTILITY_SPEECH_SPEECH_RECOGNITION_SANDBOX_HOOK_LINUX_H_ + #define CONTENT_UTILITY_SPEECH_SPEECH_RECOGNITION_SANDBOX_HOOK_LINUX_H_ + ++#if defined(OS_BSD) ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace speech { + diff --git a/devel/electron18/files/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc b/devel/electron18/files/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc new file mode 100644 index 000000000000..6673a2a5213c --- /dev/null +++ b/devel/electron18/files/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.cc @@ -0,0 +1,29 @@ +--- content/utility/utility_blink_platform_with_sandbox_support_impl.cc.orig 2022-05-19 03:45:29 UTC ++++ content/utility/utility_blink_platform_with_sandbox_support_impl.cc +@@ -9,7 +9,7 @@ + + #if BUILDFLAG(IS_MAC) + #include "content/child/child_process_sandbox_support_impl_mac.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/child/child_process_sandbox_support_impl_linux.h" + #endif + +@@ -17,7 +17,7 @@ namespace content { + + UtilityBlinkPlatformWithSandboxSupportImpl:: + UtilityBlinkPlatformWithSandboxSupportImpl() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + mojo::PendingRemote<font_service::mojom::FontService> font_service; + UtilityThread::Get()->BindHostReceiver( + font_service.InitWithNewPipeAndPassReceiver()); +@@ -34,7 +34,7 @@ UtilityBlinkPlatformWithSandboxSupportImpl:: + + blink::WebSandboxSupport* + UtilityBlinkPlatformWithSandboxSupportImpl::GetSandboxSupport() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + return sandbox_support_.get(); + #else + return nullptr; diff --git a/devel/electron18/files/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h b/devel/electron18/files/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h new file mode 100644 index 000000000000..80da3f35fcd9 --- /dev/null +++ b/devel/electron18/files/patch-content_utility_utility__blink__platform__with__sandbox__support__impl.h @@ -0,0 +1,24 @@ +--- content/utility/utility_blink_platform_with_sandbox_support_impl.h.orig 2022-05-19 03:45:29 UTC ++++ content/utility/utility_blink_platform_with_sandbox_support_impl.h +@@ -10,7 +10,7 @@ + #include "build/build_config.h" + #include "third_party/blink/public/platform/platform.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "components/services/font/public/cpp/font_loader.h" // nogncheck + #include "third_party/skia/include/core/SkRefCnt.h" // nogncheck + #endif +@@ -38,10 +38,10 @@ class UtilityBlinkPlatformWithSandboxSupportImpl : pub + blink::WebSandboxSupport* GetSandboxSupport() override; + + private: +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + std::unique_ptr<blink::WebSandboxSupport> sandbox_support_; + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + sk_sp<font_service::FontLoader> font_loader_; + #endif + }; diff --git a/devel/electron18/files/patch-content_utility_utility__main.cc b/devel/electron18/files/patch-content_utility_utility__main.cc new file mode 100644 index 000000000000..379222c3460e --- /dev/null +++ b/devel/electron18/files/patch-content_utility_utility__main.cc @@ -0,0 +1,55 @@ +--- content/utility/utility_main.cc.orig 2022-05-19 05:17:42 UTC ++++ content/utility/utility_main.cc +@@ -32,16 +32,22 @@ + #include "third_party/icu/source/common/unicode/unistr.h" + #include "third_party/icu/source/i18n/unicode/timezone.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "content/utility/speech/speech_recognition_sandbox_hook_linux.h" + #if BUILDFLAG(ENABLE_PRINTING) + #include "printing/sandbox/print_backend_sandbox_hook_linux.h" + #endif ++#if !BUILDFLAG(IS_BSD) + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + #include "services/audio/audio_sandbox_hook_linux.h" + #include "services/network/network_sandbox_hook_linux.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++#endif ++ + #if BUILDFLAG(IS_CHROMEOS_ASH) + #include "ash/services/ime/ime_sandbox_hook.h" + #include "chromeos/assistant/buildflags.h" +@@ -135,7 +141,7 @@ int UtilityMain(MainFunctionParams parameters) { + } + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Initializes the sandbox before any threads are created. + // TODO(jorgelo): move this after GTK initialization when we enable a strict + // Seccomp-BPF policy. +@@ -179,6 +185,7 @@ int UtilityMain(MainFunctionParams parameters) { + default: + break; + } ++#if !BUILDFLAG(IS_BSD) + if (parameters.zygote_child || !pre_sandbox_hook.is_null()) { + sandbox::policy::SandboxLinux::Options sandbox_options; + #if BUILDFLAG(IS_CHROMEOS_ASH) +@@ -194,6 +201,11 @@ int UtilityMain(MainFunctionParams parameters) { + sandbox::policy::Sandbox::Initialize( + sandbox_type, std::move(pre_sandbox_hook), sandbox_options); + } ++#else ++ sandbox::policy::Sandbox::Initialize( ++ sandbox_type, std::move(pre_sandbox_hook), ++ sandbox::policy::SandboxLinux::Options()); ++#endif + #elif BUILDFLAG(IS_WIN) + g_utility_target_services = parameters.sandbox_info->target_services; + #endif diff --git a/devel/electron18/files/patch-content_zygote_BUILD.gn b/devel/electron18/files/patch-content_zygote_BUILD.gn new file mode 100644 index 000000000000..6a0640f7306f --- /dev/null +++ b/devel/electron18/files/patch-content_zygote_BUILD.gn @@ -0,0 +1,11 @@ +--- content/zygote/BUILD.gn.orig 2022-05-11 07:00:39 UTC ++++ content/zygote/BUILD.gn +@@ -5,7 +5,7 @@ + import("//build/config/nacl/config.gni") + import("//content/public/common/zygote/features.gni") + +-if (is_linux || is_chromeos) { ++if ((is_linux || is_chromeos) && !is_bsd) { + source_set("zygote") { + sources = [ + "zygote_linux.cc", diff --git a/devel/electron18/files/patch-content_zygote_zygote__linux.cc b/devel/electron18/files/patch-content_zygote_zygote__linux.cc new file mode 100644 index 000000000000..54ba600d13c2 --- /dev/null +++ b/devel/electron18/files/patch-content_zygote_zygote__linux.cc @@ -0,0 +1,15 @@ +--- content/zygote/zygote_linux.cc.orig 2022-05-11 07:16:51 UTC ++++ content/zygote/zygote_linux.cc +@@ -1,6 +1,7 @@ + // Copyright (c) 2012 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. ++#if 0 + + #include "content/zygote/zygote_linux.h" + +@@ -650,3 +651,4 @@ bool Zygote::HandleGetSandboxStatus(int fd, base::Pick + } + + } // namespace content ++#endif diff --git a/devel/electron18/files/patch-content_zygote_zygote__main__linux.cc b/devel/electron18/files/patch-content_zygote_zygote__main__linux.cc new file mode 100644 index 000000000000..224d6f22b7c0 --- /dev/null +++ b/devel/electron18/files/patch-content_zygote_zygote__main__linux.cc @@ -0,0 +1,64 @@ +--- content/zygote/zygote_main_linux.cc.orig 2022-05-11 07:16:51 UTC ++++ content/zygote/zygote_main_linux.cc +@@ -11,7 +11,9 @@ + #include <stddef.h> + #include <stdint.h> + #include <string.h> ++#if !defined(OS_BSD) + #include <sys/prctl.h> ++#endif + #include <sys/socket.h> + #include <sys/types.h> + #include <unistd.h> +@@ -40,7 +42,9 @@ + #include "sandbox/linux/services/thread_helpers.h" + #include "sandbox/linux/suid/client/setuid_sandbox_client.h" + #include "sandbox/policy/linux/sandbox_debug_handling_linux.h" ++#if !defined(OS_BSD) + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + #include "sandbox/policy/sandbox.h" + #include "sandbox/policy/switches.h" + #include "third_party/icu/source/i18n/unicode/timezone.h" +@@ -49,6 +53,7 @@ namespace content { + + namespace { + ++#if !defined(OS_BSD) + void CloseFds(const std::vector<int>& fds) { + for (const auto& it : fds) { + PCHECK(0 == IGNORE_EINTR(close(it))); +@@ -66,9 +71,11 @@ base::OnceClosure ClosureFromTwoClosures(base::OnceClo + }, + std::move(one), std::move(two)); + } ++#endif + + } // namespace + ++#if !defined(OS_BSD) + // This function triggers the static and lazy construction of objects that need + // to be created before imposing the sandbox. + static void ZygotePreSandboxInit() { +@@ -173,9 +180,11 @@ static void EnterLayerOneSandbox(sandbox::policy::Sand + CHECK(!using_layer1_sandbox); + } + } ++#endif + + bool ZygoteMain( + std::vector<std::unique_ptr<ZygoteForkDelegate>> fork_delegates) { ++#if !defined(OS_BSD) + sandbox::SetAmZygoteOrRenderer(true, GetSandboxFD()); + + auto* linux_sandbox = sandbox::policy::SandboxLinux::GetInstance(); +@@ -240,6 +249,9 @@ bool ZygoteMain( + + // This function call can return multiple times, once per fork(). + return zygote.ProcessRequests(); ++#else ++ return false; ++#endif + } + + } // namespace content diff --git a/devel/electron18/files/patch-device_bluetooth_cast__bluetooth.gni b/devel/electron18/files/patch-device_bluetooth_cast__bluetooth.gni new file mode 100644 index 000000000000..cbf84842caba --- /dev/null +++ b/devel/electron18/files/patch-device_bluetooth_cast__bluetooth.gni @@ -0,0 +1,9 @@ +--- device/bluetooth/cast_bluetooth.gni.orig 2021-11-19 04:25:17 UTC ++++ device/bluetooth/cast_bluetooth.gni +@@ -2,5 +2,5 @@ import("//build/config/features.gni") + + declare_args() { + force_cast_bluetooth = false +- use_bluez = use_dbus ++ use_bluez = use_dbus && !is_bsd + } diff --git a/devel/electron18/files/patch-device_gamepad_gamepad__provider.cc b/devel/electron18/files/patch-device_gamepad_gamepad__provider.cc new file mode 100644 index 000000000000..d9a4d87f16db --- /dev/null +++ b/devel/electron18/files/patch-device_gamepad_gamepad__provider.cc @@ -0,0 +1,11 @@ +--- device/gamepad/gamepad_provider.cc.orig 2022-05-19 03:45:29 UTC ++++ device/gamepad/gamepad_provider.cc +@@ -216,7 +216,7 @@ void GamepadProvider::Initialize(std::unique_ptr<Gamep + + if (!polling_thread_) + polling_thread_ = std::make_unique<base::Thread>("Gamepad polling thread"); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, the data fetcher needs to watch file descriptors, so the message + // loop needs to be a libevent loop. + const base::MessagePumpType kMessageLoopType = base::MessagePumpType::IO; diff --git a/devel/electron18/files/patch-device_gamepad_hid__writer__linux.cc b/devel/electron18/files/patch-device_gamepad_hid__writer__linux.cc new file mode 100644 index 000000000000..d5e03a1ecbc2 --- /dev/null +++ b/devel/electron18/files/patch-device_gamepad_hid__writer__linux.cc @@ -0,0 +1,11 @@ +--- device/gamepad/hid_writer_linux.cc.orig 2022-05-19 03:45:29 UTC ++++ device/gamepad/hid_writer_linux.cc +@@ -2,6 +2,8 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++#include <unistd.h> ++ + #include "device/gamepad/hid_writer_linux.h" + + #include <unistd.h> diff --git a/devel/electron18/files/patch-electron_BUILD.gn b/devel/electron18/files/patch-electron_BUILD.gn new file mode 100644 index 000000000000..78c424382acf --- /dev/null +++ b/devel/electron18/files/patch-electron_BUILD.gn @@ -0,0 +1,71 @@ +--- electron/BUILD.gn.orig 2022-05-18 15:31:32 UTC ++++ electron/BUILD.gn +@@ -444,7 +444,7 @@ source_set("electron_lib") { + defines += [ "GDK_DISABLE_DEPRECATION_WARNINGS" ] + } + +- if (!is_mas_build) { ++ if (!is_mas_build && !is_bsd) { + deps += [ + "//components/crash/core/app", + "//components/crash/core/browser", +@@ -486,6 +486,10 @@ source_set("electron_lib") { + ] + } + ++ if (is_bsd) { ++ deps -= [ "//components/crash/content/browser" ] ++ } ++ + if (is_mac) { + deps += [ + "//components/remote_cocoa/app_shim", +@@ -540,6 +544,12 @@ source_set("electron_lib") { + cflags_objcc = [ "-fobjc-weak" ] + } + } ++ if (is_bsd) { ++ sources -= [ ++ "shell/common/crash_keys.cc", ++ "shell/common/crash_keys.h", ++ ] ++ } + if (is_linux) { + libs = [ "xshmfence" ] + deps += [ +@@ -1182,7 +1192,7 @@ if (is_mac) { + ":electron_app_manifest", + ":electron_lib", + ":packed_resources", +- "//components/crash/core/app", ++ # "//components/crash/core/app", + "//content:sandbox_helper_win", + "//electron/buildflags", + "//ui/strings", +@@ -1208,7 +1218,7 @@ if (is_mac) { + public_deps = [ "//tools/v8_context_snapshot:v8_context_snapshot" ] + } + +- if (is_linux) { ++ if (is_linux && !is_bsd) { + data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ] + } + +@@ -1276,7 +1286,7 @@ if (is_mac) { + configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ] + } + +- if (is_linux) { ++ if (is_linux && !is_bsd) { + deps += [ "//sandbox/linux:chrome_sandbox" ] + } + } +@@ -1412,7 +1422,7 @@ dist_zip("electron_dist_zip") { + ":electron_version", + ":licenses", + ] +- if (is_linux) { ++ if (is_linux && !is_bsd) { + data_deps += [ "//sandbox/linux:chrome_sandbox" ] + } + deps = data_deps diff --git a/devel/electron18/files/patch-electron_default__app_default__app.ts b/devel/electron18/files/patch-electron_default__app_default__app.ts new file mode 100644 index 000000000000..745d62bc38bc --- /dev/null +++ b/devel/electron18/files/patch-electron_default__app_default__app.ts @@ -0,0 +1,11 @@ +--- electron/default_app/default_app.ts.orig 2022-05-18 15:31:32 UTC ++++ electron/default_app/default_app.ts +@@ -59,7 +59,7 @@ async function createWindow (backgroundColor?: string) + show: false + }; + +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + options.icon = path.join(__dirname, 'icon.png'); + } + diff --git a/devel/electron18/files/patch-electron_filenames.gni b/devel/electron18/files/patch-electron_filenames.gni new file mode 100644 index 000000000000..6411064b64f4 --- /dev/null +++ b/devel/electron18/files/patch-electron_filenames.gni @@ -0,0 +1,13 @@ +--- electron/filenames.gni.orig 2022-05-11 15:32:29 UTC ++++ electron/filenames.gni +@@ -238,8 +238,8 @@ filenames = { + "shell/app/command_line_args.h", + "shell/app/electron_content_client.cc", + "shell/app/electron_content_client.h", +- "shell/app/electron_crash_reporter_client.cc", +- "shell/app/electron_crash_reporter_client.h", ++ # "shell/app/electron_crash_reporter_client.cc", ++ # "shell/app/electron_crash_reporter_client.h", + "shell/app/electron_main_delegate.cc", + "shell/app/electron_main_delegate.h", + "shell/app/uv_task_runner.cc", diff --git a/devel/electron18/files/patch-electron_lib_browser_api_app.ts b/devel/electron18/files/patch-electron_lib_browser_api_app.ts new file mode 100644 index 000000000000..e3b4f07063db --- /dev/null +++ b/devel/electron18/files/patch-electron_lib_browser_api_app.ts @@ -0,0 +1,11 @@ +--- electron/lib/browser/api/app.ts.orig 2021-11-15 23:45:07 UTC ++++ electron/lib/browser/api/app.ts +@@ -67,7 +67,7 @@ if (process.platform === 'darwin') { + app.dock!.getMenu = () => dockMenu; + } + +-if (process.platform === 'linux') { ++if (process.platform === 'linux' || process.platform === 'freebsd') { + const patternVmRSS = /^VmRSS:\s*(\d+) kB$/m; + const patternVmHWM = /^VmHWM:\s*(\d+) kB$/m; + diff --git a/devel/electron18/files/patch-electron_lib_browser_api_dialog.ts b/devel/electron18/files/patch-electron_lib_browser_api_dialog.ts new file mode 100644 index 000000000000..ce8169ee51bf --- /dev/null +++ b/devel/electron18/files/patch-electron_lib_browser_api_dialog.ts @@ -0,0 +1,11 @@ +--- electron/lib/browser/api/dialog.ts.orig 2021-11-15 23:45:07 UTC ++++ electron/lib/browser/api/dialog.ts +@@ -40,7 +40,7 @@ const normalizeAccessKey = (text: string) => { + // existing single underscores with a second underscore, replace double + // ampersands with a single ampersand, and replace a single ampersand with + // a single underscore +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + return text.replace(/_/g, '__').replace(/&(.?)/g, (match, after) => { + if (after === '&') return after; + return `_${after}`; diff --git a/devel/electron18/files/patch-electron_lib_browser_api_menu-item-roles.ts b/devel/electron18/files/patch-electron_lib_browser_api_menu-item-roles.ts new file mode 100644 index 000000000000..e89259c7e505 --- /dev/null +++ b/devel/electron18/files/patch-electron_lib_browser_api_menu-item-roles.ts @@ -0,0 +1,11 @@ +--- electron/lib/browser/api/menu-item-roles.ts.orig 2022-05-18 15:31:32 UTC ++++ electron/lib/browser/api/menu-item-roles.ts +@@ -2,7 +2,7 @@ import { app, BrowserWindow, session, webContents, Web + + const isMac = process.platform === 'darwin'; + const isWindows = process.platform === 'win32'; +-const isLinux = process.platform === 'linux'; ++const isLinux = (process.platform === 'linux' || process.platform === 'freebsd'); + + type RoleId = 'about' | 'close' | 'copy' | 'cut' | 'delete' | 'forcereload' | 'front' | 'help' | 'hide' | 'hideothers' | 'minimize' | + 'paste' | 'pasteandmatchstyle' | 'quit' | 'redo' | 'reload' | 'resetzoom' | 'selectall' | 'services' | 'recentdocuments' | 'clearrecentdocuments' | diff --git a/devel/electron18/files/patch-electron_lib_browser_api_power-monitor.ts b/devel/electron18/files/patch-electron_lib_browser_api_power-monitor.ts new file mode 100644 index 000000000000..fc4b14ab7b32 --- /dev/null +++ b/devel/electron18/files/patch-electron_lib_browser_api_power-monitor.ts @@ -0,0 +1,11 @@ +--- electron/lib/browser/api/power-monitor.ts.orig 2021-04-20 23:32:33 UTC ++++ electron/lib/browser/api/power-monitor.ts +@@ -18,7 +18,7 @@ class PowerMonitor extends EventEmitter { + const pm = createPowerMonitor(); + pm.emit = this.emit.bind(this); + +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + // On Linux, we inhibit shutdown in order to give the app a chance to + // decide whether or not it wants to prevent the shutdown. We don't + // inhibit the shutdown event unless there's a listener for it. This diff --git a/devel/electron18/files/patch-electron_lib_browser_init.ts b/devel/electron18/files/patch-electron_lib_browser_init.ts new file mode 100644 index 000000000000..363f43f0c286 --- /dev/null +++ b/devel/electron18/files/patch-electron_lib_browser_init.ts @@ -0,0 +1,11 @@ +--- electron/lib/browser/init.ts.orig 2022-05-18 15:31:32 UTC ++++ electron/lib/browser/init.ts +@@ -149,7 +149,7 @@ const mainStartupScript = packageJson.main || 'index.j + const KNOWN_XDG_DESKTOP_VALUES = ['Pantheon', 'Unity:Unity7', 'pop:GNOME']; + + function currentPlatformSupportsAppIndicator () { +- if (process.platform !== 'linux') return false; ++ if (process.platform !== 'linux' && process.platform !== 'freebsd') return false; + const currentDesktop = process.env.XDG_CURRENT_DESKTOP; + + if (!currentDesktop) return false; diff --git a/devel/electron18/files/patch-electron_lib_browser_rpc-server.ts b/devel/electron18/files/patch-electron_lib_browser_rpc-server.ts new file mode 100644 index 000000000000..2e2fca45dfa6 --- /dev/null +++ b/devel/electron18/files/patch-electron_lib_browser_rpc-server.ts @@ -0,0 +1,11 @@ +--- electron/lib/browser/rpc-server.ts.orig 2022-05-11 15:32:29 UTC ++++ electron/lib/browser/rpc-server.ts +@@ -26,7 +26,7 @@ const allowedClipboardMethods = (() => { + switch (process.platform) { + case 'darwin': + return new Set(['readFindText', 'writeFindText']); +- case 'linux': ++ case 'linux': case 'freebsd': + return new Set(Object.keys(clipboard)); + default: + return new Set(); diff --git a/devel/electron18/files/patch-electron_lib_common_api_clipboard.ts b/devel/electron18/files/patch-electron_lib_common_api_clipboard.ts new file mode 100644 index 000000000000..6fa93e1fb4b1 --- /dev/null +++ b/devel/electron18/files/patch-electron_lib_common_api_clipboard.ts @@ -0,0 +1,11 @@ +--- electron/lib/common/api/clipboard.ts.orig 2021-12-03 01:46:05 UTC ++++ electron/lib/common/api/clipboard.ts +@@ -11,7 +11,7 @@ if (process.type === 'renderer') { + return (...args: any[]) => ipcRendererUtils.invokeSync(IPC_MESSAGES.BROWSER_CLIPBOARD_SYNC, method, ...args); + }; + +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + // On Linux we could not access clipboard in renderer process. + for (const method of Object.keys(clipboard) as (keyof Electron.Clipboard)[]) { + clipboard[method] = makeRemoteMethod(method); diff --git a/devel/electron18/files/patch-electron_script_lib_config.py b/devel/electron18/files/patch-electron_script_lib_config.py new file mode 100644 index 000000000000..a9d7ef33f534 --- /dev/null +++ b/devel/electron18/files/patch-electron_script_lib_config.py @@ -0,0 +1,12 @@ +--- electron/script/lib/config.py.orig 2021-11-08 18:41:28 UTC ++++ electron/script/lib/config.py +@@ -8,6 +8,9 @@ PLATFORM = { + 'cygwin': 'win32', + 'msys': 'win32', + 'darwin': 'darwin', ++ 'freebsd12': 'freebsd', ++ 'freebsd13': 'freebsd', ++ 'freebsd14': 'freebsd', + 'linux': 'linux', + 'linux2': 'linux', + 'win32': 'win32', diff --git a/devel/electron18/files/patch-electron_script_lib_utils.js b/devel/electron18/files/patch-electron_script_lib_utils.js new file mode 100644 index 000000000000..d5deafff375c --- /dev/null +++ b/devel/electron18/files/patch-electron_script_lib_utils.js @@ -0,0 +1,11 @@ +--- electron/script/lib/utils.js.orig 2021-10-11 17:12:26 UTC ++++ electron/script/lib/utils.js +@@ -21,7 +21,7 @@ function getElectronExec () { + return `out/${OUT_DIR}/Electron.app/Contents/MacOS/Electron`; + case 'win32': + return `out/${OUT_DIR}/electron.exe`; +- case 'linux': ++ case 'linux': case 'freebsd': + return `out/${OUT_DIR}/electron`; + default: + throw new Error('Unknown platform'); diff --git a/devel/electron18/files/patch-electron_script_spec-runner.js b/devel/electron18/files/patch-electron_script_spec-runner.js new file mode 100644 index 000000000000..12821b3f867d --- /dev/null +++ b/devel/electron18/files/patch-electron_script_spec-runner.js @@ -0,0 +1,11 @@ +--- electron/script/spec-runner.js.orig 2021-11-08 18:41:28 UTC ++++ electron/script/spec-runner.js +@@ -126,7 +126,7 @@ async function runElectronTests () { + async function runTestUsingElectron (specDir, testName) { + let exe = path.resolve(BASE, utils.getElectronExec()); + const runnerArgs = [`electron/${specDir}`, ...unknownArgs.slice(2)]; +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + runnerArgs.unshift(path.resolve(__dirname, 'dbus_mock.py'), exe); + exe = 'python3'; + } diff --git a/devel/electron18/files/patch-electron_shell_app_electron__main__delegate.cc b/devel/electron18/files/patch-electron_shell_app_electron__main__delegate.cc new file mode 100644 index 000000000000..c08e1f72ab07 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_app_electron__main__delegate.cc @@ -0,0 +1,58 @@ +--- electron/shell/app/electron_main_delegate.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/app/electron_main_delegate.cc +@@ -53,14 +53,17 @@ + #include "chrome/child/v8_crashpad_support_win.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/nix/xdg_util.h" ++#endif ++ ++#if BUILDFLAG(IS_LINUX) + #include "components/crash/core/app/breakpad_linux.h" + #include "v8/include/v8-wasm-trap-handler-posix.h" + #include "v8/include/v8.h" + #endif + +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !BUILDFLAG(IS_BSD) + #include "components/crash/core/app/crash_switches.h" // nogncheck + #include "components/crash/core/app/crashpad.h" // nogncheck + #include "components/crash/core/common/crash_key.h" +@@ -154,7 +157,7 @@ bool ElectronPathProvider(int key, base::FilePath* res + create_dir = true; + break; + } +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + case DIR_APP_DATA: { + auto env = base::Environment::Create(); + cur = base::nix::GetXDGDirectory( +@@ -286,7 +289,7 @@ bool ElectronMainDelegate::BasicStartupComplete(int* e + base::win::PinUser32(); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Check for --no-sandbox parameter when running as root. + if (getuid() == 0 && IsSandboxEnabled(command_line)) + LOG(FATAL) << "Running as root without --" +@@ -341,7 +344,7 @@ void ElectronMainDelegate::PreSandboxStartup() { + process_type == ::switches::kZygoteProcess); + #endif + +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !BUILDFLAG(IS_BSD) + crash_reporter::InitializeCrashKeys(); + #endif + +@@ -380,7 +383,7 @@ void ElectronMainDelegate::PreSandboxStartup() { + } + #endif + +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !BUILDFLAG(IS_BSD) + crash_keys::SetCrashKeysFromCommandLine(*command_line); + crash_keys::SetPlatformCrashKey(); + #endif diff --git a/devel/electron18/files/patch-electron_shell_app_node__main.cc b/devel/electron18/files/patch-electron_shell_app_node__main.cc new file mode 100644 index 000000000000..967c4af068d9 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_app_node__main.cc @@ -0,0 +1,56 @@ +--- electron/shell/app/node_main.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/app/node_main.cc +@@ -38,7 +38,7 @@ + #include "chrome/child/v8_crashpad_support_win.h" + #endif + +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !BUILDFLAG(IS_BSD) + #include "components/crash/core/app/crashpad.h" // nogncheck + #include "shell/app/electron_crash_reporter_client.h" + #include "shell/browser/api/electron_api_crash_reporter.h" +@@ -91,7 +91,7 @@ int SetNodeCliFlags() { + node::kDisallowedInEnvironment); + } + +-#if defined(MAS_BUILD) ++#if defined(MAS_BUILD) || BUILDFLAG(IS_BSD) + void SetCrashKeyStub(const std::string& key, const std::string& value) {} + void ClearCrashKeyStub(const std::string& key) {} + #endif +@@ -131,7 +131,7 @@ void CrashReporterStart(gin_helper::Dictionary options + + v8::Local<v8::Value> GetParameters(v8::Isolate* isolate) { + std::map<std::string, std::string> keys; +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !BUILDFLAG(IS_BSD) + electron::crash_keys::GetCrashKeys(&keys); + #endif + return gin::ConvertToV8(isolate, keys); +@@ -144,7 +144,7 @@ int NodeMain(int argc, char* argv[]) { + v8_crashpad_support::SetUp(); + #endif + +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !BUILDFLAG(IS_BSD) + ElectronCrashReporterClient::Create(); + #endif + +@@ -152,7 +152,7 @@ int NodeMain(int argc, char* argv[]) { + crash_reporter::InitializeCrashpad(false, "node"); + #endif + +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !BUILDFLAG(IS_BSD) + crash_keys::SetCrashKeysFromCommandLine( + *base::CommandLine::ForCurrentProcess()); + crash_keys::SetPlatformCrashKey(); +@@ -230,7 +230,7 @@ int NodeMain(int argc, char* argv[]) { + #endif + + reporter.SetMethod("getParameters", &GetParameters); +-#if defined(MAS_BUILD) ++#if defined(MAS_BUILD) || BUILDFLAG(IS_BSD) + reporter.SetMethod("addExtraParameter", &SetCrashKeyStub); + reporter.SetMethod("removeExtraParameter", &ClearCrashKeyStub); + #else diff --git a/devel/electron18/files/patch-electron_shell_browser_api_electron__api__app.cc b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__app.cc new file mode 100644 index 000000000000..cd02ff65f042 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__app.cc @@ -0,0 +1,47 @@ +--- electron/shell/browser/api/electron_api_app.cc.orig 2022-05-25 15:32:14 UTC ++++ electron/shell/browser/api/electron_api_app.cc +@@ -704,7 +704,7 @@ void App::OnWillFinishLaunching() { + } + + void App::OnFinishLaunching(const base::DictionaryValue& launch_info) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set the application name for audio streams shown in external + // applications. Only affects pulseaudio currently. + media::AudioManager::SetGlobalAppName(Browser::Get()->GetName()); +@@ -1029,7 +1029,7 @@ void App::SetPath(gin_helper::ErrorThrower thrower, + } + + void App::SetDesktopName(const std::string& desktop_name) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto env = base::Environment::Create(); + env->SetVar("CHROME_DESKTOP", desktop_name); + #endif +@@ -1402,7 +1402,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics + pid_dict.Set("name", process_metric.second->name); + } + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + auto memory_info = process_metric.second->GetMemoryInfo(); + + gin_helper::Dictionary memory_dict = gin::Dictionary::CreateEmpty(isolate); +@@ -1703,7 +1703,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild + .SetMethod( + "removeAsDefaultProtocolClient", + base::BindRepeating(&Browser::RemoveAsDefaultProtocolClient, browser)) +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + .SetMethod( + "getApplicationInfoForProtocol", + base::BindRepeating(&Browser::GetApplicationInfoForProtocol, browser)) +@@ -1760,7 +1760,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild + .SetMethod("getJumpListSettings", &App::GetJumpListSettings) + .SetMethod("setJumpList", &App::SetJumpList) + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + .SetMethod("isUnityRunning", + base::BindRepeating(&Browser::IsUnityRunning, browser)) + #endif diff --git a/devel/electron18/files/patch-electron_shell_browser_api_electron__api__base__window.cc b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__base__window.cc new file mode 100644 index 000000000000..0f369530d703 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__base__window.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/api/electron_api_base_window.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/api/electron_api_base_window.cc +@@ -1059,7 +1059,7 @@ void BaseWindow::SetIconImpl(v8::Isolate* isolate, + static_cast<NativeWindowViews*>(window_.get()) + ->SetIcon(native_image->GetHICON(GetSystemMetrics(SM_CXSMICON)), + native_image->GetHICON(GetSystemMetrics(SM_CXICON))); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + static_cast<NativeWindowViews*>(window_.get()) + ->SetIcon(native_image->image().AsImageSkia()); + #endif diff --git a/devel/electron18/files/patch-electron_shell_browser_api_electron__api__crash__reporter.cc b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__crash__reporter.cc new file mode 100644 index 000000000000..393e66f95902 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__crash__reporter.cc @@ -0,0 +1,72 @@ +--- electron/shell/browser/api/electron_api_crash_reporter.cc.orig 2022-05-25 15:32:14 UTC ++++ electron/shell/browser/api/electron_api_crash_reporter.cc +@@ -30,7 +30,7 @@ + #include "shell/common/gin_helper/dictionary.h" + #include "shell/common/node_includes.h" + +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !BUILDFLAG(IS_BSD) + #include "components/crash/core/app/crashpad.h" // nogncheck + #include "components/crash/core/browser/crash_upload_list_crashpad.h" // nogncheck + #include "components/crash/core/common/crash_key.h" +@@ -70,7 +70,7 @@ namespace api { + + namespace crash_reporter { + +-#if defined(MAS_BUILD) ++#if defined(MAS_BUILD) || BUILDFLAG(IS_BSD) + namespace { + + void NoOp() {} +@@ -137,7 +137,7 @@ void Start(const std::string& submit_url, + const std::map<std::string, std::string>& extra, + bool is_node_process) { + TRACE_EVENT0("electron", "crash_reporter::Start"); +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !BUILDFLAG(IS_BSD) + if (g_crash_reporter_initialized) + return; + g_crash_reporter_initialized = true; +@@ -204,7 +204,7 @@ void Start(const std::string& submit_url, + + namespace { + +-#if defined(MAS_BUILD) ++#if defined(MAS_BUILD) || BUILDFLAG(IS_BSD) + void GetUploadedReports( + v8::Isolate* isolate, + base::OnceCallback<void(v8::Local<v8::Value>)> callback) { +@@ -261,13 +261,13 @@ v8::Local<v8::Value> GetUploadedReports(v8::Isolate* i + #endif + + void SetUploadToServer(bool upload) { +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !BUILDFLAG(IS_BSD) + ElectronCrashReporterClient::Get()->SetCollectStatsConsent(upload); + #endif + } + + bool GetUploadToServer() { +-#if defined(MAS_BUILD) ++#if defined(MAS_BUILD) || BUILDFLAG(IS_BSD) + return false; + #else + return ElectronCrashReporterClient::Get()->GetCollectStatsConsent(); +@@ -276,7 +276,7 @@ bool GetUploadToServer() { + + v8::Local<v8::Value> GetParameters(v8::Isolate* isolate) { + std::map<std::string, std::string> keys; +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !BUILDFLAG(IS_BSD) + electron::crash_keys::GetCrashKeys(&keys); + #endif + return gin::ConvertToV8(isolate, keys); +@@ -288,7 +288,7 @@ void Initialize(v8::Local<v8::Object> exports, + void* priv) { + gin_helper::Dictionary dict(context->GetIsolate(), exports); + dict.SetMethod("start", &electron::api::crash_reporter::Start); +-#if defined(MAS_BUILD) ++#if defined(MAS_BUILD) || BUILDFLAG(IS_BSD) + dict.SetMethod("addExtraParameter", &electron::api::crash_reporter::NoOp); + dict.SetMethod("removeExtraParameter", &electron::api::crash_reporter::NoOp); + #else diff --git a/devel/electron18/files/patch-electron_shell_browser_api_electron__api__power__monitor.cc b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__power__monitor.cc new file mode 100644 index 000000000000..355d39ab7540 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__power__monitor.cc @@ -0,0 +1,23 @@ +--- electron/shell/browser/api/electron_api_power_monitor.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/api/electron_api_power_monitor.cc +@@ -79,6 +79,11 @@ void PowerMonitor::OnResume() { + Emit("resume"); + } + ++#if BUILDFLAG(IS_BSD) ++void PowerMonitor::SetListeningForShutdown(bool is_listening) { ++} ++#endif ++ + #if BUILDFLAG(IS_LINUX) + void PowerMonitor::SetListeningForShutdown(bool is_listening) { + if (is_listening) { +@@ -105,7 +110,7 @@ gin::ObjectTemplateBuilder PowerMonitor::GetObjectTemp + auto builder = + gin_helper::EventEmitterMixin<PowerMonitor>::GetObjectTemplateBuilder( + isolate); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + builder.SetMethod("setListeningForShutdown", + &PowerMonitor::SetListeningForShutdown); + #endif diff --git a/devel/electron18/files/patch-electron_shell_browser_api_electron__api__power__monitor.h b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__power__monitor.h new file mode 100644 index 000000000000..5a72e3b38470 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__power__monitor.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/api/electron_api_power_monitor.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/api/electron_api_power_monitor.h +@@ -41,7 +41,7 @@ class PowerMonitor : public gin::Wrappable<PowerMonito + explicit PowerMonitor(v8::Isolate* isolate); + ~PowerMonitor() override; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void SetListeningForShutdown(bool); + #endif + diff --git a/devel/electron18/files/patch-electron_shell_browser_api_electron__api__safe__storage.cc b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__safe__storage.cc new file mode 100644 index 000000000000..4d5a815a7048 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__safe__storage.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/api/electron_api_safe_storage.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/api/electron_api_safe_storage.cc +@@ -31,7 +31,7 @@ void SetElectronCryptoReady(bool ready) { + #endif + + bool IsEncryptionAvailable() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Calling IsEncryptionAvailable() before the app is ready results in a crash + // on Linux. + // Refs: https://github.com/electron/electron/issues/32206. diff --git a/devel/electron18/files/patch-electron_shell_browser_api_electron__api__web__contents.cc b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__web__contents.cc new file mode 100644 index 000000000000..e9ba61a6fb04 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__web__contents.cc @@ -0,0 +1,61 @@ +--- electron/shell/browser/api/electron_api_web_contents.cc.orig 2022-06-01 15:32:20 UTC ++++ electron/shell/browser/api/electron_api_web_contents.cc +@@ -149,11 +149,11 @@ + #include "ui/base/cocoa/defaults_utils.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/views/linux_ui/linux_ui.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "ui/gfx/font_render_params.h" + #endif + +@@ -394,7 +394,7 @@ absl::optional<base::TimeDelta> GetCursorBlinkInterval + ui::TextInsertionCaretBlinkPeriodFromDefaults()); + if (system_value) + return *system_value; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (auto* linux_ui = views::LinuxUI::instance()) + return linux_ui->GetCursorBlinkInterval(); + #elif BUILDFLAG(IS_WIN) +@@ -832,7 +832,7 @@ void WebContents::InitWithSessionAndOptions( + accept_languages.pop_back(); + prefs->accept_languages = accept_languages; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Update font settings. + static const gfx::FontRenderParams params( + gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), nullptr)); +@@ -2356,7 +2356,7 @@ void WebContents::ForcefullyCrashRenderer() { + + content::RenderProcessHost* rph = rwh->GetProcess(); + if (rph) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // A generic |CrashDumpHungChildProcess()| is not implemented for Linux. + // Instead we send an explicit IPC to crash on the renderer's IO thread. + rph->ForceCrash(); +@@ -2932,7 +2932,7 @@ void WebContents::CopyImageAt(int x, int y) { + void WebContents::Focus() { + // Focusing on WebContents does not automatically focus the window on macOS + // and Linux, do it manually to match the behavior on Windows. +-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (owner_window()) + owner_window()->Focus(true); + #endif +@@ -3765,7 +3765,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() { + } + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void WebContents::GetDevToolsWindowWMClass(std::string* name, + std::string* class_name) { + *class_name = Browser::Get()->GetName(); diff --git a/devel/electron18/files/patch-electron_shell_browser_api_electron__api__web__contents.h b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__web__contents.h new file mode 100644 index 000000000000..3ee867d2d3e8 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_api_electron__api__web__contents.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/api/electron_api_web_contents.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/api/electron_api_web_contents.h +@@ -720,7 +720,7 @@ class WebContents : public ExclusiveAccessContext, + #if defined(TOOLKIT_VIEWS) && !BUILDFLAG(IS_MAC) + ui::ImageModel GetDevToolsWindowIcon() override; + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void GetDevToolsWindowWMClass(std::string* name, + std::string* class_name) override; + #endif diff --git a/devel/electron18/files/patch-electron_shell_browser_api_process__metric.h b/devel/electron18/files/patch-electron_shell_browser_api_process__metric.h new file mode 100644 index 000000000000..d6ff67a703bf --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_api_process__metric.h @@ -0,0 +1,20 @@ +--- electron/shell/browser/api/process_metric.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/api/process_metric.h +@@ -14,7 +14,7 @@ + + namespace electron { + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + struct ProcessMemoryInfo { + size_t working_set_size = 0; + size_t peak_working_set_size = 0; +@@ -48,7 +48,7 @@ struct ProcessMetric { + const std::string& name = std::string()); + ~ProcessMetric(); + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + ProcessMemoryInfo GetMemoryInfo() const; + #endif + diff --git a/devel/electron18/files/patch-electron_shell_browser_browser.cc b/devel/electron18/files/patch-electron_shell_browser_browser.cc new file mode 100644 index 000000000000..023e17e2287a --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_browser.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/browser.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/browser.cc +@@ -65,7 +65,7 @@ Browser* Browser::Get() { + return ElectronBrowserMainParts::Get()->browser(); + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void Browser::Focus(gin::Arguments* args) { + // Focus on the first visible window. + for (auto* const window : WindowList::GetWindows()) { diff --git a/devel/electron18/files/patch-electron_shell_browser_browser.h b/devel/electron18/files/patch-electron_shell_browser_browser.h new file mode 100644 index 000000000000..05dae7231c0c --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_browser.h @@ -0,0 +1,33 @@ +--- electron/shell/browser/browser.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/browser.h +@@ -101,7 +101,7 @@ class Browser : public WindowListObserver { + + std::u16string GetApplicationNameForProtocol(const GURL& url); + +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + // get the name, icon and path for an application + v8::Local<v8::Promise> GetApplicationInfoForProtocol(v8::Isolate* isolate, + const GURL& url); +@@ -260,10 +260,10 @@ class Browser : public WindowListObserver { + PCWSTR GetAppUserModelID(); + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Whether Unity launcher is running. + bool IsUnityRunning(); +-#endif // BUILDFLAG(IS_LINUX) ++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + // Tell the application to open a file. + bool OpenFile(const std::string& file_path); +@@ -360,7 +360,7 @@ class Browser : public WindowListObserver { + base::Time last_dock_show_; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + base::Value about_panel_options_; + #elif BUILDFLAG(IS_MAC) + base::DictionaryValue about_panel_options_; diff --git a/devel/electron18/files/patch-electron_shell_browser_browser__linux.cc b/devel/electron18/files/patch-electron_shell_browser_browser__linux.cc new file mode 100644 index 000000000000..121929445fcb --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_browser__linux.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/browser_linux.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/browser_linux.cc +@@ -15,7 +15,7 @@ + #include "shell/browser/window_list.h" + #include "shell/common/application_info.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "shell/browser/linux/unity_service.h" + #include "ui/gtk/gtk_util.h" // nogncheck + #endif diff --git a/devel/electron18/files/patch-electron_shell_browser_electron__browser__client.cc b/devel/electron18/files/patch-electron_shell_browser_electron__browser__client.cc new file mode 100644 index 000000000000..a4b62329be10 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_electron__browser__client.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/electron_browser_client.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/electron_browser_client.cc +@@ -182,7 +182,7 @@ + #include "content/public/common/child_process_host.h" + #endif + +-#if BUILDFLAG(IS_LINUX) && !defined(MAS_BUILD) ++#if BUILDFLAG(IS_LINUX) && !defined(MAS_BUILD) && !BUILDFLAG(IS_BSD) + #include "base/debug/leak_annotations.h" + #include "components/crash/content/browser/crash_handler_host_linux.h" + #include "components/crash/core/app/breakpad_linux.h" // nogncheck diff --git a/devel/electron18/files/patch-electron_shell_browser_electron__browser__main__parts.cc b/devel/electron18/files/patch-electron_shell_browser_electron__browser__main__parts.cc new file mode 100644 index 000000000000..e21d597f8014 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_electron__browser__main__parts.cc @@ -0,0 +1,93 @@ +--- electron/shell/browser/electron_browser_main_parts.cc.orig 2022-05-25 15:32:14 UTC ++++ electron/shell/browser/electron_browser_main_parts.cc +@@ -64,7 +64,7 @@ + #include "ui/wm/core/wm_state.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/environment.h" + #include "base/threading/thread_task_runner_handle.h" + #include "device/bluetooth/bluetooth_adapter_factory.h" +@@ -145,7 +145,7 @@ std::u16string MediaStringProvider(media::MessageId id + } + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // GTK does not provide a way to check if current theme is dark, so we compare + // the text and background luminosity to get a result. + // This trick comes from FireFox. +@@ -163,7 +163,7 @@ void UpdateDarkThemeSetting() { + + } // namespace + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + class DarkThemeObserver : public ui::NativeThemeObserver { + public: + DarkThemeObserver() = default; +@@ -216,7 +216,7 @@ int ElectronBrowserMainParts::PreEarlyInitialization() + #if BUILDFLAG(IS_POSIX) + HandleSIGCHLD(); + #endif +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ui::OzonePlatform::PreEarlyInitialization(); + #endif + +@@ -277,7 +277,7 @@ int ElectronBrowserMainParts::PreCreateThreads() { + #if defined(USE_AURA) + screen_ = views::CreateDesktopScreen(); + display::Screen::SetScreenInstance(screen_.get()); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + views::LinuxUI::instance()->UpdateDeviceScaleFactor(); + #endif + #endif +@@ -294,7 +294,7 @@ int ElectronBrowserMainParts::PreCreateThreads() { + // happen before the ResourceBundle is loaded + if (locale.empty()) + l10n_util::OverrideLocaleWithCocoaLocale(); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // l10n_util::GetApplicationLocaleInternal uses g_get_language_names(), + // which keys off of getenv("LC_ALL"). + // We must set this env first to make ui::ResourceBundle accept the custom +@@ -317,7 +317,7 @@ int ElectronBrowserMainParts::PreCreateThreads() { + ElectronBrowserClient::SetApplicationLocale(app_locale); + fake_browser_process_->SetApplicationLocale(app_locale); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Reset to the original LC_ALL since we should not be changing it. + if (!locale.empty()) { + if (lc_all) +@@ -364,7 +364,7 @@ void ElectronBrowserMainParts::PostDestroyThreads() { + } + + void ElectronBrowserMainParts::ToolkitInitialized() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + auto linux_ui = BuildGtkUi(); + linux_ui->Initialize(); + DCHECK(ui::LinuxInputMethodContextFactory::instance()); +@@ -477,7 +477,9 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo + ui::OzonePlatform::GetInstance()->PostCreateMainMessageLoop( + std::move(shutdown_cb)); + bluez::DBusBluezManagerWrapperLinux::Initialize(); ++#endif + ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set up crypt config. This needs to be done before anything starts the + // network service, as the raw encryption key needs to be shared with the + // network service for encrypted cookie storage. +@@ -536,7 +538,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun( + fake_browser_process_->PostMainMessageLoopRun(); + content::DevToolsAgentHost::StopRemoteDebuggingPipeHandler(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ui::OzonePlatform::GetInstance()->PostMainMessageLoopRun(); + #endif + } diff --git a/devel/electron18/files/patch-electron_shell_browser_electron__browser__main__parts.h b/devel/electron18/files/patch-electron_shell_browser_electron__browser__main__parts.h new file mode 100644 index 000000000000..f92fd4ce1bb9 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_electron__browser__main__parts.h @@ -0,0 +1,20 @@ +--- electron/shell/browser/electron_browser_main_parts.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/electron_browser_main_parts.h +@@ -61,7 +61,7 @@ class ViewsDelegate; + class ViewsDelegateMac; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + class DarkThemeObserver; + #endif + +@@ -139,7 +139,7 @@ class ElectronBrowserMainParts : public content::Brows + std::unique_ptr<display::Screen> screen_; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Used to notify the native theme of changes to dark mode. + std::unique_ptr<DarkThemeObserver> dark_theme_observer_; + #endif diff --git a/devel/electron18/files/patch-electron_shell_browser_electron__browser__main__parts__posix.cc b/devel/electron18/files/patch-electron_shell_browser_electron__browser__main__parts__posix.cc new file mode 100644 index 000000000000..da5765c6d24f --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_electron__browser__main__parts__posix.cc @@ -0,0 +1,19 @@ +--- electron/shell/browser/electron_browser_main_parts_posix.cc.orig 2022-05-11 15:32:29 UTC ++++ electron/shell/browser/electron_browser_main_parts_posix.cc +@@ -198,12 +198,16 @@ void ElectronBrowserMainParts::InstallShutdownSignalHa + g_pipe_pid = getpid(); + g_shutdown_pipe_read_fd = pipefd[0]; + g_shutdown_pipe_write_fd = pipefd[1]; ++#if defined(OS_BSD) ++ const size_t kShutdownDetectorThreadStackSize = 0; ++#else + #if !defined(ADDRESS_SANITIZER) + const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 2; + #else + // ASan instrumentation bloats the stack frames, so we need to increase the + // stack size to avoid hitting the guard page. + const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 4; ++#endif + #endif + ShutdownDetector* detector = new ShutdownDetector( + g_shutdown_pipe_read_fd, std::move(shutdown_callback), task_runner); diff --git a/devel/electron18/files/patch-electron_shell_browser_native__window.cc b/devel/electron18/files/patch-electron_shell_browser_native__window.cc new file mode 100644 index 000000000000..90c5ac8bad53 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_native__window.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/native_window.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/native_window.cc +@@ -185,7 +185,7 @@ void NativeWindow::InitFromOptions(const gin_helper::D + } else { + SetSizeConstraints(size_constraints); + } +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool resizable; + if (options.Get(options::kResizable, &resizable)) { + SetResizable(resizable); diff --git a/devel/electron18/files/patch-electron_shell_browser_native__window__views.cc b/devel/electron18/files/patch-electron_shell_browser_native__window__views.cc new file mode 100644 index 000000000000..0c164f7150c6 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_native__window__views.cc @@ -0,0 +1,128 @@ +--- electron/shell/browser/native_window_views.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/native_window_views.cc +@@ -43,7 +43,7 @@ + #include "ui/wm/core/shadow_types.h" + #include "ui/wm/core/window_util.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/strings/string_util.h" + #include "shell/browser/browser.h" + #include "shell/browser/linux/unity_service.h" +@@ -264,7 +264,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: + params.parent = parent->GetNativeWindow(); + + params.native_widget = new ElectronDesktopNativeWidgetAura(this); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::string name = Browser::Get()->GetName(); + // Set WM_WINDOW_ROLE. + params.wm_role_name = "browser-window"; +@@ -287,7 +287,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: + std::string window_type; + options.Get(options::kType, &window_type); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Set _GTK_THEME_VARIANT to dark if we have "dark-theme" option set. + bool use_dark_theme = false; + if (options.Get(options::kDarkTheme, &use_dark_theme) && use_dark_theme) { +@@ -393,7 +393,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: + if (window) + window->AddPreTargetHandler(this); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On linux after the widget is initialized we might have to force set the + // bounds if the bounds are smaller than the current display + SetBounds(gfx::Rect(GetPosition(), bounds.size()), false); +@@ -536,7 +536,7 @@ bool NativeWindowViews::IsVisible() { + bool NativeWindowViews::IsEnabled() { + #if BUILDFLAG(IS_WIN) + return ::IsWindowEnabled(GetAcceleratedWidget()); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #if defined(USE_OZONE_PLATFORM_X11) + if (IsX11()) + return !event_disabler_.get(); +@@ -594,7 +594,7 @@ void NativeWindowViews::SetEnabledInternal(bool enable + #endif + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void NativeWindowViews::Maximize() { + if (IsVisible()) { + widget()->Maximize(); +@@ -722,7 +722,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou + } + #endif + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Linux and Windows the minimum and maximum size should be updated with + // window size when window is not resizable. + if (!resizable_) { +@@ -939,7 +939,7 @@ bool NativeWindowViews::IsClosable() { + return false; + } + return !(info.fState & MFS_DISABLED); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return true; + #endif + } +@@ -1331,7 +1331,7 @@ void NativeWindowViews::SetProgressBar(double progress + NativeWindow::ProgressState state) { + #if BUILDFLAG(IS_WIN) + taskbar_host_.SetProgressBar(GetAcceleratedWidget(), progress, state); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (unity::IsRunning()) { + unity::SetProgressFraction(progress); + } +@@ -1393,7 +1393,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM + #if BUILDFLAG(IS_WIN) + window_handle = + reinterpret_cast<content::DesktopMediaID::Id>(accelerated_widget); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + window_handle = static_cast<uint32_t>(accelerated_widget); + #endif + aura::WindowTreeHost* const host = +@@ -1496,7 +1496,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC + SendMessage(hwnd, WM_SETICON, ICON_BIG, + reinterpret_cast<LPARAM>(app_icon_.get())); + } +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void NativeWindowViews::SetIcon(const gfx::ImageSkia& icon) { + auto* tree_host = views::DesktopWindowTreeHostLinux::GetHostForWidget( + GetAcceleratedWidget()); +@@ -1566,7 +1566,7 @@ bool NativeWindowViews::CanMaximize() const { + bool NativeWindowViews::CanMinimize() const { + #if BUILDFLAG(IS_WIN) + return minimizable_; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return true; + #endif + } +@@ -1640,7 +1640,7 @@ void NativeWindowViews::HandleKeyboardEvent( + if (widget_destroyed_) + return; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (event.windows_key_code == ui::VKEY_BROWSER_BACK) + NotifyWindowExecuteAppCommand(kBrowserBackward); + else if (event.windows_key_code == ui::VKEY_BROWSER_FORWARD) +@@ -1659,7 +1659,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e + // Alt+Click should not toggle menu bar. + root_view_->ResetAltState(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (event->changed_button_flags() == ui::EF_BACK_MOUSE_BUTTON) + NotifyWindowExecuteAppCommand(kBrowserBackward); + else if (event->changed_button_flags() == ui::EF_FORWARD_MOUSE_BUTTON) diff --git a/devel/electron18/files/patch-electron_shell_browser_native__window__views.h b/devel/electron18/files/patch-electron_shell_browser_native__window__views.h new file mode 100644 index 000000000000..b26f2a04219d --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_native__window__views.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/native_window_views.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/native_window_views.h +@@ -172,7 +172,7 @@ class NativeWindowViews : public NativeWindow, + LPARAM l_param, + LRESULT* result); + void SetIcon(HICON small_icon, HICON app_icon); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + void SetIcon(const gfx::ImageSkia& icon); + #endif + diff --git a/devel/electron18/files/patch-electron_shell_browser_net_system__network__context__manager.cc b/devel/electron18/files/patch-electron_shell_browser_net_system__network__context__manager.cc new file mode 100644 index 000000000000..8e34a7577935 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_net_system__network__context__manager.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/net/system_network_context_manager.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/net/system_network_context_manager.cc +@@ -46,7 +46,7 @@ + #include "components/os_crypt/keychain_password_mac.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "components/os_crypt/key_storage_config_linux.h" + #endif + diff --git a/devel/electron18/files/patch-electron_shell_browser_osr_osr__host__display__client.cc b/devel/electron18/files/patch-electron_shell_browser_osr_osr__host__display__client.cc new file mode 100644 index 000000000000..b0f4fb5eeacf --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_osr_osr__host__display__client.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/osr/osr_host_display_client.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/osr/osr_host_display_client.cc +@@ -97,7 +97,7 @@ void OffScreenHostDisplayClient::CreateLayeredWindowUp + layered_window_updater_->SetActive(active_); + } + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + void OffScreenHostDisplayClient::DidCompleteSwapWithNewSize( + const gfx::Size& size) {} + #endif diff --git a/devel/electron18/files/patch-electron_shell_browser_osr_osr__host__display__client.h b/devel/electron18/files/patch-electron_shell_browser_osr_osr__host__display__client.h new file mode 100644 index 000000000000..2c08a68bc878 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_osr_osr__host__display__client.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/osr/osr_host_display_client.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/osr/osr_host_display_client.h +@@ -72,7 +72,7 @@ class OffScreenHostDisplayClient : public viz::HostDis + mojo::PendingReceiver<viz::mojom::LayeredWindowUpdater> receiver) + override; + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + void DidCompleteSwapWithNewSize(const gfx::Size& size) override; + #endif + diff --git a/devel/electron18/files/patch-electron_shell_browser_relauncher__linux.cc b/devel/electron18/files/patch-electron_shell_browser_relauncher__linux.cc new file mode 100644 index 000000000000..ce2055b2f2d8 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_relauncher__linux.cc @@ -0,0 +1,32 @@ +--- electron/shell/browser/relauncher_linux.cc.orig 2021-01-22 23:55:24 UTC ++++ electron/shell/browser/relauncher_linux.cc +@@ -6,8 +6,10 @@ + + #include <fcntl.h> + #include <signal.h> ++#if !defined(__FreeBSD__) + #include <sys/prctl.h> + #include <sys/signalfd.h> ++#endif + + #include "base/files/file_util.h" + #include "base/files/scoped_file.h" +@@ -26,6 +28,10 @@ void RelauncherSynchronizeWithParent() { + base::ScopedFD relauncher_sync_fd(kRelauncherSyncFD); + static const auto signum = SIGUSR2; + ++#if defined(__FreeBSD__) ++ PLOG(ERROR) << "signalfd & prctl"; ++ fprintf(stderr, "Not Implemented signalfd & prctl in atom/browser/relauncher_linux.cc"); ++#else + // send signum to current process when parent process ends. + if (HANDLE_EINTR(prctl(PR_SET_PDEATHSIG, signum)) != 0) { + PLOG(ERROR) << "prctl"; +@@ -50,6 +56,7 @@ void RelauncherSynchronizeWithParent() { + + // Wait for the parent to exit + parentWaiter.Wait(); ++#endif + } + + int LaunchProgram(const StringVector& relauncher_args, diff --git a/devel/electron18/files/patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h b/devel/electron18/files/patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h new file mode 100644 index 000000000000..36fa491f6daa --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/ui/inspectable_web_contents_view_delegate.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/ui/inspectable_web_contents_view_delegate.h +@@ -24,7 +24,7 @@ class InspectableWebContentsViewDelegate { + // Returns the icon of devtools window. + virtual ui::ImageModel GetDevToolsWindowIcon(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Called when creating devtools window. + virtual void GetDevToolsWindowWMClass(std::string* name, + std::string* class_name) {} diff --git a/devel/electron18/files/patch-electron_shell_browser_ui_views_electron__views__delegate.cc b/devel/electron18/files/patch-electron_shell_browser_ui_views_electron__views__delegate.cc new file mode 100644 index 000000000000..bdc40a9b974d --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_ui_views_electron__views__delegate.cc @@ -0,0 +1,38 @@ +--- electron/shell/browser/ui/views/electron_views_delegate.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/ui/views/electron_views_delegate.cc +@@ -9,7 +9,7 @@ + #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h" + #include "ui/views/widget/native_widget_aura.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/environment.h" + #include "base/nix/xdg_util.h" + #include "ui/views/linux_ui/linux_ui.h" +@@ -17,7 +17,7 @@ + + namespace { + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + bool IsDesktopEnvironmentUnity() { + auto env = base::Environment::Create(); + base::nix::DesktopEnvironment desktop_env = +@@ -53,7 +53,7 @@ void ViewsDelegate::NotifyMenuItemFocused(const std::u + int item_count, + bool has_submenu) {} + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + gfx::ImageSkia* ViewsDelegate::GetDefaultWindowIcon() const { + return nullptr; + } +@@ -85,7 +85,7 @@ void ViewsDelegate::OnBeforeWidgetInit( + } + + bool ViewsDelegate::WindowManagerProvidesTitleBar(bool maximized) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Ubuntu Unity, the system always provides a title bar for maximized + // windows. + if (!maximized) diff --git a/devel/electron18/files/patch-electron_shell_browser_ui_views_electron__views__delegate.h b/devel/electron18/files/patch-electron_shell_browser_ui_views_electron__views__delegate.h new file mode 100644 index 000000000000..75e9af59f6d2 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_ui_views_electron__views__delegate.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/ui/views/electron_views_delegate.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/ui/views/electron_views_delegate.h +@@ -45,7 +45,7 @@ class ViewsDelegate : public views::ViewsDelegate { + bool IsWindowInMetro(gfx::NativeWindow window) const override; + int GetAppbarAutohideEdges(HMONITOR monitor, + base::OnceClosure callback) override; +-#elif BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#elif (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + gfx::ImageSkia* GetDefaultWindowIcon() const override; + #endif + std::unique_ptr<views::NonClientFrameView> CreateDefaultNonClientFrameView( diff --git a/devel/electron18/files/patch-electron_shell_browser_ui_views_inspectable__web__contents__view__views.cc b/devel/electron18/files/patch-electron_shell_browser_ui_views_inspectable__web__contents__view__views.cc new file mode 100644 index 000000000000..98a7ee80e6f5 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_ui_views_inspectable__web__contents__view__views.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/ui/views/inspectable_web_contents_view_views.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/ui/views/inspectable_web_contents_view_views.cc +@@ -184,7 +184,7 @@ void InspectableWebContentsViewViews::SetIsDocked(bool + params.delegate = devtools_window_delegate_; + params.bounds = inspectable_web_contents()->GetDevToolsBounds(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + params.wm_role_name = "devtools"; + if (GetDelegate()) + GetDelegate()->GetDevToolsWindowWMClass(¶ms.wm_class_name, diff --git a/devel/electron18/files/patch-electron_shell_browser_ui_views_menu__bar.cc b/devel/electron18/files/patch-electron_shell_browser_ui_views_menu__bar.cc new file mode 100644 index 000000000000..96ddaf780769 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_ui_views_menu__bar.cc @@ -0,0 +1,38 @@ +--- electron/shell/browser/ui/views/menu_bar.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/ui/views/menu_bar.cc +@@ -13,7 +13,7 @@ + #include "ui/views/background.h" + #include "ui/views/layout/box_layout.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/gtk/gtk_util.h" // nogncheck + #endif + +@@ -211,7 +211,7 @@ void MenuBar::ButtonPressed(int id, const ui::Event& e + + void MenuBar::RefreshColorCache(const ui::NativeTheme* theme) { + if (theme) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + background_color_ = gtk::GetBgColor("GtkMenuBar#menubar"); + enabled_color_ = + gtk::GetFgColor("GtkMenuBar#menubar GtkMenuItem#menuitem GtkLabel"); +@@ -234,7 +234,7 @@ void MenuBar::RebuildChildren() { + } + + void MenuBar::UpdateViewColors() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // set menubar background color + SetBackground(views::CreateSolidBackground(background_color_)); + #endif +@@ -242,7 +242,7 @@ void MenuBar::UpdateViewColors() { + // set child colors + if (menu_model_ == nullptr) + return; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const auto& textColor = + window_->IsFocused() ? enabled_color_ : disabled_color_; + for (auto* child : GetChildrenInZOrder()) { diff --git a/devel/electron18/files/patch-electron_shell_browser_ui_views_menu__bar.h b/devel/electron18/files/patch-electron_shell_browser_ui_views_menu__bar.h new file mode 100644 index 000000000000..af98f7bbd56b --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_ui_views_menu__bar.h @@ -0,0 +1,11 @@ +--- electron/shell/browser/ui/views/menu_bar.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/ui/views/menu_bar.h +@@ -79,7 +79,7 @@ class MenuBar : public views::AccessiblePaneView, + View* FindAccelChild(char16_t key); + + SkColor background_color_; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + SkColor enabled_color_; + SkColor disabled_color_; + #endif diff --git a/devel/electron18/files/patch-electron_shell_browser_ui_views_submenu__button.cc b/devel/electron18/files/patch-electron_shell_browser_ui_views_submenu__button.cc new file mode 100644 index 000000000000..075d978a0d27 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_browser_ui_views_submenu__button.cc @@ -0,0 +1,11 @@ +--- electron/shell/browser/ui/views/submenu_button.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/browser/ui/views/submenu_button.cc +@@ -22,7 +22,7 @@ SubmenuButton::SubmenuButton(PressedCallback callback, + const SkColor& background_color) + : views::MenuButton(callback, gfx::RemoveAccelerator(title)), + background_color_(background_color) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Dont' use native style border. + SetBorder(CreateDefaultBorder()); + #endif diff --git a/devel/electron18/files/patch-electron_shell_common_api_electron__api__clipboard.cc b/devel/electron18/files/patch-electron_shell_common_api_electron__api__clipboard.cc new file mode 100644 index 000000000000..bb10f3c5d418 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_common_api_electron__api__clipboard.cc @@ -0,0 +1,20 @@ +--- electron/shell/common/api/electron_api_clipboard.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/common/api/electron_api_clipboard.cc +@@ -56,7 +56,7 @@ std::string Clipboard::Read(const std::string& format_ + ui::ClipboardFormatType::CustomPlatformType(format_string)); + bool rawFormatAvailable = clipboard->IsFormatAvailable( + rawFormat, ui::ClipboardBuffer::kCopyPaste, /* data_dst = */ nullptr); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!rawFormatAvailable) { + rawFormatAvailable = clipboard->IsFormatAvailable( + rawFormat, ui::ClipboardBuffer::kSelection, /* data_dst = */ nullptr); +@@ -72,7 +72,7 @@ std::string Clipboard::Read(const std::string& format_ + custom_format_names = + clipboard->ExtractCustomPlatformNames(ui::ClipboardBuffer::kCopyPaste, + /* data_dst = */ nullptr); +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (custom_format_names.find(format_string) == custom_format_names.end()) { + custom_format_names = + clipboard->ExtractCustomPlatformNames(ui::ClipboardBuffer::kSelection, diff --git a/devel/electron18/files/patch-electron_shell_common_api_electron__api__native__image.cc b/devel/electron18/files/patch-electron_shell_common_api_electron__api__native__image.cc new file mode 100644 index 000000000000..79b229ae01c6 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_common_api_electron__api__native__image.cc @@ -0,0 +1,11 @@ +--- electron/shell/common/api/electron_api_native_image.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/common/api/electron_api_native_image.cc +@@ -642,7 +642,7 @@ void Initialize(v8::Local<v8::Object> exports, + native_image.SetMethod("createFromDataURL", &NativeImage::CreateFromDataURL); + native_image.SetMethod("createFromNamedImage", + &NativeImage::CreateFromNamedImage); +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + native_image.SetMethod("createThumbnailFromPath", + &NativeImage::CreateThumbnailFromPath); + #endif diff --git a/devel/electron18/files/patch-electron_shell_common_api_electron__api__native__image.h b/devel/electron18/files/patch-electron_shell_common_api_electron__api__native__image.h new file mode 100644 index 000000000000..8dc1d75df6cb --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_common_api_electron__api__native__image.h @@ -0,0 +1,11 @@ +--- electron/shell/common/api/electron_api_native_image.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/common/api/electron_api_native_image.h +@@ -78,7 +78,7 @@ class NativeImage : public gin::Wrappable<NativeImage> + const GURL& url); + static gin::Handle<NativeImage> CreateFromNamedImage(gin::Arguments* args, + std::string name); +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + static v8::Local<v8::Promise> CreateThumbnailFromPath( + v8::Isolate* isolate, + const base::FilePath& path, diff --git a/devel/electron18/files/patch-electron_shell_common_api_electron__bindings.cc b/devel/electron18/files/patch-electron_shell_common_api_electron__bindings.cc new file mode 100644 index 000000000000..14a60c700cfc --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_common_api_electron__bindings.cc @@ -0,0 +1,11 @@ +--- electron/shell/common/api/electron_bindings.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/common/api/electron_bindings.cc +@@ -267,7 +267,7 @@ void ElectronBindings::DidReceiveMemoryDump( + if (target_pid == dump.pid()) { + gin_helper::Dictionary dict = gin::Dictionary::CreateEmpty(isolate); + const auto& osdump = dump.os_dump(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + dict.Set("residentSet", osdump.resident_set_kb); + #endif + dict.Set("private", osdump.private_footprint_kb); diff --git a/devel/electron18/files/patch-electron_shell_common_electron__command__line.cc b/devel/electron18/files/patch-electron_shell_common_electron__command__line.cc new file mode 100644 index 000000000000..10eb673c987e --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_common_electron__command__line.cc @@ -0,0 +1,11 @@ +--- electron/shell/common/electron_command_line.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/common/electron_command_line.cc +@@ -26,7 +26,7 @@ void ElectronCommandLine::Init(int argc, base::Command + argv_.assign(argv, argv + argc); + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // static + void ElectronCommandLine::InitializeFromCommandLine() { + argv_ = base::CommandLine::ForCurrentProcess()->argv(); diff --git a/devel/electron18/files/patch-electron_shell_common_electron__command__line.h b/devel/electron18/files/patch-electron_shell_common_electron__command__line.h new file mode 100644 index 000000000000..faf234d31c46 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_common_electron__command__line.h @@ -0,0 +1,11 @@ +--- electron/shell/common/electron_command_line.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/common/electron_command_line.h +@@ -22,7 +22,7 @@ class ElectronCommandLine { + + static void Init(int argc, base::CommandLine::CharType** argv); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // On Linux the command line has to be read from base::CommandLine since + // it is using zygote. + static void InitializeFromCommandLine(); diff --git a/devel/electron18/files/patch-electron_shell_common_electron__paths.h b/devel/electron18/files/patch-electron_shell_common_electron__paths.h new file mode 100644 index 000000000000..fe8bd3777055 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_common_electron__paths.h @@ -0,0 +1,11 @@ +--- electron/shell/common/electron_paths.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/common/electron_paths.h +@@ -29,7 +29,7 @@ enum { + DIR_RECENT, // Directory where recent files live + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + DIR_APP_DATA, // Application Data directory under the user profile. + #endif + diff --git a/devel/electron18/files/patch-electron_shell_common_node__bindings.cc b/devel/electron18/files/patch-electron_shell_common_node__bindings.cc new file mode 100644 index 000000000000..fe14b5234ab3 --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_common_node__bindings.cc @@ -0,0 +1,29 @@ +--- electron/shell/common/node_bindings.cc.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/common/node_bindings.cc +@@ -38,7 +38,7 @@ + #include "shell/common/node_includes.h" + #include "third_party/blink/renderer/bindings/core/v8/v8_initializer.h" // nogncheck + +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !defined(OS_BSD) + #include "shell/common/crash_keys.h" + #endif + +@@ -142,7 +142,7 @@ bool g_is_initialized = false; + void V8FatalErrorCallback(const char* location, const char* message) { + LOG(ERROR) << "Fatal error in V8: " << location << " " << message; + +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !defined(OS_BSD) + electron::crash_keys::SetCrashKey("electron.v8-fatal.message", message); + electron::crash_keys::SetCrashKey("electron.v8-fatal.location", location); + #endif +@@ -367,7 +367,7 @@ void NodeBindings::Initialize() { + // Open node's error reporting system for browser process. + node::g_upstream_node_mode = false; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Get real command line in renderer process forked by zygote. + if (browser_env_ != BrowserEnvironment::kBrowser) + ElectronCommandLine::InitializeFromCommandLine(); diff --git a/devel/electron18/files/patch-electron_shell_common_node__bindings__linux.cc b/devel/electron18/files/patch-electron_shell_common_node__bindings__linux.cc new file mode 100644 index 000000000000..d509165f304d --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_common_node__bindings__linux.cc @@ -0,0 +1,69 @@ +--- electron/shell/common/node_bindings_linux.cc.orig 2022-05-04 15:34:10 UTC ++++ electron/shell/common/node_bindings_linux.cc +@@ -4,17 +4,31 @@ + + #include "shell/common/node_bindings_linux.h" + ++#if !defined(OS_BSD) + #include <sys/epoll.h> ++#else ++#include <errno.h> ++#include <sys/select.h> ++#include <sys/sysctl.h> ++#include <sys/time.h> ++#include <sys/types.h> ++#endif + + namespace electron { + + NodeBindingsLinux::NodeBindingsLinux(BrowserEnvironment browser_env) ++#if !defined(OS_BSD) + : NodeBindings(browser_env), epoll_(epoll_create(1)) { ++#else ++ : NodeBindings(browser_env) { ++#endif ++#if !defined(OS_BSD) + int backend_fd = uv_backend_fd(uv_loop_); + struct epoll_event ev = {0}; + ev.events = EPOLLIN; + ev.data.fd = backend_fd; + epoll_ctl(epoll_, EPOLL_CTL_ADD, backend_fd, &ev); ++#endif + } + + NodeBindingsLinux::~NodeBindingsLinux() = default; +@@ -55,6 +69,7 @@ void NodeBindingsLinux::OnWatcherQueueChanged(uv_loop_ + } + + void NodeBindingsLinux::PollEvents() { ++#if !defined(OS_BSD) + int timeout = uv_backend_timeout(uv_loop_); + + // Wait for new libuv events. +@@ -63,6 +78,26 @@ void NodeBindingsLinux::PollEvents() { + struct epoll_event ev; + r = epoll_wait(epoll_, &ev, 1, timeout); + } while (r == -1 && errno == EINTR); ++#else ++ struct timeval tv; ++ int timeout = uv_backend_timeout(uv_loop_); ++ if (timeout != -1) { ++ tv.tv_sec = timeout / 1000; ++ tv.tv_usec = (timeout % 1000) * 1000; ++ } ++ ++ fd_set readset; ++ int fd = uv_backend_fd(uv_loop_); ++ FD_ZERO(&readset); ++ FD_SET(fd, &readset); ++ ++ // Wait for new libuv events. ++ int r; ++ do { ++ r = select(fd + 1, &readset, nullptr, nullptr, ++ timeout == -1 ? nullptr : &tv); ++ } while (r == -1 && errno == EINTR); ++#endif + } + + // static diff --git a/devel/electron18/files/patch-electron_shell_common_platform__util.h b/devel/electron18/files/patch-electron_shell_common_platform__util.h new file mode 100644 index 000000000000..f23a6d36738b --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_common_platform__util.h @@ -0,0 +1,11 @@ +--- electron/shell/common/platform_util.h.orig 2022-05-18 15:31:32 UTC ++++ electron/shell/common/platform_util.h +@@ -52,7 +52,7 @@ bool GetLoginItemEnabled(); + bool SetLoginItemEnabled(bool enabled); + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Returns a success flag. + // Unlike libgtkui, does *not* use "chromium-browser.desktop" as a fallback. + bool GetDesktopName(std::string* setme); diff --git a/devel/electron18/files/patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc b/devel/electron18/files/patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc new file mode 100644 index 000000000000..c48f33089c9c --- /dev/null +++ b/devel/electron18/files/patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc @@ -0,0 +1,36 @@ +--- electron/shell/renderer/api/electron_api_crash_reporter_renderer.cc.orig 2021-01-26 05:34:17 UTC ++++ electron/shell/renderer/api/electron_api_crash_reporter_renderer.cc +@@ -6,7 +6,7 @@ + #include "shell/common/gin_helper/dictionary.h" + #include "shell/common/node_includes.h" + +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !defined(OS_BSD) + #include "shell/common/crash_keys.h" + #endif + +@@ -14,13 +14,13 @@ namespace { + + v8::Local<v8::Value> GetParameters(v8::Isolate* isolate) { + std::map<std::string, std::string> keys; +-#if !defined(MAS_BUILD) ++#if !defined(MAS_BUILD) && !defined(OS_BSD) + electron::crash_keys::GetCrashKeys(&keys); + #endif + return gin::ConvertToV8(isolate, keys); + } + +-#if defined(MAS_BUILD) ++#if defined(MAS_BUILD) || defined(OS_BSD) + void SetCrashKeyStub(const std::string& key, const std::string& value) {} + void ClearCrashKeyStub(const std::string& key) {} + #endif +@@ -30,7 +30,7 @@ void Initialize(v8::Local<v8::Object> exports, + v8::Local<v8::Context> context, + void* priv) { + gin_helper::Dictionary dict(context->GetIsolate(), exports); +-#if defined(MAS_BUILD) ++#if defined(MAS_BUILD) || defined(OS_BSD) + dict.SetMethod("addExtraParameter", &SetCrashKeyStub); + dict.SetMethod("removeExtraParameter", &ClearCrashKeyStub); + #else diff --git a/devel/electron18/files/patch-electron_spec-main_api-app-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-app-spec.ts new file mode 100644 index 000000000000..52658e1f7170 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-app-spec.ts @@ -0,0 +1,119 @@ +--- electron/spec-main/api-app-spec.ts.orig 2022-05-25 15:32:14 UTC ++++ electron/spec-main/api-app-spec.ts +@@ -174,7 +174,7 @@ describe('app module', () => { + }); + + it('exits gracefully', async function () { +- if (!['darwin', 'linux'].includes(process.platform)) { ++ if (!['darwin', 'linux', 'freebsd'].includes(process.platform)) { + this.skip(); + return; + } +@@ -436,7 +436,7 @@ describe('app module', () => { + // let w = null + + // before(function () { +- // if (process.platform !== 'linux') { ++ // if (process.platform !== 'linux' && process.platform !== 'freebsd') { + // this.skip() + // } + // }) +@@ -559,7 +559,7 @@ describe('app module', () => { + describe('app.badgeCount', () => { + const platformIsNotSupported = + (process.platform === 'win32') || +- (process.platform === 'linux' && !app.isUnityRunning()); ++ ((process.platform === 'linux' || process.platform === 'freebsd') && !app.isUnityRunning()); + + const expectedBadgeCount = 42; + +@@ -603,7 +603,7 @@ describe('app module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux' && !process.mas)('app.get/setLoginItemSettings API', function () { ++ ifdescribe((process.platform !== 'linux' && process.platform !== 'freebsd') && !process.mas)('app.get/setLoginItemSettings API', function () { + const updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe'); + const processStartArgs = [ + '--processStart', `"${path.basename(process.execPath)}"`, +@@ -920,7 +920,7 @@ describe('app module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('accessibilitySupportEnabled property', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('accessibilitySupportEnabled property', () => { + it('with properties', () => { + it('can set accessibility support enabled', () => { + expect(app.accessibilitySupportEnabled).to.eql(false); +@@ -1038,7 +1038,7 @@ describe('app module', () => { + let w: BrowserWindow; + + before(function () { +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + this.skip(); + } + session.fromPartition('empty-certificate').setCertificateVerifyProc((req, cb) => { cb(0); }); +@@ -1179,7 +1179,7 @@ describe('app module', () => { + // We can't expect particular app names here, but these protocols should + // at least have _something_ registered. Except on our Linux CI + // environment apparently. +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + this.skip(); + } + +@@ -1197,7 +1197,7 @@ describe('app module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('getApplicationInfoForProtocol()', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('getApplicationInfoForProtocol()', () => { + it('returns promise rejection for a bogus protocol', async function () { + await expect( + app.getApplicationInfoForProtocol('bogus-protocol://') +@@ -1247,7 +1247,7 @@ describe('app module', () => { + }); + + // FIXME Get these specs running on Linux CI +- ifdescribe(process.platform !== 'linux')('getFileIcon() API', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('getFileIcon() API', () => { + const iconPath = path.join(__dirname, 'fixtures/assets/icon.ico'); + const sizes = { + small: 16, +@@ -1328,7 +1328,7 @@ describe('app module', () => { + expect(entry.memory).to.have.property('privateBytes').that.is.greaterThan(0); + } + +- if (process.platform !== 'linux') { ++ if (process.platform !== 'linux' && process.platform !== 'freebsd') { + expect(entry.sandboxed).to.be.a('boolean'); + } + +@@ -1354,7 +1354,7 @@ describe('app module', () => { + }); + + // FIXME https://github.com/electron/electron/issues/24224 +- ifdescribe(process.platform !== 'linux')('getGPUInfo() API', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('getGPUInfo() API', () => { + const appPath = path.join(fixturesPath, 'api', 'gpu-info.js'); + + const getGPUInfo = async (type: string) => { +@@ -1403,7 +1403,7 @@ describe('app module', () => { + + it('succeeds with complete GPUInfo', async () => { + const completeInfo = await getGPUInfo('complete'); +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + // For linux and macOS complete info is same as basic info + await verifyBasicGPUInfo(completeInfo); + const basicInfo = await getGPUInfo('basic'); +@@ -1433,7 +1433,7 @@ describe('app module', () => { + const socketPath = process.platform === 'win32' ? '\\\\.\\pipe\\electron-mixed-sandbox' : '/tmp/electron-mixed-sandbox'; + + beforeEach(function (done) { +- if (process.platform === 'linux' && (process.arch === 'arm64' || process.arch === 'arm')) { ++ if ((process.platform === 'linux' || process.platform === 'freebsd') && (process.arch === 'arm64' || process.arch === 'arm')) { + // Our ARM tests are run on VSTS rather than CircleCI, and the Docker + // setup on VSTS disallows syscalls that Chrome requires for setting up + // sandboxing. diff --git a/devel/electron18/files/patch-electron_spec-main_api-browser-window-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-browser-window-spec.ts new file mode 100644 index 000000000000..a861ea661bce --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-browser-window-spec.ts @@ -0,0 +1,146 @@ +--- electron/spec-main/api-browser-window-spec.ts.orig 2022-06-15 15:31:31 UTC ++++ electron/spec-main/api-browser-window-spec.ts +@@ -60,7 +60,7 @@ describe('BrowserWindow module', () => { + }).not.to.throw(); + }); + +- ifit(process.platform === 'linux')('does not crash when setting large window icons', async () => { ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('does not crash when setting large window icons', async () => { + const appPath = path.join(__dirname, 'spec-main', 'fixtures', 'apps', 'xwindow-icon'); + const appProcess = childProcess.spawn(process.execPath, [appPath]); + await new Promise((resolve) => { appProcess.once('exit', resolve); }); +@@ -738,7 +738,7 @@ describe('BrowserWindow module', () => { + }); + + // TODO(dsanders11): Enable for Linux once CI plays nice with these kinds of tests +- ifit(process.platform !== 'linux')('should not restore maximized windows', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not restore maximized windows', async () => { + const maximize = emittedOnce(w, 'maximize'); + const shown = emittedOnce(w, 'show'); + w.maximize(); +@@ -775,7 +775,7 @@ describe('BrowserWindow module', () => { + expect(w.isFocused()).to.equal(true); + }); + +- ifit(process.platform !== 'linux')('acquires focus status from the other windows', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('acquires focus status from the other windows', async () => { + const w1 = new BrowserWindow({ show: false }); + const w2 = new BrowserWindow({ show: false }); + const w3 = new BrowserWindow({ show: false }); +@@ -842,7 +842,7 @@ describe('BrowserWindow module', () => { + expect(w.isFocused()).to.equal(false); + }); + +- ifit(process.platform !== 'linux')('transfers focus status to the next window', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('transfers focus status to the next window', async () => { + const w1 = new BrowserWindow({ show: false }); + const w2 = new BrowserWindow({ show: false }); + const w3 = new BrowserWindow({ show: false }); +@@ -1240,7 +1240,7 @@ describe('BrowserWindow module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('Maximized state', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('Maximized state', () => { + it('checks normal bounds when maximized', async () => { + const bounds = w.getBounds(); + const maximize = emittedOnce(w, 'maximize'); +@@ -1367,7 +1367,7 @@ describe('BrowserWindow module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('Minimized state', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('Minimized state', () => { + it('checks normal bounds when minimized', async () => { + const bounds = w.getBounds(); + const minimize = emittedOnce(w, 'minimize'); +@@ -2215,7 +2215,7 @@ describe('BrowserWindow module', () => { + describe('BrowserWindow.setOpacity(opacity)', () => { + afterEach(closeAllWindows); + +- ifdescribe(process.platform !== 'linux')(('Windows and Mac'), () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')(('Windows and Mac'), () => { + it('make window with initial opacity', () => { + const w = new BrowserWindow({ show: false, opacity: 0.5 }); + expect(w.getOpacity()).to.equal(0.5); +@@ -2241,7 +2241,7 @@ describe('BrowserWindow module', () => { + }); + }); + +- ifdescribe(process.platform === 'linux')(('Linux'), () => { ++ ifdescribe(process.platform === 'linux' || process.platform === 'freebsd')(('Linux'), () => { + it('sets 1 regardless of parameter', () => { + const w = new BrowserWindow({ show: false }); + w.setOpacity(0); +@@ -3047,7 +3047,7 @@ describe('BrowserWindow module', () => { + expect(test.versions).to.deep.equal(process.versions); + expect(test.contextId).to.be.a('string'); + +- if (process.platform === 'linux' && test.osSandbox) { ++ if ((process.platform === 'linux' || process.platform === 'freebsd') && test.osSandbox) { + expect(test.creationTime).to.be.null('creation time'); + expect(test.systemMemoryInfo).to.be.null('system memory info'); + } else { +@@ -3620,7 +3620,7 @@ describe('BrowserWindow module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('max/minimize events', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('max/minimize events', () => { + afterEach(closeAllWindows); + it('emits an event when window is maximized', async () => { + const w = new BrowserWindow({ show: false }); +@@ -3879,7 +3879,7 @@ describe('BrowserWindow module', () => { + }); + + // TODO(dsanders11): Enable once maximize event works on Linux again on CI +- ifdescribe(process.platform !== 'linux')('BrowserWindow.maximize()', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('BrowserWindow.maximize()', () => { + afterEach(closeAllWindows); + it('should show the window if it is not currently shown', async () => { + const w = new BrowserWindow({ show: false }); +@@ -3916,7 +3916,7 @@ describe('BrowserWindow module', () => { + + // TODO(dsanders11): Enable once minimize event works on Linux again. + // See https://github.com/electron/electron/issues/28699 +- ifit(process.platform !== 'linux')('should not restore a minimized window', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not restore a minimized window', async () => { + const w = new BrowserWindow(); + const minimize = emittedOnce(w, 'minimize'); + w.minimize(); +@@ -4271,7 +4271,7 @@ describe('BrowserWindow module', () => { + }); + + // On Linux there is no "resizable" property of a window. +- ifit(process.platform !== 'linux')('does affect maximizability when disabled and enabled', () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('does affect maximizability when disabled and enabled', () => { + const w = new BrowserWindow({ show: false }); + expect(w.resizable).to.be.true('resizable'); + +@@ -4363,7 +4363,7 @@ describe('BrowserWindow module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('window states (excluding Linux)', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('window states (excluding Linux)', () => { + // Not implemented on Linux. + afterEach(closeAllWindows); + +@@ -5287,7 +5287,7 @@ describe('BrowserWindow module', () => { + }); + + // Linux and arm64 platforms (WOA and macOS) do not return any capture sources +- ifit(process.platform !== 'linux' && process.arch !== 'arm64')('should not display a visible background', async () => { ++ ifit((process.platform !== 'linux' && process.platform !== 'freebsd') && process.arch !== 'arm64')('should not display a visible background', async () => { + const display = screen.getPrimaryDisplay(); + + const backgroundWindow = new BrowserWindow({ +@@ -5329,7 +5329,7 @@ describe('BrowserWindow module', () => { + afterEach(closeAllWindows); + + // Linux and arm64 platforms (WOA and macOS) do not return any capture sources +- ifit(process.platform !== 'linux' && process.arch !== 'arm64')('should display the set color', async () => { ++ ifit((process.platform !== 'linux' && process.platform !== 'freebsd') && process.arch !== 'arm64')('should display the set color', async () => { + const display = screen.getPrimaryDisplay(); + + const w = new BrowserWindow({ diff --git a/devel/electron18/files/patch-electron_spec-main_api-crash-reporter-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-crash-reporter-spec.ts new file mode 100644 index 000000000000..d80213e01287 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-crash-reporter-spec.ts @@ -0,0 +1,56 @@ +--- electron/spec-main/api-crash-reporter-spec.ts.orig 2021-12-03 01:46:05 UTC ++++ electron/spec-main/api-crash-reporter-spec.ts +@@ -12,7 +12,7 @@ import * as fs from 'fs'; + import * as uuid from 'uuid'; + + const isWindowsOnArm = process.platform === 'win32' && process.arch === 'arm64'; +-const isLinuxOnArm = process.platform === 'linux' && process.arch.includes('arm'); ++const isLinuxOnArm = ((process.platform === 'linux' || process.platform === 'freebsd') && process.arch.includes('arm')); + + type CrashInfo = { + prod: string +@@ -45,7 +45,7 @@ function checkCrash (expectedProcessType: string, fiel + + // TODO(nornagon): minidumps are sometimes (not always) turning up empty on + // 32-bit Linux. Figure out why. +- if (!(process.platform === 'linux' && process.arch === 'ia32')) { ++ if (!((process.platform === 'linux' || process.platform === 'freebsd') && process.arch === 'ia32')) { + expect(fields.upload_file_minidump.length).to.be.greaterThan(0); + } + } +@@ -279,7 +279,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e + setTimeout(() => process.crash()); + }, port); + const crash = await waitForCrash(); +- expect(stitchLongCrashParam(crash, 'longParam')).to.have.lengthOf(160 * 127 + (process.platform === 'linux' ? 159 : 0), 'crash should have truncated longParam'); ++ expect(stitchLongCrashParam(crash, 'longParam')).to.have.lengthOf(160 * 127 + ((process.platform === 'linux' || process.platform === 'freebsd') ? 159 : 0), 'crash should have truncated longParam'); + }); + + it('should omit extra keys with names longer than the maximum', async () => { +@@ -508,7 +508,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e + } + } + +- const processList = process.platform === 'linux' ? ['main', 'renderer', 'sandboxed-renderer'] ++ const processList = (process.platform === 'linux' || process.platform === 'freebsd') ? ['main', 'renderer', 'sandboxed-renderer'] + : ['main', 'renderer', 'sandboxed-renderer', 'node']; + for (const crashingProcess of processList) { + describe(`when ${crashingProcess} crashes`, () => { +@@ -520,7 +520,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e + return app.getPath('crashDumps'); + }); + let reportsDir = crashesDir; +- if (process.platform === 'darwin' || process.platform === 'linux') { ++ if (process.platform === 'darwin' || process.platform === 'linux' || process.platform === 'freebsd') { + reportsDir = path.join(crashesDir, 'completed'); + } else if (process.platform === 'win32') { + reportsDir = path.join(crashesDir, 'reports'); +@@ -544,7 +544,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e + expect(remoteCrashesDir).to.equal(crashesDir); + + let reportsDir = crashesDir; +- if (process.platform === 'darwin' || process.platform === 'linux') { ++ if (process.platform === 'darwin' || process.platform === 'linux' || process.platform === 'freebsd') { + reportsDir = path.join(crashesDir, 'completed'); + } else if (process.platform === 'win32') { + reportsDir = path.join(crashesDir, 'reports'); diff --git a/devel/electron18/files/patch-electron_spec-main_api-desktop-capturer-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-desktop-capturer-spec.ts new file mode 100644 index 000000000000..6942ef208036 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-desktop-capturer-spec.ts @@ -0,0 +1,47 @@ +--- electron/spec-main/api-desktop-capturer-spec.ts.orig 2022-05-18 15:31:32 UTC ++++ electron/spec-main/api-desktop-capturer-spec.ts +@@ -49,7 +49,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl + }); + + // Linux doesn't return any window sources. +- ifit(process.platform !== 'linux')('returns an empty display_id for window sources', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('returns an empty display_id for window sources', async () => { + const w = new BrowserWindow({ width: 200, height: 200 }); + await w.loadURL('about:blank'); + +@@ -61,7 +61,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl + } + }); + +- ifit(process.platform !== 'linux')('returns display_ids matching the Screen API', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('returns display_ids matching the Screen API', async () => { + const displays = screen.getAllDisplays(); + const sources = await desktopCapturer.getSources({ types: ['screen'] }); + expect(sources).to.be.an('array').of.length(displays.length); +@@ -106,7 +106,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl + // TODO(julien.isorce): investigate why |sources| is empty on the linux + // bots while it is not on my workstation, as expected, with and without + // the --ci parameter. +- if (process.platform === 'linux' && sources.length === 0) { ++ if ((process.platform === 'linux' || process.platform === 'freebsd') && sources.length === 0) { + it.skip('desktopCapturer.getSources returned an empty source list'); + return; + } +@@ -142,7 +142,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl + // TODO(julien.isorce): investigate why |sources| is empty on the linux + // bots while it is not on my workstation, as expected, with and without + // the --ci parameter. +- if (process.platform === 'linux' && sources.length === 0) { ++ if ((process.platform === 'linux' || process.platform === 'freebsd') && sources.length === 0) { + it.skip('desktopCapturer.getSources returned an empty source list'); + return; + } +@@ -186,7 +186,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl + // TODO(julien.isorce): investigate why |sources| is empty on the linux + // bots while it is not on my workstation, as expected, with and without + // the --ci parameter. +- if (process.platform === 'linux' && sources.length === 0) { ++ if ((process.platform === 'linux' || process.platform === 'freebsd') && sources.length === 0) { + wList.forEach((w) => { + if (w !== mainWindow) { + w.destroy(); diff --git a/devel/electron18/files/patch-electron_spec-main_api-net-log-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-net-log-spec.ts new file mode 100644 index 000000000000..d93c7cf23545 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-net-log-spec.ts @@ -0,0 +1,29 @@ +--- electron/spec-main/api-net-log-spec.ts.orig 2021-01-22 23:55:24 UTC ++++ electron/spec-main/api-net-log-spec.ts +@@ -121,7 +121,7 @@ describe('netLog module', () => { + expect(JSON.parse(dump).events.some((x: any) => x.params && x.params.bytes && Buffer.from(x.params.bytes, 'base64').includes(unique))).to.be.true('uuid present in dump'); + }); + +- ifit(process.platform !== 'linux')('should begin and end logging automatically when --log-net-log is passed', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should begin and end logging automatically when --log-net-log is passed', async () => { + const appProcess = ChildProcess.spawn(process.execPath, + [appPath], { + env: { +@@ -134,7 +134,7 @@ describe('netLog module', () => { + expect(fs.existsSync(dumpFile)).to.be.true('dump file exists'); + }); + +- ifit(process.platform !== 'linux')('should begin and end logging automtically when --log-net-log is passed, and behave correctly when .startLogging() and .stopLogging() is called', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should begin and end logging automtically when --log-net-log is passed, and behave correctly when .startLogging() and .stopLogging() is called', async () => { + const appProcess = ChildProcess.spawn(process.execPath, + [appPath], { + env: { +@@ -150,7 +150,7 @@ describe('netLog module', () => { + expect(fs.existsSync(dumpFileDynamic)).to.be.true('dynamic dump file exists'); + }); + +- ifit(process.platform !== 'linux')('should end logging automatically when only .startLogging() is called', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should end logging automatically when only .startLogging() is called', async () => { + const appProcess = ChildProcess.spawn(process.execPath, + [appPath], { + env: { diff --git a/devel/electron18/files/patch-electron_spec-main_api-notification-dbus-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-notification-dbus-spec.ts new file mode 100644 index 000000000000..107fa8e856a9 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-notification-dbus-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec-main/api-notification-dbus-spec.ts.orig 2021-01-22 23:55:24 UTC ++++ electron/spec-main/api-notification-dbus-spec.ts +@@ -12,7 +12,7 @@ import { app } from 'electron/main'; + import { ifdescribe } from './spec-helpers'; + import { promisify } from 'util'; + +-const skip = process.platform !== 'linux' || ++const skip = (process.platform !== 'linux' && process.platform !== 'freebsd') || + process.arch === 'ia32' || + process.arch.indexOf('arm') === 0 || + !process.env.DBUS_SESSION_BUS_ADDRESS; diff --git a/devel/electron18/files/patch-electron_spec-main_api-power-monitor-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-power-monitor-spec.ts new file mode 100644 index 000000000000..b6a464bc5f2f --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-power-monitor-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec-main/api-power-monitor-spec.ts.orig 2021-01-22 23:55:24 UTC ++++ electron/spec-main/api-power-monitor-spec.ts +@@ -15,7 +15,7 @@ describe('powerMonitor', () => { + let logindMock: any, dbusMockPowerMonitor: any, getCalls: any, emitSignal: any, reset: any; + + // TODO(deepak1556): Enable on arm64 after upgrade, it crashes at the moment. +- ifdescribe(process.platform === 'linux' && process.arch !== 'arm64' && process.env.DBUS_SYSTEM_BUS_ADDRESS != null)('when powerMonitor module is loaded with dbus mock', () => { ++ ifdescribe((process.platform === 'linux' || process.platform === 'freebsd') && process.arch !== 'arm64' && process.env.DBUS_SYSTEM_BUS_ADDRESS != null)('when powerMonitor module is loaded with dbus mock', () => { + before(async () => { + const systemBus = dbus.systemBus(); + const loginService = systemBus.getService('org.freedesktop.login1'); diff --git a/devel/electron18/files/patch-electron_spec-main_api-safe-storage-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-safe-storage-spec.ts new file mode 100644 index 000000000000..47597eb2b9d9 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-safe-storage-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec-main/api-safe-storage-spec.ts.orig 2022-05-18 15:31:32 UTC ++++ electron/spec-main/api-safe-storage-spec.ts +@@ -33,7 +33,7 @@ describe('safeStorage module', () => { + }); + }); + +-ifdescribe(process.platform !== 'linux')('safeStorage module', () => { ++ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('safeStorage module', () => { + after(async () => { + const pathToEncryptedString = path.resolve(__dirname, 'fixtures', 'api', 'safe-storage', 'encrypted.txt'); + if (fs.existsSync(pathToEncryptedString)) { diff --git a/devel/electron18/files/patch-electron_spec-main_api-screen-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-screen-spec.ts new file mode 100644 index 000000000000..4bdd3ef89563 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-screen-spec.ts @@ -0,0 +1,38 @@ +--- electron/spec-main/api-screen-spec.ts.orig 2021-04-20 23:32:33 UTC ++++ electron/spec-main/api-screen-spec.ts +@@ -29,7 +29,7 @@ describe('screen module', () => { + }); + + it('has the correct non-object properties', function () { +- if (process.platform === 'linux') this.skip(); ++ if (process.platform === 'linux' || process.platform === 'freebsd') this.skip(); + const display = screen.getPrimaryDisplay(); + + expect(display).to.have.property('scaleFactor').that.is.a('number'); +@@ -46,7 +46,7 @@ describe('screen module', () => { + }); + + it('has a size object property', function () { +- if (process.platform === 'linux') this.skip(); ++ if (process.platform === 'linux' || process.platform === 'freebsd') this.skip(); + const display = screen.getPrimaryDisplay(); + + expect(display).to.have.property('size').that.is.an('object'); +@@ -56,7 +56,7 @@ describe('screen module', () => { + }); + + it('has a workAreaSize object property', function () { +- if (process.platform === 'linux') this.skip(); ++ if (process.platform === 'linux' || process.platform === 'freebsd') this.skip(); + const display = screen.getPrimaryDisplay(); + + expect(display).to.have.property('workAreaSize').that.is.an('object'); +@@ -66,7 +66,7 @@ describe('screen module', () => { + }); + + it('has a bounds object property', function () { +- if (process.platform === 'linux') this.skip(); ++ if (process.platform === 'linux' || process.platform === 'freebsd') this.skip(); + const display = screen.getPrimaryDisplay(); + + expect(display).to.have.property('bounds').that.is.an('object'); diff --git a/devel/electron18/files/patch-electron_spec-main_api-shell-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-shell-spec.ts new file mode 100644 index 000000000000..0b4939eb0dac --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-shell-spec.ts @@ -0,0 +1,23 @@ +--- electron/spec-main/api-shell-spec.ts.orig 2021-10-27 21:25:28 UTC ++++ electron/spec-main/api-shell-spec.ts +@@ -23,7 +23,7 @@ describe('shell module', () => { + + afterEach(async () => { + // reset env vars to prevent side effects +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + process.env.DE = envVars.de; + process.env.BROWSER = envVars.browser; + process.env.DISPLAY = envVars.display; +@@ -36,6 +36,11 @@ describe('shell module', () => { + let requestReceived: Promise<any>; + if (process.platform === 'linux') { + process.env.BROWSER = '/bin/true'; ++ process.env.DE = 'generic'; ++ process.env.DISPLAY = ''; ++ requestReceived = Promise.resolve(); ++ } else if (process.platform === 'freebsd') { ++ process.env.BROWSER = '/usr/bin/true'; + process.env.DE = 'generic'; + process.env.DISPLAY = ''; + requestReceived = Promise.resolve(); diff --git a/devel/electron18/files/patch-electron_spec-main_api-subframe-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-subframe-spec.ts new file mode 100644 index 000000000000..aa620c9db292 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-subframe-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec-main/api-subframe-spec.ts.orig 2021-04-20 23:32:33 UTC ++++ electron/spec-main/api-subframe-spec.ts +@@ -213,7 +213,7 @@ describe('renderer nodeIntegrationInSubFrames', () => + }); + + // app.getAppMetrics() does not return sandbox information on Linux. +-ifdescribe(process.platform !== 'linux')('cross-site frame sandboxing', () => { ++ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('cross-site frame sandboxing', () => { + let server: http.Server; + let crossSiteUrl: string; + let serverUrl: string; diff --git a/devel/electron18/files/patch-electron_spec-main_api-tray-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-tray-spec.ts new file mode 100644 index 000000000000..43ac252e443d --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-tray-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec-main/api-tray-spec.ts.orig 2021-01-22 23:55:24 UTC ++++ electron/spec-main/api-tray-spec.ts +@@ -125,7 +125,7 @@ describe('tray module', () => { + describe('tray.getBounds()', () => { + afterEach(() => { tray.destroy(); }); + +- ifit(process.platform !== 'linux')('returns a bounds object', function () { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('returns a bounds object', function () { + const bounds = tray.getBounds(); + expect(bounds).to.be.an('object').and.to.have.all.keys('x', 'y', 'width', 'height'); + }); diff --git a/devel/electron18/files/patch-electron_spec-main_api-web-contents-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-web-contents-spec.ts new file mode 100644 index 000000000000..910f54106aae --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-web-contents-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec-main/api-web-contents-spec.ts.orig 2021-11-08 18:41:28 UTC ++++ electron/spec-main/api-web-contents-spec.ts +@@ -179,7 +179,7 @@ describe('webContents module', () => { + }).to.throw('webContents.print(): Invalid optional callback provided.'); + }); + +- ifit(process.platform !== 'linux')('throws when an invalid deviceName is passed', () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('throws when an invalid deviceName is passed', () => { + expect(() => { + w.webContents.print({ deviceName: 'i-am-a-nonexistent-printer' }, () => {}); + }).to.throw('webContents.print(): Invalid deviceName provided.'); diff --git a/devel/electron18/files/patch-electron_spec-main_api-web-frame-main-spec.ts b/devel/electron18/files/patch-electron_spec-main_api-web-frame-main-spec.ts new file mode 100644 index 000000000000..82f2ee8c761e --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_api-web-frame-main-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec-main/api-web-frame-main-spec.ts.orig 2022-05-18 15:31:32 UTC ++++ electron/spec-main/api-web-frame-main-spec.ts +@@ -204,7 +204,7 @@ describe('webFrameMain module', () => { + }); + + // TODO(jkleinsc) fix this flaky test on linux +- ifit(process.platform !== 'linux')('throws upon accessing properties when disposed', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('throws upon accessing properties when disposed', async () => { + await w.loadFile(path.join(subframesPath, 'frame-with-frame-container.html')); + const { mainFrame } = w.webContents; + w.destroy(); diff --git a/devel/electron18/files/patch-electron_spec-main_chromium-spec.ts b/devel/electron18/files/patch-electron_spec-main_chromium-spec.ts new file mode 100644 index 000000000000..5e59c7d878f1 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_chromium-spec.ts @@ -0,0 +1,44 @@ +--- electron/spec-main/chromium-spec.ts.orig 2022-05-25 15:32:14 UTC ++++ electron/spec-main/chromium-spec.ts +@@ -400,13 +400,13 @@ describe('command line switches', () => { + it('should not set an invalid locale', async () => testLocale('asdfkl', currentLocale)); + + const lcAll = String(process.env.LC_ALL); +- ifit(process.platform === 'linux')('current process has a valid LC_ALL env', async () => { ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('current process has a valid LC_ALL env', async () => { + // The LC_ALL env should not be set to DOM locale string. + expect(lcAll).to.not.equal(app.getLocale()); + }); +- ifit(process.platform === 'linux')('should not change LC_ALL', async () => testLocale('fr', lcAll, true)); +- ifit(process.platform === 'linux')('should not change LC_ALL when setting invalid locale', async () => testLocale('asdfkl', lcAll, true)); +- ifit(process.platform === 'linux')('should not change LC_ALL when --lang is not set', async () => testLocale('', lcAll, true)); ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('should not change LC_ALL', async () => testLocale('fr', lcAll, true)); ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('should not change LC_ALL when setting invalid locale', async () => testLocale('asdfkl', lcAll, true)); ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('should not change LC_ALL when --lang is not set', async () => testLocale('', lcAll, true)); + }); + + describe('--remote-debugging-pipe switch', () => { +@@ -1536,12 +1536,12 @@ describe('font fallback', () => { + expect(fonts[0].familyName).to.equal('Arial'); + } else if (process.platform === 'darwin') { + expect(fonts[0].familyName).to.equal('Helvetica'); +- } else if (process.platform === 'linux') { ++ } else if (process.platform === 'linux' || process.platform === 'freebsd') { + expect(fonts[0].familyName).to.equal('DejaVu Sans'); + } // I think this depends on the distro? We don't specify a default. + }); + +- ifit(process.platform !== 'linux')('should fall back to Japanese font for sans-serif Japanese script', async function () { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should fall back to Japanese font for sans-serif Japanese script', async function () { + const html = ` + <html lang="ja-JP"> + <head> +@@ -1767,7 +1767,7 @@ describe('navigator.clipboard', () => { + }); + }); + +-ifdescribe((process.platform !== 'linux' || app.isUnityRunning()))('navigator.setAppBadge/clearAppBadge', () => { ++ifdescribe(((process.platform !== 'linux' && process.platform !== 'freebsd') || app.isUnityRunning()))('navigator.setAppBadge/clearAppBadge', () => { + let w: BrowserWindow; + + const expectedBadgeCount = 42; diff --git a/devel/electron18/files/patch-electron_spec-main_fixtures_apps_crash_node-crash.js b/devel/electron18/files/patch-electron_spec-main_fixtures_apps_crash_node-crash.js new file mode 100644 index 000000000000..2bd671d8ef04 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_fixtures_apps_crash_node-crash.js @@ -0,0 +1,8 @@ +--- electron/spec-main/fixtures/apps/crash/node-crash.js.orig 2021-01-22 23:55:24 UTC ++++ electron/spec-main/fixtures/apps/crash/node-crash.js +@@ -1,4 +1,4 @@ +-if (process.platform === 'linux') { ++if (process.platform === 'linux' || process.platform === 'freebsd') { + process.crashReporter.start({ + submitURL: process.argv[2], + productName: 'Zombies', diff --git a/devel/electron18/files/patch-electron_spec-main_fixtures_crash-cases_safe-storage_index.js b/devel/electron18/files/patch-electron_spec-main_fixtures_crash-cases_safe-storage_index.js new file mode 100644 index 000000000000..04397a620642 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_fixtures_crash-cases_safe-storage_index.js @@ -0,0 +1,11 @@ +--- electron/spec-main/fixtures/crash-cases/safe-storage/index.js.orig 2022-05-18 15:31:32 UTC ++++ electron/spec-main/fixtures/crash-cases/safe-storage/index.js +@@ -21,7 +21,7 @@ const { expect } = require('chai'); + await app.whenReady(); + // isEncryptionAvailable() will always return false on CI due to a mocked + // dbus as mentioned above. +- expect(safeStorage.isEncryptionAvailable()).to.equal(process.platform !== 'linux'); ++ expect(safeStorage.isEncryptionAvailable()).to.equal(process.platform !== 'linux' && process.platform !== 'freebsd'); + if (safeStorage.isEncryptionAvailable()) { + const plaintext = 'plaintext'; + const ciphertext = safeStorage.encryptString(plaintext); diff --git a/devel/electron18/files/patch-electron_spec-main_fixtures_native-addon_uv-dlopen_index.js b/devel/electron18/files/patch-electron_spec-main_fixtures_native-addon_uv-dlopen_index.js new file mode 100644 index 000000000000..0944ccde78a1 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_fixtures_native-addon_uv-dlopen_index.js @@ -0,0 +1,11 @@ +--- electron/spec-main/fixtures/native-addon/uv-dlopen/index.js.orig 2021-01-25 12:27:55 UTC ++++ electron/spec-main/fixtures/native-addon/uv-dlopen/index.js +@@ -2,7 +2,7 @@ const testLoadLibrary = require('./build/Release/test_ + + const lib = (() => { + switch (process.platform) { +- case 'linux': ++ case 'linux': case 'freebsd': + return `${__dirname}/build/Release/foo.so`; + case 'darwin': + return `${__dirname}/build/Release/foo.dylib`; diff --git a/devel/electron18/files/patch-electron_spec-main_version-bump-spec.ts b/devel/electron18/files/patch-electron_spec-main_version-bump-spec.ts new file mode 100644 index 000000000000..1581c8ed08d6 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_version-bump-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec-main/version-bump-spec.ts.orig 2021-11-15 23:45:07 UTC ++++ electron/spec-main/version-bump-spec.ts +@@ -186,7 +186,7 @@ describe('version-bumper', () => { + + // On macOS Circle CI we don't have a real git environment due to running + // gclient sync on a linux machine. These tests therefore don't run as expected. +- ifdescribe(!(process.platform === 'linux' && process.arch.indexOf('arm') === 0) && process.platform !== 'darwin')('nextVersion', () => { ++ ifdescribe(!((process.platform === 'linux' || process.platform === 'freebsd') && process.arch.indexOf('arm') === 0) && process.platform !== 'darwin')('nextVersion', () => { + describe('bump versions', () => { + const nightlyPattern = /[0-9.]*(-nightly.(\d{4})(\d{2})(\d{2}))$/g; + const betaPattern = /[0-9.]*(-beta[0-9.]*)/g; diff --git a/devel/electron18/files/patch-electron_spec-main_visibility-state-spec.ts b/devel/electron18/files/patch-electron_spec-main_visibility-state-spec.ts new file mode 100644 index 000000000000..59a7a8c76dca --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_visibility-state-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec-main/visibility-state-spec.ts.orig 2021-01-22 23:55:24 UTC ++++ electron/spec-main/visibility-state-spec.ts +@@ -9,7 +9,7 @@ import { ifdescribe, delay } from './spec-helpers'; + + // visibilityState specs pass on linux with a real window manager but on CI + // the environment does not let these specs pass +-ifdescribe(process.platform !== 'linux')('document.visibilityState', () => { ++ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('document.visibilityState', () => { + let w: BrowserWindow; + + afterEach(() => { diff --git a/devel/electron18/files/patch-electron_spec-main_webview-spec.ts b/devel/electron18/files/patch-electron_spec-main_webview-spec.ts new file mode 100644 index 000000000000..9a53856b7796 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec-main_webview-spec.ts @@ -0,0 +1,11 @@ +--- electron/spec-main/webview-spec.ts.orig 2022-06-01 15:32:20 UTC ++++ electron/spec-main/webview-spec.ts +@@ -456,7 +456,7 @@ describe('<webview> tag', function () { + }); + + // FIXME(zcbenz): Fullscreen events do not work on Linux. +- ifit(process.platform !== 'linux')('exiting fullscreen should unfullscreen window', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('exiting fullscreen should unfullscreen window', async () => { + const [w, webview] = await loadWebViewWindow(); + const enterFullScreen = emittedOnce(w, 'enter-full-screen'); + await webview.executeJavaScript('document.getElementById("div").requestFullscreen()', true); diff --git a/devel/electron18/files/patch-electron_spec_api-clipboard-spec.js b/devel/electron18/files/patch-electron_spec_api-clipboard-spec.js new file mode 100644 index 000000000000..a2cef9df9914 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec_api-clipboard-spec.js @@ -0,0 +1,29 @@ +--- electron/spec/api-clipboard-spec.js.orig 2021-12-03 01:46:05 UTC ++++ electron/spec/api-clipboard-spec.js +@@ -44,7 +44,7 @@ ifdescribe(process.platform !== 'win32' || process.arc + }); + }); + +- ifdescribe(process.platform !== 'linux')('clipboard.readBookmark', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('clipboard.readBookmark', () => { + it('returns title and url', () => { + clipboard.writeBookmark('a title', 'https://electronjs.org'); + +@@ -63,7 +63,7 @@ ifdescribe(process.platform !== 'win32' || process.arc + }); + + describe('clipboard.read()', () => { +- ifit(process.platform !== 'linux')('does not crash when reading various custom clipboard types', () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('does not crash when reading various custom clipboard types', () => { + const type = process.platform === 'darwin' ? 'NSFilenamesPboardType' : 'FileNameW'; + + expect(() => { +@@ -100,7 +100,7 @@ ifdescribe(process.platform !== 'win32' || process.arc + const readImage = clipboard.readImage(); + expect(readImage.toDataURL()).to.equal(i.toDataURL()); + +- if (process.platform !== 'linux') { ++ if (process.platform !== 'linux' && process.platform !== 'freebsd') { + if (process.platform !== 'win32') { + expect(clipboard.readBookmark()).to.deep.equal(bookmark); + } else { diff --git a/devel/electron18/files/patch-electron_spec_api-native-image-spec.js b/devel/electron18/files/patch-electron_spec_api-native-image-spec.js new file mode 100644 index 000000000000..b08996db2535 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec_api-native-image-spec.js @@ -0,0 +1,11 @@ +--- electron/spec/api-native-image-spec.js.orig 2021-01-22 23:55:24 UTC ++++ electron/spec/api-native-image-spec.js +@@ -491,7 +491,7 @@ describe('nativeImage module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('createThumbnailFromPath(path, size)', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('createThumbnailFromPath(path, size)', () => { + it('throws when invalid size is passed', async () => { + const badSize = { width: -1, height: -1 }; + diff --git a/devel/electron18/files/patch-electron_spec_api-process-spec.js b/devel/electron18/files/patch-electron_spec_api-process-spec.js new file mode 100644 index 000000000000..8ff525c110d6 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec_api-process-spec.js @@ -0,0 +1,11 @@ +--- electron/spec/api-process-spec.js.orig 2021-01-22 23:55:24 UTC ++++ electron/spec/api-process-spec.js +@@ -50,7 +50,7 @@ describe('process module', () => { + it('resolves promise successfully with valid data', async () => { + const memoryInfo = await process.getProcessMemoryInfo(); + expect(memoryInfo).to.be.an('object'); +- if (process.platform === 'linux' || process.platform === 'windows') { ++ if (process.platform === 'linux' || process.platform === 'windows' || process.platform === 'freebsd') { + expect(memoryInfo.residentSet).to.be.a('number').greaterThan(0); + } + expect(memoryInfo.private).to.be.a('number').greaterThan(0); diff --git a/devel/electron18/files/patch-electron_spec_chromium-spec.js b/devel/electron18/files/patch-electron_spec_chromium-spec.js new file mode 100644 index 000000000000..aa3eae3d6739 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec_chromium-spec.js @@ -0,0 +1,11 @@ +--- electron/spec/chromium-spec.js.orig 2022-02-14 19:53:12 UTC ++++ electron/spec/chromium-spec.js +@@ -225,7 +225,7 @@ describe('chromium feature', () => { + }); + + it('can be get as context in canvas', () => { +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + // FIXME(alexeykuzmin): Skip the test. + // this.skip() + return; diff --git a/devel/electron18/files/patch-electron_spec_node-spec.js b/devel/electron18/files/patch-electron_spec_node-spec.js new file mode 100644 index 000000000000..60ffbd2d63a9 --- /dev/null +++ b/devel/electron18/files/patch-electron_spec_node-spec.js @@ -0,0 +1,11 @@ +--- electron/spec/node-spec.js.orig 2021-01-22 23:55:24 UTC ++++ electron/spec/node-spec.js +@@ -130,7 +130,7 @@ describe('node feature', () => { + }); + + describe('child_process.exec', () => { +- (process.platform === 'linux' ? it : it.skip)('allows executing a setuid binary from non-sandboxed renderer', () => { ++ (process.platform === 'linux' || process.platform === 'freebsd' ? it : it.skip)('allows executing a setuid binary from non-sandboxed renderer', () => { + // Chrome uses prctl(2) to set the NO_NEW_PRIVILEGES flag on Linux (see + // https://github.com/torvalds/linux/blob/40fde647cc/Documentation/userspace-api/no_new_privs.rst). + // We disable this for unsandboxed processes, which the renderer tests diff --git a/devel/electron18/files/patch-extensions_browser_api_messaging_message__service.cc b/devel/electron18/files/patch-extensions_browser_api_messaging_message__service.cc new file mode 100644 index 000000000000..9e37a56a13fd --- /dev/null +++ b/devel/electron18/files/patch-extensions_browser_api_messaging_message__service.cc @@ -0,0 +1,20 @@ +--- extensions/browser/api/messaging/message_service.cc.orig 2022-05-19 05:17:42 UTC ++++ extensions/browser/api/messaging/message_service.cc +@@ -74,7 +74,7 @@ namespace { + const char kReceivingEndDoesntExistError[] = + "Could not establish connection. Receiving end does not exist."; + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kMissingPermissionError[] = + "Access to native messaging requires nativeMessaging permission."; + const char kProhibitedByPoliciesError[] = +@@ -447,7 +447,7 @@ void MessageService::OpenChannelToNativeApp( + return; + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool has_permission = extension->permissions_data()->HasAPIPermission( + mojom::APIPermissionID::kNativeMessaging); + if (!has_permission) { diff --git a/devel/electron18/files/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc b/devel/electron18/files/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc new file mode 100644 index 000000000000..22c021abe3ac --- /dev/null +++ b/devel/electron18/files/patch-extensions_browser_api_networking__private_networking__private__delegate__factory.cc @@ -0,0 +1,20 @@ +--- extensions/browser/api/networking_private/networking_private_delegate_factory.cc.orig 2022-05-19 03:45:29 UTC ++++ extensions/browser/api/networking_private/networking_private_delegate_factory.cc +@@ -12,7 +12,7 @@ + + #if BUILDFLAG(IS_CHROMEOS_ASH) + #include "extensions/browser/api/networking_private/networking_private_chromeos.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "extensions/browser/api/networking_private/networking_private_linux.h" + #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) + #include "components/wifi/wifi_service.h" +@@ -62,7 +62,7 @@ KeyedService* NetworkingPrivateDelegateFactory::BuildS + NetworkingPrivateDelegate* delegate; + #if BUILDFLAG(IS_CHROMEOS_ASH) + delegate = new NetworkingPrivateChromeOS(browser_context); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + delegate = new NetworkingPrivateLinux(); + #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) + std::unique_ptr<wifi::WiFiService> wifi_service(wifi::WiFiService::Create()); diff --git a/devel/electron18/files/patch-extensions_browser_browser__context__keyed__service__factories.cc b/devel/electron18/files/patch-extensions_browser_browser__context__keyed__service__factories.cc new file mode 100644 index 000000000000..7baf21e23e6d --- /dev/null +++ b/devel/electron18/files/patch-extensions_browser_browser__context__keyed__service__factories.cc @@ -0,0 +1,11 @@ +--- extensions/browser/browser_context_keyed_service_factories.cc.orig 2022-05-19 03:45:29 UTC ++++ extensions/browser/browser_context_keyed_service_factories.cc +@@ -89,7 +89,7 @@ void EnsureBrowserContextKeyedServiceFactoriesBuilt() + IdleManagerFactory::GetInstance(); + ManagementAPI::GetFactoryInstance(); + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + NetworkingPrivateEventRouterFactory::GetInstance(); + #endif + PowerAPI::GetFactoryInstance(); diff --git a/devel/electron18/files/patch-extensions_browser_extension__prefs.cc b/devel/electron18/files/patch-extensions_browser_extension__prefs.cc new file mode 100644 index 000000000000..dc78a573ea48 --- /dev/null +++ b/devel/electron18/files/patch-extensions_browser_extension__prefs.cc @@ -0,0 +1,11 @@ +--- extensions/browser/extension_prefs.cc.orig 2022-05-19 05:17:42 UTC ++++ extensions/browser/extension_prefs.cc +@@ -2269,7 +2269,7 @@ void ExtensionPrefs::RegisterProfilePrefs( + registry->RegisterStringPref(pref_names::kLastChromeVersion, std::string()); + registry->RegisterDictionaryPref(kInstallSignature); + registry->RegisterListPref(kExternalUninstalls); +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + registry->RegisterBooleanPref(pref_names::kChromeAppsEnabled, false); + #endif + registry->RegisterBooleanPref(pref_names::kU2fSecurityKeyApiEnabled, false); diff --git a/devel/electron18/files/patch-extensions_browser_pref__names.cc b/devel/electron18/files/patch-extensions_browser_pref__names.cc new file mode 100644 index 000000000000..a7b319c6c588 --- /dev/null +++ b/devel/electron18/files/patch-extensions_browser_pref__names.cc @@ -0,0 +1,11 @@ +--- extensions/browser/pref_names.cc.orig 2022-05-19 05:17:42 UTC ++++ extensions/browser/pref_names.cc +@@ -48,7 +48,7 @@ const char kStorageGarbageCollect[] = "extensions.stor + const char kToolbar[] = "extensions.toolbar"; + const char kDeletedComponentExtensions[] = + "extensions.deleted_component_extensions"; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + extern const char kChromeAppsEnabled[] = "extensions.chrome_apps_enabled"; + #endif + const char kU2fSecurityKeyApiEnabled[] = diff --git a/devel/electron18/files/patch-extensions_browser_pref__names.h b/devel/electron18/files/patch-extensions_browser_pref__names.h new file mode 100644 index 000000000000..7e6f05db17e0 --- /dev/null +++ b/devel/electron18/files/patch-extensions_browser_pref__names.h @@ -0,0 +1,11 @@ +--- extensions/browser/pref_names.h.orig 2022-05-19 05:17:42 UTC ++++ extensions/browser/pref_names.h +@@ -101,7 +101,7 @@ extern const char kToolbar[]; + // uninstalled/removed and should not be reloaded. + extern const char kDeletedComponentExtensions[]; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // A preference for whether Chrome Apps should be allowed. The default depends + // on the ChromeAppsDeprecation feature flag, and this pref can extend support + // for Chrome Apps by enterprise policy. diff --git a/devel/electron18/files/patch-extensions_common_api___permission__features.json b/devel/electron18/files/patch-extensions_common_api___permission__features.json new file mode 100644 index 000000000000..4749234f1880 --- /dev/null +++ b/devel/electron18/files/patch-extensions_common_api___permission__features.json @@ -0,0 +1,29 @@ +--- extensions/common/api/_permission_features.json.orig 2022-05-19 05:17:42 UTC ++++ extensions/common/api/_permission_features.json +@@ -134,7 +134,7 @@ + { + "channel": "stable", + "extension_types": ["platform_app"], +- "platforms": ["chromeos", "win", "mac", "linux"], ++ "platforms": ["chromeos", "win", "mac", "linux", "openbsd"], + "allowlist": [ + "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/387169 + "A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE", // http://crbug.com/387169 +@@ -447,7 +447,7 @@ + }, { + "channel": "stable", + "extension_types": ["extension", "legacy_packaged_app", "platform_app"], +- "platforms": ["chromeos", "mac", "win", "linux", "fuchsia"], ++ "platforms": ["chromeos", "mac", "win", "linux", "fuchsia", "openbsd"], + "allowlist": [ + "0DE0F05680A4A056BCEC864ED8DDA84296F82B40", // http://crbug.com/434651 + "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/293683 +@@ -485,7 +485,7 @@ + "networkingPrivate": { + "channel": "stable", + "extension_types": ["extension", "legacy_packaged_app", "platform_app"], +- "platforms": ["chromeos", "mac", "win", "linux", "fuchsia"], ++ "platforms": ["chromeos", "mac", "win", "linux", "fuchsia", "openbsd"], + "allowlist": [ + // DO NOT ADD ANY MORE ENTRIES HERE. + // networkingPrivate is being migrated to networking.onc. diff --git a/devel/electron18/files/patch-extensions_common_features_feature.cc b/devel/electron18/files/patch-extensions_common_features_feature.cc new file mode 100644 index 000000000000..c3d165fd5458 --- /dev/null +++ b/devel/electron18/files/patch-extensions_common_features_feature.cc @@ -0,0 +1,11 @@ +--- extensions/common/features/feature.cc.orig 2022-05-19 03:45:30 UTC ++++ extensions/common/features/feature.cc +@@ -34,6 +34,8 @@ Feature::Platform Feature::GetCurrentPlatform() { + return WIN_PLATFORM; + #elif BUILDFLAG(IS_FUCHSIA) + return FUCHSIA_PLATFORM; ++#elif defined(OS_BSD) ++ return LINUX_PLATFORM; + #else + return UNSPECIFIED_PLATFORM; + #endif diff --git a/devel/electron18/files/patch-extensions_renderer_bindings_api__binding__util.cc b/devel/electron18/files/patch-extensions_renderer_bindings_api__binding__util.cc new file mode 100644 index 000000000000..4c82d71209c7 --- /dev/null +++ b/devel/electron18/files/patch-extensions_renderer_bindings_api__binding__util.cc @@ -0,0 +1,11 @@ +--- extensions/renderer/bindings/api_binding_util.cc.orig 2022-05-19 03:45:30 UTC ++++ extensions/renderer/bindings/api_binding_util.cc +@@ -132,7 +132,7 @@ std::string GetPlatformString() { + return "lacros"; + #elif BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_CHROMEOS_LACROS) + return "chromeos"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return "linux"; + #elif BUILDFLAG(IS_MAC) + return "mac"; diff --git a/devel/electron18/files/patch-extensions_shell_app_shell__main__delegate.cc b/devel/electron18/files/patch-extensions_shell_app_shell__main__delegate.cc new file mode 100644 index 000000000000..2288aa6fe13f --- /dev/null +++ b/devel/electron18/files/patch-extensions_shell_app_shell__main__delegate.cc @@ -0,0 +1,20 @@ +--- extensions/shell/app/shell_main_delegate.cc.orig 2022-05-19 03:45:30 UTC ++++ extensions/shell/app/shell_main_delegate.cc +@@ -42,7 +42,7 @@ + + #if BUILDFLAG(IS_WIN) + #include "base/base_paths_win.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/nix/xdg_util.h" + #elif BUILDFLAG(IS_MAC) + #include "base/base_paths_mac.h" +@@ -61,7 +61,7 @@ base::FilePath GetDataPath() { + return cmd_line->GetSwitchValuePath(switches::kContentShellDataPath); + + base::FilePath data_dir; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::unique_ptr<base::Environment> env(base::Environment::Create()); + data_dir = base::nix::GetXDGDirectory( + env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir); diff --git a/devel/electron18/files/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc b/devel/electron18/files/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc new file mode 100644 index 000000000000..5a714339b027 --- /dev/null +++ b/devel/electron18/files/patch-extensions_shell_browser_api_runtime_shell__runtime__api__delegate.cc @@ -0,0 +1,11 @@ +--- extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc.orig 2022-05-19 03:45:30 UTC ++++ extensions/shell/browser/api/runtime/shell_runtime_api_delegate.cc +@@ -45,7 +45,7 @@ void ShellRuntimeAPIDelegate::OpenURL(const GURL& unin + bool ShellRuntimeAPIDelegate::GetPlatformInfo(PlatformInfo* info) { + #if BUILDFLAG(IS_CHROMEOS_ASH) + info->os = api::runtime::PLATFORM_OS_CROS; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + info->os = api::runtime::PLATFORM_OS_LINUX; + #endif + return true; diff --git a/devel/electron18/files/patch-extensions_shell_browser_shell__browser__main__parts.cc b/devel/electron18/files/patch-extensions_shell_browser_shell__browser__main__parts.cc new file mode 100644 index 000000000000..aee97124614e --- /dev/null +++ b/devel/electron18/files/patch-extensions_shell_browser_shell__browser__main__parts.cc @@ -0,0 +1,11 @@ +--- extensions/shell/browser/shell_browser_main_parts.cc.orig 2022-05-19 05:17:42 UTC ++++ extensions/shell/browser/shell_browser_main_parts.cc +@@ -142,7 +142,7 @@ void ShellBrowserMainParts::PostCreateMainMessageLoop( + switches::kAppShellAllowRoaming)) { + network_controller_->SetCellularAllowRoaming(true); + } +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // app_shell doesn't need GTK, so the fake input method context can work. + // See crbug.com/381852 and revision fb69f142. + // TODO(michaelpg): Verify this works for target environments. diff --git a/devel/electron18/files/patch-extensions_shell_browser_shell__extensions__api__client.cc b/devel/electron18/files/patch-extensions_shell_browser_shell__extensions__api__client.cc new file mode 100644 index 000000000000..5d61cc02e117 --- /dev/null +++ b/devel/electron18/files/patch-extensions_shell_browser_shell__extensions__api__client.cc @@ -0,0 +1,11 @@ +--- extensions/shell/browser/shell_extensions_api_client.cc.orig 2022-05-19 03:45:30 UTC ++++ extensions/shell/browser/shell_extensions_api_client.cc +@@ -58,7 +58,7 @@ ShellExtensionsAPIClient::CreateDisplayInfoProvider() + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + FileSystemDelegate* ShellExtensionsAPIClient::GetFileSystemDelegate() { + if (!file_system_delegate_) + file_system_delegate_ = std::make_unique<ShellFileSystemDelegate>(); diff --git a/devel/electron18/files/patch-extensions_shell_browser_shell__extensions__api__client.h b/devel/electron18/files/patch-extensions_shell_browser_shell__extensions__api__client.h new file mode 100644 index 000000000000..f81a4a6b72d1 --- /dev/null +++ b/devel/electron18/files/patch-extensions_shell_browser_shell__extensions__api__client.h @@ -0,0 +1,20 @@ +--- extensions/shell/browser/shell_extensions_api_client.h.orig 2022-05-19 03:45:30 UTC ++++ extensions/shell/browser/shell_extensions_api_client.h +@@ -36,7 +36,7 @@ class ShellExtensionsAPIClient : public ExtensionsAPIC + const override; + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + FileSystemDelegate* GetFileSystemDelegate() override; + #endif + MessagingDelegate* GetMessagingDelegate() override; +@@ -45,7 +45,7 @@ class ShellExtensionsAPIClient : public ExtensionsAPIC + private: + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + std::unique_ptr<FileSystemDelegate> file_system_delegate_; + #endif + std::unique_ptr<MessagingDelegate> messaging_delegate_; diff --git a/devel/electron18/files/patch-google__apis_gcm_engine_heartbeat__manager.cc b/devel/electron18/files/patch-google__apis_gcm_engine_heartbeat__manager.cc new file mode 100644 index 000000000000..73887a22bb99 --- /dev/null +++ b/devel/electron18/files/patch-google__apis_gcm_engine_heartbeat__manager.cc @@ -0,0 +1,29 @@ +--- google_apis/gcm/engine/heartbeat_manager.cc.orig 2022-05-19 03:45:30 UTC ++++ google_apis/gcm/engine/heartbeat_manager.cc +@@ -32,7 +32,7 @@ const int kMinClientHeartbeatIntervalMs = 1000 * 30; + // Minimum time spent sleeping before we force a new heartbeat. + const int kMinSuspendTimeMs = 1000 * 10; // 10 seconds. + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // The period at which to check if the heartbeat time has passed. Used to + // protect against platforms where the timer is delayed by the system being + // suspended. Only needed on linux because the other OSes provide a standard +@@ -192,7 +192,7 @@ void HeartbeatManager::RestartTimer() { + base::BindRepeating(&HeartbeatManager::OnHeartbeatTriggered, + weak_ptr_factory_.GetWeakPtr())); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Windows, Mac, Android, iOS, and Chrome OS all provide a way to be notified + // when the system is suspending or resuming. The only one that does not is + // Linux so we need to poll to check for missed heartbeats. +@@ -217,7 +217,7 @@ void HeartbeatManager::CheckForMissedHeartbeat() { + return; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Otherwise check again later. + io_task_runner_->PostDelayedTask( + FROM_HERE, diff --git a/devel/electron18/files/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc b/devel/electron18/files/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc new file mode 100644 index 000000000000..9f826f69a426 --- /dev/null +++ b/devel/electron18/files/patch-gpu_command__buffer_common_gpu__memory__buffer__support.cc @@ -0,0 +1,20 @@ +--- gpu/command_buffer/common/gpu_memory_buffer_support.cc.orig 2022-05-19 05:17:42 UTC ++++ gpu/command_buffer/common/gpu_memory_buffer_support.cc +@@ -134,7 +134,7 @@ uint32_t GetPlatformSpecificTextureTarget() { + #if BUILDFLAG(IS_MAC) + return macos_specific_texture_target; + #elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + return GL_TEXTURE_EXTERNAL_OES; + #elif BUILDFLAG(IS_FUCHSIA) + return GL_TEXTURE_2D; +@@ -166,7 +166,7 @@ GPU_EXPORT bool NativeBufferNeedsPlatformSpecificTextu + gfx::BufferFormat format, + gfx::BufferPlane plane) { + #if defined(USE_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Always use GL_TEXTURE_2D as the target for RGB textures. + // https://crbug.com/916728 + if (format == gfx::BufferFormat::R_8 || format == gfx::BufferFormat::RG_88 || diff --git a/devel/electron18/files/patch-gpu_command__buffer_service_external__semaphore.cc b/devel/electron18/files/patch-gpu_command__buffer_service_external__semaphore.cc new file mode 100644 index 000000000000..5743b419edbb --- /dev/null +++ b/devel/electron18/files/patch-gpu_command__buffer_service_external__semaphore.cc @@ -0,0 +1,11 @@ +--- gpu/command_buffer/service/external_semaphore.cc.orig 2022-05-19 05:17:42 UTC ++++ gpu/command_buffer/service/external_semaphore.cc +@@ -27,7 +27,7 @@ GLuint ImportSemaphoreHandleToGLSemaphore(SemaphoreHan + if (!handle.is_valid()) + return 0; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + if (handle.vk_handle_type() != + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT) { + DLOG(ERROR) << "Importing semaphore handle of unexpected type:" diff --git a/devel/electron18/files/patch-gpu_command__buffer_service_external__vk__image__backing.cc b/devel/electron18/files/patch-gpu_command__buffer_service_external__vk__image__backing.cc new file mode 100644 index 000000000000..fb1947c08f8f --- /dev/null +++ b/devel/electron18/files/patch-gpu_command__buffer_service_external__vk__image__backing.cc @@ -0,0 +1,29 @@ +--- gpu/command_buffer/service/external_vk_image_backing.cc.orig 2022-05-19 05:17:42 UTC ++++ gpu/command_buffer/service/external_vk_image_backing.cc +@@ -31,7 +31,7 @@ + #include "ui/gl/gl_version_info.h" + #include "ui/gl/scoped_binders.h" + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && BUILDFLAG(USE_DAWN) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN) + #include "gpu/command_buffer/service/external_vk_image_dawn_representation.h" + #endif + +@@ -559,7 +559,7 @@ ExternalVkImageBacking::ProduceDawn(SharedImageManager + MemoryTypeTracker* tracker, + WGPUDevice wgpuDevice, + WGPUBackendType backend_type) { +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && BUILDFLAG(USE_DAWN) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && BUILDFLAG(USE_DAWN) + auto wgpu_format = viz::ToWGPUFormat(format()); + + if (wgpu_format == WGPUTextureFormat_Undefined) { +@@ -592,7 +592,7 @@ GLuint ExternalVkImageBacking::ProduceGLTextureInterna + gl::GLApi* api = gl::g_current_gl_context; + absl::optional<ScopedDedicatedMemoryObject> memory_object; + if (!use_separate_gl_texture()) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + auto memory_fd = image_->GetMemoryFd(); + if (!memory_fd.is_valid()) + return 0; diff --git a/devel/electron18/files/patch-gpu_command__buffer_service_shared__image__backing__factory__angle__vulkan.cc b/devel/electron18/files/patch-gpu_command__buffer_service_shared__image__backing__factory__angle__vulkan.cc new file mode 100644 index 000000000000..bedbc23bb2d3 --- /dev/null +++ b/devel/electron18/files/patch-gpu_command__buffer_service_shared__image__backing__factory__angle__vulkan.cc @@ -0,0 +1,11 @@ +--- gpu/command_buffer/service/shared_image_backing_factory_angle_vulkan.cc.orig 2022-05-19 05:17:43 UTC ++++ gpu/command_buffer/service/shared_image_backing_factory_angle_vulkan.cc +@@ -574,7 +574,7 @@ bool SharedImageBackingFactoryAngleVulkan::CanUseAngle + // TODO(penghuang): verify the scanout is the right usage for video playback. + // crbug.com/1280798 + constexpr auto kSupportedUsages = +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + SHARED_IMAGE_USAGE_SCANOUT | + #endif + SHARED_IMAGE_USAGE_GLES2 | SHARED_IMAGE_USAGE_GLES2_FRAMEBUFFER_HINT | diff --git a/devel/electron18/files/patch-gpu_command__buffer_service_shared__image__factory.cc b/devel/electron18/files/patch-gpu_command__buffer_service_shared__image__factory.cc new file mode 100644 index 000000000000..91fbecb9a8f4 --- /dev/null +++ b/devel/electron18/files/patch-gpu_command__buffer_service_shared__image__factory.cc @@ -0,0 +1,35 @@ +--- gpu/command_buffer/service/shared_image_factory.cc.orig 2022-05-19 05:17:43 UTC ++++ gpu/command_buffer/service/shared_image_factory.cc +@@ -38,12 +38,12 @@ + #include "gpu/command_buffer/service/shared_image_backing_factory_angle_vulkan.h" + #endif + +-#if BUILDFLAG(IS_LINUX) && defined(USE_OZONE) && BUILDFLAG(ENABLE_VULKAN) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(USE_OZONE) && BUILDFLAG(ENABLE_VULKAN) + #include "ui/ozone/public/ozone_platform.h" + #endif + + #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_WIN)) && \ +- BUILDFLAG(ENABLE_VULKAN) ++ BUILDFLAG(ENABLE_VULKAN) || BUILDFLAG(IS_BSD) + #include "gpu/command_buffer/service/external_vk_image_factory.h" + #elif BUILDFLAG(IS_ANDROID) && BUILDFLAG(ENABLE_VULKAN) + #include "gpu/command_buffer/service/external_vk_image_factory.h" +@@ -78,7 +78,7 @@ + + namespace gpu { + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \ ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_ASH) && \ + !BUILDFLAG(IS_CHROMEOS_LACROS) && !BUILDFLAG(IS_CHROMECAST) && \ + BUILDFLAG(ENABLE_VULKAN) + +@@ -240,7 +240,7 @@ SharedImageFactory::SharedImageFactory( + factories_.push_back(std::move(external_vk_image_factory)); + } + #elif defined(USE_OZONE) +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \ ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMEOS_ASH) && \ + !BUILDFLAG(IS_CHROMEOS_LACROS) && !BUILDFLAG(IS_CHROMECAST) + // Desktop Linux, not ChromeOS. + if (gr_context_type_ == GrContextType::kVulkan && diff --git a/devel/electron18/files/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc b/devel/electron18/files/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc new file mode 100644 index 000000000000..470c156d15d0 --- /dev/null +++ b/devel/electron18/files/patch-gpu_command__buffer_service_webgpu__decoder__impl.cc @@ -0,0 +1,11 @@ +--- gpu/command_buffer/service/webgpu_decoder_impl.cc.orig 2022-05-19 05:17:43 UTC ++++ gpu/command_buffer/service/webgpu_decoder_impl.cc +@@ -1501,7 +1501,7 @@ error::Error WebGPUDecoderImpl::HandleRequestAdapter( + } + + if (gr_context_type_ != GrContextType::kVulkan) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + SendAdapterProperties(request_adapter_serial, -1, nullptr, + "WebGPU on Linux requires command-line flag " + "--enable-features=Vulkan,UseSkiaRenderer"); diff --git a/devel/electron18/files/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc b/devel/electron18/files/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc new file mode 100644 index 000000000000..01ec17e4c9c4 --- /dev/null +++ b/devel/electron18/files/patch-gpu_command__buffer_tests_gl__gpu__memory__buffer__unittest.cc @@ -0,0 +1,29 @@ +--- gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc.orig 2022-05-19 05:17:43 UTC ++++ gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc +@@ -29,7 +29,7 @@ + #include "ui/gl/gl_image.h" + #include "ui/gl/test/gl_image_test_support.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.h" + #include "ui/gfx/linux/client_native_pixmap_factory_dmabuf.h" + #endif +@@ -72,7 +72,7 @@ class GpuMemoryBufferTest : public testing::TestWithPa + GLManager gl_; + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + class GpuMemoryBufferTestEGL : public testing::Test, + public gpu::GpuCommandBufferTestEGL { + public: +@@ -364,7 +364,7 @@ TEST_P(GpuMemoryBufferTest, Lifecycle) { + glDeleteTextures(1, &texture_id); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Test glCreateImageCHROMIUM with gfx::NATIVE_PIXMAP. Basically the test + // reproduces the situation where some dmabuf fds are available outside the + // gpu process and the user wants to import them using glCreateImageCHROMIUM. diff --git a/devel/electron18/files/patch-gpu_command__buffer_tests_gl__oes__egl__image__unittest.cc b/devel/electron18/files/patch-gpu_command__buffer_tests_gl__oes__egl__image__unittest.cc new file mode 100644 index 000000000000..c7a6cd812d83 --- /dev/null +++ b/devel/electron18/files/patch-gpu_command__buffer_tests_gl__oes__egl__image__unittest.cc @@ -0,0 +1,20 @@ +--- gpu/command_buffer/tests/gl_oes_egl_image_unittest.cc.orig 2022-05-19 03:45:30 UTC ++++ gpu/command_buffer/tests/gl_oes_egl_image_unittest.cc +@@ -14,7 +14,7 @@ + #include "ui/gl/gl_image.h" + #include "ui/gl/init/gl_factory.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/gl/gl_image_native_pixmap.h" + #endif + +@@ -43,7 +43,7 @@ class GpuOESEGLImageTest : public testing::Test, + bool egl_initialized_{false}; + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/835072): re-enable this test on ASAN once bugs are fixed. + #if !defined(ADDRESS_SANITIZER) + diff --git a/devel/electron18/files/patch-gpu_command__buffer_tests_gl__test__utils.cc b/devel/electron18/files/patch-gpu_command__buffer_tests_gl__test__utils.cc new file mode 100644 index 000000000000..45717e092125 --- /dev/null +++ b/devel/electron18/files/patch-gpu_command__buffer_tests_gl__test__utils.cc @@ -0,0 +1,20 @@ +--- gpu/command_buffer/tests/gl_test_utils.cc.orig 2022-05-19 05:17:43 UTC ++++ gpu/command_buffer/tests/gl_test_utils.cc +@@ -24,7 +24,7 @@ + #include "ui/gl/gl_version_info.h" + #include "ui/gl/init/gl_factory.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/gl/gl_image_native_pixmap.h" + #endif + +@@ -453,7 +453,7 @@ void GpuCommandBufferTestEGL::RestoreGLDefault() { + window_system_binding_info_ = gl::GLWindowSystemBindingInfo(); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + scoped_refptr<gl::GLImageNativePixmap> + GpuCommandBufferTestEGL::CreateGLImageNativePixmap(gfx::BufferFormat format, + gfx::Size size, diff --git a/devel/electron18/files/patch-gpu_command__buffer_tests_gl__test__utils.h b/devel/electron18/files/patch-gpu_command__buffer_tests_gl__test__utils.h new file mode 100644 index 000000000000..34e16dad336c --- /dev/null +++ b/devel/electron18/files/patch-gpu_command__buffer_tests_gl__test__utils.h @@ -0,0 +1,11 @@ +--- gpu/command_buffer/tests/gl_test_utils.h.orig 2022-05-19 03:45:30 UTC ++++ gpu/command_buffer/tests/gl_test_utils.h +@@ -120,7 +120,7 @@ class GpuCommandBufferTestEGL { + return gfx::HasExtension(gl_extensions_, extension); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Create GLImageNativePixmap filled in with the given pixels. + scoped_refptr<gl::GLImageNativePixmap> CreateGLImageNativePixmap( + gfx::BufferFormat format, diff --git a/devel/electron18/files/patch-gpu_config_gpu__control__list.cc b/devel/electron18/files/patch-gpu_config_gpu__control__list.cc new file mode 100644 index 000000000000..65bdece06bf2 --- /dev/null +++ b/devel/electron18/files/patch-gpu_config_gpu__control__list.cc @@ -0,0 +1,20 @@ +--- gpu/config/gpu_control_list.cc.orig 2022-05-19 05:17:43 UTC ++++ gpu/config/gpu_control_list.cc +@@ -276,7 +276,7 @@ bool GpuControlList::More::GLVersionInfoMismatch( + GpuControlList::GLType GpuControlList::More::GetDefaultGLType() { + #if BUILDFLAG(IS_CHROMEOS) + return kGLTypeGL; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return kGLTypeGL; + #elif BUILDFLAG(IS_MAC) + return kGLTypeGL; +@@ -781,7 +781,7 @@ GpuControlList::OsType GpuControlList::GetOsType() { + return kOsAndroid; + #elif BUILDFLAG(IS_FUCHSIA) + return kOsFuchsia; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_OPENBSD) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return kOsLinux; + #elif BUILDFLAG(IS_MAC) + return kOsMacosx; diff --git a/devel/electron18/files/patch-gpu_config_gpu__test__config.cc b/devel/electron18/files/patch-gpu_config_gpu__test__config.cc new file mode 100644 index 000000000000..9d5ffc958f41 --- /dev/null +++ b/devel/electron18/files/patch-gpu_config_gpu__test__config.cc @@ -0,0 +1,11 @@ +--- gpu/config/gpu_test_config.cc.orig 2022-05-19 03:45:30 UTC ++++ gpu/config/gpu_test_config.cc +@@ -29,7 +29,7 @@ GPUTestConfig::OS GetCurrentOS() { + #if BUILDFLAG(IS_CHROMEOS_ASH) + return GPUTestConfig::kOsChromeOS; + #elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ +- BUILDFLAG(IS_OPENBSD) ++ BUILDFLAG(IS_BSD) + return GPUTestConfig::kOsLinux; + #elif BUILDFLAG(IS_WIN) + int32_t major_version = 0; diff --git a/devel/electron18/files/patch-gpu_ipc_common_gpu__memory__buffer__support.cc b/devel/electron18/files/patch-gpu_ipc_common_gpu__memory__buffer__support.cc new file mode 100644 index 000000000000..1df2165430c9 --- /dev/null +++ b/devel/electron18/files/patch-gpu_ipc_common_gpu__memory__buffer__support.cc @@ -0,0 +1,20 @@ +--- gpu/ipc/common/gpu_memory_buffer_support.cc.orig 2022-05-19 05:17:43 UTC ++++ gpu/ipc/common/gpu_memory_buffer_support.cc +@@ -21,7 +21,7 @@ + #include "ui/ozone/public/ozone_platform.h" + #endif + +-#if defined(USE_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if defined(USE_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.h" + #endif + +@@ -50,7 +50,7 @@ GpuMemoryBufferSupport::GetNativeGpuMemoryBufferType() + return gfx::IO_SURFACE_BUFFER; + #elif BUILDFLAG(IS_ANDROID) + return gfx::ANDROID_HARDWARE_BUFFER; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) || BUILDFLAG(IS_BSD) + return gfx::NATIVE_PIXMAP; + #elif BUILDFLAG(IS_WIN) + return gfx::DXGI_SHARED_HANDLE; diff --git a/devel/electron18/files/patch-gpu_ipc_common_gpu__memory__buffer__support.h b/devel/electron18/files/patch-gpu_ipc_common_gpu__memory__buffer__support.h new file mode 100644 index 000000000000..b406f3b8025e --- /dev/null +++ b/devel/electron18/files/patch-gpu_ipc_common_gpu__memory__buffer__support.h @@ -0,0 +1,11 @@ +--- gpu/ipc/common/gpu_memory_buffer_support.h.orig 2022-05-19 05:17:43 UTC ++++ gpu/ipc/common/gpu_memory_buffer_support.h +@@ -17,7 +17,7 @@ + #include "ui/gfx/geometry/size.h" + #include "ui/gfx/gpu_memory_buffer.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) || BUILDFLAG(IS_BSD) + namespace gfx { + class ClientNativePixmapFactory; + } diff --git a/devel/electron18/files/patch-gpu_ipc_service_gpu__init.cc b/devel/electron18/files/patch-gpu_ipc_service_gpu__init.cc new file mode 100644 index 000000000000..edaaa10ac9eb --- /dev/null +++ b/devel/electron18/files/patch-gpu_ipc_service_gpu__init.cc @@ -0,0 +1,65 @@ +--- gpu/ipc/service/gpu_init.cc.orig 2022-05-19 05:17:43 UTC ++++ gpu/ipc/service/gpu_init.cc +@@ -278,7 +278,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + enable_watchdog = false; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool gpu_sandbox_start_early = gpu_preferences_.gpu_sandbox_start_early; + #else // !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) + // For some reasons MacOSX's VideoToolbox might crash when called after +@@ -328,7 +328,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + } + + bool attempted_startsandbox = false; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Chrome OS ARM Mali, GPU driver userspace creates threads when + // initializing a GL context, so start the sandbox early. + // TODO(zmo): Need to collect OS version before this. +@@ -377,7 +377,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + + if (gl_initialized && gl_use_swiftshader_ && + !gl::IsSoftwareGLImplementation(gl::GetGLImplementationParts())) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly " + << "on Linux"; + return false; +@@ -410,7 +410,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + } + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The ContentSandboxHelper is currently the only one implementation of + // GpuSandboxHelper and it has no dependency. Except on Linux where + // VaapiWrapper checks the GL implementation to determine which display +@@ -469,7 +469,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + command_line, gpu_feature_info_, + gpu_preferences_.disable_software_rasterizer, false); + if (gl_use_swiftshader_) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly " + << "on Linux"; + return false; +@@ -591,7 +591,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL + + InitializePlatformOverlaySettings(&gpu_info_, gpu_feature_info_); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Driver may create a compatibility profile context when collect graphics + // information on Linux platform. Try to collect graphics information + // based on core profile context after disabling platform extensions. +@@ -822,7 +822,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c + + InitializePlatformOverlaySettings(&gpu_info_, gpu_feature_info_); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Driver may create a compatibility profile context when collect graphics + // information on Linux platform. Try to collect graphics information + // based on core profile context after disabling platform extensions. diff --git a/devel/electron18/files/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc b/devel/electron18/files/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc new file mode 100644 index 000000000000..7f3fdaf71e6e --- /dev/null +++ b/devel/electron18/files/patch-gpu_ipc_service_gpu__memory__buffer__factory.cc @@ -0,0 +1,20 @@ +--- gpu/ipc/service/gpu_memory_buffer_factory.cc.orig 2022-05-19 03:45:30 UTC ++++ gpu/ipc/service/gpu_memory_buffer_factory.cc +@@ -12,7 +12,7 @@ + #include "gpu/ipc/service/gpu_memory_buffer_factory_io_surface.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include "gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.h" + #endif + +@@ -34,7 +34,7 @@ GpuMemoryBufferFactory::CreateNativeType( + return std::make_unique<GpuMemoryBufferFactoryIOSurface>(); + #elif BUILDFLAG(IS_ANDROID) + return std::make_unique<GpuMemoryBufferFactoryAndroidHardwareBuffer>(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + return std::make_unique<GpuMemoryBufferFactoryNativePixmap>( + vulkan_context_provider); + #elif BUILDFLAG(IS_WIN) diff --git a/devel/electron18/files/patch-gpu_ipc_service_x__util.h b/devel/electron18/files/patch-gpu_ipc_service_x__util.h new file mode 100644 index 000000000000..b155915883d7 --- /dev/null +++ b/devel/electron18/files/patch-gpu_ipc_service_x__util.h @@ -0,0 +1,16 @@ +--- gpu/ipc/service/x_util.h.orig 2022-05-19 03:45:30 UTC ++++ gpu/ipc/service/x_util.h +@@ -11,11 +11,11 @@ + #include "build/build_config.h" + #include "gpu/ipc/service/gpu_config.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/ozone/buildflags.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #if BUILDFLAG(OZONE_PLATFORM_X11) + + namespace gpu { diff --git a/devel/electron18/files/patch-gpu_vulkan_generate__bindings.py b/devel/electron18/files/patch-gpu_vulkan_generate__bindings.py new file mode 100644 index 000000000000..b01b0c9fd005 --- /dev/null +++ b/devel/electron18/files/patch-gpu_vulkan_generate__bindings.py @@ -0,0 +1,29 @@ +--- gpu/vulkan/generate_bindings.py.orig 2022-05-19 05:17:43 UTC ++++ gpu/vulkan/generate_bindings.py +@@ -185,7 +185,7 @@ VULKAN_DEVICE_FUNCTIONS = [ + }, + { + 'ifdef': +- 'BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)', ++ 'BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)', + 'extension': 'VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME', + 'functions': [ + 'vkGetSemaphoreFdKHR', +@@ -202,7 +202,7 @@ VULKAN_DEVICE_FUNCTIONS = [ + }, + { + 'ifdef': +- 'BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)', ++ 'BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)', + 'extension': 'VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME', + 'functions': [ + 'vkGetMemoryFdKHR', +@@ -253,7 +253,7 @@ VULKAN_DEVICE_FUNCTIONS = [ + ] + }, + { +- 'ifdef': 'BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)', ++ 'ifdef': 'BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)', + 'extension': 'VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME', + 'functions': [ + 'vkGetImageDrmFormatModifierPropertiesEXT', diff --git a/devel/electron18/files/patch-gpu_vulkan_vulkan__device__queue.cc b/devel/electron18/files/patch-gpu_vulkan_vulkan__device__queue.cc new file mode 100644 index 000000000000..aae0c0f8172f --- /dev/null +++ b/devel/electron18/files/patch-gpu_vulkan_vulkan__device__queue.cc @@ -0,0 +1,20 @@ +--- gpu/vulkan/vulkan_device_queue.cc.orig 2022-05-19 05:17:43 UTC ++++ gpu/vulkan/vulkan_device_queue.cc +@@ -85,7 +85,7 @@ bool VulkanDeviceQueue::Initialize( + + // In dual-CPU cases, we cannot detect the active GPU correctly on Linux, + // so don't select GPU device based on the |gpu_info|. +-#if !BUILDFLAG(IS_LINUX) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) + // If gpu_info is provided, the device should match it. + if (gpu_info && (device_properties.vendorID != gpu_info->gpu.vendor_id || + device_properties.deviceID != gpu_info->gpu.device_id)) { +@@ -229,7 +229,7 @@ bool VulkanDeviceQueue::Initialize( + enabled_device_features_2_ = {VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2}; + + // Android, Fuchsia, and Linux(VaapiVideoDecoder) need YCbCr sampler support. +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!physical_device_info.feature_sampler_ycbcr_conversion) { + LOG(ERROR) << "samplerYcbcrConversion is not supported."; + return false; diff --git a/devel/electron18/files/patch-gpu_vulkan_vulkan__device__queue.h b/devel/electron18/files/patch-gpu_vulkan_vulkan__device__queue.h new file mode 100644 index 000000000000..a11813df3bdb --- /dev/null +++ b/devel/electron18/files/patch-gpu_vulkan_vulkan__device__queue.h @@ -0,0 +1,11 @@ +--- gpu/vulkan/vulkan_device_queue.h.orig 2022-05-19 03:45:30 UTC ++++ gpu/vulkan/vulkan_device_queue.h +@@ -155,7 +155,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanDeviceQueue { + + bool allow_protected_memory_ = false; + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + VkPhysicalDeviceSamplerYcbcrConversionFeatures + sampler_ycbcr_conversion_features_{ + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES}; diff --git a/devel/electron18/files/patch-gpu_vulkan_vulkan__function__pointers.cc b/devel/electron18/files/patch-gpu_vulkan_vulkan__function__pointers.cc new file mode 100644 index 000000000000..49b925de332d --- /dev/null +++ b/devel/electron18/files/patch-gpu_vulkan_vulkan__function__pointers.cc @@ -0,0 +1,29 @@ +--- gpu/vulkan/vulkan_function_pointers.cc.orig 2022-05-19 05:17:43 UTC ++++ gpu/vulkan/vulkan_function_pointers.cc +@@ -926,7 +926,7 @@ bool VulkanFunctionPointers::BindDeviceFunctionPointer + } + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + if (gfx::HasExtension(enabled_extensions, + VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME)) { + vkGetSemaphoreFdKHR = reinterpret_cast<PFN_vkGetSemaphoreFdKHR>( +@@ -971,7 +971,7 @@ bool VulkanFunctionPointers::BindDeviceFunctionPointer + } + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + if (gfx::HasExtension(enabled_extensions, + VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME)) { + vkGetMemoryFdKHR = reinterpret_cast<PFN_vkGetMemoryFdKHR>( +@@ -1141,7 +1141,7 @@ bool VulkanFunctionPointers::BindDeviceFunctionPointer + } + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (gfx::HasExtension(enabled_extensions, + VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME)) { + vkGetImageDrmFormatModifierPropertiesEXT = diff --git a/devel/electron18/files/patch-gpu_vulkan_vulkan__function__pointers.h b/devel/electron18/files/patch-gpu_vulkan_vulkan__function__pointers.h new file mode 100644 index 000000000000..449923ece259 --- /dev/null +++ b/devel/electron18/files/patch-gpu_vulkan_vulkan__function__pointers.h @@ -0,0 +1,63 @@ +--- gpu/vulkan/vulkan_function_pointers.h.orig 2022-05-19 05:17:43 UTC ++++ gpu/vulkan/vulkan_function_pointers.h +@@ -250,7 +250,7 @@ struct COMPONENT_EXPORT(VULKAN) VulkanFunctionPointers + vkGetAndroidHardwareBufferPropertiesANDROID; + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + VulkanFunction<PFN_vkGetSemaphoreFdKHR> vkGetSemaphoreFdKHR; + VulkanFunction<PFN_vkImportSemaphoreFdKHR> vkImportSemaphoreFdKHR; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || +@@ -262,7 +262,7 @@ struct COMPONENT_EXPORT(VULKAN) VulkanFunctionPointers + vkImportSemaphoreWin32HandleKHR; + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + VulkanFunction<PFN_vkGetMemoryFdKHR> vkGetMemoryFdKHR; + VulkanFunction<PFN_vkGetMemoryFdPropertiesKHR> vkGetMemoryFdPropertiesKHR; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || +@@ -303,7 +303,7 @@ struct COMPONENT_EXPORT(VULKAN) VulkanFunctionPointers + VulkanFunction<PFN_vkGetSwapchainImagesKHR> vkGetSwapchainImagesKHR; + VulkanFunction<PFN_vkQueuePresentKHR> vkQueuePresentKHR; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + VulkanFunction<PFN_vkGetImageDrmFormatModifierPropertiesEXT> + vkGetImageDrmFormatModifierPropertiesEXT; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -1033,7 +1033,7 @@ ALWAYS_INLINE VkResult vkGetAndroidHardwareBufferPrope + } + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + ALWAYS_INLINE VkResult + vkGetSemaphoreFdKHR(VkDevice device, + const VkSemaphoreGetFdInfoKHR* pGetFdInfo, +@@ -1067,7 +1067,7 @@ vkImportSemaphoreWin32HandleKHR(VkDevice device, + } + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + ALWAYS_INLINE VkResult vkGetMemoryFdKHR(VkDevice device, + const VkMemoryGetFdInfoKHR* pGetFdInfo, + int* pFd) { +@@ -1203,7 +1203,7 @@ ALWAYS_INLINE VkResult vkQueuePresentKHR(VkQueue queue + pPresentInfo); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + ALWAYS_INLINE VkResult vkGetImageDrmFormatModifierPropertiesEXT( + VkDevice device, + VkImage image, +@@ -1213,4 +1213,4 @@ ALWAYS_INLINE VkResult vkGetImageDrmFormatModifierProp + } + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +-#endif // GPU_VULKAN_VULKAN_FUNCTION_POINTERS_H_ +\ No newline at end of file ++#endif // GPU_VULKAN_VULKAN_FUNCTION_POINTERS_H_ diff --git a/devel/electron18/files/patch-gpu_vulkan_vulkan__image.cc b/devel/electron18/files/patch-gpu_vulkan_vulkan__image.cc new file mode 100644 index 000000000000..0b42c9a69117 --- /dev/null +++ b/devel/electron18/files/patch-gpu_vulkan_vulkan__image.cc @@ -0,0 +1,11 @@ +--- gpu/vulkan/vulkan_image.cc.orig 2022-05-19 03:45:30 UTC ++++ gpu/vulkan/vulkan_image.cc +@@ -322,7 +322,7 @@ bool VulkanImage::InitializeWithExternalMemory( + + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + VkPhysicalDeviceImageDrmFormatModifierInfoEXT modifier_info = { + .sType = + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT, diff --git a/devel/electron18/files/patch-gpu_vulkan_vulkan__image.h b/devel/electron18/files/patch-gpu_vulkan_vulkan__image.h new file mode 100644 index 000000000000..dad2c3bdfd86 --- /dev/null +++ b/devel/electron18/files/patch-gpu_vulkan_vulkan__image.h @@ -0,0 +1,20 @@ +--- gpu/vulkan/vulkan_image.h.orig 2022-05-19 03:45:30 UTC ++++ gpu/vulkan/vulkan_image.h +@@ -86,7 +86,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanImage { + VkImageUsageFlags usage, + VkImageCreateFlags flags); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static std::unique_ptr<VulkanImage> CreateWithExternalMemoryAndModifiers( + VulkanDeviceQueue* device_queue, + const gfx::Size& size, +@@ -170,7 +170,7 @@ class COMPONENT_EXPORT(VULKAN) VulkanImage { + VkImageTiling image_tiling, + uint32_t queue_family_index); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool InitializeWithExternalMemoryAndModifiers(VulkanDeviceQueue* device_queue, + const gfx::Size& size, + VkFormat format, diff --git a/devel/electron18/files/patch-headless_lib_browser_headless__browser__main__parts.h b/devel/electron18/files/patch-headless_lib_browser_headless__browser__main__parts.h new file mode 100644 index 000000000000..ad5d9ddbe7f9 --- /dev/null +++ b/devel/electron18/files/patch-headless_lib_browser_headless__browser__main__parts.h @@ -0,0 +1,11 @@ +--- headless/lib/browser/headless_browser_main_parts.h.orig 2022-05-19 05:17:43 UTC ++++ headless/lib/browser/headless_browser_main_parts.h +@@ -50,7 +50,7 @@ class HEADLESS_EXPORT HeadlessBrowserMainParts + #if BUILDFLAG(IS_MAC) + void PreCreateMainMessageLoop() override; + #endif +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + void PostCreateMainMessageLoop() override; + #endif + void QuitMainMessageLoop(); diff --git a/devel/electron18/files/patch-headless_lib_browser_headless__browser__main__parts__linux.cc b/devel/electron18/files/patch-headless_lib_browser_headless__browser__main__parts__linux.cc new file mode 100644 index 000000000000..ccf0265b470f --- /dev/null +++ b/devel/electron18/files/patch-headless_lib_browser_headless__browser__main__parts__linux.cc @@ -0,0 +1,11 @@ +--- headless/lib/browser/headless_browser_main_parts_linux.cc.orig 2022-05-19 03:45:30 UTC ++++ headless/lib/browser/headless_browser_main_parts_linux.cc +@@ -24,7 +24,7 @@ constexpr char kProductName[] = "HeadlessChrome"; + #endif + + void HeadlessBrowserMainParts::PostCreateMainMessageLoop() { +-#if defined(USE_DBUS) && !BUILDFLAG(IS_CHROMEOS_ASH) ++#if defined(USE_DBUS) && !BUILDFLAG(IS_CHROMEOS_ASH) && !defined(OS_BSD) + bluez::BluezDBusManager::Initialize(/*system_bus=*/nullptr); + #endif + diff --git a/devel/electron18/files/patch-headless_lib_browser_headless__content__browser__client.h b/devel/electron18/files/patch-headless_lib_browser_headless__content__browser__client.h new file mode 100644 index 000000000000..18d64670480f --- /dev/null +++ b/devel/electron18/files/patch-headless_lib_browser_headless__content__browser__client.h @@ -0,0 +1,11 @@ +--- headless/lib/browser/headless_content_browser_client.h.orig 2022-05-19 05:17:43 UTC ++++ headless/lib/browser/headless_content_browser_client.h +@@ -47,7 +47,7 @@ class HeadlessContentBrowserClient : public content::C + override; + content::GeneratedCodeCacheSettings GetGeneratedCodeCacheSettings( + content::BrowserContext* context) override; +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + void GetAdditionalMappedFilesForChildProcess( + const base::CommandLine& command_line, + int child_process_id, diff --git a/devel/electron18/files/patch-headless_lib_browser_headless__request__context__manager.cc b/devel/electron18/files/patch-headless_lib_browser_headless__request__context__manager.cc new file mode 100644 index 000000000000..eb5fecd18575 --- /dev/null +++ b/devel/electron18/files/patch-headless_lib_browser_headless__request__context__manager.cc @@ -0,0 +1,11 @@ +--- headless/lib/browser/headless_request_context_manager.cc.orig 2022-05-19 05:17:43 UTC ++++ headless/lib/browser/headless_request_context_manager.cc +@@ -65,7 +65,7 @@ void SetCryptKeyOnce(const base::FilePath& user_data_p + return; + done_once = true; + +-#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)) && defined(HEADLESS_USE_PREFS) ++#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && defined(HEADLESS_USE_PREFS) + // The OSCrypt keys are process bound, so if network service is out of + // process, send it the required key if it is available. + if (content::IsOutOfProcessNetworkService() diff --git a/devel/electron18/files/patch-headless_lib_browser_headless__web__contents__impl.cc b/devel/electron18/files/patch-headless_lib_browser_headless__web__contents__impl.cc new file mode 100644 index 000000000000..74aab2469405 --- /dev/null +++ b/devel/electron18/files/patch-headless_lib_browser_headless__web__contents__impl.cc @@ -0,0 +1,11 @@ +--- headless/lib/browser/headless_web_contents_impl.cc.orig 2022-05-20 04:30:53 UTC ++++ headless/lib/browser/headless_web_contents_impl.cc +@@ -56,7 +56,7 @@ namespace headless { + namespace { + + void UpdatePrefsFromSystemSettings(blink::RendererPreferences* prefs) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + content::UpdateFontRendererPreferencesFromSystemSettings(prefs); + #endif + diff --git a/devel/electron18/files/patch-headless_lib_headless__content__main__delegate.cc b/devel/electron18/files/patch-headless_lib_headless__content__main__delegate.cc new file mode 100644 index 000000000000..2ea845859973 --- /dev/null +++ b/devel/electron18/files/patch-headless_lib_headless__content__main__delegate.cc @@ -0,0 +1,11 @@ +--- headless/lib/headless_content_main_delegate.cc.orig 2022-05-19 03:45:30 UTC ++++ headless/lib/headless_content_main_delegate.cc +@@ -336,7 +336,7 @@ void HeadlessContentMainDelegate::InitCrashReporter( + if (process_type != switches::kZygoteProcess) { + g_headless_crash_client.Pointer()->set_crash_dumps_dir( + options()->crash_dumps_dir); +-#if !BUILDFLAG(IS_WIN) ++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD) + crash_reporter::InitializeCrashpad(process_type.empty(), process_type); + #endif // !BUILDFLAG(IS_WIN) + crash_keys::SetSwitchesFromCommandLine(command_line, nullptr); diff --git a/devel/electron18/files/patch-headless_public_headless__browser.cc b/devel/electron18/files/patch-headless_public_headless__browser.cc new file mode 100644 index 000000000000..152261360772 --- /dev/null +++ b/devel/electron18/files/patch-headless_public_headless__browser.cc @@ -0,0 +1,11 @@ +--- headless/public/headless_browser.cc.orig 2022-05-19 05:17:43 UTC ++++ headless/public/headless_browser.cc +@@ -42,7 +42,7 @@ Options::Options(int argc, const char** argv) + user_agent(content::BuildUserAgentFromProduct(product_name_and_version)), + window_size(kDefaultWindowSize), + font_render_hinting(kDefaultFontRenderHinting) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + gl_implementation = gl::kGLImplementationANGLEName; + angle_implementation = gl::kANGLEImplementationSwiftShaderForWebGLName; + #endif diff --git a/devel/electron18/files/patch-ipc_ipc__channel.h b/devel/electron18/files/patch-ipc_ipc__channel.h new file mode 100644 index 000000000000..04c90ac0db58 --- /dev/null +++ b/devel/electron18/files/patch-ipc_ipc__channel.h @@ -0,0 +1,11 @@ +--- ipc/ipc_channel.h.orig 2022-05-19 05:17:44 UTC ++++ ipc/ipc_channel.h +@@ -235,7 +235,7 @@ class COMPONENT_EXPORT(IPC) Channel : public Sender { + static std::string GenerateUniqueRandomChannelID(); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Sandboxed processes live in a PID namespace, so when sending the IPC hello + // message from client to server we need to send the PID from the global + // PID namespace. diff --git a/devel/electron18/files/patch-ipc_ipc__channel__common.cc b/devel/electron18/files/patch-ipc_ipc__channel__common.cc new file mode 100644 index 000000000000..f43a9bdb806e --- /dev/null +++ b/devel/electron18/files/patch-ipc_ipc__channel__common.cc @@ -0,0 +1,11 @@ +--- ipc/ipc_channel_common.cc.orig 2022-05-19 05:17:44 UTC ++++ ipc/ipc_channel_common.cc +@@ -10,7 +10,7 @@ + + namespace IPC { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + namespace { + int g_global_pid = 0; diff --git a/devel/electron18/files/patch-ipc_ipc__channel__mojo.cc b/devel/electron18/files/patch-ipc_ipc__channel__mojo.cc new file mode 100644 index 000000000000..1c2f04d970ae --- /dev/null +++ b/devel/electron18/files/patch-ipc_ipc__channel__mojo.cc @@ -0,0 +1,11 @@ +--- ipc/ipc_channel_mojo.cc.orig 2022-05-19 03:45:32 UTC ++++ ipc/ipc_channel_mojo.cc +@@ -112,7 +112,7 @@ class ThreadSafeChannelProxy : public mojo::ThreadSafe + }; + + base::ProcessId GetSelfPID() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (int global_pid = Channel::GetGlobalPid()) + return global_pid; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron18/files/patch-ipc_ipc__message__utils.cc b/devel/electron18/files/patch-ipc_ipc__message__utils.cc new file mode 100644 index 000000000000..e55c4df6c9f8 --- /dev/null +++ b/devel/electron18/files/patch-ipc_ipc__message__utils.cc @@ -0,0 +1,11 @@ +--- ipc/ipc_message_utils.cc.orig 2022-05-19 05:17:44 UTC ++++ ipc/ipc_message_utils.cc +@@ -350,7 +350,7 @@ void ParamTraits<unsigned int>::Log(const param_type& + } + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_FUCHSIA) || \ ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS)) + void ParamTraits<long>::Log(const param_type& p, std::string* l) { + l->append(base::NumberToString(p)); diff --git a/devel/electron18/files/patch-ipc_ipc__message__utils.h b/devel/electron18/files/patch-ipc_ipc__message__utils.h new file mode 100644 index 000000000000..7b77cc3370af --- /dev/null +++ b/devel/electron18/files/patch-ipc_ipc__message__utils.h @@ -0,0 +1,11 @@ +--- ipc/ipc_message_utils.h.orig 2022-05-19 05:17:44 UTC ++++ ipc/ipc_message_utils.h +@@ -214,7 +214,7 @@ struct ParamTraits<unsigned int> { + // Since we want to support Android 32<>64 bit IPC, as long as we don't have + // these traits for 32 bit ARM then that'll catch any errors. + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_FUCHSIA) || \ ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) || \ + (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS)) + template <> + struct ParamTraits<long> { diff --git a/devel/electron18/files/patch-media_BUILD.gn b/devel/electron18/files/patch-media_BUILD.gn new file mode 100644 index 000000000000..f4307de0f7aa --- /dev/null +++ b/devel/electron18/files/patch-media_BUILD.gn @@ -0,0 +1,12 @@ +--- media/BUILD.gn.orig 2022-05-19 05:17:44 UTC ++++ media/BUILD.gn +@@ -76,6 +76,9 @@ config("media_config") { + defines += [ "DLOPEN_PULSEAUDIO" ] + } + } ++ if (use_sndio) { ++ defines += [ "USE_SNDIO" ] ++ } + if (use_cras) { + defines += [ "USE_CRAS" ] + } diff --git a/devel/electron18/files/patch-media_audio_BUILD.gn b/devel/electron18/files/patch-media_audio_BUILD.gn new file mode 100644 index 000000000000..902eae5352f5 --- /dev/null +++ b/devel/electron18/files/patch-media_audio_BUILD.gn @@ -0,0 +1,24 @@ +--- media/audio/BUILD.gn.orig 2022-05-20 04:30:53 UTC ++++ media/audio/BUILD.gn +@@ -251,9 +251,20 @@ source_set("audio") { + ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !use_sndio) { + sources += [ "linux/audio_manager_linux.cc" ] + } ++ ++ if (use_sndio) { ++ libs += [ "sndio" ] ++ sources += [ ++ "sndio/audio_manager_sndio.cc", ++ "sndio/sndio_input.cc", ++ "sndio/sndio_input.h", ++ "sndio/sndio_output.cc", ++ "sndio/sndio_output.h" ++ ] ++ } + + if (use_alsa) { + libs += [ "asound" ] diff --git a/devel/electron18/files/patch-media_audio_alsa_audio__manager__alsa.cc b/devel/electron18/files/patch-media_audio_alsa_audio__manager__alsa.cc new file mode 100644 index 000000000000..a7d18f018bf9 --- /dev/null +++ b/devel/electron18/files/patch-media_audio_alsa_audio__manager__alsa.cc @@ -0,0 +1,54 @@ +--- media/audio/alsa/audio_manager_alsa.cc.orig 2022-05-19 05:17:44 UTC ++++ media/audio/alsa/audio_manager_alsa.cc +@@ -89,7 +89,9 @@ void AudioManagerAlsa::GetAlsaAudioDevices(StreamType + int card = -1; + + // Loop through the sound cards to get ALSA device hints. ++#if !BUILDFLAG(IS_BSD) + while (!wrapper_->CardNext(&card) && card >= 0) { ++#endif + void** hints = NULL; + int error = wrapper_->DeviceNameHint(card, kPcmInterfaceName, &hints); + if (!error) { +@@ -101,7 +103,9 @@ void AudioManagerAlsa::GetAlsaAudioDevices(StreamType + DLOG(WARNING) << "GetAlsaAudioDevices: unable to get device hints: " + << wrapper_->StrError(error); + } ++#if !BUILDFLAG(IS_BSD) + } ++#endif + } + + void AudioManagerAlsa::GetAlsaDevicesInfo(AudioManagerAlsa::StreamType type, +@@ -184,7 +188,11 @@ bool AudioManagerAlsa::IsAlsaDeviceAvailable( + // goes through software conversion if needed (e.g. incompatible + // sample rate). + // TODO(joi): Should we prefer "hw" instead? ++#if BUILDFLAG(IS_BSD) ++ static const char kDeviceTypeDesired[] = "plug"; ++#else + static const char kDeviceTypeDesired[] = "plughw"; ++#endif + return strncmp(kDeviceTypeDesired, device_name, + base::size(kDeviceTypeDesired) - 1) == 0; + } +@@ -206,7 +214,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDevice( + // Loop through the sound cards. + // Don't use snd_device_name_hint(-1,..) since there is an access violation + // inside this ALSA API with libasound.so.2.0.0. ++#if !BUILDFLAG(IS_BSD) + while (!wrapper_->CardNext(&card) && (card >= 0) && !has_device) { ++#endif + int error = wrapper_->DeviceNameHint(card, kPcmInterfaceName, &hints); + if (!error) { + for (void** hint_iter = hints; *hint_iter != NULL; hint_iter++) { +@@ -230,7 +240,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDevice( + DLOG(WARNING) << "HasAnyAudioDevice: unable to get device hints: " + << wrapper_->StrError(error); + } ++#if !BUILDFLAG(IS_BSD) + } ++#endif + + return has_device; + } diff --git a/devel/electron18/files/patch-media_audio_audio__features.cc b/devel/electron18/files/patch-media_audio_audio__features.cc new file mode 100644 index 000000000000..e3d0b078c6b9 --- /dev/null +++ b/devel/electron18/files/patch-media_audio_audio__features.cc @@ -0,0 +1,11 @@ +--- media/audio/audio_features.cc.orig 2022-05-19 05:17:44 UTC ++++ media/audio/audio_features.cc +@@ -19,7 +19,7 @@ const base::Feature kPlatformAudioEncoder{"PlatformAud + const base::Feature kAudioServiceOutOfProcessKillAtHang{ + "AudioServiceOutOfProcessKillAtHang", + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT diff --git a/devel/electron18/files/patch-media_audio_audio__input__device.cc b/devel/electron18/files/patch-media_audio_audio__input__device.cc new file mode 100644 index 000000000000..4c57e1b53533 --- /dev/null +++ b/devel/electron18/files/patch-media_audio_audio__input__device.cc @@ -0,0 +1,11 @@ +--- media/audio/audio_input_device.cc.orig 2022-05-19 05:17:44 UTC ++++ media/audio/audio_input_device.cc +@@ -259,7 +259,7 @@ void AudioInputDevice::OnStreamCreated( + // here. See comments in AliveChecker and PowerObserverHelper for details and + // todos. + if (detect_dead_stream_ == DeadStreamDetection::kEnabled) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const bool stop_at_first_alive_notification = true; + const bool pause_check_during_suspend = false; + #else diff --git a/devel/electron18/files/patch-media_audio_audio__output__proxy__unittest.cc b/devel/electron18/files/patch-media_audio_audio__output__proxy__unittest.cc new file mode 100644 index 000000000000..4e3e076f0f56 --- /dev/null +++ b/devel/electron18/files/patch-media_audio_audio__output__proxy__unittest.cc @@ -0,0 +1,14 @@ +--- media/audio/audio_output_proxy_unittest.cc.orig 2022-05-19 03:45:32 UTC ++++ media/audio/audio_output_proxy_unittest.cc +@@ -412,7 +412,11 @@ class AudioOutputProxyTest : public testing::Test { + // |stream| is closed at this point. Start() should reopen it again. + EXPECT_CALL(manager(), MakeAudioOutputStream(_, _, _)) + .Times(2) ++#if BUILDFLAG(IS_BSD) ++ .WillRepeatedly(Return(static_cast<AudioOutputStream*>(NULL))); ++#else + .WillRepeatedly(Return(reinterpret_cast<AudioOutputStream*>(NULL))); ++#endif + + EXPECT_CALL(callback_, OnError(_)).Times(2); + diff --git a/devel/electron18/files/patch-media_audio_sndio_audio__manager__sndio.cc b/devel/electron18/files/patch-media_audio_sndio_audio__manager__sndio.cc new file mode 100644 index 000000000000..87b26bb9bbab --- /dev/null +++ b/devel/electron18/files/patch-media_audio_sndio_audio__manager__sndio.cc @@ -0,0 +1,184 @@ +--- media/audio/sndio/audio_manager_sndio.cc.orig 2022-05-20 04:31:06 UTC ++++ media/audio/sndio/audio_manager_sndio.cc +@@ -0,0 +1,181 @@ ++// Copyright (c) 2012 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. ++ ++#include "base/command_line.h" ++#include "base/metrics/histogram_macros.h" ++#include "base/memory/ptr_util.h" ++ ++#include "media/audio/sndio/audio_manager_sndio.h" ++ ++#include "media/audio/audio_device_description.h" ++#include "media/audio/audio_output_dispatcher.h" ++#if defined(USE_SNDIO) ++#include "media/audio/sndio/sndio_input.h" ++#include "media/audio/sndio/sndio_output.h" ++#endif ++#include "media/audio/fake_audio_manager.h" ++#include "media/base/limits.h" ++#include "media/base/media_switches.h" ++ ++namespace media { ++ ++enum SndioAudioIO { ++ kPulse, ++ kSndio, ++ kAudioIOMax = kSndio ++}; ++ ++#if defined(USE_SNDIO) ++// Maximum number of output streams that can be open simultaneously. ++static const int kMaxOutputStreams = 50; ++ ++// Default sample rate for input and output streams. ++static const int kDefaultSampleRate = 48000; ++ ++void AddDefaultDevice(AudioDeviceNames* device_names) { ++ DCHECK(device_names->empty()); ++ device_names->push_front(AudioDeviceName::CreateDefault()); ++} ++ ++bool AudioManagerSndio::HasAudioOutputDevices() { ++ return true; ++} ++ ++bool AudioManagerSndio::HasAudioInputDevices() { ++ return true; ++} ++ ++void AudioManagerSndio::GetAudioInputDeviceNames( ++ AudioDeviceNames* device_names) { ++ DCHECK(device_names->empty()); ++ AddDefaultDevice(device_names); ++} ++ ++void AudioManagerSndio::GetAudioOutputDeviceNames( ++ AudioDeviceNames* device_names) { ++ AddDefaultDevice(device_names); ++} ++ ++#if defined(USE_SNDIO) ++const char* AudioManagerSndio::GetName() { ++ return "SNDIO"; ++} ++#endif ++ ++AudioParameters AudioManagerSndio::GetInputStreamParameters( ++ const std::string& device_id) { ++ static const int kDefaultInputBufferSize = 1024; ++ ++ int user_buffer_size = GetUserBufferSize(); ++ int buffer_size = user_buffer_size ? ++ user_buffer_size : kDefaultInputBufferSize; ++ ++ return AudioParameters( ++ AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, ++ kDefaultSampleRate, buffer_size); ++} ++ ++AudioManagerSndio::AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread, ++ AudioLogFactory* audio_log_factory) ++ : AudioManagerBase(std::move(audio_thread), ++ audio_log_factory) { ++ DLOG(WARNING) << "AudioManagerSndio"; ++ SetMaxOutputStreamsAllowed(kMaxOutputStreams); ++} ++ ++AudioManagerSndio::~AudioManagerSndio() = default; ++ ++AudioOutputStream* AudioManagerSndio::MakeLinearOutputStream( ++ const AudioParameters& params, ++ const LogCallback& log_callback) { ++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); ++ return MakeOutputStream(params); ++} ++ ++AudioOutputStream* AudioManagerSndio::MakeLowLatencyOutputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) { ++ DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!"; ++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); ++ return MakeOutputStream(params); ++} ++ ++AudioInputStream* AudioManagerSndio::MakeLinearInputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) { ++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); ++ return MakeInputStream(params); ++} ++ ++AudioInputStream* AudioManagerSndio::MakeLowLatencyInputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) { ++ DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); ++ return MakeInputStream(params); ++} ++ ++AudioParameters AudioManagerSndio::GetPreferredOutputStreamParameters( ++ const std::string& output_device_id, ++ const AudioParameters& input_params) { ++ // TODO(tommi): Support |output_device_id|. ++ DLOG_IF(ERROR, !output_device_id.empty()) << "Not implemented!"; ++ static const int kDefaultOutputBufferSize = 2048; ++ ++ ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO; ++ int sample_rate = kDefaultSampleRate; ++ int buffer_size = kDefaultOutputBufferSize; ++ if (input_params.IsValid()) { ++ sample_rate = input_params.sample_rate(); ++ channel_layout = input_params.channel_layout(); ++ buffer_size = std::min(buffer_size, input_params.frames_per_buffer()); ++ } ++ ++ int user_buffer_size = GetUserBufferSize(); ++ if (user_buffer_size) ++ buffer_size = user_buffer_size; ++ ++ return AudioParameters( ++ AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, ++ sample_rate, buffer_size); ++} ++ ++AudioInputStream* AudioManagerSndio::MakeInputStream( ++ const AudioParameters& params) { ++ DLOG(WARNING) << "MakeInputStream"; ++ return new SndioAudioInputStream(this, ++ AudioDeviceDescription::kDefaultDeviceId, params); ++} ++ ++AudioOutputStream* AudioManagerSndio::MakeOutputStream( ++ const AudioParameters& params) { ++ DLOG(WARNING) << "MakeOutputStream"; ++ return new SndioAudioOutputStream(params, this); ++} ++#endif ++ ++std::unique_ptr<media::AudioManager> CreateAudioManager( ++ std::unique_ptr<AudioThread> audio_thread, ++ AudioLogFactory* audio_log_factory) { ++ DLOG(WARNING) << "CreateAudioManager"; ++ // For testing allow audio output to be disabled. ++ if (base::CommandLine::ForCurrentProcess()->HasSwitch( ++ switches::kDisableAudioOutput)) { ++ return std::make_unique<FakeAudioManager>(std::move(audio_thread), ++ audio_log_factory); ++ } ++#if defined(USE_SNDIO) ++ UMA_HISTOGRAM_ENUMERATION("Media.SndioAudioIO", kSndio, kAudioIOMax + 1); ++ return std::make_unique<AudioManagerSndio>(std::move(audio_thread), ++ audio_log_factory); ++#else ++ return std::make_unique<FakeAudioManager>(std::move(audio_thread), ++ audio_log_factory); ++#endif ++ ++} ++ ++} // namespace media diff --git a/devel/electron18/files/patch-media_audio_sndio_audio__manager__sndio.h b/devel/electron18/files/patch-media_audio_sndio_audio__manager__sndio.h new file mode 100644 index 000000000000..a2d46f707856 --- /dev/null +++ b/devel/electron18/files/patch-media_audio_sndio_audio__manager__sndio.h @@ -0,0 +1,69 @@ +--- media/audio/sndio/audio_manager_sndio.h.orig 2022-05-13 07:20:05 UTC ++++ media/audio/sndio/audio_manager_sndio.h +@@ -0,0 +1,66 @@ ++// Copyright (c) 2012 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. ++ ++#ifndef MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_ ++#define MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_ ++ ++#include <set> ++ ++#include "base/compiler_specific.h" ++#include "base/memory/ref_counted.h" ++#include "base/threading/thread.h" ++#include "media/audio/audio_manager_base.h" ++ ++namespace media { ++ ++class MEDIA_EXPORT AudioManagerSndio : public AudioManagerBase { ++ public: ++ AudioManagerSndio(std::unique_ptr<AudioThread> audio_thread, ++ AudioLogFactory* audio_log_factory); ++ ++ AudioManagerSndio(const AudioManagerSndio&) = delete; ++ AudioManagerSndio& operator=(const AudioManagerSndio&) = delete; ++ ++ ~AudioManagerSndio() override; ++ ++ // Implementation of AudioManager. ++ bool HasAudioOutputDevices() override; ++ bool HasAudioInputDevices() override; ++ void GetAudioInputDeviceNames(AudioDeviceNames* device_names) override; ++ void GetAudioOutputDeviceNames(AudioDeviceNames* device_names) override; ++ AudioParameters GetInputStreamParameters( ++ const std::string& device_id) override; ++ const char* GetName() override; ++ ++ // Implementation of AudioManagerBase. ++ AudioOutputStream* MakeLinearOutputStream( ++ const AudioParameters& params, ++ const LogCallback& log_callback) override; ++ AudioOutputStream* MakeLowLatencyOutputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) override; ++ AudioInputStream* MakeLinearInputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) override; ++ AudioInputStream* MakeLowLatencyInputStream( ++ const AudioParameters& params, ++ const std::string& device_id, ++ const LogCallback& log_callback) override; ++ ++ protected: ++ AudioParameters GetPreferredOutputStreamParameters( ++ const std::string& output_device_id, ++ const AudioParameters& input_params) override; ++ ++ private: ++ // Called by MakeLinearOutputStream and MakeLowLatencyOutputStream. ++ AudioOutputStream* MakeOutputStream(const AudioParameters& params); ++ AudioInputStream* MakeInputStream(const AudioParameters& params); ++}; ++ ++} // namespace media ++ ++#endif // MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_ diff --git a/devel/electron18/files/patch-media_audio_sndio_sndio__input.cc b/devel/electron18/files/patch-media_audio_sndio_sndio__input.cc new file mode 100644 index 000000000000..23ecd88079e0 --- /dev/null +++ b/devel/electron18/files/patch-media_audio_sndio_sndio__input.cc @@ -0,0 +1,204 @@ +--- media/audio/sndio/sndio_input.cc.orig 2022-05-20 04:31:06 UTC ++++ media/audio/sndio/sndio_input.cc +@@ -0,0 +1,201 @@ ++// Copyright 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. ++ ++#include "base/bind.h" ++#include "base/logging.h" ++#include "media/base/audio_timestamp_helper.h" ++#include "media/audio/sndio/audio_manager_sndio.h" ++#include "media/audio/audio_manager.h" ++#include "media/audio/sndio/sndio_input.h" ++ ++namespace media { ++ ++static const SampleFormat kSampleFormat = kSampleFormatS16; ++ ++void SndioAudioInputStream::OnMoveCallback(void *arg, int delta) ++{ ++ SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg); ++ ++ self->hw_delay += delta; ++} ++ ++void *SndioAudioInputStream::ThreadEntry(void *arg) { ++ SndioAudioInputStream* self = static_cast<SndioAudioInputStream*>(arg); ++ ++ self->ThreadLoop(); ++ return NULL; ++} ++ ++SndioAudioInputStream::SndioAudioInputStream(AudioManagerBase* manager, ++ const std::string& device_name, ++ const AudioParameters& params) ++ : manager(manager), ++ params(params), ++ audio_bus(AudioBus::Create(params)), ++ state(kClosed) { ++} ++ ++SndioAudioInputStream::~SndioAudioInputStream() { ++ if (state != kClosed) ++ Close(); ++} ++ ++AudioInputStream::OpenOutcome SndioAudioInputStream::Open() { ++ struct sio_par par; ++ int sig; ++ ++ if (state != kClosed) ++ return OpenOutcome::kFailed; ++ ++ if (params.format() != AudioParameters::AUDIO_PCM_LINEAR && ++ params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) { ++ LOG(WARNING) << "Unsupported audio format."; ++ return OpenOutcome::kFailed; ++ } ++ ++ sio_initpar(&par); ++ par.rate = params.sample_rate(); ++ par.rchan = params.channels(); ++ par.bits = SampleFormatToBitsPerChannel(kSampleFormat); ++ par.bps = par.bits / 8; ++ par.sig = sig = par.bits != 8 ? 1 : 0; ++ par.le = SIO_LE_NATIVE; ++ par.appbufsz = params.frames_per_buffer(); ++ ++ hdl = sio_open(SIO_DEVANY, SIO_REC, 0); ++ ++ if (hdl == NULL) { ++ LOG(ERROR) << "Couldn't open audio device."; ++ return OpenOutcome::kFailed; ++ } ++ ++ if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) { ++ LOG(ERROR) << "Couldn't set audio parameters."; ++ goto bad_close; ++ } ++ ++ if (par.rate != (unsigned int)params.sample_rate() || ++ par.rchan != (unsigned int)params.channels() || ++ par.bits != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) || ++ par.sig != (unsigned int)sig || ++ (par.bps > 1 && par.le != SIO_LE_NATIVE) || ++ (par.bits != par.bps * 8)) { ++ LOG(ERROR) << "Unsupported audio parameters."; ++ goto bad_close; ++ } ++ state = kStopped; ++ buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)]; ++ sio_onmove(hdl, &OnMoveCallback, this); ++ return OpenOutcome::kSuccess; ++bad_close: ++ sio_close(hdl); ++ return OpenOutcome::kFailed; ++} ++ ++void SndioAudioInputStream::Start(AudioInputCallback* cb) { ++ ++ StartAgc(); ++ ++ state = kRunning; ++ hw_delay = 0; ++ callback = cb; ++ sio_start(hdl); ++ if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) { ++ LOG(ERROR) << "Failed to create real-time thread for recording."; ++ sio_stop(hdl); ++ state = kStopped; ++ } ++} ++ ++void SndioAudioInputStream::Stop() { ++ ++ if (state == kStopped) ++ return; ++ ++ state = kStopWait; ++ pthread_join(thread, NULL); ++ sio_stop(hdl); ++ state = kStopped; ++ ++ StopAgc(); ++} ++ ++void SndioAudioInputStream::Close() { ++ ++ if (state == kClosed) ++ goto release; ++ ++ if (state == kRunning) ++ Stop(); ++ ++ state = kClosed; ++ delete [] buffer; ++ sio_close(hdl); ++ ++release: ++ manager->ReleaseInputStream(this); ++} ++ ++double SndioAudioInputStream::GetMaxVolume() { ++ // Not supported ++ return 0.0; ++} ++ ++void SndioAudioInputStream::SetVolume(double volume) { ++ // Not supported. Do nothing. ++} ++ ++double SndioAudioInputStream::GetVolume() { ++ // Not supported. ++ return 0.0; ++} ++ ++bool SndioAudioInputStream::IsMuted() { ++ // Not supported. ++ return false; ++} ++ ++void SndioAudioInputStream::SetOutputDeviceForAec( ++ const std::string& output_device_id) { ++ // Not supported. ++} ++ ++void SndioAudioInputStream::ThreadLoop(void) { ++ size_t todo, n; ++ char *data; ++ unsigned int nframes; ++ double normalized_volume = 0.0; ++ ++ nframes = audio_bus->frames(); ++ ++ while (state == kRunning && !sio_eof(hdl)) { ++ ++ GetAgcVolume(&normalized_volume); ++ ++ // read one block ++ todo = nframes * params.GetBytesPerFrame(kSampleFormat); ++ data = buffer; ++ while (todo > 0) { ++ n = sio_read(hdl, data, todo); ++ if (n == 0) ++ return; // unrecoverable I/O error ++ todo -= n; ++ data += n; ++ } ++ hw_delay -= nframes; ++ ++ // convert frames count to TimeDelta ++ const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay, ++ params.sample_rate()); ++ ++ // push into bus ++ audio_bus->FromInterleaved<SignedInt16SampleTypeTraits>(reinterpret_cast<int16_t*>(buffer), nframes); ++ ++ ++ // invoke callback ++ callback->OnData(audio_bus.get(), base::TimeTicks::Now() - delay, 1.); ++ } ++} ++ ++} // namespace media diff --git a/devel/electron18/files/patch-media_audio_sndio_sndio__input.h b/devel/electron18/files/patch-media_audio_sndio_sndio__input.h new file mode 100644 index 000000000000..6c7390b0bfff --- /dev/null +++ b/devel/electron18/files/patch-media_audio_sndio_sndio__input.h @@ -0,0 +1,94 @@ +--- media/audio/sndio/sndio_input.h.orig 2022-05-13 07:20:05 UTC ++++ media/audio/sndio/sndio_input.h +@@ -0,0 +1,91 @@ ++// Copyright 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. ++ ++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_ ++#define MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_ ++ ++#include <stdint.h> ++#include <string> ++#include <sndio.h> ++ ++#include "base/compiler_specific.h" ++#include "base/memory/weak_ptr.h" ++#include "base/time/time.h" ++#include "media/audio/agc_audio_stream.h" ++#include "media/audio/audio_io.h" ++#include "media/audio/audio_device_description.h" ++#include "media/base/audio_parameters.h" ++ ++namespace media { ++ ++class AudioManagerBase; ++ ++// Implementation of AudioOutputStream using sndio(7) ++class SndioAudioInputStream : public AgcAudioStream<AudioInputStream> { ++ public: ++ // Pass this to the constructor if you want to attempt auto-selection ++ // of the audio recording device. ++ static const char kAutoSelectDevice[]; ++ ++ // Create a PCM Output stream for the SNDIO device identified by ++ // |device_name|. If unsure of what to use for |device_name|, use ++ // |kAutoSelectDevice|. ++ SndioAudioInputStream(AudioManagerBase* audio_manager, ++ const std::string& device_name, ++ const AudioParameters& params); ++ ++ SndioAudioInputStream(const SndioAudioInputStream&) = delete; ++ SndioAudioInputStream& operator=(const SndioAudioInputStream&) = delete; ++ ++ ~SndioAudioInputStream() override; ++ ++ // Implementation of AudioInputStream. ++ OpenOutcome Open() override; ++ void Start(AudioInputCallback* callback) override; ++ void Stop() override; ++ void Close() override; ++ double GetMaxVolume() override; ++ void SetVolume(double volume) override; ++ double GetVolume() override; ++ bool IsMuted() override; ++ void SetOutputDeviceForAec(const std::string& output_device_id) override; ++ ++ private: ++ ++ enum StreamState { ++ kClosed, // Not opened yet ++ kStopped, // Device opened, but not started yet ++ kRunning, // Started, device playing ++ kStopWait // Stopping, waiting for the real-time thread to exit ++ }; ++ ++ // C-style call-backs ++ static void OnMoveCallback(void *arg, int delta); ++ static void* ThreadEntry(void *arg); ++ ++ // Continuously moves data from the device to the consumer ++ void ThreadLoop(); ++ // Our creator, the audio manager needs to be notified when we close. ++ AudioManagerBase* manager; ++ // Parameters of the source ++ AudioParameters params; ++ // We store data here for consumer ++ std::unique_ptr<AudioBus> audio_bus; ++ // Call-back that consumes recorded data ++ AudioInputCallback* callback; // Valid during a recording session. ++ // Handle of the audio device ++ struct sio_hdl* hdl; ++ // Current state of the stream ++ enum StreamState state; ++ // High priority thread running ThreadLoop() ++ pthread_t thread; ++ // Number of frames buffered in the hardware ++ int hw_delay; ++ // Temporary buffer where data is stored sndio-compatible format ++ char* buffer; ++}; ++ ++} // namespace media ++ ++#endif // MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_ diff --git a/devel/electron18/files/patch-media_audio_sndio_sndio__output.cc b/devel/electron18/files/patch-media_audio_sndio_sndio__output.cc new file mode 100644 index 000000000000..1aba560a9f23 --- /dev/null +++ b/devel/electron18/files/patch-media_audio_sndio_sndio__output.cc @@ -0,0 +1,190 @@ +--- media/audio/sndio/sndio_output.cc.orig 2022-05-20 04:31:06 UTC ++++ media/audio/sndio/sndio_output.cc +@@ -0,0 +1,187 @@ ++// Copyright (c) 2012 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. ++ ++#include "base/logging.h" ++#include "base/time/time.h" ++#include "base/time/default_tick_clock.h" ++#include "media/audio/audio_manager_base.h" ++#include "media/base/audio_timestamp_helper.h" ++#include "media/audio/sndio/sndio_output.h" ++ ++namespace media { ++ ++static const SampleFormat kSampleFormat = kSampleFormatS16; ++ ++void SndioAudioOutputStream::OnMoveCallback(void *arg, int delta) { ++ SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg); ++ ++ self->hw_delay -= delta; ++} ++ ++void SndioAudioOutputStream::OnVolCallback(void *arg, unsigned int vol) { ++ SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg); ++ ++ self->vol = vol; ++} ++ ++void *SndioAudioOutputStream::ThreadEntry(void *arg) { ++ SndioAudioOutputStream* self = static_cast<SndioAudioOutputStream*>(arg); ++ ++ self->ThreadLoop(); ++ return NULL; ++} ++ ++SndioAudioOutputStream::SndioAudioOutputStream(const AudioParameters& params, ++ AudioManagerBase* manager) ++ : manager(manager), ++ params(params), ++ audio_bus(AudioBus::Create(params)), ++ state(kClosed), ++ mutex(PTHREAD_MUTEX_INITIALIZER) { ++} ++ ++SndioAudioOutputStream::~SndioAudioOutputStream() { ++ if (state != kClosed) ++ Close(); ++} ++ ++bool SndioAudioOutputStream::Open() { ++ if (params.format() != AudioParameters::AUDIO_PCM_LINEAR && ++ params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) { ++ LOG(WARNING) << "Unsupported audio format."; ++ return false; ++ } ++ state = kStopped; ++ volpending = 0; ++ vol = SIO_MAXVOL; ++ buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)]; ++ return true; ++} ++ ++void SndioAudioOutputStream::Close() { ++ if (state == kClosed) ++ goto release; ++ if (state == kRunning) ++ Stop(); ++ state = kClosed; ++ delete [] buffer; ++release: ++ manager->ReleaseOutputStream(this); // Calls the destructor ++} ++ ++void SndioAudioOutputStream::Start(AudioSourceCallback* callback) { ++ struct sio_par par; ++ int sig; ++ ++ sio_initpar(&par); ++ par.rate = params.sample_rate(); ++ par.pchan = params.channels(); ++ par.bits = SampleFormatToBitsPerChannel(kSampleFormat); ++ par.bps = par.bits / 8; ++ par.sig = sig = par.bits != 8 ? 1 : 0; ++ par.le = SIO_LE_NATIVE; ++ par.appbufsz = params.frames_per_buffer(); ++ ++ hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0); ++ if (hdl == NULL) { ++ LOG(ERROR) << "Couldn't open audio device."; ++ return; ++ } ++ if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) { ++ LOG(ERROR) << "Couldn't set audio parameters."; ++ sio_close(hdl); ++ return; ++ } ++ if (par.rate != (unsigned int)params.sample_rate() || ++ par.pchan != (unsigned int)params.channels() || ++ par.bits != (unsigned int)SampleFormatToBitsPerChannel(kSampleFormat) || ++ par.sig != (unsigned int)sig || ++ (par.bps > 1 && par.le != SIO_LE_NATIVE) || ++ (par.bits != par.bps * 8)) { ++ LOG(ERROR) << "Unsupported audio parameters."; ++ sio_close(hdl); ++ return; ++ } ++ ++ sio_onmove(hdl, &OnMoveCallback, this); ++ sio_onvol(hdl, &OnVolCallback, this); ++ ++ state = kRunning; ++ hw_delay = 0; ++ source = callback; ++ sio_start(hdl); ++ ++ if (pthread_create(&thread, NULL, &ThreadEntry, this) != 0) { ++ LOG(ERROR) << "Failed to create real-time thread."; ++ sio_stop(hdl); ++ sio_close(hdl); ++ state = kStopped; ++ } ++} ++ ++void SndioAudioOutputStream::Stop() { ++ if (state == kStopped) ++ return; ++ state = kStopWait; ++ pthread_join(thread, NULL); ++ sio_stop(hdl); ++ sio_close(hdl); ++ state = kStopped; ++} ++ ++void SndioAudioOutputStream::SetVolume(double v) { ++ pthread_mutex_lock(&mutex); ++ vol = v * SIO_MAXVOL; ++ volpending = 1; ++ pthread_mutex_unlock(&mutex); ++} ++ ++void SndioAudioOutputStream::GetVolume(double* v) { ++ pthread_mutex_lock(&mutex); ++ *v = vol * (1. / SIO_MAXVOL); ++ pthread_mutex_unlock(&mutex); ++} ++ ++// This stream is always used with sub second buffer sizes, where it's ++// sufficient to simply always flush upon Start(). ++void SndioAudioOutputStream::Flush() {} ++ ++void SndioAudioOutputStream::ThreadLoop(void) { ++ int avail, count, result; ++ ++ while (state == kRunning) { ++ // Update volume if needed ++ pthread_mutex_lock(&mutex); ++ if (volpending) { ++ volpending = 0; ++ sio_setvol(hdl, vol); ++ } ++ pthread_mutex_unlock(&mutex); ++ ++ // Get data to play ++ const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay, ++ params.sample_rate()); ++ count = source->OnMoreData(delay, base::TimeTicks::Now(), 0, audio_bus.get()); ++ audio_bus->ToInterleaved<SignedInt16SampleTypeTraits>(count, reinterpret_cast<int16_t*>(buffer)); ++ if (count == 0) { ++ // We have to submit something to the device ++ count = audio_bus->frames(); ++ memset(buffer, 0, count * params.GetBytesPerFrame(kSampleFormat)); ++ LOG(WARNING) << "No data to play, running empty cycle."; ++ } ++ ++ // Submit data to the device ++ avail = count * params.GetBytesPerFrame(kSampleFormat); ++ result = sio_write(hdl, buffer, avail); ++ if (result == 0) { ++ LOG(WARNING) << "Audio device disconnected."; ++ break; ++ } ++ ++ // Update hardware pointer ++ hw_delay += count; ++ } ++} ++ ++} // namespace media diff --git a/devel/electron18/files/patch-media_audio_sndio_sndio__output.h b/devel/electron18/files/patch-media_audio_sndio_sndio__output.h new file mode 100644 index 000000000000..221900b21bf0 --- /dev/null +++ b/devel/electron18/files/patch-media_audio_sndio_sndio__output.h @@ -0,0 +1,91 @@ +--- media/audio/sndio/sndio_output.h.orig 2022-05-13 07:20:05 UTC ++++ media/audio/sndio/sndio_output.h +@@ -0,0 +1,88 @@ ++// Copyright (c) 2012 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. ++ ++#ifndef MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_ ++#define MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_ ++ ++#include <pthread.h> ++#include <sndio.h> ++ ++#include "base/time/tick_clock.h" ++#include "base/time/time.h" ++#include "media/audio/audio_io.h" ++ ++namespace media { ++ ++class AudioManagerBase; ++ ++// Implementation of AudioOutputStream using sndio(7) ++class SndioAudioOutputStream : public AudioOutputStream { ++ public: ++ // The manager is creating this object ++ SndioAudioOutputStream(const AudioParameters& params, ++ AudioManagerBase* manager); ++ ++ SndioAudioOutputStream(const SndioAudioOutputStream&) = delete; ++ SndioAudioOutputStream& operator=(const SndioAudioOutputStream&) = delete; ++ ++ virtual ~SndioAudioOutputStream(); ++ ++ // Implementation of AudioOutputStream. ++ bool Open() override; ++ void Close() override; ++ void Start(AudioSourceCallback* callback) override; ++ void Stop() override; ++ void SetVolume(double volume) override; ++ void GetVolume(double* volume) override; ++ void Flush() override; ++ ++ friend void sndio_onmove(void *arg, int delta); ++ friend void sndio_onvol(void *arg, unsigned int vol); ++ friend void *sndio_threadstart(void *arg); ++ ++ private: ++ enum StreamState { ++ kClosed, // Not opened yet ++ kStopped, // Device opened, but not started yet ++ kRunning, // Started, device playing ++ kStopWait // Stopping, waiting for the real-time thread to exit ++ }; ++ ++ // C-style call-backs ++ static void OnMoveCallback(void *arg, int delta); ++ static void OnVolCallback(void *arg, unsigned int vol); ++ static void* ThreadEntry(void *arg); ++ ++ // Continuously moves data from the producer to the device ++ void ThreadLoop(void); ++ ++ // Our creator, the audio manager needs to be notified when we close. ++ AudioManagerBase* manager; ++ // Parameters of the source ++ AudioParameters params; ++ // Source stores data here ++ std::unique_ptr<AudioBus> audio_bus; ++ // Call-back that produces data to play ++ AudioSourceCallback* source; ++ // Handle of the audio device ++ struct sio_hdl* hdl; ++ // Current state of the stream ++ enum StreamState state; ++ // High priority thread running ThreadLoop() ++ pthread_t thread; ++ // Protects vol, volpending and hw_delay ++ pthread_mutex_t mutex; ++ // Current volume in the 0..SIO_MAXVOL range ++ int vol; ++ // Set to 1 if volumes must be refreshed in the realtime thread ++ int volpending; ++ // Number of frames buffered in the hardware ++ int hw_delay; ++ // Temporary buffer where data is stored sndio-compatible format ++ char* buffer; ++}; ++ ++} // namespace media ++ ++#endif // MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_ diff --git a/devel/electron18/files/patch-media_base_audio__latency.cc b/devel/electron18/files/patch-media_base_audio__latency.cc new file mode 100644 index 000000000000..13e55fc8dd71 --- /dev/null +++ b/devel/electron18/files/patch-media_base_audio__latency.cc @@ -0,0 +1,11 @@ +--- media/base/audio_latency.cc.orig 2022-05-19 05:17:44 UTC ++++ media/base/audio_latency.cc +@@ -135,7 +135,7 @@ int AudioLatency::GetRtcBufferSize(int sample_rate, in + } + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // On Linux, MacOS and Fuchsia, the low level IO implementations on the + // browser side supports all buffer size the clients want. We use the native + // peer connection buffer size (10ms) to achieve best possible performance. diff --git a/devel/electron18/files/patch-media_base_media__switches.cc b/devel/electron18/files/patch-media_base_media__switches.cc new file mode 100644 index 000000000000..5f4e8e00cf13 --- /dev/null +++ b/devel/electron18/files/patch-media_base_media__switches.cc @@ -0,0 +1,47 @@ +--- media/base/media_switches.cc.orig 2022-05-19 05:17:44 UTC ++++ media/base/media_switches.cc +@@ -9,7 +9,7 @@ + #include "build/chromeos_buildflags.h" + #include "components/system_media_controls/linux/buildflags/buildflags.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/cpu.h" + #endif + +@@ -402,7 +402,7 @@ const base::Feature kGav1VideoDecoder{"Gav1VideoDecode + const base::Feature kGlobalMediaControls { + "GlobalMediaControls", + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS_LACROS) ++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT +@@ -434,7 +434,7 @@ constexpr base::FeatureParam<kCrosGlobalMediaControlsP + const base::Feature kGlobalMediaControlsPictureInPicture { + "GlobalMediaControlsPictureInPicture", + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_CHROMEOS_LACROS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT +@@ -475,7 +475,7 @@ const base::Feature kUseR16Texture{"use-r16-texture", + const base::Feature kUnifiedAutoplay{"UnifiedAutoplay", + base::FEATURE_ENABLED_BY_DEFAULT}; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Enable vaapi video decoding on linux. This is already enabled by default on + // chromeos, but needs an experiment on linux. + const base::Feature kVaapiVideoDecodeLinux{"VaapiVideoDecoder", +@@ -946,7 +946,7 @@ bool IsLiveCaptionFeatureEnabled() { + return false; + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Check if the CPU has the required instruction set to run the Speech + // On-Device API (SODA) library. + static bool has_sse41 = base::CPU().has_sse41(); diff --git a/devel/electron18/files/patch-media_base_media__switches.h b/devel/electron18/files/patch-media_base_media__switches.h new file mode 100644 index 000000000000..daacabd3c26e --- /dev/null +++ b/devel/electron18/files/patch-media_base_media__switches.h @@ -0,0 +1,11 @@ +--- media/base/media_switches.h.orig 2022-05-19 05:17:44 UTC ++++ media/base/media_switches.h +@@ -186,7 +186,7 @@ MEDIA_EXPORT extern const base::Feature kUseDecoderStr + MEDIA_EXPORT extern const base::Feature kUseFakeDeviceForMediaStream; + MEDIA_EXPORT extern const base::Feature kUseMediaHistoryStore; + MEDIA_EXPORT extern const base::Feature kUseR16Texture; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + MEDIA_EXPORT extern const base::Feature kVaapiVideoDecodeLinux; + MEDIA_EXPORT extern const base::Feature kVaapiVideoEncodeLinux; + #endif // BUILDFLAG(IS_LINUX) diff --git a/devel/electron18/files/patch-media_base_scopedfd__helper.h b/devel/electron18/files/patch-media_base_scopedfd__helper.h new file mode 100644 index 000000000000..67a790044d48 --- /dev/null +++ b/devel/electron18/files/patch-media_base_scopedfd__helper.h @@ -0,0 +1,11 @@ +--- media/base/scopedfd_helper.h.orig 2022-05-19 03:45:32 UTC ++++ media/base/scopedfd_helper.h +@@ -15,7 +15,7 @@ namespace media { + // but since the only current user is V4L2 we are limiting the scope to OS_LINUX + // so the binary size does not inflate on non-using systems. Feel free to adapt + // this and BUILD.gn as our needs evolve. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + // Return a new vector containing duplicates of |fds|, or PCHECKs in case of an + // error. diff --git a/devel/electron18/files/patch-media_base_user__input__monitor__unittest.cc b/devel/electron18/files/patch-media_base_user__input__monitor__unittest.cc new file mode 100644 index 000000000000..da0d218911a1 --- /dev/null +++ b/devel/electron18/files/patch-media_base_user__input__monitor__unittest.cc @@ -0,0 +1,29 @@ +--- media/base/user_input_monitor_unittest.cc.orig 2022-05-19 03:45:32 UTC ++++ media/base/user_input_monitor_unittest.cc +@@ -13,7 +13,7 @@ + #include "build/build_config.h" + #include "testing/gtest/include/gtest/gtest.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/files/file_descriptor_watcher_posix.h" + #endif + +@@ -49,7 +49,7 @@ class UserInputMonitorTest : public testing::Test { + } // namespace + + TEST_F(UserInputMonitorTest, CreatePlatformSpecific) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::test::TaskEnvironment task_environment( + base::test::TaskEnvironment::MainThreadType::IO); + #else +@@ -71,7 +71,7 @@ TEST_F(UserInputMonitorTest, CreatePlatformSpecific) { + } + + TEST_F(UserInputMonitorTest, CreatePlatformSpecificWithMapping) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::test::TaskEnvironment task_environment( + base::test::TaskEnvironment::MainThreadType::IO); + #else diff --git a/devel/electron18/files/patch-media_base_vector__math.cc b/devel/electron18/files/patch-media_base_vector__math.cc new file mode 100644 index 000000000000..3759e77d2230 --- /dev/null +++ b/devel/electron18/files/patch-media_base_vector__math.cc @@ -0,0 +1,11 @@ +--- media/base/vector_math.cc.orig 2022-05-19 03:45:32 UTC ++++ media/base/vector_math.cc +@@ -18,7 +18,7 @@ + // better, which is anywhere clang is used. + // TODO(pcc): Linux currently uses ThinLTO which has broken auto-vectorization + // in clang, so use our intrinsic version for now. http://crbug.com/738085 +-#if !defined(__clang__) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if !defined(__clang__) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #define FMAC_FUNC FMAC_SSE + #define FMUL_FUNC FMUL_SSE + #else diff --git a/devel/electron18/files/patch-media_base_video__frame.cc b/devel/electron18/files/patch-media_base_video__frame.cc new file mode 100644 index 000000000000..139fe9db1410 --- /dev/null +++ b/devel/electron18/files/patch-media_base_video__frame.cc @@ -0,0 +1,74 @@ +--- media/base/video_frame.cc.orig 2022-05-19 05:17:44 UTC ++++ media/base/video_frame.cc +@@ -73,7 +73,7 @@ std::string VideoFrame::StorageTypeToString( + return "OWNED_MEMORY"; + case VideoFrame::STORAGE_SHMEM: + return "SHMEM"; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + case VideoFrame::STORAGE_DMABUFS: + return "DMABUFS"; + #endif +@@ -90,7 +90,7 @@ std::string VideoFrame::StorageTypeToString( + // static + bool VideoFrame::IsStorageTypeMappable(VideoFrame::StorageType storage_type) { + return +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // This is not strictly needed but makes explicit that, at VideoFrame + // level, DmaBufs are not mappable from userspace. + storage_type != VideoFrame::STORAGE_DMABUFS && +@@ -278,7 +278,7 @@ static absl::optional<VideoFrameLayout> GetDefaultLayo + return VideoFrameLayout::CreateWithPlanes(format, coded_size, planes); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // This class allows us to embed a vector<ScopedFD> into a scoped_refptr, and + // thus to have several VideoFrames share the same set of DMABUF FDs. + class VideoFrame::DmabufHolder +@@ -617,7 +617,7 @@ scoped_refptr<VideoFrame> VideoFrame::WrapExternalGpuM + for (size_t i = 0; i < num_planes; ++i) + planes[i].stride = gpu_memory_buffer->stride(i); + uint64_t modifier = gfx::NativePixmapHandle::kNoModifier; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (gpu_memory_buffer->GetType() == gfx::NATIVE_PIXMAP) { + const auto gmb_handle = gpu_memory_buffer->CloneHandle(); + if (gmb_handle.is_null() || +@@ -663,7 +663,7 @@ scoped_refptr<VideoFrame> VideoFrame::WrapExternalGpuM + return frame; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // static + scoped_refptr<VideoFrame> VideoFrame::WrapExternalDmabufs( + const VideoFrameLayout& layout, +@@ -887,7 +887,7 @@ scoped_refptr<VideoFrame> VideoFrame::WrapVideoFrame( + } + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + DCHECK(frame->dmabuf_fds_); + // If there are any |dmabuf_fds_| plugged in, we should refer them too. + wrapping_frame->dmabuf_fds_ = frame->dmabuf_fds_; +@@ -1253,7 +1253,7 @@ const gpu::MailboxHolder& VideoFrame::mailbox_holder( + : mailbox_holders_[texture_index]; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const std::vector<base::ScopedFD>& VideoFrame::DmabufFds() const { + DCHECK_EQ(storage_type_, STORAGE_DMABUFS); + +@@ -1365,7 +1365,7 @@ VideoFrame::VideoFrame(const VideoFrameLayout& layout, + storage_type_(storage_type), + visible_rect_(Intersection(visible_rect, gfx::Rect(layout.coded_size()))), + natural_size_(natural_size), +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + dmabuf_fds_(base::MakeRefCounted<DmabufHolder>()), + #endif + timestamp_(timestamp), diff --git a/devel/electron18/files/patch-media_base_video__frame.h b/devel/electron18/files/patch-media_base_video__frame.h new file mode 100644 index 000000000000..2faa1afd39c8 --- /dev/null +++ b/devel/electron18/files/patch-media_base_video__frame.h @@ -0,0 +1,47 @@ +--- media/base/video_frame.h.orig 2022-05-19 05:17:44 UTC ++++ media/base/video_frame.h +@@ -40,7 +40,7 @@ + #include "base/mac/scoped_cftyperef.h" + #endif // BUILDFLAG(IS_MAC) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/files/scoped_file.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +@@ -82,7 +82,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte + STORAGE_UNOWNED_MEMORY = 2, // External, non owned data pointers. + STORAGE_OWNED_MEMORY = 3, // VideoFrame has allocated its own data buffer. + STORAGE_SHMEM = 4, // Backed by unsafe (writable) shared memory. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // TODO(mcasas): Consider turning this type into STORAGE_NATIVE + // based on the idea of using this same enum value for both DMA + // buffers on Linux and CVPixelBuffers on Mac (which currently use +@@ -280,7 +280,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte + ReleaseMailboxAndGpuMemoryBufferCB mailbox_holder_and_gmb_release_cb, + base::TimeDelta timestamp); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Wraps provided dmabufs + // (https://www.kernel.org/doc/html/latest/driver-api/dma-buf.html) with a + // VideoFrame. The frame will take ownership of |dmabuf_fds|, and will +@@ -539,7 +539,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte + // mailbox, the caller must wait for the included sync point. + const gpu::MailboxHolder& mailbox_holder(size_t texture_index) const; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Returns a vector containing the backing DmaBufs for this frame. The number + // of returned DmaBufs will be equal or less than the number of planes of + // the frame. If there are less, this means that the last FD contains the +@@ -746,7 +746,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCounte + // GPU memory buffer, if this frame is STORAGE_GPU_MEMORY_BUFFER. + std::unique_ptr<gfx::GpuMemoryBuffer> gpu_memory_buffer_; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + class DmabufHolder; + + // Dmabufs for the frame, used when storage is STORAGE_DMABUFS. Size is either diff --git a/devel/electron18/files/patch-media_capture_video_create__video__capture__device__factory.cc b/devel/electron18/files/patch-media_capture_video_create__video__capture__device__factory.cc new file mode 100644 index 000000000000..226292c6ecfe --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_create__video__capture__device__factory.cc @@ -0,0 +1,20 @@ +--- media/capture/video/create_video_capture_device_factory.cc.orig 2022-05-19 03:45:32 UTC ++++ media/capture/video/create_video_capture_device_factory.cc +@@ -12,7 +12,7 @@ + #include "media/capture/video/fake_video_capture_device_factory.h" + #include "media/capture/video/file_video_capture_device_factory.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "media/capture/video/linux/video_capture_device_factory_linux.h" + #elif BUILDFLAG(IS_CHROMEOS_ASH) + #include "media/capture/video/chromeos/public/cros_features.h" +@@ -55,7 +55,7 @@ CreateFakeVideoCaptureDeviceFactory() { + std::unique_ptr<VideoCaptureDeviceFactory> + CreatePlatformSpecificVideoCaptureDeviceFactory( + scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + return std::make_unique<VideoCaptureDeviceFactoryLinux>(ui_task_runner); + #elif BUILDFLAG(IS_CHROMEOS_ASH) + if (base::SysInfo::IsRunningOnChromeOS()) diff --git a/devel/electron18/files/patch-media_capture_video_fake__video__capture__device__factory.cc b/devel/electron18/files/patch-media_capture_video_fake__video__capture__device__factory.cc new file mode 100644 index 000000000000..4e825efe5443 --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_fake__video__capture__device__factory.cc @@ -0,0 +1,11 @@ +--- media/capture/video/fake_video_capture_device_factory.cc.orig 2022-05-19 03:45:32 UTC ++++ media/capture/video/fake_video_capture_device_factory.cc +@@ -213,7 +213,7 @@ void FakeVideoCaptureDeviceFactory::GetDevicesInfo( + int entry_index = 0; + for (const auto& entry : devices_config_) { + VideoCaptureApi api = +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE; + #elif BUILDFLAG(IS_MAC) + VideoCaptureApi::MACOSX_AVFOUNDATION; diff --git a/devel/electron18/files/patch-media_capture_video_file__video__capture__device__factory.cc b/devel/electron18/files/patch-media_capture_video_file__video__capture__device__factory.cc new file mode 100644 index 000000000000..8e370d779100 --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_file__video__capture__device__factory.cc @@ -0,0 +1,11 @@ +--- media/capture/video/file_video_capture_device_factory.cc.orig 2022-05-19 03:45:32 UTC ++++ media/capture/video/file_video_capture_device_factory.cc +@@ -52,7 +52,7 @@ void FileVideoCaptureDeviceFactory::GetDevicesInfo( + VideoCaptureApi::WIN_DIRECT_SHOW; + #elif BUILDFLAG(IS_MAC) + VideoCaptureApi::MACOSX_AVFOUNDATION; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + VideoCaptureApi::LINUX_V4L2_SINGLE_PLANE; + #else + VideoCaptureApi::UNKNOWN; diff --git a/devel/electron18/files/patch-media_capture_video_linux_fake__v4l2__impl.cc b/devel/electron18/files/patch-media_capture_video_linux_fake__v4l2__impl.cc new file mode 100644 index 000000000000..98e383f37c46 --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_linux_fake__v4l2__impl.cc @@ -0,0 +1,11 @@ +--- media/capture/video/linux/fake_v4l2_impl.cc.orig 2022-05-19 05:17:44 UTC ++++ media/capture/video/linux/fake_v4l2_impl.cc +@@ -424,7 +424,7 @@ int FakeV4L2Impl::close(int fd) { + return kSuccessReturnValue; + } + +-int FakeV4L2Impl::ioctl(int fd, int request, void* argp) { ++int FakeV4L2Impl::ioctl(int fd, unsigned long request, void* argp) { + base::AutoLock lock(lock_); + auto device_iter = opened_devices_.find(fd); + if (device_iter == opened_devices_.end()) diff --git a/devel/electron18/files/patch-media_capture_video_linux_fake__v4l2__impl.h b/devel/electron18/files/patch-media_capture_video_linux_fake__v4l2__impl.h new file mode 100644 index 000000000000..eecffa9784d4 --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_linux_fake__v4l2__impl.h @@ -0,0 +1,25 @@ +--- media/capture/video/linux/fake_v4l2_impl.h.orig 2022-05-19 03:45:32 UTC ++++ media/capture/video/linux/fake_v4l2_impl.h +@@ -8,7 +8,13 @@ + #include <map> + #include <string> + ++#include "build/build_config.h" ++#if BUILDFLAG(IS_OPENBSD) ++#include <sys/videoio.h> ++typedef __uint32_t __u32; ++#else + #include <linux/videodev2.h> ++#endif + + #include "base/synchronization/lock.h" + #include "media/capture/capture_export.h" +@@ -36,7 +42,7 @@ class CAPTURE_EXPORT FakeV4L2Impl : public V4L2Capture + // Implementation of V4L2CaptureDevice interface: + int open(const char* device_name, int flags) override; + int close(int fd) override; +- int ioctl(int fd, int request, void* argp) override; ++ int ioctl(int fd, unsigned long request, void* argp) override; + void* mmap(void* start, + size_t length, + int prot, diff --git a/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__delegate.cc b/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__delegate.cc new file mode 100644 index 000000000000..fd74b2a59113 --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__delegate.cc @@ -0,0 +1,44 @@ +--- media/capture/video/linux/v4l2_capture_delegate.cc.orig 2022-05-11 07:16:53 UTC ++++ media/capture/video/linux/v4l2_capture_delegate.cc +@@ -4,8 +4,10 @@ + + #include "media/capture/video/linux/v4l2_capture_delegate.h" + ++#if !defined(OS_BSD) + #include <linux/version.h> + #include <linux/videodev2.h> ++#endif + #include <poll.h> + #include <sys/fcntl.h> + #include <sys/ioctl.h> +@@ -25,10 +27,10 @@ + + using media::mojom::MeteringMode; + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) ++// #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) + // 16 bit depth, Realsense F200. + #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') +-#endif ++// #endif + + // TODO(aleksandar.stojiljkovic): Wrap this with kernel version check once the + // format is introduced to kernel. +@@ -660,7 +662,7 @@ base::WeakPtr<V4L2CaptureDelegate> V4L2CaptureDelegate + + V4L2CaptureDelegate::~V4L2CaptureDelegate() = default; + +-bool V4L2CaptureDelegate::RunIoctl(int request, void* argp) { ++bool V4L2CaptureDelegate::RunIoctl(unsigned int request, void* argp) { + int num_retries = 0; + for (; DoIoctl(request, argp) < 0 && num_retries < kMaxIOCtrlRetries; + ++num_retries) { +@@ -670,7 +672,7 @@ bool V4L2CaptureDelegate::RunIoctl(int request, void* + return num_retries != kMaxIOCtrlRetries; + } + +-int V4L2CaptureDelegate::DoIoctl(int request, void* argp) { ++int V4L2CaptureDelegate::DoIoctl(unsigned int request, void* argp) { + return HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), request, argp)); + } + diff --git a/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__delegate.h b/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__delegate.h new file mode 100644 index 000000000000..8d362c6ac3c4 --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__delegate.h @@ -0,0 +1,15 @@ +--- media/capture/video/linux/v4l2_capture_delegate.h.orig 2022-05-11 07:16:53 UTC ++++ media/capture/video/linux/v4l2_capture_delegate.h +@@ -84,10 +84,10 @@ class CAPTURE_EXPORT V4L2CaptureDelegate final { + // device file descriptor or (re)starting streaming, can fail but works after + // retrying (https://crbug.com/670262). Returns false if the |request| ioctl + // fails too many times. +- bool RunIoctl(int request, void* argp); ++ bool RunIoctl(unsigned int request, void* argp); + + // Simple wrapper to do HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), ...)). +- int DoIoctl(int request, void* argp); ++ int DoIoctl(unsigned int request, void* argp); + + // Creates a mojom::RangePtr with the (min, max, current, step) values of the + // control associated with |control_id|. Returns an empty Range otherwise. diff --git a/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__device.h b/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__device.h new file mode 100644 index 000000000000..c632a7a528f8 --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__device.h @@ -0,0 +1,11 @@ +--- media/capture/video/linux/v4l2_capture_device.h.orig 2022-05-11 07:00:44 UTC ++++ media/capture/video/linux/v4l2_capture_device.h +@@ -21,7 +21,7 @@ class CAPTURE_EXPORT V4L2CaptureDevice + public: + virtual int open(const char* device_name, int flags) = 0; + virtual int close(int fd) = 0; +- virtual int ioctl(int fd, int request, void* argp) = 0; ++ virtual int ioctl(int fd, unsigned long request, void* argp) = 0; + virtual void* mmap(void* start, + size_t length, + int prot, diff --git a/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__device__impl.cc b/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__device__impl.cc new file mode 100644 index 000000000000..29853fae7652 --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__device__impl.cc @@ -0,0 +1,11 @@ +--- media/capture/video/linux/v4l2_capture_device_impl.cc.orig 2022-05-11 07:00:44 UTC ++++ media/capture/video/linux/v4l2_capture_device_impl.cc +@@ -22,7 +22,7 @@ int V4L2CaptureDeviceImpl::close(int fd) { + return ::close(fd); + } + +-int V4L2CaptureDeviceImpl::ioctl(int fd, int request, void* argp) { ++int V4L2CaptureDeviceImpl::ioctl(int fd, unsigned long request, void* argp) { + return ::ioctl(fd, request, argp); + } + diff --git a/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__device__impl.h b/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__device__impl.h new file mode 100644 index 000000000000..06306fcfab05 --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_linux_v4l2__capture__device__impl.h @@ -0,0 +1,11 @@ +--- media/capture/video/linux/v4l2_capture_device_impl.h.orig 2022-05-11 07:00:44 UTC ++++ media/capture/video/linux/v4l2_capture_device_impl.h +@@ -19,7 +19,7 @@ class CAPTURE_EXPORT V4L2CaptureDeviceImpl : public V4 + public: + int open(const char* device_name, int flags) override; + int close(int fd) override; +- int ioctl(int fd, int request, void* argp) override; ++ int ioctl(int fd, unsigned long request, void* argp) override; + void* mmap(void* start, + size_t length, + int prot, diff --git a/devel/electron18/files/patch-media_capture_video_linux_video__capture__device__factory__linux.cc b/devel/electron18/files/patch-media_capture_video_linux_video__capture__device__factory__linux.cc new file mode 100644 index 000000000000..2757148c59c4 --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_linux_video__capture__device__factory__linux.cc @@ -0,0 +1,45 @@ +--- media/capture/video/linux/video_capture_device_factory_linux.cc.orig 2022-05-11 07:16:53 UTC ++++ media/capture/video/linux/video_capture_device_factory_linux.cc +@@ -72,6 +72,9 @@ class DevVideoFilePathsDeviceProvider + : public VideoCaptureDeviceFactoryLinux::DeviceProvider { + public: + void GetDeviceIds(std::vector<std::string>* target_container) override { ++#if defined(OS_OPENBSD) ++ target_container->emplace_back("/dev/video"); ++#else + const base::FilePath path("/dev/"); + base::FileEnumerator enumerator(path, false, base::FileEnumerator::FILES, + "video*"); +@@ -79,9 +82,13 @@ class DevVideoFilePathsDeviceProvider + const base::FileEnumerator::FileInfo info = enumerator.GetInfo(); + target_container->emplace_back(path.value() + info.GetName().value()); + } ++#endif + } + + std::string GetDeviceModelId(const std::string& device_id) override { ++#if defined(OS_OPENBSD) ++ return std::string(); ++#endif + const std::string file_name = ExtractFileNameFromDeviceId(device_id); + std::string usb_id; + const std::string vid_path = +@@ -99,6 +106,9 @@ class DevVideoFilePathsDeviceProvider + } + + std::string GetDeviceDisplayName(const std::string& device_id) override { ++#if defined(OS_OPENBSD) ++ return std::string(); ++#endif + const std::string file_name = ExtractFileNameFromDeviceId(device_id); + const std::string interface_path = + base::StringPrintf(kInterfacePathTemplate, file_name.c_str()); +@@ -213,7 +223,7 @@ void VideoCaptureDeviceFactoryLinux::GetDevicesInfo( + std::move(callback).Run(std::move(devices_info)); + } + +-int VideoCaptureDeviceFactoryLinux::DoIoctl(int fd, int request, void* argp) { ++int VideoCaptureDeviceFactoryLinux::DoIoctl(int fd, unsigned int request, void* argp) { + return HANDLE_EINTR(v4l2_->ioctl(fd, request, argp)); + } + diff --git a/devel/electron18/files/patch-media_capture_video_linux_video__capture__device__factory__linux.h b/devel/electron18/files/patch-media_capture_video_linux_video__capture__device__factory__linux.h new file mode 100644 index 000000000000..f0b5e48b41ec --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_linux_video__capture__device__factory__linux.h @@ -0,0 +1,11 @@ +--- media/capture/video/linux/video_capture_device_factory_linux.h.orig 2022-05-11 07:00:44 UTC ++++ media/capture/video/linux/video_capture_device_factory_linux.h +@@ -52,7 +52,7 @@ class CAPTURE_EXPORT VideoCaptureDeviceFactoryLinux + + private: + // Simple wrapper to do HANDLE_EINTR(v4l2_->ioctl(fd, ...)). +- int DoIoctl(int fd, int request, void* argp); ++ int DoIoctl(int fd, unsigned int request, void* argp); + + VideoCaptureControlSupport GetControlSupport(int fd); + bool GetControlSupport(int fd, int control_id); diff --git a/devel/electron18/files/patch-media_capture_video_video__capture__buffer__pool__impl.cc b/devel/electron18/files/patch-media_capture_video_video__capture__buffer__pool__impl.cc new file mode 100644 index 000000000000..07507fda1d71 --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_video__capture__buffer__pool__impl.cc @@ -0,0 +1,11 @@ +--- media/capture/video/video_capture_buffer_pool_impl.cc.orig 2022-05-19 03:45:32 UTC ++++ media/capture/video/video_capture_buffer_pool_impl.cc +@@ -74,7 +74,7 @@ VideoCaptureBufferPoolImpl::CreateSharedMemoryViaRawFi + int buffer_id) { + // This requires platforms where base::SharedMemoryHandle is backed by a + // file descriptor. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::AutoLock lock(lock_); + + VideoCaptureBufferTracker* tracker = GetTracker(buffer_id); diff --git a/devel/electron18/files/patch-media_capture_video_video__capture__device__client.cc b/devel/electron18/files/patch-media_capture_video_video__capture__device__client.cc new file mode 100644 index 000000000000..13ee03c91ad8 --- /dev/null +++ b/devel/electron18/files/patch-media_capture_video_video__capture__device__client.cc @@ -0,0 +1,11 @@ +--- media/capture/video/video_capture_device_client.cc.orig 2022-05-19 05:17:44 UTC ++++ media/capture/video/video_capture_device_client.cc +@@ -320,7 +320,7 @@ void VideoCaptureDeviceClient::OnIncomingCapturedData( + // see http://linuxtv.org/downloads/v4l-dvb-apis/packed-rgb.html. + // Windows RGB24 defines blue at lowest byte, + // see https://msdn.microsoft.com/en-us/library/windows/desktop/dd407253 +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + fourcc_format = libyuv::FOURCC_RAW; + #elif BUILDFLAG(IS_WIN) + fourcc_format = libyuv::FOURCC_24BG; diff --git a/devel/electron18/files/patch-media_cdm_cdm__paths__unittest.cc b/devel/electron18/files/patch-media_cdm_cdm__paths__unittest.cc new file mode 100644 index 000000000000..3ea4f5817377 --- /dev/null +++ b/devel/electron18/files/patch-media_cdm_cdm__paths__unittest.cc @@ -0,0 +1,11 @@ +--- media/cdm/cdm_paths_unittest.cc.orig 2022-05-19 03:45:32 UTC ++++ media/cdm/cdm_paths_unittest.cc +@@ -27,7 +27,7 @@ const char kComponentPlatform[] = + "win"; + #elif BUILDFLAG(IS_CHROMEOS) + "cros"; +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + "linux"; + #else + "unsupported_platform"; diff --git a/devel/electron18/files/patch-media_gpu_buffer__validation.cc b/devel/electron18/files/patch-media_gpu_buffer__validation.cc new file mode 100644 index 000000000000..14ee9ae1dd9f --- /dev/null +++ b/devel/electron18/files/patch-media_gpu_buffer__validation.cc @@ -0,0 +1,29 @@ +--- media/gpu/buffer_validation.cc.orig 2022-05-19 05:17:44 UTC ++++ media/gpu/buffer_validation.cc +@@ -15,7 +15,7 @@ + #include "ui/gfx/geometry/size.h" + #include "ui/gfx/gpu_memory_buffer.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <sys/types.h> + #include <unistd.h> + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -23,7 +23,7 @@ + namespace media { + + bool GetFileSize(const int fd, size_t* size) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (fd < 0) { + VLOGF(1) << "Invalid file descriptor"; + return false; +@@ -66,7 +66,7 @@ bool VerifyGpuMemoryBufferHandle( + << coded_size.ToString(); + return false; + } +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const size_t num_planes = media::VideoFrame::NumPlanes(pixel_format); + if (num_planes != gmb_handle.native_pixmap_handle.planes.size() || + num_planes == 0) { diff --git a/devel/electron18/files/patch-media_gpu_chromeos_video__decoder__pipeline.cc b/devel/electron18/files/patch-media_gpu_chromeos_video__decoder__pipeline.cc new file mode 100644 index 000000000000..ca3ead56f1da --- /dev/null +++ b/devel/electron18/files/patch-media_gpu_chromeos_video__decoder__pipeline.cc @@ -0,0 +1,20 @@ +--- media/gpu/chromeos/video_decoder_pipeline.cc.orig 2022-05-19 05:17:44 UTC ++++ media/gpu/chromeos/video_decoder_pipeline.cc +@@ -646,7 +646,7 @@ VideoDecoderPipeline::PickDecoderOutputFormat( + } + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Linux should always use a custom allocator (to allocate buffers using + // libva) and a PlatformVideoFramePool. + CHECK(allocator.has_value()); +@@ -668,7 +668,7 @@ VideoDecoderPipeline::PickDecoderOutputFormat( + #error "Unsupported platform" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // viable_candidate should always be set unless using L1 protected content, + // which isn't an option on linux or lacros. + CHECK(viable_candidate); diff --git a/devel/electron18/files/patch-media_gpu_gpu__video__encode__accelerator__factory.cc b/devel/electron18/files/patch-media_gpu_gpu__video__encode__accelerator__factory.cc new file mode 100644 index 000000000000..aa7b806141f3 --- /dev/null +++ b/devel/electron18/files/patch-media_gpu_gpu__video__encode__accelerator__factory.cc @@ -0,0 +1,11 @@ +--- media/gpu/gpu_video_encode_accelerator_factory.cc.orig 2022-05-19 05:17:44 UTC ++++ media/gpu/gpu_video_encode_accelerator_factory.cc +@@ -92,7 +92,7 @@ std::vector<VEAFactoryFunction> GetVEAFactoryFunctions + return vea_factory_functions; + + #if BUILDFLAG(USE_VAAPI) +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (base::FeatureList::IsEnabled(kVaapiVideoEncodeLinux)) + vea_factory_functions.push_back(base::BindRepeating(&CreateVaapiVEA)); + #else diff --git a/devel/electron18/files/patch-media_gpu_vaapi_vaapi__video__decoder.cc b/devel/electron18/files/patch-media_gpu_vaapi_vaapi__video__decoder.cc new file mode 100644 index 000000000000..f94774f038f8 --- /dev/null +++ b/devel/electron18/files/patch-media_gpu_vaapi_vaapi__video__decoder.cc @@ -0,0 +1,11 @@ +--- media/gpu/vaapi/vaapi_video_decoder.cc.orig 2022-05-19 05:17:44 UTC ++++ media/gpu/vaapi/vaapi_video_decoder.cc +@@ -772,7 +772,7 @@ void VaapiVideoDecoder::ApplyResolutionChangeWithScree + const gfx::Size decoder_natural_size = + aspect_ratio_.GetNaturalSize(decoder_visible_rect); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + absl::optional<DmabufVideoFramePool::CreateFrameCB> allocator = + base::BindRepeating(&AllocateCustomFrameProxy, weak_this_); + std::vector<ImageProcessor::PixelLayoutCandidate> candidates = { diff --git a/devel/electron18/files/patch-media_gpu_vaapi_vaapi__wrapper.cc b/devel/electron18/files/patch-media_gpu_vaapi_vaapi__wrapper.cc new file mode 100644 index 000000000000..46cc71856040 --- /dev/null +++ b/devel/electron18/files/patch-media_gpu_vaapi_vaapi__wrapper.cc @@ -0,0 +1,11 @@ +--- media/gpu/vaapi/vaapi_wrapper.cc.orig 2022-05-19 05:17:44 UTC ++++ media/gpu/vaapi/vaapi_wrapper.cc +@@ -587,7 +587,7 @@ VADisplayState::VADisplayState() + bool VADisplayState::Initialize() { + base::AutoLock auto_lock(va_lock_); + +-#if defined(USE_OZONE) && BUILDFLAG(IS_LINUX) ++#if defined(USE_OZONE) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on + // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi + // for more details. This will also require revisiting everything that's diff --git a/devel/electron18/files/patch-media_media__options.gni b/devel/electron18/files/patch-media_media__options.gni new file mode 100644 index 000000000000..f5969218f3e0 --- /dev/null +++ b/devel/electron18/files/patch-media_media__options.gni @@ -0,0 +1,27 @@ +--- media/media_options.gni.orig 2022-05-19 05:17:44 UTC ++++ media/media_options.gni +@@ -125,9 +125,12 @@ declare_args() { + # Enables runtime selection of ALSA library for audio. + use_alsa = false + ++ # Enable runtime selection of sndio(7) ++ use_sndio = false ++ + # Alsa should be used on non-Android, non-Mac POSIX systems. + # Alsa should be used on desktop Chromecast and audio-only Chromecast builds. +- if (is_posix && !is_android && !is_mac && ++ if (is_posix && !is_android && !is_mac && !is_bsd && + (!is_chromecast || is_cast_desktop_build || is_cast_audio_only)) { + use_alsa = true + +@@ -142,6 +145,10 @@ declare_args() { + if (!use_cras && !is_chromecast && !is_asan && !is_tsan) { + use_pulseaudio = true + } ++ } ++ if (is_openbsd) { ++ use_sndio = true ++ use_pulseaudio = false + } + } + diff --git a/devel/electron18/files/patch-media_mojo_mojom_video__frame__mojom__traits.cc b/devel/electron18/files/patch-media_mojo_mojom_video__frame__mojom__traits.cc new file mode 100644 index 000000000000..6a94abe52c04 --- /dev/null +++ b/devel/electron18/files/patch-media_mojo_mojom_video__frame__mojom__traits.cc @@ -0,0 +1,11 @@ +--- media/mojo/mojom/video_frame_mojom_traits.cc.orig 2022-05-19 05:17:44 UTC ++++ media/mojo/mojom/video_frame_mojom_traits.cc +@@ -21,7 +21,7 @@ + #include "ui/gfx/mojom/color_space_mojom_traits.h" + #include "ui/gfx/mojom/hdr_metadata_mojom_traits.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/posix/eintr_wrapper.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + diff --git a/devel/electron18/files/patch-media_video_fake__gpu__memory__buffer.cc b/devel/electron18/files/patch-media_video_fake__gpu__memory__buffer.cc new file mode 100644 index 000000000000..bb1fd960d0d7 --- /dev/null +++ b/devel/electron18/files/patch-media_video_fake__gpu__memory__buffer.cc @@ -0,0 +1,38 @@ +--- media/video/fake_gpu_memory_buffer.cc.orig 2022-05-19 05:17:44 UTC ++++ media/video/fake_gpu_memory_buffer.cc +@@ -9,7 +9,7 @@ + #include "media/base/format_utils.h" + #include "media/base/video_frame.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <fcntl.h> + #include <sys/stat.h> + #include <sys/types.h> +@@ -47,7 +47,7 @@ class FakeGpuMemoryBufferImpl : public gpu::GpuMemoryB + + } // namespace + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::ScopedFD GetDummyFD() { + base::ScopedFD fd(open("/dev/zero", O_RDWR)); + DCHECK(fd.is_valid()); +@@ -77,7 +77,7 @@ FakeGpuMemoryBuffer::FakeGpuMemoryBuffer(const gfx::Si + static base::AtomicSequenceNumber buffer_id_generator; + handle_.id = gfx::GpuMemoryBufferId(buffer_id_generator.GetNext()); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + for (size_t i = 0; i < VideoFrame::NumPlanes(video_pixel_format_); i++) { + const gfx::Size plane_size_in_bytes = + VideoFrame::PlaneSize(video_pixel_format_, i, size_); +@@ -134,7 +134,7 @@ gfx::GpuMemoryBufferHandle FakeGpuMemoryBuffer::CloneH + gfx::GpuMemoryBufferHandle handle; + handle.type = gfx::NATIVE_PIXMAP; + handle.id = handle_.id; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + handle.native_pixmap_handle = + gfx::CloneHandleForIPC(handle_.native_pixmap_handle); + #endif diff --git a/devel/electron18/files/patch-media_video_gpu__memory__buffer__video__frame__pool.cc b/devel/electron18/files/patch-media_video_gpu__memory__buffer__video__frame__pool.cc new file mode 100644 index 000000000000..13b626428839 --- /dev/null +++ b/devel/electron18/files/patch-media_video_gpu__memory__buffer__video__frame__pool.cc @@ -0,0 +1,11 @@ +--- media/video/gpu_memory_buffer_video_frame_pool.cc.orig 2022-05-19 05:17:44 UTC ++++ media/video/gpu_memory_buffer_video_frame_pool.cc +@@ -720,7 +720,7 @@ void GpuMemoryBufferVideoFramePool::PoolImpl::CreateHa + } + + bool is_software_backed_video_frame = !video_frame->HasTextures(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + is_software_backed_video_frame &= !video_frame->HasDmaBufs(); + #endif + diff --git a/devel/electron18/files/patch-media_video_video__encode__accelerator__adapter.cc b/devel/electron18/files/patch-media_video_video__encode__accelerator__adapter.cc new file mode 100644 index 000000000000..c017562e82e0 --- /dev/null +++ b/devel/electron18/files/patch-media_video_video__encode__accelerator__adapter.cc @@ -0,0 +1,20 @@ +--- media/video/video_encode_accelerator_adapter.cc.orig 2022-05-19 05:17:44 UTC ++++ media/video/video_encode_accelerator_adapter.cc +@@ -96,7 +96,7 @@ VideoEncodeAccelerator::Config SetUpVeaConfig( + if (is_rgb) + config.input_format = PIXEL_FORMAT_I420; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (storage_type == VideoFrame::STORAGE_DMABUFS || + storage_type == VideoFrame::STORAGE_GPU_MEMORY_BUFFER) { + if (is_rgb) +@@ -235,7 +235,7 @@ void VideoEncodeAcceleratorAdapter::InitializeInternal + auto vea_config = + SetUpVeaConfig(profile_, options_, format, first_frame->storage_type()); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Linux/ChromeOS require a special configuration to use dmabuf storage. + // We need to keep sending frames the same way the first frame was sent. + // Other platforms will happily mix GpuMemoryBuffer storage with regular diff --git a/devel/electron18/files/patch-media_video_video__encode__accelerator__adapter__test.cc b/devel/electron18/files/patch-media_video_video__encode__accelerator__adapter__test.cc new file mode 100644 index 000000000000..606df69215e8 --- /dev/null +++ b/devel/electron18/files/patch-media_video_video__encode__accelerator__adapter__test.cc @@ -0,0 +1,11 @@ +--- media/video/video_encode_accelerator_adapter_test.cc.orig 2022-05-19 05:17:44 UTC ++++ media/video/video_encode_accelerator_adapter_test.cc +@@ -350,7 +350,7 @@ TEST_P(VideoEncodeAcceleratorAdapterTest, TwoFramesRes + + vea()->SetEncodingCallback(base::BindLambdaForTesting( + [&](BitstreamBuffer&, bool keyframe, scoped_refptr<VideoFrame> frame) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + EXPECT_EQ(frame->format(), + IsYuvPlanar(pixel_format) ? pixel_format : PIXEL_FORMAT_I420); + #else diff --git a/devel/electron18/files/patch-media_webrtc_audio__processor.cc b/devel/electron18/files/patch-media_webrtc_audio__processor.cc new file mode 100644 index 000000000000..659b464ad015 --- /dev/null +++ b/devel/electron18/files/patch-media_webrtc_audio__processor.cc @@ -0,0 +1,11 @@ +--- media/webrtc/audio_processor.cc.orig 2022-05-19 05:17:44 UTC ++++ media/webrtc/audio_processor.cc +@@ -428,7 +428,7 @@ absl::optional<double> AudioProcessor::ProcessData( + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) + DCHECK_LE(volume, 1.0); + #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \ +- BUILDFLAG(IS_OPENBSD) ++ BUILDFLAG(IS_BSD) + // We have a special situation on Linux where the microphone volume can be + // "higher than maximum". The input volume slider in the sound preference + // allows the user to set a scaling that is higher than 100%. It means that diff --git a/devel/electron18/files/patch-media_webrtc_helpers__unittests.cc b/devel/electron18/files/patch-media_webrtc_helpers__unittests.cc new file mode 100644 index 000000000000..5626ad2b7a40 --- /dev/null +++ b/devel/electron18/files/patch-media_webrtc_helpers__unittests.cc @@ -0,0 +1,20 @@ +--- media/webrtc/helpers_unittests.cc.orig 2022-05-19 05:17:44 UTC ++++ media/webrtc/helpers_unittests.cc +@@ -36,7 +36,7 @@ TEST(CreateWebRtcAudioProcessingModuleTest, CheckDefau + EXPECT_FALSE(config.pre_amplifier.enabled); + EXPECT_TRUE(config.echo_canceller.enabled); + EXPECT_TRUE(config.gain_controller1.enabled); +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + EXPECT_TRUE(config.gain_controller2.enabled); + #else + EXPECT_FALSE(config.gain_controller2.enabled); +@@ -94,7 +94,7 @@ TEST(CreateWebRtcAudioProcessingModuleTest, CheckDefau + + // Check that either AGC1 digital or AGC2 digital is used based on the + // platforms where the Hybrid AGC is enabled by default. +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + EXPECT_FALSE(agc1_analog_config.enable_digital_adaptive); + EXPECT_TRUE(config.gain_controller2.enabled); + EXPECT_TRUE(config.gain_controller2.adaptive_digital.enabled); diff --git a/devel/electron18/files/patch-media_webrtc_webrtc__features.cc b/devel/electron18/files/patch-media_webrtc_webrtc__features.cc new file mode 100644 index 000000000000..b1618e548f80 --- /dev/null +++ b/devel/electron18/files/patch-media_webrtc_webrtc__features.cc @@ -0,0 +1,11 @@ +--- media/webrtc/webrtc_features.cc.orig 2022-05-19 05:17:44 UTC ++++ media/webrtc/webrtc_features.cc +@@ -9,7 +9,7 @@ + + namespace features { + namespace { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr base::FeatureState kWebRtcHybridAgcState = + base::FEATURE_ENABLED_BY_DEFAULT; + #else diff --git a/devel/electron18/files/patch-mojo_core_BUILD.gn b/devel/electron18/files/patch-mojo_core_BUILD.gn new file mode 100644 index 000000000000..07d2d98bb92f --- /dev/null +++ b/devel/electron18/files/patch-mojo_core_BUILD.gn @@ -0,0 +1,11 @@ +--- mojo/core/BUILD.gn.orig 2022-05-19 03:45:35 UTC ++++ mojo/core/BUILD.gn +@@ -128,7 +128,7 @@ template("core_impl_source_set") { + ] + } + +- if ((is_linux || is_chromeos || is_android) && !is_nacl) { ++ if ((is_linux || is_chromeos || is_android) && !is_nacl && !is_bsd) { + sources += [ + "channel_linux.cc", + "channel_linux.h", diff --git a/devel/electron18/files/patch-mojo_core_channel.cc b/devel/electron18/files/patch-mojo_core_channel.cc new file mode 100644 index 000000000000..ba423f4f9f10 --- /dev/null +++ b/devel/electron18/files/patch-mojo_core_channel.cc @@ -0,0 +1,14 @@ +--- mojo/core/channel.cc.orig 2022-05-11 07:16:53 UTC ++++ mojo/core/channel.cc +@@ -62,7 +62,11 @@ const size_t kMaxUnusedReadBufferCapacity = 4096; + // Fuchsia: The zx_channel_write() API supports up to 64 handles. + const size_t kMaxAttachedHandles = 64; + ++#if defined(__i386__) && defined(OS_FREEBSD) ++const size_t kChannelMessageAlignment = 4; ++#else + static_assert(alignof(std::max_align_t) >= kChannelMessageAlignment, ""); ++#endif + Channel::AlignedBuffer MakeAlignedBuffer(size_t size) { + // Generic allocators (such as malloc) return a pointer that is suitably + // aligned for storing any type of object with a fundamental alignment diff --git a/devel/electron18/files/patch-mojo_core_embedder_features.h b/devel/electron18/files/patch-mojo_core_embedder_features.h new file mode 100644 index 000000000000..087c08e1abf6 --- /dev/null +++ b/devel/electron18/files/patch-mojo_core_embedder_features.h @@ -0,0 +1,11 @@ +--- mojo/core/embedder/features.h.orig 2022-05-19 03:45:35 UTC ++++ mojo/core/embedder/features.h +@@ -14,7 +14,7 @@ namespace mojo { + namespace core { + + #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) && !BUILDFLAG(IS_MAC) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(MOJO_CORE_EMBEDDER_FEATURES) + extern const base::Feature kMojoLinuxChannelSharedMem; + diff --git a/devel/electron18/files/patch-mojo_public_c_system_thunks.cc b/devel/electron18/files/patch-mojo_public_c_system_thunks.cc new file mode 100644 index 000000000000..b7d970ac5a96 --- /dev/null +++ b/devel/electron18/files/patch-mojo_public_c_system_thunks.cc @@ -0,0 +1,38 @@ +--- mojo/public/c/system/thunks.cc.orig 2022-05-19 05:17:44 UTC ++++ mojo/public/c/system/thunks.cc +@@ -20,7 +20,7 @@ + #include "mojo/public/c/system/macros.h" + + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include "base/environment.h" + #include "base/files/file_path.h" + #include "base/scoped_native_library.h" +@@ -69,7 +69,7 @@ class CoreLibraryInitializer { + + MojoResult LoadLibrary(base::FilePath library_path) { + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + if (library_ && library_->is_valid()) + return MOJO_RESULT_OK; + +@@ -83,7 +83,7 @@ class CoreLibraryInitializer { + + if (library_path.empty()) { + // Default to looking for the library in the current working directory. +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + const base::FilePath::CharType kDefaultLibraryPathValue[] = + FILE_PATH_LITERAL("./libmojo_core.so"); + #elif BUILDFLAG(IS_FUCHSIA) +@@ -139,7 +139,7 @@ class CoreLibraryInitializer { + + private: + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + absl::optional<base::ScopedNativeLibrary> library_; + #endif + }; diff --git a/devel/electron18/files/patch-mojo_public_js_mojo__bindings__resources.grd b/devel/electron18/files/patch-mojo_public_js_mojo__bindings__resources.grd new file mode 100644 index 000000000000..4161c5db871b --- /dev/null +++ b/devel/electron18/files/patch-mojo_public_js_mojo__bindings__resources.grd @@ -0,0 +1,11 @@ +--- mojo/public/js/mojo_bindings_resources.grd.orig 2022-05-19 05:17:44 UTC ++++ mojo/public/js/mojo_bindings_resources.grd +@@ -126,7 +126,7 @@ + use_base_dir="false" + resource_path="mojo/mojo/public/mojom/base/unguessable_token.mojom-webui.js" + type="BINDATA" /> +- <if expr="is_win or is_macosx or is_linux or is_android"> ++ <if expr="is_win or is_macosx or is_posix or is_android"> + <include name="IDR_MOJO_PROCESS_ID_MOJOM_WEBUI_JS" + file="${root_gen_dir}/mojom-webui/mojo/public/mojom/base/process_id.mojom-webui.js" + use_base_dir="false" diff --git a/devel/electron18/files/patch-mojo_public_tools_bindings_mojom.gni b/devel/electron18/files/patch-mojo_public_tools_bindings_mojom.gni new file mode 100644 index 000000000000..a9b204f4361a --- /dev/null +++ b/devel/electron18/files/patch-mojo_public_tools_bindings_mojom.gni @@ -0,0 +1,19 @@ +--- mojo/public/tools/bindings/mojom.gni.orig 2022-05-19 05:17:44 UTC ++++ mojo/public/tools/bindings/mojom.gni +@@ -690,6 +690,16 @@ template("mojom") { + enabled_features += [ "is_win" ] + } + ++ if (is_openbsd) { ++ enabled_features += [ "is_openbsd" ] ++ enabled_features += [ "is_bsd" ] ++ } ++ ++ if (is_freebsd) { ++ enabled_features += [ "is_freebsd" ] ++ enabled_features += [ "is_bsd" ] ++ } ++ + action(parser_target_name) { + script = mojom_parser_script + inputs = mojom_parser_sources + [ build_metadata_filename ] diff --git a/devel/electron18/files/patch-net_BUILD.gn b/devel/electron18/files/patch-net_BUILD.gn new file mode 100644 index 000000000000..1c75202fcffe --- /dev/null +++ b/devel/electron18/files/patch-net_BUILD.gn @@ -0,0 +1,100 @@ +--- net/BUILD.gn.orig 2022-05-19 05:17:44 UTC ++++ net/BUILD.gn +@@ -101,7 +101,7 @@ net_configs = [ + "//build/config/compiler:wexit_time_destructors", + ] + +-if (is_linux || is_chromeos) { ++if ((is_linux || is_chromeos) && !is_bsd) { + net_configs += [ "//build/config/linux:libresolv" ] + } + +@@ -1096,6 +1096,7 @@ component("net") { + "//net/dns:mdns_client", + "//net/dns/public", + "//net/third_party/quiche", ++ "//sandbox/policy", + ] + + allow_circular_includes_from = [ +@@ -1224,6 +1225,15 @@ component("net") { + ] + } + ++ if (is_bsd) { ++ sources -= [ ++ "base/address_tracker_linux.cc", ++ "base/address_tracker_linux.h", ++ "base/network_change_notifier_linux.cc", ++ "base/network_interfaces_linux.cc", ++ ] ++ } ++ + if (is_mac) { + sources += [ + "base/network_notification_thread_mac.cc", +@@ -1356,7 +1366,7 @@ component("net") { + } + } + +- if (is_android || is_chromeos_ash) { ++ if (is_android || is_chromeos_ash || is_bsd) { + sources += [ + "base/network_change_notifier_posix.cc", + "base/network_change_notifier_posix.h", +@@ -1389,7 +1399,7 @@ component("net") { + } + + # Use getifaddrs() on POSIX platforms, except Linux. +- if (is_posix && !is_linux && !is_chromeos) { ++ if ((is_posix && !is_linux && !is_chromeos) || is_bsd) { + sources += [ + "base/network_interfaces_getifaddrs.cc", + "base/network_interfaces_getifaddrs.h", +@@ -2465,7 +2475,7 @@ if (is_linux || is_chromeos || is_mac) { + } + } + +-if (is_linux || is_chromeos) { ++if ((is_linux || is_chromeos) && !is_bsd) { + static_library("epoll_server") { + sources = [ + "tools/epoll_server/platform/impl/epoll_bug_impl.h", +@@ -4459,7 +4469,7 @@ test("net_unittests") { + ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "base/address_tracker_linux_unittest.cc", + "base/network_interfaces_linux_unittest.cc", +@@ -4533,6 +4543,10 @@ test("net_unittests") { + "//url:buildflags", + ] + ++ if (is_bsd) { ++ deps += [ "//sandbox/policy" ] ++ } ++ + allow_circular_includes_from = [ "//net/third_party/quiche:quiche_tests" ] + + if (enable_websockets) { +@@ -4580,7 +4594,7 @@ test("net_unittests") { + ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "quic/platform/impl/quic_epoll_clock_test.cc", + "quic/platform/impl/quic_flags_test.cc", +@@ -4728,7 +4742,7 @@ test("net_unittests") { + } + + # Use getifaddrs() on POSIX platforms, except Linux. +- if (is_posix && !is_linux && !is_chromeos) { ++ if (is_posix && !is_linux && !is_chromeos && !is_bsd) { + sources += [ "base/network_interfaces_getifaddrs_unittest.cc" ] + } + diff --git a/devel/electron18/files/patch-net_base_network__change__notifier.cc b/devel/electron18/files/patch-net_base_network__change__notifier.cc new file mode 100644 index 000000000000..bc342ee4d532 --- /dev/null +++ b/devel/electron18/files/patch-net_base_network__change__notifier.cc @@ -0,0 +1,21 @@ +--- net/base/network_change_notifier.cc.orig 2022-05-19 05:17:44 UTC ++++ net/base/network_change_notifier.cc +@@ -39,7 +39,7 @@ + #include "net/base/network_change_notifier_linux.h" + #elif BUILDFLAG(IS_APPLE) + #include "net/base/network_change_notifier_mac.h" +-#elif BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_ANDROID) ++#elif BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #include "net/base/network_change_notifier_posix.h" + #elif BUILDFLAG(IS_FUCHSIA) + #include "net/base/network_change_notifier_fuchsia.h" +@@ -321,6 +321,9 @@ std::unique_ptr<NetworkChangeNotifier> NetworkChangeNo + #elif BUILDFLAG(IS_FUCHSIA) + return std::make_unique<NetworkChangeNotifierFuchsia>( + /*require_wlan=*/false); ++#elif BUILDFLAG(IS_BSD) ++ return std::make_unique<MockNetworkChangeNotifier>( ++ /*dns_config_notifier*/nullptr); + #else + NOTIMPLEMENTED(); + return NULL; diff --git a/devel/electron18/files/patch-net_base_network__change__notifier__posix.cc b/devel/electron18/files/patch-net_base_network__change__notifier__posix.cc new file mode 100644 index 000000000000..8a0c35331f67 --- /dev/null +++ b/devel/electron18/files/patch-net_base_network__change__notifier__posix.cc @@ -0,0 +1,11 @@ +--- net/base/network_change_notifier_posix.cc.orig 2021-11-19 04:25:20 UTC ++++ net/base/network_change_notifier_posix.cc +@@ -93,7 +93,7 @@ void NetworkChangeNotifierPosix::GetCurrentMaxBandwidt + NetworkChangeNotifier::NetworkChangeCalculatorParams + NetworkChangeNotifierPosix::NetworkChangeCalculatorParamsPosix() { + NetworkChangeCalculatorParams params; +-#if BUILDFLAG(IS_CHROMEOS_ASH) ++#if BUILDFLAG(IS_CHROMEOS_ASH) || defined(OS_BSD) + // Delay values arrived at by simple experimentation and adjusted so as to + // produce a single signal when switching between network connections. + params.ip_address_offline_delay_ = base::Milliseconds(4000); diff --git a/devel/electron18/files/patch-net_base_network__interfaces__posix.h b/devel/electron18/files/patch-net_base_network__interfaces__posix.h new file mode 100644 index 000000000000..348aea8f278a --- /dev/null +++ b/devel/electron18/files/patch-net_base_network__interfaces__posix.h @@ -0,0 +1,11 @@ +--- net/base/network_interfaces_posix.h.orig 2022-05-11 07:00:50 UTC ++++ net/base/network_interfaces_posix.h +@@ -8,6 +8,8 @@ + // This file provides some basic functionality shared between + // network_interfaces_linux.cc and network_interfaces_getifaddrs.cc. + ++#include <sys/socket.h> ++ + #include <string> + + struct sockaddr; diff --git a/devel/electron18/files/patch-net_cert_cert__verifier.cc b/devel/electron18/files/patch-net_cert_cert__verifier.cc new file mode 100644 index 000000000000..4270ee1bd998 --- /dev/null +++ b/devel/electron18/files/patch-net_cert_cert__verifier.cc @@ -0,0 +1,11 @@ +--- net/cert/cert_verifier.cc.orig 2022-05-19 03:45:35 UTC ++++ net/cert/cert_verifier.cc +@@ -78,7 +78,7 @@ bool CertVerifier::RequestParams::operator<( + std::unique_ptr<CertVerifier> CertVerifier::CreateDefaultWithoutCaching( + scoped_refptr<CertNetFetcher> cert_net_fetcher) { + scoped_refptr<CertVerifyProc> verify_proc; +-#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + verify_proc = + CertVerifyProc::CreateBuiltinVerifyProc(std::move(cert_net_fetcher)); + #elif BUILDFLAG(BUILTIN_CERT_VERIFIER_FEATURE_SUPPORTED) diff --git a/devel/electron18/files/patch-net_cert_cert__verify__proc.cc b/devel/electron18/files/patch-net_cert_cert__verify__proc.cc new file mode 100644 index 000000000000..495c76b97ca6 --- /dev/null +++ b/devel/electron18/files/patch-net_cert_cert__verify__proc.cc @@ -0,0 +1,11 @@ +--- net/cert/cert_verify_proc.cc.orig 2022-05-19 05:17:44 UTC ++++ net/cert/cert_verify_proc.cc +@@ -552,7 +552,7 @@ base::Value CertVerifyParams(X509Certificate* cert, + + } // namespace + +-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + // static + scoped_refptr<CertVerifyProc> CertVerifyProc::CreateSystemVerifyProc( + scoped_refptr<CertNetFetcher> cert_net_fetcher) { diff --git a/devel/electron18/files/patch-net_cert_cert__verify__proc.h b/devel/electron18/files/patch-net_cert_cert__verify__proc.h new file mode 100644 index 000000000000..58b939d11a66 --- /dev/null +++ b/devel/electron18/files/patch-net_cert_cert__verify__proc.h @@ -0,0 +1,11 @@ +--- net/cert/cert_verify_proc.h.orig 2022-05-19 05:17:44 UTC ++++ net/cert/cert_verify_proc.h +@@ -79,7 +79,7 @@ class NET_EXPORT CertVerifyProc + kMaxValue = kOther + }; + +-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + // Creates and returns a CertVerifyProc that uses the system verifier. + // |cert_net_fetcher| may not be used, depending on the implementation. + static scoped_refptr<CertVerifyProc> CreateSystemVerifyProc( diff --git a/devel/electron18/files/patch-net_cert_cert__verify__proc__unittest.cc b/devel/electron18/files/patch-net_cert_cert__verify__proc__unittest.cc new file mode 100644 index 000000000000..03d80c922dc8 --- /dev/null +++ b/devel/electron18/files/patch-net_cert_cert__verify__proc__unittest.cc @@ -0,0 +1,11 @@ +--- net/cert/cert_verify_proc_unittest.cc.orig 2022-05-19 05:17:44 UTC ++++ net/cert/cert_verify_proc_unittest.cc +@@ -225,7 +225,7 @@ const std::vector<CertVerifyProcType> kAllCertVerifier + CERT_VERIFY_PROC_MAC, CERT_VERIFY_PROC_BUILTIN + #elif BUILDFLAG(IS_WIN) + CERT_VERIFY_PROC_WIN +-#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + CERT_VERIFY_PROC_BUILTIN + #else + #error Unsupported platform diff --git a/devel/electron18/files/patch-net_cert_test__root__certs__unittest.cc b/devel/electron18/files/patch-net_cert_test__root__certs__unittest.cc new file mode 100644 index 000000000000..d01cf1f03033 --- /dev/null +++ b/devel/electron18/files/patch-net_cert_test__root__certs__unittest.cc @@ -0,0 +1,11 @@ +--- net/cert/test_root_certs_unittest.cc.orig 2022-05-19 03:45:35 UTC ++++ net/cert/test_root_certs_unittest.cc +@@ -33,7 +33,7 @@ const char kRootCertificateFile[] = "root_ca_cert.pem" + const char kGoodCertificateFile[] = "ok_cert.pem"; + + scoped_refptr<CertVerifyProc> CreateCertVerifyProc() { +-#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return CertVerifyProc::CreateBuiltinVerifyProc(/*cert_net_fetcher=*/nullptr); + #elif BUILDFLAG(BUILTIN_CERT_VERIFIER_FEATURE_SUPPORTED) + if (base::FeatureList::IsEnabled(features::kCertVerifierBuiltinFeature)) { diff --git a/devel/electron18/files/patch-net_disk__cache_blockfile_disk__format.h b/devel/electron18/files/patch-net_disk__cache_blockfile_disk__format.h new file mode 100644 index 000000000000..ff58b0c9fc50 --- /dev/null +++ b/devel/electron18/files/patch-net_disk__cache_blockfile_disk__format.h @@ -0,0 +1,12 @@ +--- net/disk_cache/blockfile/disk_format.h.orig 2021-01-07 00:36:38 UTC ++++ net/disk_cache/blockfile/disk_format.h +@@ -149,7 +149,9 @@ struct RankingsNode { + }; + #pragma pack(pop) + ++#if !defined(OS_BSD) + static_assert(sizeof(RankingsNode) == 36, "bad RankingsNode"); ++#endif + + } // namespace disk_cache + diff --git a/devel/electron18/files/patch-net_disk__cache_simple_simple__file__tracker.cc b/devel/electron18/files/patch-net_disk__cache_simple_simple__file__tracker.cc new file mode 100644 index 000000000000..088fe8f7bab5 --- /dev/null +++ b/devel/electron18/files/patch-net_disk__cache_simple_simple__file__tracker.cc @@ -0,0 +1,20 @@ +--- net/disk_cache/simple/simple_file_tracker.cc.orig 2022-05-11 07:16:53 UTC ++++ net/disk_cache/simple/simple_file_tracker.cc +@@ -28,7 +28,17 @@ void RecordFileDescripterLimiterOp(FileDescriptorLimit + } // namespace + + SimpleFileTracker::SimpleFileTracker(int file_limit) ++#if defined(OS_OPENBSD) ++{ ++ // cap the file descriptor limit at 85% of the size of the ++ // file descriptor table and also substract the amount of ++ // currently used file descriptors as this should give us ++ // enough reserve to avoid hitting the limit ++ file_limit_ = (getdtablesize() * 0.85) - getdtablecount(); ++} ++#else + : file_limit_(file_limit) {} ++#endif + + SimpleFileTracker::~SimpleFileTracker() { + DCHECK(lru_.empty()); diff --git a/devel/electron18/files/patch-net_dns_BUILD.gn b/devel/electron18/files/patch-net_dns_BUILD.gn new file mode 100644 index 000000000000..2e803e5763a4 --- /dev/null +++ b/devel/electron18/files/patch-net_dns_BUILD.gn @@ -0,0 +1,31 @@ +--- net/dns/BUILD.gn.orig 2022-05-19 05:17:44 UTC ++++ net/dns/BUILD.gn +@@ -114,7 +114,7 @@ source_set("dns") { + "dns_config_service_android.cc", + "dns_config_service_android.h", + ] +- } else if (is_linux) { ++ } else if (is_linux && !is_bsd) { + sources += [ + "dns_config_service_linux.cc", + "dns_config_service_linux.h", +@@ -155,6 +155,7 @@ source_set("dns") { + ":host_resolver_manager", + ":mdns_client", + "//net:net_public_deps", ++ "//printing/buildflags", + ] + + allow_circular_includes_from = [ +@@ -416,9 +417,9 @@ source_set("tests") { + + if (is_android) { + sources += [ "dns_config_service_android_unittest.cc" ] +- } else if (is_linux) { ++ } else if (is_linux && !is_bsd) { + sources += [ "dns_config_service_linux_unittest.cc" ] +- } else if (is_posix) { ++ } else if (is_posix && !is_bsd) { + sources += [ "dns_config_service_posix_unittest.cc" ] + } + diff --git a/devel/electron18/files/patch-net_dns_address__sorter__posix.cc b/devel/electron18/files/patch-net_dns_address__sorter__posix.cc new file mode 100644 index 000000000000..20476078e5b0 --- /dev/null +++ b/devel/electron18/files/patch-net_dns_address__sorter__posix.cc @@ -0,0 +1,10 @@ +--- net/dns/address_sorter_posix.cc.orig 2022-05-19 05:17:44 UTC ++++ net/dns/address_sorter_posix.cc +@@ -18,6 +18,7 @@ + #include <ifaddrs.h> + #include <net/if.h> + #include <netinet/in_var.h> ++#include <netinet6/in6_var.h> + #include <string.h> + #include <sys/ioctl.h> + #endif diff --git a/devel/electron18/files/patch-net_dns_dns__config__service__posix.cc b/devel/electron18/files/patch-net_dns_dns__config__service__posix.cc new file mode 100644 index 000000000000..88259bb380ea --- /dev/null +++ b/devel/electron18/files/patch-net_dns_dns__config__service__posix.cc @@ -0,0 +1,27 @@ +--- net/dns/dns_config_service_posix.cc.orig 2022-05-20 04:30:53 UTC ++++ net/dns/dns_config_service_posix.cc +@@ -33,6 +33,11 @@ + #include "net/dns/dns_config_watcher_mac.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include "base/command_line.h" ++#include "sandbox/policy/switches.h" ++#endif ++ + namespace net { + + namespace internal { +@@ -129,6 +134,12 @@ class DnsConfigServicePosix::Watcher : public DnsConfi + + bool Watch() override { + CheckOnCorrectSequence(); ++ ++// pledge + unveil ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ if (!command_line->HasSwitch(sandbox::policy::switches::kNoSandbox)) ++ return false; ++ + bool success = true; + #ifndef MAS_BUILD + if (!config_watcher_.Watch(base::BindRepeating(&Watcher::OnConfigChanged, diff --git a/devel/electron18/files/patch-net_dns_dns__reloader.cc b/devel/electron18/files/patch-net_dns_dns__reloader.cc new file mode 100644 index 000000000000..9155dd237aa5 --- /dev/null +++ b/devel/electron18/files/patch-net_dns_dns__reloader.cc @@ -0,0 +1,18 @@ +--- net/dns/dns_reloader.cc.orig 2022-05-19 03:45:35 UTC ++++ net/dns/dns_reloader.cc +@@ -6,7 +6,7 @@ + + #include "build/build_config.h" + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_OPENBSD) && \ ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) && \ + !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA) + + #include <resolv.h> +@@ -113,5 +113,5 @@ void DnsReloaderMaybeReload() { + + } // namespace net + +-#endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_OPENBSD) ++#endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) && + // && !BUILDFLAG(IS_ANDROID) diff --git a/devel/electron18/files/patch-net_dns_dns__reloader.h b/devel/electron18/files/patch-net_dns_dns__reloader.h new file mode 100644 index 000000000000..d65c1166b2f3 --- /dev/null +++ b/devel/electron18/files/patch-net_dns_dns__reloader.h @@ -0,0 +1,11 @@ +--- net/dns/dns_reloader.h.orig 2022-05-19 03:45:35 UTC ++++ net/dns/dns_reloader.h +@@ -7,7 +7,7 @@ + + #include "build/build_config.h" + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_OPENBSD) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + namespace net { + + // Call on the network thread before calling DnsReloaderMaybeReload() anywhere. diff --git a/devel/electron18/files/patch-net_dns_dns__util.cc b/devel/electron18/files/patch-net_dns_dns__util.cc new file mode 100644 index 000000000000..9aa5832cecd0 --- /dev/null +++ b/devel/electron18/files/patch-net_dns_dns__util.cc @@ -0,0 +1,11 @@ +--- net/dns/dns_util.cc.orig 2022-05-19 05:17:44 UTC ++++ net/dns/dns_util.cc +@@ -27,6 +27,8 @@ + #include "net/third_party/uri_template/uri_template.h" + #include "third_party/abseil-cpp/absl/types/optional.h" + ++#include <sys/socket.h> ++ + #if BUILDFLAG(IS_POSIX) + #include <netinet/in.h> + #include <net/if.h> diff --git a/devel/electron18/files/patch-net_dns_host__resolver__manager.cc b/devel/electron18/files/patch-net_dns_host__resolver__manager.cc new file mode 100644 index 000000000000..bf469647a064 --- /dev/null +++ b/devel/electron18/files/patch-net_dns_host__resolver__manager.cc @@ -0,0 +1,11 @@ +--- net/dns/host_resolver_manager.cc.orig 2022-05-19 05:17:44 UTC ++++ net/dns/host_resolver_manager.cc +@@ -2979,7 +2979,7 @@ HostResolverManager::HostResolverManager( + NetworkChangeNotifier::AddConnectionTypeObserver(this); + if (system_dns_config_notifier_) + system_dns_config_notifier_->AddObserver(this); +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_OPENBSD) && \ ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) && \ + !BUILDFLAG(IS_ANDROID) + EnsureDnsReloaderInit(); + #endif diff --git a/devel/electron18/files/patch-net_dns_host__resolver__proc.cc b/devel/electron18/files/patch-net_dns_host__resolver__proc.cc new file mode 100644 index 000000000000..55c1a9137313 --- /dev/null +++ b/devel/electron18/files/patch-net_dns_host__resolver__proc.cc @@ -0,0 +1,22 @@ +--- net/dns/host_resolver_proc.cc.orig 2022-05-19 03:45:35 UTC ++++ net/dns/host_resolver_proc.cc +@@ -19,10 +19,6 @@ + #include "net/dns/dns_util.h" + #include "net/dns/host_resolver.h" + +-#if BUILDFLAG(IS_OPENBSD) +-#define AI_ADDRCONFIG 0 +-#endif +- + namespace net { + + HostResolverProc* HostResolverProc::default_proc_ = nullptr; +@@ -192,7 +188,7 @@ int SystemHostResolverCall(const std::string& host, + base::BlockingType::WILL_BLOCK); + + #if BUILDFLAG(IS_POSIX) && \ +- !(BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_ANDROID)) ++ !(BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) || BUILDFLAG(IS_ANDROID)) + DnsReloaderMaybeReload(); + #endif + auto [ai, err, os_error] = AddressInfo::Get(host, hints, nullptr, network); diff --git a/devel/electron18/files/patch-net_dns_public_BUILD.gn b/devel/electron18/files/patch-net_dns_public_BUILD.gn new file mode 100644 index 000000000000..037814813b93 --- /dev/null +++ b/devel/electron18/files/patch-net_dns_public_BUILD.gn @@ -0,0 +1,11 @@ +--- net/dns/public/BUILD.gn.orig 2022-05-19 03:45:35 UTC ++++ net/dns/public/BUILD.gn +@@ -74,7 +74,7 @@ source_set("tests") { + "doh_provider_entry_unittest.cc", + ] + +- if (is_posix && !is_android) { ++ if (is_posix && !is_android && !is_bsd) { + sources += [ "resolv_reader_unittest.cc" ] + } + diff --git a/devel/electron18/files/patch-net_dns_public_resolv__reader.h b/devel/electron18/files/patch-net_dns_public_resolv__reader.h new file mode 100644 index 000000000000..ab199200b41d --- /dev/null +++ b/devel/electron18/files/patch-net_dns_public_resolv__reader.h @@ -0,0 +1,10 @@ +--- net/dns/public/resolv_reader.h.orig 2022-05-19 03:45:35 UTC ++++ net/dns/public/resolv_reader.h +@@ -5,6 +5,7 @@ + #ifndef NET_DNS_PUBLIC_RESOLV_READER_H_ + #define NET_DNS_PUBLIC_RESOLV_READER_H_ + ++#include <netinet/in.h> + #include <resolv.h> + + #include <memory> diff --git a/devel/electron18/files/patch-net_dns_public_scoped__res__state.h b/devel/electron18/files/patch-net_dns_public_scoped__res__state.h new file mode 100644 index 000000000000..23febb580de2 --- /dev/null +++ b/devel/electron18/files/patch-net_dns_public_scoped__res__state.h @@ -0,0 +1,10 @@ +--- net/dns/public/scoped_res_state.h.orig 2022-05-19 03:45:35 UTC ++++ net/dns/public/scoped_res_state.h +@@ -5,6 +5,7 @@ + #ifndef NET_DNS_PUBLIC_SCOPED_RES_STATE_H_ + #define NET_DNS_PUBLIC_SCOPED_RES_STATE_H_ + ++#include <netinet/in.h> + #include <resolv.h> + + #include "build/build_config.h" diff --git a/devel/electron18/files/patch-net_http_http__auth__gssapi__posix.cc b/devel/electron18/files/patch-net_http_http__auth__gssapi__posix.cc new file mode 100644 index 000000000000..5dee441745fa --- /dev/null +++ b/devel/electron18/files/patch-net_http_http__auth__gssapi__posix.cc @@ -0,0 +1,14 @@ +--- net/http/http_auth_gssapi_posix.cc.orig 2022-05-19 05:17:44 UTC ++++ net/http/http_auth_gssapi_posix.cc +@@ -370,8 +370,9 @@ base::NativeLibrary GSSAPISharedLibrary::LoadSharedLib + static const char* const kDefaultLibraryNames[] = { + #if BUILDFLAG(IS_APPLE) + "/System/Library/Frameworks/GSS.framework/GSS" +-#elif BUILDFLAG(IS_OPENBSD) +- "libgssapi.so" // Heimdal - OpenBSD ++#elif BUILDFLAG(IS_BSD) ++ "libgssapi_krb5.so.2", // MIT Kerberos - FreeBSD ++ "libgssapi.so" // Heimdal - OpenBSD, FreeBSD + #else + "libgssapi_krb5.so.2", // MIT Kerberos - FC, Suse10, Debian + "libgssapi.so.4", // Heimdal - Suse10, MDK diff --git a/devel/electron18/files/patch-net_http_http__auth__gssapi__posix.h b/devel/electron18/files/patch-net_http_http__auth__gssapi__posix.h new file mode 100644 index 000000000000..863d8b8303bc --- /dev/null +++ b/devel/electron18/files/patch-net_http_http__auth__gssapi__posix.h @@ -0,0 +1,12 @@ +--- net/http/http_auth_gssapi_posix.h.orig 2022-05-19 03:45:36 UTC ++++ net/http/http_auth_gssapi_posix.h +@@ -20,6 +20,9 @@ + #if BUILDFLAG(IS_APPLE) + #include <GSS/gssapi.h> + #elif BUILDFLAG(IS_FREEBSD) ++#ifndef GSS_C_DELEG_POLICY_FLAG ++#define GSS_C_DELEG_POLICY_FLAG 32768 ++#endif + #include <gssapi/gssapi.h> + #else + #include <gssapi.h> diff --git a/devel/electron18/files/patch-net_http_http__network__session.cc b/devel/electron18/files/patch-net_http_http__network__session.cc new file mode 100644 index 000000000000..d32403fc4ce9 --- /dev/null +++ b/devel/electron18/files/patch-net_http_http__network__session.cc @@ -0,0 +1,12 @@ +--- net/http/http_network_session.cc.orig 2022-05-11 07:16:54 UTC ++++ net/http/http_network_session.cc +@@ -20,7 +20,9 @@ + #include "build/build_config.h" + #include "net/base/features.h" + #include "net/dns/host_resolver.h" ++#if defined(USE_KERBEROS) + #include "net/http/http_auth_handler_factory.h" ++#endif + #include "net/http/http_response_body_drainer.h" + #include "net/http/http_stream_factory.h" + #include "net/http/url_security_manager.h" diff --git a/devel/electron18/files/patch-net_proxy__resolution_configured__proxy__resolution__service.cc b/devel/electron18/files/patch-net_proxy__resolution_configured__proxy__resolution__service.cc new file mode 100644 index 000000000000..979c61dc1d1f --- /dev/null +++ b/devel/electron18/files/patch-net_proxy__resolution_configured__proxy__resolution__service.cc @@ -0,0 +1,29 @@ +--- net/proxy_resolution/configured_proxy_resolution_service.cc.orig 2022-05-19 05:17:44 UTC ++++ net/proxy_resolution/configured_proxy_resolution_service.cc +@@ -52,7 +52,7 @@ + #elif BUILDFLAG(IS_MAC) + #include "net/proxy_resolution/proxy_config_service_mac.h" + #include "net/proxy_resolution/proxy_resolver_mac.h" +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "net/proxy_resolution/proxy_config_service_linux.h" + #elif BUILDFLAG(IS_ANDROID) + #include "net/proxy_resolution/proxy_config_service_android.h" +@@ -64,7 +64,7 @@ namespace net { + + namespace { + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + constexpr net::NetworkTrafficAnnotationTag kSystemProxyConfigTrafficAnnotation = + net::DefineNetworkTrafficAnnotation("proxy_config_system", R"( + semantics { +@@ -1422,7 +1422,7 @@ ConfiguredProxyResolutionService::CreateSystemProxyCon + << "profile_io_data.cc::CreateProxyConfigService and this should " + << "be used only for examples."; + return std::make_unique<UnsetProxyConfigService>(); +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + std::unique_ptr<ProxyConfigServiceLinux> linux_config_service( + new ProxyConfigServiceLinux()); + diff --git a/devel/electron18/files/patch-net_proxy__resolution_proxy__config__service__linux.cc b/devel/electron18/files/patch-net_proxy__resolution_proxy__config__service__linux.cc new file mode 100644 index 000000000000..7d19f1c5af34 --- /dev/null +++ b/devel/electron18/files/patch-net_proxy__resolution_proxy__config__service__linux.cc @@ -0,0 +1,40 @@ +--- net/proxy_resolution/proxy_config_service_linux.cc.orig 2022-05-11 07:16:54 UTC ++++ net/proxy_resolution/proxy_config_service_linux.cc +@@ -6,7 +6,9 @@ + + #include <errno.h> + #include <limits.h> ++#if !defined(OS_BSD) + #include <sys/inotify.h> ++#endif + #include <unistd.h> + + #include <map> +@@ -506,6 +508,7 @@ bool SettingGetterImplGSettings::CheckVersion( + } + #endif // defined(USE_GIO) + ++#if !defined(OS_BSD) + // Converts |value| from a decimal string to an int. If there was a failure + // parsing, returns |default_value|. + int StringToIntOrDefault(base::StringPiece value, int default_value) { +@@ -1007,6 +1010,7 @@ class SettingGetterImplKDE : public ProxyConfigService + // events on. + scoped_refptr<base::SequencedTaskRunner> file_task_runner_; + }; ++#endif + + } // namespace + +@@ -1222,9 +1226,11 @@ ProxyConfigServiceLinux::Delegate::Delegate( + case base::nix::DESKTOP_ENVIRONMENT_KDE3: + case base::nix::DESKTOP_ENVIRONMENT_KDE4: + case base::nix::DESKTOP_ENVIRONMENT_KDE5: ++#if !defined(OS_BSD) + setting_getter_ = + std::make_unique<SettingGetterImplKDE>(env_var_getter_.get()); + break; ++#endif + case base::nix::DESKTOP_ENVIRONMENT_XFCE: + case base::nix::DESKTOP_ENVIRONMENT_OTHER: + break; diff --git a/devel/electron18/files/patch-net_socket_socket__posix.cc b/devel/electron18/files/patch-net_socket_socket__posix.cc new file mode 100644 index 000000000000..b9ef8eaba7db --- /dev/null +++ b/devel/electron18/files/patch-net_socket_socket__posix.cc @@ -0,0 +1,11 @@ +--- net/socket/socket_posix.cc.orig 2022-05-19 03:45:37 UTC ++++ net/socket/socket_posix.cc +@@ -519,7 +519,7 @@ void SocketPosix::ReadCompleted() { + } + + int SocketPosix::DoWrite(IOBuffer* buf, int buf_len) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // Disable SIGPIPE for this write. Although Chromium globally disables + // SIGPIPE, the net stack may be used in other consumers which do not do + // this. MSG_NOSIGNAL is a Linux-only API. On OS X, this is a setsockopt on diff --git a/devel/electron18/files/patch-net_socket_socks5__client__socket.cc b/devel/electron18/files/patch-net_socket_socks5__client__socket.cc new file mode 100644 index 000000000000..f6af6bb414bb --- /dev/null +++ b/devel/electron18/files/patch-net_socket_socks5__client__socket.cc @@ -0,0 +1,12 @@ +--- net/socket/socks5_client_socket.cc.orig 2022-05-11 07:16:54 UTC ++++ net/socket/socks5_client_socket.cc +@@ -20,6 +20,9 @@ + #include "net/log/net_log_event_type.h" + #include "net/traffic_annotation/network_traffic_annotation.h" + ++#include <sys/types.h> ++#include <netinet/in.h> ++ + namespace net { + + const unsigned int SOCKS5ClientSocket::kGreetReadHeaderSize = 2; diff --git a/devel/electron18/files/patch-net_socket_tcp__socket__posix.cc b/devel/electron18/files/patch-net_socket_tcp__socket__posix.cc new file mode 100644 index 000000000000..f53f41d1143a --- /dev/null +++ b/devel/electron18/files/patch-net_socket_tcp__socket__posix.cc @@ -0,0 +1,20 @@ +--- net/socket/tcp_socket_posix.cc.orig 2022-05-19 05:17:45 UTC ++++ net/socket/tcp_socket_posix.cc +@@ -96,6 +96,17 @@ bool SetTCPKeepAlive(int fd, bool enable, int delay) { + PLOG(ERROR) << "Failed to set TCP_KEEPALIVE on fd: " << fd; + return false; + } ++#elif BUILDFLAG(IS_FREEBSD) ++ // Set seconds until first TCP keep alive. ++ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &delay, sizeof(delay))) { ++ PLOG(ERROR) << "Failed to set TCP_KEEPIDLE on fd: " << fd; ++ return false; ++ } ++ // Set seconds between TCP keep alives. ++ if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, &delay, sizeof(delay))) { ++ PLOG(ERROR) << "Failed to set TCP_KEEPINTVL on fd: " << fd; ++ return false; ++ } + #endif + return true; + } diff --git a/devel/electron18/files/patch-net_socket_udp__socket__posix.cc b/devel/electron18/files/patch-net_socket_udp__socket__posix.cc new file mode 100644 index 000000000000..791684b2d571 --- /dev/null +++ b/devel/electron18/files/patch-net_socket_udp__socket__posix.cc @@ -0,0 +1,20 @@ +--- net/socket/udp_socket_posix.cc.orig 2022-05-19 05:17:45 UTC ++++ net/socket/udp_socket_posix.cc +@@ -574,7 +574,7 @@ int UDPSocketPosix::SetDoNotFragment() { + } + + void UDPSocketPosix::SetMsgConfirm(bool confirm) { +-#if !BUILDFLAG(IS_APPLE) ++#if !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_BSD) + if (confirm) { + sendto_flags_ |= MSG_CONFIRM; + } else { +@@ -595,7 +595,7 @@ int UDPSocketPosix::SetBroadcast(bool broadcast) { + DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + int value = broadcast ? 1 : 0; + int rv; +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + // SO_REUSEPORT on OSX permits multiple processes to each receive + // UDP multicast or broadcast datagrams destined for the bound + // port. diff --git a/devel/electron18/files/patch-net_socket_udp__socket__unittest.cc b/devel/electron18/files/patch-net_socket_udp__socket__unittest.cc new file mode 100644 index 000000000000..f2d8ceebdaad --- /dev/null +++ b/devel/electron18/files/patch-net_socket_udp__socket__unittest.cc @@ -0,0 +1,47 @@ +--- net/socket/udp_socket_unittest.cc.orig 2022-05-19 05:17:45 UTC ++++ net/socket/udp_socket_unittest.cc +@@ -324,7 +324,7 @@ TEST_F(UDPSocketTest, PartialRecv) { + EXPECT_EQ(second_packet, received); + } + +-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // - MacOS: requires root permissions on OSX 10.7+. + // - Android: devices attached to testbots don't have default network, so + // broadcasting to 255.255.255.255 returns error -109 (Address not reachable). +@@ -584,7 +584,7 @@ TEST_F(UDPSocketTest, ClientSetDoNotFragment) { + EXPECT_THAT(rv, IsOk()); + + rv = client.SetDoNotFragment(); +-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/945590): IP_MTU_DISCOVER is not implemented on Fuchsia. + EXPECT_THAT(rv, IsError(ERR_NOT_IMPLEMENTED)); + #else +@@ -606,7 +606,7 @@ TEST_F(UDPSocketTest, ServerSetDoNotFragment) { + EXPECT_THAT(rv, IsOk()); + + rv = server.SetDoNotFragment(); +-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/945590): IP_MTU_DISCOVER is not implemented on Fuchsia. + EXPECT_THAT(rv, IsError(ERR_NOT_IMPLEMENTED)); + #else +@@ -665,7 +665,7 @@ TEST_F(UDPSocketTest, JoinMulticastGroup) { + + // TODO(https://crbug.com/947115): failing on device on iOS 12.2. + // TODO(https://crbug.com/1227554): flaky on Mac 11. +-#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #define MAYBE_SharedMulticastAddress DISABLED_SharedMulticastAddress + #else + #define MAYBE_SharedMulticastAddress SharedMulticastAddress +@@ -719,7 +719,7 @@ TEST_F(UDPSocketTest, MAYBE_SharedMulticastAddress) { + NetLogSource()); + ASSERT_THAT(client_socket.Connect(send_address), IsOk()); + +-#if !BUILDFLAG(IS_CHROMEOS_ASH) ++#if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_BSD) + // Send a message via the multicast group. That message is expected be be + // received by both receving sockets. + // diff --git a/devel/electron18/files/patch-net_socket_unix__domain__client__socket__posix.cc b/devel/electron18/files/patch-net_socket_unix__domain__client__socket__posix.cc new file mode 100644 index 000000000000..3bcd15feccf8 --- /dev/null +++ b/devel/electron18/files/patch-net_socket_unix__domain__client__socket__posix.cc @@ -0,0 +1,11 @@ +--- net/socket/unix_domain_client_socket_posix.cc.orig 2022-05-19 05:17:45 UTC ++++ net/socket/unix_domain_client_socket_posix.cc +@@ -60,7 +60,7 @@ bool UnixDomainClientSocket::FillAddress(const std::st + return true; + } + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Convert the path given into abstract socket name. It must start with + // the '\0' character, so we are adding it. |addr_len| must specify the + // length of the structure exactly, as potentially the socket name may diff --git a/devel/electron18/files/patch-net_third__party_quiche_BUILD.gn b/devel/electron18/files/patch-net_third__party_quiche_BUILD.gn new file mode 100644 index 000000000000..3a21572a633d --- /dev/null +++ b/devel/electron18/files/patch-net_third__party_quiche_BUILD.gn @@ -0,0 +1,33 @@ +--- net/third_party/quiche/BUILD.gn.orig 2022-05-19 05:17:45 UTC ++++ net/third_party/quiche/BUILD.gn +@@ -708,7 +708,7 @@ proto_library("net_quic_test_tools_proto") { + extra_configs = [ "//build/config/compiler:wexit_time_destructors" ] + } + +-if (is_linux || is_chromeos) { ++if ((is_linux || is_chromeos) && !is_bsd) { + source_set("epoll_server_core") { + sources = [ + "src/epoll_server/platform/api/epoll_bug.h", +@@ -1063,7 +1063,7 @@ source_set("quic_test_tools_core") { + "//third_party/quic_trace:quic_trace_proto", + ] + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "src/epoll_server/fake_simple_epoll_server.cc", + "src/epoll_server/fake_simple_epoll_server.h", +@@ -1528,10 +1528,10 @@ source_set("quiche_tests") { + ] + public_deps = [] + +- if (is_linux || is_chromeos_lacros) { ++ if ((is_linux || is_chromeos_lacros) && !is_bsd) { + public_deps += [ "//net:epoll_quic_tools" ] + } +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "src/epoll_server/simple_epoll_server_test.cc", + "src/quic/core/chlo_extractor_test.cc", diff --git a/devel/electron18/files/patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc b/devel/electron18/files/patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc new file mode 100644 index 000000000000..b43ee40e7d88 --- /dev/null +++ b/devel/electron18/files/patch-net_tools_cert__verify__tool_cert__verify__comparision__tool.cc @@ -0,0 +1,29 @@ +--- net/tools/cert_verify_tool/cert_verify_comparision_tool.cc.orig 2022-05-19 05:17:45 UTC ++++ net/tools/cert_verify_tool/cert_verify_comparision_tool.cc +@@ -35,7 +35,7 @@ + #include "net/url_request/url_request_context_builder.h" + #include "net/url_request/url_request_context_getter.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "net/proxy_resolution/proxy_config.h" + #include "net/proxy_resolution/proxy_config_service_fixed.h" + #endif +@@ -51,7 +51,7 @@ void SetUpOnNetworkThread( + base::WaitableEvent* initialization_complete_event) { + net::URLRequestContextBuilder url_request_context_builder; + url_request_context_builder.set_user_agent(GetUserAgent()); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, use a fixed ProxyConfigService, since the default one + // depends on glib. + // +@@ -123,7 +123,7 @@ class CertVerifyImpl { + std::unique_ptr<CertVerifyImpl> CreateCertVerifyImplFromName( + base::StringPiece impl_name, + scoped_refptr<net::CertNetFetcher> cert_net_fetcher) { +-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + if (impl_name == "platform") { + return std::make_unique<CertVerifyImpl>( + "CertVerifyProc (system)", net::CertVerifyProc::CreateSystemVerifyProc( diff --git a/devel/electron18/files/patch-net_tools_cert__verify__tool_cert__verify__tool.cc b/devel/electron18/files/patch-net_tools_cert__verify__tool_cert__verify__tool.cc new file mode 100644 index 000000000000..cda3effdba99 --- /dev/null +++ b/devel/electron18/files/patch-net_tools_cert__verify__tool_cert__verify__tool.cc @@ -0,0 +1,38 @@ +--- net/tools/cert_verify_tool/cert_verify_tool.cc.orig 2022-05-19 05:17:45 UTC ++++ net/tools/cert_verify_tool/cert_verify_tool.cc +@@ -30,7 +30,7 @@ + #include "net/url_request/url_request_context_builder.h" + #include "net/url_request/url_request_context_getter.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "net/proxy_resolution/proxy_config.h" + #include "net/proxy_resolution/proxy_config_service_fixed.h" + #endif +@@ -56,7 +56,7 @@ void SetUpOnNetworkThread( + base::WaitableEvent* initialization_complete_event) { + net::URLRequestContextBuilder url_request_context_builder; + url_request_context_builder.set_user_agent(GetUserAgent()); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, use a fixed ProxyConfigService, since the default one + // depends on glib. + // +@@ -206,7 +206,7 @@ std::unique_ptr<CertVerifyImpl> CreateCertVerifyImplFr + base::StringPiece impl_name, + scoped_refptr<net::CertNetFetcher> cert_net_fetcher, + RootStoreType root_store_type) { +-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + if (impl_name == "platform") { + if (root_store_type != RootStoreType::kSystem) { + std::cerr << "WARNING: platform verifier not supported with " +@@ -463,7 +463,7 @@ int main(int argc, char** argv) { + std::string impls_str = command_line.GetSwitchValueASCII("impls"); + if (impls_str.empty()) { + // Default value. +-#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++#if !(BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + impls_str = "platform,"; + #endif + impls_str += "builtin,pathbuilder"; diff --git a/devel/electron18/files/patch-net_tools_quic_quic__http__proxy__backend.cc b/devel/electron18/files/patch-net_tools_quic_quic__http__proxy__backend.cc new file mode 100644 index 000000000000..19961462267a --- /dev/null +++ b/devel/electron18/files/patch-net_tools_quic_quic__http__proxy__backend.cc @@ -0,0 +1,11 @@ +--- net/tools/quic/quic_http_proxy_backend.cc.orig 2022-05-19 03:45:37 UTC ++++ net/tools/quic/quic_http_proxy_backend.cc +@@ -161,7 +161,7 @@ void QuicHttpProxyBackend::InitializeURLRequestContext + // Enable HTTP2, but disable QUIC on the backend + context_builder.SetSpdyAndQuicEnabled(true /* http2 */, false /* quic */); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, use a fixed ProxyConfigService, since the default one + // depends on glib. + context_builder.set_proxy_config_service( diff --git a/devel/electron18/files/patch-net_traffic__annotation_network__traffic__annotation.h b/devel/electron18/files/patch-net_traffic__annotation_network__traffic__annotation.h new file mode 100644 index 000000000000..90f79585add0 --- /dev/null +++ b/devel/electron18/files/patch-net_traffic__annotation_network__traffic__annotation.h @@ -0,0 +1,20 @@ +--- net/traffic_annotation/network_traffic_annotation.h.orig 2022-05-19 03:45:37 UTC ++++ net/traffic_annotation/network_traffic_annotation.h +@@ -371,7 +371,7 @@ struct MutablePartialNetworkTrafficAnnotationTag { + } // namespace net + + // Placeholder for unannotated usages. +-#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + #define TRAFFIC_ANNOTATION_WITHOUT_PROTO(ANNOTATION_ID) \ + net::DefineNetworkTrafficAnnotation(ANNOTATION_ID, "No proto yet.") + #endif +@@ -385,7 +385,7 @@ struct MutablePartialNetworkTrafficAnnotationTag { + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if !BUILDFLAG(IS_WIN) && \ +- !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + + #define NO_TRAFFIC_ANNOTATION_YET \ + net::DefineNetworkTrafficAnnotation("undefined", "Nothing here yet.") diff --git a/devel/electron18/files/patch-net_url__request_url__fetcher.cc b/devel/electron18/files/patch-net_url__request_url__fetcher.cc new file mode 100644 index 000000000000..061ac7db10da --- /dev/null +++ b/devel/electron18/files/patch-net_url__request_url__fetcher.cc @@ -0,0 +1,11 @@ +--- net/url_request/url_fetcher.cc.orig 2022-05-19 03:45:37 UTC ++++ net/url_request/url_fetcher.cc +@@ -26,7 +26,7 @@ void URLFetcher::SetIgnoreCertificateRequests(bool ign + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if !BUILDFLAG(IS_WIN) && \ +- !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + // static + std::unique_ptr<URLFetcher> URLFetcher::Create( + const GURL& url, diff --git a/devel/electron18/files/patch-net_url__request_url__fetcher.h b/devel/electron18/files/patch-net_url__request_url__fetcher.h new file mode 100644 index 000000000000..57b49b6131b7 --- /dev/null +++ b/devel/electron18/files/patch-net_url__request_url__fetcher.h @@ -0,0 +1,11 @@ +--- net/url_request/url_fetcher.h.orig 2022-05-19 03:45:37 UTC ++++ net/url_request/url_fetcher.h +@@ -344,7 +344,7 @@ class NET_EXPORT URLFetcher { + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if (!BUILDFLAG(IS_WIN) && \ +- !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))) || \ ++ !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD))) || \ + BUILDFLAG(IS_CHROMEOS) + // |url| is the URL to send the request to. It must be valid. + // |request_type| is the type of request to make. diff --git a/devel/electron18/files/patch-net_url__request_url__request__context.cc b/devel/electron18/files/patch-net_url__request_url__request__context.cc new file mode 100644 index 000000000000..762bb6d274ad --- /dev/null +++ b/devel/electron18/files/patch-net_url__request_url__request__context.cc @@ -0,0 +1,11 @@ +--- net/url_request/url_request_context.cc.orig 2022-05-19 05:17:45 UTC ++++ net/url_request/url_request_context.cc +@@ -90,7 +90,7 @@ const HttpNetworkSessionContext* URLRequestContext::Ge + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if !BUILDFLAG(IS_WIN) && \ +- !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + std::unique_ptr<URLRequest> URLRequestContext::CreateRequest( + const GURL& url, + RequestPriority priority, diff --git a/devel/electron18/files/patch-net_url__request_url__request__context.h b/devel/electron18/files/patch-net_url__request_url__request__context.h new file mode 100644 index 000000000000..dfb570b2278c --- /dev/null +++ b/devel/electron18/files/patch-net_url__request_url__request__context.h @@ -0,0 +1,11 @@ +--- net/url_request/url_request_context.h.orig 2022-05-19 05:17:45 UTC ++++ net/url_request/url_request_context.h +@@ -83,7 +83,7 @@ class NET_EXPORT URLRequestContext { + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if !BUILDFLAG(IS_WIN) && \ +- !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + // This function should not be used in Chromium, please use the version with + // NetworkTrafficAnnotationTag in the future. + // diff --git a/devel/electron18/files/patch-net_url__request_url__request__context__builder.cc b/devel/electron18/files/patch-net_url__request_url__request__context__builder.cc new file mode 100644 index 000000000000..2cce8efda981 --- /dev/null +++ b/devel/electron18/files/patch-net_url__request_url__request__context__builder.cc @@ -0,0 +1,11 @@ +--- net/url_request/url_request_context_builder.cc.orig 2022-05-19 05:17:45 UTC ++++ net/url_request/url_request_context_builder.cc +@@ -492,7 +492,7 @@ std::unique_ptr<URLRequestContext> URLRequestContextBu + } + + if (!proxy_resolution_service_) { +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD) + // TODO(willchan): Switch to using this code when + // ConfiguredProxyResolutionService::CreateSystemProxyConfigService()'s + // signature doesn't suck. diff --git a/devel/electron18/files/patch-pdf_out__of__process__instance.cc b/devel/electron18/files/patch-pdf_out__of__process__instance.cc new file mode 100644 index 000000000000..37f39d8bc1f1 --- /dev/null +++ b/devel/electron18/files/patch-pdf_out__of__process__instance.cc @@ -0,0 +1,20 @@ +--- pdf/out_of_process_instance.cc.orig 2022-05-19 05:17:45 UTC ++++ pdf/out_of_process_instance.cc +@@ -74,7 +74,7 @@ + #include "ui/gfx/geometry/size.h" + #include "url/gurl.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "pdf/ppapi_migration/pdfium_font_linux.h" + #endif + +@@ -734,7 +734,7 @@ void OutOfProcessInstance::RotateCounterclockwise() { + } + + void OutOfProcessInstance::SetLastPluginInstance() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + SetLastPepperInstance(this); + #endif + } diff --git a/devel/electron18/files/patch-pdf_pdfium_pdfium__engine.cc b/devel/electron18/files/patch-pdf_pdfium_pdfium__engine.cc new file mode 100644 index 000000000000..4878e8c5fb07 --- /dev/null +++ b/devel/electron18/files/patch-pdf_pdfium_pdfium__engine.cc @@ -0,0 +1,20 @@ +--- pdf/pdfium/pdfium_engine.cc.orig 2022-05-19 05:17:45 UTC ++++ pdf/pdfium/pdfium_engine.cc +@@ -84,7 +84,7 @@ + #include "gin/public/cppgc.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "pdf/pdfium/pdfium_font_linux.h" + #endif + +@@ -519,7 +519,7 @@ void InitializeSDK(bool enable_v8, FontMappingMode fon + + FPDF_InitLibraryWithConfig(&config); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + g_font_mapping_mode = font_mapping_mode; + InitializeLinuxFontMapper(); + #endif diff --git a/devel/electron18/files/patch-printing_mojom_printing__context__mojom__traits.cc b/devel/electron18/files/patch-printing_mojom_printing__context__mojom__traits.cc new file mode 100644 index 000000000000..754e5d292499 --- /dev/null +++ b/devel/electron18/files/patch-printing_mojom_printing__context__mojom__traits.cc @@ -0,0 +1,20 @@ +--- printing/mojom/printing_context_mojom_traits.cc.orig 2022-05-19 05:17:45 UTC ++++ printing/mojom/printing_context_mojom_traits.cc +@@ -16,7 +16,7 @@ + #include "ui/gfx/geometry/mojom/geometry_mojom_traits.h" + #include "ui/gfx/geometry/size.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "mojo/public/mojom/base/values.mojom.h" + #endif + +@@ -162,7 +162,7 @@ bool StructTraits< + } + + out->set_pages_per_sheet(data.pages_per_sheet()); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + DCHECK(out->advanced_settings().empty()); + if (!data.ReadAdvancedSettings(&out->advanced_settings())) + return false; diff --git a/devel/electron18/files/patch-printing_mojom_printing__context__mojom__traits.h b/devel/electron18/files/patch-printing_mojom_printing__context__mojom__traits.h new file mode 100644 index 000000000000..d01c6f6bf7cc --- /dev/null +++ b/devel/electron18/files/patch-printing_mojom_printing__context__mojom__traits.h @@ -0,0 +1,11 @@ +--- printing/mojom/printing_context_mojom_traits.h.orig 2022-05-19 05:17:45 UTC ++++ printing/mojom/printing_context_mojom_traits.h +@@ -168,7 +168,7 @@ struct StructTraits<printing::mojom::PrintSettingsData + return s.pages_per_sheet(); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static const printing::PrintSettings::AdvancedSettings& advanced_settings( + const printing::PrintSettings& s) { + return s.advanced_settings(); diff --git a/devel/electron18/files/patch-printing_print__settings.cc b/devel/electron18/files/patch-printing_print__settings.cc new file mode 100644 index 000000000000..13795d489ec4 --- /dev/null +++ b/devel/electron18/files/patch-printing_print__settings.cc @@ -0,0 +1,29 @@ +--- printing/print_settings.cc.orig 2022-05-19 05:17:45 UTC ++++ printing/print_settings.cc +@@ -265,7 +265,7 @@ PrintSettings::PrintSettings(const PrintSettings& sett + #endif + is_modifiable_ = settings.is_modifiable_; + pages_per_sheet_ = settings.pages_per_sheet_; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + for (const auto& item : settings.advanced_settings_) + advanced_settings_.emplace(item.first, item.second.Clone()); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -305,7 +305,7 @@ PrintSettings& PrintSettings::operator=(const PrintSet + #endif + is_modifiable_ = settings.is_modifiable_; + pages_per_sheet_ = settings.pages_per_sheet_; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + for (const auto& item : settings.advanced_settings_) + advanced_settings_.emplace(item.first, item.second.Clone()); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -345,7 +345,7 @@ void PrintSettings::Clear() { + #endif + is_modifiable_ = true; + pages_per_sheet_ = 1; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + advanced_settings_.clear(); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + #if BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron18/files/patch-printing_print__settings.h b/devel/electron18/files/patch-printing_print__settings.h new file mode 100644 index 000000000000..27c8e197c632 --- /dev/null +++ b/devel/electron18/files/patch-printing_print__settings.h @@ -0,0 +1,38 @@ +--- printing/print_settings.h.orig 2022-05-19 03:45:37 UTC ++++ printing/print_settings.h +@@ -18,7 +18,7 @@ + #include "ui/gfx/geometry/rect.h" + #include "ui/gfx/geometry/size.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <map> + + #include "base/values.h" +@@ -66,7 +66,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSettings { + } + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + using AdvancedSettings = std::map<std::string, base::Value>; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +@@ -221,7 +221,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSettings { + pages_per_sheet_ = pages_per_sheet; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + AdvancedSettings& advanced_settings() { return advanced_settings_; } + const AdvancedSettings& advanced_settings() const { + return advanced_settings_; +@@ -322,7 +322,7 @@ class COMPONENT_EXPORT(PRINTING) PrintSettings { + // Number of pages per sheet. + int pages_per_sheet_; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Advanced settings. + AdvancedSettings advanced_settings_; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron18/files/patch-printing_print__settings__conversion.cc b/devel/electron18/files/patch-printing_print__settings__conversion.cc new file mode 100644 index 000000000000..166d65503814 --- /dev/null +++ b/devel/electron18/files/patch-printing_print__settings__conversion.cc @@ -0,0 +1,11 @@ +--- printing/print_settings_conversion.cc.orig 2022-05-19 05:17:45 UTC ++++ printing/print_settings_conversion.cc +@@ -217,7 +217,7 @@ std::unique_ptr<PrintSettings> PrintSettingsFromJobSet + settings->set_is_modifiable(is_modifiable.value()); + } + +-#if BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_LINUX) && defined(USE_CUPS)) ++#if BUILDFLAG(IS_CHROMEOS) || ((BUILDFLAG(IS_BSD) || BUILDFLAG(IS_LINUX)) && defined(USE_CUPS)) + const base::Value* advanced_settings = + job_settings.FindDictKey(kSettingAdvancedSettings); + if (advanced_settings) { diff --git a/devel/electron18/files/patch-printing_printing__features.cc b/devel/electron18/files/patch-printing_printing__features.cc new file mode 100644 index 000000000000..973b75dd24c8 --- /dev/null +++ b/devel/electron18/files/patch-printing_printing__features.cc @@ -0,0 +1,11 @@ +--- printing/printing_features.cc.orig 2022-05-19 05:17:45 UTC ++++ printing/printing_features.cc +@@ -8,7 +8,7 @@ + #include "printing/buildflags/buildflags.h" + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/metrics/field_trial_params.h" + #endif + diff --git a/devel/electron18/files/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc b/devel/electron18/files/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc new file mode 100644 index 000000000000..8bc5c49f758b --- /dev/null +++ b/devel/electron18/files/patch-printing_sandbox_print__backend__sandbox__hook__linux.cc @@ -0,0 +1,51 @@ +--- printing/sandbox/print_backend_sandbox_hook_linux.cc.orig 2022-05-19 03:45:37 UTC ++++ printing/sandbox/print_backend_sandbox_hook_linux.cc +@@ -9,21 +9,28 @@ + #include "base/files/file_util.h" + #include "base/path_service.h" + #include "build/build_config.h" ++#if !BUILDFLAG(IS_BSD) + #include "sandbox/linux/syscall_broker/broker_command.h" + #include "sandbox/linux/syscall_broker/broker_file_permission.h" + #include "sandbox/policy/export.h" + #include "sandbox/policy/linux/sandbox_linux.h" + #include "services/network/network_sandbox_hook_linux.h" ++#else ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++#endif + + #if BUILDFLAG(IS_CHROMEOS) && defined(USE_CUPS) + #include "printing/backend/cups_connection_pool.h" + #endif + ++#if !BUILDFLAG(IS_BSD) + using sandbox::syscall_broker::BrokerFilePermission; + using sandbox::syscall_broker::MakeBrokerCommandSet; ++#endif + + namespace printing { + ++#if !BUILDFLAG(IS_BSD) + namespace { + + sandbox::syscall_broker::BrokerCommandSet GetPrintBackendBrokerCommandSet() { +@@ -84,9 +91,11 @@ std::vector<BrokerFilePermission> GetPrintBackendFileP + } + + } // namespace ++#endif + + bool PrintBackendPreSandboxHook( + sandbox::policy::SandboxLinux::Options options) { ++#if !BUILDFLAG(IS_BSD) + #if BUILDFLAG(IS_CHROMEOS) && defined(USE_CUPS) + // Create the socket connections to the CUPS server before engaging the + // sandbox, since new connections cannot be made after that. +@@ -100,6 +109,7 @@ bool PrintBackendPreSandboxHook( + sandbox::policy::SandboxLinux::PreSandboxHook(), options); + + instance->EngageNamespaceSandboxIfPossible(); ++#endif + return true; + } + diff --git a/devel/electron18/files/patch-printing_sandbox_print__backend__sandbox__hook__linux.h b/devel/electron18/files/patch-printing_sandbox_print__backend__sandbox__hook__linux.h new file mode 100644 index 000000000000..69a0bc55dcbd --- /dev/null +++ b/devel/electron18/files/patch-printing_sandbox_print__backend__sandbox__hook__linux.h @@ -0,0 +1,16 @@ +--- printing/sandbox/print_backend_sandbox_hook_linux.h.orig 2022-05-11 07:00:52 UTC ++++ printing/sandbox/print_backend_sandbox_hook_linux.h +@@ -5,8 +5,13 @@ + #ifndef PRINTING_SANDBOX_PRINT_BACKEND_SANDBOX_HOOK_LINUX_H_ + #define PRINTING_SANDBOX_PRINT_BACKEND_SANDBOX_HOOK_LINUX_H_ + ++#include "build/build_config.h" + #include "base/component_export.h" ++#if defined(OS_BSD) ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace printing { + diff --git a/devel/electron18/files/patch-remoting_base_chromoting__event.cc b/devel/electron18/files/patch-remoting_base_chromoting__event.cc new file mode 100644 index 000000000000..050ec75e1c6a --- /dev/null +++ b/devel/electron18/files/patch-remoting_base_chromoting__event.cc @@ -0,0 +1,11 @@ +--- remoting/base/chromoting_event.cc.orig 2022-05-19 05:17:45 UTC ++++ remoting/base/chromoting_event.cc +@@ -190,7 +190,7 @@ void ChromotingEvent::AddSystemInfo() { + SetString(kCpuKey, base::SysInfo::OperatingSystemArchitecture()); + SetString(kOsVersionKey, base::SysInfo::OperatingSystemVersion()); + SetString(kWebAppVersionKey, STRINGIZE(VERSION)); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + Os os = Os::CHROMOTING_LINUX; + #elif BUILDFLAG(IS_CHROMEOS_ASH) + Os os = Os::CHROMOTING_CHROMEOS; diff --git a/devel/electron18/files/patch-remoting_base_host__settings.cc b/devel/electron18/files/patch-remoting_base_host__settings.cc new file mode 100644 index 000000000000..6bc3191e531b --- /dev/null +++ b/devel/electron18/files/patch-remoting_base_host__settings.cc @@ -0,0 +1,20 @@ +--- remoting/base/host_settings.cc.orig 2022-05-19 03:45:37 UTC ++++ remoting/base/host_settings.cc +@@ -7,7 +7,7 @@ + #include "base/no_destructor.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) ++#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + #include "remoting/base/file_host_settings.h" + #endif // BUILDFLAG(IS_LINUX) + +@@ -44,7 +44,7 @@ HostSettings::~HostSettings() = default; + + // static + HostSettings* HostSettings::GetInstance() { +-#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) ++#if BUILDFLAG(IS_APPLE) || (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) + static base::NoDestructor<FileHostSettings> instance( + FileHostSettings::GetSettingsFilePath()); + #elif BUILDFLAG(IS_WIN) diff --git a/devel/electron18/files/patch-remoting_client_display_sys__opengl.h b/devel/electron18/files/patch-remoting_client_display_sys__opengl.h new file mode 100644 index 000000000000..0d243f5e52b3 --- /dev/null +++ b/devel/electron18/files/patch-remoting_client_display_sys__opengl.h @@ -0,0 +1,11 @@ +--- remoting/client/display/sys_opengl.h.orig 2022-05-19 03:45:37 UTC ++++ remoting/client/display/sys_opengl.h +@@ -9,7 +9,7 @@ + + #if BUILDFLAG(IS_IOS) + #include <OpenGLES/ES3/gl.h> +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #define GL_GLEXT_PROTOTYPES + #include <GL/gl.h> + #include <GL/glext.h> diff --git a/devel/electron18/files/patch-remoting_codec_webrtc__video__encoder__vpx.cc b/devel/electron18/files/patch-remoting_codec_webrtc__video__encoder__vpx.cc new file mode 100644 index 000000000000..4caaf7c0bc1c --- /dev/null +++ b/devel/electron18/files/patch-remoting_codec_webrtc__video__encoder__vpx.cc @@ -0,0 +1,11 @@ +--- remoting/codec/webrtc_video_encoder_vpx.cc.orig 2022-05-19 05:17:45 UTC ++++ remoting/codec/webrtc_video_encoder_vpx.cc +@@ -85,7 +85,7 @@ void SetVp8CodecParameters(vpx_codec_enc_cfg_t* config + const webrtc::DesktopSize& size) { + SetCommonCodecParameters(config, size); + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) ++#if (BUILDFLAG(IS_BSD) || BUILDFLAG(IS_LINUX)) && !BUILDFLAG(IS_CHROMEOS_LACROS) + // On Linux, using too many threads for VP8 encoding has been linked to high + // CPU usage on machines that are under stress. See http://crbug.com/1151148. + config->g_threads = std::min(config->g_threads, 2U); diff --git a/devel/electron18/files/patch-remoting_host_base_switches.cc b/devel/electron18/files/patch-remoting_host_base_switches.cc new file mode 100644 index 000000000000..ea9c9761726d --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_base_switches.cc @@ -0,0 +1,11 @@ +--- remoting/host/base/switches.cc.orig 2022-05-19 05:17:45 UTC ++++ remoting/host/base/switches.cc +@@ -23,7 +23,7 @@ const char kProcessTypeEvaluateCapability[] = "evaluat + const char kProcessTypeFileChooser[] = "file_chooser"; + const char kProcessTypeUrlForwarderConfigurator[] = + "url_forwarder_configurator"; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + const char kProcessTypeXSessionChooser[] = "xsession_chooser"; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + diff --git a/devel/electron18/files/patch-remoting_host_base_switches.h b/devel/electron18/files/patch-remoting_host_base_switches.h new file mode 100644 index 000000000000..722cc8b19002 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_base_switches.h @@ -0,0 +1,11 @@ +--- remoting/host/base/switches.h.orig 2022-05-19 05:17:45 UTC ++++ remoting/host/base/switches.h +@@ -35,7 +35,7 @@ extern const char kProcessTypeRdpDesktopSession[]; + extern const char kProcessTypeEvaluateCapability[]; + extern const char kProcessTypeFileChooser[]; + extern const char kProcessTypeUrlForwarderConfigurator[]; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + extern const char kProcessTypeXSessionChooser[]; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + diff --git a/devel/electron18/files/patch-remoting_host_chromoting__host.cc b/devel/electron18/files/patch-remoting_host_chromoting__host.cc new file mode 100644 index 000000000000..917ab85d4f50 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_chromoting__host.cc @@ -0,0 +1,11 @@ +--- remoting/host/chromoting_host.cc.orig 2022-05-19 03:45:37 UTC ++++ remoting/host/chromoting_host.cc +@@ -124,7 +124,7 @@ void ChromotingHost::StartChromotingHostServices() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(!ipc_server_); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + ipc_server_ = std::make_unique<MojoIpcServer<mojom::ChromotingHostServices>>( + GetChromotingHostServicesServerName(), this); + ipc_server_->StartServer(); diff --git a/devel/electron18/files/patch-remoting_host_chromoting__host__context.cc b/devel/electron18/files/patch-remoting_host_chromoting__host__context.cc new file mode 100644 index 000000000000..c9db4af66442 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_chromoting__host__context.cc @@ -0,0 +1,11 @@ +--- remoting/host/chromoting_host_context.cc.orig 2022-05-19 05:17:45 UTC ++++ remoting/host/chromoting_host_context.cc +@@ -143,7 +143,7 @@ std::unique_ptr<ChromotingHostContext> ChromotingHostC + // on a UI thread. + scoped_refptr<AutoThreadTaskRunner> input_task_runner = + AutoThread::CreateWithType("ChromotingInputThread", ui_task_runner, +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::MessagePumpType::UI); + #else + base::MessagePumpType::IO); diff --git a/devel/electron18/files/patch-remoting_host_chromoting__host__services__client.cc b/devel/electron18/files/patch-remoting_host_chromoting__host__services__client.cc new file mode 100644 index 000000000000..48a6cdbbb92d --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_chromoting__host__services__client.cc @@ -0,0 +1,20 @@ +--- remoting/host/chromoting_host_services_client.cc.orig 2022-05-19 03:45:37 UTC ++++ remoting/host/chromoting_host_services_client.cc +@@ -28,7 +28,7 @@ bool g_initialized = false; + + } // namespace + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + + // static + constexpr char +@@ -112,7 +112,7 @@ bool ChromotingHostServicesClient::EnsureSessionServic + if (session_services_remote_.is_bound()) { + return true; + } +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (!environment_->HasVar(kChromeRemoteDesktopSessionEnvVar)) { + LOG(WARNING) << "Current desktop environment is not remotable."; + return false; diff --git a/devel/electron18/files/patch-remoting_host_evaluate__capability.cc b/devel/electron18/files/patch-remoting_host_evaluate__capability.cc new file mode 100644 index 000000000000..6b3469af21a5 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_evaluate__capability.cc @@ -0,0 +1,11 @@ +--- remoting/host/evaluate_capability.cc.orig 2022-05-19 03:45:37 UTC ++++ remoting/host/evaluate_capability.cc +@@ -55,7 +55,7 @@ base::FilePath BuildHostBinaryPath() { + } + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (path.BaseName().value() == + FILE_PATH_LITERAL("chrome-remote-desktop-host")) { + return path; diff --git a/devel/electron18/files/patch-remoting_host_heartbeat__sender.cc b/devel/electron18/files/patch-remoting_host_heartbeat__sender.cc new file mode 100644 index 000000000000..4a1cc27510a8 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_heartbeat__sender.cc @@ -0,0 +1,11 @@ +--- remoting/host/heartbeat_sender.cc.orig 2022-05-19 03:45:37 UTC ++++ remoting/host/heartbeat_sender.cc +@@ -111,7 +111,7 @@ const net::BackoffEntry::Policy kBackoffPolicy = { + std::string GetHostname() { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag + // switch of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + return net::GetHostName(); + #elif BUILDFLAG(IS_WIN) + wchar_t buffer[MAX_PATH] = {0}; diff --git a/devel/electron18/files/patch-remoting_host_host__attributes.cc b/devel/electron18/files/patch-remoting_host_host__attributes.cc new file mode 100644 index 000000000000..4c0b29ec9eb9 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_host__attributes.cc @@ -0,0 +1,11 @@ +--- remoting/host/host_attributes.cc.orig 2022-05-19 05:17:45 UTC ++++ remoting/host/host_attributes.cc +@@ -122,7 +122,7 @@ std::string GetHostAttributes() { + media::InitializeMediaFoundation()) { + result.push_back("HWEncoder"); + } +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + result.push_back("HWEncoder"); + #endif + diff --git a/devel/electron18/files/patch-remoting_host_host__details.cc b/devel/electron18/files/patch-remoting_host_host__details.cc new file mode 100644 index 000000000000..d4bc7221cbb3 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_host__details.cc @@ -0,0 +1,11 @@ +--- remoting/host/host_details.cc.orig 2022-05-19 03:45:37 UTC ++++ remoting/host/host_details.cc +@@ -23,7 +23,7 @@ std::string GetHostOperatingSystemName() { + return "Mac"; + #elif BUILDFLAG(IS_CHROMEOS_ASH) + return "ChromeOS"; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + return "Linux"; + #elif BUILDFLAG(IS_ANDROID) + return "Android"; diff --git a/devel/electron18/files/patch-remoting_host_host__main.cc b/devel/electron18/files/patch-remoting_host_host__main.cc new file mode 100644 index 000000000000..3c25236d3678 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_host__main.cc @@ -0,0 +1,29 @@ +--- remoting/host/host_main.cc.orig 2022-05-19 05:17:45 UTC ++++ remoting/host/host_main.cc +@@ -50,7 +50,7 @@ int FileChooserMain(); + int RdpDesktopSessionMain(); + int UrlForwarderConfiguratorMain(); + #endif // BUILDFLAG(IS_WIN) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + int XSessionChooserMain(); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + +@@ -63,7 +63,7 @@ const char kUsageMessage[] = + "\n" + "Options:\n" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + " --audio-pipe-name=<pipe> - Sets the pipe name to capture audio on " + "Linux.\n" + #endif // BUILDFLAG(IS_LINUX) +@@ -154,7 +154,7 @@ MainRoutineFn SelectMainRoutine(const std::string& pro + } else if (process_type == kProcessTypeUrlForwarderConfigurator) { + main_routine = &UrlForwarderConfiguratorMain; + #endif // BUILDFLAG(IS_WIN) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + } else if (process_type == kProcessTypeXSessionChooser) { + main_routine = &XSessionChooserMain; + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) diff --git a/devel/electron18/files/patch-remoting_host_ipc__constants.cc b/devel/electron18/files/patch-remoting_host_ipc__constants.cc new file mode 100644 index 000000000000..1aa6046401a0 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_ipc__constants.cc @@ -0,0 +1,11 @@ +--- remoting/host/ipc_constants.cc.orig 2022-05-19 03:45:37 UTC ++++ remoting/host/ipc_constants.cc +@@ -16,7 +16,7 @@ namespace remoting { + + namespace { + +-#if !defined(NDEBUG) && BUILDFLAG(IS_LINUX) ++#if !defined(NDEBUG) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) + // Use a different IPC name for Linux debug builds so that we can run the host + // directly from out/Debug without interfering with the production host that + // might also be running. diff --git a/devel/electron18/files/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc b/devel/electron18/files/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc new file mode 100644 index 000000000000..8b8890d23861 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_it2me_it2me__native__messaging__host__main.cc @@ -0,0 +1,47 @@ +--- remoting/host/it2me/it2me_native_messaging_host_main.cc.orig 2022-05-19 05:17:45 UTC ++++ remoting/host/it2me/it2me_native_messaging_host_main.cc +@@ -30,7 +30,7 @@ + #include "remoting/host/resources.h" + #include "remoting/host/usage_stats_consent.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <gtk/gtk.h> + + #include "base/linux_util.h" +@@ -76,7 +76,7 @@ bool CurrentProcessHasUiAccess() { + // Creates a It2MeNativeMessagingHost instance, attaches it to stdin/stdout and + // runs the task executor until It2MeNativeMessagingHost signals shutdown. + int It2MeNativeMessagingHostMain(int argc, char** argv) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Initialize Xlib for multi-threaded use, allowing non-Chromium code to + // use X11 safely (such as the WebRTC capturer, GTK ...) + x11::InitXlib(); +@@ -121,7 +121,7 @@ int It2MeNativeMessagingHostMain(int argc, char** argv + + remoting::LoadResources(""); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Required for any calls into GTK functions, such as the Disconnect and + // Continue windows. Calling with nullptr arguments because we don't have + // any command line arguments for gtk to consume. +@@ -254,7 +254,7 @@ int It2MeNativeMessagingHostMain(int argc, char** argv + PolicyWatcher::CreateWithTaskRunner(context->file_task_runner(), + context->management_service()); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Create an X11EventSource on all UI threads, so the global X11 connection + // (x11::Connection::Get()) can dispatch X events. + auto event_source = +@@ -276,7 +276,7 @@ int It2MeNativeMessagingHostMain(int argc, char** argv + // Run the loop until channel is alive. + run_loop.Run(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + input_task_runner->PostTask(FROM_HERE, base::BindOnce([]() { + delete ui::X11EventSource::GetInstance(); + })); diff --git a/devel/electron18/files/patch-remoting_host_me2me__desktop__environment.cc b/devel/electron18/files/patch-remoting_host_me2me__desktop__environment.cc new file mode 100644 index 000000000000..ceefde8410db --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_me2me__desktop__environment.cc @@ -0,0 +1,11 @@ +--- remoting/host/me2me_desktop_environment.cc.orig 2022-05-19 05:17:45 UTC ++++ remoting/host/me2me_desktop_environment.cc +@@ -143,7 +143,7 @@ bool Me2MeDesktopEnvironment::InitializeSecurity( + + // Otherwise, if the session is shared with the local user start monitoring + // the local input and create the in-session UI. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool want_user_interface = false; + #elif BUILDFLAG(IS_APPLE) + // Don't try to display any UI on top of the system's login screen as this diff --git a/devel/electron18/files/patch-remoting_host_remote__open__url_remote__open__url__client.cc b/devel/electron18/files/patch-remoting_host_remote__open__url_remote__open__url__client.cc new file mode 100644 index 000000000000..b2ff1e0ae724 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_remote__open__url_remote__open__url__client.cc @@ -0,0 +1,20 @@ +--- remoting/host/remote_open_url/remote_open_url_client.cc.orig 2022-05-19 05:17:45 UTC ++++ remoting/host/remote_open_url/remote_open_url_client.cc +@@ -15,7 +15,7 @@ + #include "remoting/host/mojom/chromoting_host_services.mojom.h" + #include "remoting/host/mojom/remote_url_opener.mojom.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "remoting/host/remote_open_url/remote_open_url_client_delegate_linux.h" + #elif BUILDFLAG(IS_WIN) + #include "remoting/host/remote_open_url/remote_open_url_client_delegate_win.h" +@@ -28,7 +28,7 @@ namespace { + constexpr base::TimeDelta kRequestTimeout = base::Seconds(5); + + std::unique_ptr<RemoteOpenUrlClient::Delegate> CreateDelegate() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return std::make_unique<RemoteOpenUrlClientDelegateLinux>(); + #elif BUILDFLAG(IS_WIN) + return std::make_unique<RemoteOpenUrlClientDelegateWin>(); diff --git a/devel/electron18/files/patch-remoting_host_remote__open__url_remote__open__url__util.cc b/devel/electron18/files/patch-remoting_host_remote__open__url_remote__open__url__util.cc new file mode 100644 index 000000000000..3f0a7a63d9a5 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_remote__open__url_remote__open__url__util.cc @@ -0,0 +1,11 @@ +--- remoting/host/remote_open_url/remote_open_url_util.cc.orig 2022-05-19 03:45:37 UTC ++++ remoting/host/remote_open_url/remote_open_url_util.cc +@@ -30,7 +30,7 @@ const wchar_t kRegisteredApplicationsKeyName[] = + #endif // defined (OS_WIN) + + bool IsRemoteOpenUrlSupported() { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + return true; + #elif BUILDFLAG(IS_WIN) + // The modern default apps settings dialog is only available to Windows 8+. diff --git a/devel/electron18/files/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc b/devel/electron18/files/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc new file mode 100644 index 000000000000..a174c040c8c3 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_remote__open__url_url__forwarder__configurator.cc @@ -0,0 +1,11 @@ +--- remoting/host/remote_open_url/url_forwarder_configurator.cc.orig 2022-05-19 03:45:37 UTC ++++ remoting/host/remote_open_url/url_forwarder_configurator.cc +@@ -12,7 +12,7 @@ UrlForwarderConfigurator::UrlForwarderConfigurator() = + + UrlForwarderConfigurator::~UrlForwarderConfigurator() = default; + +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_WIN) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD) + + // static + std::unique_ptr<UrlForwarderConfigurator> UrlForwarderConfigurator::Create() { diff --git a/devel/electron18/files/patch-remoting_host_remoting__me2me__host.cc b/devel/electron18/files/patch-remoting_host_remoting__me2me__host.cc new file mode 100644 index 000000000000..afe9f6f89692 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_remoting__me2me__host.cc @@ -0,0 +1,92 @@ +--- remoting/host/remoting_me2me_host.cc.orig 2022-05-19 05:17:45 UTC ++++ remoting/host/remoting_me2me_host.cc +@@ -124,7 +124,7 @@ + #include "remoting/host/mac/permission_utils.h" + #endif // BUILDFLAG(IS_APPLE) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <gtk/gtk.h> + + #include "base/linux_util.h" +@@ -168,7 +168,7 @@ const char kApplicationName[] = "chromoting"; + const char kStdinConfigPath[] = "-"; + #endif // !defined(REMOTING_MULTI_PROCESS) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The command line switch used to pass name of the pipe to capture audio on + // linux. + const char kAudioPipeSwitchName[] = "audio-pipe-name"; +@@ -373,7 +373,7 @@ class HostProcess : public ConfigWatcher::Delegate, + + std::unique_ptr<ChromotingHostContext> context_; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Watch for certificate changes and kill the host when changes occur + std::unique_ptr<CertificateWatcher> cert_watcher_; + #endif +@@ -747,7 +747,7 @@ void HostProcess::StartOnNetworkThread() { + void HostProcess::ShutdownOnNetworkThread() { + DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); + config_watcher_.reset(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + cert_watcher_.reset(); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + } +@@ -806,7 +806,7 @@ void HostProcess::CreateAuthenticatorFactory() { + DCHECK(third_party_auth_config_.token_url.is_valid()); + DCHECK(third_party_auth_config_.token_validation_url.is_valid()); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (!cert_watcher_) { + cert_watcher_ = std::make_unique<CertificateWatcher>( + base::BindRepeating(&HostProcess::ShutdownHost, +@@ -916,7 +916,7 @@ void HostProcess::StartOnUiThread() { + base::BindRepeating(&HostProcess::OnPolicyUpdate, base::Unretained(this)), + base::BindRepeating(&HostProcess::OnPolicyError, base::Unretained(this))); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // If an audio pipe is specific on the command-line then initialize + // AudioCapturerLinux to capture from it. + base::FilePath audio_pipe_name = base::CommandLine::ForCurrentProcess()-> +@@ -987,7 +987,7 @@ void HostProcess::ShutdownOnUiThread() { + // It is now safe for the HostProcess to be deleted. + self_ = nullptr; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Cause the global AudioPipeReader to be freed, otherwise the audio + // thread will remain in-use and prevent the process from exiting. + // TODO(wez): DesktopEnvironmentFactory should own the pipe reader. +@@ -1697,7 +1697,7 @@ void HostProcess::StartHost() { + // The feature is enabled for all Googlers using a supported platform. + desktop_environment_options_.set_enable_remote_open_url(is_googler_); + +-#if BUILDFLAG(IS_LINUX) || !defined(NDEBUG) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || !defined(NDEBUG) + // Experimental feature. Enabled on Linux for easier testing. + if (is_googler_) { + desktop_environment_options_.set_enable_remote_webauthn(true); +@@ -1897,7 +1897,7 @@ int HostProcessMain() { + HOST_LOG << "Starting host process: version " << STRINGIZE(VERSION); + const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Initialize Xlib for multi-threaded use, allowing non-Chromium code to + // use X11 safely (such as the WebRTC capturer, GTK ...) + x11::InitXlib(); +@@ -1941,7 +1941,7 @@ int HostProcessMain() { + std::unique_ptr<net::NetworkChangeNotifier> network_change_notifier( + net::NetworkChangeNotifier::CreateIfNeeded()); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Create an X11EventSource on all UI threads, so the global X11 connection + // (x11::Connection::Get()) can dispatch X events. + auto event_source = diff --git a/devel/electron18/files/patch-remoting_host_setup_start__host__main.cc b/devel/electron18/files/patch-remoting_host_setup_start__host__main.cc new file mode 100644 index 000000000000..ff56ac8e43c5 --- /dev/null +++ b/devel/electron18/files/patch-remoting_host_setup_start__host__main.cc @@ -0,0 +1,29 @@ +--- remoting/host/setup/start_host_main.cc.orig 2022-05-19 03:45:37 UTC ++++ remoting/host/setup/start_host_main.cc +@@ -32,7 +32,7 @@ + #include <unistd.h> + #endif // BUILDFLAG(IS_POSIX) + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "remoting/host/setup/daemon_controller_delegate_linux.h" + #include "remoting/host/setup/start_host_as_root.h" + #endif // BUILDFLAG(IS_LINUX) +@@ -126,7 +126,7 @@ void OnDone(HostStarter::Result result) { + } // namespace + + int StartHostMain(int argc, char** argv) { +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Minimize the amount of code that runs as root on Posix systems. + if (getuid() == 0) { + return remoting::StartHostAsRoot(argc, argv); +@@ -163,7 +163,7 @@ int StartHostMain(int argc, char** argv) { + // for the account which generated |code|. + std::string host_owner = command_line->GetSwitchValueASCII("host-owner"); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (command_line->HasSwitch("no-start")) { + // On Linux, registering the host with systemd and starting it is the only + // reason start_host requires root. The --no-start options skips that final diff --git a/devel/electron18/files/patch-remoting_resources_remoting__strings.grd b/devel/electron18/files/patch-remoting_resources_remoting__strings.grd new file mode 100644 index 000000000000..d6254b250234 --- /dev/null +++ b/devel/electron18/files/patch-remoting_resources_remoting__strings.grd @@ -0,0 +1,20 @@ +--- remoting/resources/remoting_strings.grd.orig 2022-05-19 05:17:45 UTC ++++ remoting/resources/remoting_strings.grd +@@ -936,7 +936,7 @@ If '<ph name="SERVICE_SCRIPT_NAME">$3<ex>org.chromium. + <message name="IDS_URL_FORWARDER_INCORRECTLY_CONFIGURED" desc="Message shown when the Chrome Remote Desktop URL forwarder is incorrectly configured."> + <ph name="URL_FORWARDER_NAME">%s<ex>Chrome Remote Desktop URL Forwarder</ex></ph> is not configured correctly. Please choose a different default web browser and then enable URL forwarding again. + </message> +- <if expr="is_linux"> ++ <if expr="is_posix"> + <message name="IDS_SESSION_DIALOG_MESSAGE" desc="The message to show at the top of the session-selection dialog."> + Select a session to launch within your Chrome Remote Desktop environment. (Note that some session types may not support running within Chrome Remote Desktop and on the local console simultaneously.) + </message> +@@ -952,7 +952,7 @@ If '<ph name="SERVICE_SCRIPT_NAME">$3<ex>org.chromium. + <message name="IDS_SESSION_DIALOG_DEFAULT_SESSION_COMMENT" desc="The comment for the entry to launch the default session."> + Launch the default XSession + </message> +- </if> <!-- is_linux --> ++ </if> <!-- is_posix --> + </messages> + </release> + </grit> diff --git a/devel/electron18/files/patch-sandbox_BUILD.gn b/devel/electron18/files/patch-sandbox_BUILD.gn new file mode 100644 index 000000000000..058e63d7c7cf --- /dev/null +++ b/devel/electron18/files/patch-sandbox_BUILD.gn @@ -0,0 +1,11 @@ +--- sandbox/BUILD.gn.orig 2022-05-11 07:16:54 UTC ++++ sandbox/BUILD.gn +@@ -27,7 +27,7 @@ group("sandbox") { + "//sandbox/mac:system_services", + "//sandbox/mac/mojom", + ] +- } else if (is_linux || is_chromeos || is_android) { ++ } else if ((is_linux && !is_bsd) || is_chromeos || is_android) { + public_deps = [ "//sandbox/linux:sandbox" ] + } + } diff --git a/devel/electron18/files/patch-sandbox_features.gni b/devel/electron18/files/patch-sandbox_features.gni new file mode 100644 index 000000000000..b3bcbbbbc5ef --- /dev/null +++ b/devel/electron18/files/patch-sandbox_features.gni @@ -0,0 +1,11 @@ +--- sandbox/features.gni.orig 2022-05-11 07:00:53 UTC ++++ sandbox/features.gni +@@ -6,7 +6,7 @@ + # currently. + # Do not disable seccomp_bpf anywhere without talking to + # security@chromium.org! +-use_seccomp_bpf = (is_linux || is_chromeos || is_android) && ++use_seccomp_bpf = !is_bsd && (is_linux || is_chromeos || is_android) && + (current_cpu == "x86" || current_cpu == "x64" || + current_cpu == "arm" || current_cpu == "arm64" || + current_cpu == "mipsel" || current_cpu == "mips64el") diff --git a/devel/electron18/files/patch-sandbox_linux_BUILD.gn b/devel/electron18/files/patch-sandbox_linux_BUILD.gn new file mode 100644 index 000000000000..8e508d52f7b9 --- /dev/null +++ b/devel/electron18/files/patch-sandbox_linux_BUILD.gn @@ -0,0 +1,58 @@ +--- sandbox/linux/BUILD.gn.orig 2022-05-11 07:16:54 UTC ++++ sandbox/linux/BUILD.gn +@@ -12,12 +12,12 @@ if (is_android) { + } + + declare_args() { +- compile_suid_client = is_linux || is_chromeos ++ compile_suid_client = (is_linux || is_chromeos) && !is_bsd + +- compile_credentials = is_linux || is_chromeos ++ compile_credentials = (is_linux || is_chromeos) && !is_bsd + + # On Android, use plain GTest. +- use_base_test_suite = is_linux || is_chromeos ++ use_base_test_suite = (is_linux || is_chromeos) && !is_bsd + } + + # We have two principal targets: sandbox and sandbox_linux_unittests +@@ -367,6 +367,39 @@ component("sandbox_services") { + sources += [ + "services/libc_interceptor.cc", + "services/libc_interceptor.h", ++ ] ++ } ++ ++ if (is_bsd) { ++ sources -= [ ++ "services/scoped_process.cc", ++ "services/scoped_process.h", ++ "services/syscall_wrappers.cc", ++ "services/syscall_wrappers.h", ++ "services/yama.cc", ++ "services/yama.h", ++ "syscall_broker/broker_channel.cc", ++ "syscall_broker/broker_channel.h", ++ "syscall_broker/broker_client.cc", ++ "syscall_broker/broker_client.h", ++ "syscall_broker/broker_command.cc", ++ "syscall_broker/broker_command.h", ++ "syscall_broker/broker_file_permission.cc", ++ "syscall_broker/broker_file_permission.h", ++ "syscall_broker/broker_host.cc", ++ "syscall_broker/broker_host.h", ++ "syscall_broker/broker_permission_list.cc", ++ "syscall_broker/broker_permission_list.h", ++ "syscall_broker/broker_process.cc", ++ "syscall_broker/broker_process.h", ++ "syscall_broker/broker_sandbox_config.cc", ++ "syscall_broker/broker_sandbox_config.h", ++ "syscall_broker/broker_simple_message.cc", ++ "syscall_broker/broker_simple_message.h", ++ "syscall_broker/remote_syscall_arg_handler.cc", ++ "syscall_broker/remote_syscall_arg_handler.h", ++ "syscall_broker/syscall_dispatcher.cc", ++ "syscall_broker/syscall_dispatcher.h", + ] + } + } diff --git a/devel/electron18/files/patch-sandbox_linux_services_init__process__reaper.cc b/devel/electron18/files/patch-sandbox_linux_services_init__process__reaper.cc new file mode 100644 index 000000000000..e4ef40b14bb9 --- /dev/null +++ b/devel/electron18/files/patch-sandbox_linux_services_init__process__reaper.cc @@ -0,0 +1,15 @@ +--- sandbox/linux/services/init_process_reaper.cc.orig 2022-05-11 07:00:53 UTC ++++ sandbox/linux/services/init_process_reaper.cc +@@ -2,6 +2,7 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++#if 0 + #include "sandbox/linux/services/init_process_reaper.h" + + #include <signal.h> +@@ -100,3 +101,4 @@ bool CreateInitProcessReaper(base::OnceClosure post_fo + } + + } // namespace sandbox. ++#endif diff --git a/devel/electron18/files/patch-sandbox_linux_services_libc__interceptor.cc b/devel/electron18/files/patch-sandbox_linux_services_libc__interceptor.cc new file mode 100644 index 000000000000..3cded253fb1a --- /dev/null +++ b/devel/electron18/files/patch-sandbox_linux_services_libc__interceptor.cc @@ -0,0 +1,21 @@ +--- sandbox/linux/services/libc_interceptor.cc.orig 2022-05-19 03:45:39 UTC ++++ sandbox/linux/services/libc_interceptor.cc +@@ -11,7 +11,9 @@ + #include <stddef.h> + #include <stdint.h> + #include <string.h> ++#if !defined(OS_BSD) + #include <sys/prctl.h> ++#endif + #include <sys/socket.h> + #include <sys/types.h> + #include <time.h> +@@ -94,7 +96,7 @@ bool ReadTimeStruct(base::PickleIterator* iter, + } else { + base::AutoLock lock(g_timezones_lock.Get()); + auto ret_pair = g_timezones.Get().insert(timezone); +- output->tm_zone = ret_pair.first->c_str(); ++ output->tm_zone = (char *)ret_pair.first->c_str(); + } + + return true; diff --git a/devel/electron18/files/patch-sandbox_policy_BUILD.gn b/devel/electron18/files/patch-sandbox_policy_BUILD.gn new file mode 100644 index 000000000000..895c8e65c3f0 --- /dev/null +++ b/devel/electron18/files/patch-sandbox_policy_BUILD.gn @@ -0,0 +1,39 @@ +--- sandbox/policy/BUILD.gn.orig 2022-05-11 07:16:54 UTC ++++ sandbox/policy/BUILD.gn +@@ -35,7 +35,7 @@ component("policy") { + "//sandbox/policy/mojom", + ] + public_deps = [] +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "linux/bpf_audio_policy_linux.cc", + "linux/bpf_audio_policy_linux.h", +@@ -88,6 +88,27 @@ component("policy") { + "//sandbox/linux:sandbox_services", + "//sandbox/linux:seccomp_bpf", + "//sandbox/linux:suid_sandbox_client", ++ ] ++ } ++ if (is_openbsd) { ++ sources += [ ++ "openbsd/sandbox_openbsd.cc", ++ "openbsd/sandbox_openbsd.h", ++ ] ++ deps += [ ++ "//sandbox:sandbox_buildflags", ++ "//ui/gfx/x", ++ ] ++ libs = [ "util" ] ++ } ++ if (is_freebsd) { ++ sources += [ ++ "freebsd/sandbox_freebsd.cc", ++ "freebsd/sandbox_freebsd.h", ++ ] ++ deps += [ ++ "//sandbox:sandbox_buildflags", ++ "//ui/gfx/x", + ] + } + if (is_chromeos_ash) { diff --git a/devel/electron18/files/patch-sandbox_policy_features.cc b/devel/electron18/files/patch-sandbox_policy_features.cc new file mode 100644 index 000000000000..09892a31a135 --- /dev/null +++ b/devel/electron18/files/patch-sandbox_policy_features.cc @@ -0,0 +1,14 @@ +--- sandbox/policy/features.cc.orig 2022-05-19 05:17:45 UTC ++++ sandbox/policy/features.cc +@@ -16,7 +16,11 @@ namespace features { + // Enables network service sandbox. + // (Only causes an effect when feature kNetworkService is enabled.) + const base::Feature kNetworkServiceSandbox{"NetworkServiceSandbox", ++#if BUILDFLAG(IS_BSD) ++ base::FEATURE_ENABLED_BY_DEFAULT}; ++#else + base::FEATURE_DISABLED_BY_DEFAULT}; ++#endif + #endif // !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_FUCHSIA) + + #if BUILDFLAG(IS_WIN) diff --git a/devel/electron18/files/patch-sandbox_policy_freebsd_sandbox__freebsd.cc b/devel/electron18/files/patch-sandbox_policy_freebsd_sandbox__freebsd.cc new file mode 100644 index 000000000000..5c1ae1d21fa0 --- /dev/null +++ b/devel/electron18/files/patch-sandbox_policy_freebsd_sandbox__freebsd.cc @@ -0,0 +1,250 @@ +--- sandbox/policy/freebsd/sandbox_freebsd.cc.orig 2022-05-13 07:20:05 UTC ++++ sandbox/policy/freebsd/sandbox_freebsd.cc +@@ -0,0 +1,247 @@ ++// Copyright (c) 2012 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. ++ ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++ ++#include <dirent.h> ++#include <fcntl.h> ++#include <stdint.h> ++#include <sys/resource.h> ++#include <sys/stat.h> ++#include <sys/time.h> ++#include <sys/types.h> ++#include <unistd.h> ++ ++#include <limits> ++#include <memory> ++#include <string> ++#include <vector> ++ ++#include "base/bind.h" ++#include "base/callback_helpers.h" ++#include "base/command_line.h" ++#include "base/debug/stack_trace.h" ++#include "base/feature_list.h" ++#include "base/files/file_path.h" ++#include "base/files/file_util.h" ++#include "base/files/scoped_file.h" ++#include "base/logging.h" ++#include "base/memory/singleton.h" ++#include "base/path_service.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/strings/string_number_conversions.h" ++#include "base/system/sys_info.h" ++#include "base/time/time.h" ++#include "build/build_config.h" ++#include "sandbox/constants.h" ++#include "sandbox/linux/services/credentials.h" ++#include "sandbox/linux/services/namespace_sandbox.h" ++#include "sandbox/linux/services/proc_util.h" ++#include "sandbox/linux/services/resource_limits.h" ++#include "sandbox/linux/services/thread_helpers.h" ++#include "sandbox/linux/syscall_broker/broker_command.h" ++#include "sandbox/linux/syscall_broker/broker_process.h" ++#include "sandbox/policy/sandbox.h" ++#include "sandbox/policy/sandbox_type.h" ++#include "sandbox/policy/mojom/sandbox.mojom.h" ++#include "sandbox/policy/switches.h" ++#include "sandbox/sandbox_buildflags.h" ++ ++#if BUILDFLAG(USING_SANITIZER) ++#include <sanitizer/common_interface_defs.h> ++#endif ++ ++#if defined(USE_NSS_CERTS) ++#include "crypto/nss_util.h" ++#endif ++ ++#include "ui/gfx/x/connection.h" ++#include "ui/gfx/font_util.h" ++ ++#include <X11/Xlib.h> ++ ++#define MAXTOKENS 3 ++ ++#define _UNVEIL_MAIN "/etc/chromium/unveil.main"; ++#define _UNVEIL_RENDERER "/etc/chromium/unveil.renderer"; ++#define _UNVEIL_GPU "/etc/chromium/unveil.gpu"; ++#define _UNVEIL_PLUGIN "/etc/chromium/unveil.plugin"; ++#define _UNVEIL_UTILITY "/etc/chromium/unveil.utility"; ++#define _UNVEIL_UTILITY_NETWORK "/etc/chromium/unveil.utility_network"; ++#define _UNVEIL_UTILITY_AUDIO "/etc/chromium/unveil.utility_audio"; ++#define _UNVEIL_UTILITY_VIDEO "/etc/chromium/unveil.utility_video"; ++ ++namespace sandbox { ++namespace policy { ++ ++SandboxLinux::SandboxLinux() ++ : sandbox_status_flags_(kInvalid), ++ pre_initialized_(false), ++ initialize_sandbox_ran_(false), ++ broker_process_(nullptr) { ++} ++ ++SandboxLinux::~SandboxLinux() { ++ if (pre_initialized_) { ++ CHECK(initialize_sandbox_ran_); ++ } ++} ++ ++SandboxLinux* SandboxLinux::GetInstance() { ++ SandboxLinux* instance = base::Singleton<SandboxLinux>::get(); ++ CHECK(instance); ++ return instance; ++} ++ ++void SandboxLinux::PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type) { ++ CHECK(!pre_initialized_); ++#if BUILDFLAG(USING_SANITIZER) ++ // Sanitizers need to open some resources before the sandbox is enabled. ++ // This should not fork, not launch threads, not open a directory. ++ __sanitizer_sandbox_on_notify(sanitizer_args()); ++ sanitizer_args_.reset(); ++#endif ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ const std::string process_type = ++ command_line->GetSwitchValueASCII(switches::kProcessType); ++ ++ base::SysInfo::AmountOfPhysicalMemory(); ++ base::SysInfo::NumberOfProcessors(); ++ ++#if defined(USE_NSS_CERTS) ++ // The main process has to initialize the ~/.pki dir which won't work ++ // after unveil(2). ++ if (process_type.empty()) ++ crypto::EnsureNSSInit(); ++#endif ++ ++ // cache the XErrorDB by forcing a read on it ++ { ++ auto* connection = x11::Connection::Get(); ++ auto* display = connection->GetXlibDisplay().display(); ++ ++ char buf[1]; ++ XGetErrorDatabaseText(display, "XProtoError", "0", "", buf, base::size(buf)); ++ } ++ ++ if (process_type.empty()) { ++ base::FilePath cache_directory, local_directory; ++ ++ base::PathService::Get(base::DIR_CACHE, &cache_directory); ++ base::PathService::Get(base::DIR_HOME, &local_directory); ++ ++ cache_directory = cache_directory.AppendASCII("chromium"); ++ local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications"); ++ ++ if (!base::CreateDirectory(cache_directory)) { ++ LOG(ERROR) << "Failed to create " << cache_directory.value() << " directory."; ++ } ++ ++ if (!base::CreateDirectory(local_directory)) { ++ LOG(ERROR) << "Failed to create " << local_directory.value() << " directory."; ++ } ++ } ++ ++ if (process_type == switches::kRendererProcess) ++ gfx::InitializeFonts(); ++ ++ pre_initialized_ = true; ++} ++ ++bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type, ++ SandboxLinux::PreSandboxHook hook, ++ const Options& options) { ++ DCHECK(!initialize_sandbox_ran_); ++ initialize_sandbox_ran_ = true; ++ ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ const std::string process_type = ++ command_line->GetSwitchValueASCII(switches::kProcessType); ++ ++ if (command_line->HasSwitch(switches::kNoSandbox)) ++ return true; ++ ++ VLOG(1) << "SandboxLinux::InitializeSandbox: process_type=" ++ << process_type << " sandbox_type=" << GetSandboxTypeInEnglish(sandbox_type); ++ ++ // Only one thread is running, pre-initialize if not already done. ++ if (!pre_initialized_) ++ PreinitializeSandbox(sandbox_type); ++ ++ // Attempt to limit the future size of the address space of the process. ++ int error = 0; ++ const bool limited_as = LimitAddressSpace(&error); ++ if (error) { ++ // Restore errno. Internally to |LimitAddressSpace|, the errno due to ++ // setrlimit may be lost. ++ errno = error; ++ PCHECK(limited_as); ++ } ++ ++ return true; ++} ++ ++bool SandboxLinux::LimitAddressSpace(int* error) { ++#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \ ++ !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER) ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ if (SandboxTypeFromCommandLine(*command_line) == sandbox::mojom::Sandbox::kNoSandbox) { ++ return false; ++ } ++ ++ // Unfortunately, it does not appear possible to set RLIMIT_AS such that it ++ // will both (a) be high enough to support V8's and WebAssembly's address ++ // space requirements while also (b) being low enough to mitigate exploits ++ // using integer overflows that require large allocations, heap spray, or ++ // other memory-hungry attack modes. ++ ++ *error = sandbox::ResourceLimits::Lower( ++ RLIMIT_DATA, static_cast<rlim_t>(sandbox::kDataSizeLimit)); ++ ++ // Cache the resource limit before turning on the sandbox. ++ base::SysInfo::AmountOfVirtualMemory(); ++ base::SysInfo::MaxSharedMemorySize(); ++ ++ return *error == 0; ++#else ++ base::SysInfo::AmountOfVirtualMemory(); ++ return false; ++#endif // !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && ++ // !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER) ++} ++ ++// static ++std::string SandboxLinux::GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type) { ++ switch (sandbox_type) { ++ case sandbox::mojom::Sandbox::kNoSandbox: ++ return "Unsandboxed"; ++ case sandbox::mojom::Sandbox::kRenderer: ++ return "Renderer"; ++ case sandbox::mojom::Sandbox::kUtility: ++ return "Utility"; ++ case sandbox::mojom::Sandbox::kGpu: ++ return "GPU"; ++ case sandbox::mojom::Sandbox::kPpapi: ++ return "PPAPI"; ++ case sandbox::mojom::Sandbox::kNetwork: ++ return "Network"; ++ case sandbox::mojom::Sandbox::kCdm: ++ return "CDM"; ++ case sandbox::mojom::Sandbox::kPrintCompositor: ++ return "Print Compositor"; ++ case sandbox::mojom::Sandbox::kAudio: ++ return "Audio"; ++ case sandbox::mojom::Sandbox::kSpeechRecognition: ++ return "Speech Recognition"; ++ case sandbox::mojom::Sandbox::kService: ++ return "Service"; ++ case sandbox::mojom::Sandbox::kVideoCapture: ++ return "Video Capture"; ++ default: ++ return "Unknown"; ++ } ++} ++ ++} // namespace policy ++} // namespace sandbox diff --git a/devel/electron18/files/patch-sandbox_policy_freebsd_sandbox__freebsd.h b/devel/electron18/files/patch-sandbox_policy_freebsd_sandbox__freebsd.h new file mode 100644 index 000000000000..e70aa0344687 --- /dev/null +++ b/devel/electron18/files/patch-sandbox_policy_freebsd_sandbox__freebsd.h @@ -0,0 +1,281 @@ +--- sandbox/policy/freebsd/sandbox_freebsd.h.orig 2022-05-13 07:20:05 UTC ++++ sandbox/policy/freebsd/sandbox_freebsd.h +@@ -0,0 +1,278 @@ ++// Copyright (c) 2012 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. ++#ifndef SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_ ++#define SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_ ++ ++#include <memory> ++#include <string> ++#include <vector> ++ ++#include "base/logging.h" ++#include "base/posix/global_descriptors.h" ++#include "sandbox/policy/export.h" ++#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h" ++#include "sandbox/policy/mojom/sandbox.mojom.h" ++#include "sandbox/policy/sanitizer_buildflags.h" ++ ++#if BUILDFLAG(USING_SANITIZER) ++#include <sanitizer/common_interface_defs.h> ++#endif ++ ++namespace base { ++template <typename T> ++struct DefaultSingletonTraits; ++class Thread; ++} // namespace base ++ ++namespace sandbox { ++namespace syscall_broker { ++class BrokerProcess; ++} // namespace syscall_broker ++} // namespace sandbox ++ ++namespace sandbox { ++namespace policy { ++ ++// A singleton class to represent and change our sandboxing state for the ++// three main Linux sandboxes. ++// The sandboxing model allows using two layers of sandboxing. The first layer ++// can be implemented either with unprivileged namespaces or with the setuid ++// sandbox. This class provides a way to engage the namespace sandbox, but does ++// not deal with the legacy setuid sandbox directly. ++// The second layer is mainly based on seccomp-bpf and is engaged with ++// InitializeSandbox(). InitializeSandbox() is also responsible for "sealing" ++// the first layer of sandboxing. That is, InitializeSandbox must always be ++// called to have any meaningful sandboxing at all. ++class SANDBOX_POLICY_EXPORT SandboxLinux { ++ public: ++ // This is a list of sandbox IPC methods which the renderer may send to the ++ // sandbox host. See ++ // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandbox_ipc.md ++ // This isn't the full list, values < 32 are reserved for methods called from ++ // Skia, and values < 64 are reserved for libc_interceptor.cc. ++ enum LinuxSandboxIPCMethods { ++ DEPRECATED_METHOD_GET_FALLBACK_FONT_FOR_CHAR = 64, ++ DEPRECATED_METHOD_GET_CHILD_WITH_INODE, ++ DEPRECATED_METHOD_GET_STYLE_FOR_STRIKE, ++ METHOD_MAKE_SHARED_MEMORY_SEGMENT, ++ DEPRECATED_METHOD_MATCH_WITH_FALLBACK, ++ }; ++ ++ // These form a bitmask which describes the conditions of the Linux sandbox. ++ // Note: this doesn't strictly give you the current status, it states ++ // what will be enabled when the relevant processes are initialized. ++ enum Status { ++ // SUID sandbox active. ++ kSUID = 1 << 0, ++ ++ // Sandbox is using a new PID namespace. ++ kPIDNS = 1 << 1, ++ ++ // Sandbox is using a new network namespace. ++ kNetNS = 1 << 2, ++ ++ // seccomp-bpf sandbox active. ++ kSeccompBPF = 1 << 3, ++ ++ // The Yama LSM module is present and enforcing. ++ kYama = 1 << 4, ++ ++ // seccomp-bpf sandbox is active and the kernel supports TSYNC. ++ kSeccompTSYNC = 1 << 5, ++ ++ // User namespace sandbox active. ++ kUserNS = 1 << 6, ++ ++ // A flag that denotes an invalid sandbox status. ++ kInvalid = 1 << 31, ++ }; ++ ++ // SandboxLinux Options are a superset of SandboxSecompBPF Options. ++ struct Options : public SandboxSeccompBPF::Options { ++ // When running with a zygote, the namespace sandbox will have already ++ // been engaged prior to initializing SandboxLinux itself, and need not ++ // be done so again. Set to true to indicate that there isn't a zygote ++ // for this process and the step is to be performed here explicitly. ++ bool engage_namespace_sandbox = false; ++ ++ // Allow starting the sandbox with multiple threads already running. This ++ // will enable TSYNC for seccomp-BPF, which syncs the seccomp-BPF policy ++ // across all running threads. ++ bool allow_threads_during_sandbox_init = false; ++ ++ // Enables the CHECK for open directories. The open directory check is only ++ // useful for the chroot jail (from the semantic layer of the sandbox), and ++ // can safely be disabled if we are only enabling the seccomp-BPF layer. ++ bool check_for_open_directories = true; ++ }; ++ ++ // Callers can provide this hook to run code right before the policy ++ // is passed to the BPF compiler and the sandbox is engaged. If ++ // pre_sandbox_hook() returns true, the sandbox will be engaged ++ // afterwards, otherwise the process is terminated. ++ using PreSandboxHook = base::OnceCallback<bool(Options)>; ++ ++ // Get our singleton instance. ++ static SandboxLinux* GetInstance(); ++ ++ SandboxLinux(const SandboxLinux&) = delete; ++ SandboxLinux& operator=(const SandboxLinux&) = delete; ++ ++ bool SetPledge(const char *pstring, const char *ppath); ++ bool SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type); ++ ++ // Do some initialization that can only be done before any of the sandboxes ++ // are enabled. If using the setuid sandbox, this should be called manually ++ // before the setuid sandbox is engaged. ++ // Security: When this runs, it is imperative that either InitializeSandbox() ++ // runs as well or that all file descriptors returned in ++ // GetFileDescriptorsToClose() get closed. ++ // Otherwise file descriptors that bypass the security of the setuid sandbox ++ // would be kept open. One must be particularly careful if a process performs ++ // a fork(). ++ void PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type); ++ ++ // Check that the current process is the init process of a new PID ++ // namespace and then proceed to drop access to the file system by using ++ // a new unprivileged namespace. This is a layer-1 sandbox. ++ // In order for this sandbox to be effective, it must be "sealed" by calling ++ // InitializeSandbox(). ++ void EngageNamespaceSandbox(bool from_zygote); ++ ++ // Return a list of file descriptors to close if PreinitializeSandbox() ran ++ // but InitializeSandbox() won't. Avoid using. ++ // TODO(jln): get rid of this hack. ++ std::vector<int> GetFileDescriptorsToClose(); ++ ++ // Seal an eventual layer-1 sandbox and initialize the layer-2 sandbox with ++ // an adequate policy depending on the process type and command line ++ // arguments. ++ // Currently the layer-2 sandbox is composed of seccomp-bpf and address space ++ // limitations. ++ // This function should only be called without any thread running. ++ bool InitializeSandbox(sandbox::mojom::Sandbox sandbox_type, ++ PreSandboxHook hook, ++ const Options& options); ++ ++ // Stop |thread| in a way that can be trusted by the sandbox. ++ void StopThread(base::Thread* thread); ++ ++ // Returns the status of the renderer, worker and ppapi sandbox. Can only ++ // be queried after going through PreinitializeSandbox(). This is a bitmask ++ // and uses the constants defined in "enum Status" above. Since the ++ // status needs to be provided before the sandboxes are actually started, ++ // this returns what will actually happen once InitializeSandbox() ++ // is called from inside these processes. ++ int GetStatus(); ++ ++ static std::string GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type); ++ ++ // Returns true if the current process is single-threaded or if the number ++ // of threads cannot be determined. ++ bool IsSingleThreaded() const; ++ ++ // Returns true if we started Seccomp BPF. ++ bool seccomp_bpf_started() const; ++ ++ // Check the policy and eventually start the seccomp-bpf sandbox. This should ++ // never be called with threads started. If we detect that threads have ++ // started we will crash. ++ bool StartSeccompBPF(sandbox::mojom::Sandbox sandbox_type, ++ PreSandboxHook hook, ++ const Options& options); ++ ++ // Limit the address space of the current process (and its children) to make ++ // some vulnerabilities harder to exploit. Writes the errno due to setrlimit ++ // (including 0 if no error) into |error|. ++ bool LimitAddressSpace(int* error); ++ ++ // Returns a file descriptor to proc. The file descriptor is no longer valid ++ // after the sandbox has been sealed. ++ int proc_fd() const { ++ DCHECK_NE(-1, proc_fd_); ++ return proc_fd_; ++ } ++ ++#if BUILDFLAG(USING_SANITIZER) ++ __sanitizer_sandbox_arguments* sanitizer_args() const { ++ return sanitizer_args_.get(); ++ }; ++#endif ++ ++ // A BrokerProcess is a helper that is started before the sandbox is engaged, ++ // typically from a pre-sandbox hook, that will serve requests to access ++ // files over an IPC channel. The client of this runs from a SIGSYS handler ++ // triggered by the seccomp-bpf sandbox. ++ // |client_sandbox_policy| is the policy being run by the client, and is ++ // used to derive the equivalent broker-side policy. ++ // |broker_side_hook| is an alternate pre-sandbox hook to be run before the ++ // broker itself gets sandboxed, to which the broker side policy and ++ // |options| are passed. ++ // Crashes the process if the broker can not be started since continuation ++ // is impossible (and presumably unsafe). ++ // This should never be destroyed, as after the sandbox is started it is ++ // vital to the process. ++#if 0 ++ void StartBrokerProcess( ++ const sandbox::syscall_broker::BrokerCommandSet& allowed_command_set, ++ std::vector<sandbox::syscall_broker::BrokerFilePermission> permissions, ++ PreSandboxHook broker_side_hook, ++ const Options& options); ++ ++ sandbox::syscall_broker::BrokerProcess* broker_process() const { ++ return broker_process_; ++ } ++#endif ++ ++ private: ++ friend struct base::DefaultSingletonTraits<SandboxLinux>; ++ ++ SandboxLinux(); ++ ~SandboxLinux(); ++ ++ // We must have been pre_initialized_ before using these. ++ bool seccomp_bpf_supported() const; ++ bool seccomp_bpf_with_tsync_supported() const; ++ ++ // Returns true if it can be determined that the current process has open ++ // directories that are not managed by the SandboxLinux class. This would ++ // be a vulnerability as it would allow to bypass the setuid sandbox. ++ bool HasOpenDirectories() const; ++ ++ // The last part of the initialization is to make sure any temporary "hole" ++ // in the sandbox is closed. For now, this consists of closing proc_fd_. ++ void SealSandbox(); ++ ++ // GetStatus() makes promises as to how the sandbox will behave. This ++ // checks that no promises have been broken. ++ void CheckForBrokenPromises(sandbox::mojom::Sandbox sandbox_type); ++ ++ // Stop |thread| and make sure it does not appear in /proc/self/tasks/ ++ // anymore. ++ void StopThreadAndEnsureNotCounted(base::Thread* thread) const; ++ ++ // A file descriptor to /proc. It's dangerous to have it around as it could ++ // allow for sandbox bypasses. It needs to be closed before we consider ++ // ourselves sandboxed. ++ int proc_fd_; ++ ++ bool seccomp_bpf_started_; ++ // The value returned by GetStatus(). Gets computed once and then cached. ++ int sandbox_status_flags_; ++ // Did PreinitializeSandbox() run? ++ bool pre_initialized_; ++ bool seccomp_bpf_supported_; // Accurate if pre_initialized_. ++ bool seccomp_bpf_with_tsync_supported_; // Accurate if pre_initialized_. ++ bool yama_is_enforcing_; // Accurate if pre_initialized_. ++ bool initialize_sandbox_ran_; // InitializeSandbox() was called. ++#if BUILDFLAG(USING_SANITIZER) ++ std::unique_ptr<__sanitizer_sandbox_arguments> sanitizer_args_; ++#endif ++ sandbox::syscall_broker::BrokerProcess* broker_process_; // Leaked as global. ++}; ++ ++} // namespace policy ++} // namespace sandbox ++ ++#endif // SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_ diff --git a/devel/electron18/files/patch-sandbox_policy_mojom_sandbox.mojom b/devel/electron18/files/patch-sandbox_policy_mojom_sandbox.mojom new file mode 100644 index 000000000000..b6c009f3cdf0 --- /dev/null +++ b/devel/electron18/files/patch-sandbox_policy_mojom_sandbox.mojom @@ -0,0 +1,15 @@ +--- sandbox/policy/mojom/sandbox.mojom.orig 2022-05-19 05:17:45 UTC ++++ sandbox/policy/mojom/sandbox.mojom +@@ -68,6 +68,12 @@ enum Sandbox { + [EnableIf=is_fuchsia] + kVideoCapture, + ++ [EnableIf=is_openbsd] ++ kVideoCapture, ++ ++ [EnableIf=is_freebsd] ++ kVideoCapture, ++ + // Allows access to file contents and Windows APIs for parsing icons from PE + // files. + [EnableIf=is_win] diff --git a/devel/electron18/files/patch-sandbox_policy_openbsd_sandbox__openbsd.cc b/devel/electron18/files/patch-sandbox_policy_openbsd_sandbox__openbsd.cc new file mode 100644 index 000000000000..f45b0cdf89ad --- /dev/null +++ b/devel/electron18/files/patch-sandbox_policy_openbsd_sandbox__openbsd.cc @@ -0,0 +1,410 @@ +--- sandbox/policy/openbsd/sandbox_openbsd.cc.orig 2022-05-20 04:31:06 UTC ++++ sandbox/policy/openbsd/sandbox_openbsd.cc +@@ -0,0 +1,407 @@ ++// Copyright (c) 2012 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. ++ ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++ ++#include <dirent.h> ++#include <fcntl.h> ++#include <stdint.h> ++#include <sys/resource.h> ++#include <sys/stat.h> ++#include <sys/time.h> ++#include <sys/types.h> ++#include <unistd.h> ++#include <util.h> ++ ++#include <limits> ++#include <memory> ++#include <string> ++#include <vector> ++ ++#include "base/bind.h" ++#include "base/callback_helpers.h" ++#include "base/command_line.h" ++#include "base/debug/stack_trace.h" ++#include "base/feature_list.h" ++#include "base/files/file_path.h" ++#include "base/files/file_util.h" ++#include "base/files/scoped_file.h" ++#include "base/logging.h" ++#include "base/memory/singleton.h" ++#include "base/path_service.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/strings/string_number_conversions.h" ++#include "base/system/sys_info.h" ++#include "base/time/time.h" ++#include "build/build_config.h" ++#include "sandbox/constants.h" ++#include "sandbox/linux/services/credentials.h" ++#include "sandbox/linux/services/namespace_sandbox.h" ++#include "sandbox/linux/services/proc_util.h" ++#include "sandbox/linux/services/resource_limits.h" ++#include "sandbox/linux/services/thread_helpers.h" ++#include "sandbox/linux/syscall_broker/broker_command.h" ++#include "sandbox/linux/syscall_broker/broker_process.h" ++#include "sandbox/policy/sandbox.h" ++#include "sandbox/policy/sandbox_type.h" ++#include "sandbox/policy/mojom/sandbox.mojom.h" ++#include "sandbox/policy/switches.h" ++#include "sandbox/sandbox_buildflags.h" ++ ++#if BUILDFLAG(USING_SANITIZER) ++#include <sanitizer/common_interface_defs.h> ++#endif ++ ++#if defined(USE_NSS_CERTS) ++#include "crypto/nss_util.h" ++#endif ++ ++#include "third_party/boringssl/src/include/openssl/crypto.h" ++ ++#include "ui/gfx/x/connection.h" ++#include "ui/gfx/font_util.h" ++ ++#include <X11/Xlib.h> ++ ++#define MAXTOKENS 3 ++ ++#define _UNVEIL_MAIN "/etc/chromium/unveil.main"; ++#define _UNVEIL_RENDERER "/etc/chromium/unveil.renderer"; ++#define _UNVEIL_GPU "/etc/chromium/unveil.gpu"; ++#define _UNVEIL_PLUGIN "/etc/chromium/unveil.plugin"; ++#define _UNVEIL_UTILITY "/etc/chromium/unveil.utility"; ++#define _UNVEIL_UTILITY_NETWORK "/etc/chromium/unveil.utility_network"; ++#define _UNVEIL_UTILITY_AUDIO "/etc/chromium/unveil.utility_audio"; ++#define _UNVEIL_UTILITY_VIDEO "/etc/chromium/unveil.utility_video"; ++ ++namespace sandbox { ++namespace policy { ++ ++SandboxLinux::SandboxLinux() ++ : unveil_initialized_(false), ++ sandbox_status_flags_(kInvalid), ++ pre_initialized_(false), ++ initialize_sandbox_ran_(false), ++ broker_process_(nullptr) { ++} ++ ++SandboxLinux::~SandboxLinux() { ++ if (pre_initialized_) { ++ CHECK(initialize_sandbox_ran_); ++ } ++} ++ ++SandboxLinux* SandboxLinux::GetInstance() { ++ SandboxLinux* instance = base::Singleton<SandboxLinux>::get(); ++ CHECK(instance); ++ return instance; ++} ++ ++void SandboxLinux::PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type) { ++ CHECK(!pre_initialized_); ++#if BUILDFLAG(USING_SANITIZER) ++ // Sanitizers need to open some resources before the sandbox is enabled. ++ // This should not fork, not launch threads, not open a directory. ++ __sanitizer_sandbox_on_notify(sanitizer_args()); ++ sanitizer_args_.reset(); ++#endif ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ const std::string process_type = ++ command_line->GetSwitchValueASCII(switches::kProcessType); ++ ++ base::SysInfo::AmountOfPhysicalMemory(); ++ base::SysInfo::NumberOfProcessors(); ++ base::SysInfo::CPUModelName(); ++ ++#if defined(USE_NSS_CERTS) ++ // The main process has to initialize the ~/.pki dir which won't work ++ // after unveil(2). ++ if (process_type.empty()) ++ crypto::EnsureNSSInit(); ++#endif ++ ++ if (process_type.empty()) ++ CRYPTO_pre_sandbox_init(); ++ ++ // cache the XErrorDB by forcing a read on it ++ { ++ auto* connection = x11::Connection::Get(); ++ auto* display = connection->GetXlibDisplay().display(); ++ ++ char buf[1]; ++ XGetErrorDatabaseText(display, "XProtoError", "0", "", buf, base::size(buf)); ++ } ++ ++ if (process_type.empty()) { ++ base::FilePath cache_directory, local_directory; ++ ++ base::PathService::Get(base::DIR_CACHE, &cache_directory); ++ base::PathService::Get(base::DIR_HOME, &local_directory); ++ ++ cache_directory = cache_directory.AppendASCII("chromium"); ++ local_directory = local_directory.AppendASCII(".local").AppendASCII("share").AppendASCII("applications"); ++ ++ if (!base::CreateDirectory(cache_directory)) { ++ LOG(ERROR) << "Failed to create " << cache_directory.value() << " directory."; ++ } ++ ++ if (!base::CreateDirectory(local_directory)) { ++ LOG(ERROR) << "Failed to create " << local_directory.value() << " directory."; ++ } ++ } ++ ++ if (process_type == switches::kRendererProcess) ++ gfx::InitializeFonts(); ++ ++ if (!command_line->HasSwitch(switches::kDisableUnveil)) ++ SetUnveil(process_type, sandbox_type); ++ ++ pre_initialized_ = true; ++} ++ ++bool SandboxLinux::SetPledge(const char *pstring, const char *ppath) { ++ FILE *fp; ++ char *s = NULL; ++ size_t len = 0; ++ ssize_t read; ++ ++ if (pstring != NULL) { ++ if (pledge(pstring, NULL) == -1) ++ goto err; ++ } else if (ppath != NULL) { ++ fp = fopen(ppath, "r"); ++ if (fp != NULL) { ++ while ((read = getline(&s, &len, fp)) != -1 ) { ++ if (s[strlen(s)-1] == '\n') ++ s[strlen(s)-1] = '\0'; ++ if (pledge(s, NULL) == -1) ++ goto err; ++ } ++ fclose(fp); ++ } else { ++ LOG(ERROR) << "fopen() failed, errno: " << errno; ++ return false; ++ } ++ } ++ return true; ++err: ++ LOG(ERROR) << "pledge() failed, errno: " << errno; ++ return false; ++} ++ ++bool SandboxLinux::SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type) { ++ FILE *fp; ++ char *s = NULL, *cp = NULL, *home = NULL, **ap, *tokens[MAXTOKENS]; ++ char path[PATH_MAX]; ++ const char *ufile; ++ size_t len = 0, lineno = 0; ++ ++ if (process_type.empty()) { ++ ufile = _UNVEIL_MAIN; ++ } else if (process_type == switches::kRendererProcess) { ++ ufile = _UNVEIL_RENDERER; ++ } else if (process_type == switches::kGpuProcess) { ++ ufile = _UNVEIL_GPU; ++ } else if (process_type == switches::kPpapiPluginProcess) { ++ ufile = _UNVEIL_PLUGIN; ++ } else if (process_type == switches::kUtilityProcess) { ++ if (sandbox_type == sandbox::mojom::Sandbox::kNetwork) { ++ ufile = _UNVEIL_UTILITY_NETWORK; ++ } else if (sandbox_type == sandbox::mojom::Sandbox::kAudio) { ++ ufile = _UNVEIL_UTILITY_AUDIO; ++ } else if (sandbox_type == sandbox::mojom::Sandbox::kVideoCapture) { ++ ufile = _UNVEIL_UTILITY_VIDEO; ++ } else { ++ ufile = _UNVEIL_UTILITY; ++ } ++ } ++ ++ fp = fopen(ufile, "r"); ++ if (fp != NULL) { ++ while (!feof(fp)) { ++ if ((s = fparseln(fp, &len, &lineno, NULL, ++ FPARSELN_UNESCCOMM | FPARSELN_UNESCCONT)) == NULL) { ++ if (ferror(fp)) { ++ LOG(ERROR) << "ferror(), errno: " << errno; ++ _exit(1); ++ } else { ++ continue; ++ } ++ } ++ cp = s; ++ cp += strspn(cp, " \t\n"); /* eat whitespace */ ++ if (cp[0] == '\0') ++ continue; ++ ++ for (ap = tokens; ap < &tokens[MAXTOKENS - 1] && ++ (*ap = strsep(&cp, " \t")) != NULL;) { ++ if (**ap != '\0') ++ ap++; ++ } ++ *ap = NULL; ++ ++ if (tokens[1] == NULL) { ++ LOG(ERROR) << ufile << ": line " << lineno << ": must supply value to " << s; ++ _exit(1); ++ } ++ ++ if (tokens[0][0] == '~') { ++ if ((home = getenv("HOME")) == NULL || *home == '\0') { ++ LOG(ERROR) << "failed to get home"; ++ _exit(1); ++ } ++ memmove(tokens[0], tokens[0] + 1, strlen(tokens[0])); ++ strncpy(path, home, sizeof(path) - 1); ++ path[sizeof(path) - 1] = '\0'; ++ strncat(path, tokens[0], sizeof(path) - 1 - strlen(path)); ++ } else { ++ strncpy(path, tokens[0], sizeof(path) - 1); ++ path[sizeof(path) - 1] = '\0'; ++ } ++ ++ if (unveil(path, tokens[1]) == -1) { ++ LOG(ERROR) << "failed unveiling " << path << " with permissions " << tokens[1]; ++ _exit(1); ++ } else { ++ VLOG(1) << "unveiling " << path << " with permissions " << tokens[1]; ++ } ++ } ++ fclose(fp); ++ } else { ++ LOG(ERROR) << "failed to open " << ufile << " errno: " << errno; ++ _exit(1); ++ } ++ ++ unveil_initialized_ = true; ++ ++ return true; ++} ++ ++bool SandboxLinux::unveil_initialized() const { ++ return unveil_initialized_; ++} ++ ++bool SandboxLinux::InitializeSandbox(sandbox::mojom::Sandbox sandbox_type, ++ SandboxLinux::PreSandboxHook hook, ++ const Options& options) { ++ DCHECK(!initialize_sandbox_ran_); ++ initialize_sandbox_ran_ = true; ++ ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ const std::string process_type = ++ command_line->GetSwitchValueASCII(switches::kProcessType); ++ ++ if (command_line->HasSwitch(switches::kNoSandbox)) ++ return true; ++ ++ VLOG(1) << "SandboxLinux::InitializeSandbox: process_type=" ++ << process_type << " sandbox_type=" << GetSandboxTypeInEnglish(sandbox_type); ++ ++ // Only one thread is running, pre-initialize if not already done. ++ if (!pre_initialized_) ++ PreinitializeSandbox(sandbox_type); ++ ++ // Attempt to limit the future size of the address space of the process. ++ int error = 0; ++ const bool limited_as = LimitAddressSpace(&error); ++ if (error) { ++ // Restore errno. Internally to |LimitAddressSpace|, the errno due to ++ // setrlimit may be lost. ++ errno = error; ++ PCHECK(limited_as); ++ } ++ ++ if (process_type.empty()) { ++ // XXX use a file for listing pledges of the main process for now ++ // XXX not having the file is not a fatal error ++ SetPledge(NULL, "/etc/chromium/pledge.main"); ++ } else if (process_type == switches::kRendererProcess) { ++ // prot_exec needed by v8 ++ // flock needed by sqlite3 locking ++ SetPledge("stdio rpath flock prot_exec recvfd sendfd ps", NULL); ++ } else if (process_type == switches::kGpuProcess) { ++ SetPledge("stdio rpath cpath wpath getpw drm prot_exec recvfd sendfd tmppath", NULL); ++ } else if (process_type == switches::kPpapiPluginProcess) { ++ // prot_exec needed by v8 ++ SetPledge("stdio rpath prot_exec recvfd sendfd", NULL); ++ } else if (process_type == switches::kUtilityProcess) { ++ if (sandbox_type == sandbox::mojom::Sandbox::kAudio) ++ SetPledge(NULL, "/etc/chromium/pledge.utility_audio"); ++ else if (sandbox_type == sandbox::mojom::Sandbox::kNetwork) ++ SetPledge(NULL, "/etc/chromium/pledge.utility_network"); ++ else if (sandbox_type == sandbox::mojom::Sandbox::kVideoCapture) ++ SetPledge(NULL, "/etc/chromium/pledge.utility_video"); ++ else ++ SetPledge("stdio rpath cpath wpath fattr flock sendfd recvfd prot_exec", NULL); ++ } else { ++ LOG(ERROR) << "non-pledge()'d process: " << process_type; ++ return false; ++ } ++ ++ return true; ++} ++ ++bool SandboxLinux::LimitAddressSpace(int* error) { ++#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \ ++ !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER) ++ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); ++ if (SandboxTypeFromCommandLine(*command_line) == sandbox::mojom::Sandbox::kNoSandbox) { ++ return false; ++ } ++ ++ // Unfortunately, it does not appear possible to set RLIMIT_AS such that it ++ // will both (a) be high enough to support V8's and WebAssembly's address ++ // space requirements while also (b) being low enough to mitigate exploits ++ // using integer overflows that require large allocations, heap spray, or ++ // other memory-hungry attack modes. ++ ++ *error = sandbox::ResourceLimits::Lower( ++ RLIMIT_DATA, static_cast<rlim_t>(sandbox::kDataSizeLimit)); ++ ++ // Cache the resource limit before turning on the sandbox. ++ base::SysInfo::AmountOfVirtualMemory(); ++ base::SysInfo::MaxSharedMemorySize(); ++ ++ return *error == 0; ++#else ++ base::SysInfo::AmountOfVirtualMemory(); ++ return false; ++#endif // !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && ++ // !defined(THREAD_SANITIZER) && !defined(LEAK_SANITIZER) ++} ++ ++// static ++std::string SandboxLinux::GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type) { ++ switch (sandbox_type) { ++ case sandbox::mojom::Sandbox::kNoSandbox: ++ return "Unsandboxed"; ++ case sandbox::mojom::Sandbox::kRenderer: ++ return "Renderer"; ++ case sandbox::mojom::Sandbox::kUtility: ++ return "Utility"; ++ case sandbox::mojom::Sandbox::kGpu: ++ return "GPU"; ++ case sandbox::mojom::Sandbox::kPpapi: ++ return "PPAPI"; ++ case sandbox::mojom::Sandbox::kNetwork: ++ return "Network"; ++ case sandbox::mojom::Sandbox::kCdm: ++ return "CDM"; ++ case sandbox::mojom::Sandbox::kPrintCompositor: ++ return "Print Compositor"; ++ case sandbox::mojom::Sandbox::kAudio: ++ return "Audio"; ++ case sandbox::mojom::Sandbox::kSpeechRecognition: ++ return "Speech Recognition"; ++ case sandbox::mojom::Sandbox::kService: ++ return "Service"; ++ case sandbox::mojom::Sandbox::kVideoCapture: ++ return "Video Capture"; ++ default: ++ return "Unknown"; ++ } ++} ++ ++} // namespace policy ++} // namespace sandbox diff --git a/devel/electron18/files/patch-sandbox_policy_openbsd_sandbox__openbsd.h b/devel/electron18/files/patch-sandbox_policy_openbsd_sandbox__openbsd.h new file mode 100644 index 000000000000..8dd1da7a917b --- /dev/null +++ b/devel/electron18/files/patch-sandbox_policy_openbsd_sandbox__openbsd.h @@ -0,0 +1,285 @@ +--- sandbox/policy/openbsd/sandbox_openbsd.h.orig 2022-05-20 04:31:06 UTC ++++ sandbox/policy/openbsd/sandbox_openbsd.h +@@ -0,0 +1,282 @@ ++// Copyright (c) 2012 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. ++#ifndef SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_ ++#define SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_ ++ ++#include <memory> ++#include <string> ++#include <vector> ++ ++#include "base/logging.h" ++#include "base/posix/global_descriptors.h" ++#include "sandbox/policy/export.h" ++#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h" ++#include "sandbox/policy/mojom/sandbox.mojom.h" ++#include "sandbox/policy/sanitizer_buildflags.h" ++ ++#if BUILDFLAG(USING_SANITIZER) ++#include <sanitizer/common_interface_defs.h> ++#endif ++ ++namespace base { ++template <typename T> ++struct DefaultSingletonTraits; ++class Thread; ++} // namespace base ++ ++namespace sandbox { ++namespace syscall_broker { ++class BrokerProcess; ++} // namespace syscall_broker ++} // namespace sandbox ++ ++namespace sandbox { ++namespace policy { ++ ++// A singleton class to represent and change our sandboxing state for the ++// three main Linux sandboxes. ++// The sandboxing model allows using two layers of sandboxing. The first layer ++// can be implemented either with unprivileged namespaces or with the setuid ++// sandbox. This class provides a way to engage the namespace sandbox, but does ++// not deal with the legacy setuid sandbox directly. ++// The second layer is mainly based on seccomp-bpf and is engaged with ++// InitializeSandbox(). InitializeSandbox() is also responsible for "sealing" ++// the first layer of sandboxing. That is, InitializeSandbox must always be ++// called to have any meaningful sandboxing at all. ++class SANDBOX_POLICY_EXPORT SandboxLinux { ++ public: ++ // This is a list of sandbox IPC methods which the renderer may send to the ++ // sandbox host. See ++ // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandbox_ipc.md ++ // This isn't the full list, values < 32 are reserved for methods called from ++ // Skia, and values < 64 are reserved for libc_interceptor.cc. ++ enum LinuxSandboxIPCMethods { ++ DEPRECATED_METHOD_GET_FALLBACK_FONT_FOR_CHAR = 64, ++ DEPRECATED_METHOD_GET_CHILD_WITH_INODE, ++ DEPRECATED_METHOD_GET_STYLE_FOR_STRIKE, ++ METHOD_MAKE_SHARED_MEMORY_SEGMENT, ++ DEPRECATED_METHOD_MATCH_WITH_FALLBACK, ++ }; ++ ++ // These form a bitmask which describes the conditions of the Linux sandbox. ++ // Note: this doesn't strictly give you the current status, it states ++ // what will be enabled when the relevant processes are initialized. ++ enum Status { ++ // SUID sandbox active. ++ kSUID = 1 << 0, ++ ++ // Sandbox is using a new PID namespace. ++ kPIDNS = 1 << 1, ++ ++ // Sandbox is using a new network namespace. ++ kNetNS = 1 << 2, ++ ++ // seccomp-bpf sandbox active. ++ kSeccompBPF = 1 << 3, ++ ++ // The Yama LSM module is present and enforcing. ++ kYama = 1 << 4, ++ ++ // seccomp-bpf sandbox is active and the kernel supports TSYNC. ++ kSeccompTSYNC = 1 << 5, ++ ++ // User namespace sandbox active. ++ kUserNS = 1 << 6, ++ ++ // A flag that denotes an invalid sandbox status. ++ kInvalid = 1 << 31, ++ }; ++ ++ // SandboxLinux Options are a superset of SandboxSecompBPF Options. ++ struct Options : public SandboxSeccompBPF::Options { ++ // When running with a zygote, the namespace sandbox will have already ++ // been engaged prior to initializing SandboxLinux itself, and need not ++ // be done so again. Set to true to indicate that there isn't a zygote ++ // for this process and the step is to be performed here explicitly. ++ bool engage_namespace_sandbox = false; ++ ++ // Allow starting the sandbox with multiple threads already running. This ++ // will enable TSYNC for seccomp-BPF, which syncs the seccomp-BPF policy ++ // across all running threads. ++ bool allow_threads_during_sandbox_init = false; ++ ++ // Enables the CHECK for open directories. The open directory check is only ++ // useful for the chroot jail (from the semantic layer of the sandbox), and ++ // can safely be disabled if we are only enabling the seccomp-BPF layer. ++ bool check_for_open_directories = true; ++ }; ++ ++ // Callers can provide this hook to run code right before the policy ++ // is passed to the BPF compiler and the sandbox is engaged. If ++ // pre_sandbox_hook() returns true, the sandbox will be engaged ++ // afterwards, otherwise the process is terminated. ++ using PreSandboxHook = base::OnceCallback<bool(Options)>; ++ ++ // Get our singleton instance. ++ static SandboxLinux* GetInstance(); ++ ++ SandboxLinux(const SandboxLinux&) = delete; ++ SandboxLinux& operator=(const SandboxLinux&) = delete; ++ ++ bool SetPledge(const char *pstring, const char *ppath); ++ bool SetUnveil(const std::string process_type, sandbox::mojom::Sandbox sandbox_type); ++ ++ // Do some initialization that can only be done before any of the sandboxes ++ // are enabled. If using the setuid sandbox, this should be called manually ++ // before the setuid sandbox is engaged. ++ // Security: When this runs, it is imperative that either InitializeSandbox() ++ // runs as well or that all file descriptors returned in ++ // GetFileDescriptorsToClose() get closed. ++ // Otherwise file descriptors that bypass the security of the setuid sandbox ++ // would be kept open. One must be particularly careful if a process performs ++ // a fork(). ++ void PreinitializeSandbox(sandbox::mojom::Sandbox sandbox_type); ++ ++ // Check that the current process is the init process of a new PID ++ // namespace and then proceed to drop access to the file system by using ++ // a new unprivileged namespace. This is a layer-1 sandbox. ++ // In order for this sandbox to be effective, it must be "sealed" by calling ++ // InitializeSandbox(). ++ void EngageNamespaceSandbox(bool from_zygote); ++ ++ // Return a list of file descriptors to close if PreinitializeSandbox() ran ++ // but InitializeSandbox() won't. Avoid using. ++ // TODO(jln): get rid of this hack. ++ std::vector<int> GetFileDescriptorsToClose(); ++ ++ // Seal an eventual layer-1 sandbox and initialize the layer-2 sandbox with ++ // an adequate policy depending on the process type and command line ++ // arguments. ++ // Currently the layer-2 sandbox is composed of seccomp-bpf and address space ++ // limitations. ++ // This function should only be called without any thread running. ++ bool InitializeSandbox(sandbox::mojom::Sandbox sandbox_type, ++ PreSandboxHook hook, ++ const Options& options); ++ ++ // Stop |thread| in a way that can be trusted by the sandbox. ++ void StopThread(base::Thread* thread); ++ ++ // Returns the status of the renderer, worker and ppapi sandbox. Can only ++ // be queried after going through PreinitializeSandbox(). This is a bitmask ++ // and uses the constants defined in "enum Status" above. Since the ++ // status needs to be provided before the sandboxes are actually started, ++ // this returns what will actually happen once InitializeSandbox() ++ // is called from inside these processes. ++ int GetStatus(); ++ ++ static std::string GetSandboxTypeInEnglish(sandbox::mojom::Sandbox sandbox_type); ++ ++ // Returns true if the current process is single-threaded or if the number ++ // of threads cannot be determined. ++ bool IsSingleThreaded() const; ++ ++ // Returns true if we started Seccomp BPF. ++ bool seccomp_bpf_started() const; ++ ++ // Returns true if unveil(2) is used. ++ bool unveil_initialized() const; ++ ++ // Check the policy and eventually start the seccomp-bpf sandbox. This should ++ // never be called with threads started. If we detect that threads have ++ // started we will crash. ++ bool StartSeccompBPF(sandbox::mojom::Sandbox sandbox_type, ++ PreSandboxHook hook, ++ const Options& options); ++ ++ // Limit the address space of the current process (and its children) to make ++ // some vulnerabilities harder to exploit. Writes the errno due to setrlimit ++ // (including 0 if no error) into |error|. ++ bool LimitAddressSpace(int* error); ++ ++ // Returns a file descriptor to proc. The file descriptor is no longer valid ++ // after the sandbox has been sealed. ++ int proc_fd() const { ++ DCHECK_NE(-1, proc_fd_); ++ return proc_fd_; ++ } ++ ++#if BUILDFLAG(USING_SANITIZER) ++ __sanitizer_sandbox_arguments* sanitizer_args() const { ++ return sanitizer_args_.get(); ++ }; ++#endif ++ ++ // A BrokerProcess is a helper that is started before the sandbox is engaged, ++ // typically from a pre-sandbox hook, that will serve requests to access ++ // files over an IPC channel. The client of this runs from a SIGSYS handler ++ // triggered by the seccomp-bpf sandbox. ++ // |client_sandbox_policy| is the policy being run by the client, and is ++ // used to derive the equivalent broker-side policy. ++ // |broker_side_hook| is an alternate pre-sandbox hook to be run before the ++ // broker itself gets sandboxed, to which the broker side policy and ++ // |options| are passed. ++ // Crashes the process if the broker can not be started since continuation ++ // is impossible (and presumably unsafe). ++ // This should never be destroyed, as after the sandbox is started it is ++ // vital to the process. ++#if 0 ++ void StartBrokerProcess( ++ const sandbox::syscall_broker::BrokerCommandSet& allowed_command_set, ++ std::vector<sandbox::syscall_broker::BrokerFilePermission> permissions, ++ PreSandboxHook broker_side_hook, ++ const Options& options); ++ ++ sandbox::syscall_broker::BrokerProcess* broker_process() const { ++ return broker_process_; ++ } ++#endif ++ ++ private: ++ friend struct base::DefaultSingletonTraits<SandboxLinux>; ++ ++ SandboxLinux(); ++ ~SandboxLinux(); ++ ++ // We must have been pre_initialized_ before using these. ++ bool seccomp_bpf_supported() const; ++ bool seccomp_bpf_with_tsync_supported() const; ++ ++ // Returns true if it can be determined that the current process has open ++ // directories that are not managed by the SandboxLinux class. This would ++ // be a vulnerability as it would allow to bypass the setuid sandbox. ++ bool HasOpenDirectories() const; ++ ++ // The last part of the initialization is to make sure any temporary "hole" ++ // in the sandbox is closed. For now, this consists of closing proc_fd_. ++ void SealSandbox(); ++ ++ // GetStatus() makes promises as to how the sandbox will behave. This ++ // checks that no promises have been broken. ++ void CheckForBrokenPromises(sandbox::mojom::Sandbox sandbox_type); ++ ++ // Stop |thread| and make sure it does not appear in /proc/self/tasks/ ++ // anymore. ++ void StopThreadAndEnsureNotCounted(base::Thread* thread) const; ++ ++ // A file descriptor to /proc. It's dangerous to have it around as it could ++ // allow for sandbox bypasses. It needs to be closed before we consider ++ // ourselves sandboxed. ++ int proc_fd_; ++ ++ bool seccomp_bpf_started_; ++ bool unveil_initialized_; ++ // The value returned by GetStatus(). Gets computed once and then cached. ++ int sandbox_status_flags_; ++ // Did PreinitializeSandbox() run? ++ bool pre_initialized_; ++ bool seccomp_bpf_supported_; // Accurate if pre_initialized_. ++ bool seccomp_bpf_with_tsync_supported_; // Accurate if pre_initialized_. ++ bool yama_is_enforcing_; // Accurate if pre_initialized_. ++ bool initialize_sandbox_ran_; // InitializeSandbox() was called. ++#if BUILDFLAG(USING_SANITIZER) ++ std::unique_ptr<__sanitizer_sandbox_arguments> sanitizer_args_; ++#endif ++ sandbox::syscall_broker::BrokerProcess* broker_process_; // Leaked as global. ++}; ++ ++} // namespace policy ++} // namespace sandbox ++ ++#endif // SANDBOX_POLICY_LINUX_SANDBOX_OPENBSD_H_ diff --git a/devel/electron18/files/patch-sandbox_policy_sandbox.cc b/devel/electron18/files/patch-sandbox_policy_sandbox.cc new file mode 100644 index 000000000000..7dd54131fbbd --- /dev/null +++ b/devel/electron18/files/patch-sandbox_policy_sandbox.cc @@ -0,0 +1,22 @@ +--- sandbox/policy/sandbox.cc.orig 2022-05-19 05:17:45 UTC ++++ sandbox/policy/sandbox.cc +@@ -17,6 +17,10 @@ + #include "sandbox/policy/linux/sandbox_linux.h" + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++#endif // BUILDFLAG(IS_BSD) ++ + #if BUILDFLAG(IS_MAC) + #include "sandbox/mac/seatbelt.h" + #endif // BUILDFLAG(IS_MAC) +@@ -30,7 +34,7 @@ + namespace sandbox { + namespace policy { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool Sandbox::Initialize(sandbox::mojom::Sandbox sandbox_type, + SandboxLinux::PreSandboxHook hook, + const SandboxLinux::Options& options) { diff --git a/devel/electron18/files/patch-sandbox_policy_sandbox.h b/devel/electron18/files/patch-sandbox_policy_sandbox.h new file mode 100644 index 000000000000..7a88ca523ea5 --- /dev/null +++ b/devel/electron18/files/patch-sandbox_policy_sandbox.h @@ -0,0 +1,22 @@ +--- sandbox/policy/sandbox.h.orig 2022-05-19 03:45:39 UTC ++++ sandbox/policy/sandbox.h +@@ -12,6 +12,10 @@ + #include "sandbox/policy/linux/sandbox_linux.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++#endif ++ + namespace sandbox { + namespace mojom { + enum class Sandbox; +@@ -32,7 +36,7 @@ namespace policy { + + class SANDBOX_POLICY_EXPORT Sandbox { + public: +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static bool Initialize(sandbox::mojom::Sandbox sandbox_type, + SandboxLinux::PreSandboxHook hook, + const SandboxLinux::Options& options); diff --git a/devel/electron18/files/patch-sandbox_policy_sandbox__type.cc b/devel/electron18/files/patch-sandbox_policy_sandbox__type.cc new file mode 100644 index 000000000000..7598a06343e1 --- /dev/null +++ b/devel/electron18/files/patch-sandbox_policy_sandbox__type.cc @@ -0,0 +1,38 @@ +--- sandbox/policy/sandbox_type.cc.orig 2022-05-19 05:17:45 UTC ++++ sandbox/policy/sandbox_type.cc +@@ -39,7 +39,7 @@ bool IsUnsandboxedSandboxType(Sandbox sandbox_type) { + #endif + case Sandbox::kAudio: + return false; +-#if BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + case Sandbox::kVideoCapture: + return false; + #endif +@@ -122,7 +122,7 @@ void SetCommandLineFlagsForSandboxType(base::CommandLi + #endif + case Sandbox::kPrintCompositor: + case Sandbox::kAudio: +-#if BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + case Sandbox::kVideoCapture: + #endif + #if BUILDFLAG(IS_WIN) +@@ -247,7 +247,7 @@ std::string StringFromUtilitySandboxType(Sandbox sandb + return switches::kUtilitySandbox; + case Sandbox::kAudio: + return switches::kAudioSandbox; +-#if BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + case Sandbox::kVideoCapture: + return switches::kVideoCaptureSandbox; + #endif +@@ -355,7 +355,7 @@ sandbox::mojom::Sandbox UtilitySandboxTypeFromString( + return Sandbox::kAudio; + if (sandbox_string == switches::kSpeechRecognitionSandbox) + return Sandbox::kSpeechRecognition; +-#if BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + if (sandbox_string == switches::kVideoCaptureSandbox) + return Sandbox::kVideoCapture; + #endif diff --git a/devel/electron18/files/patch-sandbox_policy_switches.cc b/devel/electron18/files/patch-sandbox_policy_switches.cc new file mode 100644 index 000000000000..5fcde8279a48 --- /dev/null +++ b/devel/electron18/files/patch-sandbox_policy_switches.cc @@ -0,0 +1,13 @@ +--- sandbox/policy/switches.cc.orig 2022-05-19 05:17:45 UTC ++++ sandbox/policy/switches.cc +@@ -95,7 +95,9 @@ const char kGpuSandboxFailuresFatal[] = "gpu-sandbox-f + // Meant to be used as a browser-level switch for testing purposes only. + const char kNoSandbox[] = "no-sandbox"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++const char kDisableUnveil[] = "disable-unveil"; ++ ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Instructs the zygote to launch without a sandbox. Processes forked from this + // type of zygote will apply their own custom sandboxes later. + const char kNoZygoteSandbox[] = "no-zygote-sandbox"; diff --git a/devel/electron18/files/patch-sandbox_policy_switches.h b/devel/electron18/files/patch-sandbox_policy_switches.h new file mode 100644 index 000000000000..3049c0e16d60 --- /dev/null +++ b/devel/electron18/files/patch-sandbox_policy_switches.h @@ -0,0 +1,12 @@ +--- sandbox/policy/switches.h.orig 2022-05-19 05:17:45 UTC ++++ sandbox/policy/switches.h +@@ -71,7 +71,8 @@ SANDBOX_POLICY_EXPORT extern const char kDisableSetuid + SANDBOX_POLICY_EXPORT extern const char kGpuSandboxAllowSysVShm[]; + SANDBOX_POLICY_EXPORT extern const char kGpuSandboxFailuresFatal[]; + SANDBOX_POLICY_EXPORT extern const char kNoSandbox[]; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++SANDBOX_POLICY_EXPORT extern const char kDisableUnveil[]; ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + SANDBOX_POLICY_EXPORT extern const char kNoZygoteSandbox[]; + #endif + #if BUILDFLAG(IS_WIN) diff --git a/devel/electron18/files/patch-services_audio_audio__sandbox__hook__linux.cc b/devel/electron18/files/patch-services_audio_audio__sandbox__hook__linux.cc new file mode 100644 index 000000000000..cea2cbbef696 --- /dev/null +++ b/devel/electron18/files/patch-services_audio_audio__sandbox__hook__linux.cc @@ -0,0 +1,31 @@ +--- services/audio/audio_sandbox_hook_linux.cc.orig 2022-05-11 07:00:53 UTC ++++ services/audio/audio_sandbox_hook_linux.cc +@@ -143,6 +143,7 @@ void AddPulseAudioFilePermissions( + } + #endif + ++#if !defined(OS_BSD) + std::vector<BrokerFilePermission> GetAudioFilePermissions() { + std::vector<BrokerFilePermission> permissions{ + BrokerFilePermission::ReadOnly("/dev/urandom"), +@@ -171,10 +172,12 @@ void LoadAudioLibraries() { + } + } + } ++#endif + + } // namespace + + bool AudioPreSandboxHook(sandbox::policy::SandboxLinux::Options options) { ++#if !defined(OS_BSD) + LoadAudioLibraries(); + auto* instance = sandbox::policy::SandboxLinux::GetInstance(); + instance->StartBrokerProcess(MakeBrokerCommandSet({ +@@ -194,6 +197,7 @@ bool AudioPreSandboxHook(sandbox::policy::SandboxLinux + // TODO(https://crbug.com/850878) enable namespace sandbox. Currently, if + // enabled, connect() on pulse native socket fails with ENOENT (called from + // pa_context_connect). ++#endif + + return true; + } diff --git a/devel/electron18/files/patch-services_audio_audio__sandbox__hook__linux.h b/devel/electron18/files/patch-services_audio_audio__sandbox__hook__linux.h new file mode 100644 index 000000000000..84b2e0f3a9ed --- /dev/null +++ b/devel/electron18/files/patch-services_audio_audio__sandbox__hook__linux.h @@ -0,0 +1,14 @@ +--- services/audio/audio_sandbox_hook_linux.h.orig 2022-05-11 07:00:53 UTC ++++ services/audio/audio_sandbox_hook_linux.h +@@ -5,7 +5,11 @@ + #ifndef SERVICES_AUDIO_AUDIO_SANDBOX_HOOK_LINUX_H_ + #define SERVICES_AUDIO_AUDIO_SANDBOX_HOOK_LINUX_H_ + ++#if defined(OS_BSD) ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace audio { + diff --git a/devel/electron18/files/patch-services_cert__verifier_cert__verifier__creation.cc b/devel/electron18/files/patch-services_cert__verifier_cert__verifier__creation.cc new file mode 100644 index 000000000000..b897adee8c3d --- /dev/null +++ b/devel/electron18/files/patch-services_cert__verifier_cert__verifier__creation.cc @@ -0,0 +1,30 @@ +--- services/cert_verifier/cert_verifier_creation.cc.orig 2022-05-19 05:17:45 UTC ++++ services/cert_verifier/cert_verifier_creation.cc +@@ -86,7 +86,7 @@ scoped_refptr<net::CertVerifyProc> CreateCertVerifyPro + scoped_refptr<net::CertVerifyProc> CreateOldDefaultWithoutCaching( + scoped_refptr<net::CertNetFetcher> cert_net_fetcher) { + scoped_refptr<net::CertVerifyProc> verify_proc; +-#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + verify_proc = + net::CertVerifyProc::CreateBuiltinVerifyProc(std::move(cert_net_fetcher)); + #else +@@ -104,7 +104,7 @@ scoped_refptr<net::CertVerifyProc> CreateNewDefaultWit + scoped_refptr<net::CertNetFetcher> cert_net_fetcher) { + scoped_refptr<net::CertVerifyProc> verify_proc; + #if BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD)) + verify_proc = net::CreateCertVerifyProcBuiltin( + std::move(cert_net_fetcher), net::CreateSslSystemTrustStoreChromeRoot()); + #elif BUILDFLAG(BUILTIN_CERT_VERIFIER_FEATURE_SUPPORTED) +@@ -122,7 +122,8 @@ bool IsUsingCertNetFetcher() { + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \ + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(TRIAL_COMPARISON_CERT_VERIFIER_SUPPORTED) || \ +- BUILDFLAG(BUILTIN_CERT_VERIFIER_FEATURE_SUPPORTED) ++ BUILDFLAG(BUILTIN_CERT_VERIFIER_FEATURE_SUPPORTED) || \ ++ BUILDFLAG(IS_BSD) + return true; + #else + return false; diff --git a/devel/electron18/files/patch-services_device_geolocation_location__arbitrator.cc b/devel/electron18/files/patch-services_device_geolocation_location__arbitrator.cc new file mode 100644 index 000000000000..9139d6ed9fa0 --- /dev/null +++ b/devel/electron18/files/patch-services_device_geolocation_location__arbitrator.cc @@ -0,0 +1,11 @@ +--- services/device/geolocation/location_arbitrator.cc.orig 2022-05-19 03:45:39 UTC ++++ services/device/geolocation/location_arbitrator.cc +@@ -161,7 +161,7 @@ LocationArbitrator::NewNetworkLocationProvider( + + std::unique_ptr<LocationProvider> + LocationArbitrator::NewSystemLocationProvider() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + return nullptr; + #else + return device::NewSystemLocationProvider(main_task_runner_, diff --git a/devel/electron18/files/patch-services_device_hid_BUILD.gn b/devel/electron18/files/patch-services_device_hid_BUILD.gn new file mode 100644 index 000000000000..125355675123 --- /dev/null +++ b/devel/electron18/files/patch-services_device_hid_BUILD.gn @@ -0,0 +1,28 @@ +--- services/device/hid/BUILD.gn.orig 2022-05-19 03:45:39 UTC ++++ services/device/hid/BUILD.gn +@@ -35,6 +35,25 @@ source_set("hid") { + "//services/device/public/mojom", + ] + ++ if (is_openbsd) { ++ sources += [ ++ "hid_connection_fido.cc", ++ "hid_connection_fido.h", ++ "hid_service_fido.cc", ++ "hid_service_fido.h", ++ ] ++ libs = ["fido2", "cbor", "usbhid", "crypto", "util"] ++ } ++ ++ if (is_freebsd) { ++ sources += [ ++ "hid_connection_freebsd.cc", ++ "hid_connection_freebsd.h", ++ "hid_service_freebsd.cc", ++ "hid_service_freebsd.h", ++ ] ++ } ++ + if ((is_linux || is_chromeos) && use_udev) { + sources += [ + "hid_connection_linux.cc", diff --git a/devel/electron18/files/patch-services_device_hid_hid__connection__fido.cc b/devel/electron18/files/patch-services_device_hid_hid__connection__fido.cc new file mode 100644 index 000000000000..aa6835028577 --- /dev/null +++ b/devel/electron18/files/patch-services_device_hid_hid__connection__fido.cc @@ -0,0 +1,201 @@ +--- services/device/hid/hid_connection_fido.cc.orig 2022-05-13 07:20:05 UTC ++++ services/device/hid/hid_connection_fido.cc +@@ -0,0 +1,198 @@ ++// Copyright (c) 2020 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. ++ ++#include "services/device/hid/hid_connection_fido.h" ++ ++#include "base/bind.h" ++#include "base/files/file_descriptor_watcher_posix.h" ++#include "base/location.h" ++#include "base/numerics/safe_math.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/task/post_task.h" ++#include "base/task/single_thread_task_runner.h" ++#include "base/threading/scoped_blocking_call.h" ++#include "base/threading/thread_restrictions.h" ++#include "base/threading/thread_task_runner_handle.h" ++#include "components/device_event_log/device_event_log.h" ++#include "services/device/hid/hid_service.h" ++ ++namespace device { ++ ++class HidConnectionFido::BlockingTaskHelper { ++public: ++ BlockingTaskHelper(base::ScopedFD fd, ++ scoped_refptr<HidDeviceInfo> device_info, ++ base::WeakPtr<HidConnectionFido> connection) ++ : fd_(std::move(fd)), ++ // Report buffers must always have room for the report ID. ++ report_buffer_size_(device_info->max_input_report_size() + 1), ++ has_report_id_(device_info->has_report_id()), connection_(connection), ++ origin_task_runner_(base::ThreadTaskRunnerHandle::Get()) { ++ DETACH_FROM_SEQUENCE(sequence_checker_); ++ } ++ ++ BlockingTaskHelper(const BlockingTaskHelper&) = delete; ++ BlockingTaskHelper& operator=(const BlockingTaskHelper&) = delete; ++ ++ ~BlockingTaskHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); } ++ ++ // Starts the FileDescriptorWatcher that reads input events from the device. ++ // Must be called on a thread that has a base::MessageLoopForIO. ++ void Start() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::internal::AssertBlockingAllowed(); ++ ++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable( ++ fd_.get(), base::BindRepeating(&BlockingTaskHelper::OnFileCanReadWithoutBlocking, ++ base::Unretained(this))); ++ } ++ ++ void Write(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ ++ auto data = buffer->front(); ++ size_t size = buffer->size(); ++ // if report id is 0, it shouldn't be included ++ if (data[0] == 0) { ++ data++; ++ size--; ++ } ++ ++ ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size)); ++ bool success = static_cast<size_t>(result) == size; ++ if (!success) { ++ HID_LOG(EVENT) << "HID write failed: " << result << " != " << size; ++ } ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), success)); ++ } ++ ++ void GetFeatureReport(uint8_t report_id, ++ scoped_refptr<base::RefCountedBytes> buffer, ++ ReadCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ HID_PLOG(EVENT) << "GendFeatureReport not implemented on OpenBSD"; ++ origin_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(std::move(callback), false, nullptr, 0)); ++ } ++ ++ void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ HID_PLOG(EVENT) << "SendFeatureReport not implemented on OpenBSD"; ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), false)); ++ } ++ ++private: ++ void OnFileCanReadWithoutBlocking() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ scoped_refptr<base::RefCountedBytes> buffer( ++ new base::RefCountedBytes(report_buffer_size_)); ++ unsigned char *data = buffer->front(); ++ size_t length = report_buffer_size_; ++ if (!has_report_id_) { ++ // OpenBSD will not prefix the buffer with a report ID if report IDs are ++ // not used by the device. Prefix the buffer with 0. ++ *data++ = 0; ++ length--; ++ } ++ ++ ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length)); ++ if (bytes_read < 0) { ++ if (errno != EAGAIN) { ++ HID_PLOG(EVENT) << "Read failed"; ++ // This assumes that the error is unrecoverable and disables reading ++ // from the device until it has been re-opened. ++ // TODO(reillyg): Investigate starting and stopping the file descriptor ++ // watcher in response to pending read requests so that per-request ++ // errors can be returned to the client. ++ file_watcher_.reset(); ++ } ++ return; ++ } ++ if (!has_report_id_) { ++ // Behave as if the byte prefixed above as the the report ID was read. ++ bytes_read++; ++ } ++ ++ origin_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&HidConnectionFido::ProcessInputReport, ++ connection_, buffer, bytes_read)); ++ } ++ ++ SEQUENCE_CHECKER(sequence_checker_); ++ base::ScopedFD fd_; ++ const size_t report_buffer_size_; ++ const bool has_report_id_; ++ base::WeakPtr<HidConnectionFido> connection_; ++ const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_; ++ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_; ++}; ++ ++HidConnectionFido::HidConnectionFido( ++ scoped_refptr<HidDeviceInfo> device_info, base::ScopedFD fd, ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner, ++ bool allow_protected_reports, bool allow_fido_reports) ++ : HidConnection(device_info, allow_protected_reports, allow_fido_reports), ++ blocking_task_runner_(std::move(blocking_task_runner)), ++ weak_factory_(this), ++ helper_(std::make_unique<BlockingTaskHelper>( ++ std::move(fd), device_info, weak_factory_.GetWeakPtr())) { ++ blocking_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&BlockingTaskHelper::Start, ++ base::Unretained(helper_.get()))); ++} ++ ++HidConnectionFido::~HidConnectionFido() = default; ++ ++void HidConnectionFido::PlatformClose() { ++ // By closing the device on the blocking task runner 1) the requirement that ++ // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied ++ // and 2) any tasks posted to this task runner that refer to this file will ++ // complete before it is closed. ++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); ++} ++ ++void HidConnectionFido::PlatformWrite( ++ scoped_refptr<base::RefCountedBytes> buffer, WriteCallback callback) { ++ blocking_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&BlockingTaskHelper::Write, ++ base::Unretained(helper_.get()), buffer, ++ std::move(callback))); ++} ++ ++void HidConnectionFido::PlatformGetFeatureReport(uint8_t report_id, ++ ReadCallback callback) { ++ // The first byte of the destination buffer is the report ID being requested ++ // and is overwritten by the feature report. ++ DCHECK_GT(device_info()->max_feature_report_size(), 0u); ++ scoped_refptr<base::RefCountedBytes> buffer( ++ new base::RefCountedBytes(device_info()->max_feature_report_size() + 1)); ++ if (report_id != 0) ++ buffer->data()[0] = report_id; ++ ++ blocking_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&BlockingTaskHelper::GetFeatureReport, ++ base::Unretained(helper_.get()), report_id, ++ buffer, std::move(callback))); ++} ++ ++void HidConnectionFido::PlatformSendFeatureReport( ++ scoped_refptr<base::RefCountedBytes> buffer, WriteCallback callback) { ++ base::ScopedBlockingCall scoped_blocking_call(FROM_HERE, ++ base::BlockingType::MAY_BLOCK); ++ blocking_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&BlockingTaskHelper::SendFeatureReport, ++ base::Unretained(helper_.get()), buffer, ++ std::move(callback))); ++} ++ ++} // namespace device diff --git a/devel/electron18/files/patch-services_device_hid_hid__connection__fido.h b/devel/electron18/files/patch-services_device_hid_hid__connection__fido.h new file mode 100644 index 000000000000..18bc8fb93979 --- /dev/null +++ b/devel/electron18/files/patch-services_device_hid_hid__connection__fido.h @@ -0,0 +1,60 @@ +--- services/device/hid/hid_connection_fido.h.orig 2022-05-13 07:20:05 UTC ++++ services/device/hid/hid_connection_fido.h +@@ -0,0 +1,57 @@ ++// Copyright (c) 2020 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. ++ ++#ifndef SERVICE_DEVICE_HID_HID_CONNECTION_FIDO_H_ ++#define SERVICE_DEVICE_HID_HID_CONNECTION_FIDO_H_ ++ ++#include "base/files/scoped_file.h" ++#include "base/memory/ptr_util.h" ++#include "base/memory/ref_counted_memory.h" ++#include "base/memory/weak_ptr.h" ++#include "base/sequence_checker.h" ++#include "services/device/hid/hid_connection.h" ++ ++namespace device { ++ ++class HidConnectionFido : public HidConnection { ++public: ++ HidConnectionFido( ++ scoped_refptr<HidDeviceInfo> device_info, base::ScopedFD fd, ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner, ++ bool allow_protected_reports, bool allow_fido_reports); ++ ++private: ++ friend class base::RefCountedThreadSafe<HidConnectionFido>; ++ class BlockingTaskHelper; ++ ++ HidConnectionFido(const HidConnectionFido&) = delete; ++ HidConnectionFido& operator=(const HidConnectionFido&) = delete; ++ ++ ~HidConnectionFido() override; ++ ++ // HidConnection implementation. ++ void PlatformClose() override; ++ void PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) override; ++ void PlatformGetFeatureReport(uint8_t report_id, ++ ReadCallback callback) override; ++ void PlatformSendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) override; ++ ++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; ++ const scoped_refptr<base::SequencedTaskRunner> task_runner_; ++ ++ SEQUENCE_CHECKER(sequence_checker_); ++ ++ base::WeakPtrFactory<HidConnectionFido> weak_factory_; ++ ++ // |helper_| lives on the sequence to which |blocking_task_runner_| posts ++ // tasks so all calls must be posted there including this object's ++ // destruction. ++ std::unique_ptr<BlockingTaskHelper> helper_; ++}; ++ ++} // namespace device ++ ++#endif // SERVICE_DEVICE_HID_HID_CONNECTION_FIDO_H_ diff --git a/devel/electron18/files/patch-services_device_hid_hid__connection__freebsd.cc b/devel/electron18/files/patch-services_device_hid_hid__connection__freebsd.cc new file mode 100644 index 000000000000..93defd1bc307 --- /dev/null +++ b/devel/electron18/files/patch-services_device_hid_hid__connection__freebsd.cc @@ -0,0 +1,246 @@ +--- services/device/hid/hid_connection_freebsd.cc.orig 2022-05-13 07:20:05 UTC ++++ services/device/hid/hid_connection_freebsd.cc +@@ -0,0 +1,243 @@ ++// Copyright (c) 2014 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. ++ ++#include "services/device/hid/hid_connection_freebsd.h" ++ ++#include <dev/usb/usbhid.h> ++#include <dev/usb/usb_ioctl.h> ++ ++#include "base/bind.h" ++#include "base/files/file_descriptor_watcher_posix.h" ++#include "base/location.h" ++#include "base/numerics/safe_math.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/strings/stringprintf.h" ++#include "base/task/post_task.h" ++#include "base/task/single_thread_task_runner.h" ++#include "base/threading/scoped_blocking_call.h" ++#include "base/threading/thread_restrictions.h" ++#include "base/threading/thread_task_runner_handle.h" ++#include "components/device_event_log/device_event_log.h" ++#include "services/device/hid/hid_service.h" ++ ++namespace device { ++ ++class HidConnectionFreeBSD::BlockingTaskRunnerHelper { ++ public: ++ BlockingTaskRunnerHelper(base::ScopedFD fd, ++ scoped_refptr<HidDeviceInfo> device_info, ++ base::WeakPtr<HidConnectionFreeBSD> connection) ++ : fd_(std::move(fd)), ++ connection_(connection), ++ origin_task_runner_(base::ThreadTaskRunnerHandle::Get()) { ++ DETACH_FROM_SEQUENCE(sequence_checker_); ++ // Report buffers must always have room for the report ID. ++ report_buffer_size_ = device_info->max_input_report_size() + 1; ++ has_report_id_ = device_info->has_report_id(); ++ } ++ ++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete; ++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete; ++ ++ ~BlockingTaskRunnerHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); } ++ ++ // Starts the FileDescriptorWatcher that reads input events from the device. ++ // Must be called on a thread that has a base::MessageLoopForIO. ++ void Start() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::internal::AssertBlockingAllowed(); ++ ++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable( ++ fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnFileCanReadWithoutBlocking, ++ base::Unretained(this))); ++ } ++ ++ void Write(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ ++ auto data = buffer->front(); ++ size_t size = buffer->size(); ++ // if report id is 0, it shouldn't be included ++ if (data[0] == 0) { ++ data++; ++ size--; ++ } ++ ++ ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size)); ++ if (result < 0) { ++ HID_PLOG(EVENT) << "Write failed"; ++ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false)); ++ } else { ++ if (static_cast<size_t>(result) != size) ++ HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size; ++ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true)); ++ } ++ } ++ ++ void GetFeatureReport(uint8_t report_id, ++ scoped_refptr<base::RefCountedBytes> buffer, ++ ReadCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ struct usb_gen_descriptor ugd; ++ ugd.ugd_report_type = UHID_FEATURE_REPORT; ++ ugd.ugd_data = buffer->front(); ++ ugd.ugd_maxlen = buffer->size(); ++ int result = HANDLE_EINTR( ++ ioctl(fd_.get(), USB_GET_REPORT, &ugd)); ++ if (result < 0) { ++ HID_PLOG(EVENT) << "Failed to get feature report"; ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), false, nullptr, 0)); ++ } else if (result == 0) { ++ HID_LOG(EVENT) << "Get feature result too short."; ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), false, nullptr, 0)); ++ } else { ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), true, buffer, result)); ++ } ++ } ++ ++ void SendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ struct usb_gen_descriptor ugd; ++ ugd.ugd_report_type = UHID_FEATURE_REPORT; ++ ugd.ugd_data = buffer->front(); ++ ugd.ugd_maxlen = buffer->size(); ++ // FreeBSD does not require report id if it's not used ++ if (buffer->front()[0] == 0) { ++ ugd.ugd_data = buffer->front() + 1; ++ ugd.ugd_maxlen = buffer->size() - 1; ++ } else { ++ ugd.ugd_data = buffer->front(); ++ ugd.ugd_maxlen = buffer->size(); ++ } ++ int result = HANDLE_EINTR( ++ ioctl(fd_.get(), USB_SET_REPORT, &ugd)); ++ if (result < 0) { ++ HID_PLOG(EVENT) << "Failed to send feature report"; ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), false)); ++ } else { ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), true)); ++ } ++ } ++ ++ private: ++ void OnFileCanReadWithoutBlocking() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ scoped_refptr<base::RefCountedBytes> buffer(new base::RefCountedBytes(report_buffer_size_)); ++ unsigned char* data = buffer->front(); ++ size_t length = report_buffer_size_; ++ if (!has_report_id_) { ++ // FreeBSD will not prefix the buffer with a report ID if report IDs are not ++ // used by the device. Prefix the buffer with 0. ++ *data++ = 0; ++ length--; ++ } ++ ++ ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length)); ++ if (bytes_read < 0) { ++ if (errno != EAGAIN) { ++ HID_PLOG(EVENT) << "Read failed"; ++ // This assumes that the error is unrecoverable and disables reading ++ // from the device until it has been re-opened. ++ // TODO(reillyg): Investigate starting and stopping the file descriptor ++ // watcher in response to pending read requests so that per-request ++ // errors can be returned to the client. ++ file_watcher_.reset(); ++ } ++ return; ++ } ++ if (!has_report_id_) { ++ // Behave as if the byte prefixed above as the the report ID was read. ++ bytes_read++; ++ } ++ ++ origin_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&HidConnectionFreeBSD::ProcessInputReport, ++ connection_, buffer, bytes_read)); ++ } ++ ++ SEQUENCE_CHECKER(sequence_checker_); ++ base::ScopedFD fd_; ++ size_t report_buffer_size_; ++ bool has_report_id_; ++ base::WeakPtr<HidConnectionFreeBSD> connection_; ++ const scoped_refptr<base::SequencedTaskRunner> origin_task_runner_; ++ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_; ++}; ++ ++HidConnectionFreeBSD::HidConnectionFreeBSD( ++ scoped_refptr<HidDeviceInfo> device_info, ++ base::ScopedFD fd, ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner, ++ bool allow_protected_reports, ++ bool allow_fido_reports) ++ : HidConnection(device_info, allow_protected_reports, allow_fido_reports), ++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner)), ++ blocking_task_runner_(std::move(blocking_task_runner)) { ++ helper_.reset(new BlockingTaskRunnerHelper(std::move(fd), device_info, ++ weak_factory_.GetWeakPtr())); ++ blocking_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&BlockingTaskRunnerHelper::Start, ++ base::Unretained(helper_.get()))); ++} ++ ++HidConnectionFreeBSD::~HidConnectionFreeBSD() {} ++ ++void HidConnectionFreeBSD::PlatformClose() { ++ // By closing the device on the blocking task runner 1) the requirement that ++ // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied ++ // and 2) any tasks posted to this task runner that refer to this file will ++ // complete before it is closed. ++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); ++} ++ ++void HidConnectionFreeBSD::PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&BlockingTaskRunnerHelper::Write, base::Unretained(helper_.get()), ++ buffer, std::move(callback))); ++} ++ ++void HidConnectionFreeBSD::PlatformGetFeatureReport(uint8_t report_id, ++ ReadCallback callback) { ++ // The first byte of the destination buffer is the report ID being requested ++ // and is overwritten by the feature report. ++ DCHECK_GT(device_info()->max_feature_report_size(), 0u); ++ scoped_refptr<base::RefCountedBytes> buffer( ++ new base::RefCountedBytes(device_info()->max_feature_report_size() + 1)); ++ if (report_id != 0) ++ buffer->data()[0] = report_id; ++ ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&BlockingTaskRunnerHelper::GetFeatureReport, ++ base::Unretained(helper_.get()), report_id, ++ buffer, std::move(callback))); ++} ++ ++void HidConnectionFreeBSD::PlatformSendFeatureReport( ++ scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) { ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&BlockingTaskRunnerHelper::SendFeatureReport, ++ base::Unretained(helper_.get()), buffer, std::move(callback))); ++} ++ ++} // namespace device diff --git a/devel/electron18/files/patch-services_device_hid_hid__connection__freebsd.h b/devel/electron18/files/patch-services_device_hid_hid__connection__freebsd.h new file mode 100644 index 000000000000..2552d89146c4 --- /dev/null +++ b/devel/electron18/files/patch-services_device_hid_hid__connection__freebsd.h @@ -0,0 +1,70 @@ +--- services/device/hid/hid_connection_freebsd.h.orig 2022-05-13 07:20:05 UTC ++++ services/device/hid/hid_connection_freebsd.h +@@ -0,0 +1,67 @@ ++// Copyright (c) 2014 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. ++ ++#ifndef DEVICE_HID_HID_CONNECTION_FREEBSD_H_ ++#define DEVICE_HID_HID_CONNECTION_FREEBSD_H_ ++ ++#include <stddef.h> ++#include <stdint.h> ++ ++#include "base/files/scoped_file.h" ++#include "base/memory/weak_ptr.h" ++#include "base/memory/ref_counted_memory.h" ++#include "base/task/sequenced_task_runner.h" ++#include "services/device/hid/hid_connection.h" ++ ++namespace base { ++class SequencedTaskRunner; ++} ++ ++namespace net { ++class IOBuffer; ++} ++ ++namespace device { ++ ++class HidConnectionFreeBSD : public HidConnection { ++ public: ++ HidConnectionFreeBSD( ++ scoped_refptr<HidDeviceInfo> device_info, ++ base::ScopedFD fd, ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner, ++ bool allow_protected_reports, ++ bool allow_fido_reports); ++ ++ private: ++ friend class base::RefCountedThreadSafe<HidConnectionFreeBSD>; ++ class BlockingTaskRunnerHelper; ++ ++ HidConnectionFreeBSD(const HidConnectionFreeBSD&) = delete; ++ HidConnectionFreeBSD& operator=(const HidConnectionFreeBSD&) = delete; ++ ++ ~HidConnectionFreeBSD() override; ++ ++ // HidConnection implementation. ++ void PlatformClose() override; ++ void PlatformWrite(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) override; ++ void PlatformGetFeatureReport(uint8_t report_id, ++ ReadCallback callback) override; ++ void PlatformSendFeatureReport(scoped_refptr<base::RefCountedBytes> buffer, ++ WriteCallback callback) override; ++ ++ // |helper_| lives on the sequence to which |blocking_task_runner_| posts ++ // tasks so all calls must be posted there including this object's ++ // destruction. ++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_; ++ ++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; ++ const scoped_refptr<base::SequencedTaskRunner> task_runner_; ++ ++ base::WeakPtrFactory<HidConnectionFreeBSD> weak_factory_{this}; ++}; ++ ++} // namespace device ++ ++#endif // DEVICE_HID_HID_CONNECTION_FREEBSD_H_ diff --git a/devel/electron18/files/patch-services_device_hid_hid__service.cc b/devel/electron18/files/patch-services_device_hid_hid__service.cc new file mode 100644 index 000000000000..2219c6eb4d12 --- /dev/null +++ b/devel/electron18/files/patch-services_device_hid_hid__service.cc @@ -0,0 +1,24 @@ +--- services/device/hid/hid_service.cc.orig 2022-05-19 05:17:45 UTC ++++ services/device/hid/hid_service.cc +@@ -18,6 +18,10 @@ + + #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_UDEV) + #include "services/device/hid/hid_service_linux.h" ++#elif BUILDFLAG(IS_OPENBSD) ++#include "services/device/hid/hid_service_fido.h" ++#elif BUILDFLAG(IS_FREEBSD) ++#include "services/device/hid/hid_service_freebsd.h" + #elif BUILDFLAG(IS_MAC) + #include "services/device/hid/hid_service_mac.h" + #elif BUILDFLAG(IS_WIN) +@@ -61,6 +65,10 @@ constexpr base::TaskTraits HidService::kBlockingTaskTr + std::unique_ptr<HidService> HidService::Create() { + #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && defined(USE_UDEV) + return base::WrapUnique(new HidServiceLinux()); ++#elif BUILDFLAG(IS_OPENBSD) ++ return base::WrapUnique(new HidServiceFido()); ++#elif BUILDFLAG(IS_FREEBSD) ++ return base::WrapUnique(new HidServiceFreeBSD()); + #elif BUILDFLAG(IS_MAC) + return base::WrapUnique(new HidServiceMac()); + #elif BUILDFLAG(IS_WIN) diff --git a/devel/electron18/files/patch-services_device_hid_hid__service__fido.cc b/devel/electron18/files/patch-services_device_hid_hid__service__fido.cc new file mode 100644 index 000000000000..de049a945361 --- /dev/null +++ b/devel/electron18/files/patch-services_device_hid_hid__service__fido.cc @@ -0,0 +1,331 @@ +--- services/device/hid/hid_service_fido.cc.orig 2022-05-13 07:20:05 UTC ++++ services/device/hid/hid_service_fido.cc +@@ -0,0 +1,328 @@ ++// Copyright 2020 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. ++ ++#include "services/device/hid/hid_service_fido.h" ++ ++#include <fcntl.h> ++#include <poll.h> ++#include <stdint.h> ++#include <sys/socket.h> ++#include <sys/un.h> ++#include <unistd.h> ++ ++// TODO: remove once the missing guard in fido.h is fixed upstream. ++extern "C" { ++#include <fido.h> ++} ++ ++#include <set> ++#include <string> ++#include <vector> ++ ++#include "base/bind.h" ++#include "base/files/file.h" ++#include "base/files/file_descriptor_watcher_posix.h" ++#include "base/files/file_enumerator.h" ++#include "base/location.h" ++#include "base/logging.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/task/single_thread_task_runner.h" ++#include "base/task/thread_pool.h" ++#include "base/stl_util.h" ++#include "base/strings/pattern.h" ++#include "base/strings/string_split.h" ++#include "base/strings/string_util.h" ++#include "base/strings/stringprintf.h" ++#include "base/strings/sys_string_conversions.h" ++#include "base/task/post_task.h" ++#include "base/threading/scoped_blocking_call.h" ++#include "base/threading/thread_task_runner_handle.h" ++#include "components/device_event_log/device_event_log.h" ++#include "services/device/hid/hid_connection_fido.h" ++ ++namespace device { ++ ++namespace { ++ ++struct ConnectParams { ++ ConnectParams(scoped_refptr<HidDeviceInfo> device_info, ++ HidService::ConnectCallback callback) ++ : device_info(std::move(device_info)), callback(std::move(callback)), ++ task_runner(base::ThreadTaskRunnerHandle::Get()), ++ blocking_task_runner(base::ThreadPool::CreateSequencedTaskRunner( ++ HidService::kBlockingTaskTraits)) {} ++ ~ConnectParams() {} ++ ++ scoped_refptr<HidDeviceInfo> device_info; ++ HidService::ConnectCallback callback; ++ scoped_refptr<base::SequencedTaskRunner> task_runner; ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner; ++ base::ScopedFD fd; ++ bool allow_protected_reports; ++ bool allow_fido_reports; ++}; ++ ++void CreateConnection(std::unique_ptr<ConnectParams> params) { ++ DCHECK(params->fd.is_valid()); ++ std::move(params->callback).Run(base::MakeRefCounted<HidConnectionFido>( ++ std::move(params->device_info), std::move(params->fd), ++ std::move(params->blocking_task_runner), params->allow_protected_reports, ++ params->allow_fido_reports)); ++} ++ ++void FinishOpen(std::unique_ptr<ConnectParams> params) { ++ scoped_refptr<base::SequencedTaskRunner> task_runner = params->task_runner; ++ ++ task_runner->PostTask(FROM_HERE, ++ base::BindOnce(&CreateConnection, std::move(params))); ++} ++ ++bool terrible_ping_kludge(int fd, const std::string &path) { ++ u_char data[256]; ++ int i, n; ++ struct pollfd pfd; ++ ++ for (i = 0; i < 4; i++) { ++ memset(data, 0, sizeof(data)); ++ /* broadcast channel ID */ ++ data[1] = 0xff; ++ data[2] = 0xff; ++ data[3] = 0xff; ++ data[4] = 0xff; ++ /* Ping command */ ++ data[5] = 0x81; ++ /* One byte ping only, Vasili */ ++ data[6] = 0; ++ data[7] = 1; ++ HID_LOG(EVENT) << "send ping " << i << " " << path; ++ if (write(fd, data, 64) == -1) { ++ HID_PLOG(ERROR) << "write " << path; ++ return false; ++ } ++ HID_LOG(EVENT) << "wait reply " << path; ++ memset(&pfd, 0, sizeof(pfd)); ++ pfd.fd = fd; ++ pfd.events = POLLIN; ++ if ((n = poll(&pfd, 1, 100)) == -1) { ++ HID_PLOG(EVENT) << "poll " << path; ++ return false; ++ } else if (n == 0) { ++ HID_LOG(EVENT) << "timed out " << path; ++ continue; ++ } ++ if (read(fd, data, 64) == -1) { ++ HID_PLOG(ERROR) << "read " << path; ++ return false; ++ } ++ /* ++ * Ping isn't always supported on the broadcast channel, ++ * so we might get an error, but we don't care - we're ++ * synched now. ++ */ ++ HID_LOG(EVENT) << "got reply " << path; ++ return true; ++ } ++ HID_LOG(ERROR) << "no response " << path; ++ return false; ++} ++ ++void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params) { ++ base::ScopedBlockingCall scoped_blocking_call(FROM_HERE, ++ base::BlockingType::MAY_BLOCK); ++ scoped_refptr<base::SequencedTaskRunner> task_runner = params->task_runner; ++ ++ const auto &device_node = params->device_info->device_node(); ++ base::FilePath device_path(device_node); ++ int flags = ++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; ++ base::File device_file(device_path, flags); ++ if (!device_file.IsValid()) { ++ HID_LOG(EVENT) << "Failed to open '" << device_node << "': " ++ << base::File::ErrorToString(device_file.error_details()); ++ task_runner->PostTask(FROM_HERE, base::BindOnce(std::move(params->callback), nullptr)); ++ return; ++ } ++ if (!terrible_ping_kludge(device_file.GetPlatformFile(), device_node)) { ++ HID_LOG(EVENT) << "Failed to ping " << device_node; ++ task_runner->PostTask(FROM_HERE, base::BindOnce(std::move(params->callback), nullptr)); ++ return; ++ } ++ params->fd.reset(device_file.TakePlatformFile()); ++ FinishOpen(std::move(params)); ++} ++ ++// HID report descriptor for U2F interface. Copied from: ++// https://chromium.googlesource.com/chromiumos/platform2/+/c6c7e4e54fce11932fedaa3ea10236bf75d85a2b%5E%21/u2fd/u2fhid.cc ++// Apparently Chromium wants to see these bytes, but OpenBSD fido(4) ++// devices prohibit USB_GET_REPORT_DESC ioctl that could be used to ++// get the bytes from the USB device. ++constexpr uint8_t kU2fReportDesc[] = { ++ 0x06, 0xD0, 0xF1, /* Usage Page (FIDO Alliance), FIDO_USAGE_PAGE */ ++ 0x09, 0x01, /* Usage (U2F HID Auth. Device) FIDO_USAGE_U2FHID */ ++ 0xA1, 0x01, /* Collection (Application), HID_APPLICATION */ ++ 0x09, 0x20, /* Usage (Input Report Data), FIDO_USAGE_DATA_IN */ ++ 0x15, 0x00, /* Logical Minimum (0) */ ++ 0x26, 0xFF, 0x00, /* Logical Maximum (255) */ ++ 0x75, 0x08, /* Report Size (8) */ ++ 0x95, 0x40, /* Report Count (64), HID_INPUT_REPORT_BYTES */ ++ 0x81, 0x02, /* Input (Data, Var, Abs), Usage */ ++ 0x09, 0x21, /* Usage (Output Report Data), FIDO_USAGE_DATA_OUT */ ++ 0x15, 0x00, /* Logical Minimum (0) */ ++ 0x26, 0xFF, 0x00, /* Logical Maximum (255) */ ++ 0x75, 0x08, /* Report Size (8) */ ++ 0x95, 0x40, /* Report Count (64), HID_OUTPUT_REPORT_BYTES */ ++ 0x91, 0x02, /* Output (Data, Var, Abs), Usage */ ++ 0xC0 /* End Collection */ ++}; ++ ++} // namespace ++ ++class HidServiceFido::BlockingTaskHelper { ++public: ++ BlockingTaskHelper(base::WeakPtr<HidServiceFido> service) ++ : service_(std::move(service)), ++ task_runner_(base::ThreadTaskRunnerHandle::Get()) { ++ DETACH_FROM_SEQUENCE(sequence_checker_); ++ } ++ ++ BlockingTaskHelper(const BlockingTaskHelper&) = delete; ++ BlockingTaskHelper& operator=(const BlockingTaskHelper&) = delete; ++ ++ ~BlockingTaskHelper() = default; ++ ++ void Start() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ ++ fido_dev_info_t *devlist = NULL; ++ fido_dev_t *dev = NULL; ++ size_t devlist_len = 0, i; ++ const char *path; ++ int r; ++ const int MAX_FIDO_DEVICES = 256; ++ ++ if ((devlist = fido_dev_info_new(MAX_FIDO_DEVICES)) == NULL) { ++ HID_LOG(ERROR) << "fido_dev_info_new failed"; ++ goto out; ++ } ++ if ((r = fido_dev_info_manifest(devlist, MAX_FIDO_DEVICES, &devlist_len)) != ++ FIDO_OK) { ++ HID_LOG(ERROR) << "fido_dev_info_manifest: " << fido_strerr(r); ++ goto out; ++ } ++ ++ HID_LOG(EVENT) << "fido_dev_info_manifest found " << devlist_len ++ << " device(s)"; ++ ++ for (i = 0; i < devlist_len; i++) { ++ const fido_dev_info_t *di = fido_dev_info_ptr(devlist, i); ++ if (di == NULL) { ++ HID_LOG(ERROR) << "fido_dev_info_ptr " << i << " failed"; ++ continue; ++ } ++ if ((path = fido_dev_info_path(di)) == NULL) { ++ HID_LOG(ERROR) << "fido_dev_info_path " << i << " failed"; ++ continue; ++ } ++ HID_LOG(EVENT) << "trying device " << i << ": " << path; ++ if ((dev = fido_dev_new()) == NULL) { ++ HID_LOG(ERROR) << "fido_dev_new failed"; ++ continue; ++ } ++ if ((r = fido_dev_open(dev, path)) != FIDO_OK) { ++ HID_LOG(ERROR) << "fido_dev_open failed " << path; ++ fido_dev_free(&dev); ++ continue; ++ } ++ OnDeviceAdded(di); ++ fido_dev_close(dev); ++ fido_dev_free(&dev); ++ } ++ ++ out: ++ if (devlist != NULL) ++ fido_dev_info_free(&devlist, MAX_FIDO_DEVICES); ++ ++ task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&HidServiceFido::FirstEnumerationComplete, service_)); ++ } ++ ++ void OnDeviceAdded(const fido_dev_info_t *di) { ++ auto null_as_empty = [](const char *r) -> std::string { ++ return (r != nullptr) ? r : ""; ++ }; ++ std::string device_node(null_as_empty(fido_dev_info_path(di))); ++ std::vector<uint8_t> report_descriptor( ++ kU2fReportDesc, kU2fReportDesc + sizeof(kU2fReportDesc)); ++ scoped_refptr<HidDeviceInfo> device_info(new HidDeviceInfo( ++ device_node, /*physical_device_id=*/"", fido_dev_info_vendor(di), ++ fido_dev_info_product(di), null_as_empty(fido_dev_info_product_string(di)), ++ null_as_empty(fido_dev_info_manufacturer_string(di)), ++ device::mojom::HidBusType::kHIDBusTypeUSB, report_descriptor, ++ device_node)); ++ ++ task_runner_->PostTask(FROM_HERE, base::BindOnce(&HidServiceFido::AddDevice, ++ service_, device_info)); ++ } ++ ++ void OnDeviceRemoved(std::string device_node) { ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ task_runner_->PostTask(FROM_HERE, base::BindOnce(&HidServiceFido::RemoveDevice, ++ service_, device_node)); ++ } ++ ++private: ++ SEQUENCE_CHECKER(sequence_checker_); ++ ++ // This weak pointer is only valid when checked on this task runner. ++ base::WeakPtr<HidServiceFido> service_; ++ scoped_refptr<base::SequencedTaskRunner> task_runner_; ++}; ++ ++HidServiceFido::HidServiceFido() ++ : task_runner_(base::ThreadTaskRunnerHandle::Get()), ++ blocking_task_runner_( ++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)), ++ weak_factory_(this), helper_(std::make_unique<BlockingTaskHelper>( ++ weak_factory_.GetWeakPtr())) { ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&BlockingTaskHelper::Start, base::Unretained(helper_.get()))); ++} ++ ++HidServiceFido::~HidServiceFido() { ++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); ++} ++ ++base::WeakPtr<HidService> HidServiceFido::GetWeakPtr() { ++ return weak_factory_.GetWeakPtr(); ++} ++ ++void HidServiceFido::Connect(const std::string &device_guid, ++ bool allow_protected_reports, ++ bool allow_fido_reports, ++ ConnectCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ const auto &map_entry = devices().find(device_guid); ++ if (map_entry == devices().end()) { ++ base::ThreadTaskRunnerHandle::Get()->PostTask( ++ FROM_HERE, base::BindOnce(std::move(callback), nullptr)); ++ return; ++ } ++ ++ scoped_refptr<HidDeviceInfo> device_info = map_entry->second; ++ ++ auto params = std::make_unique<ConnectParams>(device_info, std::move(callback)); ++ ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner = ++ params->blocking_task_runner; ++ blocking_task_runner->PostTask( ++ FROM_HERE, base::BindOnce(&OpenOnBlockingThread, std::move(params))); ++} ++ ++} // namespace device diff --git a/devel/electron18/files/patch-services_device_hid_hid__service__fido.h b/devel/electron18/files/patch-services_device_hid_hid__service__fido.h new file mode 100644 index 000000000000..4e620c86a248 --- /dev/null +++ b/devel/electron18/files/patch-services_device_hid_hid__service__fido.h @@ -0,0 +1,46 @@ +--- services/device/hid/hid_service_fido.h.orig 2022-05-13 07:20:05 UTC ++++ services/device/hid/hid_service_fido.h +@@ -0,0 +1,43 @@ ++// Copyright 2020 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. ++ ++#ifndef SERVICE_DEVICE_HID_HID_SERVICE_FIDO_H_ ++#define SERVICE_DEVICE_HID_HID_SERVICE_FIDO_H_ ++ ++#include <string> ++ ++#include "base/memory/ref_counted.h" ++#include "base/memory/weak_ptr.h" ++#include "services/device/hid/hid_service.h" ++ ++namespace device { ++ ++class HidServiceFido : public HidService { ++public: ++ HidServiceFido(); ++ ++ HidServiceFido(const HidServiceFido&) = delete; ++ HidServiceFido& operator=(const HidServiceFido&) = delete; ++ ++ ~HidServiceFido() override; ++ ++ void Connect(const std::string &device_guid, ++ bool allow_protected_reports, ++ bool allow_fido_reports, ++ ConnectCallback connect) override; ++ base::WeakPtr<HidService> GetWeakPtr() override; ++ ++private: ++ class BlockingTaskHelper; ++ const scoped_refptr<base::SequencedTaskRunner> task_runner_; ++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; ++ base::WeakPtrFactory<HidServiceFido> weak_factory_; ++ // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds ++ // a weak reference back to the service that owns it. ++ std::unique_ptr<BlockingTaskHelper> helper_; ++}; ++ ++} // namespace device ++ ++#endif // SERVICE_DEVICE_HID_HID_SERVICE_FIDO_H_ diff --git a/devel/electron18/files/patch-services_device_hid_hid__service__freebsd.cc b/devel/electron18/files/patch-services_device_hid_hid__service__freebsd.cc new file mode 100644 index 000000000000..e5d740ca171b --- /dev/null +++ b/devel/electron18/files/patch-services_device_hid_hid__service__freebsd.cc @@ -0,0 +1,401 @@ +--- services/device/hid/hid_service_freebsd.cc.orig 2022-05-13 07:20:05 UTC ++++ services/device/hid/hid_service_freebsd.cc +@@ -0,0 +1,398 @@ ++// Copyright 2014 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. ++ ++#include "services/device/hid/hid_service_freebsd.h" ++ ++#include <dev/usb/usb_ioctl.h> ++#include <stdint.h> ++#include <sys/socket.h> ++#include <sys/un.h> ++ ++#include <set> ++#include <string> ++#include <vector> ++ ++#include "base/bind.h" ++#include "base/files/file_descriptor_watcher_posix.h" ++#include "base/files/file_enumerator.h" ++#include "base/files/file_util.h" ++#include "base/files/file.h" ++#include "base/location.h" ++#include "base/logging.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/stl_util.h" ++#include "base/strings/pattern.h" ++#include "base/strings/stringprintf.h" ++#include "base/strings/sys_string_conversions.h" ++#include "base/strings/string_util.h" ++#include "base/strings/string_split.h" ++#include "base/task/post_task.h" ++#include "base/task/single_thread_task_runner.h" ++#include "base/task/thread_pool.h" ++#include "base/threading/scoped_blocking_call.h" ++#include "base/threading/thread_task_runner_handle.h" ++#include "base/threading/thread_restrictions.h" ++#include "components/device_event_log/device_event_log.h" ++#include "services/device/hid/hid_connection_freebsd.h" ++ ++const int kMaxPermissionChecks = 5; ++ ++namespace device { ++ ++struct HidServiceFreeBSD::ConnectParams { ++ ConnectParams(scoped_refptr<HidDeviceInfo> device_info, ++ bool allow_protected_reports, ++ bool allow_fido_reports, ++ ConnectCallback callback) ++ : device_info(std::move(device_info)), ++ allow_protected_reports(allow_protected_reports), ++ allow_fido_reports(allow_fido_reports), ++ callback(std::move(callback)), ++ task_runner(base::ThreadTaskRunnerHandle::Get()), ++ blocking_task_runner( ++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)) {} ++ ~ConnectParams() {} ++ ++ scoped_refptr<HidDeviceInfo> device_info; ++ bool allow_protected_reports; ++ bool allow_fido_reports; ++ ConnectCallback callback; ++ scoped_refptr<base::SequencedTaskRunner> task_runner; ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner; ++ base::ScopedFD fd; ++}; ++ ++class HidServiceFreeBSD::BlockingTaskRunnerHelper { ++ public: ++ BlockingTaskRunnerHelper(base::WeakPtr<HidServiceFreeBSD> service) ++ : service_(std::move(service)), ++ task_runner_(base::ThreadTaskRunnerHandle::Get()) { ++ DETACH_FROM_SEQUENCE(sequence_checker_); ++ ++ timer_.reset(new base::RepeatingTimer()); ++ devd_buffer_ = new net::IOBufferWithSize(1024); ++ } ++ ++ BlockingTaskRunnerHelper(const BlockingTaskRunnerHelper&) = delete; ++ BlockingTaskRunnerHelper& operator=(const BlockingTaskRunnerHelper&) = delete; ++ ++ ~BlockingTaskRunnerHelper() { ++ } ++ ++ void Start() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ const base::FilePath kDevRoot("/dev"); ++ const std::string kUHIDPattern("/dev/uhid*"); ++ ++ base::FileEnumerator enumerator(kDevRoot, false, base::FileEnumerator::FILES); ++ do { ++ const base::FilePath next_device_path(enumerator.Next()); ++ const std::string next_device = next_device_path.value(); ++ if (next_device.empty()) ++ break; ++ ++ if (base::MatchPattern(next_device, kUHIDPattern)) ++ OnDeviceAdded(next_device.substr(5)); ++ } while (true); ++ ++ SetupDevdMonitor(); ++ ++ task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&HidServiceFreeBSD::FirstEnumerationComplete, service_)); ++ } ++ ++ bool HaveReadWritePermissions(std::string device_id) { ++ std::string device_node = "/dev/" + device_id; ++ base::internal::AssertBlockingAllowed(); ++ ++ base::FilePath device_path(device_node); ++ base::File device_file; ++ int flags = ++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; ++ device_file.Initialize(device_path, flags); ++ if (!device_file.IsValid()) ++ return false; ++ ++ return true; ++ } ++ ++ void OnDeviceAdded(std::string device_id) { ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ std::string device_node = "/dev/" + device_id; ++ uint16_t vendor_id = 0xffff; ++ uint16_t product_id = 0xffff; ++ std::string product_name = ""; ++ std::string serial_number = ""; ++ ++ std::vector<uint8_t> report_descriptor; ++ ++ base::internal::AssertBlockingAllowed(); ++ ++ base::FilePath device_path(device_node); ++ base::File device_file; ++ int flags = ++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; ++ device_file.Initialize(device_path, flags); ++ if (!device_file.IsValid()) { ++ HID_LOG(ERROR) << "Failed to open '" << device_node ++ << "': " ++ << base::File::ErrorToString(device_file.error_details()); ++ return; ++ } ++ ++ base::ScopedFD fd; ++ fd.reset(device_file.TakePlatformFile()); ++ ++ struct usb_gen_descriptor ugd; ++ ugd.ugd_data = NULL; ++ ugd.ugd_maxlen = 0xffff; ++ int result = HANDLE_EINTR( ++ ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd)); ++ ++ if (result < 0) { ++ HID_LOG(ERROR) << "Failed to get report descriptor size"; ++ return; ++ } ++ ++ report_descriptor.resize(ugd.ugd_actlen); ++ ++ ugd.ugd_data = report_descriptor.data(); ++ ugd.ugd_maxlen = ugd.ugd_actlen; ++ result = HANDLE_EINTR( ++ ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd)); ++ ++ if (result < 0) { ++ HID_LOG(ERROR) << "Failed to get report descriptor"; ++ return; ++ } ++ ++ scoped_refptr<HidDeviceInfo> device_info(new HidDeviceInfo( ++ device_id, ++ /*physical_device_id*/"", ++ vendor_id, ++ product_id, ++ product_name, ++ serial_number, ++ device::mojom::HidBusType::kHIDBusTypeUSB, ++ report_descriptor, ++ device_node)); ++ ++ task_runner_->PostTask(FROM_HERE, base::BindOnce(&HidServiceFreeBSD::AddDevice, ++ service_, device_info)); ++ } ++ ++ void OnDeviceRemoved(std::string device_id) { ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&HidServiceFreeBSD::RemoveDevice, service_, ++ device_id)); ++ } ++ ++ private: ++ ++ void CheckPendingPermissionChange() { ++ base::internal::AssertBlockingAllowed(); ++ std::map<std::string, int>::iterator it; ++ for (it = permissions_checks_attempts_.begin(); it != permissions_checks_attempts_.end();) { ++ std::string device_name = it->first; ++ bool keep = true; ++ if (HaveReadWritePermissions(device_name)) { ++ OnDeviceAdded(device_name); ++ keep = false; ++ } ++ else if (it->second-- <= 0) { ++ HID_LOG(ERROR) << "Still don't have write permissions to '" << device_name ++ << "' after " << kMaxPermissionChecks << " attempts"; ++ keep = false; ++ } ++ ++ if (keep) ++ ++it; ++ else ++ permissions_checks_attempts_.erase(it++); ++ } ++ ++ if (permissions_checks_attempts_.empty()) ++ timer_->Stop(); ++ } ++ ++ void SetupDevdMonitor() { ++ base::internal::AssertBlockingAllowed(); ++ ++ int devd_fd = socket(AF_UNIX, SOCK_SEQPACKET, 0); ++ if (devd_fd < 0) ++ return; ++ ++ struct sockaddr_un sa; ++ ++ sa.sun_family = AF_UNIX; ++ strlcpy(sa.sun_path, "/var/run/devd.seqpacket.pipe", sizeof(sa.sun_path)); ++ if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) { ++ close(devd_fd); ++ return; ++ } ++ ++ devd_fd_.reset(devd_fd); ++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable( ++ devd_fd_.get(), base::BindRepeating(&BlockingTaskRunnerHelper::OnDevdMessageCanBeRead, ++ base::Unretained(this))); ++ } ++ ++ void OnDevdMessageCanBeRead() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ssize_t bytes_read = HANDLE_EINTR(recv(devd_fd_.get(), devd_buffer_->data(), ++ devd_buffer_->size() - 1, MSG_WAITALL)); ++ if (bytes_read < 0) { ++ if (errno != EAGAIN) { ++ HID_LOG(ERROR) << "Read failed"; ++ file_watcher_.reset(); ++ } ++ return; ++ } ++ ++ devd_buffer_->data()[bytes_read] = 0; ++ char *data = devd_buffer_->data(); ++ // It may take some time for devd to change permissions ++ // on /dev/uhidX node. So do not fail immediately if ++ // open fail. Retry each second for kMaxPermissionChecks ++ // times before giving up entirely ++ if (base::StartsWith(data, "+uhid", base::CompareCase::SENSITIVE)) { ++ std::vector<std::string> parts = base::SplitString( ++ data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); ++ if (!parts.empty()) { ++ std::string device_name = parts[0].substr(1); // skip '+' ++ if (HaveReadWritePermissions(device_name)) ++ OnDeviceAdded(parts[0].substr(1)); ++ else { ++ // Do not re-add to checks ++ if (permissions_checks_attempts_.find(device_name) == permissions_checks_attempts_.end()) { ++ permissions_checks_attempts_.insert(std::pair<std::string, int>(device_name, kMaxPermissionChecks)); ++ timer_->Start(FROM_HERE, base::Seconds(1), ++ this, &BlockingTaskRunnerHelper::CheckPendingPermissionChange); ++ } ++ } ++ } ++ } ++ ++ if (base::StartsWith(data, "-uhid", base::CompareCase::SENSITIVE)) { ++ std::vector<std::string> parts = base::SplitString( ++ data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); ++ if (!parts.empty()) { ++ std::string device_name = parts[0].substr(1); // skip '-' ++ auto it = permissions_checks_attempts_.find(device_name); ++ if (it != permissions_checks_attempts_.end()) { ++ permissions_checks_attempts_.erase(it); ++ if (permissions_checks_attempts_.empty()) ++ timer_->Stop(); ++ } ++ OnDeviceRemoved(parts[0].substr(1)); ++ } ++ } ++ } ++ ++ SEQUENCE_CHECKER(sequence_checker_); ++ ++ // This weak pointer is only valid when checked on this task runner. ++ base::WeakPtr<HidServiceFreeBSD> service_; ++ scoped_refptr<base::SequencedTaskRunner> task_runner_; ++ std::unique_ptr<base::FileDescriptorWatcher::Controller> file_watcher_; ++ std::unique_ptr<base::RepeatingTimer> timer_; ++ base::ScopedFD devd_fd_; ++ scoped_refptr<net::IOBufferWithSize> devd_buffer_; ++ std::map<std::string, int> permissions_checks_attempts_; ++}; ++ ++HidServiceFreeBSD::HidServiceFreeBSD() ++ : blocking_task_runner_( ++ base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)), ++ helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)) { ++ helper_.reset(new BlockingTaskRunnerHelper(weak_factory_.GetWeakPtr())); ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&BlockingTaskRunnerHelper::Start, base::Unretained(helper_.get()))); ++} ++ ++HidServiceFreeBSD::~HidServiceFreeBSD() { ++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); ++} ++ ++base::WeakPtr<HidService> HidServiceFreeBSD::GetWeakPtr() { ++ return weak_factory_.GetWeakPtr(); ++} ++ ++// static ++void HidServiceFreeBSD::OpenOnBlockingThread( ++ std::unique_ptr<ConnectParams> params) { ++ base::ScopedBlockingCall scoped_blocking_call( ++ FROM_HERE, base::BlockingType::MAY_BLOCK); ++ scoped_refptr<base::SequencedTaskRunner> task_runner = params->task_runner; ++ ++ base::FilePath device_path(params->device_info->device_node()); ++ base::File device_file; ++ int flags = ++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; ++ device_file.Initialize(device_path, flags); ++ if (!device_file.IsValid()) { ++ HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node() ++ << "': " ++ << base::File::ErrorToString(device_file.error_details()); ++ task_runner->PostTask(FROM_HERE, ++ base::BindOnce(std::move(params->callback), nullptr)); ++ return; ++ } ++ params->fd.reset(device_file.TakePlatformFile()); ++ task_runner->PostTask(FROM_HERE, base::BindOnce(&HidServiceFreeBSD::FinishOpen, ++ std::move(params))); ++} ++ ++void HidServiceFreeBSD::Connect(const std::string& device_guid, ++ bool allow_protected_reports, ++ bool allow_fido_reports, ++ ConnectCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ const auto& map_entry = devices().find(device_guid); ++ if (map_entry == devices().end()) { ++ base::ThreadTaskRunnerHandle::Get()->PostTask( ++ FROM_HERE, base::BindOnce(std::move(callback), nullptr)); ++ return; ++ } ++ ++ scoped_refptr<HidDeviceInfo> device_info = map_entry->second; ++ ++ auto params = std::make_unique<ConnectParams>(device_info, ++ allow_protected_reports, ++ allow_fido_reports, ++ std::move(callback)); ++ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner = ++ params->blocking_task_runner; ++ ++ blocking_task_runner->PostTask( ++ FROM_HERE, base::BindOnce(&HidServiceFreeBSD::OpenOnBlockingThread, ++ std::move(params))); ++} ++ ++// static ++void HidServiceFreeBSD::FinishOpen(std::unique_ptr<ConnectParams> params) { ++ DCHECK(params->fd.is_valid()); ++ ++ if (!base::SetNonBlocking(params->fd.get())) { ++ HID_PLOG(ERROR) << "Failed to set the non-blocking flag on the device fd"; ++ std::move(params->callback).Run(nullptr); ++ } ++ ++ std::move(params->callback).Run(base::MakeRefCounted<HidConnectionFreeBSD>( ++ std::move(params->device_info), ++ std::move(params->fd), ++ std::move(params->blocking_task_runner), ++ params->allow_protected_reports, ++ params->allow_fido_reports ++ )); ++} ++ ++} // namespace device diff --git a/devel/electron18/files/patch-services_device_hid_hid__service__freebsd.h b/devel/electron18/files/patch-services_device_hid_hid__service__freebsd.h new file mode 100644 index 000000000000..0038f87b1864 --- /dev/null +++ b/devel/electron18/files/patch-services_device_hid_hid__service__freebsd.h @@ -0,0 +1,52 @@ +--- services/device/hid/hid_service_freebsd.h.orig 2022-05-13 07:20:05 UTC ++++ services/device/hid/hid_service_freebsd.h +@@ -0,0 +1,49 @@ ++// Copyright 2014 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. ++ ++#ifndef DEVICE_HID_HID_SERVICE_FREEBSD_H_ ++#define DEVICE_HID_HID_SERVICE_FREEBSD_H_ ++ ++#include <string> ++ ++#include "base/memory/ref_counted.h" ++#include "base/memory/weak_ptr.h" ++#include "base/timer/timer.h" ++#include "services/device/hid/hid_service.h" ++#include "net/base/io_buffer.h" ++ ++namespace device { ++ ++class HidServiceFreeBSD : public HidService { ++ public: ++ HidServiceFreeBSD(); ++ ++ HidServiceFreeBSD(const HidServiceFreeBSD&) = delete; ++ HidServiceFreeBSD& operator=(const HidServiceFreeBSD&) = delete; ++ ++ ~HidServiceFreeBSD() override; ++ ++ void Connect(const std::string& device_guid, ++ bool allow_protected_reports, ++ bool allow_fido_reports, ++ ConnectCallback connect) override; ++ base::WeakPtr<HidService> GetWeakPtr() override; ++ ++ private: ++ struct ConnectParams; ++ class BlockingTaskRunnerHelper; ++ ++ static void OpenOnBlockingThread(std::unique_ptr<ConnectParams> params); ++ static void FinishOpen(std::unique_ptr<ConnectParams> params); ++ ++ const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; ++ // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds ++ // a weak reference back to the service that owns it. ++ std::unique_ptr<BlockingTaskRunnerHelper, base::OnTaskRunnerDeleter> helper_; ++ base::WeakPtrFactory<HidServiceFreeBSD> weak_factory_{this}; ++}; ++ ++} // namespace device ++ ++#endif // DEVICE_HID_HID_SERVICE_FREEBSD_H_ diff --git a/devel/electron18/files/patch-services_device_serial_BUILD.gn b/devel/electron18/files/patch-services_device_serial_BUILD.gn new file mode 100644 index 000000000000..07f8e9591b4a --- /dev/null +++ b/devel/electron18/files/patch-services_device_serial_BUILD.gn @@ -0,0 +1,16 @@ +--- services/device/serial/BUILD.gn.orig 2022-05-11 07:00:53 UTC ++++ services/device/serial/BUILD.gn +@@ -83,6 +83,13 @@ if (is_win || ((is_linux || is_chromeos) && use_udev) + ] + } + ++ if (is_bsd) { ++ sources -= [ ++ "serial_device_enumerator_linux.cc", ++ "serial_device_enumerator_linux.h" ++ ] ++ } ++ + if (use_udev) { + deps += [ "//device/udev_linux" ] + } diff --git a/devel/electron18/files/patch-services_device_serial_serial__device__enumerator.cc b/devel/electron18/files/patch-services_device_serial_serial__device__enumerator.cc new file mode 100644 index 000000000000..59777a710fbd --- /dev/null +++ b/devel/electron18/files/patch-services_device_serial_serial__device__enumerator.cc @@ -0,0 +1,20 @@ +--- services/device/serial/serial_device_enumerator.cc.orig 2022-05-19 05:17:45 UTC ++++ services/device/serial/serial_device_enumerator.cc +@@ -10,7 +10,7 @@ + #include "build/build_config.h" + #include "components/device_event_log/device_event_log.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "services/device/serial/serial_device_enumerator_linux.h" + #elif BUILDFLAG(IS_MAC) + #include "services/device/serial/serial_device_enumerator_mac.h" +@@ -23,7 +23,7 @@ namespace device { + // static + std::unique_ptr<SerialDeviceEnumerator> SerialDeviceEnumerator::Create( + scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return SerialDeviceEnumeratorLinux::Create(); + #elif BUILDFLAG(IS_MAC) + return std::make_unique<SerialDeviceEnumeratorMac>(); diff --git a/devel/electron18/files/patch-services_device_serial_serial__io__handler__posix.cc b/devel/electron18/files/patch-services_device_serial_serial__io__handler__posix.cc new file mode 100644 index 000000000000..ae1334cc16ac --- /dev/null +++ b/devel/electron18/files/patch-services_device_serial_serial__io__handler__posix.cc @@ -0,0 +1,11 @@ +--- services/device/serial/serial_io_handler_posix.cc.orig 2022-05-19 05:17:45 UTC ++++ services/device/serial/serial_io_handler_posix.cc +@@ -68,7 +68,7 @@ bool BitrateToSpeedConstant(int bitrate, speed_t* spee + BITRATE_TO_SPEED_CASE(9600) + BITRATE_TO_SPEED_CASE(19200) + BITRATE_TO_SPEED_CASE(38400) +-#if !BUILDFLAG(IS_MAC) ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + BITRATE_TO_SPEED_CASE(57600) + BITRATE_TO_SPEED_CASE(115200) + BITRATE_TO_SPEED_CASE(230400) diff --git a/devel/electron18/files/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc b/devel/electron18/files/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc new file mode 100644 index 000000000000..adadbef54d91 --- /dev/null +++ b/devel/electron18/files/patch-services_device_time__zone__monitor_time__zone__monitor__linux.cc @@ -0,0 +1,14 @@ +--- services/device/time_zone_monitor/time_zone_monitor_linux.cc.orig 2022-05-19 05:17:45 UTC ++++ services/device/time_zone_monitor/time_zone_monitor_linux.cc +@@ -137,7 +137,11 @@ class TimeZoneMonitorLinuxImpl + // false positives are harmless, assuming the false positive rate is + // reasonable. + const char* const kFilesToWatch[] = { ++#if defined(OS_BSD) ++ "/etc/localtime", ++#else + "/etc/localtime", "/etc/timezone", "/etc/TZ", ++#endif + }; + for (size_t index = 0; index < base::size(kFilesToWatch); ++index) { + file_path_watchers_.push_back(std::make_unique<base::FilePathWatcher>()); diff --git a/devel/electron18/files/patch-services_device_usb_BUILD.gn b/devel/electron18/files/patch-services_device_usb_BUILD.gn new file mode 100644 index 000000000000..32577c18ffa3 --- /dev/null +++ b/devel/electron18/files/patch-services_device_usb_BUILD.gn @@ -0,0 +1,38 @@ +--- services/device/usb/BUILD.gn.orig 2022-05-19 05:17:45 UTC ++++ services/device/usb/BUILD.gn +@@ -103,15 +103,17 @@ static_library("usb") { + deps += [ "//third_party/re2" ] + } + +- if (is_mac) { +- sources += [ +- "usb_device_handle_mac.cc", +- "usb_device_handle_mac.h", +- "usb_device_mac.cc", +- "usb_device_mac.h", +- "usb_service_mac.cc", +- "usb_service_mac.h", +- ] ++ if (is_mac || is_bsd) { ++ if (is_mac) { ++ sources += [ ++ "usb_device_handle_mac.cc", ++ "usb_device_handle_mac.h", ++ "usb_device_mac.cc", ++ "usb_device_mac.h", ++ "usb_service_mac.cc", ++ "usb_service_mac.h", ++ ] ++ } + + # These sources and deps are required for libusb. + # TODO(https://crbug.com/1096743) Remove these sources. +@@ -152,7 +154,7 @@ static_library("usb") { + deps += [ "//device/udev_linux" ] + } + +- if (is_android || is_chromeos || is_linux) { ++ if (is_android || is_chromeos || is_linux && !is_bsd) { + sources += [ + "usb_device_handle_usbfs.cc", + "usb_device_handle_usbfs.h", diff --git a/devel/electron18/files/patch-services_network_BUILD.gn b/devel/electron18/files/patch-services_network_BUILD.gn new file mode 100644 index 000000000000..8f7397ad3e06 --- /dev/null +++ b/devel/electron18/files/patch-services_network_BUILD.gn @@ -0,0 +1,10 @@ +--- services/network/BUILD.gn.orig 2022-05-19 05:17:45 UTC ++++ services/network/BUILD.gn +@@ -323,7 +323,6 @@ if (is_linux || is_chromeos) { + ] + deps = [ + "//base:base", +- "//sandbox/linux:sandbox_services", + "//sandbox/policy:policy", + ] + } diff --git a/devel/electron18/files/patch-services_network_network__sandbox__hook__linux.cc b/devel/electron18/files/patch-services_network_network__sandbox__hook__linux.cc new file mode 100644 index 000000000000..c698244ac39c --- /dev/null +++ b/devel/electron18/files/patch-services_network_network__sandbox__hook__linux.cc @@ -0,0 +1,26 @@ +--- services/network/network_sandbox_hook_linux.cc.orig 2022-05-19 03:45:39 UTC ++++ services/network/network_sandbox_hook_linux.cc +@@ -26,12 +26,15 @@ sandbox::syscall_broker::BrokerCommandSet GetNetworkBr + }); + } + ++#if !defined(OS_BSD) + std::vector<BrokerFilePermission> GetNetworkFilePermissions() { + // TODO(tsepez): remove universal permission under filesystem root. + return {BrokerFilePermission::ReadWriteCreateRecursive("/")}; + } ++#endif + + bool NetworkPreSandboxHook(sandbox::policy::SandboxLinux::Options options) { ++#if !defined(OS_BSD) + auto* instance = sandbox::policy::SandboxLinux::GetInstance(); + + instance->StartBrokerProcess( +@@ -39,6 +42,7 @@ bool NetworkPreSandboxHook(sandbox::policy::SandboxLin + sandbox::policy::SandboxLinux::PreSandboxHook(), options); + + instance->EngageNamespaceSandboxIfPossible(); ++#endif + return true; + } + diff --git a/devel/electron18/files/patch-services_network_network__sandbox__hook__linux.h b/devel/electron18/files/patch-services_network_network__sandbox__hook__linux.h new file mode 100644 index 000000000000..8d5af5cd878b --- /dev/null +++ b/devel/electron18/files/patch-services_network_network__sandbox__hook__linux.h @@ -0,0 +1,14 @@ +--- services/network/network_sandbox_hook_linux.h.orig 2022-05-11 07:00:54 UTC ++++ services/network/network_sandbox_hook_linux.h +@@ -10,7 +10,11 @@ + #include "base/component_export.h" + #include "sandbox/linux/syscall_broker/broker_command.h" + #include "sandbox/linux/syscall_broker/broker_file_permission.h" ++#if defined(OS_BSD) ++#include "sandbox/policy/openbsd/sandbox_openbsd.h" ++#else + #include "sandbox/policy/linux/sandbox_linux.h" ++#endif + + namespace network { + diff --git a/devel/electron18/files/patch-services_network_network__service.cc b/devel/electron18/files/patch-services_network_network__service.cc new file mode 100644 index 000000000000..148f6dd8e2c5 --- /dev/null +++ b/devel/electron18/files/patch-services_network_network__service.cc @@ -0,0 +1,11 @@ +--- services/network/network_service.cc.orig 2022-05-19 05:17:45 UTC ++++ services/network/network_service.cc +@@ -82,7 +82,7 @@ + #include "third_party/boringssl/src/include/openssl/cpu.h" + #endif + +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \ ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) && \ + !BUILDFLAG(IS_CHROMECAST) + #include "components/os_crypt/key_storage_config_linux.h" + #endif diff --git a/devel/electron18/files/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc b/devel/electron18/files/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc new file mode 100644 index 000000000000..a8c48aae5857 --- /dev/null +++ b/devel/electron18/files/patch-services_resource__coordinator_memory__instrumentation_queued__request__dispatcher.cc @@ -0,0 +1,65 @@ +--- services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc.orig 2022-05-19 03:45:39 UTC ++++ services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc +@@ -52,7 +52,7 @@ uint32_t CalculatePrivateFootprintKb(const mojom::RawO + uint32_t shared_resident_kb) { + DCHECK(os_dump.platform_private_footprint); + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + uint64_t rss_anon_bytes = os_dump.platform_private_footprint->rss_anon_bytes; + uint64_t vm_swap_bytes = os_dump.platform_private_footprint->vm_swap_bytes; + return (rss_anon_bytes + vm_swap_bytes) / 1024; +@@ -91,7 +91,7 @@ memory_instrumentation::mojom::OSMemDumpPtr CreatePubl + os_dump->is_peak_rss_resettable = internal_os_dump.is_peak_rss_resettable; + os_dump->private_footprint_kb = + CalculatePrivateFootprintKb(internal_os_dump, shared_resident_kb); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + os_dump->private_footprint_swap_kb = + internal_os_dump.platform_private_footprint->vm_swap_bytes / 1024; + #endif +@@ -270,7 +270,7 @@ void QueuedRequestDispatcher::SetUpAndDispatch( + + // On most platforms each process can dump data about their own process + // so ask each process to do so Linux is special see below. +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + request->pending_responses.insert({client_info.pid, ResponseType::kOSDump}); + client->RequestOSMemoryDump(request->memory_map_option(), + {base::kNullProcessId}, +@@ -285,7 +285,7 @@ void QueuedRequestDispatcher::SetUpAndDispatch( + + // In some cases, OS stats can only be dumped from a privileged process to + // get around to sandboxing/selinux restrictions (see crbug.com/461788). +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::vector<base::ProcessId> pids; + mojom::ClientProcess* browser_client = nullptr; + base::ProcessId browser_client_pid = base::kNullProcessId; +@@ -331,7 +331,7 @@ void QueuedRequestDispatcher::SetUpAndDispatchVmRegion + const OsCallback& os_callback) { + // On Linux, OS stats can only be dumped from a privileged process to + // get around to sandboxing/selinux restrictions (see crbug.com/461788). +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + mojom::ClientProcess* browser_client = nullptr; + base::ProcessId browser_client_pid = 0; + for (const auto& client_info : clients) { +@@ -382,7 +382,7 @@ QueuedRequestDispatcher::FinalizeVmRegionRequest( + // each client process provides 1 OS dump, % the case where the client is + // disconnected mid dump. + OSMemDumpMap& extra_os_dumps = response.second.os_dumps; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + for (auto& kv : extra_os_dumps) { + auto pid = kv.first == base::kNullProcessId ? original_pid : kv.first; + DCHECK(results.find(pid) == results.end()); +@@ -444,7 +444,7 @@ void QueuedRequestDispatcher::Finalize(QueuedRequest* + // crash). In the latter case (OS_LINUX) we expect the full map to come + // from the browser process response. + OSMemDumpMap& extra_os_dumps = response.second.os_dumps; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + for (const auto& kv : extra_os_dumps) { + auto pid = kv.first == base::kNullProcessId ? original_pid : kv.first; + DCHECK_EQ(pid_to_os_dump[pid], nullptr); diff --git a/devel/electron18/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn b/devel/electron18/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn new file mode 100644 index 000000000000..ee2600a2b660 --- /dev/null +++ b/devel/electron18/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_BUILD.gn @@ -0,0 +1,16 @@ +--- services/resource_coordinator/public/cpp/memory_instrumentation/BUILD.gn.orig 2022-05-19 03:45:39 UTC ++++ services/resource_coordinator/public/cpp/memory_instrumentation/BUILD.gn +@@ -29,8 +29,12 @@ component("memory_instrumentation") { + sources += [ "os_metrics_win.cc" ] + } + +- if (is_android || is_linux || is_chromeos) { ++ if ((is_android || is_linux || is_chromeos) && !is_bsd) { + sources += [ "os_metrics_linux.cc" ] ++ } ++ ++ if (is_bsd) { ++ sources += [ "os_metrics_bsd.cc" ] + } + + if (is_fuchsia) { diff --git a/devel/electron18/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h b/devel/electron18/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h new file mode 100644 index 000000000000..3b472cb97a5f --- /dev/null +++ b/devel/electron18/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics.h @@ -0,0 +1,20 @@ +--- services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h.orig 2022-05-19 03:45:39 UTC ++++ services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h +@@ -45,7 +45,7 @@ class COMPONENT_EXPORT( + mojom::RawOSMemDump*); + static std::vector<mojom::VmRegionPtr> GetProcessMemoryMaps(base::ProcessId); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + static void SetProcSmapsForTesting(FILE*); + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || + // BUILDFLAG(IS_ANDROID) +@@ -62,7 +62,7 @@ class COMPONENT_EXPORT( + static std::vector<mojom::VmRegionPtr> GetProcessModules(base::ProcessId); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // Provides information on the dump state of resident pages. These values are + // written to logs. New enum values can be added, but existing enums must + // never be renumbered or deleted and reused. diff --git a/devel/electron18/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc b/devel/electron18/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc new file mode 100644 index 000000000000..3de211ad07bb --- /dev/null +++ b/devel/electron18/files/patch-services_resource__coordinator_public_cpp_memory__instrumentation_os__metrics__bsd.cc @@ -0,0 +1,61 @@ +--- services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc.orig 2022-05-20 04:31:06 UTC ++++ services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_bsd.cc +@@ -0,0 +1,58 @@ ++// Copyright 2022 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. ++ ++#include "services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h" ++ ++#include "base/memory/page_size.h" ++#include "base/process/process.h" ++#include "base/process/process_handle.h" ++ ++#include <sys/sysctl.h> ++ ++#include <vector> ++ ++#if BUILDFLAG(IS_OPENBSD) ++#define vm_rssize info.p_vm_rssize ++#elif BUILDFLAG(IS_FREEBSD) ++#include <sys/user.h> ++#define vm_rssize info.ki_rssize ++#endif ++ ++namespace memory_instrumentation { ++ ++// static ++bool OSMetrics::FillOSMemoryDump(base::ProcessId pid, ++ mojom::RawOSMemDump* dump) { ++ base::Process process = pid == base::kNullProcessId ++ ? base::Process::Current() ++ : base::Process::Open(pid); ++ const size_t kPageSize = base::GetPageSize(); ++ struct kinfo_proc info; ++ size_t length = sizeof(struct kinfo_proc); ++#if BUILDFLAG(IS_OPENBSD) ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process.Handle(), ++ static_cast<int>(length), 1 }; ++#elif BUILDFLAG(IS_FREEBSD) ++ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process.Handle() }; ++#endif ++ ++ if (sysctl(mib, std::size(mib), &info, &length, NULL, 0) < 0) ++ return false; ++ ++ dump->resident_set_kb = (vm_rssize * kPageSize) / 1024; ++ dump->platform_private_footprint->rss_anon_bytes = ++ vm_rssize * kPageSize; ++ dump->platform_private_footprint->vm_swap_bytes = 0; ++ ++ return true; ++} ++ ++// static ++std::vector<mojom::VmRegionPtr> OSMetrics::GetProcessMemoryMaps( ++ base::ProcessId) { ++ NOTIMPLEMENTED(); ++ return std::vector<mojom::VmRegionPtr>(); ++} ++ ++} // namespace memory_instrumentation diff --git a/devel/electron18/files/patch-services_service__manager_BUILD.gn b/devel/electron18/files/patch-services_service__manager_BUILD.gn new file mode 100644 index 000000000000..9a96c8457d51 --- /dev/null +++ b/devel/electron18/files/patch-services_service__manager_BUILD.gn @@ -0,0 +1,11 @@ +--- services/service_manager/BUILD.gn.orig 2022-05-11 07:00:54 UTC ++++ services/service_manager/BUILD.gn +@@ -67,7 +67,7 @@ source_set("service_manager") { + ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + deps += [ "//sandbox/linux:sandbox_services" ] + } + } diff --git a/devel/electron18/files/patch-services_service__manager_public_cpp_service__executable_BUILD.gn b/devel/electron18/files/patch-services_service__manager_public_cpp_service__executable_BUILD.gn new file mode 100644 index 000000000000..150bf6c5e9f0 --- /dev/null +++ b/devel/electron18/files/patch-services_service__manager_public_cpp_service__executable_BUILD.gn @@ -0,0 +1,11 @@ +--- services/service_manager/public/cpp/service_executable/BUILD.gn.orig 2021-01-07 00:36:39 UTC ++++ services/service_manager/public/cpp/service_executable/BUILD.gn +@@ -22,7 +22,7 @@ source_set("support") { + "//services/service_manager/public/mojom", + ] + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + deps += [ + "//sandbox/linux:sandbox", + "//sandbox/linux:sandbox_services", diff --git a/devel/electron18/files/patch-services_tracing_public_cpp_perfetto_perfetto__config.cc b/devel/electron18/files/patch-services_tracing_public_cpp_perfetto_perfetto__config.cc new file mode 100644 index 000000000000..6842f7fa3d51 --- /dev/null +++ b/devel/electron18/files/patch-services_tracing_public_cpp_perfetto_perfetto__config.cc @@ -0,0 +1,11 @@ +--- services/tracing/public/cpp/perfetto/perfetto_config.cc.orig 2022-05-19 05:17:45 UTC ++++ services/tracing/public/cpp/perfetto/perfetto_config.cc +@@ -124,7 +124,7 @@ void AddDataSourceConfigs( + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if BUILDFLAG(IS_CHROMEOS_ASH) || \ +- (BUILDFLAG(IS_CHROMECAST) && BUILDFLAG(IS_LINUX)) ++ (BUILDFLAG(IS_CHROMECAST) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))) + if (source_names.empty() || + source_names.count(tracing::mojom::kSystemTraceDataSourceName) == 1) { + AddDataSourceConfig( diff --git a/devel/electron18/files/patch-services_video__capture_broadcasting__receiver.cc b/devel/electron18/files/patch-services_video__capture_broadcasting__receiver.cc new file mode 100644 index 000000000000..30b1b22750ce --- /dev/null +++ b/devel/electron18/files/patch-services_video__capture_broadcasting__receiver.cc @@ -0,0 +1,20 @@ +--- services/video_capture/broadcasting_receiver.cc.orig 2022-05-19 05:17:45 UTC ++++ services/video_capture/broadcasting_receiver.cc +@@ -28,7 +28,7 @@ void CloneSharedBufferHandle(const mojo::ScopedSharedB + void CloneSharedBufferToRawFileDescriptorHandle( + const mojo::ScopedSharedBufferHandle& source, + media::mojom::VideoBufferHandlePtr* target) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // |source| is unwrapped to a |PlatformSharedMemoryRegion|, from whence a file + // descriptor can be extracted which is then mojo-wrapped. + base::subtle::PlatformSharedMemoryRegion platform_region = +@@ -240,7 +240,7 @@ void BroadcastingReceiver::BufferContext:: + ConvertRawFileDescriptorToSharedBuffer() { + DCHECK(buffer_handle_->is_shared_memory_via_raw_file_descriptor()); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The conversion unwraps the descriptor from its mojo handle to the raw file + // descriptor (ie, an int). This is used to create a + // PlatformSharedMemoryRegion which is then wrapped as a diff --git a/devel/electron18/files/patch-services_video__capture_public_mojom_video__capture__service.mojom b/devel/electron18/files/patch-services_video__capture_public_mojom_video__capture__service.mojom new file mode 100644 index 000000000000..ab32ca5a901a --- /dev/null +++ b/devel/electron18/files/patch-services_video__capture_public_mojom_video__capture__service.mojom @@ -0,0 +1,15 @@ +--- services/video_capture/public/mojom/video_capture_service.mojom.orig 2022-05-11 07:00:54 UTC ++++ services/video_capture/public/mojom/video_capture_service.mojom +@@ -21,10 +21,10 @@ interface AcceleratorFactory { + pending_receiver<chromeos_camera.mojom.MjpegDecodeAccelerator> jda); + }; + +-[EnableIf=is_fuchsia] ++[EnableIf=is_openbsd] + const sandbox.mojom.Sandbox kVideoCaptureSandbox + = sandbox.mojom.Sandbox.kVideoCapture; +-[EnableIfNot=is_fuchsia] ++[EnableIfNot=is_openbsd] + const sandbox.mojom.Sandbox kVideoCaptureSandbox + = sandbox.mojom.Sandbox.kNoSandbox; + diff --git a/devel/electron18/files/patch-skia_ext_SkMemory__new__handler.cpp b/devel/electron18/files/patch-skia_ext_SkMemory__new__handler.cpp new file mode 100644 index 000000000000..f3d0dc42c466 --- /dev/null +++ b/devel/electron18/files/patch-skia_ext_SkMemory__new__handler.cpp @@ -0,0 +1,11 @@ +--- skia/ext/SkMemory_new_handler.cpp.orig 2022-05-19 03:45:39 UTC ++++ skia/ext/SkMemory_new_handler.cpp +@@ -79,7 +79,7 @@ static void* malloc_nothrow(size_t size) { + // TODO(b.kelemen): we should always use UncheckedMalloc but currently it + // doesn't work as intended everywhere. + void* result; +-#if BUILDFLAG(IS_IOS) ++#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_BSD) + result = malloc(size); + #else + // It's the responsibility of the caller to check the return value. diff --git a/devel/electron18/files/patch-third__party_abseil-cpp_absl_base_config.h b/devel/electron18/files/patch-third__party_abseil-cpp_absl_base_config.h new file mode 100644 index 000000000000..b49099df3b2f --- /dev/null +++ b/devel/electron18/files/patch-third__party_abseil-cpp_absl_base_config.h @@ -0,0 +1,40 @@ +--- third_party/abseil-cpp/absl/base/config.h.orig 2022-05-11 07:16:54 UTC ++++ third_party/abseil-cpp/absl/base/config.h +@@ -414,7 +414,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != + defined(_AIX) || defined(__ros__) || defined(__native_client__) || \ + defined(__asmjs__) || defined(__wasm__) || defined(__Fuchsia__) || \ + defined(__sun) || defined(__ASYLO__) || defined(__myriad2__) || \ +- defined(__HAIKU__) ++ defined(__HAIKU__) || defined(__OpenBSD__) + #define ABSL_HAVE_MMAP 1 + #endif + +@@ -425,7 +425,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != + #ifdef ABSL_HAVE_PTHREAD_GETSCHEDPARAM + #error ABSL_HAVE_PTHREAD_GETSCHEDPARAM cannot be directly set + #elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \ +- defined(_AIX) || defined(__ros__) ++ defined(_AIX) || defined(__ros__) || defined(__OpenBSD__) + #define ABSL_HAVE_PTHREAD_GETSCHEDPARAM 1 + #endif + +@@ -444,7 +444,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != + // POSIX.1-2001. + #ifdef ABSL_HAVE_SCHED_YIELD + #error ABSL_HAVE_SCHED_YIELD cannot be directly set +-#elif defined(__linux__) || defined(__ros__) || defined(__native_client__) ++#elif defined(__linux__) || defined(__ros__) || defined(__native_client__) || \ ++ defined(__OpenBSD__) || defined(__FreeBSD__) + #define ABSL_HAVE_SCHED_YIELD 1 + #endif + +@@ -459,7 +460,8 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != + // platforms. + #ifdef ABSL_HAVE_SEMAPHORE_H + #error ABSL_HAVE_SEMAPHORE_H cannot be directly set +-#elif defined(__linux__) || defined(__ros__) ++#elif defined(__linux__) || defined(__ros__) || defined(__OpenBSD__) || \ ++ defined(__FreeBSD__) + #define ABSL_HAVE_SEMAPHORE_H 1 + #endif + diff --git a/devel/electron18/files/patch-third__party_abseil-cpp_absl_base_internal_endian.h b/devel/electron18/files/patch-third__party_abseil-cpp_absl_base_internal_endian.h new file mode 100644 index 000000000000..c712414157f7 --- /dev/null +++ b/devel/electron18/files/patch-third__party_abseil-cpp_absl_base_internal_endian.h @@ -0,0 +1,11 @@ +--- third_party/abseil-cpp/absl/base/internal/endian.h.orig 2022-05-11 07:16:54 UTC ++++ third_party/abseil-cpp/absl/base/internal/endian.h +@@ -19,7 +19,7 @@ + // The following guarantees declaration of the byte swap functions + #ifdef _MSC_VER + #include <stdlib.h> // NOLINT(build/include) +-#elif defined(__FreeBSD__) ++#elif defined(__FreeBSD__) || defined(__OpenBSD__) + #include <sys/endian.h> + #elif defined(__GLIBC__) + #include <byteswap.h> // IWYU pragma: export diff --git a/devel/electron18/files/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc b/devel/electron18/files/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc new file mode 100644 index 000000000000..825ca2e149b1 --- /dev/null +++ b/devel/electron18/files/patch-third__party_abseil-cpp_absl_base_internal_sysinfo.cc @@ -0,0 +1,23 @@ +--- third_party/abseil-cpp/absl/base/internal/sysinfo.cc.orig 2022-05-11 07:16:54 UTC ++++ third_party/abseil-cpp/absl/base/internal/sysinfo.cc +@@ -30,7 +30,7 @@ + #include <sys/syscall.h> + #endif + +-#if defined(__APPLE__) || defined(__FreeBSD__) ++#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) + #include <sys/sysctl.h> + #endif + +@@ -308,9 +308,11 @@ static double GetNominalCPUFrequency() { + // a new mode (turbo mode). Essentially, those frequencies cannot + // always be relied upon. The same reasons apply to /proc/cpuinfo as + // well. ++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) // pledge violation + if (ReadLongFromFile("/sys/devices/system/cpu/cpu0/tsc_freq_khz", &freq)) { + return freq * 1e3; // Value is kHz. + } ++#endif + + #if defined(ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY) + // On these platforms, the TSC frequency is the nominal CPU diff --git a/devel/electron18/files/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h b/devel/electron18/files/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h new file mode 100644 index 000000000000..9d0a55a8fd58 --- /dev/null +++ b/devel/electron18/files/patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.h @@ -0,0 +1,11 @@ +--- third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h.orig 2022-05-11 07:16:54 UTC ++++ third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +@@ -32,7 +32,7 @@ + #endif + + #if defined(__ELF__) && !defined(__native_client__) && !defined(__asmjs__) && \ +- !defined(__wasm__) ++ !defined(__wasm__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) + #define ABSL_HAVE_ELF_MEM_IMAGE 1 + #endif + diff --git a/devel/electron18/files/patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc b/devel/electron18/files/patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc new file mode 100644 index 000000000000..c2bfd50613a5 --- /dev/null +++ b/devel/electron18/files/patch-third__party_abseil-cpp_absl_time_internal_cctz_src_time__zone__format.cc @@ -0,0 +1,11 @@ +--- third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc.orig 2022-05-11 07:00:55 UTC ++++ third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +@@ -19,7 +19,7 @@ + #endif + + #if defined(HAS_STRPTIME) && HAS_STRPTIME +-#if !defined(_XOPEN_SOURCE) ++#if !defined(_XOPEN_SOURCE) && !defined(__OpenBSD__) && !defined(__FreeBSD__) + #define _XOPEN_SOURCE // Definedness suffices for strptime. + #endif + #endif diff --git a/devel/electron18/files/patch-third__party_angle_BUILD.gn b/devel/electron18/files/patch-third__party_angle_BUILD.gn new file mode 100644 index 000000000000..3349d3ddb548 --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_BUILD.gn @@ -0,0 +1,29 @@ +--- third_party/angle/BUILD.gn.orig 2022-05-11 07:17:22 UTC ++++ third_party/angle/BUILD.gn +@@ -206,7 +206,6 @@ config("extra_warnings") { + "-Wtautological-type-limit-compare", + "-Wundefined-reinterpret-cast", + "-Wunneeded-internal-declaration", +- "-Wunused-but-set-variable", + "-Wsuggest-destructor-override", + "-Wsuggest-override", + +@@ -384,7 +383,7 @@ angle_static_library("angle_common") { + all_dependent_configs = [ ":angle_disable_pool_alloc" ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + libs = [ "dl" ] + } + +@@ -498,6 +497,9 @@ angle_static_library("angle_gpu_info_util") { + "Xi", + "Xext", + ] ++ if (is_bsd) { ++ libs += [ "GL" ] ++ } + } + } + diff --git a/devel/electron18/files/patch-third__party_angle_src_common_platform.h b/devel/electron18/files/patch-third__party_angle_src_common_platform.h new file mode 100644 index 000000000000..21ecb832eccb --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_src_common_platform.h @@ -0,0 +1,19 @@ +--- third_party/angle/src/common/platform.h.orig 2022-05-11 07:17:22 UTC ++++ third_party/angle/src/common/platform.h +@@ -26,7 +26,15 @@ + #elif defined(__linux__) || defined(EMSCRIPTEN) + # define ANGLE_PLATFORM_LINUX 1 + # define ANGLE_PLATFORM_POSIX 1 +-#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || \ ++#elif defined(__OpenBSD__) ++# define ANGLE_PLATFORM_OPENBSD 1 ++# define ANGLE_PLATFORM_POSIX 1 ++# define ANGLE_PLATFORM_BSD 1 ++#elif defined(__FreeBSD__) ++# define ANGLE_PLATFORM_FREEBSD 1 ++# define ANGLE_PLATFORM_POSIX 1 ++# define ANGLE_PLATFORM_BSD 1 ++#elif defined(__NetBSD__) || \ + defined(__DragonFly__) || defined(__sun) || defined(__GLIBC__) || defined(__GNU__) || \ + defined(__QNX__) || defined(__Fuchsia__) || defined(__HAIKU__) + # define ANGLE_PLATFORM_POSIX 1 diff --git a/devel/electron18/files/patch-third__party_angle_src_common_system__utils__posix.cpp b/devel/electron18/files/patch-third__party_angle_src_common_system__utils__posix.cpp new file mode 100644 index 000000000000..7b9d70c04776 --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_src_common_system__utils__posix.cpp @@ -0,0 +1,12 @@ +--- third_party/angle/src/common/system_utils_posix.cpp.orig 2022-05-19 05:18:20 UTC ++++ third_party/angle/src/common/system_utils_posix.cpp +@@ -197,7 +197,9 @@ void *OpenSystemLibraryWithExtensionAndGetError(const + int extraFlags = 0; + if (searchType == SearchType::AlreadyLoaded) + { ++#if !defined(__OpenBSD__) + extraFlags = RTLD_NOLOAD; ++#endif + } + + std::string fullPath = directory + libraryName; diff --git a/devel/electron18/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h b/devel/electron18/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h new file mode 100644 index 000000000000..a7f44f355eea --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__internal.h @@ -0,0 +1,16 @@ +--- third_party/angle/src/gpu_info_util/SystemInfo_internal.h.orig 2022-05-11 07:03:14 UTC ++++ third_party/angle/src/gpu_info_util/SystemInfo_internal.h +@@ -14,6 +14,13 @@ + namespace angle + { + ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++bool CollectMesaCardInfo(std::vector<GPUDeviceInfo> *devices); ++#if defined(__FreeBSD__) ++bool GetPCIDevicesFreeBSD(std::vector<GPUDeviceInfo> *devices); ++#endif ++#endif ++ + // Defined in SystemInfo_libpci when GPU_INFO_USE_LIBPCI is defined. + bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices); + // Defined in SystemInfo_x11 when GPU_INFO_USE_X11 is defined. diff --git a/devel/electron18/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp b/devel/electron18/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp new file mode 100644 index 000000000000..056966760053 --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__libpci.cpp @@ -0,0 +1,90 @@ +--- third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp.orig 2021-07-15 19:15:42 UTC ++++ third_party/angle/src/gpu_info_util/SystemInfo_libpci.cpp +@@ -12,6 +12,11 @@ + #include <pci/pci.h> + #include <unistd.h> + ++#if defined(__FreeBSD__) ++#include <fcntl.h> ++#include <sys/pciio.h> ++#endif ++ + #include "common/angleutils.h" + #include "common/debug.h" + +@@ -85,6 +90,75 @@ struct LibPCI : private angle::NonCopyable + }; + + } // anonymous namespace ++ ++#if defined(__FreeBSD__) ++// Adds an entry per PCI GPU found and fills the device and vendor ID. ++bool GetPCIDevicesFreeBSD(std::vector<GPUDeviceInfo> *devices) ++{ ++ int fd; ++ struct pci_conf_io conf; ++ struct pci_conf *matches; ++ uint32_t offset = 0; ++ ++ fd = open("/dev/pci", O_RDONLY); ++ if (fd < 0) ++ return false; ++ ++ matches = new struct pci_conf[32]; ++ conf.generation = 0; ++ do { ++ conf.pat_buf_len = 0; ++ conf.num_patterns = 0; ++ conf.patterns = NULL; ++ conf.match_buf_len = 32 * sizeof(struct pci_conf); ++ conf.num_matches = 32; ++ conf.matches = matches; ++ conf.offset = offset; ++ conf.status = PCI_GETCONF_ERROR; ++ if (ioctl(fd, PCIOCGETCONF, &conf) < 0) { ++ if (errno == ENODEV) ++ break; ++ } ++ /* PCI_GETCONF_LIST_CHANGED would require us to start over. */ ++ if (conf.status == PCI_GETCONF_ERROR || conf.status == PCI_GETCONF_LIST_CHANGED) { ++ break; ++ } ++ ++ for (unsigned int i = 0; i < conf.num_matches; i++) { ++ uint16_t device_class = (matches[i].pc_class << 8) | matches[i].pc_subclass; ++ ++ // Skip non-GPU devices ++ switch (device_class) ++ { ++ case PCI_CLASS_DISPLAY_VGA: ++ case PCI_CLASS_DISPLAY_XGA: ++ case PCI_CLASS_DISPLAY_3D: ++ break; ++ default: ++ continue; ++ } ++ ++ // Skip unknown devices ++ if (matches[i].pc_vendor == 0 || matches[i].pc_device == 0) { ++ continue; ++ } ++ ++ GPUDeviceInfo info; ++ info.vendorId = matches[i].pc_vendor; ++ info.deviceId = matches[i].pc_device; ++ ++ devices->push_back(info); ++ } ++ offset += conf.num_matches; ++ } while (conf.status == PCI_GETCONF_MORE_DEVS); ++ ++ delete[] matches; ++ ++ close(fd); ++ ++ return true; ++} ++#endif + + // Adds an entry per PCI GPU found and fills the device and vendor ID. + bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo> *devices) diff --git a/devel/electron18/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp b/devel/electron18/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp new file mode 100644 index 000000000000..6a9990f48f7f --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__linux.cpp @@ -0,0 +1,35 @@ +--- third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp.orig 2022-05-11 07:03:14 UTC ++++ third_party/angle/src/gpu_info_util/SystemInfo_linux.cpp +@@ -71,6 +71,24 @@ bool GetPCIDevicesWithLibPCI(std::vector<GPUDeviceInfo + + bool GetSystemInfo(SystemInfo *info) + { ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++ if (!CollectMesaCardInfo(&(info->gpus))) ++ { ++#if defined(__FreeBSD__) ++ if (!GetPCIDevicesFreeBSD(&(info->gpus))) ++ { ++#endif ++#if defined(ANGLE_USE_VULKAN_SYSTEM_INFO) ++ // Try vulkan backend to get GPU info ++ return GetSystemInfoVulkan(info); ++#else ++ return false; ++#endif ++#if defined(__FreeBSD__) ++ } ++#endif ++ } ++#else + if (!GetPCIDevicesWithLibPCI(&(info->gpus))) + { + #if defined(ANGLE_USE_VULKAN_SYSTEM_INFO) +@@ -85,6 +103,7 @@ bool GetSystemInfo(SystemInfo *info) + { + return false; + } ++#endif + + GetDualGPUInfo(info); + diff --git a/devel/electron18/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp b/devel/electron18/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp new file mode 100644 index 000000000000..66f947e7afb3 --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_src_gpu__info__util_SystemInfo__x11.cpp @@ -0,0 +1,60 @@ +--- third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp.orig 2022-05-11 07:03:14 UTC ++++ third_party/angle/src/gpu_info_util/SystemInfo_x11.cpp +@@ -8,6 +8,10 @@ + + #include "gpu_info_util/SystemInfo_internal.h" + ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++#include <GL/glx.h> ++#include <GL/glxext.h> ++#endif + #include <X11/Xlib.h> + + #include "common/debug.h" +@@ -18,8 +22,46 @@ + # error SystemInfo_x11.cpp compiled without GPU_INFO_USE_X11 + #endif + ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++#define GLX_RENDERER_VENDOR_ID_MESA 0x8183 ++#define GLX_RENDERER_DEVICE_ID_MESA 0x8184 ++#endif ++ + namespace angle + { ++ ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++bool CollectMesaCardInfo(std::vector<GPUDeviceInfo> *devices) ++{ ++ unsigned int vid[3], did[3]; ++ ++ Display *display = XOpenDisplay(NULL); ++ if (!display) { ++ return false; ++ } ++ ++ PFNGLXQUERYRENDERERINTEGERMESAPROC queryInteger = ++ (PFNGLXQUERYRENDERERINTEGERMESAPROC) glXGetProcAddressARB((const GLubyte *) ++ "glXQueryRendererIntegerMESA"); ++ ++ if (!queryInteger) ++ return false; ++ ++ bool vendor_ret = ++ queryInteger(display, 0, 0, GLX_RENDERER_VENDOR_ID_MESA, vid); ++ bool device_ret = ++ queryInteger(display, 0, 0, GLX_RENDERER_DEVICE_ID_MESA, did); ++ ++ if (vendor_ret && device_ret) { ++ GPUDeviceInfo info; ++ info.vendorId = vid[0]; ++ info.deviceId = did[0]; ++ devices->push_back(info); ++ } ++ ++ return true; ++} ++#endif + + bool GetNvidiaDriverVersionWithXNVCtrl(std::string *version) + { diff --git a/devel/electron18/files/patch-third__party_angle_src_libANGLE_Display.cpp b/devel/electron18/files/patch-third__party_angle_src_libANGLE_Display.cpp new file mode 100644 index 000000000000..5360c3fce7ee --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_src_libANGLE_Display.cpp @@ -0,0 +1,47 @@ +--- third_party/angle/src/libANGLE/Display.cpp.orig 2022-05-19 05:18:21 UTC ++++ third_party/angle/src/libANGLE/Display.cpp +@@ -55,7 +55,7 @@ + # include "libANGLE/renderer/gl/wgl/DisplayWGL.h" + # elif defined(ANGLE_PLATFORM_MACOS) || defined(ANGLE_PLATFORM_IOS) + # include "libANGLE/renderer/gl/apple/DisplayApple_api.h" +-# elif defined(ANGLE_PLATFORM_LINUX) ++# elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD) + # include "libANGLE/renderer/gl/egl/DisplayEGL.h" + # if defined(ANGLE_USE_GBM) + # include "libANGLE/renderer/gl/egl/gbm/DisplayGbm.h" +@@ -320,7 +320,7 @@ rx::DisplayImpl *CreateDisplayFromAttribs(EGLAttrib di + impl = rx::CreateDisplayCGLOrEAGL(state); + break; + +-# elif defined(ANGLE_PLATFORM_LINUX) ++# elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD) + # if defined(ANGLE_USE_GBM) + if (platformType == 0) + { +@@ -365,7 +365,7 @@ rx::DisplayImpl *CreateDisplayFromAttribs(EGLAttrib di + #if defined(ANGLE_ENABLE_OPENGL) + # if defined(ANGLE_PLATFORM_WINDOWS) + impl = new rx::DisplayWGL(state); +-# elif defined(ANGLE_PLATFORM_LINUX) ++# elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD) + # if defined(ANGLE_USE_GBM) + if (platformType == 0 || + platformType == EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE) +@@ -416,7 +416,7 @@ rx::DisplayImpl *CreateDisplayFromAttribs(EGLAttrib di + impl = rx::CreateVulkanWin32Display(state); + } + break; +-# elif defined(ANGLE_PLATFORM_LINUX) ++# elif defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD) + # if defined(ANGLE_USE_X11) + if (platformType == EGL_PLATFORM_X11_EXT && rx::IsVulkanXcbDisplayAvailable()) + { +@@ -1915,7 +1915,7 @@ static ClientExtensions GenerateClientExtensions() + extensions.x11Visual = true; + #endif + +-#if defined(ANGLE_PLATFORM_LINUX) ++#if defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD) + extensions.platformANGLEDeviceTypeEGLANGLE = true; + #endif + diff --git a/devel/electron18/files/patch-third__party_angle_src_libANGLE_formatutils.cpp b/devel/electron18/files/patch-third__party_angle_src_libANGLE_formatutils.cpp new file mode 100644 index 000000000000..a7bd1bfd1791 --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_src_libANGLE_formatutils.cpp @@ -0,0 +1,11 @@ +--- third_party/angle/src/libANGLE/formatutils.cpp.orig 2022-05-19 05:18:21 UTC ++++ third_party/angle/src/libANGLE/formatutils.cpp +@@ -1388,7 +1388,7 @@ static InternalFormatInfoMap BuildInternalFormatInfoMa + AddYUVFormat(&map, GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, true, 8, 8, 8, 0, 0, GL_G8_B8R8_2PLANE_420_UNORM_ANGLE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, NeverSupported, NeverSupported); + AddYUVFormat(&map, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, true, 8, 8, 8, 0, 0, GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE, GL_UNSIGNED_BYTE, GL_UNSIGNED_NORMALIZED, false, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, RequireExt<&Extensions::yuvInternalFormatANGLE>, NeverSupported, NeverSupported); + +-#if defined(ANGLE_PLATFORM_LINUX) ++#if defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD) + // From GL_OES_required_internalformat + // The |shared| bit shouldn't be 2. But given this hits assertion when bits + // are checked, it's fine to have this bit set as 2 as a workaround. diff --git a/devel/electron18/files/patch-third__party_angle_src_libANGLE_renderer_driver__utils.h b/devel/electron18/files/patch-third__party_angle_src_libANGLE_renderer_driver__utils.h new file mode 100644 index 000000000000..92e79d4cf660 --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_src_libANGLE_renderer_driver__utils.h @@ -0,0 +1,11 @@ +--- third_party/angle/src/libANGLE/renderer/driver_utils.h.orig 2022-05-19 05:18:21 UTC ++++ third_party/angle/src/libANGLE/renderer/driver_utils.h +@@ -179,7 +179,7 @@ inline bool IsWindows() + + inline bool IsLinux() + { +-#if defined(ANGLE_PLATFORM_LINUX) ++#if defined(ANGLE_PLATFORM_LINUX) || defined(ANGLE_PLATFORM_BSD) + return true; + #else + return false; diff --git a/devel/electron18/files/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp b/devel/electron18/files/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp new file mode 100644 index 000000000000..005350f3b104 --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_src_libANGLE_renderer_gl_glx_FunctionsGLX.cpp @@ -0,0 +1,15 @@ +--- third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp.orig 2022-05-11 07:03:14 UTC ++++ third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp +@@ -144,10 +144,10 @@ bool FunctionsGLX::initialize(Display *xDisplay, int s + // which a GLXWindow was ever created. + if (!sLibHandle) + { +- sLibHandle = dlopen("libGL.so.1", RTLD_NOW); ++ sLibHandle = dlopen("libGL.so", RTLD_NOW); + if (!sLibHandle) + { +- *errorString = std::string("Could not dlopen libGL.so.1: ") + dlerror(); ++ *errorString = std::string("Could not dlopen libGL.so: ") + dlerror(); + return false; + } + } diff --git a/devel/electron18/files/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h b/devel/electron18/files/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h new file mode 100644 index 000000000000..8375feca715b --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_src_libANGLE_renderer_vulkan_DisplayVk__api.h @@ -0,0 +1,11 @@ +--- third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h.orig 2022-05-11 07:17:23 UTC ++++ third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h +@@ -23,7 +23,7 @@ bool IsVulkanWin32DisplayAvailable(); + DisplayImpl *CreateVulkanWin32Display(const egl::DisplayState &state); + #endif // defined(ANGLE_PLATFORM_WINDOWS) + +-#if defined(ANGLE_PLATFORM_LINUX) ++#if defined(ANGLE_PLATFORM_POSIX) + bool IsVulkanXcbDisplayAvailable(); + DisplayImpl *CreateVulkanXcbDisplay(const egl::DisplayState &state); + diff --git a/devel/electron18/files/patch-third__party_angle_util_BUILD.gn b/devel/electron18/files/patch-third__party_angle_util_BUILD.gn new file mode 100644 index 000000000000..5057c7d5cb01 --- /dev/null +++ b/devel/electron18/files/patch-third__party_angle_util_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/angle/util/BUILD.gn.orig 2022-05-11 07:17:24 UTC ++++ third_party/angle/util/BUILD.gn +@@ -200,7 +200,7 @@ foreach(is_shared_library, + ] + libs = [] + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + libs += [ + "rt", + "dl", diff --git a/devel/electron18/files/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc b/devel/electron18/files/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc new file mode 100644 index 000000000000..08b8d65f09a0 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_common_renderer__preferences_renderer__preferences__mojom__traits.cc @@ -0,0 +1,11 @@ +--- third_party/blink/common/renderer_preferences/renderer_preferences_mojom_traits.cc.orig 2022-05-19 03:45:41 UTC ++++ third_party/blink/common/renderer_preferences/renderer_preferences_mojom_traits.cc +@@ -64,7 +64,7 @@ bool StructTraits<blink::mojom::RendererPreferencesDat + if (!data.ReadAcceptLanguages(&out->accept_languages)) + return false; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (!data.ReadSystemFontFamilyName(&out->system_font_family_name)) + return false; + #endif diff --git a/devel/electron18/files/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h b/devel/electron18/files/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h new file mode 100644 index 000000000000..c0042ac597d9 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences.h @@ -0,0 +1,11 @@ +--- third_party/blink/public/common/renderer_preferences/renderer_preferences.h.orig 2022-05-19 03:45:43 UTC ++++ third_party/blink/public/common/renderer_preferences/renderer_preferences.h +@@ -50,7 +50,7 @@ struct BLINK_COMMON_EXPORT RendererPreferences { + bool webrtc_allow_legacy_tls_protocols{false}; + UserAgentOverride user_agent_override; + std::string accept_languages; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + std::string system_font_family_name; + #endif + #if BUILDFLAG(IS_WIN) diff --git a/devel/electron18/files/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h b/devel/electron18/files/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h new file mode 100644 index 000000000000..e47f5f8422f1 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_public_common_renderer__preferences_renderer__preferences__mojom__traits.h @@ -0,0 +1,11 @@ +--- third_party/blink/public/common/renderer_preferences/renderer_preferences_mojom_traits.h.orig 2022-05-19 03:45:43 UTC ++++ third_party/blink/public/common/renderer_preferences/renderer_preferences_mojom_traits.h +@@ -157,7 +157,7 @@ struct BLINK_COMMON_EXPORT + return data.accept_languages; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static const std::string& system_font_family_name( + const ::blink::RendererPreferences& data) { + return data.system_font_family_name; diff --git a/devel/electron18/files/patch-third__party_blink_public_platform_web__vector.h b/devel/electron18/files/patch-third__party_blink_public_platform_web__vector.h new file mode 100644 index 000000000000..4ac1ef4fd290 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_public_platform_web__vector.h @@ -0,0 +1,11 @@ +--- third_party/blink/public/platform/web_vector.h.orig 2022-05-11 07:00:57 UTC ++++ third_party/blink/public/platform/web_vector.h +@@ -81,7 +81,7 @@ class WebVector { + // The vector can be populated using reserve() and emplace_back(). + WebVector() = default; + +-#if defined(ARCH_CPU_64_BITS) ++#if defined(ARCH_CPU_64_BITS) || defined(__OpenBSD__) + // Create a vector with |size| default-constructed elements. We define + // a constructor with size_t otherwise we'd have a duplicate define. + explicit WebVector(size_t size) : data_(size) {} diff --git a/devel/electron18/files/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py b/devel/electron18/files/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py new file mode 100644 index 000000000000..03c74f9287ba --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_bindings_scripts_bind__gen_style__format.py @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py.orig 2022-05-11 07:00:58 UTC ++++ third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py +@@ -28,7 +28,7 @@ def init(root_src_dir, enable_style_format=True): + root_src_dir = os.path.abspath(root_src_dir) + + # Determine //buildtools/<platform>/ directory +- if sys.platform.startswith("linux"): ++ if sys.platform.startswith(("linux","openbsd","freebsd")): + platform = "linux64" + exe_suffix = "" + elif sys.platform.startswith("darwin"): diff --git a/devel/electron18/files/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py b/devel/electron18/files/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py new file mode 100644 index 000000000000..a21aa9469191 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_build_scripts_run__with__pythonpath.py @@ -0,0 +1,10 @@ +--- third_party/blink/renderer/build/scripts/run_with_pythonpath.py.orig 2022-05-11 07:00:58 UTC ++++ third_party/blink/renderer/build/scripts/run_with_pythonpath.py +@@ -22,6 +22,7 @@ def main(): + existing_pp = ( + os.pathsep + env['PYTHONPATH']) if 'PYTHONPATH' in env else '' + env['PYTHONPATH'] = os.pathsep.join(python_paths) + existing_pp ++ env['LD_LIBRARY_PATH'] = "${WRKSRC}/out/Release" + sys.exit(subprocess.call([sys.executable] + args, env=env)) + + diff --git a/devel/electron18/files/patch-third__party_blink_renderer_controller_blink__initializer.cc b/devel/electron18/files/patch-third__party_blink_renderer_controller_blink__initializer.cc new file mode 100644 index 000000000000..cc7f58a65eb3 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_controller_blink__initializer.cc @@ -0,0 +1,35 @@ +--- third_party/blink/renderer/controller/blink_initializer.cc.orig 2022-05-19 05:17:46 UTC ++++ third_party/blink/renderer/controller/blink_initializer.cc +@@ -71,12 +71,12 @@ + #include "third_party/blink/renderer/controller/oom_intervention_impl.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "third_party/blink/renderer/controller/memory_usage_monitor_posix.h" + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + #include "third_party/blink/renderer/controller/highest_pmf_reporter.h" + #include "third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h" + #endif +@@ -156,7 +156,7 @@ void InitializeCommon(Platform* platform, mojo::Binder + #endif + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // Initialize UserLevelMemoryPressureSignalGenerator so it starts monitoring. + if (UserLevelMemoryPressureSignalGenerator::Enabled()) + UserLevelMemoryPressureSignalGenerator::Instance(); +@@ -227,7 +227,7 @@ void BlinkInitializer::RegisterInterfaces(mojo::Binder + main_thread->GetTaskRunner()); + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + binders.Add(ConvertToBaseRepeatingCallback( + CrossThreadBindRepeating(&MemoryUsageMonitorPosix::Bind)), + main_thread->GetTaskRunner()); diff --git a/devel/electron18/files/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc b/devel/electron18/files/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc new file mode 100644 index 000000000000..698662e00c9e --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.cc @@ -0,0 +1,21 @@ +--- third_party/blink/renderer/controller/memory_usage_monitor_posix.cc.orig 2022-05-19 05:17:46 UTC ++++ third_party/blink/renderer/controller/memory_usage_monitor_posix.cc +@@ -128,15 +128,17 @@ void MemoryUsageMonitorPosix::ResetFileDescriptors() { + + void MemoryUsageMonitorPosix::SetProcFiles(base::File statm_file, + base::File status_file) { ++#if !BUILDFLAG(IS_BSD) + DCHECK(statm_file.IsValid()); + DCHECK(status_file.IsValid()); + DCHECK_EQ(-1, statm_fd_.get()); + DCHECK_EQ(-1, status_fd_.get()); + statm_fd_.reset(statm_file.TakePlatformFile()); + status_fd_.reset(status_file.TakePlatformFile()); ++#endif + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // static + void MemoryUsageMonitorPosix::Bind( + mojo::PendingReceiver<mojom::blink::MemoryUsageMonitorLinux> receiver) { diff --git a/devel/electron18/files/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h b/devel/electron18/files/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h new file mode 100644 index 000000000000..f50f105df5d2 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_controller_memory__usage__monitor__posix.h @@ -0,0 +1,47 @@ +--- third_party/blink/renderer/controller/memory_usage_monitor_posix.h.orig 2022-05-19 03:45:43 UTC ++++ third_party/blink/renderer/controller/memory_usage_monitor_posix.h +@@ -13,7 +13,7 @@ + #include "third_party/blink/renderer/controller/controller_export.h" + #include "third_party/blink/renderer/controller/memory_usage_monitor.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "third_party/blink/public/mojom/memory_usage_monitor_linux.mojom-blink.h" + #endif + +@@ -22,7 +22,7 @@ namespace blink { + // MemoryUsageMonitor implementation for Android and Linux. + class CONTROLLER_EXPORT MemoryUsageMonitorPosix + : public MemoryUsageMonitor +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + , + public mojom::blink::MemoryUsageMonitorLinux + #endif +@@ -30,7 +30,7 @@ class CONTROLLER_EXPORT MemoryUsageMonitorPosix + public: + MemoryUsageMonitorPosix() = default; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static void Bind( + mojo::PendingReceiver<mojom::blink::MemoryUsageMonitorLinux> receiver); + #endif +@@ -48,7 +48,7 @@ class CONTROLLER_EXPORT MemoryUsageMonitorPosix + uint64_t* vm_size, + uint64_t* vm_hwm_size); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // mojom::MemoryUsageMonitorLinux implementations: + void SetProcFiles(base::File statm_file, base::File status_file) override; + #endif +@@ -66,7 +66,7 @@ class CONTROLLER_EXPORT MemoryUsageMonitorPosix + base::ScopedFD statm_fd_; + base::ScopedFD status_fd_; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + mojo::Receiver<mojom::blink::MemoryUsageMonitorLinux> receiver_{this}; + #endif + }; diff --git a/devel/electron18/files/patch-third__party_blink_renderer_core_editing_editing__behavior.cc b/devel/electron18/files/patch-third__party_blink_renderer_core_editing_editing__behavior.cc new file mode 100644 index 000000000000..1ba6ba07fb77 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_core_editing_editing__behavior.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/editing/editing_behavior.cc.orig 2022-05-19 03:45:44 UTC ++++ third_party/blink/renderer/core/editing/editing_behavior.cc +@@ -280,7 +280,7 @@ bool EditingBehavior::ShouldInsertCharacter(const Keyb + // unexpected behaviour + if (ch < ' ') + return false; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // According to XKB map no keyboard combinations with ctrl key are mapped to + // printable characters, however we need the filter as the DomKey/text could + // contain printable characters. diff --git a/devel/electron18/files/patch-third__party_blink_renderer_core_exported_web__view__impl.cc b/devel/electron18/files/patch-third__party_blink_renderer_core_exported_web__view__impl.cc new file mode 100644 index 000000000000..6c72d0bd819b --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_core_exported_web__view__impl.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/core/exported/web_view_impl.cc.orig 2022-05-20 04:30:53 UTC ++++ third_party/blink/renderer/core/exported/web_view_impl.cc +@@ -405,7 +405,7 @@ SkFontHinting RendererPreferencesToSkiaHinting( + const blink::RendererPreferences& prefs) { + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + if (!prefs.should_antialias_text) { + // When anti-aliasing is off, GTK maps all non-zero hinting settings to + // 'Normal' hinting so we do the same. Otherwise, folks who have 'Slight' +@@ -3161,7 +3161,7 @@ void WebViewImpl::UpdateFontRenderingFromRendererPrefs + renderer_preferences_.use_subpixel_positioning); + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \ ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) && \ + !BUILDFLAG(IS_ANDROID) + if (!renderer_preferences_.system_font_family_name.empty()) { + WebFontRenderStyle::SetSystemFontFamily(blink::WebString::FromUTF8( diff --git a/devel/electron18/files/patch-third__party_blink_renderer_core_frame_web__frame__test.cc b/devel/electron18/files/patch-third__party_blink_renderer_core_frame_web__frame__test.cc new file mode 100644 index 000000000000..ab11626a2301 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_core_frame_web__frame__test.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/core/frame/web_frame_test.cc.orig 2022-05-19 05:17:47 UTC ++++ third_party/blink/renderer/core/frame/web_frame_test.cc +@@ -6310,7 +6310,7 @@ TEST_F(WebFrameTest, DISABLED_PositionForPointTest) { + EXPECT_EQ(64, ComputeOffset(layout_object, 1000, 1000)); + } + +-#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + TEST_F(WebFrameTest, SelectRangeStaysHorizontallyAlignedWhenMoved) { + RegisterMockedHttpURLLoad("move_caret.html"); + +@@ -6689,7 +6689,7 @@ TEST_F(CompositedSelectionBoundsTest, SVGBasic) { + TEST_F(CompositedSelectionBoundsTest, SVGTextWithFragments) { + RunTest("composited_selection_bounds_svg_text_with_fragments.html"); + } +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #if !BUILDFLAG(IS_ANDROID) + TEST_F(CompositedSelectionBoundsTest, Input) { + web_view_helper_.GetWebView()->GetSettings()->SetDefaultFontSize(16); diff --git a/devel/electron18/files/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc b/devel/electron18/files/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc new file mode 100644 index 000000000000..059e2a99176f --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_core_html_canvas_canvas__async__blob__creator.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc.orig 2022-05-19 05:17:47 UTC ++++ third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc +@@ -44,7 +44,7 @@ constexpr base::TimeDelta kEncodeRowSlackBeforeDeadlin + + /* The value is based on user statistics on Nov 2017. */ + #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN)) ++ BUILDFLAG(IS_WIN)) || BUILDFLAG(IS_BSD) + const double kIdleTaskStartTimeoutDelayMs = 1000.0; + #else + const double kIdleTaskStartTimeoutDelayMs = 4000.0; // For ChromeOS, Mobile diff --git a/devel/electron18/files/patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc b/devel/electron18/files/patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc new file mode 100644 index 000000000000..99fb470e03c7 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_core_html_forms_internal__popup__menu.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/html/forms/internal_popup_menu.cc.orig 2022-05-19 05:17:47 UTC ++++ third_party/blink/renderer/core/html/forms/internal_popup_menu.cc +@@ -179,7 +179,7 @@ class InternalPopupMenu::ItemIterationContext { + is_in_group_(false), + buffer_(buffer) { + DCHECK(buffer_); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On other platforms, the <option> background color is the same as the + // <select> background color. On Linux, that makes the <option> + // background color very dark, so by default, try to use a lighter diff --git a/devel/electron18/files/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc b/devel/electron18/files/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc new file mode 100644 index 000000000000..858634331812 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_core_inspector_inspector__memory__agent.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/inspector/inspector_memory_agent.cc.orig 2022-05-19 05:17:47 UTC ++++ third_party/blink/renderer/core/inspector/inspector_memory_agent.cc +@@ -186,7 +186,7 @@ InspectorMemoryAgent::GetSamplingProfileById(uint32_t + + Vector<String> InspectorMemoryAgent::Symbolize( + const WebVector<void*>& addresses) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // TODO(alph): Move symbolization to the client. + Vector<void*> addresses_to_symbolize; + for (size_t i = 0; i < addresses.size(); i++) { diff --git a/devel/electron18/files/patch-third__party_blink_renderer_core_layout_layout__view.cc b/devel/electron18/files/patch-third__party_blink_renderer_core_layout_layout__view.cc new file mode 100644 index 000000000000..f1d6eb2709f4 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_core_layout_layout__view.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/core/layout/layout_view.cc.orig 2022-05-19 05:17:47 UTC ++++ third_party/blink/renderer/core/layout/layout_view.cc +@@ -64,7 +64,7 @@ + #include "ui/display/screen_info.h" + #include "ui/gfx/geometry/quad_f.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "third_party/blink/renderer/platform/fonts/font_cache.h" + #endif + +@@ -359,7 +359,7 @@ void LayoutView::UpdateLayout() { + DCHECK(!layout_state_); + LayoutState root_layout_state(*this); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The font code in FontPlatformData does not have a direct connection to the + // document, the frame or anything from which we could retrieve the device + // scale factor. After using zoom for DSF, the GraphicsContext does only ever diff --git a/devel/electron18/files/patch-third__party_blink_renderer_core_paint_paint__layer.cc b/devel/electron18/files/patch-third__party_blink_renderer_core_paint_paint__layer.cc new file mode 100644 index 000000000000..f07ae92deb63 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_core_paint_paint__layer.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/core/paint/paint_layer.cc.orig 2022-05-19 05:17:47 UTC ++++ third_party/blink/renderer/core/paint/paint_layer.cc +@@ -108,7 +108,7 @@ namespace blink { + + namespace { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + struct SameSizeAsPaintLayer : GarbageCollected<PaintLayer>, DisplayItemClient { + // The bit fields may fit into the machine word of DisplayItemClient which + // has only 8-bit data. diff --git a/devel/electron18/files/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc b/devel/electron18/files/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc new file mode 100644 index 000000000000..f4a64f3d979b --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_core_scroll_scrollbar__theme__aura.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc.orig 2022-05-19 03:45:45 UTC ++++ third_party/blink/renderer/core/scroll/scrollbar_theme_aura.cc +@@ -151,7 +151,7 @@ bool ScrollbarThemeAura::SupportsDragSnapBack() const + // is true for at least GTK and QT apps). + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + return false; + #else + return true; +@@ -326,7 +326,7 @@ bool ScrollbarThemeAura::ShouldCenterOnThumb(const Scr + const WebMouseEvent& event) { + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + if (event.button == WebPointerProperties::Button::kMiddle) + return true; + #endif diff --git a/devel/electron18/files/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc b/devel/electron18/files/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc new file mode 100644 index 000000000000..43eb0c086427 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_modules_media_audio_audio__device__factory.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/media/audio/audio_device_factory.cc.orig 2022-05-19 05:17:48 UTC ++++ third_party/blink/renderer/modules/media/audio/audio_device_factory.cc +@@ -34,7 +34,7 @@ AudioDeviceFactory* AudioDeviceFactory::factory_ = nul + namespace { + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS_LACROS) ++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Due to driver deadlock issues on Windows (http://crbug/422522) there is a + // chance device authorization response is never received from the browser side. + // In this case we will time out, to avoid renderer hang forever waiting for diff --git a/devel/electron18/files/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc b/devel/electron18/files/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc new file mode 100644 index 000000000000..d13d4624c54e --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_modules_media_audio_audio__renderer__mixer__manager__test.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc.orig 2022-05-19 03:45:46 UTC ++++ third_party/blink/renderer/modules/media/audio/audio_renderer_mixer_manager_test.cc +@@ -678,7 +678,7 @@ TEST_F(AudioRendererMixerManagerTest, MixerParamsLaten + mixer->get_output_params_for_testing().sample_rate()); + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Use 10 ms buffer (441 frames per buffer). + EXPECT_EQ(output_sample_rate / 100, + mixer->get_output_params_for_testing().frames_per_buffer()); diff --git a/devel/electron18/files/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc b/devel/electron18/files/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc new file mode 100644 index 000000000000..dee15f53c123 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_modules_peerconnection_webrtc__audio__renderer__test.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc.orig 2022-05-19 05:17:48 UTC ++++ third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc +@@ -293,7 +293,7 @@ TEST_F(MAYBE_WebRtcAudioRendererTest, DISABLED_VerifyS + SetupRenderer(kDefaultOutputDeviceId); + renderer_proxy_->Start(); + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + static const int kExpectedBufferSize = kHardwareSampleRate / 100; + #elif BUILDFLAG(IS_ANDROID) + static const int kExpectedBufferSize = 2 * kHardwareSampleRate / 100; diff --git a/devel/electron18/files/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc b/devel/electron18/files/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc new file mode 100644 index 000000000000..2a957fbe50c0 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_modules_webaudio_audio__worklet__thread__test.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc.orig 2022-05-19 05:17:48 UTC ++++ third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc +@@ -379,7 +379,7 @@ class AudioWorkletThreadPriorityTest + + // TODO(crbug.com/1022888): The worklet thread priority is always NORMAL + // on OS_LINUX and OS_CHROMEOS regardless of the thread priority setting. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (expected_priority == base::ThreadPriority::REALTIME_AUDIO || + expected_priority == base::ThreadPriority::DISPLAY) { + EXPECT_EQ(actual_priority, base::ThreadPriority::NORMAL); diff --git a/devel/electron18/files/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc b/devel/electron18/files/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc new file mode 100644 index 000000000000..afd958ce031e --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_modules_webgl_webgl__rendering__context__base.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc.orig 2022-05-19 05:17:48 UTC ++++ third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +@@ -6102,7 +6102,7 @@ void WebGLRenderingContextBase::TexImageHelperMediaVid + constexpr bool kAllowZeroCopyImages = true; + #endif + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/1175907): Only TexImage2D seems to work with the GPU path on + // Android M -- appears to work fine on R, but to avoid regressions in <video> + // limit to TexImage2D only for now. Fails conformance test on Nexus 5X: diff --git a/devel/electron18/files/patch-third__party_blink_renderer_modules_webgl_webgl__webcodecs__video__frame.cc b/devel/electron18/files/patch-third__party_blink_renderer_modules_webgl_webgl__webcodecs__video__frame.cc new file mode 100644 index 000000000000..a220242a823b --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_modules_webgl_webgl__webcodecs__video__frame.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/modules/webgl/webgl_webcodecs_video_frame.cc.orig 2022-05-19 05:17:48 UTC ++++ third_party/blink/renderer/modules/webgl/webgl_webcodecs_video_frame.cc +@@ -99,7 +99,7 @@ bool WebGLWebCodecsVideoFrame::Supported(WebGLRenderin + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // TODO(jie.a.chen@intel.com): Add Linux support. + return false; + #elif BUILDFLAG(IS_MAC) diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_BUILD.gn b/devel/electron18/files/patch-third__party_blink_renderer_platform_BUILD.gn new file mode 100644 index 000000000000..d7dd5656175b --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/platform/BUILD.gn.orig 2022-05-19 05:17:48 UTC ++++ third_party/blink/renderer/platform/BUILD.gn +@@ -1904,7 +1904,7 @@ static_library("test_support") { + ] + + # fuzzed_data_provider may not work with a custom toolchain. +- if (custom_toolchain == "" && is_clang) { ++ if ((custom_toolchain == "" && is_clang) && !is_bsd) { + sources += [ + "testing/fuzzed_data_provider.cc", + "testing/fuzzed_data_provider.h", diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__cache.cc b/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__cache.cc new file mode 100644 index 000000000000..b5ea1d0df7a1 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__cache.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/platform/fonts/font_cache.cc.orig 2022-05-19 05:17:48 UTC ++++ third_party/blink/renderer/platform/fonts/font_cache.cc +@@ -87,7 +87,7 @@ extern const char kNotoColorEmojiCompat[] = "Noto Colo + + SkFontMgr* FontCache::static_font_manager_ = nullptr; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + float FontCache::device_scale_factor_ = 1.0; + #endif + +@@ -120,7 +120,7 @@ FontCache::FontCache() : font_manager_(sk_ref_sp(stati + FontPlatformData* FontCache::SystemFontPlatformData( + const FontDescription& font_description) { + const AtomicString& family = FontCache::SystemFontFamily(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + if (family.IsEmpty() || family == font_family_names::kSystemUi) + return nullptr; + #else diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__cache.h b/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__cache.h new file mode 100644 index 000000000000..52d829661ec0 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__cache.h @@ -0,0 +1,47 @@ +--- third_party/blink/renderer/platform/fonts/font_cache.h.orig 2022-05-19 05:17:48 UTC ++++ third_party/blink/renderer/platform/fonts/font_cache.h +@@ -59,7 +59,7 @@ + #include "third_party/skia/include/core/SkFontMgr.h" + #include "third_party/skia/include/core/SkRefCnt.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/gfx/font_fallback_linux.h" + #endif + +@@ -184,7 +184,7 @@ class PLATFORM_EXPORT FontCache final { + static void PrewarmFamily(const AtomicString& family_name) {} + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // These are needed for calling QueryRenderStyleForStrike, since + // gfx::GetFontRenderParams makes distinctions based on DSF. + static float DeviceScaleFactor() { return device_scale_factor_; } +@@ -267,7 +267,7 @@ class PLATFORM_EXPORT FontCache final { + const char* locale_family_name); + #endif // BUILDFLAG(IS_ANDROID) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static bool GetFontForCharacter(UChar32, + const char* preferred_locale, + gfx::FallbackFontData*); +@@ -388,7 +388,7 @@ class PLATFORM_EXPORT FontCache final { + const FontFaceCreationParams&, + std::string& name); + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static AtomicString GetFamilyNameForCharacter(SkFontMgr*, + UChar32, + const FontDescription&, +@@ -430,7 +430,7 @@ class PLATFORM_EXPORT FontCache final { + std::unique_ptr<FallbackFamilyStyleCache> fallback_params_cache_; + #endif // BUILDFLAG(IS_WIN) + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static float device_scale_factor_; + #endif + diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__description.cc b/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__description.cc new file mode 100644 index 000000000000..2a074d12fa92 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__description.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/platform/fonts/font_description.cc.orig 2022-05-19 03:45:47 UTC ++++ third_party/blink/renderer/platform/fonts/font_description.cc +@@ -39,7 +39,7 @@ + #include "third_party/blink/renderer/platform/wtf/text/string_hash.h" + #include "third_party/blink/renderer/platform/wtf/text/string_hasher.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #include "third_party/blink/renderer/platform/fonts/font_cache.h" + #endif + +@@ -262,7 +262,7 @@ FontCacheKey FontDescription::CacheKey( + static_cast<unsigned>(fields_.orientation_) << 1 | // bit 2-3 + static_cast<unsigned>(fields_.subpixel_text_position_); // bit 1 + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + float device_scale_factor_for_key = FontCache::DeviceScaleFactor(); + #else + float device_scale_factor_for_key = 1.0f; diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc b/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc new file mode 100644 index 000000000000..d390ddc0377a --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__metrics.cc @@ -0,0 +1,29 @@ +--- third_party/blink/renderer/platform/fonts/font_metrics.cc.orig 2022-05-19 03:45:47 UTC ++++ third_party/blink/renderer/platform/fonts/font_metrics.cc +@@ -39,7 +39,7 @@ + namespace blink { + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // This is the largest VDMX table which we'll try to load and parse. + static const size_t kMaxVDMXTableSize = 1024 * 1024; // 1 MB + #endif +@@ -69,7 +69,7 @@ void FontMetrics::AscentDescentWithHacks( + bool is_vdmx_valid = false; + + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Manually digging up VDMX metrics is only applicable when bytecode hinting + // using FreeType. With DirectWrite or CoreText, no bytecode hinting is ever + // done. This code should be pushed into FreeType (hinted font metrics). +@@ -117,7 +117,7 @@ void FontMetrics::AscentDescentWithHacks( + if (descent < metrics.fDescent) { + visual_overflow_inflation_for_descent = 1; + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // When subpixel positioning is enabled, if the descent is rounded down, + // the descent part of the glyph may be truncated when displayed in a + // 'overflow: hidden' container. To avoid that, borrow 1 unit from the diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc b/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc new file mode 100644 index 000000000000..31105a604387 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_font__unique__name__lookup.cc @@ -0,0 +1,20 @@ +--- third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc.orig 2022-05-19 03:45:47 UTC ++++ third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc +@@ -9,7 +9,7 @@ + #if BUILDFLAG(IS_ANDROID) + #include "third_party/blink/public/mojom/font_unique_name_lookup/font_unique_name_lookup.mojom-blink.h" + #include "third_party/blink/renderer/platform/fonts/android/font_unique_name_lookup_android.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "third_party/blink/renderer/platform/fonts/linux/font_unique_name_lookup_linux.h" + #elif BUILDFLAG(IS_WIN) + #include "third_party/blink/renderer/platform/fonts/win/font_unique_name_lookup_win.h" +@@ -24,7 +24,7 @@ std::unique_ptr<FontUniqueNameLookup> + FontUniqueNameLookup::GetPlatformUniqueNameLookup() { + #if BUILDFLAG(IS_ANDROID) + return std::make_unique<FontUniqueNameLookupAndroid>(); +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return std::make_unique<FontUniqueNameLookupLinux>(); + #elif BUILDFLAG(IS_WIN) + return std::make_unique<FontUniqueNameLookupWin>(); diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc b/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc new file mode 100644 index 000000000000..28a2bea09a90 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc @@ -0,0 +1,29 @@ +--- third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc.orig 2022-05-19 03:45:47 UTC ++++ third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc +@@ -60,7 +60,7 @@ AtomicString ToAtomicString(const SkString& str) { + return AtomicString::FromUTF8(str.c_str(), str.size()); + } + +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // This function is called on android or when we are emulating android fonts on + // linux and the embedder has overriden the default fontManager with + // WebFontRendering::setSkiaFontMgr. +@@ -236,7 +236,7 @@ sk_sp<SkTypeface> FontCache::CreateTypeface( + } + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // On linux if the fontManager has been overridden then we should be calling + // the embedder provided font Manager rather than calling + // SkTypeface::CreateFromName which may redirect the call to the default font +@@ -263,7 +263,7 @@ std::unique_ptr<FontPlatformData> FontCache::CreateFon + std::string name; + + sk_sp<SkTypeface> typeface; +-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool noto_color_emoji_from_gmscore = false; + #if BUILDFLAG(IS_ANDROID) + // Use the unique local matching pathway for fetching Noto Color Emoji Compat diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc b/devel/electron18/files/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc new file mode 100644 index 000000000000..cf03522fdcda --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_graphics_begin__frame__provider.cc @@ -0,0 +1,14 @@ +--- third_party/blink/renderer/platform/graphics/begin_frame_provider.cc.orig 2022-05-11 07:16:55 UTC ++++ third_party/blink/renderer/platform/graphics/begin_frame_provider.cc +@@ -74,7 +74,11 @@ void BeginFrameProvider::CreateCompositorFrameSinkIfNe + + // Once we are using RAF, this thread is driving Display updates. Update + // priority accordingly. ++ // pledge(2) ++ // stop this baloney ++#if !defined(OS_OPENBSD) + base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY); ++#endif + + mojo::Remote<mojom::blink::EmbeddedFrameSinkProvider> provider; + Platform::Current()->GetBrowserInterfaceBroker()->GetInterface( diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc b/devel/electron18/files/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc new file mode 100644 index 000000000000..408154f42ace --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_graphics_video__frame__submitter.cc @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/platform/graphics/video_frame_submitter.cc.orig 2022-05-19 05:17:48 UTC ++++ third_party/blink/renderer/platform/graphics/video_frame_submitter.cc +@@ -328,7 +328,7 @@ void VideoFrameSubmitter::OnBeginFrame( + continue; + auto& feedback = + timing_details.find(frame_token)->value.presentation_feedback; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // TODO: On Linux failure flag is unreliable, and perfectly rendered frames + // are reported as failures all the time. + bool presentation_failure = false; diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc b/devel/electron18/files/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc new file mode 100644 index 000000000000..7d011934539e --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_scheduler_common_thread.cc @@ -0,0 +1,12 @@ +--- third_party/blink/renderer/platform/scheduler/common/thread.cc.orig 2022-05-19 03:45:47 UTC ++++ third_party/blink/renderer/platform/scheduler/common/thread.cc +@@ -99,7 +99,8 @@ void Thread::CreateAndSetCompositorThread() { + std::make_unique<scheduler::CompositorThread>(params); + compositor_thread->Init(); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++// pledge(2) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_OPENBSD) + if (base::FeatureList::IsEnabled( + features::kBlinkCompositorUseDisplayThreadPriority)) { + compositor_thread->GetTaskRunner()->PostTaskAndReplyWithResult( diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_wtf_container__annotations.h b/devel/electron18/files/patch-third__party_blink_renderer_platform_wtf_container__annotations.h new file mode 100644 index 000000000000..7b135c123ef8 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_wtf_container__annotations.h @@ -0,0 +1,11 @@ +--- third_party/blink/renderer/platform/wtf/container_annotations.h.orig 2022-05-19 03:45:47 UTC ++++ third_party/blink/renderer/platform/wtf/container_annotations.h +@@ -12,7 +12,7 @@ + // TODO(ochang): Remove the ARCH_CPU_X86_64 condition to enable this for X86 + // once the crashes there have been fixed: http://crbug.com/461406 + #if defined(ADDRESS_SANITIZER) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + defined(ARCH_CPU_X86_64) + + // Annotations require buffers to begin on an 8-byte boundary. See diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_wtf_math__extras.h b/devel/electron18/files/patch-third__party_blink_renderer_platform_wtf_math__extras.h new file mode 100644 index 000000000000..6db6767368a5 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_wtf_math__extras.h @@ -0,0 +1,23 @@ +--- third_party/blink/renderer/platform/wtf/math_extras.h.orig 2022-05-11 07:16:57 UTC ++++ third_party/blink/renderer/platform/wtf/math_extras.h +@@ -127,6 +127,10 @@ constexpr float Grad2turn(float g) { + return g * (1.0f / 400.0f); + } + ++#if defined(OS_FREEBSD) ++#pragma clang diagnostic push ++#pragma clang diagnostic ignored "-Winvalid-constexpr" ++#endif + constexpr double RoundHalfTowardsPositiveInfinity(double value) { + return std::floor(value + 0.5); + } +@@ -134,6 +138,9 @@ constexpr double RoundHalfTowardsPositiveInfinity(doub + constexpr float RoundHalfTowardsPositiveInfinity(float value) { + return std::floor(value + 0.5f); + } ++#if defined(OS_FREEBSD) ++#pragma clang diagnostic pop ++#endif + + // ClampTo() is implemented by templated helper classes (to allow for partial + // template specialization) as well as several helper functions. diff --git a/devel/electron18/files/patch-third__party_blink_renderer_platform_wtf_stack__util.cc b/devel/electron18/files/patch-third__party_blink_renderer_platform_wtf_stack__util.cc new file mode 100644 index 000000000000..4171f295fab1 --- /dev/null +++ b/devel/electron18/files/patch-third__party_blink_renderer_platform_wtf_stack__util.cc @@ -0,0 +1,37 @@ +--- third_party/blink/renderer/platform/wtf/stack_util.cc.orig 2022-05-19 03:45:47 UTC ++++ third_party/blink/renderer/platform/wtf/stack_util.cc +@@ -18,6 +18,11 @@ + extern "C" void* __libc_stack_end; // NOLINT + #endif + ++#if BUILDFLAG(IS_BSD) ++#include <sys/signal.h> ++#include <pthread_np.h> ++#endif ++ + namespace WTF { + + size_t GetUnderestimatedStackSize() { +@@ -62,6 +67,8 @@ size_t GetUnderestimatedStackSize() { + // low as 512k. + // + return 512 * 1024; ++#elif BUILDFLAG(IS_OPENBSD) ++ return 512 * 1024; + #elif BUILDFLAG(IS_MAC) + // pthread_get_stacksize_np() returns too low a value for the main thread on + // OSX 10.9, +@@ -147,6 +154,13 @@ void* GetStackStart() { + ::GetCurrentThreadStackLimits(&lowLimit, &highLimit); + return reinterpret_cast<void*>(highLimit); + #endif ++#elif BUILDFLAG(IS_OPENBSD) ++ stack_t ss; ++ void *base; ++ int error = pthread_stackseg_np(pthread_self(), &ss); ++ CHECK(!error); ++ base = (void*)((size_t) ss.ss_sp - ss.ss_size); ++ return reinterpret_cast<uint8_t*>(base) + ss.ss_size; + #else + #error Unsupported getStackStart on this platform. + #endif diff --git a/devel/electron18/files/patch-third__party_boringssl_BUILD.generated.gni b/devel/electron18/files/patch-third__party_boringssl_BUILD.generated.gni new file mode 100644 index 000000000000..1931fff2179a --- /dev/null +++ b/devel/electron18/files/patch-third__party_boringssl_BUILD.generated.gni @@ -0,0 +1,18 @@ +--- third_party/boringssl/BUILD.generated.gni.orig 2022-05-19 05:18:00 UTC ++++ third_party/boringssl/BUILD.generated.gni +@@ -81,6 +81,7 @@ crypto_sources = [ + "src/crypto/cpu_aarch64_apple.c", + "src/crypto/cpu_aarch64_fuchsia.c", + "src/crypto/cpu_aarch64_linux.c", ++ "src/crypto/cpu_aarch64_openbsd.c", + "src/crypto/cpu_aarch64_win.c", + "src/crypto/cpu_arm.c", + "src/crypto/cpu_arm_linux.c", +@@ -184,6 +185,7 @@ crypto_sources = [ + "src/crypto/rand_extra/deterministic.c", + "src/crypto/rand_extra/forkunsafe.c", + "src/crypto/rand_extra/fuchsia.c", ++ "src/crypto/rand_extra/arc4random.c", + "src/crypto/rand_extra/passive.c", + "src/crypto/rand_extra/rand_extra.c", + "src/crypto/rand_extra/windows.c", diff --git a/devel/electron18/files/patch-third__party_boringssl_BUILD.gn b/devel/electron18/files/patch-third__party_boringssl_BUILD.gn new file mode 100644 index 000000000000..e87f74ebb85a --- /dev/null +++ b/devel/electron18/files/patch-third__party_boringssl_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/boringssl/BUILD.gn.orig 2022-05-20 04:30:53 UTC ++++ third_party/boringssl/BUILD.gn +@@ -106,7 +106,7 @@ if (is_win && !is_msan && current_cpu != "arm64") { + public_configs = [ ":no_asm_config" ] + } + } else if (current_cpu == "arm64") { +- if (is_linux || is_chromeos || is_android) { ++ if ((is_linux || is_chromeos || is_android) && !is_freebsd) { + sources += crypto_sources_linux_aarch64 + } else if (is_apple) { + sources += crypto_sources_apple_aarch64 diff --git a/devel/electron18/files/patch-third__party_boringssl_src_crypto_cpu__aarch64__openbsd.c b/devel/electron18/files/patch-third__party_boringssl_src_crypto_cpu__aarch64__openbsd.c new file mode 100644 index 000000000000..296a5cf1bbae --- /dev/null +++ b/devel/electron18/files/patch-third__party_boringssl_src_crypto_cpu__aarch64__openbsd.c @@ -0,0 +1,60 @@ +--- third_party/boringssl/src/crypto/cpu_aarch64_openbsd.c.orig 2022-05-20 04:31:06 UTC ++++ third_party/boringssl/src/crypto/cpu_aarch64_openbsd.c +@@ -0,0 +1,57 @@ ++/* Copyright (c) 2022, Robert Nagy <robert@openbsd.org> ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY ++ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION ++ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN ++ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ ++ ++#include <openssl/cpu.h> ++ ++#if defined(OPENSSL_AARCH64) && defined(OPENSSL_OPENBSD) && \ ++ !defined(OPENSSL_STATIC_ARMCAP) ++ ++#include <sys/sysctl.h> ++#include <machine/cpu.h> ++#include <machine/armreg.h> ++#include <stdio.h> ++ ++#include <openssl/arm_arch.h> ++ ++#include "internal.h" ++ ++extern uint32_t OPENSSL_armcap_P; ++ ++void OPENSSL_cpuid_setup(void) { ++ int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 }; ++ size_t len = sizeof(uint64_t); ++ uint64_t cpu_id = 0; ++ ++ if (sysctl(isar0_mib, 2, &cpu_id, &len, NULL, 0) < 0) ++ return; ++ ++ OPENSSL_armcap_P |= ARMV7_NEON; ++ ++ if (ID_AA64ISAR0_AES(cpu_id) >= ID_AA64ISAR0_AES_BASE) ++ OPENSSL_armcap_P |= ARMV8_AES; ++ ++ if (ID_AA64ISAR0_AES(cpu_id) >= ID_AA64ISAR0_AES_PMULL) ++ OPENSSL_armcap_P |= ARMV8_PMULL; ++ ++ if (ID_AA64ISAR0_SHA1(cpu_id) >= ID_AA64ISAR0_SHA1_BASE) ++ OPENSSL_armcap_P |= ARMV8_SHA1; ++ ++ if (ID_AA64ISAR0_SHA2(cpu_id) >= ID_AA64ISAR0_SHA2_BASE) ++ OPENSSL_armcap_P |= ARMV8_SHA256; ++ ++ if (ID_AA64ISAR0_SHA2(cpu_id) >= ID_AA64ISAR0_SHA2_512) ++ OPENSSL_armcap_P |= ARMV8_SHA512; ++} ++ ++#endif // OPENSSL_AARCH64 && OPENSSL_OPENBSD && !OPENSSL_STATIC_ARMCAP diff --git a/devel/electron18/files/patch-third__party_boringssl_src_crypto_fipsmodule_rand_internal.h b/devel/electron18/files/patch-third__party_boringssl_src_crypto_fipsmodule_rand_internal.h new file mode 100644 index 000000000000..855de3b12bbc --- /dev/null +++ b/devel/electron18/files/patch-third__party_boringssl_src_crypto_fipsmodule_rand_internal.h @@ -0,0 +1,12 @@ +--- third_party/boringssl/src/crypto/fipsmodule/rand/internal.h.orig 2022-05-19 05:18:20 UTC ++++ third_party/boringssl/src/crypto/fipsmodule/rand/internal.h +@@ -26,7 +26,8 @@ extern "C" { + + + #if !defined(OPENSSL_WINDOWS) && !defined(OPENSSL_FUCHSIA) && \ +- !defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE) && !defined(OPENSSL_TRUSTY) ++ !defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE) && !defined(OPENSSL_TRUSTY) && \ ++ !defined(OPENSSL_ARC4RANDOM) + #define OPENSSL_URANDOM + #endif + diff --git a/devel/electron18/files/patch-third__party_boringssl_src_crypto_rand__extra_arc4random.c b/devel/electron18/files/patch-third__party_boringssl_src_crypto_rand__extra_arc4random.c new file mode 100644 index 000000000000..26e95b667f2e --- /dev/null +++ b/devel/electron18/files/patch-third__party_boringssl_src_crypto_rand__extra_arc4random.c @@ -0,0 +1,36 @@ +--- third_party/boringssl/src/crypto/rand_extra/arc4random.c.orig 2022-05-13 07:20:05 UTC ++++ third_party/boringssl/src/crypto/rand_extra/arc4random.c +@@ -0,0 +1,33 @@ ++/* Copyright (c) 2018, Robert Nagy <robert@openbsd.org> ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY ++ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION ++ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN ++ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ ++ ++#define _BSD_SOURCE 1 ++ ++#include <openssl/rand.h> ++ ++#if defined(OPENSSL_ARC4RANDOM) && !defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE) ++ ++#include <stdlib.h> ++ ++#include "../fipsmodule/rand/internal.h" ++ ++void CRYPTO_sysrand_for_seed(uint8_t *out, size_t requested) { ++ CRYPTO_sysrand(out, requested); ++} ++ ++void CRYPTO_sysrand(uint8_t *out, size_t requested) { ++ arc4random_buf(out, requested); ++} ++ ++#endif // OPENSSL_ARC4RANDOM && !BORINGSSL_UNSAFE_DETERMINISTIC_MODE diff --git a/devel/electron18/files/patch-third__party_boringssl_src_crypto_refcount__c11.c b/devel/electron18/files/patch-third__party_boringssl_src_crypto_refcount__c11.c new file mode 100644 index 000000000000..5fcae5e53850 --- /dev/null +++ b/devel/electron18/files/patch-third__party_boringssl_src_crypto_refcount__c11.c @@ -0,0 +1,12 @@ +--- third_party/boringssl/src/crypto/refcount_c11.c.orig 2022-05-11 07:02:47 UTC ++++ third_party/boringssl/src/crypto/refcount_c11.c +@@ -24,6 +24,9 @@ + + #include <openssl/type_check.h> + ++#if !defined(__cplusplus) && !defined(static_assert) ++#define static_assert _Static_assert ++#endif + + // See comment above the typedef of CRYPTO_refcount_t about these tests. + static_assert(alignof(CRYPTO_refcount_t) == alignof(_Atomic CRYPTO_refcount_t), diff --git a/devel/electron18/files/patch-third__party_boringssl_src_include_openssl_base.h b/devel/electron18/files/patch-third__party_boringssl_src_include_openssl_base.h new file mode 100644 index 000000000000..9ebb95d85524 --- /dev/null +++ b/devel/electron18/files/patch-third__party_boringssl_src_include_openssl_base.h @@ -0,0 +1,14 @@ +--- third_party/boringssl/src/include/openssl/base.h.orig 2022-05-11 07:17:25 UTC ++++ third_party/boringssl/src/include/openssl/base.h +@@ -153,6 +153,11 @@ extern "C" { + #define OPENSSL_FUCHSIA + #endif + ++#if defined(__OpenBSD__) ++#define OPENSSL_OPENBSD ++#define OPENSSL_ARC4RANDOM ++#endif ++ + #if defined(__TRUSTY__) + #define OPENSSL_TRUSTY + #define OPENSSL_NO_THREADS_CORRUPT_MEMORY_AND_LEAK_SECRETS_IF_THREADED diff --git a/devel/electron18/files/patch-third__party_brotli_common_platform.h b/devel/electron18/files/patch-third__party_brotli_common_platform.h new file mode 100644 index 000000000000..3fea36059239 --- /dev/null +++ b/devel/electron18/files/patch-third__party_brotli_common_platform.h @@ -0,0 +1,11 @@ +--- third_party/brotli/common/platform.h.orig 2022-05-11 07:01:48 UTC ++++ third_party/brotli/common/platform.h +@@ -28,7 +28,7 @@ + #include <brotli/port.h> + #include <brotli/types.h> + +-#if defined(OS_LINUX) || defined(OS_CYGWIN) || defined(__EMSCRIPTEN__) ++#if defined(OS_LINUX) || defined(OS_CYGWIN) || defined(__EMSCRIPTEN__) || defined(OS_BSD) + #include <endian.h> + #elif defined(OS_FREEBSD) + #include <machine/endian.h> diff --git a/devel/electron18/files/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni b/devel/electron18/files/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni new file mode 100644 index 000000000000..b55a765ae9d7 --- /dev/null +++ b/devel/electron18/files/patch-third__party_crashpad_crashpad_build_crashpad__buildconfig.gni @@ -0,0 +1,11 @@ +--- third_party/crashpad/crashpad/build/crashpad_buildconfig.gni.orig 2022-05-11 07:01:48 UTC ++++ third_party/crashpad/crashpad/build/crashpad_buildconfig.gni +@@ -58,7 +58,7 @@ if (crashpad_is_in_chromium) { + crashpad_is_mac = is_mac + crashpad_is_ios = is_ios + crashpad_is_win = is_win +- crashpad_is_linux = is_linux || is_chromeos ++ crashpad_is_linux = (is_linux || is_chromeos) && !is_bsd + crashpad_is_android = is_android + crashpad_is_fuchsia = is_fuchsia + diff --git a/devel/electron18/files/patch-third__party_crashpad_crashpad_client_BUILD.gn b/devel/electron18/files/patch-third__party_crashpad_crashpad_client_BUILD.gn new file mode 100644 index 000000000000..5224bf3f17a4 --- /dev/null +++ b/devel/electron18/files/patch-third__party_crashpad_crashpad_client_BUILD.gn @@ -0,0 +1,16 @@ +--- third_party/crashpad/crashpad/client/BUILD.gn.orig 2022-05-11 07:01:48 UTC ++++ third_party/crashpad/crashpad/client/BUILD.gn +@@ -130,6 +130,13 @@ static_library("common") { + if (crashpad_is_win) { + sources += [ "crash_report_database_win.cc" ] + } ++ ++ if (crashpad_is_posix) { ++ sources += [ ++ "crashpad_client_posix.cc", ++ ] ++ } ++ + if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) { + sources += [ + "crash_report_database_generic.cc", diff --git a/devel/electron18/files/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc b/devel/electron18/files/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc new file mode 100644 index 000000000000..f130a0adee08 --- /dev/null +++ b/devel/electron18/files/patch-third__party_crashpad_crashpad_client_crashpad__client__posix.cc @@ -0,0 +1,43 @@ +--- third_party/crashpad/crashpad/client/crashpad_client_posix.cc.orig 2022-05-13 07:20:05 UTC ++++ third_party/crashpad/crashpad/client/crashpad_client_posix.cc +@@ -0,0 +1,40 @@ ++// Copyright 2017 The Crashpad Authors. All rights reserved. ++// ++// Licensed under the Apache License, Version 2.0 (the "License"); ++// you may not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, software ++// distributed under the License is distributed on an "AS IS" BASIS, ++// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++// See the License for the specific language governing permissions and ++// limitations under the License. ++ ++#include "client/crashpad_client.h" ++ ++#include "base/logging.h" ++#include "base/notreached.h" ++ ++namespace crashpad { ++ ++CrashpadClient::CrashpadClient() {} ++ ++CrashpadClient::~CrashpadClient() {} ++ ++bool CrashpadClient::StartHandler( ++ const base::FilePath& handler, ++ const base::FilePath& database, ++ const base::FilePath& metrics_dir, ++ const std::string& url, ++ const std::map<std::string, std::string>& annotations, ++ const std::vector<std::string>& arguments, ++ bool restartable, ++ bool asynchronous_start, ++ const std::vector<base::FilePath>& attachments) { ++ NOTREACHED(); // TODO(scottmg): https://crashpad.chromium.org/bug/196 ++ return false; ++} ++ ++} // namespace crashpad diff --git a/devel/electron18/files/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc b/devel/electron18/files/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc new file mode 100644 index 000000000000..3695d553fb66 --- /dev/null +++ b/devel/electron18/files/patch-third__party_crashpad_crashpad_minidump_minidump__misc__info__writer.cc @@ -0,0 +1,13 @@ +--- third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc.orig 2022-05-19 05:18:00 UTC ++++ third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc +@@ -119,6 +119,10 @@ std::string MinidumpMiscInfoDebugBuildString() { + static constexpr char kOS[] = "win"; + #elif BUILDFLAG(IS_FUCHSIA) + static constexpr char kOS[] = "fuchsia"; ++#elif defined(OS_OPENBSD) ++ static constexpr char kOS[] = "openbsd"; ++#elif defined(OS_FREEBSD) ++ static constexpr char kOS[] = "freebsd"; + #else + #error define kOS for this operating system + #endif diff --git a/devel/electron18/files/patch-third__party_crashpad_crashpad_util_misc_address__types.h b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_misc_address__types.h new file mode 100644 index 000000000000..c9b6d789410e --- /dev/null +++ b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_misc_address__types.h @@ -0,0 +1,20 @@ +--- third_party/crashpad/crashpad/util/misc/address_types.h.orig 2022-05-19 03:46:56 UTC ++++ third_party/crashpad/crashpad/util/misc/address_types.h +@@ -25,7 +25,7 @@ + #include <mach/mach_types.h> + #elif BUILDFLAG(IS_WIN) + #include "util/win/address_types.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #include "util/linux/address_types.h" + #elif BUILDFLAG(IS_FUCHSIA) + #include <zircon/types.h> +@@ -55,7 +55,7 @@ using VMSize = mach_vm_size_t; + using VMAddress = WinVMAddress; + using VMSize = WinVMSize; + +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + + using VMAddress = LinuxVMAddress; + using VMSize = LinuxVMSize; diff --git a/devel/electron18/files/patch-third__party_crashpad_crashpad_util_misc_capture__context.h b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_misc_capture__context.h new file mode 100644 index 000000000000..e6572d70f3ab --- /dev/null +++ b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_misc_capture__context.h @@ -0,0 +1,22 @@ +--- third_party/crashpad/crashpad/util/misc/capture_context.h.orig 2022-05-19 03:46:56 UTC ++++ third_party/crashpad/crashpad/util/misc/capture_context.h +@@ -21,7 +21,8 @@ + #include <mach/mach.h> + #elif BUILDFLAG(IS_WIN) + #include <windows.h> +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ ++ BUILDFLAG(IS_FREEBSD) + #include <ucontext.h> + #elif BUILDFLAG(IS_FUCHSIA) + #include <signal.h> +@@ -38,7 +39,8 @@ using NativeCPUContext = arm_unified_thread_state; + #elif BUILDFLAG(IS_WIN) + using NativeCPUContext = CONTEXT; + #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \ ++ BUILDFLAG(IS_BSD) + using NativeCPUContext = ucontext_t; + #endif // BUILDFLAG(IS_APPLE) + diff --git a/devel/electron18/files/patch-third__party_crashpad_crashpad_util_misc_metrics.cc b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_misc_metrics.cc new file mode 100644 index 000000000000..3675f9113803 --- /dev/null +++ b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_misc_metrics.cc @@ -0,0 +1,11 @@ +--- third_party/crashpad/crashpad/util/misc/metrics.cc.orig 2022-05-19 03:46:56 UTC ++++ third_party/crashpad/crashpad/util/misc/metrics.cc +@@ -25,7 +25,7 @@ + #define METRICS_OS_NAME "Win" + #elif BUILDFLAG(IS_ANDROID) + #define METRICS_OS_NAME "Android" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #define METRICS_OS_NAME "Linux" + #elif BUILDFLAG(IS_FUCHSIA) + #define METRICS_OS_NAME "Fuchsia" diff --git a/devel/electron18/files/patch-third__party_crashpad_crashpad_util_misc_uuid.cc b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_misc_uuid.cc new file mode 100644 index 000000000000..dba3e9188a84 --- /dev/null +++ b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_misc_uuid.cc @@ -0,0 +1,11 @@ +--- third_party/crashpad/crashpad/util/misc/uuid.cc.orig 2022-05-19 03:46:56 UTC ++++ third_party/crashpad/crashpad/util/misc/uuid.cc +@@ -101,7 +101,7 @@ bool UUID::InitializeWithNew() { + InitializeFromBytes(uuid); + return true; + #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Linux, Android, and Fuchsia do not provide a UUID generator in a + // widely-available system library. On Linux and Android, uuid_generate() + // from libuuid is not available everywhere. diff --git a/devel/electron18/files/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc new file mode 100644 index 000000000000..a6ba184faa35 --- /dev/null +++ b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_posix_close__multiple.cc @@ -0,0 +1,11 @@ +--- third_party/crashpad/crashpad/util/posix/close_multiple.cc.orig 2022-05-19 05:18:00 UTC ++++ third_party/crashpad/crashpad/util/posix/close_multiple.cc +@@ -72,7 +72,7 @@ void CloseNowOrOnExec(int fd, bool ebadf_ok) { + // This is an advantage over looping over all possible file descriptors, because + // no attempt needs to be made to close file descriptors that are not open. + bool CloseMultipleNowOrOnExecUsingFDDir(int min_fd, int preserve_fd) { +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + static constexpr char kFDDir[] = "/dev/fd"; + #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + static constexpr char kFDDir[] = "/proc/self/fd"; diff --git a/devel/electron18/files/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc new file mode 100644 index 000000000000..2447a9a7e5a4 --- /dev/null +++ b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_posix_drop__privileges.cc @@ -0,0 +1,11 @@ +--- third_party/crashpad/crashpad/util/posix/drop_privileges.cc.orig 2022-05-19 03:46:56 UTC ++++ third_party/crashpad/crashpad/util/posix/drop_privileges.cc +@@ -25,7 +25,7 @@ void DropPrivileges() { + gid_t gid = getgid(); + uid_t uid = getuid(); + +-#if BUILDFLAG(IS_APPLE) ++#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_BSD) + // Based on the POSIX.1-2008 2013 edition documentation for setreuid() and + // setregid(), setreuid() and setregid() alone should be sufficient to drop + // privileges. The standard specifies that the saved ID should be set to the diff --git a/devel/electron18/files/patch-third__party_crashpad_crashpad_util_posix_signals.cc b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_posix_signals.cc new file mode 100644 index 000000000000..0ef9f95cce34 --- /dev/null +++ b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_posix_signals.cc @@ -0,0 +1,33 @@ +--- third_party/crashpad/crashpad/util/posix/signals.cc.orig 2022-05-19 05:18:00 UTC ++++ third_party/crashpad/crashpad/util/posix/signals.cc +@@ -51,7 +51,7 @@ constexpr int kCrashSignals[] = { + #if defined(SIGEMT) + SIGEMT, + #endif // defined(SIGEMT) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + SIGXCPU, + SIGXFSZ, + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -91,7 +91,7 @@ constexpr int kTerminateSignals[] = { + SIGXCPU, + SIGXFSZ, + #endif // BUILDFLAG(IS_APPLE) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + SIGIO, + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) + }; +@@ -233,8 +233,12 @@ bool Signals::WillSignalReraiseAutonomously(const sigi + // remains. See 10.12.3 xnu-3789.41.3/bsd/kern/kern_sig.c + // psignal_internal(). + (code > 0 && ++#if defined(SI_ASYNCIO) + code != SI_ASYNCIO && ++#endif ++#if defined(SI_MESGQ) + code != SI_MESGQ && ++#endif + code != SI_QUEUE && + code != SI_TIMER && + code != SI_USER && diff --git a/devel/electron18/files/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc new file mode 100644 index 000000000000..e40a5bcb3df2 --- /dev/null +++ b/devel/electron18/files/patch-third__party_crashpad_crashpad_util_posix_symbolic__constants__posix.cc @@ -0,0 +1,20 @@ +--- third_party/crashpad/crashpad/util/posix/symbolic_constants_posix.cc.orig 2022-05-19 05:18:00 UTC ++++ third_party/crashpad/crashpad/util/posix/symbolic_constants_posix.cc +@@ -66,7 +66,7 @@ constexpr const char* kSignalNames[] = { + "INFO", + "USR1", + "USR2", +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #if defined(ARCH_CPU_MIPS_FAMILY) + "HUP", + "INT", +@@ -137,7 +137,7 @@ constexpr const char* kSignalNames[] = { + #endif // defined(ARCH_CPU_MIPS_FAMILY) + #endif + }; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + // NSIG is 64 to account for real-time signals. + static_assert(base::size(kSignalNames) == 32, "kSignalNames length"); + #else diff --git a/devel/electron18/files/patch-third__party_crc32c_BUILD.gn b/devel/electron18/files/patch-third__party_crc32c_BUILD.gn new file mode 100644 index 000000000000..f1a942434d94 --- /dev/null +++ b/devel/electron18/files/patch-third__party_crc32c_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/crc32c/BUILD.gn.orig 2022-05-11 07:01:48 UTC ++++ third_party/crc32c/BUILD.gn +@@ -47,7 +47,7 @@ config("crc32c_config") { + } + + # Android added <sys/auxv.h> in API level 18. +- if (is_linux || is_chromeos || is_android) { ++ if (is_linux || is_chromeos || is_android && !is_bsd) { + defines += [ + "HAVE_STRONG_GETAUXVAL=1", + "HAVE_WEAK_GETAUXVAL=1", diff --git a/devel/electron18/files/patch-third__party_dawn_include_dawn_native_VulkanBackend.h b/devel/electron18/files/patch-third__party_dawn_include_dawn_native_VulkanBackend.h new file mode 100644 index 000000000000..509f7954f6fe --- /dev/null +++ b/devel/electron18/files/patch-third__party_dawn_include_dawn_native_VulkanBackend.h @@ -0,0 +1,11 @@ +--- third_party/dawn/include/dawn/native/VulkanBackend.h.orig 2022-05-19 05:18:24 UTC ++++ third_party/dawn/include/dawn/native/VulkanBackend.h +@@ -69,7 +69,7 @@ namespace dawn::native::vulkan { + }; + + // Can't use DAWN_PLATFORM_LINUX since header included in both Dawn and Chrome +-#ifdef __linux__ ++#if defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) + + // Common properties of external images represented by FDs. On successful import the file + // descriptor's ownership is transferred to the Dawn implementation and they shouldn't be diff --git a/devel/electron18/files/patch-third__party_dawn_src_dawn_common_Platform.h b/devel/electron18/files/patch-third__party_dawn_src_dawn_common_Platform.h new file mode 100644 index 000000000000..522ea7cc0b87 --- /dev/null +++ b/devel/electron18/files/patch-third__party_dawn_src_dawn_common_Platform.h @@ -0,0 +1,14 @@ +--- third_party/dawn/src/dawn/common/Platform.h.orig 2022-05-19 05:18:24 UTC ++++ third_party/dawn/src/dawn/common/Platform.h +@@ -26,6 +26,11 @@ + # error "Unsupported Windows platform." + # endif + ++#elif defined(__OpenBSD__) || defined(__FreeBSD__) ++# define DAWN_PLATFORM_BSD 1 ++# define DAWN_PLATFORM_LINUX 1 ++# define DAWN_PLATFORM_POSIX 1 ++ + #elif defined(__linux__) + # define DAWN_PLATFORM_LINUX 1 + # define DAWN_PLATFORM_POSIX 1 diff --git a/devel/electron18/files/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp b/devel/electron18/files/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp new file mode 100644 index 000000000000..a80b34312d30 --- /dev/null +++ b/devel/electron18/files/patch-third__party_dawn_src_dawn_native_vulkan_BackendVk.cpp @@ -0,0 +1,11 @@ +--- third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp.orig 2022-05-19 05:18:24 UTC ++++ third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp +@@ -37,7 +37,7 @@ constexpr char kSwiftshaderLibName[] = "libvk_swiftsha + #endif + + #if defined(DAWN_PLATFORM_LINUX) +-# if defined(DAWN_PLATFORM_ANDROID) ++# if defined(DAWN_PLATFORM_ANDROID) || defined(DAWN_PLATFORM_BSD) + constexpr char kVulkanLibName[] = "libvulkan.so"; + # else + constexpr char kVulkanLibName[] = "libvulkan.so.1"; diff --git a/devel/electron18/files/patch-third__party_electron__node_deps_uv_BUILD.gn b/devel/electron18/files/patch-third__party_electron__node_deps_uv_BUILD.gn new file mode 100644 index 000000000000..9628c98dee4e --- /dev/null +++ b/devel/electron18/files/patch-third__party_electron__node_deps_uv_BUILD.gn @@ -0,0 +1,46 @@ +--- third_party/electron_node/deps/uv/BUILD.gn.orig 2022-05-13 07:19:54 UTC ++++ third_party/electron_node/deps/uv/BUILD.gn +@@ -3,7 +3,7 @@ config("libuv_config") { + + defines = [] + +- if (is_linux) { ++ if (is_linux && !is_bsd) { + defines += [ "_POSIX_C_SOURCE=200112" ] + } + if (!is_win) { +@@ -155,7 +155,7 @@ static_library("uv") { + libs += [ "m" ] + ldflags += [ "-pthread" ] + } +- if (is_mac || is_linux) { ++ if (is_mac || (is_linux && !is_bsd)) { + sources += [ "src/unix/proctitle.c" ] + } + if (is_mac) { +@@ -170,7 +170,7 @@ static_library("uv") { + "_DARWIN_UNLIMITED_SELECT=1", + ] + } +- if (is_linux) { ++ if (is_linux && !is_bsd) { + defines += [ "_GNU_SOURCE" ] + sources += [ + "src/unix/epoll.c", +@@ -191,6 +191,16 @@ static_library("uv") { + sources += [ + "src/unix/bsd-ifaddrs.c", + "src/unix/kqueue.c", ++ ] ++ } ++ if (is_bsd) { ++ sources += [ ++ "src/unix/bsd-ifaddrs.c", ++ "src/unix/bsd-proctitle.c", ++ "src/unix/freebsd.c", ++ "src/unix/kqueue.c", ++ "src/unix/posix-hrtime.c", ++ "src/unix/random-getrandom.c", + ] + } + } diff --git a/devel/electron18/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c b/devel/electron18/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c new file mode 100644 index 000000000000..d01c2065440c --- /dev/null +++ b/devel/electron18/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c @@ -0,0 +1,18 @@ +--- third_party/electron_node/deps/uv/src/unix/pipe.c.orig 2020-07-22 14:57:01 UTC ++++ third_party/electron_node/deps/uv/src/unix/pipe.c +@@ -150,9 +150,13 @@ int uv_pipe_open(uv_pipe_t* handle, uv_file fd) { + if (mode == -1) + return UV__ERR(errno); /* according to docs, must be EBADF */ + ++ /* If ioctl(FIONBIO) reports ENOTTY, try fcntl(F_GETFL) + fcntl(F_SETFL). ++ * Workaround for e.g. kqueue fds not supporting ioctls. ++ */ + err = uv__nonblock(fd, 1); +- if (err) +- return err; ++ if (err == UV_ENOTTY) ++ if (uv__nonblock == uv__nonblock_ioctl) ++ err = uv__nonblock_fcntl(fd, 1); + + #if defined(__APPLE__) + err = uv__stream_try_select((uv_stream_t*) handle, &fd); diff --git a/devel/electron18/files/patch-third__party_ffmpeg_BUILD.gn b/devel/electron18/files/patch-third__party_ffmpeg_BUILD.gn new file mode 100644 index 000000000000..a93cc1b500c0 --- /dev/null +++ b/devel/electron18/files/patch-third__party_ffmpeg_BUILD.gn @@ -0,0 +1,10 @@ +--- third_party/ffmpeg/BUILD.gn.orig 2022-05-11 07:03:53 UTC ++++ third_party/ffmpeg/BUILD.gn +@@ -349,7 +349,6 @@ target(link_target_type, "ffmpeg_internal") { + libs += [ + "m", + "z", +- "rt", + ] + } + if (is_component_ffmpeg) { diff --git a/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_arm64_config.h b/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_arm64_config.h new file mode 100644 index 000000000000..0f7ea13fb5b0 --- /dev/null +++ b/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_arm64_config.h @@ -0,0 +1,2790 @@ +--- third_party/ffmpeg/chromium/config/Chrome/openbsd/arm64/config.h.orig 2022-05-20 04:31:06 UTC ++++ third_party/ffmpeg/chromium/config/Chrome/openbsd/arm64/config.h +@@ -0,0 +1,2787 @@ ++/* Automatically generated by configure - do not modify! */ ++#ifndef FFMPEG_CONFIG_H ++#define FFMPEG_CONFIG_H ++/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio,vp9' --disable-linux-perf --x86asmexe=nasm --optflags=-O2 --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */ ++#define FFMPEG_LICENSE "LGPL version 2.1 or later" ++#define CONFIG_THIS_YEAR 2022 ++#define FFMPEG_DATADIR "/usr/local/share/ffmpeg" ++#define AVCONV_DATADIR "/usr/local/share/ffmpeg" ++#define CC_IDENT "OpenBSD clang version 13.0.0" ++#define OS_NAME openbsd ++#define av_restrict restrict ++#define EXTERN_PREFIX "" ++#define EXTERN_ASM ++#define BUILDSUF "" ++#define SLIBSUF ".so" ++#define HAVE_MMX2 HAVE_MMXEXT ++#define SWS_MAX_FILTER_SIZE 256 ++#define ARCH_AARCH64 1 ++#define ARCH_ALPHA 0 ++#define ARCH_ARM 0 ++#define ARCH_AVR32 0 ++#define ARCH_AVR32_AP 0 ++#define ARCH_AVR32_UC 0 ++#define ARCH_BFIN 0 ++#define ARCH_IA64 0 ++#define ARCH_LOONGARCH 0 ++#define ARCH_LOONGARCH32 0 ++#define ARCH_LOONGARCH64 0 ++#define ARCH_M68K 0 ++#define ARCH_MIPS 0 ++#define ARCH_MIPS64 0 ++#define ARCH_PARISC 0 ++#define ARCH_PPC 0 ++#define ARCH_PPC64 0 ++#define ARCH_RISCV 0 ++#define ARCH_S390 0 ++#define ARCH_SH4 0 ++#define ARCH_SPARC 0 ++#define ARCH_SPARC64 0 ++#define ARCH_TILEGX 0 ++#define ARCH_TILEPRO 0 ++#define ARCH_TOMI 0 ++#define ARCH_X86 0 ++#define ARCH_X86_32 0 ++#define ARCH_X86_64 0 ++#define HAVE_ARMV5TE 0 ++#define HAVE_ARMV6 0 ++#define HAVE_ARMV6T2 0 ++#define HAVE_ARMV8 1 ++#define HAVE_NEON 1 ++#define HAVE_VFP 1 ++#define HAVE_VFPV3 0 ++#define HAVE_SETEND 0 ++#define HAVE_ALTIVEC 0 ++#define HAVE_DCBZL 0 ++#define HAVE_LDBRX 0 ++#define HAVE_POWER8 0 ++#define HAVE_PPC4XX 0 ++#define HAVE_VSX 0 ++#define HAVE_AESNI 0 ++#define HAVE_AMD3DNOW 0 ++#define HAVE_AMD3DNOWEXT 0 ++#define HAVE_AVX 0 ++#define HAVE_AVX2 0 ++#define HAVE_AVX512 0 ++#define HAVE_FMA3 0 ++#define HAVE_FMA4 0 ++#define HAVE_MMX 0 ++#define HAVE_MMXEXT 0 ++#define HAVE_SSE 0 ++#define HAVE_SSE2 0 ++#define HAVE_SSE3 0 ++#define HAVE_SSE4 0 ++#define HAVE_SSE42 0 ++#define HAVE_SSSE3 0 ++#define HAVE_XOP 0 ++#define HAVE_CPUNOP 0 ++#define HAVE_I686 0 ++#define HAVE_MIPSFPU 0 ++#define HAVE_MIPS32R2 0 ++#define HAVE_MIPS32R5 0 ++#define HAVE_MIPS64R2 0 ++#define HAVE_MIPS32R6 0 ++#define HAVE_MIPS64R6 0 ++#define HAVE_MIPSDSP 0 ++#define HAVE_MIPSDSPR2 0 ++#define HAVE_MSA 0 ++#define HAVE_LOONGSON2 0 ++#define HAVE_LOONGSON3 0 ++#define HAVE_MMI 0 ++#define HAVE_LSX 0 ++#define HAVE_LASX 0 ++#define HAVE_ARMV5TE_EXTERNAL 0 ++#define HAVE_ARMV6_EXTERNAL 0 ++#define HAVE_ARMV6T2_EXTERNAL 0 ++#define HAVE_ARMV8_EXTERNAL 1 ++#define HAVE_NEON_EXTERNAL 1 ++#define HAVE_VFP_EXTERNAL 1 ++#define HAVE_VFPV3_EXTERNAL 0 ++#define HAVE_SETEND_EXTERNAL 0 ++#define HAVE_ALTIVEC_EXTERNAL 0 ++#define HAVE_DCBZL_EXTERNAL 0 ++#define HAVE_LDBRX_EXTERNAL 0 ++#define HAVE_POWER8_EXTERNAL 0 ++#define HAVE_PPC4XX_EXTERNAL 0 ++#define HAVE_VSX_EXTERNAL 0 ++#define HAVE_AESNI_EXTERNAL 0 ++#define HAVE_AMD3DNOW_EXTERNAL 0 ++#define HAVE_AMD3DNOWEXT_EXTERNAL 0 ++#define HAVE_AVX_EXTERNAL 0 ++#define HAVE_AVX2_EXTERNAL 0 ++#define HAVE_AVX512_EXTERNAL 0 ++#define HAVE_FMA3_EXTERNAL 0 ++#define HAVE_FMA4_EXTERNAL 0 ++#define HAVE_MMX_EXTERNAL 0 ++#define HAVE_MMXEXT_EXTERNAL 0 ++#define HAVE_SSE_EXTERNAL 0 ++#define HAVE_SSE2_EXTERNAL 0 ++#define HAVE_SSE3_EXTERNAL 0 ++#define HAVE_SSE4_EXTERNAL 0 ++#define HAVE_SSE42_EXTERNAL 0 ++#define HAVE_SSSE3_EXTERNAL 0 ++#define HAVE_XOP_EXTERNAL 0 ++#define HAVE_CPUNOP_EXTERNAL 0 ++#define HAVE_I686_EXTERNAL 0 ++#define HAVE_MIPSFPU_EXTERNAL 0 ++#define HAVE_MIPS32R2_EXTERNAL 0 ++#define HAVE_MIPS32R5_EXTERNAL 0 ++#define HAVE_MIPS64R2_EXTERNAL 0 ++#define HAVE_MIPS32R6_EXTERNAL 0 ++#define HAVE_MIPS64R6_EXTERNAL 0 ++#define HAVE_MIPSDSP_EXTERNAL 0 ++#define HAVE_MIPSDSPR2_EXTERNAL 0 ++#define HAVE_MSA_EXTERNAL 0 ++#define HAVE_LOONGSON2_EXTERNAL 0 ++#define HAVE_LOONGSON3_EXTERNAL 0 ++#define HAVE_MMI_EXTERNAL 0 ++#define HAVE_LSX_EXTERNAL 0 ++#define HAVE_LASX_EXTERNAL 0 ++#define HAVE_ARMV5TE_INLINE 0 ++#define HAVE_ARMV6_INLINE 0 ++#define HAVE_ARMV6T2_INLINE 0 ++#define HAVE_ARMV8_INLINE 1 ++#define HAVE_NEON_INLINE 1 ++#define HAVE_VFP_INLINE 1 ++#define HAVE_VFPV3_INLINE 0 ++#define HAVE_SETEND_INLINE 0 ++#define HAVE_ALTIVEC_INLINE 0 ++#define HAVE_DCBZL_INLINE 0 ++#define HAVE_LDBRX_INLINE 0 ++#define HAVE_POWER8_INLINE 0 ++#define HAVE_PPC4XX_INLINE 0 ++#define HAVE_VSX_INLINE 0 ++#define HAVE_AESNI_INLINE 0 ++#define HAVE_AMD3DNOW_INLINE 0 ++#define HAVE_AMD3DNOWEXT_INLINE 0 ++#define HAVE_AVX_INLINE 0 ++#define HAVE_AVX2_INLINE 0 ++#define HAVE_AVX512_INLINE 0 ++#define HAVE_FMA3_INLINE 0 ++#define HAVE_FMA4_INLINE 0 ++#define HAVE_MMX_INLINE 0 ++#define HAVE_MMXEXT_INLINE 0 ++#define HAVE_SSE_INLINE 0 ++#define HAVE_SSE2_INLINE 0 ++#define HAVE_SSE3_INLINE 0 ++#define HAVE_SSE4_INLINE 0 ++#define HAVE_SSE42_INLINE 0 ++#define HAVE_SSSE3_INLINE 0 ++#define HAVE_XOP_INLINE 0 ++#define HAVE_CPUNOP_INLINE 0 ++#define HAVE_I686_INLINE 0 ++#define HAVE_MIPSFPU_INLINE 0 ++#define HAVE_MIPS32R2_INLINE 0 ++#define HAVE_MIPS32R5_INLINE 0 ++#define HAVE_MIPS64R2_INLINE 0 ++#define HAVE_MIPS32R6_INLINE 0 ++#define HAVE_MIPS64R6_INLINE 0 ++#define HAVE_MIPSDSP_INLINE 0 ++#define HAVE_MIPSDSPR2_INLINE 0 ++#define HAVE_MSA_INLINE 0 ++#define HAVE_LOONGSON2_INLINE 0 ++#define HAVE_LOONGSON3_INLINE 0 ++#define HAVE_MMI_INLINE 0 ++#define HAVE_LSX_INLINE 0 ++#define HAVE_LASX_INLINE 0 ++#define HAVE_ALIGNED_STACK 1 ++#define HAVE_FAST_64BIT 1 ++#define HAVE_FAST_CLZ 1 ++#define HAVE_FAST_CMOV 0 ++#define HAVE_LOCAL_ALIGNED 0 ++#define HAVE_SIMD_ALIGN_16 1 ++#define HAVE_SIMD_ALIGN_32 0 ++#define HAVE_SIMD_ALIGN_64 0 ++#define HAVE_ATOMIC_CAS_PTR 0 ++#define HAVE_MACHINE_RW_BARRIER 0 ++#define HAVE_MEMORYBARRIER 0 ++#define HAVE_MM_EMPTY 0 ++#define HAVE_RDTSC 0 ++#define HAVE_SEM_TIMEDWAIT 1 ++#define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 ++#define HAVE_CABS 0 ++#define HAVE_CEXP 0 ++#define HAVE_INLINE_ASM 1 ++#define HAVE_SYMVER 0 ++#define HAVE_X86ASM 0 ++#define HAVE_BIGENDIAN 0 ++#define HAVE_FAST_UNALIGNED 1 ++#define HAVE_ARPA_INET_H 0 ++#define HAVE_ASM_TYPES_H 0 ++#define HAVE_CDIO_PARANOIA_H 0 ++#define HAVE_CDIO_PARANOIA_PARANOIA_H 0 ++#define HAVE_CUDA_H 0 ++#define HAVE_DISPATCH_DISPATCH_H 0 ++#define HAVE_DEV_BKTR_IOCTL_BT848_H 0 ++#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 ++#define HAVE_DEV_IC_BT8XX_H 1 ++#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 ++#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 ++#define HAVE_DIRECT_H 0 ++#define HAVE_DIRENT_H 1 ++#define HAVE_DXGIDEBUG_H 0 ++#define HAVE_DXVA_H 0 ++#define HAVE_ES2_GL_H 0 ++#define HAVE_GSM_H 0 ++#define HAVE_IO_H 0 ++#define HAVE_LINUX_DMA_BUF_H 0 ++#define HAVE_LINUX_PERF_EVENT_H 0 ++#define HAVE_MACHINE_IOCTL_BT848_H 0 ++#define HAVE_MACHINE_IOCTL_METEOR_H 0 ++#define HAVE_MALLOC_H 0 ++#define HAVE_OPENCV2_CORE_CORE_C_H 0 ++#define HAVE_OPENGL_GL3_H 0 ++#define HAVE_POLL_H 1 ++#define HAVE_SYS_PARAM_H 1 ++#define HAVE_SYS_RESOURCE_H 1 ++#define HAVE_SYS_SELECT_H 1 ++#define HAVE_SYS_SOUNDCARD_H 0 ++#define HAVE_SYS_TIME_H 1 ++#define HAVE_SYS_UN_H 1 ++#define HAVE_SYS_VIDEOIO_H 1 ++#define HAVE_TERMIOS_H 1 ++#define HAVE_UDPLITE_H 0 ++#define HAVE_UNISTD_H 1 ++#define HAVE_VALGRIND_VALGRIND_H 0 ++#define HAVE_WINDOWS_H 0 ++#define HAVE_WINSOCK2_H 0 ++#define HAVE_INTRINSICS_NEON 1 ++#define HAVE_ATANF 1 ++#define HAVE_ATAN2F 1 ++#define HAVE_CBRT 1 ++#define HAVE_CBRTF 1 ++#define HAVE_COPYSIGN 1 ++#define HAVE_COSF 1 ++#define HAVE_ERF 1 ++#define HAVE_EXP2 1 ++#define HAVE_EXP2F 1 ++#define HAVE_EXPF 1 ++#define HAVE_HYPOT 1 ++#define HAVE_ISFINITE 1 ++#define HAVE_ISINF 1 ++#define HAVE_ISNAN 1 ++#define HAVE_LDEXPF 1 ++#define HAVE_LLRINT 1 ++#define HAVE_LLRINTF 1 ++#define HAVE_LOG2 1 ++#define HAVE_LOG2F 1 ++#define HAVE_LOG10F 1 ++#define HAVE_LRINT 1 ++#define HAVE_LRINTF 1 ++#define HAVE_POWF 1 ++#define HAVE_RINT 1 ++#define HAVE_ROUND 1 ++#define HAVE_ROUNDF 1 ++#define HAVE_SINF 1 ++#define HAVE_TRUNC 1 ++#define HAVE_TRUNCF 1 ++#define HAVE_DOS_PATHS 0 ++#define HAVE_LIBC_MSVCRT 0 ++#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 ++#define HAVE_SECTION_DATA_REL_RO 1 ++#define HAVE_THREADS 1 ++#define HAVE_UWP 0 ++#define HAVE_WINRT 0 ++#define HAVE_ACCESS 1 ++#define HAVE_ALIGNED_MALLOC 0 ++#define HAVE_ARC4RANDOM 1 ++#define HAVE_CLOCK_GETTIME 1 ++#define HAVE_CLOSESOCKET 0 ++#define HAVE_COMMANDLINETOARGVW 0 ++#define HAVE_FCNTL 1 ++#define HAVE_GETADDRINFO 0 ++#define HAVE_GETHRTIME 0 ++#define HAVE_GETOPT 1 ++#define HAVE_GETMODULEHANDLE 0 ++#define HAVE_GETPROCESSAFFINITYMASK 0 ++#define HAVE_GETPROCESSMEMORYINFO 0 ++#define HAVE_GETPROCESSTIMES 0 ++#define HAVE_GETRUSAGE 1 ++#define HAVE_GETSTDHANDLE 0 ++#define HAVE_GETSYSTEMTIMEASFILETIME 0 ++#define HAVE_GETTIMEOFDAY 1 ++#define HAVE_GLOB 1 ++#define HAVE_GLXGETPROCADDRESS 0 ++#define HAVE_GMTIME_R 1 ++#define HAVE_INET_ATON 0 ++#define HAVE_ISATTY 1 ++#define HAVE_KBHIT 0 ++#define HAVE_LOCALTIME_R 1 ++#define HAVE_LSTAT 1 ++#define HAVE_LZO1X_999_COMPRESS 0 ++#define HAVE_MACH_ABSOLUTE_TIME 0 ++#define HAVE_MAPVIEWOFFILE 0 ++#define HAVE_MEMALIGN 0 ++#define HAVE_MKSTEMP 1 ++#define HAVE_MMAP 1 ++#define HAVE_MPROTECT 1 ++#define HAVE_NANOSLEEP 1 ++#define HAVE_PEEKNAMEDPIPE 0 ++#define HAVE_POSIX_MEMALIGN 1 ++#define HAVE_PTHREAD_CANCEL 1 ++#define HAVE_SCHED_GETAFFINITY 0 ++#define HAVE_SECITEMIMPORT 0 ++#define HAVE_SETCONSOLETEXTATTRIBUTE 0 ++#define HAVE_SETCONSOLECTRLHANDLER 0 ++#define HAVE_SETDLLDIRECTORY 0 ++#define HAVE_SETMODE 0 ++#define HAVE_SETRLIMIT 1 ++#define HAVE_SLEEP 0 ++#define HAVE_STRERROR_R 1 ++#define HAVE_SYSCONF 1 ++#define HAVE_SYSCTL 1 ++#define HAVE_USLEEP 1 ++#define HAVE_UTGETOSTYPEFROMSTRING 0 ++#define HAVE_VIRTUALALLOC 0 ++#define HAVE_WGLGETPROCADDRESS 0 ++#define HAVE_BCRYPT 0 ++#define HAVE_VAAPI_DRM 0 ++#define HAVE_VAAPI_X11 0 ++#define HAVE_VDPAU_X11 0 ++#define HAVE_PTHREADS 1 ++#define HAVE_OS2THREADS 0 ++#define HAVE_W32THREADS 0 ++#define HAVE_AS_ARCH_DIRECTIVE 0 ++#define HAVE_AS_DN_DIRECTIVE 0 ++#define HAVE_AS_FPU_DIRECTIVE 0 ++#define HAVE_AS_FUNC 0 ++#define HAVE_AS_OBJECT_ARCH 0 ++#define HAVE_ASM_MOD_Q 0 ++#define HAVE_BLOCKS_EXTENSION 0 ++#define HAVE_EBP_AVAILABLE 0 ++#define HAVE_EBX_AVAILABLE 0 ++#define HAVE_GNU_AS 0 ++#define HAVE_GNU_WINDRES 0 ++#define HAVE_IBM_ASM 0 ++#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 ++#define HAVE_INLINE_ASM_LABELS 1 ++#define HAVE_INLINE_ASM_NONLOCAL_LABELS 1 ++#define HAVE_PRAGMA_DEPRECATED 1 ++#define HAVE_RSYNC_CONTIMEOUT 0 ++#define HAVE_SYMVER_ASM_LABEL 1 ++#define HAVE_SYMVER_GNU_ASM 1 ++/* #define HAVE_VFP_ARGS 0 -- softfp/hardfp selection is done by the chrome build */ ++#define HAVE_XFORM_ASM 0 ++#define HAVE_XMM_CLOBBERS 0 ++#define HAVE_KCMVIDEOCODECTYPE_HEVC 0 ++#define HAVE_KCMVIDEOCODECTYPE_HEVCWITHALPHA 0 ++#define HAVE_KCMVIDEOCODECTYPE_VP9 0 ++#define HAVE_KCVPIXELFORMATTYPE_420YPCBCR10BIPLANARVIDEORANGE 0 ++#define HAVE_KCVPIXELFORMATTYPE_422YPCBCR8BIPLANARVIDEORANGE 0 ++#define HAVE_KCVPIXELFORMATTYPE_422YPCBCR10BIPLANARVIDEORANGE 0 ++#define HAVE_KCVPIXELFORMATTYPE_422YPCBCR16BIPLANARVIDEORANGE 0 ++#define HAVE_KCVPIXELFORMATTYPE_444YPCBCR8BIPLANARVIDEORANGE 0 ++#define HAVE_KCVPIXELFORMATTYPE_444YPCBCR10BIPLANARVIDEORANGE 0 ++#define HAVE_KCVPIXELFORMATTYPE_444YPCBCR16BIPLANARVIDEORANGE 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_2084_PQ 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2100_HLG 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_LINEAR 0 ++#define HAVE_KCVIMAGEBUFFERYCBCRMATRIX_ITU_R_2020 0 ++#define HAVE_KCVIMAGEBUFFERCOLORPRIMARIES_ITU_R_2020 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2020 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_428_1 0 ++#define HAVE_SOCKLEN_T 0 ++#define HAVE_STRUCT_ADDRINFO 0 ++#define HAVE_STRUCT_GROUP_SOURCE_REQ 0 ++#define HAVE_STRUCT_IP_MREQ_SOURCE 0 ++#define HAVE_STRUCT_IPV6_MREQ 0 ++#define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 ++#define HAVE_STRUCT_POLLFD 0 ++#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1 ++#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 ++#define HAVE_STRUCT_SOCKADDR_IN6 0 ++#define HAVE_STRUCT_SOCKADDR_SA_LEN 0 ++#define HAVE_STRUCT_SOCKADDR_STORAGE 0 ++#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 ++#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1 ++#define HAVE_GZIP 1 ++#define HAVE_LIBDRM_GETFB2 0 ++#define HAVE_MAKEINFO 1 ++#define HAVE_MAKEINFO_HTML 0 ++#define HAVE_OPENCL_D3D11 0 ++#define HAVE_OPENCL_DRM_ARM 0 ++#define HAVE_OPENCL_DRM_BEIGNET 0 ++#define HAVE_OPENCL_DXVA2 0 ++#define HAVE_OPENCL_VAAPI_BEIGNET 0 ++#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 ++#define HAVE_PERL 1 ++#define HAVE_POD2MAN 1 ++#define HAVE_TEXI2HTML 0 ++#define HAVE_XMLLINT 1 ++#define HAVE_ZLIB_GZIP 0 ++#define CONFIG_DOC 0 ++#define CONFIG_HTMLPAGES 0 ++#define CONFIG_MANPAGES 0 ++#define CONFIG_PODPAGES 0 ++#define CONFIG_TXTPAGES 0 ++#define CONFIG_AVIO_LIST_DIR_EXAMPLE 1 ++#define CONFIG_AVIO_READING_EXAMPLE 1 ++#define CONFIG_DECODE_AUDIO_EXAMPLE 1 ++#define CONFIG_DECODE_VIDEO_EXAMPLE 1 ++#define CONFIG_DEMUXING_DECODING_EXAMPLE 1 ++#define CONFIG_ENCODE_AUDIO_EXAMPLE 1 ++#define CONFIG_ENCODE_VIDEO_EXAMPLE 1 ++#define CONFIG_EXTRACT_MVS_EXAMPLE 1 ++#define CONFIG_FILTER_AUDIO_EXAMPLE 0 ++#define CONFIG_FILTERING_AUDIO_EXAMPLE 0 ++#define CONFIG_FILTERING_VIDEO_EXAMPLE 0 ++#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 1 ++#define CONFIG_HW_DECODE_EXAMPLE 1 ++#define CONFIG_METADATA_EXAMPLE 1 ++#define CONFIG_MUXING_EXAMPLE 0 ++#define CONFIG_QSVDEC_EXAMPLE 0 ++#define CONFIG_REMUXING_EXAMPLE 1 ++#define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0 ++#define CONFIG_SCALING_VIDEO_EXAMPLE 0 ++#define CONFIG_TRANSCODE_AAC_EXAMPLE 0 ++#define CONFIG_TRANSCODING_EXAMPLE 0 ++#define CONFIG_VAAPI_ENCODE_EXAMPLE 0 ++#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 ++#define CONFIG_AVISYNTH 0 ++#define CONFIG_FREI0R 0 ++#define CONFIG_LIBCDIO 0 ++#define CONFIG_LIBDAVS2 0 ++#define CONFIG_LIBRUBBERBAND 0 ++#define CONFIG_LIBVIDSTAB 0 ++#define CONFIG_LIBX264 0 ++#define CONFIG_LIBX265 0 ++#define CONFIG_LIBXAVS 0 ++#define CONFIG_LIBXAVS2 0 ++#define CONFIG_LIBXVID 0 ++#define CONFIG_DECKLINK 0 ++#define CONFIG_LIBFDK_AAC 0 ++#define CONFIG_LIBTLS 0 ++#define CONFIG_GMP 0 ++#define CONFIG_LIBARIBB24 0 ++#define CONFIG_LIBLENSFUN 0 ++#define CONFIG_LIBOPENCORE_AMRNB 0 ++#define CONFIG_LIBOPENCORE_AMRWB 0 ++#define CONFIG_LIBVO_AMRWBENC 0 ++#define CONFIG_MBEDTLS 0 ++#define CONFIG_RKMPP 0 ++#define CONFIG_LIBSMBCLIENT 0 ++#define CONFIG_CHROMAPRINT 0 ++#define CONFIG_GCRYPT 0 ++#define CONFIG_GNUTLS 0 ++#define CONFIG_JNI 0 ++#define CONFIG_LADSPA 0 ++#define CONFIG_LIBAOM 0 ++#define CONFIG_LIBASS 0 ++#define CONFIG_LIBBLURAY 0 ++#define CONFIG_LIBBS2B 0 ++#define CONFIG_LIBCACA 0 ++#define CONFIG_LIBCELT 0 ++#define CONFIG_LIBCODEC2 0 ++#define CONFIG_LIBDAV1D 0 ++#define CONFIG_LIBDC1394 0 ++#define CONFIG_LIBDRM 0 ++#define CONFIG_LIBFLITE 0 ++#define CONFIG_LIBFONTCONFIG 0 ++#define CONFIG_LIBFREETYPE 0 ++#define CONFIG_LIBFRIBIDI 0 ++#define CONFIG_LIBGLSLANG 0 ++#define CONFIG_LIBGME 0 ++#define CONFIG_LIBGSM 0 ++#define CONFIG_LIBIEC61883 0 ++#define CONFIG_LIBILBC 0 ++#define CONFIG_LIBJACK 0 ++#define CONFIG_LIBKLVANC 0 ++#define CONFIG_LIBKVAZAAR 0 ++#define CONFIG_LIBMODPLUG 0 ++#define CONFIG_LIBMP3LAME 0 ++#define CONFIG_LIBMYSOFA 0 ++#define CONFIG_LIBOPENCV 0 ++#define CONFIG_LIBOPENH264 0 ++#define CONFIG_LIBOPENJPEG 0 ++#define CONFIG_LIBOPENMPT 0 ++#define CONFIG_LIBOPENVINO 0 ++#define CONFIG_LIBOPUS 1 ++#define CONFIG_LIBPLACEBO 0 ++#define CONFIG_LIBPULSE 0 ++#define CONFIG_LIBRABBITMQ 0 ++#define CONFIG_LIBRAV1E 0 ++#define CONFIG_LIBRIST 0 ++#define CONFIG_LIBRSVG 0 ++#define CONFIG_LIBRTMP 0 ++#define CONFIG_LIBSHADERC 0 ++#define CONFIG_LIBSHINE 0 ++#define CONFIG_LIBSMBCLIENT 0 ++#define CONFIG_LIBSNAPPY 0 ++#define CONFIG_LIBSOXR 0 ++#define CONFIG_LIBSPEEX 0 ++#define CONFIG_LIBSRT 0 ++#define CONFIG_LIBSSH 0 ++#define CONFIG_LIBSVTAV1 0 ++#define CONFIG_LIBTENSORFLOW 0 ++#define CONFIG_LIBTESSERACT 0 ++#define CONFIG_LIBTHEORA 0 ++#define CONFIG_LIBTWOLAME 0 ++#define CONFIG_LIBUAVS3D 0 ++#define CONFIG_LIBV4L2 0 ++#define CONFIG_LIBVMAF 0 ++#define CONFIG_LIBVORBIS 0 ++#define CONFIG_LIBVPX 0 ++#define CONFIG_LIBWEBP 0 ++#define CONFIG_LIBXML2 0 ++#define CONFIG_LIBZIMG 0 ++#define CONFIG_LIBZMQ 0 ++#define CONFIG_LIBZVBI 0 ++#define CONFIG_LV2 0 ++#define CONFIG_MEDIACODEC 0 ++#define CONFIG_OPENAL 0 ++#define CONFIG_OPENGL 0 ++#define CONFIG_OPENSSL 0 ++#define CONFIG_POCKETSPHINX 0 ++#define CONFIG_VAPOURSYNTH 0 ++#define CONFIG_ALSA 0 ++#define CONFIG_APPKIT 0 ++#define CONFIG_AVFOUNDATION 0 ++#define CONFIG_BZLIB 0 ++#define CONFIG_COREIMAGE 0 ++#define CONFIG_ICONV 0 ++#define CONFIG_LIBXCB 0 ++#define CONFIG_LIBXCB_SHM 0 ++#define CONFIG_LIBXCB_SHAPE 0 ++#define CONFIG_LIBXCB_XFIXES 0 ++#define CONFIG_LZMA 0 ++#define CONFIG_MEDIAFOUNDATION 0 ++#define CONFIG_METAL 0 ++#define CONFIG_SCHANNEL 0 ++#define CONFIG_SDL2 0 ++#define CONFIG_SECURETRANSPORT 0 ++#define CONFIG_SNDIO 0 ++#define CONFIG_XLIB 0 ++#define CONFIG_ZLIB 0 ++#define CONFIG_CUDA_NVCC 0 ++#define CONFIG_CUDA_SDK 0 ++#define CONFIG_LIBNPP 0 ++#define CONFIG_LIBMFX 0 ++#define CONFIG_MMAL 0 ++#define CONFIG_OMX 0 ++#define CONFIG_OPENCL 0 ++#define CONFIG_AMF 0 ++#define CONFIG_AUDIOTOOLBOX 0 ++#define CONFIG_CRYSTALHD 0 ++#define CONFIG_CUDA 0 ++#define CONFIG_CUDA_LLVM 0 ++#define CONFIG_CUVID 0 ++#define CONFIG_D3D11VA 0 ++#define CONFIG_DXVA2 0 ++#define CONFIG_FFNVCODEC 0 ++#define CONFIG_NVDEC 0 ++#define CONFIG_NVENC 0 ++#define CONFIG_VAAPI 0 ++#define CONFIG_VDPAU 0 ++#define CONFIG_VIDEOTOOLBOX 0 ++#define CONFIG_VULKAN 0 ++#define CONFIG_V4L2_M2M 0 ++#define CONFIG_XVMC 0 ++#define CONFIG_FTRAPV 0 ++#define CONFIG_GRAY 0 ++#define CONFIG_HARDCODED_TABLES 0 ++#define CONFIG_OMX_RPI 0 ++#define CONFIG_RUNTIME_CPUDETECT 1 ++#define CONFIG_SAFE_BITSTREAM_READER 1 ++#define CONFIG_SHARED 0 ++#define CONFIG_SMALL 0 ++#define CONFIG_STATIC 1 ++#define CONFIG_SWSCALE_ALPHA 1 ++#define CONFIG_GPL 0 ++#define CONFIG_NONFREE 0 ++#define CONFIG_VERSION3 0 ++#define CONFIG_AVDEVICE 0 ++#define CONFIG_AVFILTER 0 ++#define CONFIG_SWSCALE 0 ++#define CONFIG_POSTPROC 0 ++#define CONFIG_AVFORMAT 1 ++#define CONFIG_AVCODEC 1 ++#define CONFIG_SWRESAMPLE 0 ++#define CONFIG_AVUTIL 1 ++#define CONFIG_FFPLAY 0 ++#define CONFIG_FFPROBE 0 ++#define CONFIG_FFMPEG 0 ++#define CONFIG_DCT 1 ++#define CONFIG_DWT 0 ++#define CONFIG_ERROR_RESILIENCE 0 ++#define CONFIG_FAAN 0 ++#define CONFIG_FAST_UNALIGNED 1 ++#define CONFIG_FFT 1 ++#define CONFIG_LSP 0 ++#define CONFIG_LZO 0 ++#define CONFIG_MDCT 1 ++#define CONFIG_PIXELUTILS 0 ++#define CONFIG_NETWORK 0 ++#define CONFIG_RDFT 1 ++#define CONFIG_AUTODETECT 0 ++#define CONFIG_FONTCONFIG 0 ++#define CONFIG_LARGE_TESTS 1 ++#define CONFIG_LINUX_PERF 0 ++#define CONFIG_MACOS_KPERF 0 ++#define CONFIG_MEMORY_POISONING 0 ++#define CONFIG_NEON_CLOBBER_TEST 0 ++#define CONFIG_OSSFUZZ 0 ++#define CONFIG_PIC 1 ++#define CONFIG_PTX_COMPRESSION 0 ++#define CONFIG_THUMB 0 ++#define CONFIG_VALGRIND_BACKTRACE 0 ++#define CONFIG_XMM_CLOBBER_TEST 0 ++#define CONFIG_BSFS 0 ++#define CONFIG_DECODERS 1 ++#define CONFIG_ENCODERS 0 ++#define CONFIG_HWACCELS 0 ++#define CONFIG_PARSERS 1 ++#define CONFIG_INDEVS 0 ++#define CONFIG_OUTDEVS 0 ++#define CONFIG_FILTERS 0 ++#define CONFIG_DEMUXERS 1 ++#define CONFIG_MUXERS 0 ++#define CONFIG_PROTOCOLS 0 ++#define CONFIG_AANDCTTABLES 0 ++#define CONFIG_AC3DSP 0 ++#define CONFIG_ADTS_HEADER 1 ++#define CONFIG_ATSC_A53 1 ++#define CONFIG_AUDIO_FRAME_QUEUE 0 ++#define CONFIG_AUDIODSP 0 ++#define CONFIG_BLOCKDSP 0 ++#define CONFIG_BSWAPDSP 0 ++#define CONFIG_CABAC 1 ++#define CONFIG_CBS 0 ++#define CONFIG_CBS_AV1 0 ++#define CONFIG_CBS_H264 0 ++#define CONFIG_CBS_H265 0 ++#define CONFIG_CBS_JPEG 0 ++#define CONFIG_CBS_MPEG2 0 ++#define CONFIG_CBS_VP9 0 ++#define CONFIG_DIRAC_PARSE 1 ++#define CONFIG_DNN 0 ++#define CONFIG_DOVI_RPU 0 ++#define CONFIG_DVPROFILE 0 ++#define CONFIG_EXIF 0 ++#define CONFIG_FAANDCT 0 ++#define CONFIG_FAANIDCT 0 ++#define CONFIG_FDCTDSP 0 ++#define CONFIG_FLACDSP 1 ++#define CONFIG_FMTCONVERT 0 ++#define CONFIG_FRAME_THREAD_ENCODER 0 ++#define CONFIG_G722DSP 0 ++#define CONFIG_GOLOMB 1 ++#define CONFIG_GPLV3 0 ++#define CONFIG_H263DSP 0 ++#define CONFIG_H264CHROMA 1 ++#define CONFIG_H264DSP 1 ++#define CONFIG_H264PARSE 1 ++#define CONFIG_H264PRED 1 ++#define CONFIG_H264QPEL 1 ++#define CONFIG_HEVCPARSE 0 ++#define CONFIG_HPELDSP 1 ++#define CONFIG_HUFFMAN 0 ++#define CONFIG_HUFFYUVDSP 0 ++#define CONFIG_HUFFYUVENCDSP 0 ++#define CONFIG_IDCTDSP 0 ++#define CONFIG_IIRFILTER 0 ++#define CONFIG_MDCT15 1 ++#define CONFIG_INTRAX8 0 ++#define CONFIG_ISO_MEDIA 1 ++#define CONFIG_IVIDSP 0 ++#define CONFIG_JPEGTABLES 0 ++#define CONFIG_LGPLV3 0 ++#define CONFIG_LIBX262 0 ++#define CONFIG_LLAUDDSP 0 ++#define CONFIG_LLVIDDSP 0 ++#define CONFIG_LLVIDENCDSP 0 ++#define CONFIG_LPC 0 ++#define CONFIG_LZF 0 ++#define CONFIG_ME_CMP 0 ++#define CONFIG_MPEG_ER 0 ++#define CONFIG_MPEGAUDIO 1 ++#define CONFIG_MPEGAUDIODSP 1 ++#define CONFIG_MPEGAUDIOHEADER 1 ++#define CONFIG_MPEG4AUDIO 1 ++#define CONFIG_MPEGVIDEO 0 ++#define CONFIG_MPEGVIDEODEC 0 ++#define CONFIG_MPEGVIDEOENC 0 ++#define CONFIG_MSS34DSP 0 ++#define CONFIG_PIXBLOCKDSP 0 ++#define CONFIG_QPELDSP 0 ++#define CONFIG_QSV 0 ++#define CONFIG_QSVDEC 0 ++#define CONFIG_QSVENC 0 ++#define CONFIG_QSVVPP 0 ++#define CONFIG_RANGECODER 0 ++#define CONFIG_RIFFDEC 1 ++#define CONFIG_RIFFENC 0 ++#define CONFIG_RTPDEC 0 ++#define CONFIG_RTPENC_CHAIN 0 ++#define CONFIG_RV34DSP 0 ++#define CONFIG_SCENE_SAD 0 ++#define CONFIG_SINEWIN 1 ++#define CONFIG_SNAPPY 0 ++#define CONFIG_SRTP 0 ++#define CONFIG_STARTCODE 1 ++#define CONFIG_TEXTUREDSP 0 ++#define CONFIG_TEXTUREDSPENC 0 ++#define CONFIG_TPELDSP 0 ++#define CONFIG_VAAPI_1 0 ++#define CONFIG_VAAPI_ENCODE 0 ++#define CONFIG_VC1DSP 0 ++#define CONFIG_VIDEODSP 1 ++#define CONFIG_VP3DSP 1 ++#define CONFIG_VP56DSP 0 ++#define CONFIG_VP8DSP 1 ++#define CONFIG_WMA_FREQS 0 ++#define CONFIG_WMV2DSP 0 ++#define CONFIG_AAC_ADTSTOASC_BSF 0 ++#define CONFIG_AV1_FRAME_MERGE_BSF 0 ++#define CONFIG_AV1_FRAME_SPLIT_BSF 0 ++#define CONFIG_AV1_METADATA_BSF 0 ++#define CONFIG_CHOMP_BSF 0 ++#define CONFIG_DUMP_EXTRADATA_BSF 0 ++#define CONFIG_DCA_CORE_BSF 0 ++#define CONFIG_EAC3_CORE_BSF 0 ++#define CONFIG_EXTRACT_EXTRADATA_BSF 0 ++#define CONFIG_FILTER_UNITS_BSF 0 ++#define CONFIG_H264_METADATA_BSF 0 ++#define CONFIG_H264_MP4TOANNEXB_BSF 0 ++#define CONFIG_H264_REDUNDANT_PPS_BSF 0 ++#define CONFIG_HAPQA_EXTRACT_BSF 0 ++#define CONFIG_HEVC_METADATA_BSF 0 ++#define CONFIG_HEVC_MP4TOANNEXB_BSF 0 ++#define CONFIG_IMX_DUMP_HEADER_BSF 0 ++#define CONFIG_MJPEG2JPEG_BSF 0 ++#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0 ++#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0 ++#define CONFIG_MPEG2_METADATA_BSF 0 ++#define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 0 ++#define CONFIG_MOV2TEXTSUB_BSF 0 ++#define CONFIG_NOISE_BSF 0 ++#define CONFIG_NULL_BSF 0 ++#define CONFIG_OPUS_METADATA_BSF 0 ++#define CONFIG_PCM_RECHUNK_BSF 0 ++#define CONFIG_PRORES_METADATA_BSF 0 ++#define CONFIG_REMOVE_EXTRADATA_BSF 0 ++#define CONFIG_SETTS_BSF 0 ++#define CONFIG_TEXT2MOVSUB_BSF 0 ++#define CONFIG_TRACE_HEADERS_BSF 0 ++#define CONFIG_TRUEHD_CORE_BSF 0 ++#define CONFIG_VP9_METADATA_BSF 0 ++#define CONFIG_VP9_RAW_REORDER_BSF 0 ++#define CONFIG_VP9_SUPERFRAME_BSF 0 ++#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 0 ++#define CONFIG_AASC_DECODER 0 ++#define CONFIG_AIC_DECODER 0 ++#define CONFIG_ALIAS_PIX_DECODER 0 ++#define CONFIG_AGM_DECODER 0 ++#define CONFIG_AMV_DECODER 0 ++#define CONFIG_ANM_DECODER 0 ++#define CONFIG_ANSI_DECODER 0 ++#define CONFIG_APNG_DECODER 0 ++#define CONFIG_ARBC_DECODER 0 ++#define CONFIG_ARGO_DECODER 0 ++#define CONFIG_ASV1_DECODER 0 ++#define CONFIG_ASV2_DECODER 0 ++#define CONFIG_AURA_DECODER 0 ++#define CONFIG_AURA2_DECODER 0 ++#define CONFIG_AVRP_DECODER 0 ++#define CONFIG_AVRN_DECODER 0 ++#define CONFIG_AVS_DECODER 0 ++#define CONFIG_AVUI_DECODER 0 ++#define CONFIG_AYUV_DECODER 0 ++#define CONFIG_BETHSOFTVID_DECODER 0 ++#define CONFIG_BFI_DECODER 0 ++#define CONFIG_BINK_DECODER 0 ++#define CONFIG_BITPACKED_DECODER 0 ++#define CONFIG_BMP_DECODER 0 ++#define CONFIG_BMV_VIDEO_DECODER 0 ++#define CONFIG_BRENDER_PIX_DECODER 0 ++#define CONFIG_C93_DECODER 0 ++#define CONFIG_CAVS_DECODER 0 ++#define CONFIG_CDGRAPHICS_DECODER 0 ++#define CONFIG_CDTOONS_DECODER 0 ++#define CONFIG_CDXL_DECODER 0 ++#define CONFIG_CFHD_DECODER 0 ++#define CONFIG_CINEPAK_DECODER 0 ++#define CONFIG_CLEARVIDEO_DECODER 0 ++#define CONFIG_CLJR_DECODER 0 ++#define CONFIG_CLLC_DECODER 0 ++#define CONFIG_COMFORTNOISE_DECODER 0 ++#define CONFIG_CPIA_DECODER 0 ++#define CONFIG_CRI_DECODER 0 ++#define CONFIG_CSCD_DECODER 0 ++#define CONFIG_CYUV_DECODER 0 ++#define CONFIG_DDS_DECODER 0 ++#define CONFIG_DFA_DECODER 0 ++#define CONFIG_DIRAC_DECODER 0 ++#define CONFIG_DNXHD_DECODER 0 ++#define CONFIG_DPX_DECODER 0 ++#define CONFIG_DSICINVIDEO_DECODER 0 ++#define CONFIG_DVAUDIO_DECODER 0 ++#define CONFIG_DVVIDEO_DECODER 0 ++#define CONFIG_DXA_DECODER 0 ++#define CONFIG_DXTORY_DECODER 0 ++#define CONFIG_DXV_DECODER 0 ++#define CONFIG_EACMV_DECODER 0 ++#define CONFIG_EAMAD_DECODER 0 ++#define CONFIG_EATGQ_DECODER 0 ++#define CONFIG_EATGV_DECODER 0 ++#define CONFIG_EATQI_DECODER 0 ++#define CONFIG_EIGHTBPS_DECODER 0 ++#define CONFIG_EIGHTSVX_EXP_DECODER 0 ++#define CONFIG_EIGHTSVX_FIB_DECODER 0 ++#define CONFIG_ESCAPE124_DECODER 0 ++#define CONFIG_ESCAPE130_DECODER 0 ++#define CONFIG_EXR_DECODER 0 ++#define CONFIG_FFV1_DECODER 0 ++#define CONFIG_FFVHUFF_DECODER 0 ++#define CONFIG_FIC_DECODER 0 ++#define CONFIG_FITS_DECODER 0 ++#define CONFIG_FLASHSV_DECODER 0 ++#define CONFIG_FLASHSV2_DECODER 0 ++#define CONFIG_FLIC_DECODER 0 ++#define CONFIG_FLV_DECODER 0 ++#define CONFIG_FMVC_DECODER 0 ++#define CONFIG_FOURXM_DECODER 0 ++#define CONFIG_FRAPS_DECODER 0 ++#define CONFIG_FRWU_DECODER 0 ++#define CONFIG_G2M_DECODER 0 ++#define CONFIG_GDV_DECODER 0 ++#define CONFIG_GEM_DECODER 0 ++#define CONFIG_GIF_DECODER 0 ++#define CONFIG_H261_DECODER 0 ++#define CONFIG_H263_DECODER 0 ++#define CONFIG_H263I_DECODER 0 ++#define CONFIG_H263P_DECODER 0 ++#define CONFIG_H263_V4L2M2M_DECODER 0 ++#define CONFIG_H264_DECODER 1 ++#define CONFIG_H264_CRYSTALHD_DECODER 0 ++#define CONFIG_H264_V4L2M2M_DECODER 0 ++#define CONFIG_H264_MEDIACODEC_DECODER 0 ++#define CONFIG_H264_MMAL_DECODER 0 ++#define CONFIG_H264_QSV_DECODER 0 ++#define CONFIG_H264_RKMPP_DECODER 0 ++#define CONFIG_HAP_DECODER 0 ++#define CONFIG_HEVC_DECODER 0 ++#define CONFIG_HEVC_QSV_DECODER 0 ++#define CONFIG_HEVC_RKMPP_DECODER 0 ++#define CONFIG_HEVC_V4L2M2M_DECODER 0 ++#define CONFIG_HNM4_VIDEO_DECODER 0 ++#define CONFIG_HQ_HQA_DECODER 0 ++#define CONFIG_HQX_DECODER 0 ++#define CONFIG_HUFFYUV_DECODER 0 ++#define CONFIG_HYMT_DECODER 0 ++#define CONFIG_IDCIN_DECODER 0 ++#define CONFIG_IFF_ILBM_DECODER 0 ++#define CONFIG_IMM4_DECODER 0 ++#define CONFIG_IMM5_DECODER 0 ++#define CONFIG_INDEO2_DECODER 0 ++#define CONFIG_INDEO3_DECODER 0 ++#define CONFIG_INDEO4_DECODER 0 ++#define CONFIG_INDEO5_DECODER 0 ++#define CONFIG_INTERPLAY_VIDEO_DECODER 0 ++#define CONFIG_IPU_DECODER 0 ++#define CONFIG_JPEG2000_DECODER 0 ++#define CONFIG_JPEGLS_DECODER 0 ++#define CONFIG_JV_DECODER 0 ++#define CONFIG_KGV1_DECODER 0 ++#define CONFIG_KMVC_DECODER 0 ++#define CONFIG_LAGARITH_DECODER 0 ++#define CONFIG_LOCO_DECODER 0 ++#define CONFIG_LSCR_DECODER 0 ++#define CONFIG_M101_DECODER 0 ++#define CONFIG_MAGICYUV_DECODER 0 ++#define CONFIG_MDEC_DECODER 0 ++#define CONFIG_MIMIC_DECODER 0 ++#define CONFIG_MJPEG_DECODER 0 ++#define CONFIG_MJPEGB_DECODER 0 ++#define CONFIG_MMVIDEO_DECODER 0 ++#define CONFIG_MOBICLIP_DECODER 0 ++#define CONFIG_MOTIONPIXELS_DECODER 0 ++#define CONFIG_MPEG1VIDEO_DECODER 0 ++#define CONFIG_MPEG2VIDEO_DECODER 0 ++#define CONFIG_MPEG4_DECODER 0 ++#define CONFIG_MPEG4_CRYSTALHD_DECODER 0 ++#define CONFIG_MPEG4_V4L2M2M_DECODER 0 ++#define CONFIG_MPEG4_MMAL_DECODER 0 ++#define CONFIG_MPEGVIDEO_DECODER 0 ++#define CONFIG_MPEG1_V4L2M2M_DECODER 0 ++#define CONFIG_MPEG2_MMAL_DECODER 0 ++#define CONFIG_MPEG2_CRYSTALHD_DECODER 0 ++#define CONFIG_MPEG2_V4L2M2M_DECODER 0 ++#define CONFIG_MPEG2_QSV_DECODER 0 ++#define CONFIG_MPEG2_MEDIACODEC_DECODER 0 ++#define CONFIG_MSA1_DECODER 0 ++#define CONFIG_MSCC_DECODER 0 ++#define CONFIG_MSMPEG4V1_DECODER 0 ++#define CONFIG_MSMPEG4V2_DECODER 0 ++#define CONFIG_MSMPEG4V3_DECODER 0 ++#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 ++#define CONFIG_MSP2_DECODER 0 ++#define CONFIG_MSRLE_DECODER 0 ++#define CONFIG_MSS1_DECODER 0 ++#define CONFIG_MSS2_DECODER 0 ++#define CONFIG_MSVIDEO1_DECODER 0 ++#define CONFIG_MSZH_DECODER 0 ++#define CONFIG_MTS2_DECODER 0 ++#define CONFIG_MV30_DECODER 0 ++#define CONFIG_MVC1_DECODER 0 ++#define CONFIG_MVC2_DECODER 0 ++#define CONFIG_MVDV_DECODER 0 ++#define CONFIG_MVHA_DECODER 0 ++#define CONFIG_MWSC_DECODER 0 ++#define CONFIG_MXPEG_DECODER 0 ++#define CONFIG_NOTCHLC_DECODER 0 ++#define CONFIG_NUV_DECODER 0 ++#define CONFIG_PAF_VIDEO_DECODER 0 ++#define CONFIG_PAM_DECODER 0 ++#define CONFIG_PBM_DECODER 0 ++#define CONFIG_PCX_DECODER 0 ++#define CONFIG_PFM_DECODER 0 ++#define CONFIG_PGM_DECODER 0 ++#define CONFIG_PGMYUV_DECODER 0 ++#define CONFIG_PGX_DECODER 0 ++#define CONFIG_PHOTOCD_DECODER 0 ++#define CONFIG_PICTOR_DECODER 0 ++#define CONFIG_PIXLET_DECODER 0 ++#define CONFIG_PNG_DECODER 0 ++#define CONFIG_PPM_DECODER 0 ++#define CONFIG_PRORES_DECODER 0 ++#define CONFIG_PROSUMER_DECODER 0 ++#define CONFIG_PSD_DECODER 0 ++#define CONFIG_PTX_DECODER 0 ++#define CONFIG_QDRAW_DECODER 0 ++#define CONFIG_QPEG_DECODER 0 ++#define CONFIG_QTRLE_DECODER 0 ++#define CONFIG_R10K_DECODER 0 ++#define CONFIG_R210_DECODER 0 ++#define CONFIG_RASC_DECODER 0 ++#define CONFIG_RAWVIDEO_DECODER 0 ++#define CONFIG_RL2_DECODER 0 ++#define CONFIG_ROQ_DECODER 0 ++#define CONFIG_RPZA_DECODER 0 ++#define CONFIG_RSCC_DECODER 0 ++#define CONFIG_RV10_DECODER 0 ++#define CONFIG_RV20_DECODER 0 ++#define CONFIG_RV30_DECODER 0 ++#define CONFIG_RV40_DECODER 0 ++#define CONFIG_S302M_DECODER 0 ++#define CONFIG_SANM_DECODER 0 ++#define CONFIG_SCPR_DECODER 0 ++#define CONFIG_SCREENPRESSO_DECODER 0 ++#define CONFIG_SGA_DECODER 0 ++#define CONFIG_SGI_DECODER 0 ++#define CONFIG_SGIRLE_DECODER 0 ++#define CONFIG_SHEERVIDEO_DECODER 0 ++#define CONFIG_SIMBIOSIS_IMX_DECODER 0 ++#define CONFIG_SMACKER_DECODER 0 ++#define CONFIG_SMC_DECODER 0 ++#define CONFIG_SMVJPEG_DECODER 0 ++#define CONFIG_SNOW_DECODER 0 ++#define CONFIG_SP5X_DECODER 0 ++#define CONFIG_SPEEDHQ_DECODER 0 ++#define CONFIG_SPEEX_DECODER 0 ++#define CONFIG_SRGC_DECODER 0 ++#define CONFIG_SUNRAST_DECODER 0 ++#define CONFIG_SVQ1_DECODER 0 ++#define CONFIG_SVQ3_DECODER 0 ++#define CONFIG_TARGA_DECODER 0 ++#define CONFIG_TARGA_Y216_DECODER 0 ++#define CONFIG_TDSC_DECODER 0 ++#define CONFIG_THEORA_DECODER 1 ++#define CONFIG_THP_DECODER 0 ++#define CONFIG_TIERTEXSEQVIDEO_DECODER 0 ++#define CONFIG_TIFF_DECODER 0 ++#define CONFIG_TMV_DECODER 0 ++#define CONFIG_TRUEMOTION1_DECODER 0 ++#define CONFIG_TRUEMOTION2_DECODER 0 ++#define CONFIG_TRUEMOTION2RT_DECODER 0 ++#define CONFIG_TSCC_DECODER 0 ++#define CONFIG_TSCC2_DECODER 0 ++#define CONFIG_TXD_DECODER 0 ++#define CONFIG_ULTI_DECODER 0 ++#define CONFIG_UTVIDEO_DECODER 0 ++#define CONFIG_V210_DECODER 0 ++#define CONFIG_V210X_DECODER 0 ++#define CONFIG_V308_DECODER 0 ++#define CONFIG_V408_DECODER 0 ++#define CONFIG_V410_DECODER 0 ++#define CONFIG_VB_DECODER 0 ++#define CONFIG_VBLE_DECODER 0 ++#define CONFIG_VC1_DECODER 0 ++#define CONFIG_VC1_CRYSTALHD_DECODER 0 ++#define CONFIG_VC1IMAGE_DECODER 0 ++#define CONFIG_VC1_MMAL_DECODER 0 ++#define CONFIG_VC1_QSV_DECODER 0 ++#define CONFIG_VC1_V4L2M2M_DECODER 0 ++#define CONFIG_VCR1_DECODER 0 ++#define CONFIG_VMDVIDEO_DECODER 0 ++#define CONFIG_VMNC_DECODER 0 ++#define CONFIG_VP3_DECODER 1 ++#define CONFIG_VP4_DECODER 0 ++#define CONFIG_VP5_DECODER 0 ++#define CONFIG_VP6_DECODER 0 ++#define CONFIG_VP6A_DECODER 0 ++#define CONFIG_VP6F_DECODER 0 ++#define CONFIG_VP7_DECODER 0 ++#define CONFIG_VP8_DECODER 1 ++#define CONFIG_VP8_RKMPP_DECODER 0 ++#define CONFIG_VP8_V4L2M2M_DECODER 0 ++#define CONFIG_VP9_DECODER 0 ++#define CONFIG_VP9_RKMPP_DECODER 0 ++#define CONFIG_VP9_V4L2M2M_DECODER 0 ++#define CONFIG_VQA_DECODER 0 ++#define CONFIG_WEBP_DECODER 0 ++#define CONFIG_WCMV_DECODER 0 ++#define CONFIG_WRAPPED_AVFRAME_DECODER 0 ++#define CONFIG_WMV1_DECODER 0 ++#define CONFIG_WMV2_DECODER 0 ++#define CONFIG_WMV3_DECODER 0 ++#define CONFIG_WMV3_CRYSTALHD_DECODER 0 ++#define CONFIG_WMV3IMAGE_DECODER 0 ++#define CONFIG_WNV1_DECODER 0 ++#define CONFIG_XAN_WC3_DECODER 0 ++#define CONFIG_XAN_WC4_DECODER 0 ++#define CONFIG_XBM_DECODER 0 ++#define CONFIG_XFACE_DECODER 0 ++#define CONFIG_XL_DECODER 0 ++#define CONFIG_XPM_DECODER 0 ++#define CONFIG_XWD_DECODER 0 ++#define CONFIG_Y41P_DECODER 0 ++#define CONFIG_YLC_DECODER 0 ++#define CONFIG_YOP_DECODER 0 ++#define CONFIG_YUV4_DECODER 0 ++#define CONFIG_ZERO12V_DECODER 0 ++#define CONFIG_ZEROCODEC_DECODER 0 ++#define CONFIG_ZLIB_DECODER 0 ++#define CONFIG_ZMBV_DECODER 0 ++#define CONFIG_AAC_DECODER 1 ++#define CONFIG_AAC_FIXED_DECODER 0 ++#define CONFIG_AAC_LATM_DECODER 0 ++#define CONFIG_AC3_DECODER 0 ++#define CONFIG_AC3_FIXED_DECODER 0 ++#define CONFIG_ACELP_KELVIN_DECODER 0 ++#define CONFIG_ALAC_DECODER 0 ++#define CONFIG_ALS_DECODER 0 ++#define CONFIG_AMRNB_DECODER 0 ++#define CONFIG_AMRWB_DECODER 0 ++#define CONFIG_APE_DECODER 0 ++#define CONFIG_APTX_DECODER 0 ++#define CONFIG_APTX_HD_DECODER 0 ++#define CONFIG_ATRAC1_DECODER 0 ++#define CONFIG_ATRAC3_DECODER 0 ++#define CONFIG_ATRAC3AL_DECODER 0 ++#define CONFIG_ATRAC3P_DECODER 0 ++#define CONFIG_ATRAC3PAL_DECODER 0 ++#define CONFIG_ATRAC9_DECODER 0 ++#define CONFIG_BINKAUDIO_DCT_DECODER 0 ++#define CONFIG_BINKAUDIO_RDFT_DECODER 0 ++#define CONFIG_BMV_AUDIO_DECODER 0 ++#define CONFIG_COOK_DECODER 0 ++#define CONFIG_DCA_DECODER 0 ++#define CONFIG_DOLBY_E_DECODER 0 ++#define CONFIG_DSD_LSBF_DECODER 0 ++#define CONFIG_DSD_MSBF_DECODER 0 ++#define CONFIG_DSD_LSBF_PLANAR_DECODER 0 ++#define CONFIG_DSD_MSBF_PLANAR_DECODER 0 ++#define CONFIG_DSICINAUDIO_DECODER 0 ++#define CONFIG_DSS_SP_DECODER 0 ++#define CONFIG_DST_DECODER 0 ++#define CONFIG_EAC3_DECODER 0 ++#define CONFIG_EVRC_DECODER 0 ++#define CONFIG_FASTAUDIO_DECODER 0 ++#define CONFIG_FFWAVESYNTH_DECODER 0 ++#define CONFIG_FLAC_DECODER 1 ++#define CONFIG_G723_1_DECODER 0 ++#define CONFIG_G729_DECODER 0 ++#define CONFIG_GSM_DECODER 0 ++#define CONFIG_GSM_MS_DECODER 0 ++#define CONFIG_HCA_DECODER 0 ++#define CONFIG_HCOM_DECODER 0 ++#define CONFIG_IAC_DECODER 0 ++#define CONFIG_ILBC_DECODER 0 ++#define CONFIG_IMC_DECODER 0 ++#define CONFIG_INTERPLAY_ACM_DECODER 0 ++#define CONFIG_MACE3_DECODER 0 ++#define CONFIG_MACE6_DECODER 0 ++#define CONFIG_METASOUND_DECODER 0 ++#define CONFIG_MLP_DECODER 0 ++#define CONFIG_MP1_DECODER 0 ++#define CONFIG_MP1FLOAT_DECODER 0 ++#define CONFIG_MP2_DECODER 0 ++#define CONFIG_MP2FLOAT_DECODER 0 ++#define CONFIG_MP3FLOAT_DECODER 0 ++#define CONFIG_MP3_DECODER 1 ++#define CONFIG_MP3ADUFLOAT_DECODER 0 ++#define CONFIG_MP3ADU_DECODER 0 ++#define CONFIG_MP3ON4FLOAT_DECODER 0 ++#define CONFIG_MP3ON4_DECODER 0 ++#define CONFIG_MPC7_DECODER 0 ++#define CONFIG_MPC8_DECODER 0 ++#define CONFIG_MSNSIREN_DECODER 0 ++#define CONFIG_NELLYMOSER_DECODER 0 ++#define CONFIG_ON2AVC_DECODER 0 ++#define CONFIG_OPUS_DECODER 0 ++#define CONFIG_PAF_AUDIO_DECODER 0 ++#define CONFIG_QCELP_DECODER 0 ++#define CONFIG_QDM2_DECODER 0 ++#define CONFIG_QDMC_DECODER 0 ++#define CONFIG_RA_144_DECODER 0 ++#define CONFIG_RA_288_DECODER 0 ++#define CONFIG_RALF_DECODER 0 ++#define CONFIG_SBC_DECODER 0 ++#define CONFIG_SHORTEN_DECODER 0 ++#define CONFIG_SIPR_DECODER 0 ++#define CONFIG_SIREN_DECODER 0 ++#define CONFIG_SMACKAUD_DECODER 0 ++#define CONFIG_SONIC_DECODER 0 ++#define CONFIG_TAK_DECODER 0 ++#define CONFIG_TRUEHD_DECODER 0 ++#define CONFIG_TRUESPEECH_DECODER 0 ++#define CONFIG_TTA_DECODER 0 ++#define CONFIG_TWINVQ_DECODER 0 ++#define CONFIG_VMDAUDIO_DECODER 0 ++#define CONFIG_VORBIS_DECODER 1 ++#define CONFIG_WAVPACK_DECODER 0 ++#define CONFIG_WMALOSSLESS_DECODER 0 ++#define CONFIG_WMAPRO_DECODER 0 ++#define CONFIG_WMAV1_DECODER 0 ++#define CONFIG_WMAV2_DECODER 0 ++#define CONFIG_WMAVOICE_DECODER 0 ++#define CONFIG_WS_SND1_DECODER 0 ++#define CONFIG_XMA1_DECODER 0 ++#define CONFIG_XMA2_DECODER 0 ++#define CONFIG_PCM_ALAW_DECODER 1 ++#define CONFIG_PCM_BLURAY_DECODER 0 ++#define CONFIG_PCM_DVD_DECODER 0 ++#define CONFIG_PCM_F16LE_DECODER 0 ++#define CONFIG_PCM_F24LE_DECODER 0 ++#define CONFIG_PCM_F32BE_DECODER 0 ++#define CONFIG_PCM_F32LE_DECODER 1 ++#define CONFIG_PCM_F64BE_DECODER 0 ++#define CONFIG_PCM_F64LE_DECODER 0 ++#define CONFIG_PCM_LXF_DECODER 0 ++#define CONFIG_PCM_MULAW_DECODER 1 ++#define CONFIG_PCM_S8_DECODER 0 ++#define CONFIG_PCM_S8_PLANAR_DECODER 0 ++#define CONFIG_PCM_S16BE_DECODER 1 ++#define CONFIG_PCM_S16BE_PLANAR_DECODER 0 ++#define CONFIG_PCM_S16LE_DECODER 1 ++#define CONFIG_PCM_S16LE_PLANAR_DECODER 0 ++#define CONFIG_PCM_S24BE_DECODER 1 ++#define CONFIG_PCM_S24DAUD_DECODER 0 ++#define CONFIG_PCM_S24LE_DECODER 1 ++#define CONFIG_PCM_S24LE_PLANAR_DECODER 0 ++#define CONFIG_PCM_S32BE_DECODER 0 ++#define CONFIG_PCM_S32LE_DECODER 1 ++#define CONFIG_PCM_S32LE_PLANAR_DECODER 0 ++#define CONFIG_PCM_S64BE_DECODER 0 ++#define CONFIG_PCM_S64LE_DECODER 0 ++#define CONFIG_PCM_SGA_DECODER 0 ++#define CONFIG_PCM_U8_DECODER 1 ++#define CONFIG_PCM_U16BE_DECODER 0 ++#define CONFIG_PCM_U16LE_DECODER 0 ++#define CONFIG_PCM_U24BE_DECODER 0 ++#define CONFIG_PCM_U24LE_DECODER 0 ++#define CONFIG_PCM_U32BE_DECODER 0 ++#define CONFIG_PCM_U32LE_DECODER 0 ++#define CONFIG_PCM_VIDC_DECODER 0 ++#define CONFIG_DERF_DPCM_DECODER 0 ++#define CONFIG_GREMLIN_DPCM_DECODER 0 ++#define CONFIG_INTERPLAY_DPCM_DECODER 0 ++#define CONFIG_ROQ_DPCM_DECODER 0 ++#define CONFIG_SDX2_DPCM_DECODER 0 ++#define CONFIG_SOL_DPCM_DECODER 0 ++#define CONFIG_XAN_DPCM_DECODER 0 ++#define CONFIG_ADPCM_4XM_DECODER 0 ++#define CONFIG_ADPCM_ADX_DECODER 0 ++#define CONFIG_ADPCM_AFC_DECODER 0 ++#define CONFIG_ADPCM_AGM_DECODER 0 ++#define CONFIG_ADPCM_AICA_DECODER 0 ++#define CONFIG_ADPCM_ARGO_DECODER 0 ++#define CONFIG_ADPCM_CT_DECODER 0 ++#define CONFIG_ADPCM_DTK_DECODER 0 ++#define CONFIG_ADPCM_EA_DECODER 0 ++#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 0 ++#define CONFIG_ADPCM_EA_R1_DECODER 0 ++#define CONFIG_ADPCM_EA_R2_DECODER 0 ++#define CONFIG_ADPCM_EA_R3_DECODER 0 ++#define CONFIG_ADPCM_EA_XAS_DECODER 0 ++#define CONFIG_ADPCM_G722_DECODER 0 ++#define CONFIG_ADPCM_G726_DECODER 0 ++#define CONFIG_ADPCM_G726LE_DECODER 0 ++#define CONFIG_ADPCM_IMA_ACORN_DECODER 0 ++#define CONFIG_ADPCM_IMA_AMV_DECODER 0 ++#define CONFIG_ADPCM_IMA_ALP_DECODER 0 ++#define CONFIG_ADPCM_IMA_APC_DECODER 0 ++#define CONFIG_ADPCM_IMA_APM_DECODER 0 ++#define CONFIG_ADPCM_IMA_CUNNING_DECODER 0 ++#define CONFIG_ADPCM_IMA_DAT4_DECODER 0 ++#define CONFIG_ADPCM_IMA_DK3_DECODER 0 ++#define CONFIG_ADPCM_IMA_DK4_DECODER 0 ++#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 0 ++#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0 ++#define CONFIG_ADPCM_IMA_ISS_DECODER 0 ++#define CONFIG_ADPCM_IMA_MOFLEX_DECODER 0 ++#define CONFIG_ADPCM_IMA_MTF_DECODER 0 ++#define CONFIG_ADPCM_IMA_OKI_DECODER 0 ++#define CONFIG_ADPCM_IMA_QT_DECODER 0 ++#define CONFIG_ADPCM_IMA_RAD_DECODER 0 ++#define CONFIG_ADPCM_IMA_SSI_DECODER 0 ++#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0 ++#define CONFIG_ADPCM_IMA_WAV_DECODER 0 ++#define CONFIG_ADPCM_IMA_WS_DECODER 0 ++#define CONFIG_ADPCM_MS_DECODER 0 ++#define CONFIG_ADPCM_MTAF_DECODER 0 ++#define CONFIG_ADPCM_PSX_DECODER 0 ++#define CONFIG_ADPCM_SBPRO_2_DECODER 0 ++#define CONFIG_ADPCM_SBPRO_3_DECODER 0 ++#define CONFIG_ADPCM_SBPRO_4_DECODER 0 ++#define CONFIG_ADPCM_SWF_DECODER 0 ++#define CONFIG_ADPCM_THP_DECODER 0 ++#define CONFIG_ADPCM_THP_LE_DECODER 0 ++#define CONFIG_ADPCM_VIMA_DECODER 0 ++#define CONFIG_ADPCM_XA_DECODER 0 ++#define CONFIG_ADPCM_YAMAHA_DECODER 0 ++#define CONFIG_ADPCM_ZORK_DECODER 0 ++#define CONFIG_SSA_DECODER 0 ++#define CONFIG_ASS_DECODER 0 ++#define CONFIG_CCAPTION_DECODER 0 ++#define CONFIG_DVBSUB_DECODER 0 ++#define CONFIG_DVDSUB_DECODER 0 ++#define CONFIG_JACOSUB_DECODER 0 ++#define CONFIG_MICRODVD_DECODER 0 ++#define CONFIG_MOVTEXT_DECODER 0 ++#define CONFIG_MPL2_DECODER 0 ++#define CONFIG_PGSSUB_DECODER 0 ++#define CONFIG_PJS_DECODER 0 ++#define CONFIG_REALTEXT_DECODER 0 ++#define CONFIG_SAMI_DECODER 0 ++#define CONFIG_SRT_DECODER 0 ++#define CONFIG_STL_DECODER 0 ++#define CONFIG_SUBRIP_DECODER 0 ++#define CONFIG_SUBVIEWER_DECODER 0 ++#define CONFIG_SUBVIEWER1_DECODER 0 ++#define CONFIG_TEXT_DECODER 0 ++#define CONFIG_VPLAYER_DECODER 0 ++#define CONFIG_WEBVTT_DECODER 0 ++#define CONFIG_XSUB_DECODER 0 ++#define CONFIG_AAC_AT_DECODER 0 ++#define CONFIG_AC3_AT_DECODER 0 ++#define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 ++#define CONFIG_ALAC_AT_DECODER 0 ++#define CONFIG_AMR_NB_AT_DECODER 0 ++#define CONFIG_EAC3_AT_DECODER 0 ++#define CONFIG_GSM_MS_AT_DECODER 0 ++#define CONFIG_ILBC_AT_DECODER 0 ++#define CONFIG_MP1_AT_DECODER 0 ++#define CONFIG_MP2_AT_DECODER 0 ++#define CONFIG_MP3_AT_DECODER 0 ++#define CONFIG_PCM_ALAW_AT_DECODER 0 ++#define CONFIG_PCM_MULAW_AT_DECODER 0 ++#define CONFIG_QDMC_AT_DECODER 0 ++#define CONFIG_QDM2_AT_DECODER 0 ++#define CONFIG_LIBARIBB24_DECODER 0 ++#define CONFIG_LIBCELT_DECODER 0 ++#define CONFIG_LIBCODEC2_DECODER 0 ++#define CONFIG_LIBDAV1D_DECODER 0 ++#define CONFIG_LIBDAVS2_DECODER 0 ++#define CONFIG_LIBFDK_AAC_DECODER 0 ++#define CONFIG_LIBGSM_DECODER 0 ++#define CONFIG_LIBGSM_MS_DECODER 0 ++#define CONFIG_LIBILBC_DECODER 0 ++#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 ++#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 ++#define CONFIG_LIBOPENJPEG_DECODER 0 ++#define CONFIG_LIBOPUS_DECODER 1 ++#define CONFIG_LIBRSVG_DECODER 0 ++#define CONFIG_LIBSPEEX_DECODER 0 ++#define CONFIG_LIBUAVS3D_DECODER 0 ++#define CONFIG_LIBVORBIS_DECODER 0 ++#define CONFIG_LIBVPX_VP8_DECODER 0 ++#define CONFIG_LIBVPX_VP9_DECODER 0 ++#define CONFIG_LIBZVBI_TELETEXT_DECODER 0 ++#define CONFIG_BINTEXT_DECODER 0 ++#define CONFIG_XBIN_DECODER 0 ++#define CONFIG_IDF_DECODER 0 ++#define CONFIG_LIBAOM_AV1_DECODER 0 ++#define CONFIG_AV1_DECODER 0 ++#define CONFIG_AV1_CUVID_DECODER 0 ++#define CONFIG_AV1_QSV_DECODER 0 ++#define CONFIG_LIBOPENH264_DECODER 0 ++#define CONFIG_H264_CUVID_DECODER 0 ++#define CONFIG_HEVC_CUVID_DECODER 0 ++#define CONFIG_HEVC_MEDIACODEC_DECODER 0 ++#define CONFIG_MJPEG_CUVID_DECODER 0 ++#define CONFIG_MJPEG_QSV_DECODER 0 ++#define CONFIG_MPEG1_CUVID_DECODER 0 ++#define CONFIG_MPEG2_CUVID_DECODER 0 ++#define CONFIG_MPEG4_CUVID_DECODER 0 ++#define CONFIG_MPEG4_MEDIACODEC_DECODER 0 ++#define CONFIG_VC1_CUVID_DECODER 0 ++#define CONFIG_VP8_CUVID_DECODER 0 ++#define CONFIG_VP8_MEDIACODEC_DECODER 0 ++#define CONFIG_VP8_QSV_DECODER 0 ++#define CONFIG_VP9_CUVID_DECODER 0 ++#define CONFIG_VP9_MEDIACODEC_DECODER 0 ++#define CONFIG_VP9_QSV_DECODER 0 ++#define CONFIG_A64MULTI_ENCODER 0 ++#define CONFIG_A64MULTI5_ENCODER 0 ++#define CONFIG_ALIAS_PIX_ENCODER 0 ++#define CONFIG_AMV_ENCODER 0 ++#define CONFIG_APNG_ENCODER 0 ++#define CONFIG_ASV1_ENCODER 0 ++#define CONFIG_ASV2_ENCODER 0 ++#define CONFIG_AVRP_ENCODER 0 ++#define CONFIG_AVUI_ENCODER 0 ++#define CONFIG_AYUV_ENCODER 0 ++#define CONFIG_BITPACKED_ENCODER 0 ++#define CONFIG_BMP_ENCODER 0 ++#define CONFIG_CFHD_ENCODER 0 ++#define CONFIG_CINEPAK_ENCODER 0 ++#define CONFIG_CLJR_ENCODER 0 ++#define CONFIG_COMFORTNOISE_ENCODER 0 ++#define CONFIG_DNXHD_ENCODER 0 ++#define CONFIG_DPX_ENCODER 0 ++#define CONFIG_DVVIDEO_ENCODER 0 ++#define CONFIG_EXR_ENCODER 0 ++#define CONFIG_FFV1_ENCODER 0 ++#define CONFIG_FFVHUFF_ENCODER 0 ++#define CONFIG_FITS_ENCODER 0 ++#define CONFIG_FLASHSV_ENCODER 0 ++#define CONFIG_FLASHSV2_ENCODER 0 ++#define CONFIG_FLV_ENCODER 0 ++#define CONFIG_GIF_ENCODER 0 ++#define CONFIG_H261_ENCODER 0 ++#define CONFIG_H263_ENCODER 0 ++#define CONFIG_H263P_ENCODER 0 ++#define CONFIG_HAP_ENCODER 0 ++#define CONFIG_HUFFYUV_ENCODER 0 ++#define CONFIG_JPEG2000_ENCODER 0 ++#define CONFIG_JPEGLS_ENCODER 0 ++#define CONFIG_LJPEG_ENCODER 0 ++#define CONFIG_MAGICYUV_ENCODER 0 ++#define CONFIG_MJPEG_ENCODER 0 ++#define CONFIG_MPEG1VIDEO_ENCODER 0 ++#define CONFIG_MPEG2VIDEO_ENCODER 0 ++#define CONFIG_MPEG4_ENCODER 0 ++#define CONFIG_MSMPEG4V2_ENCODER 0 ++#define CONFIG_MSMPEG4V3_ENCODER 0 ++#define CONFIG_MSVIDEO1_ENCODER 0 ++#define CONFIG_PAM_ENCODER 0 ++#define CONFIG_PBM_ENCODER 0 ++#define CONFIG_PCX_ENCODER 0 ++#define CONFIG_PFM_ENCODER 0 ++#define CONFIG_PGM_ENCODER 0 ++#define CONFIG_PGMYUV_ENCODER 0 ++#define CONFIG_PNG_ENCODER 0 ++#define CONFIG_PPM_ENCODER 0 ++#define CONFIG_PRORES_ENCODER 0 ++#define CONFIG_PRORES_AW_ENCODER 0 ++#define CONFIG_PRORES_KS_ENCODER 0 ++#define CONFIG_QTRLE_ENCODER 0 ++#define CONFIG_R10K_ENCODER 0 ++#define CONFIG_R210_ENCODER 0 ++#define CONFIG_RAWVIDEO_ENCODER 0 ++#define CONFIG_ROQ_ENCODER 0 ++#define CONFIG_RPZA_ENCODER 0 ++#define CONFIG_RV10_ENCODER 0 ++#define CONFIG_RV20_ENCODER 0 ++#define CONFIG_S302M_ENCODER 0 ++#define CONFIG_SGI_ENCODER 0 ++#define CONFIG_SMC_ENCODER 0 ++#define CONFIG_SNOW_ENCODER 0 ++#define CONFIG_SPEEDHQ_ENCODER 0 ++#define CONFIG_SUNRAST_ENCODER 0 ++#define CONFIG_SVQ1_ENCODER 0 ++#define CONFIG_TARGA_ENCODER 0 ++#define CONFIG_TIFF_ENCODER 0 ++#define CONFIG_UTVIDEO_ENCODER 0 ++#define CONFIG_V210_ENCODER 0 ++#define CONFIG_V308_ENCODER 0 ++#define CONFIG_V408_ENCODER 0 ++#define CONFIG_V410_ENCODER 0 ++#define CONFIG_VC2_ENCODER 0 ++#define CONFIG_WRAPPED_AVFRAME_ENCODER 0 ++#define CONFIG_WMV1_ENCODER 0 ++#define CONFIG_WMV2_ENCODER 0 ++#define CONFIG_XBM_ENCODER 0 ++#define CONFIG_XFACE_ENCODER 0 ++#define CONFIG_XWD_ENCODER 0 ++#define CONFIG_Y41P_ENCODER 0 ++#define CONFIG_YUV4_ENCODER 0 ++#define CONFIG_ZLIB_ENCODER 0 ++#define CONFIG_ZMBV_ENCODER 0 ++#define CONFIG_AAC_ENCODER 0 ++#define CONFIG_AC3_ENCODER 0 ++#define CONFIG_AC3_FIXED_ENCODER 0 ++#define CONFIG_ALAC_ENCODER 0 ++#define CONFIG_APTX_ENCODER 0 ++#define CONFIG_APTX_HD_ENCODER 0 ++#define CONFIG_DCA_ENCODER 0 ++#define CONFIG_EAC3_ENCODER 0 ++#define CONFIG_FLAC_ENCODER 0 ++#define CONFIG_G723_1_ENCODER 0 ++#define CONFIG_MLP_ENCODER 0 ++#define CONFIG_MP2_ENCODER 0 ++#define CONFIG_MP2FIXED_ENCODER 0 ++#define CONFIG_NELLYMOSER_ENCODER 0 ++#define CONFIG_OPUS_ENCODER 0 ++#define CONFIG_RA_144_ENCODER 0 ++#define CONFIG_SBC_ENCODER 0 ++#define CONFIG_SONIC_ENCODER 0 ++#define CONFIG_SONIC_LS_ENCODER 0 ++#define CONFIG_TRUEHD_ENCODER 0 ++#define CONFIG_TTA_ENCODER 0 ++#define CONFIG_VORBIS_ENCODER 0 ++#define CONFIG_WAVPACK_ENCODER 0 ++#define CONFIG_WMAV1_ENCODER 0 ++#define CONFIG_WMAV2_ENCODER 0 ++#define CONFIG_PCM_ALAW_ENCODER 0 ++#define CONFIG_PCM_DVD_ENCODER 0 ++#define CONFIG_PCM_F32BE_ENCODER 0 ++#define CONFIG_PCM_F32LE_ENCODER 0 ++#define CONFIG_PCM_F64BE_ENCODER 0 ++#define CONFIG_PCM_F64LE_ENCODER 0 ++#define CONFIG_PCM_MULAW_ENCODER 0 ++#define CONFIG_PCM_S8_ENCODER 0 ++#define CONFIG_PCM_S8_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S16BE_ENCODER 0 ++#define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S16LE_ENCODER 0 ++#define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S24BE_ENCODER 0 ++#define CONFIG_PCM_S24DAUD_ENCODER 0 ++#define CONFIG_PCM_S24LE_ENCODER 0 ++#define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S32BE_ENCODER 0 ++#define CONFIG_PCM_S32LE_ENCODER 0 ++#define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S64BE_ENCODER 0 ++#define CONFIG_PCM_S64LE_ENCODER 0 ++#define CONFIG_PCM_U8_ENCODER 0 ++#define CONFIG_PCM_U16BE_ENCODER 0 ++#define CONFIG_PCM_U16LE_ENCODER 0 ++#define CONFIG_PCM_U24BE_ENCODER 0 ++#define CONFIG_PCM_U24LE_ENCODER 0 ++#define CONFIG_PCM_U32BE_ENCODER 0 ++#define CONFIG_PCM_U32LE_ENCODER 0 ++#define CONFIG_PCM_VIDC_ENCODER 0 ++#define CONFIG_ROQ_DPCM_ENCODER 0 ++#define CONFIG_ADPCM_ADX_ENCODER 0 ++#define CONFIG_ADPCM_ARGO_ENCODER 0 ++#define CONFIG_ADPCM_G722_ENCODER 0 ++#define CONFIG_ADPCM_G726_ENCODER 0 ++#define CONFIG_ADPCM_G726LE_ENCODER 0 ++#define CONFIG_ADPCM_IMA_AMV_ENCODER 0 ++#define CONFIG_ADPCM_IMA_ALP_ENCODER 0 ++#define CONFIG_ADPCM_IMA_APM_ENCODER 0 ++#define CONFIG_ADPCM_IMA_QT_ENCODER 0 ++#define CONFIG_ADPCM_IMA_SSI_ENCODER 0 ++#define CONFIG_ADPCM_IMA_WAV_ENCODER 0 ++#define CONFIG_ADPCM_IMA_WS_ENCODER 0 ++#define CONFIG_ADPCM_MS_ENCODER 0 ++#define CONFIG_ADPCM_SWF_ENCODER 0 ++#define CONFIG_ADPCM_YAMAHA_ENCODER 0 ++#define CONFIG_SSA_ENCODER 0 ++#define CONFIG_ASS_ENCODER 0 ++#define CONFIG_DVBSUB_ENCODER 0 ++#define CONFIG_DVDSUB_ENCODER 0 ++#define CONFIG_MOVTEXT_ENCODER 0 ++#define CONFIG_SRT_ENCODER 0 ++#define CONFIG_SUBRIP_ENCODER 0 ++#define CONFIG_TEXT_ENCODER 0 ++#define CONFIG_TTML_ENCODER 0 ++#define CONFIG_WEBVTT_ENCODER 0 ++#define CONFIG_XSUB_ENCODER 0 ++#define CONFIG_AAC_AT_ENCODER 0 ++#define CONFIG_ALAC_AT_ENCODER 0 ++#define CONFIG_ILBC_AT_ENCODER 0 ++#define CONFIG_PCM_ALAW_AT_ENCODER 0 ++#define CONFIG_PCM_MULAW_AT_ENCODER 0 ++#define CONFIG_LIBAOM_AV1_ENCODER 0 ++#define CONFIG_LIBCODEC2_ENCODER 0 ++#define CONFIG_LIBFDK_AAC_ENCODER 0 ++#define CONFIG_LIBGSM_ENCODER 0 ++#define CONFIG_LIBGSM_MS_ENCODER 0 ++#define CONFIG_LIBILBC_ENCODER 0 ++#define CONFIG_LIBMP3LAME_ENCODER 0 ++#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 ++#define CONFIG_LIBOPENJPEG_ENCODER 0 ++#define CONFIG_LIBOPUS_ENCODER 0 ++#define CONFIG_LIBRAV1E_ENCODER 0 ++#define CONFIG_LIBSHINE_ENCODER 0 ++#define CONFIG_LIBSPEEX_ENCODER 0 ++#define CONFIG_LIBSVTAV1_ENCODER 0 ++#define CONFIG_LIBTHEORA_ENCODER 0 ++#define CONFIG_LIBTWOLAME_ENCODER 0 ++#define CONFIG_LIBVO_AMRWBENC_ENCODER 0 ++#define CONFIG_LIBVORBIS_ENCODER 0 ++#define CONFIG_LIBVPX_VP8_ENCODER 0 ++#define CONFIG_LIBVPX_VP9_ENCODER 0 ++#define CONFIG_LIBWEBP_ANIM_ENCODER 0 ++#define CONFIG_LIBWEBP_ENCODER 0 ++#define CONFIG_LIBX262_ENCODER 0 ++#define CONFIG_LIBX264_ENCODER 0 ++#define CONFIG_LIBX264RGB_ENCODER 0 ++#define CONFIG_LIBX265_ENCODER 0 ++#define CONFIG_LIBXAVS_ENCODER 0 ++#define CONFIG_LIBXAVS2_ENCODER 0 ++#define CONFIG_LIBXVID_ENCODER 0 ++#define CONFIG_AAC_MF_ENCODER 0 ++#define CONFIG_AC3_MF_ENCODER 0 ++#define CONFIG_H263_V4L2M2M_ENCODER 0 ++#define CONFIG_LIBOPENH264_ENCODER 0 ++#define CONFIG_H264_AMF_ENCODER 0 ++#define CONFIG_H264_MF_ENCODER 0 ++#define CONFIG_H264_NVENC_ENCODER 0 ++#define CONFIG_H264_OMX_ENCODER 0 ++#define CONFIG_H264_QSV_ENCODER 0 ++#define CONFIG_H264_V4L2M2M_ENCODER 0 ++#define CONFIG_H264_VAAPI_ENCODER 0 ++#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 ++#define CONFIG_HEVC_AMF_ENCODER 0 ++#define CONFIG_HEVC_MF_ENCODER 0 ++#define CONFIG_HEVC_NVENC_ENCODER 0 ++#define CONFIG_HEVC_QSV_ENCODER 0 ++#define CONFIG_HEVC_V4L2M2M_ENCODER 0 ++#define CONFIG_HEVC_VAAPI_ENCODER 0 ++#define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 ++#define CONFIG_LIBKVAZAAR_ENCODER 0 ++#define CONFIG_MJPEG_QSV_ENCODER 0 ++#define CONFIG_MJPEG_VAAPI_ENCODER 0 ++#define CONFIG_MP3_MF_ENCODER 0 ++#define CONFIG_MPEG2_QSV_ENCODER 0 ++#define CONFIG_MPEG2_VAAPI_ENCODER 0 ++#define CONFIG_MPEG4_OMX_ENCODER 0 ++#define CONFIG_MPEG4_V4L2M2M_ENCODER 0 ++#define CONFIG_PRORES_VIDEOTOOLBOX_ENCODER 0 ++#define CONFIG_VP8_V4L2M2M_ENCODER 0 ++#define CONFIG_VP8_VAAPI_ENCODER 0 ++#define CONFIG_VP9_VAAPI_ENCODER 0 ++#define CONFIG_VP9_QSV_ENCODER 0 ++#define CONFIG_AV1_D3D11VA_HWACCEL 0 ++#define CONFIG_AV1_D3D11VA2_HWACCEL 0 ++#define CONFIG_AV1_DXVA2_HWACCEL 0 ++#define CONFIG_AV1_NVDEC_HWACCEL 0 ++#define CONFIG_AV1_VAAPI_HWACCEL 0 ++#define CONFIG_H263_VAAPI_HWACCEL 0 ++#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_H264_D3D11VA_HWACCEL 0 ++#define CONFIG_H264_D3D11VA2_HWACCEL 0 ++#define CONFIG_H264_DXVA2_HWACCEL 0 ++#define CONFIG_H264_NVDEC_HWACCEL 0 ++#define CONFIG_H264_VAAPI_HWACCEL 0 ++#define CONFIG_H264_VDPAU_HWACCEL 0 ++#define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_HEVC_D3D11VA_HWACCEL 0 ++#define CONFIG_HEVC_D3D11VA2_HWACCEL 0 ++#define CONFIG_HEVC_DXVA2_HWACCEL 0 ++#define CONFIG_HEVC_NVDEC_HWACCEL 0 ++#define CONFIG_HEVC_VAAPI_HWACCEL 0 ++#define CONFIG_HEVC_VDPAU_HWACCEL 0 ++#define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_MJPEG_NVDEC_HWACCEL 0 ++#define CONFIG_MJPEG_VAAPI_HWACCEL 0 ++#define CONFIG_MPEG1_NVDEC_HWACCEL 0 ++#define CONFIG_MPEG1_VDPAU_HWACCEL 0 ++#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_MPEG1_XVMC_HWACCEL 0 ++#define CONFIG_MPEG2_D3D11VA_HWACCEL 0 ++#define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 ++#define CONFIG_MPEG2_NVDEC_HWACCEL 0 ++#define CONFIG_MPEG2_DXVA2_HWACCEL 0 ++#define CONFIG_MPEG2_VAAPI_HWACCEL 0 ++#define CONFIG_MPEG2_VDPAU_HWACCEL 0 ++#define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_MPEG2_XVMC_HWACCEL 0 ++#define CONFIG_MPEG4_NVDEC_HWACCEL 0 ++#define CONFIG_MPEG4_VAAPI_HWACCEL 0 ++#define CONFIG_MPEG4_VDPAU_HWACCEL 0 ++#define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_PRORES_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_VC1_D3D11VA_HWACCEL 0 ++#define CONFIG_VC1_D3D11VA2_HWACCEL 0 ++#define CONFIG_VC1_DXVA2_HWACCEL 0 ++#define CONFIG_VC1_NVDEC_HWACCEL 0 ++#define CONFIG_VC1_VAAPI_HWACCEL 0 ++#define CONFIG_VC1_VDPAU_HWACCEL 0 ++#define CONFIG_VP8_NVDEC_HWACCEL 0 ++#define CONFIG_VP8_VAAPI_HWACCEL 0 ++#define CONFIG_VP9_D3D11VA_HWACCEL 0 ++#define CONFIG_VP9_D3D11VA2_HWACCEL 0 ++#define CONFIG_VP9_DXVA2_HWACCEL 0 ++#define CONFIG_VP9_NVDEC_HWACCEL 0 ++#define CONFIG_VP9_VAAPI_HWACCEL 0 ++#define CONFIG_VP9_VDPAU_HWACCEL 0 ++#define CONFIG_VP9_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_WMV3_D3D11VA_HWACCEL 0 ++#define CONFIG_WMV3_D3D11VA2_HWACCEL 0 ++#define CONFIG_WMV3_DXVA2_HWACCEL 0 ++#define CONFIG_WMV3_NVDEC_HWACCEL 0 ++#define CONFIG_WMV3_VAAPI_HWACCEL 0 ++#define CONFIG_WMV3_VDPAU_HWACCEL 0 ++#define CONFIG_AAC_PARSER 1 ++#define CONFIG_AAC_LATM_PARSER 0 ++#define CONFIG_AC3_PARSER 0 ++#define CONFIG_ADX_PARSER 0 ++#define CONFIG_AMR_PARSER 0 ++#define CONFIG_AV1_PARSER 0 ++#define CONFIG_AVS2_PARSER 0 ++#define CONFIG_AVS3_PARSER 0 ++#define CONFIG_BMP_PARSER 0 ++#define CONFIG_CAVSVIDEO_PARSER 0 ++#define CONFIG_COOK_PARSER 0 ++#define CONFIG_CRI_PARSER 0 ++#define CONFIG_DCA_PARSER 0 ++#define CONFIG_DIRAC_PARSER 0 ++#define CONFIG_DNXHD_PARSER 0 ++#define CONFIG_DOLBY_E_PARSER 0 ++#define CONFIG_DPX_PARSER 0 ++#define CONFIG_DVAUDIO_PARSER 0 ++#define CONFIG_DVBSUB_PARSER 0 ++#define CONFIG_DVDSUB_PARSER 0 ++#define CONFIG_DVD_NAV_PARSER 0 ++#define CONFIG_FLAC_PARSER 1 ++#define CONFIG_G723_1_PARSER 0 ++#define CONFIG_G729_PARSER 0 ++#define CONFIG_GIF_PARSER 0 ++#define CONFIG_GSM_PARSER 0 ++#define CONFIG_H261_PARSER 0 ++#define CONFIG_H263_PARSER 0 ++#define CONFIG_H264_PARSER 1 ++#define CONFIG_HEVC_PARSER 0 ++#define CONFIG_IPU_PARSER 0 ++#define CONFIG_JPEG2000_PARSER 0 ++#define CONFIG_MJPEG_PARSER 0 ++#define CONFIG_MLP_PARSER 0 ++#define CONFIG_MPEG4VIDEO_PARSER 0 ++#define CONFIG_MPEGAUDIO_PARSER 1 ++#define CONFIG_MPEGVIDEO_PARSER 0 ++#define CONFIG_OPUS_PARSER 1 ++#define CONFIG_PNG_PARSER 0 ++#define CONFIG_PNM_PARSER 0 ++#define CONFIG_RV30_PARSER 0 ++#define CONFIG_RV40_PARSER 0 ++#define CONFIG_SBC_PARSER 0 ++#define CONFIG_SIPR_PARSER 0 ++#define CONFIG_TAK_PARSER 0 ++#define CONFIG_VC1_PARSER 0 ++#define CONFIG_VORBIS_PARSER 1 ++#define CONFIG_VP3_PARSER 1 ++#define CONFIG_VP8_PARSER 1 ++#define CONFIG_VP9_PARSER 1 ++#define CONFIG_WEBP_PARSER 0 ++#define CONFIG_XBM_PARSER 0 ++#define CONFIG_XMA_PARSER 0 ++#define CONFIG_ALSA_INDEV 0 ++#define CONFIG_ANDROID_CAMERA_INDEV 0 ++#define CONFIG_AVFOUNDATION_INDEV 0 ++#define CONFIG_BKTR_INDEV 0 ++#define CONFIG_DECKLINK_INDEV 0 ++#define CONFIG_DSHOW_INDEV 0 ++#define CONFIG_FBDEV_INDEV 0 ++#define CONFIG_GDIGRAB_INDEV 0 ++#define CONFIG_IEC61883_INDEV 0 ++#define CONFIG_JACK_INDEV 0 ++#define CONFIG_KMSGRAB_INDEV 0 ++#define CONFIG_LAVFI_INDEV 0 ++#define CONFIG_OPENAL_INDEV 0 ++#define CONFIG_OSS_INDEV 0 ++#define CONFIG_PULSE_INDEV 0 ++#define CONFIG_SNDIO_INDEV 0 ++#define CONFIG_V4L2_INDEV 0 ++#define CONFIG_VFWCAP_INDEV 0 ++#define CONFIG_XCBGRAB_INDEV 0 ++#define CONFIG_LIBCDIO_INDEV 0 ++#define CONFIG_LIBDC1394_INDEV 0 ++#define CONFIG_ALSA_OUTDEV 0 ++#define CONFIG_AUDIOTOOLBOX_OUTDEV 0 ++#define CONFIG_CACA_OUTDEV 0 ++#define CONFIG_DECKLINK_OUTDEV 0 ++#define CONFIG_FBDEV_OUTDEV 0 ++#define CONFIG_OPENGL_OUTDEV 0 ++#define CONFIG_OSS_OUTDEV 0 ++#define CONFIG_PULSE_OUTDEV 0 ++#define CONFIG_SDL2_OUTDEV 0 ++#define CONFIG_SNDIO_OUTDEV 0 ++#define CONFIG_V4L2_OUTDEV 0 ++#define CONFIG_XV_OUTDEV 0 ++#define CONFIG_ABENCH_FILTER 0 ++#define CONFIG_ACOMPRESSOR_FILTER 0 ++#define CONFIG_ACONTRAST_FILTER 0 ++#define CONFIG_ACOPY_FILTER 0 ++#define CONFIG_ACUE_FILTER 0 ++#define CONFIG_ACROSSFADE_FILTER 0 ++#define CONFIG_ACROSSOVER_FILTER 0 ++#define CONFIG_ACRUSHER_FILTER 0 ++#define CONFIG_ADECLICK_FILTER 0 ++#define CONFIG_ADECLIP_FILTER 0 ++#define CONFIG_ADECORRELATE_FILTER 0 ++#define CONFIG_ADELAY_FILTER 0 ++#define CONFIG_ADENORM_FILTER 0 ++#define CONFIG_ADERIVATIVE_FILTER 0 ++#define CONFIG_ADYNAMICEQUALIZER_FILTER 0 ++#define CONFIG_ADYNAMICSMOOTH_FILTER 0 ++#define CONFIG_AECHO_FILTER 0 ++#define CONFIG_AEMPHASIS_FILTER 0 ++#define CONFIG_AEVAL_FILTER 0 ++#define CONFIG_AEXCITER_FILTER 0 ++#define CONFIG_AFADE_FILTER 0 ++#define CONFIG_AFFTDN_FILTER 0 ++#define CONFIG_AFFTFILT_FILTER 0 ++#define CONFIG_AFIR_FILTER 0 ++#define CONFIG_AFORMAT_FILTER 0 ++#define CONFIG_AFREQSHIFT_FILTER 0 ++#define CONFIG_AFWTDN_FILTER 0 ++#define CONFIG_AGATE_FILTER 0 ++#define CONFIG_AIIR_FILTER 0 ++#define CONFIG_AINTEGRAL_FILTER 0 ++#define CONFIG_AINTERLEAVE_FILTER 0 ++#define CONFIG_ALATENCY_FILTER 0 ++#define CONFIG_ALIMITER_FILTER 0 ++#define CONFIG_ALLPASS_FILTER 0 ++#define CONFIG_ALOOP_FILTER 0 ++#define CONFIG_AMERGE_FILTER 0 ++#define CONFIG_AMETADATA_FILTER 0 ++#define CONFIG_AMIX_FILTER 0 ++#define CONFIG_AMULTIPLY_FILTER 0 ++#define CONFIG_ANEQUALIZER_FILTER 0 ++#define CONFIG_ANLMDN_FILTER 0 ++#define CONFIG_ANLMF_FILTER 0 ++#define CONFIG_ANLMS_FILTER 0 ++#define CONFIG_ANULL_FILTER 0 ++#define CONFIG_APAD_FILTER 0 ++#define CONFIG_APERMS_FILTER 0 ++#define CONFIG_APHASER_FILTER 0 ++#define CONFIG_APHASESHIFT_FILTER 0 ++#define CONFIG_APSYCLIP_FILTER 0 ++#define CONFIG_APULSATOR_FILTER 0 ++#define CONFIG_AREALTIME_FILTER 0 ++#define CONFIG_ARESAMPLE_FILTER 0 ++#define CONFIG_AREVERSE_FILTER 0 ++#define CONFIG_ARNNDN_FILTER 0 ++#define CONFIG_ASDR_FILTER 0 ++#define CONFIG_ASEGMENT_FILTER 0 ++#define CONFIG_ASELECT_FILTER 0 ++#define CONFIG_ASENDCMD_FILTER 0 ++#define CONFIG_ASETNSAMPLES_FILTER 0 ++#define CONFIG_ASETPTS_FILTER 0 ++#define CONFIG_ASETRATE_FILTER 0 ++#define CONFIG_ASETTB_FILTER 0 ++#define CONFIG_ASHOWINFO_FILTER 0 ++#define CONFIG_ASIDEDATA_FILTER 0 ++#define CONFIG_ASOFTCLIP_FILTER 0 ++#define CONFIG_ASPECTRALSTATS_FILTER 0 ++#define CONFIG_ASPLIT_FILTER 0 ++#define CONFIG_ASR_FILTER 0 ++#define CONFIG_ASTATS_FILTER 0 ++#define CONFIG_ASTREAMSELECT_FILTER 0 ++#define CONFIG_ASUBBOOST_FILTER 0 ++#define CONFIG_ASUBCUT_FILTER 0 ++#define CONFIG_ASUPERCUT_FILTER 0 ++#define CONFIG_ASUPERPASS_FILTER 0 ++#define CONFIG_ASUPERSTOP_FILTER 0 ++#define CONFIG_ATEMPO_FILTER 0 ++#define CONFIG_ATILT_FILTER 0 ++#define CONFIG_ATRIM_FILTER 0 ++#define CONFIG_AXCORRELATE_FILTER 0 ++#define CONFIG_AZMQ_FILTER 0 ++#define CONFIG_BANDPASS_FILTER 0 ++#define CONFIG_BANDREJECT_FILTER 0 ++#define CONFIG_BASS_FILTER 0 ++#define CONFIG_BIQUAD_FILTER 0 ++#define CONFIG_BS2B_FILTER 0 ++#define CONFIG_CHANNELMAP_FILTER 0 ++#define CONFIG_CHANNELSPLIT_FILTER 0 ++#define CONFIG_CHORUS_FILTER 0 ++#define CONFIG_COMPAND_FILTER 0 ++#define CONFIG_COMPENSATIONDELAY_FILTER 0 ++#define CONFIG_CROSSFEED_FILTER 0 ++#define CONFIG_CRYSTALIZER_FILTER 0 ++#define CONFIG_DCSHIFT_FILTER 0 ++#define CONFIG_DEESSER_FILTER 0 ++#define CONFIG_DRMETER_FILTER 0 ++#define CONFIG_DYNAUDNORM_FILTER 0 ++#define CONFIG_EARWAX_FILTER 0 ++#define CONFIG_EBUR128_FILTER 0 ++#define CONFIG_EQUALIZER_FILTER 0 ++#define CONFIG_EXTRASTEREO_FILTER 0 ++#define CONFIG_FIREQUALIZER_FILTER 0 ++#define CONFIG_FLANGER_FILTER 0 ++#define CONFIG_HAAS_FILTER 0 ++#define CONFIG_HDCD_FILTER 0 ++#define CONFIG_HEADPHONE_FILTER 0 ++#define CONFIG_HIGHPASS_FILTER 0 ++#define CONFIG_HIGHSHELF_FILTER 0 ++#define CONFIG_JOIN_FILTER 0 ++#define CONFIG_LADSPA_FILTER 0 ++#define CONFIG_LOUDNORM_FILTER 0 ++#define CONFIG_LOWPASS_FILTER 0 ++#define CONFIG_LOWSHELF_FILTER 0 ++#define CONFIG_LV2_FILTER 0 ++#define CONFIG_MCOMPAND_FILTER 0 ++#define CONFIG_PAN_FILTER 0 ++#define CONFIG_REPLAYGAIN_FILTER 0 ++#define CONFIG_RUBBERBAND_FILTER 0 ++#define CONFIG_SIDECHAINCOMPRESS_FILTER 0 ++#define CONFIG_SIDECHAINGATE_FILTER 0 ++#define CONFIG_SILENCEDETECT_FILTER 0 ++#define CONFIG_SILENCEREMOVE_FILTER 0 ++#define CONFIG_SOFALIZER_FILTER 0 ++#define CONFIG_SPEECHNORM_FILTER 0 ++#define CONFIG_STEREOTOOLS_FILTER 0 ++#define CONFIG_STEREOWIDEN_FILTER 0 ++#define CONFIG_SUPEREQUALIZER_FILTER 0 ++#define CONFIG_SURROUND_FILTER 0 ++#define CONFIG_TREBLE_FILTER 0 ++#define CONFIG_TREMOLO_FILTER 0 ++#define CONFIG_VIBRATO_FILTER 0 ++#define CONFIG_VOLUME_FILTER 0 ++#define CONFIG_VOLUMEDETECT_FILTER 0 ++#define CONFIG_AEVALSRC_FILTER 0 ++#define CONFIG_AFIRSRC_FILTER 0 ++#define CONFIG_ANOISESRC_FILTER 0 ++#define CONFIG_ANULLSRC_FILTER 0 ++#define CONFIG_FLITE_FILTER 0 ++#define CONFIG_HILBERT_FILTER 0 ++#define CONFIG_SINC_FILTER 0 ++#define CONFIG_SINE_FILTER 0 ++#define CONFIG_ANULLSINK_FILTER 0 ++#define CONFIG_ADDROI_FILTER 0 ++#define CONFIG_ALPHAEXTRACT_FILTER 0 ++#define CONFIG_ALPHAMERGE_FILTER 0 ++#define CONFIG_AMPLIFY_FILTER 0 ++#define CONFIG_ASS_FILTER 0 ++#define CONFIG_ATADENOISE_FILTER 0 ++#define CONFIG_AVGBLUR_FILTER 0 ++#define CONFIG_AVGBLUR_OPENCL_FILTER 0 ++#define CONFIG_AVGBLUR_VULKAN_FILTER 0 ++#define CONFIG_BBOX_FILTER 0 ++#define CONFIG_BENCH_FILTER 0 ++#define CONFIG_BILATERAL_FILTER 0 ++#define CONFIG_BITPLANENOISE_FILTER 0 ++#define CONFIG_BLACKDETECT_FILTER 0 ++#define CONFIG_BLACKFRAME_FILTER 0 ++#define CONFIG_BLEND_FILTER 0 ++#define CONFIG_BLEND_VULKAN_FILTER 0 ++#define CONFIG_BM3D_FILTER 0 ++#define CONFIG_BOXBLUR_FILTER 0 ++#define CONFIG_BOXBLUR_OPENCL_FILTER 0 ++#define CONFIG_BWDIF_FILTER 0 ++#define CONFIG_CAS_FILTER 0 ++#define CONFIG_CHROMABER_VULKAN_FILTER 0 ++#define CONFIG_CHROMAHOLD_FILTER 0 ++#define CONFIG_CHROMAKEY_FILTER 0 ++#define CONFIG_CHROMANR_FILTER 0 ++#define CONFIG_CHROMASHIFT_FILTER 0 ++#define CONFIG_CIESCOPE_FILTER 0 ++#define CONFIG_CODECVIEW_FILTER 0 ++#define CONFIG_COLORBALANCE_FILTER 0 ++#define CONFIG_COLORCHANNELMIXER_FILTER 0 ++#define CONFIG_COLORCONTRAST_FILTER 0 ++#define CONFIG_COLORCORRECT_FILTER 0 ++#define CONFIG_COLORIZE_FILTER 0 ++#define CONFIG_COLORKEY_FILTER 0 ++#define CONFIG_COLORKEY_OPENCL_FILTER 0 ++#define CONFIG_COLORHOLD_FILTER 0 ++#define CONFIG_COLORLEVELS_FILTER 0 ++#define CONFIG_COLORMATRIX_FILTER 0 ++#define CONFIG_COLORSPACE_FILTER 0 ++#define CONFIG_COLORTEMPERATURE_FILTER 0 ++#define CONFIG_CONVOLUTION_FILTER 0 ++#define CONFIG_CONVOLUTION_OPENCL_FILTER 0 ++#define CONFIG_CONVOLVE_FILTER 0 ++#define CONFIG_COPY_FILTER 0 ++#define CONFIG_COREIMAGE_FILTER 0 ++#define CONFIG_COVER_RECT_FILTER 0 ++#define CONFIG_CROP_FILTER 0 ++#define CONFIG_CROPDETECT_FILTER 0 ++#define CONFIG_CUE_FILTER 0 ++#define CONFIG_CURVES_FILTER 0 ++#define CONFIG_DATASCOPE_FILTER 0 ++#define CONFIG_DBLUR_FILTER 0 ++#define CONFIG_DCTDNOIZ_FILTER 0 ++#define CONFIG_DEBAND_FILTER 0 ++#define CONFIG_DEBLOCK_FILTER 0 ++#define CONFIG_DECIMATE_FILTER 0 ++#define CONFIG_DECONVOLVE_FILTER 0 ++#define CONFIG_DEDOT_FILTER 0 ++#define CONFIG_DEFLATE_FILTER 0 ++#define CONFIG_DEFLICKER_FILTER 0 ++#define CONFIG_DEINTERLACE_QSV_FILTER 0 ++#define CONFIG_DEINTERLACE_VAAPI_FILTER 0 ++#define CONFIG_DEJUDDER_FILTER 0 ++#define CONFIG_DELOGO_FILTER 0 ++#define CONFIG_DENOISE_VAAPI_FILTER 0 ++#define CONFIG_DERAIN_FILTER 0 ++#define CONFIG_DESHAKE_FILTER 0 ++#define CONFIG_DESHAKE_OPENCL_FILTER 0 ++#define CONFIG_DESPILL_FILTER 0 ++#define CONFIG_DETELECINE_FILTER 0 ++#define CONFIG_DILATION_FILTER 0 ++#define CONFIG_DILATION_OPENCL_FILTER 0 ++#define CONFIG_DISPLACE_FILTER 0 ++#define CONFIG_DNN_CLASSIFY_FILTER 0 ++#define CONFIG_DNN_DETECT_FILTER 0 ++#define CONFIG_DNN_PROCESSING_FILTER 0 ++#define CONFIG_DOUBLEWEAVE_FILTER 0 ++#define CONFIG_DRAWBOX_FILTER 0 ++#define CONFIG_DRAWGRAPH_FILTER 0 ++#define CONFIG_DRAWGRID_FILTER 0 ++#define CONFIG_DRAWTEXT_FILTER 0 ++#define CONFIG_EDGEDETECT_FILTER 0 ++#define CONFIG_ELBG_FILTER 0 ++#define CONFIG_ENTROPY_FILTER 0 ++#define CONFIG_EPX_FILTER 0 ++#define CONFIG_EQ_FILTER 0 ++#define CONFIG_EROSION_FILTER 0 ++#define CONFIG_EROSION_OPENCL_FILTER 0 ++#define CONFIG_ESTDIF_FILTER 0 ++#define CONFIG_EXPOSURE_FILTER 0 ++#define CONFIG_EXTRACTPLANES_FILTER 0 ++#define CONFIG_FADE_FILTER 0 ++#define CONFIG_FFTDNOIZ_FILTER 0 ++#define CONFIG_FFTFILT_FILTER 0 ++#define CONFIG_FIELD_FILTER 0 ++#define CONFIG_FIELDHINT_FILTER 0 ++#define CONFIG_FIELDMATCH_FILTER 0 ++#define CONFIG_FIELDORDER_FILTER 0 ++#define CONFIG_FILLBORDERS_FILTER 0 ++#define CONFIG_FIND_RECT_FILTER 0 ++#define CONFIG_FLIP_VULKAN_FILTER 0 ++#define CONFIG_FLOODFILL_FILTER 0 ++#define CONFIG_FORMAT_FILTER 0 ++#define CONFIG_FPS_FILTER 0 ++#define CONFIG_FRAMEPACK_FILTER 0 ++#define CONFIG_FRAMERATE_FILTER 0 ++#define CONFIG_FRAMESTEP_FILTER 0 ++#define CONFIG_FREEZEDETECT_FILTER 0 ++#define CONFIG_FREEZEFRAMES_FILTER 0 ++#define CONFIG_FREI0R_FILTER 0 ++#define CONFIG_FSPP_FILTER 0 ++#define CONFIG_GBLUR_FILTER 0 ++#define CONFIG_GBLUR_VULKAN_FILTER 0 ++#define CONFIG_GEQ_FILTER 0 ++#define CONFIG_GRADFUN_FILTER 0 ++#define CONFIG_GRAPHMONITOR_FILTER 0 ++#define CONFIG_GRAYWORLD_FILTER 0 ++#define CONFIG_GREYEDGE_FILTER 0 ++#define CONFIG_GUIDED_FILTER 0 ++#define CONFIG_HALDCLUT_FILTER 0 ++#define CONFIG_HFLIP_FILTER 0 ++#define CONFIG_HFLIP_VULKAN_FILTER 0 ++#define CONFIG_HISTEQ_FILTER 0 ++#define CONFIG_HISTOGRAM_FILTER 0 ++#define CONFIG_HQDN3D_FILTER 0 ++#define CONFIG_HQX_FILTER 0 ++#define CONFIG_HSTACK_FILTER 0 ++#define CONFIG_HSVHOLD_FILTER 0 ++#define CONFIG_HSVKEY_FILTER 0 ++#define CONFIG_HUE_FILTER 0 ++#define CONFIG_HUESATURATION_FILTER 0 ++#define CONFIG_HWDOWNLOAD_FILTER 0 ++#define CONFIG_HWMAP_FILTER 0 ++#define CONFIG_HWUPLOAD_FILTER 0 ++#define CONFIG_HWUPLOAD_CUDA_FILTER 0 ++#define CONFIG_HYSTERESIS_FILTER 0 ++#define CONFIG_IDENTITY_FILTER 0 ++#define CONFIG_IDET_FILTER 0 ++#define CONFIG_IL_FILTER 0 ++#define CONFIG_INFLATE_FILTER 0 ++#define CONFIG_INTERLACE_FILTER 0 ++#define CONFIG_INTERLEAVE_FILTER 0 ++#define CONFIG_KERNDEINT_FILTER 0 ++#define CONFIG_KIRSCH_FILTER 0 ++#define CONFIG_LAGFUN_FILTER 0 ++#define CONFIG_LATENCY_FILTER 0 ++#define CONFIG_LENSCORRECTION_FILTER 0 ++#define CONFIG_LENSFUN_FILTER 0 ++#define CONFIG_LIBPLACEBO_FILTER 0 ++#define CONFIG_LIBVMAF_FILTER 0 ++#define CONFIG_LIMITDIFF_FILTER 0 ++#define CONFIG_LIMITER_FILTER 0 ++#define CONFIG_LOOP_FILTER 0 ++#define CONFIG_LUMAKEY_FILTER 0 ++#define CONFIG_LUT_FILTER 0 ++#define CONFIG_LUT1D_FILTER 0 ++#define CONFIG_LUT2_FILTER 0 ++#define CONFIG_LUT3D_FILTER 0 ++#define CONFIG_LUTRGB_FILTER 0 ++#define CONFIG_LUTYUV_FILTER 0 ++#define CONFIG_MASKEDCLAMP_FILTER 0 ++#define CONFIG_MASKEDMAX_FILTER 0 ++#define CONFIG_MASKEDMERGE_FILTER 0 ++#define CONFIG_MASKEDMIN_FILTER 0 ++#define CONFIG_MASKEDTHRESHOLD_FILTER 0 ++#define CONFIG_MASKFUN_FILTER 0 ++#define CONFIG_MCDEINT_FILTER 0 ++#define CONFIG_MEDIAN_FILTER 0 ++#define CONFIG_MERGEPLANES_FILTER 0 ++#define CONFIG_MESTIMATE_FILTER 0 ++#define CONFIG_METADATA_FILTER 0 ++#define CONFIG_MIDEQUALIZER_FILTER 0 ++#define CONFIG_MINTERPOLATE_FILTER 0 ++#define CONFIG_MIX_FILTER 0 ++#define CONFIG_MONOCHROME_FILTER 0 ++#define CONFIG_MORPHO_FILTER 0 ++#define CONFIG_MPDECIMATE_FILTER 0 ++#define CONFIG_MSAD_FILTER 0 ++#define CONFIG_NEGATE_FILTER 0 ++#define CONFIG_NLMEANS_FILTER 0 ++#define CONFIG_NLMEANS_OPENCL_FILTER 0 ++#define CONFIG_NNEDI_FILTER 0 ++#define CONFIG_NOFORMAT_FILTER 0 ++#define CONFIG_NOISE_FILTER 0 ++#define CONFIG_NORMALIZE_FILTER 0 ++#define CONFIG_NULL_FILTER 0 ++#define CONFIG_OCR_FILTER 0 ++#define CONFIG_OCV_FILTER 0 ++#define CONFIG_OSCILLOSCOPE_FILTER 0 ++#define CONFIG_OVERLAY_FILTER 0 ++#define CONFIG_OVERLAY_OPENCL_FILTER 0 ++#define CONFIG_OVERLAY_QSV_FILTER 0 ++#define CONFIG_OVERLAY_VAAPI_FILTER 0 ++#define CONFIG_OVERLAY_VULKAN_FILTER 0 ++#define CONFIG_OVERLAY_CUDA_FILTER 0 ++#define CONFIG_OWDENOISE_FILTER 0 ++#define CONFIG_PAD_FILTER 0 ++#define CONFIG_PAD_OPENCL_FILTER 0 ++#define CONFIG_PALETTEGEN_FILTER 0 ++#define CONFIG_PALETTEUSE_FILTER 0 ++#define CONFIG_PERMS_FILTER 0 ++#define CONFIG_PERSPECTIVE_FILTER 0 ++#define CONFIG_PHASE_FILTER 0 ++#define CONFIG_PHOTOSENSITIVITY_FILTER 0 ++#define CONFIG_PIXDESCTEST_FILTER 0 ++#define CONFIG_PIXSCOPE_FILTER 0 ++#define CONFIG_PP_FILTER 0 ++#define CONFIG_PP7_FILTER 0 ++#define CONFIG_PREMULTIPLY_FILTER 0 ++#define CONFIG_PREWITT_FILTER 0 ++#define CONFIG_PREWITT_OPENCL_FILTER 0 ++#define CONFIG_PROCAMP_VAAPI_FILTER 0 ++#define CONFIG_PROGRAM_OPENCL_FILTER 0 ++#define CONFIG_PSEUDOCOLOR_FILTER 0 ++#define CONFIG_PSNR_FILTER 0 ++#define CONFIG_PULLUP_FILTER 0 ++#define CONFIG_QP_FILTER 0 ++#define CONFIG_RANDOM_FILTER 0 ++#define CONFIG_READEIA608_FILTER 0 ++#define CONFIG_READVITC_FILTER 0 ++#define CONFIG_REALTIME_FILTER 0 ++#define CONFIG_REMAP_FILTER 0 ++#define CONFIG_REMOVEGRAIN_FILTER 0 ++#define CONFIG_REMOVELOGO_FILTER 0 ++#define CONFIG_REPEATFIELDS_FILTER 0 ++#define CONFIG_REVERSE_FILTER 0 ++#define CONFIG_RGBASHIFT_FILTER 0 ++#define CONFIG_ROBERTS_FILTER 0 ++#define CONFIG_ROBERTS_OPENCL_FILTER 0 ++#define CONFIG_ROTATE_FILTER 0 ++#define CONFIG_SAB_FILTER 0 ++#define CONFIG_SCALE_FILTER 0 ++#define CONFIG_SCALE_CUDA_FILTER 0 ++#define CONFIG_SCALE_NPP_FILTER 0 ++#define CONFIG_SCALE_QSV_FILTER 0 ++#define CONFIG_SCALE_VAAPI_FILTER 0 ++#define CONFIG_SCALE_VULKAN_FILTER 0 ++#define CONFIG_SCALE2REF_FILTER 0 ++#define CONFIG_SCALE2REF_NPP_FILTER 0 ++#define CONFIG_SCDET_FILTER 0 ++#define CONFIG_SCHARR_FILTER 0 ++#define CONFIG_SCROLL_FILTER 0 ++#define CONFIG_SEGMENT_FILTER 0 ++#define CONFIG_SELECT_FILTER 0 ++#define CONFIG_SELECTIVECOLOR_FILTER 0 ++#define CONFIG_SENDCMD_FILTER 0 ++#define CONFIG_SEPARATEFIELDS_FILTER 0 ++#define CONFIG_SETDAR_FILTER 0 ++#define CONFIG_SETFIELD_FILTER 0 ++#define CONFIG_SETPARAMS_FILTER 0 ++#define CONFIG_SETPTS_FILTER 0 ++#define CONFIG_SETRANGE_FILTER 0 ++#define CONFIG_SETSAR_FILTER 0 ++#define CONFIG_SETTB_FILTER 0 ++#define CONFIG_SHARPEN_NPP_FILTER 0 ++#define CONFIG_SHARPNESS_VAAPI_FILTER 0 ++#define CONFIG_SHEAR_FILTER 0 ++#define CONFIG_SHOWINFO_FILTER 0 ++#define CONFIG_SHOWPALETTE_FILTER 0 ++#define CONFIG_SHUFFLEFRAMES_FILTER 0 ++#define CONFIG_SHUFFLEPIXELS_FILTER 0 ++#define CONFIG_SHUFFLEPLANES_FILTER 0 ++#define CONFIG_SIDEDATA_FILTER 0 ++#define CONFIG_SIGNALSTATS_FILTER 0 ++#define CONFIG_SIGNATURE_FILTER 0 ++#define CONFIG_SMARTBLUR_FILTER 0 ++#define CONFIG_SOBEL_FILTER 0 ++#define CONFIG_SOBEL_OPENCL_FILTER 0 ++#define CONFIG_SPLIT_FILTER 0 ++#define CONFIG_SPP_FILTER 0 ++#define CONFIG_SR_FILTER 0 ++#define CONFIG_SSIM_FILTER 0 ++#define CONFIG_STEREO3D_FILTER 0 ++#define CONFIG_STREAMSELECT_FILTER 0 ++#define CONFIG_SUBTITLES_FILTER 0 ++#define CONFIG_SUPER2XSAI_FILTER 0 ++#define CONFIG_SWAPRECT_FILTER 0 ++#define CONFIG_SWAPUV_FILTER 0 ++#define CONFIG_TBLEND_FILTER 0 ++#define CONFIG_TELECINE_FILTER 0 ++#define CONFIG_THISTOGRAM_FILTER 0 ++#define CONFIG_THRESHOLD_FILTER 0 ++#define CONFIG_THUMBNAIL_FILTER 0 ++#define CONFIG_THUMBNAIL_CUDA_FILTER 0 ++#define CONFIG_TILE_FILTER 0 ++#define CONFIG_TINTERLACE_FILTER 0 ++#define CONFIG_TLUT2_FILTER 0 ++#define CONFIG_TMEDIAN_FILTER 0 ++#define CONFIG_TMIDEQUALIZER_FILTER 0 ++#define CONFIG_TMIX_FILTER 0 ++#define CONFIG_TONEMAP_FILTER 0 ++#define CONFIG_TONEMAP_OPENCL_FILTER 0 ++#define CONFIG_TONEMAP_VAAPI_FILTER 0 ++#define CONFIG_TPAD_FILTER 0 ++#define CONFIG_TRANSPOSE_FILTER 0 ++#define CONFIG_TRANSPOSE_NPP_FILTER 0 ++#define CONFIG_TRANSPOSE_OPENCL_FILTER 0 ++#define CONFIG_TRANSPOSE_VAAPI_FILTER 0 ++#define CONFIG_TRANSPOSE_VULKAN_FILTER 0 ++#define CONFIG_TRIM_FILTER 0 ++#define CONFIG_UNPREMULTIPLY_FILTER 0 ++#define CONFIG_UNSHARP_FILTER 0 ++#define CONFIG_UNSHARP_OPENCL_FILTER 0 ++#define CONFIG_UNTILE_FILTER 0 ++#define CONFIG_USPP_FILTER 0 ++#define CONFIG_V360_FILTER 0 ++#define CONFIG_VAGUEDENOISER_FILTER 0 ++#define CONFIG_VARBLUR_FILTER 0 ++#define CONFIG_VECTORSCOPE_FILTER 0 ++#define CONFIG_VFLIP_FILTER 0 ++#define CONFIG_VFLIP_VULKAN_FILTER 0 ++#define CONFIG_VFRDET_FILTER 0 ++#define CONFIG_VIBRANCE_FILTER 0 ++#define CONFIG_VIDSTABDETECT_FILTER 0 ++#define CONFIG_VIDSTABTRANSFORM_FILTER 0 ++#define CONFIG_VIF_FILTER 0 ++#define CONFIG_VIGNETTE_FILTER 0 ++#define CONFIG_VMAFMOTION_FILTER 0 ++#define CONFIG_VPP_QSV_FILTER 0 ++#define CONFIG_VSTACK_FILTER 0 ++#define CONFIG_W3FDIF_FILTER 0 ++#define CONFIG_WAVEFORM_FILTER 0 ++#define CONFIG_WEAVE_FILTER 0 ++#define CONFIG_XBR_FILTER 0 ++#define CONFIG_XCORRELATE_FILTER 0 ++#define CONFIG_XFADE_FILTER 0 ++#define CONFIG_XFADE_OPENCL_FILTER 0 ++#define CONFIG_XMEDIAN_FILTER 0 ++#define CONFIG_XSTACK_FILTER 0 ++#define CONFIG_YADIF_FILTER 0 ++#define CONFIG_YADIF_CUDA_FILTER 0 ++#define CONFIG_YADIF_VIDEOTOOLBOX_FILTER 0 ++#define CONFIG_YAEPBLUR_FILTER 0 ++#define CONFIG_ZMQ_FILTER 0 ++#define CONFIG_ZOOMPAN_FILTER 0 ++#define CONFIG_ZSCALE_FILTER 0 ++#define CONFIG_ALLRGB_FILTER 0 ++#define CONFIG_ALLYUV_FILTER 0 ++#define CONFIG_CELLAUTO_FILTER 0 ++#define CONFIG_COLOR_FILTER 0 ++#define CONFIG_COLORSPECTRUM_FILTER 0 ++#define CONFIG_COREIMAGESRC_FILTER 0 ++#define CONFIG_FREI0R_SRC_FILTER 0 ++#define CONFIG_GRADIENTS_FILTER 0 ++#define CONFIG_HALDCLUTSRC_FILTER 0 ++#define CONFIG_LIFE_FILTER 0 ++#define CONFIG_MANDELBROT_FILTER 0 ++#define CONFIG_MPTESTSRC_FILTER 0 ++#define CONFIG_NULLSRC_FILTER 0 ++#define CONFIG_OPENCLSRC_FILTER 0 ++#define CONFIG_PAL75BARS_FILTER 0 ++#define CONFIG_PAL100BARS_FILTER 0 ++#define CONFIG_RGBTESTSRC_FILTER 0 ++#define CONFIG_SIERPINSKI_FILTER 0 ++#define CONFIG_SMPTEBARS_FILTER 0 ++#define CONFIG_SMPTEHDBARS_FILTER 0 ++#define CONFIG_TESTSRC_FILTER 0 ++#define CONFIG_TESTSRC2_FILTER 0 ++#define CONFIG_YUVTESTSRC_FILTER 0 ++#define CONFIG_NULLSINK_FILTER 0 ++#define CONFIG_ABITSCOPE_FILTER 0 ++#define CONFIG_ADRAWGRAPH_FILTER 0 ++#define CONFIG_AGRAPHMONITOR_FILTER 0 ++#define CONFIG_AHISTOGRAM_FILTER 0 ++#define CONFIG_APHASEMETER_FILTER 0 ++#define CONFIG_AVECTORSCOPE_FILTER 0 ++#define CONFIG_CONCAT_FILTER 0 ++#define CONFIG_SHOWCQT_FILTER 0 ++#define CONFIG_SHOWFREQS_FILTER 0 ++#define CONFIG_SHOWSPATIAL_FILTER 0 ++#define CONFIG_SHOWSPECTRUM_FILTER 0 ++#define CONFIG_SHOWSPECTRUMPIC_FILTER 0 ++#define CONFIG_SHOWVOLUME_FILTER 0 ++#define CONFIG_SHOWWAVES_FILTER 0 ++#define CONFIG_SHOWWAVESPIC_FILTER 0 ++#define CONFIG_SPECTRUMSYNTH_FILTER 0 ++#define CONFIG_AMOVIE_FILTER 0 ++#define CONFIG_MOVIE_FILTER 0 ++#define CONFIG_AFIFO_FILTER 0 ++#define CONFIG_FIFO_FILTER 0 ++#define CONFIG_AA_DEMUXER 0 ++#define CONFIG_AAC_DEMUXER 1 ++#define CONFIG_AAX_DEMUXER 0 ++#define CONFIG_AC3_DEMUXER 0 ++#define CONFIG_ACE_DEMUXER 0 ++#define CONFIG_ACM_DEMUXER 0 ++#define CONFIG_ACT_DEMUXER 0 ++#define CONFIG_ADF_DEMUXER 0 ++#define CONFIG_ADP_DEMUXER 0 ++#define CONFIG_ADS_DEMUXER 0 ++#define CONFIG_ADX_DEMUXER 0 ++#define CONFIG_AEA_DEMUXER 0 ++#define CONFIG_AFC_DEMUXER 0 ++#define CONFIG_AIFF_DEMUXER 0 ++#define CONFIG_AIX_DEMUXER 0 ++#define CONFIG_ALP_DEMUXER 0 ++#define CONFIG_AMR_DEMUXER 0 ++#define CONFIG_AMRNB_DEMUXER 0 ++#define CONFIG_AMRWB_DEMUXER 0 ++#define CONFIG_ANM_DEMUXER 0 ++#define CONFIG_APC_DEMUXER 0 ++#define CONFIG_APE_DEMUXER 0 ++#define CONFIG_APM_DEMUXER 0 ++#define CONFIG_APNG_DEMUXER 0 ++#define CONFIG_APTX_DEMUXER 0 ++#define CONFIG_APTX_HD_DEMUXER 0 ++#define CONFIG_AQTITLE_DEMUXER 0 ++#define CONFIG_ARGO_ASF_DEMUXER 0 ++#define CONFIG_ARGO_BRP_DEMUXER 0 ++#define CONFIG_ARGO_CVG_DEMUXER 0 ++#define CONFIG_ASF_DEMUXER 0 ++#define CONFIG_ASF_O_DEMUXER 0 ++#define CONFIG_ASS_DEMUXER 0 ++#define CONFIG_AST_DEMUXER 0 ++#define CONFIG_AU_DEMUXER 0 ++#define CONFIG_AV1_DEMUXER 0 ++#define CONFIG_AVI_DEMUXER 0 ++#define CONFIG_AVISYNTH_DEMUXER 0 ++#define CONFIG_AVR_DEMUXER 0 ++#define CONFIG_AVS_DEMUXER 0 ++#define CONFIG_AVS2_DEMUXER 0 ++#define CONFIG_AVS3_DEMUXER 0 ++#define CONFIG_BETHSOFTVID_DEMUXER 0 ++#define CONFIG_BFI_DEMUXER 0 ++#define CONFIG_BINTEXT_DEMUXER 0 ++#define CONFIG_BINK_DEMUXER 0 ++#define CONFIG_BINKA_DEMUXER 0 ++#define CONFIG_BIT_DEMUXER 0 ++#define CONFIG_BITPACKED_DEMUXER 0 ++#define CONFIG_BMV_DEMUXER 0 ++#define CONFIG_BFSTM_DEMUXER 0 ++#define CONFIG_BRSTM_DEMUXER 0 ++#define CONFIG_BOA_DEMUXER 0 ++#define CONFIG_C93_DEMUXER 0 ++#define CONFIG_CAF_DEMUXER 0 ++#define CONFIG_CAVSVIDEO_DEMUXER 0 ++#define CONFIG_CDG_DEMUXER 0 ++#define CONFIG_CDXL_DEMUXER 0 ++#define CONFIG_CINE_DEMUXER 0 ++#define CONFIG_CODEC2_DEMUXER 0 ++#define CONFIG_CODEC2RAW_DEMUXER 0 ++#define CONFIG_CONCAT_DEMUXER 0 ++#define CONFIG_DASH_DEMUXER 0 ++#define CONFIG_DATA_DEMUXER 0 ++#define CONFIG_DAUD_DEMUXER 0 ++#define CONFIG_DCSTR_DEMUXER 0 ++#define CONFIG_DERF_DEMUXER 0 ++#define CONFIG_DFA_DEMUXER 0 ++#define CONFIG_DHAV_DEMUXER 0 ++#define CONFIG_DIRAC_DEMUXER 0 ++#define CONFIG_DNXHD_DEMUXER 0 ++#define CONFIG_DSF_DEMUXER 0 ++#define CONFIG_DSICIN_DEMUXER 0 ++#define CONFIG_DSS_DEMUXER 0 ++#define CONFIG_DTS_DEMUXER 0 ++#define CONFIG_DTSHD_DEMUXER 0 ++#define CONFIG_DV_DEMUXER 0 ++#define CONFIG_DVBSUB_DEMUXER 0 ++#define CONFIG_DVBTXT_DEMUXER 0 ++#define CONFIG_DXA_DEMUXER 0 ++#define CONFIG_EA_DEMUXER 0 ++#define CONFIG_EA_CDATA_DEMUXER 0 ++#define CONFIG_EAC3_DEMUXER 0 ++#define CONFIG_EPAF_DEMUXER 0 ++#define CONFIG_FFMETADATA_DEMUXER 0 ++#define CONFIG_FILMSTRIP_DEMUXER 0 ++#define CONFIG_FITS_DEMUXER 0 ++#define CONFIG_FLAC_DEMUXER 1 ++#define CONFIG_FLIC_DEMUXER 0 ++#define CONFIG_FLV_DEMUXER 0 ++#define CONFIG_LIVE_FLV_DEMUXER 0 ++#define CONFIG_FOURXM_DEMUXER 0 ++#define CONFIG_FRM_DEMUXER 0 ++#define CONFIG_FSB_DEMUXER 0 ++#define CONFIG_FWSE_DEMUXER 0 ++#define CONFIG_G722_DEMUXER 0 ++#define CONFIG_G723_1_DEMUXER 0 ++#define CONFIG_G726_DEMUXER 0 ++#define CONFIG_G726LE_DEMUXER 0 ++#define CONFIG_G729_DEMUXER 0 ++#define CONFIG_GDV_DEMUXER 0 ++#define CONFIG_GENH_DEMUXER 0 ++#define CONFIG_GIF_DEMUXER 0 ++#define CONFIG_GSM_DEMUXER 0 ++#define CONFIG_GXF_DEMUXER 0 ++#define CONFIG_H261_DEMUXER 0 ++#define CONFIG_H263_DEMUXER 0 ++#define CONFIG_H264_DEMUXER 0 ++#define CONFIG_HCA_DEMUXER 0 ++#define CONFIG_HCOM_DEMUXER 0 ++#define CONFIG_HEVC_DEMUXER 0 ++#define CONFIG_HLS_DEMUXER 0 ++#define CONFIG_HNM_DEMUXER 0 ++#define CONFIG_ICO_DEMUXER 0 ++#define CONFIG_IDCIN_DEMUXER 0 ++#define CONFIG_IDF_DEMUXER 0 ++#define CONFIG_IFF_DEMUXER 0 ++#define CONFIG_IFV_DEMUXER 0 ++#define CONFIG_ILBC_DEMUXER 0 ++#define CONFIG_IMAGE2_DEMUXER 0 ++#define CONFIG_IMAGE2PIPE_DEMUXER 0 ++#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 0 ++#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 0 ++#define CONFIG_IMF_DEMUXER 0 ++#define CONFIG_INGENIENT_DEMUXER 0 ++#define CONFIG_IPMOVIE_DEMUXER 0 ++#define CONFIG_IPU_DEMUXER 0 ++#define CONFIG_IRCAM_DEMUXER 0 ++#define CONFIG_ISS_DEMUXER 0 ++#define CONFIG_IV8_DEMUXER 0 ++#define CONFIG_IVF_DEMUXER 0 ++#define CONFIG_IVR_DEMUXER 0 ++#define CONFIG_JACOSUB_DEMUXER 0 ++#define CONFIG_JV_DEMUXER 0 ++#define CONFIG_KUX_DEMUXER 0 ++#define CONFIG_KVAG_DEMUXER 0 ++#define CONFIG_LMLM4_DEMUXER 0 ++#define CONFIG_LOAS_DEMUXER 0 ++#define CONFIG_LUODAT_DEMUXER 0 ++#define CONFIG_LRC_DEMUXER 0 ++#define CONFIG_LVF_DEMUXER 0 ++#define CONFIG_LXF_DEMUXER 0 ++#define CONFIG_M4V_DEMUXER 0 ++#define CONFIG_MCA_DEMUXER 0 ++#define CONFIG_MCC_DEMUXER 0 ++#define CONFIG_MATROSKA_DEMUXER 1 ++#define CONFIG_MGSTS_DEMUXER 0 ++#define CONFIG_MICRODVD_DEMUXER 0 ++#define CONFIG_MJPEG_DEMUXER 0 ++#define CONFIG_MJPEG_2000_DEMUXER 0 ++#define CONFIG_MLP_DEMUXER 0 ++#define CONFIG_MLV_DEMUXER 0 ++#define CONFIG_MM_DEMUXER 0 ++#define CONFIG_MMF_DEMUXER 0 ++#define CONFIG_MODS_DEMUXER 0 ++#define CONFIG_MOFLEX_DEMUXER 0 ++#define CONFIG_MOV_DEMUXER 1 ++#define CONFIG_MP3_DEMUXER 1 ++#define CONFIG_MPC_DEMUXER 0 ++#define CONFIG_MPC8_DEMUXER 0 ++#define CONFIG_MPEGPS_DEMUXER 0 ++#define CONFIG_MPEGTS_DEMUXER 0 ++#define CONFIG_MPEGTSRAW_DEMUXER 0 ++#define CONFIG_MPEGVIDEO_DEMUXER 0 ++#define CONFIG_MPJPEG_DEMUXER 0 ++#define CONFIG_MPL2_DEMUXER 0 ++#define CONFIG_MPSUB_DEMUXER 0 ++#define CONFIG_MSF_DEMUXER 0 ++#define CONFIG_MSNWC_TCP_DEMUXER 0 ++#define CONFIG_MSP_DEMUXER 0 ++#define CONFIG_MTAF_DEMUXER 0 ++#define CONFIG_MTV_DEMUXER 0 ++#define CONFIG_MUSX_DEMUXER 0 ++#define CONFIG_MV_DEMUXER 0 ++#define CONFIG_MVI_DEMUXER 0 ++#define CONFIG_MXF_DEMUXER 0 ++#define CONFIG_MXG_DEMUXER 0 ++#define CONFIG_NC_DEMUXER 0 ++#define CONFIG_NISTSPHERE_DEMUXER 0 ++#define CONFIG_NSP_DEMUXER 0 ++#define CONFIG_NSV_DEMUXER 0 ++#define CONFIG_NUT_DEMUXER 0 ++#define CONFIG_NUV_DEMUXER 0 ++#define CONFIG_OBU_DEMUXER 0 ++#define CONFIG_OGG_DEMUXER 1 ++#define CONFIG_OMA_DEMUXER 0 ++#define CONFIG_PAF_DEMUXER 0 ++#define CONFIG_PCM_ALAW_DEMUXER 0 ++#define CONFIG_PCM_MULAW_DEMUXER 0 ++#define CONFIG_PCM_VIDC_DEMUXER 0 ++#define CONFIG_PCM_F64BE_DEMUXER 0 ++#define CONFIG_PCM_F64LE_DEMUXER 0 ++#define CONFIG_PCM_F32BE_DEMUXER 0 ++#define CONFIG_PCM_F32LE_DEMUXER 0 ++#define CONFIG_PCM_S32BE_DEMUXER 0 ++#define CONFIG_PCM_S32LE_DEMUXER 0 ++#define CONFIG_PCM_S24BE_DEMUXER 0 ++#define CONFIG_PCM_S24LE_DEMUXER 0 ++#define CONFIG_PCM_S16BE_DEMUXER 0 ++#define CONFIG_PCM_S16LE_DEMUXER 0 ++#define CONFIG_PCM_S8_DEMUXER 0 ++#define CONFIG_PCM_U32BE_DEMUXER 0 ++#define CONFIG_PCM_U32LE_DEMUXER 0 ++#define CONFIG_PCM_U24BE_DEMUXER 0 ++#define CONFIG_PCM_U24LE_DEMUXER 0 ++#define CONFIG_PCM_U16BE_DEMUXER 0 ++#define CONFIG_PCM_U16LE_DEMUXER 0 ++#define CONFIG_PCM_U8_DEMUXER 0 ++#define CONFIG_PJS_DEMUXER 0 ++#define CONFIG_PMP_DEMUXER 0 ++#define CONFIG_PP_BNK_DEMUXER 0 ++#define CONFIG_PVA_DEMUXER 0 ++#define CONFIG_PVF_DEMUXER 0 ++#define CONFIG_QCP_DEMUXER 0 ++#define CONFIG_R3D_DEMUXER 0 ++#define CONFIG_RAWVIDEO_DEMUXER 0 ++#define CONFIG_REALTEXT_DEMUXER 0 ++#define CONFIG_REDSPARK_DEMUXER 0 ++#define CONFIG_RL2_DEMUXER 0 ++#define CONFIG_RM_DEMUXER 0 ++#define CONFIG_ROQ_DEMUXER 0 ++#define CONFIG_RPL_DEMUXER 0 ++#define CONFIG_RSD_DEMUXER 0 ++#define CONFIG_RSO_DEMUXER 0 ++#define CONFIG_RTP_DEMUXER 0 ++#define CONFIG_RTSP_DEMUXER 0 ++#define CONFIG_S337M_DEMUXER 0 ++#define CONFIG_SAMI_DEMUXER 0 ++#define CONFIG_SAP_DEMUXER 0 ++#define CONFIG_SBC_DEMUXER 0 ++#define CONFIG_SBG_DEMUXER 0 ++#define CONFIG_SCC_DEMUXER 0 ++#define CONFIG_SCD_DEMUXER 0 ++#define CONFIG_SDP_DEMUXER 0 ++#define CONFIG_SDR2_DEMUXER 0 ++#define CONFIG_SDS_DEMUXER 0 ++#define CONFIG_SDX_DEMUXER 0 ++#define CONFIG_SEGAFILM_DEMUXER 0 ++#define CONFIG_SER_DEMUXER 0 ++#define CONFIG_SGA_DEMUXER 0 ++#define CONFIG_SHORTEN_DEMUXER 0 ++#define CONFIG_SIFF_DEMUXER 0 ++#define CONFIG_SIMBIOSIS_IMX_DEMUXER 0 ++#define CONFIG_SLN_DEMUXER 0 ++#define CONFIG_SMACKER_DEMUXER 0 ++#define CONFIG_SMJPEG_DEMUXER 0 ++#define CONFIG_SMUSH_DEMUXER 0 ++#define CONFIG_SOL_DEMUXER 0 ++#define CONFIG_SOX_DEMUXER 0 ++#define CONFIG_SPDIF_DEMUXER 0 ++#define CONFIG_SRT_DEMUXER 0 ++#define CONFIG_STR_DEMUXER 0 ++#define CONFIG_STL_DEMUXER 0 ++#define CONFIG_SUBVIEWER1_DEMUXER 0 ++#define CONFIG_SUBVIEWER_DEMUXER 0 ++#define CONFIG_SUP_DEMUXER 0 ++#define CONFIG_SVAG_DEMUXER 0 ++#define CONFIG_SVS_DEMUXER 0 ++#define CONFIG_SWF_DEMUXER 0 ++#define CONFIG_TAK_DEMUXER 0 ++#define CONFIG_TEDCAPTIONS_DEMUXER 0 ++#define CONFIG_THP_DEMUXER 0 ++#define CONFIG_THREEDOSTR_DEMUXER 0 ++#define CONFIG_TIERTEXSEQ_DEMUXER 0 ++#define CONFIG_TMV_DEMUXER 0 ++#define CONFIG_TRUEHD_DEMUXER 0 ++#define CONFIG_TTA_DEMUXER 0 ++#define CONFIG_TXD_DEMUXER 0 ++#define CONFIG_TTY_DEMUXER 0 ++#define CONFIG_TY_DEMUXER 0 ++#define CONFIG_V210_DEMUXER 0 ++#define CONFIG_V210X_DEMUXER 0 ++#define CONFIG_VAG_DEMUXER 0 ++#define CONFIG_VC1_DEMUXER 0 ++#define CONFIG_VC1T_DEMUXER 0 ++#define CONFIG_VIVIDAS_DEMUXER 0 ++#define CONFIG_VIVO_DEMUXER 0 ++#define CONFIG_VMD_DEMUXER 0 ++#define CONFIG_VOBSUB_DEMUXER 0 ++#define CONFIG_VOC_DEMUXER 0 ++#define CONFIG_VPK_DEMUXER 0 ++#define CONFIG_VPLAYER_DEMUXER 0 ++#define CONFIG_VQF_DEMUXER 0 ++#define CONFIG_W64_DEMUXER 0 ++#define CONFIG_WAV_DEMUXER 1 ++#define CONFIG_WC3_DEMUXER 0 ++#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 0 ++#define CONFIG_WEBVTT_DEMUXER 0 ++#define CONFIG_WSAUD_DEMUXER 0 ++#define CONFIG_WSD_DEMUXER 0 ++#define CONFIG_WSVQA_DEMUXER 0 ++#define CONFIG_WTV_DEMUXER 0 ++#define CONFIG_WVE_DEMUXER 0 ++#define CONFIG_WV_DEMUXER 0 ++#define CONFIG_XA_DEMUXER 0 ++#define CONFIG_XBIN_DEMUXER 0 ++#define CONFIG_XMV_DEMUXER 0 ++#define CONFIG_XVAG_DEMUXER 0 ++#define CONFIG_XWMA_DEMUXER 0 ++#define CONFIG_YOP_DEMUXER 0 ++#define CONFIG_YUV4MPEGPIPE_DEMUXER 0 ++#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_CRI_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_GEM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_GIF_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PAM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PBM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PCX_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PGM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PGX_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PHOTOCD_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PPM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PSD_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_SVG_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_XBM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_XPM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_XWD_PIPE_DEMUXER 0 ++#define CONFIG_LIBGME_DEMUXER 0 ++#define CONFIG_LIBMODPLUG_DEMUXER 0 ++#define CONFIG_LIBOPENMPT_DEMUXER 0 ++#define CONFIG_VAPOURSYNTH_DEMUXER 0 ++#define CONFIG_A64_MUXER 0 ++#define CONFIG_AC3_MUXER 0 ++#define CONFIG_ADTS_MUXER 0 ++#define CONFIG_ADX_MUXER 0 ++#define CONFIG_AIFF_MUXER 0 ++#define CONFIG_ALP_MUXER 0 ++#define CONFIG_AMR_MUXER 0 ++#define CONFIG_AMV_MUXER 0 ++#define CONFIG_APM_MUXER 0 ++#define CONFIG_APNG_MUXER 0 ++#define CONFIG_APTX_MUXER 0 ++#define CONFIG_APTX_HD_MUXER 0 ++#define CONFIG_ARGO_ASF_MUXER 0 ++#define CONFIG_ARGO_CVG_MUXER 0 ++#define CONFIG_ASF_MUXER 0 ++#define CONFIG_ASS_MUXER 0 ++#define CONFIG_AST_MUXER 0 ++#define CONFIG_ASF_STREAM_MUXER 0 ++#define CONFIG_AU_MUXER 0 ++#define CONFIG_AVI_MUXER 0 ++#define CONFIG_AVM2_MUXER 0 ++#define CONFIG_AVS2_MUXER 0 ++#define CONFIG_AVS3_MUXER 0 ++#define CONFIG_BIT_MUXER 0 ++#define CONFIG_CAF_MUXER 0 ++#define CONFIG_CAVSVIDEO_MUXER 0 ++#define CONFIG_CODEC2_MUXER 0 ++#define CONFIG_CODEC2RAW_MUXER 0 ++#define CONFIG_CRC_MUXER 0 ++#define CONFIG_DASH_MUXER 0 ++#define CONFIG_DATA_MUXER 0 ++#define CONFIG_DAUD_MUXER 0 ++#define CONFIG_DIRAC_MUXER 0 ++#define CONFIG_DNXHD_MUXER 0 ++#define CONFIG_DTS_MUXER 0 ++#define CONFIG_DV_MUXER 0 ++#define CONFIG_EAC3_MUXER 0 ++#define CONFIG_F4V_MUXER 0 ++#define CONFIG_FFMETADATA_MUXER 0 ++#define CONFIG_FIFO_MUXER 0 ++#define CONFIG_FIFO_TEST_MUXER 0 ++#define CONFIG_FILMSTRIP_MUXER 0 ++#define CONFIG_FITS_MUXER 0 ++#define CONFIG_FLAC_MUXER 0 ++#define CONFIG_FLV_MUXER 0 ++#define CONFIG_FRAMECRC_MUXER 0 ++#define CONFIG_FRAMEHASH_MUXER 0 ++#define CONFIG_FRAMEMD5_MUXER 0 ++#define CONFIG_G722_MUXER 0 ++#define CONFIG_G723_1_MUXER 0 ++#define CONFIG_G726_MUXER 0 ++#define CONFIG_G726LE_MUXER 0 ++#define CONFIG_GIF_MUXER 0 ++#define CONFIG_GSM_MUXER 0 ++#define CONFIG_GXF_MUXER 0 ++#define CONFIG_H261_MUXER 0 ++#define CONFIG_H263_MUXER 0 ++#define CONFIG_H264_MUXER 0 ++#define CONFIG_HASH_MUXER 0 ++#define CONFIG_HDS_MUXER 0 ++#define CONFIG_HEVC_MUXER 0 ++#define CONFIG_HLS_MUXER 0 ++#define CONFIG_ICO_MUXER 0 ++#define CONFIG_ILBC_MUXER 0 ++#define CONFIG_IMAGE2_MUXER 0 ++#define CONFIG_IMAGE2PIPE_MUXER 0 ++#define CONFIG_IPOD_MUXER 0 ++#define CONFIG_IRCAM_MUXER 0 ++#define CONFIG_ISMV_MUXER 0 ++#define CONFIG_IVF_MUXER 0 ++#define CONFIG_JACOSUB_MUXER 0 ++#define CONFIG_KVAG_MUXER 0 ++#define CONFIG_LATM_MUXER 0 ++#define CONFIG_LRC_MUXER 0 ++#define CONFIG_M4V_MUXER 0 ++#define CONFIG_MD5_MUXER 0 ++#define CONFIG_MATROSKA_MUXER 0 ++#define CONFIG_MATROSKA_AUDIO_MUXER 0 ++#define CONFIG_MICRODVD_MUXER 0 ++#define CONFIG_MJPEG_MUXER 0 ++#define CONFIG_MLP_MUXER 0 ++#define CONFIG_MMF_MUXER 0 ++#define CONFIG_MOV_MUXER 0 ++#define CONFIG_MP2_MUXER 0 ++#define CONFIG_MP3_MUXER 0 ++#define CONFIG_MP4_MUXER 0 ++#define CONFIG_MPEG1SYSTEM_MUXER 0 ++#define CONFIG_MPEG1VCD_MUXER 0 ++#define CONFIG_MPEG1VIDEO_MUXER 0 ++#define CONFIG_MPEG2DVD_MUXER 0 ++#define CONFIG_MPEG2SVCD_MUXER 0 ++#define CONFIG_MPEG2VIDEO_MUXER 0 ++#define CONFIG_MPEG2VOB_MUXER 0 ++#define CONFIG_MPEGTS_MUXER 0 ++#define CONFIG_MPJPEG_MUXER 0 ++#define CONFIG_MXF_MUXER 0 ++#define CONFIG_MXF_D10_MUXER 0 ++#define CONFIG_MXF_OPATOM_MUXER 0 ++#define CONFIG_NULL_MUXER 0 ++#define CONFIG_NUT_MUXER 0 ++#define CONFIG_OBU_MUXER 0 ++#define CONFIG_OGA_MUXER 0 ++#define CONFIG_OGG_MUXER 0 ++#define CONFIG_OGV_MUXER 0 ++#define CONFIG_OMA_MUXER 0 ++#define CONFIG_OPUS_MUXER 0 ++#define CONFIG_PCM_ALAW_MUXER 0 ++#define CONFIG_PCM_MULAW_MUXER 0 ++#define CONFIG_PCM_VIDC_MUXER 0 ++#define CONFIG_PCM_F64BE_MUXER 0 ++#define CONFIG_PCM_F64LE_MUXER 0 ++#define CONFIG_PCM_F32BE_MUXER 0 ++#define CONFIG_PCM_F32LE_MUXER 0 ++#define CONFIG_PCM_S32BE_MUXER 0 ++#define CONFIG_PCM_S32LE_MUXER 0 ++#define CONFIG_PCM_S24BE_MUXER 0 ++#define CONFIG_PCM_S24LE_MUXER 0 ++#define CONFIG_PCM_S16BE_MUXER 0 ++#define CONFIG_PCM_S16LE_MUXER 0 ++#define CONFIG_PCM_S8_MUXER 0 ++#define CONFIG_PCM_U32BE_MUXER 0 ++#define CONFIG_PCM_U32LE_MUXER 0 ++#define CONFIG_PCM_U24BE_MUXER 0 ++#define CONFIG_PCM_U24LE_MUXER 0 ++#define CONFIG_PCM_U16BE_MUXER 0 ++#define CONFIG_PCM_U16LE_MUXER 0 ++#define CONFIG_PCM_U8_MUXER 0 ++#define CONFIG_PSP_MUXER 0 ++#define CONFIG_RAWVIDEO_MUXER 0 ++#define CONFIG_RM_MUXER 0 ++#define CONFIG_ROQ_MUXER 0 ++#define CONFIG_RSO_MUXER 0 ++#define CONFIG_RTP_MUXER 0 ++#define CONFIG_RTP_MPEGTS_MUXER 0 ++#define CONFIG_RTSP_MUXER 0 ++#define CONFIG_SAP_MUXER 0 ++#define CONFIG_SBC_MUXER 0 ++#define CONFIG_SCC_MUXER 0 ++#define CONFIG_SEGAFILM_MUXER 0 ++#define CONFIG_SEGMENT_MUXER 0 ++#define CONFIG_STREAM_SEGMENT_MUXER 0 ++#define CONFIG_SMJPEG_MUXER 0 ++#define CONFIG_SMOOTHSTREAMING_MUXER 0 ++#define CONFIG_SOX_MUXER 0 ++#define CONFIG_SPX_MUXER 0 ++#define CONFIG_SPDIF_MUXER 0 ++#define CONFIG_SRT_MUXER 0 ++#define CONFIG_STREAMHASH_MUXER 0 ++#define CONFIG_SUP_MUXER 0 ++#define CONFIG_SWF_MUXER 0 ++#define CONFIG_TEE_MUXER 0 ++#define CONFIG_TG2_MUXER 0 ++#define CONFIG_TGP_MUXER 0 ++#define CONFIG_MKVTIMESTAMP_V2_MUXER 0 ++#define CONFIG_TRUEHD_MUXER 0 ++#define CONFIG_TTA_MUXER 0 ++#define CONFIG_TTML_MUXER 0 ++#define CONFIG_UNCODEDFRAMECRC_MUXER 0 ++#define CONFIG_VC1_MUXER 0 ++#define CONFIG_VC1T_MUXER 0 ++#define CONFIG_VOC_MUXER 0 ++#define CONFIG_W64_MUXER 0 ++#define CONFIG_WAV_MUXER 0 ++#define CONFIG_WEBM_MUXER 0 ++#define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 ++#define CONFIG_WEBM_CHUNK_MUXER 0 ++#define CONFIG_WEBP_MUXER 0 ++#define CONFIG_WEBVTT_MUXER 0 ++#define CONFIG_WSAUD_MUXER 0 ++#define CONFIG_WTV_MUXER 0 ++#define CONFIG_WV_MUXER 0 ++#define CONFIG_YUV4MPEGPIPE_MUXER 0 ++#define CONFIG_CHROMAPRINT_MUXER 0 ++#define CONFIG_ASYNC_PROTOCOL 0 ++#define CONFIG_BLURAY_PROTOCOL 0 ++#define CONFIG_CACHE_PROTOCOL 0 ++#define CONFIG_CONCAT_PROTOCOL 0 ++#define CONFIG_CONCATF_PROTOCOL 0 ++#define CONFIG_CRYPTO_PROTOCOL 0 ++#define CONFIG_DATA_PROTOCOL 0 ++#define CONFIG_FFRTMPCRYPT_PROTOCOL 0 ++#define CONFIG_FFRTMPHTTP_PROTOCOL 0 ++#define CONFIG_FILE_PROTOCOL 0 ++#define CONFIG_FTP_PROTOCOL 0 ++#define CONFIG_GOPHER_PROTOCOL 0 ++#define CONFIG_GOPHERS_PROTOCOL 0 ++#define CONFIG_HLS_PROTOCOL 0 ++#define CONFIG_HTTP_PROTOCOL 0 ++#define CONFIG_HTTPPROXY_PROTOCOL 0 ++#define CONFIG_HTTPS_PROTOCOL 0 ++#define CONFIG_ICECAST_PROTOCOL 0 ++#define CONFIG_MMSH_PROTOCOL 0 ++#define CONFIG_MMST_PROTOCOL 0 ++#define CONFIG_MD5_PROTOCOL 0 ++#define CONFIG_PIPE_PROTOCOL 0 ++#define CONFIG_PROMPEG_PROTOCOL 0 ++#define CONFIG_RTMP_PROTOCOL 0 ++#define CONFIG_RTMPE_PROTOCOL 0 ++#define CONFIG_RTMPS_PROTOCOL 0 ++#define CONFIG_RTMPT_PROTOCOL 0 ++#define CONFIG_RTMPTE_PROTOCOL 0 ++#define CONFIG_RTMPTS_PROTOCOL 0 ++#define CONFIG_RTP_PROTOCOL 0 ++#define CONFIG_SCTP_PROTOCOL 0 ++#define CONFIG_SRTP_PROTOCOL 0 ++#define CONFIG_SUBFILE_PROTOCOL 0 ++#define CONFIG_TEE_PROTOCOL 0 ++#define CONFIG_TCP_PROTOCOL 0 ++#define CONFIG_TLS_PROTOCOL 0 ++#define CONFIG_UDP_PROTOCOL 0 ++#define CONFIG_UDPLITE_PROTOCOL 0 ++#define CONFIG_UNIX_PROTOCOL 0 ++#define CONFIG_LIBAMQP_PROTOCOL 0 ++#define CONFIG_LIBRIST_PROTOCOL 0 ++#define CONFIG_LIBRTMP_PROTOCOL 0 ++#define CONFIG_LIBRTMPE_PROTOCOL 0 ++#define CONFIG_LIBRTMPS_PROTOCOL 0 ++#define CONFIG_LIBRTMPT_PROTOCOL 0 ++#define CONFIG_LIBRTMPTE_PROTOCOL 0 ++#define CONFIG_LIBSRT_PROTOCOL 0 ++#define CONFIG_LIBSSH_PROTOCOL 0 ++#define CONFIG_LIBSMBCLIENT_PROTOCOL 0 ++#define CONFIG_LIBZMQ_PROTOCOL 0 ++#endif /* FFMPEG_CONFIG_H */ diff --git a/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_ia32_config.asm b/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_ia32_config.asm new file mode 100644 index 000000000000..2e576f113839 --- /dev/null +++ b/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_ia32_config.asm @@ -0,0 +1,2730 @@ +--- third_party/ffmpeg/chromium/config/Chrome/openbsd/ia32/config.asm.orig 2022-05-20 04:31:06 UTC ++++ third_party/ffmpeg/chromium/config/Chrome/openbsd/ia32/config.asm +@@ -0,0 +1,2727 @@ ++; Automatically generated by configure - do not modify! ++%define ARCH_AARCH64 0 ++%define ARCH_ALPHA 0 ++%define ARCH_ARM 0 ++%define ARCH_AVR32 0 ++%define ARCH_AVR32_AP 0 ++%define ARCH_AVR32_UC 0 ++%define ARCH_BFIN 0 ++%define ARCH_IA64 0 ++%define ARCH_M68K 0 ++%define ARCH_MIPS 0 ++%define ARCH_MIPS64 0 ++%define ARCH_PARISC 0 ++%define ARCH_PPC 0 ++%define ARCH_PPC64 0 ++%define ARCH_RISCV 0 ++%define ARCH_S390 0 ++%define ARCH_SH4 0 ++%define ARCH_SPARC 0 ++%define ARCH_SPARC64 0 ++%define ARCH_TILEGX 0 ++%define ARCH_TILEPRO 0 ++%define ARCH_TOMI 0 ++%define ARCH_X86 1 ++%define ARCH_X86_32 1 ++%define ARCH_X86_64 0 ++%define HAVE_ARMV5TE 0 ++%define HAVE_ARMV6 0 ++%define HAVE_ARMV6T2 0 ++%define HAVE_ARMV8 0 ++%define HAVE_NEON 0 ++%define HAVE_VFP 0 ++%define HAVE_VFPV3 0 ++%define HAVE_SETEND 0 ++%define HAVE_ALTIVEC 0 ++%define HAVE_DCBZL 0 ++%define HAVE_LDBRX 0 ++%define HAVE_POWER8 0 ++%define HAVE_PPC4XX 0 ++%define HAVE_VSX 0 ++%define HAVE_AESNI 1 ++%define HAVE_AMD3DNOW 1 ++%define HAVE_AMD3DNOWEXT 1 ++%define HAVE_AVX 1 ++%define HAVE_AVX2 1 ++%define HAVE_AVX512 1 ++%define HAVE_FMA3 1 ++%define HAVE_FMA4 1 ++%define HAVE_MMX 1 ++%define HAVE_MMXEXT 1 ++%define HAVE_SSE 1 ++%define HAVE_SSE2 1 ++%define HAVE_SSE3 1 ++%define HAVE_SSE4 1 ++%define HAVE_SSE42 1 ++%define HAVE_SSSE3 1 ++%define HAVE_XOP 1 ++%define HAVE_CPUNOP 0 ++%define HAVE_I686 1 ++%define HAVE_MIPSFPU 0 ++%define HAVE_MIPS32R2 0 ++%define HAVE_MIPS32R5 0 ++%define HAVE_MIPS64R2 0 ++%define HAVE_MIPS32R6 0 ++%define HAVE_MIPS64R6 0 ++%define HAVE_MIPSDSP 0 ++%define HAVE_MIPSDSPR2 0 ++%define HAVE_MSA 0 ++%define HAVE_LOONGSON2 0 ++%define HAVE_LOONGSON3 0 ++%define HAVE_MMI 0 ++%define HAVE_ARMV5TE_EXTERNAL 0 ++%define HAVE_ARMV6_EXTERNAL 0 ++%define HAVE_ARMV6T2_EXTERNAL 0 ++%define HAVE_ARMV8_EXTERNAL 0 ++%define HAVE_NEON_EXTERNAL 0 ++%define HAVE_VFP_EXTERNAL 0 ++%define HAVE_VFPV3_EXTERNAL 0 ++%define HAVE_SETEND_EXTERNAL 0 ++%define HAVE_ALTIVEC_EXTERNAL 0 ++%define HAVE_DCBZL_EXTERNAL 0 ++%define HAVE_LDBRX_EXTERNAL 0 ++%define HAVE_POWER8_EXTERNAL 0 ++%define HAVE_PPC4XX_EXTERNAL 0 ++%define HAVE_VSX_EXTERNAL 0 ++%define HAVE_AESNI_EXTERNAL 1 ++%define HAVE_AMD3DNOW_EXTERNAL 1 ++%define HAVE_AMD3DNOWEXT_EXTERNAL 1 ++%define HAVE_AVX_EXTERNAL 1 ++%define HAVE_AVX2_EXTERNAL 1 ++%define HAVE_AVX512_EXTERNAL 1 ++%define HAVE_FMA3_EXTERNAL 1 ++%define HAVE_FMA4_EXTERNAL 1 ++%define HAVE_MMX_EXTERNAL 1 ++%define HAVE_MMXEXT_EXTERNAL 1 ++%define HAVE_SSE_EXTERNAL 1 ++%define HAVE_SSE2_EXTERNAL 1 ++%define HAVE_SSE3_EXTERNAL 1 ++%define HAVE_SSE4_EXTERNAL 1 ++%define HAVE_SSE42_EXTERNAL 1 ++%define HAVE_SSSE3_EXTERNAL 1 ++%define HAVE_XOP_EXTERNAL 1 ++%define HAVE_CPUNOP_EXTERNAL 0 ++%define HAVE_I686_EXTERNAL 0 ++%define HAVE_MIPSFPU_EXTERNAL 0 ++%define HAVE_MIPS32R2_EXTERNAL 0 ++%define HAVE_MIPS32R5_EXTERNAL 0 ++%define HAVE_MIPS64R2_EXTERNAL 0 ++%define HAVE_MIPS32R6_EXTERNAL 0 ++%define HAVE_MIPS64R6_EXTERNAL 0 ++%define HAVE_MIPSDSP_EXTERNAL 0 ++%define HAVE_MIPSDSPR2_EXTERNAL 0 ++%define HAVE_MSA_EXTERNAL 0 ++%define HAVE_LOONGSON2_EXTERNAL 0 ++%define HAVE_LOONGSON3_EXTERNAL 0 ++%define HAVE_MMI_EXTERNAL 0 ++%define HAVE_ARMV5TE_INLINE 0 ++%define HAVE_ARMV6_INLINE 0 ++%define HAVE_ARMV6T2_INLINE 0 ++%define HAVE_ARMV8_INLINE 0 ++%define HAVE_NEON_INLINE 0 ++%define HAVE_VFP_INLINE 0 ++%define HAVE_VFPV3_INLINE 0 ++%define HAVE_SETEND_INLINE 0 ++%define HAVE_ALTIVEC_INLINE 0 ++%define HAVE_DCBZL_INLINE 0 ++%define HAVE_LDBRX_INLINE 0 ++%define HAVE_POWER8_INLINE 0 ++%define HAVE_PPC4XX_INLINE 0 ++%define HAVE_VSX_INLINE 0 ++%define HAVE_AESNI_INLINE 1 ++%define HAVE_AMD3DNOW_INLINE 1 ++%define HAVE_AMD3DNOWEXT_INLINE 1 ++%define HAVE_AVX_INLINE 1 ++%define HAVE_AVX2_INLINE 1 ++%define HAVE_AVX512_INLINE 1 ++%define HAVE_FMA3_INLINE 1 ++%define HAVE_FMA4_INLINE 1 ++%define HAVE_MMX_INLINE 1 ++%define HAVE_MMXEXT_INLINE 1 ++%define HAVE_SSE_INLINE 1 ++%define HAVE_SSE2_INLINE 1 ++%define HAVE_SSE3_INLINE 1 ++%define HAVE_SSE4_INLINE 1 ++%define HAVE_SSE42_INLINE 1 ++%define HAVE_SSSE3_INLINE 1 ++%define HAVE_XOP_INLINE 1 ++%define HAVE_CPUNOP_INLINE 0 ++%define HAVE_I686_INLINE 0 ++%define HAVE_MIPSFPU_INLINE 0 ++%define HAVE_MIPS32R2_INLINE 0 ++%define HAVE_MIPS32R5_INLINE 0 ++%define HAVE_MIPS64R2_INLINE 0 ++%define HAVE_MIPS32R6_INLINE 0 ++%define HAVE_MIPS64R6_INLINE 0 ++%define HAVE_MIPSDSP_INLINE 0 ++%define HAVE_MIPSDSPR2_INLINE 0 ++%define HAVE_MSA_INLINE 0 ++%define HAVE_LOONGSON2_INLINE 0 ++%define HAVE_LOONGSON3_INLINE 0 ++%define HAVE_MMI_INLINE 0 ++%define HAVE_ALIGNED_STACK 0 ++%define HAVE_FAST_64BIT 0 ++%define HAVE_FAST_CLZ 1 ++%define HAVE_FAST_CMOV 0 ++%define HAVE_LOCAL_ALIGNED 1 ++%define HAVE_SIMD_ALIGN_16 1 ++%define HAVE_SIMD_ALIGN_32 1 ++%define HAVE_SIMD_ALIGN_64 1 ++%define HAVE_ATOMIC_CAS_PTR 0 ++%define HAVE_MACHINE_RW_BARRIER 0 ++%define HAVE_MEMORYBARRIER 0 ++%define HAVE_MM_EMPTY 0 ++%define HAVE_RDTSC 0 ++%define HAVE_SEM_TIMEDWAIT 1 ++%define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 ++%define HAVE_CABS 0 ++%define HAVE_CEXP 0 ++%define HAVE_INLINE_ASM 1 ++%define HAVE_SYMVER 0 ++%define HAVE_X86ASM 1 ++%define HAVE_BIGENDIAN 0 ++%define HAVE_FAST_UNALIGNED 1 ++%define HAVE_ARPA_INET_H 0 ++%define HAVE_ASM_TYPES_H 0 ++%define HAVE_CDIO_PARANOIA_H 0 ++%define HAVE_CDIO_PARANOIA_PARANOIA_H 0 ++%define HAVE_CUDA_H 0 ++%define HAVE_DISPATCH_DISPATCH_H 0 ++%define HAVE_DEV_BKTR_IOCTL_BT848_H 0 ++%define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 ++%define HAVE_DEV_IC_BT8XX_H 1 ++%define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 ++%define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 ++%define HAVE_DIRECT_H 0 ++%define HAVE_DIRENT_H 1 ++%define HAVE_DXGIDEBUG_H 0 ++%define HAVE_DXVA_H 0 ++%define HAVE_ES2_GL_H 0 ++%define HAVE_GSM_H 0 ++%define HAVE_IO_H 0 ++%define HAVE_LINUX_DMA_BUF_H 0 ++%define HAVE_LINUX_PERF_EVENT_H 0 ++%define HAVE_MACHINE_IOCTL_BT848_H 0 ++%define HAVE_MACHINE_IOCTL_METEOR_H 0 ++%define HAVE_MALLOC_H 0 ++%define HAVE_OPENCV2_CORE_CORE_C_H 0 ++%define HAVE_OPENGL_GL3_H 0 ++%define HAVE_POLL_H 1 ++%define HAVE_SYS_PARAM_H 1 ++%define HAVE_SYS_RESOURCE_H 1 ++%define HAVE_SYS_SELECT_H 1 ++%define HAVE_SYS_SOUNDCARD_H 0 ++%define HAVE_SYS_TIME_H 1 ++%define HAVE_SYS_UN_H 1 ++%define HAVE_SYS_VIDEOIO_H 1 ++%define HAVE_TERMIOS_H 1 ++%define HAVE_UDPLITE_H 0 ++%define HAVE_UNISTD_H 1 ++%define HAVE_VALGRIND_VALGRIND_H 0 ++%define HAVE_WINDOWS_H 0 ++%define HAVE_WINSOCK2_H 0 ++%define HAVE_INTRINSICS_NEON 0 ++%define HAVE_ATANF 1 ++%define HAVE_ATAN2F 1 ++%define HAVE_CBRT 1 ++%define HAVE_CBRTF 1 ++%define HAVE_COPYSIGN 1 ++%define HAVE_COSF 1 ++%define HAVE_ERF 1 ++%define HAVE_EXP2 1 ++%define HAVE_EXP2F 1 ++%define HAVE_EXPF 1 ++%define HAVE_HYPOT 1 ++%define HAVE_ISFINITE 1 ++%define HAVE_ISINF 1 ++%define HAVE_ISNAN 1 ++%define HAVE_LDEXPF 1 ++%define HAVE_LLRINT 1 ++%define HAVE_LLRINTF 1 ++%define HAVE_LOG2 1 ++%define HAVE_LOG2F 1 ++%define HAVE_LOG10F 1 ++%define HAVE_LRINT 1 ++%define HAVE_LRINTF 1 ++%define HAVE_POWF 1 ++%define HAVE_RINT 1 ++%define HAVE_ROUND 1 ++%define HAVE_ROUNDF 1 ++%define HAVE_SINF 1 ++%define HAVE_TRUNC 1 ++%define HAVE_TRUNCF 1 ++%define HAVE_DOS_PATHS 0 ++%define HAVE_LIBC_MSVCRT 0 ++%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 ++%define HAVE_SECTION_DATA_REL_RO 1 ++%define HAVE_THREADS 1 ++%define HAVE_UWP 0 ++%define HAVE_WINRT 0 ++%define HAVE_ACCESS 1 ++%define HAVE_ALIGNED_MALLOC 0 ++%define HAVE_ARC4RANDOM 1 ++%define HAVE_CLOCK_GETTIME 1 ++%define HAVE_CLOSESOCKET 0 ++%define HAVE_COMMANDLINETOARGVW 0 ++%define HAVE_FCNTL 1 ++%define HAVE_GETADDRINFO 0 ++%define HAVE_GETHRTIME 0 ++%define HAVE_GETOPT 1 ++%define HAVE_GETMODULEHANDLE 0 ++%define HAVE_GETPROCESSAFFINITYMASK 0 ++%define HAVE_GETPROCESSMEMORYINFO 0 ++%define HAVE_GETPROCESSTIMES 0 ++%define HAVE_GETRUSAGE 1 ++%define HAVE_GETSTDHANDLE 0 ++%define HAVE_GETSYSTEMTIMEASFILETIME 0 ++%define HAVE_GETTIMEOFDAY 1 ++%define HAVE_GLOB 1 ++%define HAVE_GLXGETPROCADDRESS 0 ++%define HAVE_GMTIME_R 1 ++%define HAVE_INET_ATON 0 ++%define HAVE_ISATTY 1 ++%define HAVE_KBHIT 0 ++%define HAVE_LOCALTIME_R 1 ++%define HAVE_LSTAT 1 ++%define HAVE_LZO1X_999_COMPRESS 0 ++%define HAVE_MACH_ABSOLUTE_TIME 0 ++%define HAVE_MAPVIEWOFFILE 0 ++%define HAVE_MEMALIGN 0 ++%define HAVE_MKSTEMP 1 ++%define HAVE_MMAP 1 ++%define HAVE_MPROTECT 1 ++%define HAVE_NANOSLEEP 1 ++%define HAVE_PEEKNAMEDPIPE 0 ++%define HAVE_POSIX_MEMALIGN 1 ++%define HAVE_PTHREAD_CANCEL 1 ++%define HAVE_SCHED_GETAFFINITY 0 ++%define HAVE_SECITEMIMPORT 0 ++%define HAVE_SETCONSOLETEXTATTRIBUTE 0 ++%define HAVE_SETCONSOLECTRLHANDLER 0 ++%define HAVE_SETDLLDIRECTORY 0 ++%define HAVE_SETMODE 0 ++%define HAVE_SETRLIMIT 1 ++%define HAVE_SLEEP 0 ++%define HAVE_STRERROR_R 1 ++%define HAVE_SYSCONF 1 ++%define HAVE_SYSCTL 1 ++%define HAVE_USLEEP 1 ++%define HAVE_UTGETOSTYPEFROMSTRING 0 ++%define HAVE_VIRTUALALLOC 0 ++%define HAVE_WGLGETPROCADDRESS 0 ++%define HAVE_BCRYPT 0 ++%define HAVE_VAAPI_DRM 0 ++%define HAVE_VAAPI_X11 0 ++%define HAVE_VDPAU_X11 0 ++%define HAVE_PTHREADS 1 ++%define HAVE_OS2THREADS 0 ++%define HAVE_W32THREADS 0 ++%define HAVE_AS_ARCH_DIRECTIVE 0 ++%define HAVE_AS_DN_DIRECTIVE 0 ++%define HAVE_AS_FPU_DIRECTIVE 0 ++%define HAVE_AS_FUNC 0 ++%define HAVE_AS_OBJECT_ARCH 0 ++%define HAVE_ASM_MOD_Q 0 ++%define HAVE_BLOCKS_EXTENSION 0 ++%define HAVE_EBP_AVAILABLE 1 ++%define HAVE_EBX_AVAILABLE 1 ++%define HAVE_GNU_AS 0 ++%define HAVE_GNU_WINDRES 0 ++%define HAVE_IBM_ASM 0 ++%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1 ++%define HAVE_INLINE_ASM_LABELS 1 ++%define HAVE_INLINE_ASM_NONLOCAL_LABELS 1 ++%define HAVE_PRAGMA_DEPRECATED 1 ++%define HAVE_RSYNC_CONTIMEOUT 1 ++%define HAVE_SYMVER_ASM_LABEL 1 ++%define HAVE_SYMVER_GNU_ASM 1 ++%define HAVE_VFP_ARGS 0 ++%define HAVE_XFORM_ASM 0 ++%define HAVE_XMM_CLOBBERS 1 ++%define HAVE_KCMVIDEOCODECTYPE_HEVC 0 ++%define HAVE_KCMVIDEOCODECTYPE_HEVCWITHALPHA 0 ++%define HAVE_KCVPIXELFORMATTYPE_420YPCBCR10BIPLANARVIDEORANGE 0 ++%define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_2084_PQ 0 ++%define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2100_HLG 0 ++%define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_LINEAR 0 ++%define HAVE_KCVIMAGEBUFFERYCBCRMATRIX_ITU_R_2020 0 ++%define HAVE_KCVIMAGEBUFFERCOLORPRIMARIES_ITU_R_2020 0 ++%define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2020 0 ++%define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_428_1 0 ++%define HAVE_SOCKLEN_T 0 ++%define HAVE_STRUCT_ADDRINFO 0 ++%define HAVE_STRUCT_GROUP_SOURCE_REQ 0 ++%define HAVE_STRUCT_IP_MREQ_SOURCE 0 ++%define HAVE_STRUCT_IPV6_MREQ 0 ++%define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 ++%define HAVE_STRUCT_POLLFD 0 ++%define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1 ++%define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 ++%define HAVE_STRUCT_SOCKADDR_IN6 0 ++%define HAVE_STRUCT_SOCKADDR_SA_LEN 0 ++%define HAVE_STRUCT_SOCKADDR_STORAGE 0 ++%define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 ++%define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1 ++%define HAVE_GZIP 1 ++%define HAVE_LIBDRM_GETFB2 0 ++%define HAVE_MAKEINFO 1 ++%define HAVE_MAKEINFO_HTML 0 ++%define HAVE_OPENCL_D3D11 0 ++%define HAVE_OPENCL_DRM_ARM 0 ++%define HAVE_OPENCL_DRM_BEIGNET 0 ++%define HAVE_OPENCL_DXVA2 0 ++%define HAVE_OPENCL_VAAPI_BEIGNET 0 ++%define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 ++%define HAVE_PERL 1 ++%define HAVE_POD2MAN 1 ++%define HAVE_TEXI2HTML 0 ++%define HAVE_XMLLINT 1 ++%define HAVE_ZLIB_GZIP 0 ++%define CONFIG_DOC 0 ++%define CONFIG_HTMLPAGES 0 ++%define CONFIG_MANPAGES 0 ++%define CONFIG_PODPAGES 0 ++%define CONFIG_TXTPAGES 0 ++%define CONFIG_AVIO_LIST_DIR_EXAMPLE 1 ++%define CONFIG_AVIO_READING_EXAMPLE 1 ++%define CONFIG_DECODE_AUDIO_EXAMPLE 1 ++%define CONFIG_DECODE_VIDEO_EXAMPLE 1 ++%define CONFIG_DEMUXING_DECODING_EXAMPLE 1 ++%define CONFIG_ENCODE_AUDIO_EXAMPLE 1 ++%define CONFIG_ENCODE_VIDEO_EXAMPLE 1 ++%define CONFIG_EXTRACT_MVS_EXAMPLE 1 ++%define CONFIG_FILTER_AUDIO_EXAMPLE 0 ++%define CONFIG_FILTERING_AUDIO_EXAMPLE 0 ++%define CONFIG_FILTERING_VIDEO_EXAMPLE 0 ++%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 1 ++%define CONFIG_HW_DECODE_EXAMPLE 1 ++%define CONFIG_METADATA_EXAMPLE 1 ++%define CONFIG_MUXING_EXAMPLE 0 ++%define CONFIG_QSVDEC_EXAMPLE 0 ++%define CONFIG_REMUXING_EXAMPLE 1 ++%define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0 ++%define CONFIG_SCALING_VIDEO_EXAMPLE 0 ++%define CONFIG_TRANSCODE_AAC_EXAMPLE 0 ++%define CONFIG_TRANSCODING_EXAMPLE 0 ++%define CONFIG_VAAPI_ENCODE_EXAMPLE 0 ++%define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 ++%define CONFIG_AVISYNTH 0 ++%define CONFIG_FREI0R 0 ++%define CONFIG_LIBCDIO 0 ++%define CONFIG_LIBDAVS2 0 ++%define CONFIG_LIBRUBBERBAND 0 ++%define CONFIG_LIBVIDSTAB 0 ++%define CONFIG_LIBX264 0 ++%define CONFIG_LIBX265 0 ++%define CONFIG_LIBXAVS 0 ++%define CONFIG_LIBXAVS2 0 ++%define CONFIG_LIBXVID 0 ++%define CONFIG_DECKLINK 0 ++%define CONFIG_LIBFDK_AAC 0 ++%define CONFIG_LIBTLS 0 ++%define CONFIG_GMP 0 ++%define CONFIG_LIBARIBB24 0 ++%define CONFIG_LIBLENSFUN 0 ++%define CONFIG_LIBOPENCORE_AMRNB 0 ++%define CONFIG_LIBOPENCORE_AMRWB 0 ++%define CONFIG_LIBVO_AMRWBENC 0 ++%define CONFIG_MBEDTLS 0 ++%define CONFIG_RKMPP 0 ++%define CONFIG_LIBSMBCLIENT 0 ++%define CONFIG_CHROMAPRINT 0 ++%define CONFIG_GCRYPT 0 ++%define CONFIG_GNUTLS 0 ++%define CONFIG_JNI 0 ++%define CONFIG_LADSPA 0 ++%define CONFIG_LIBAOM 0 ++%define CONFIG_LIBASS 0 ++%define CONFIG_LIBBLURAY 0 ++%define CONFIG_LIBBS2B 0 ++%define CONFIG_LIBCACA 0 ++%define CONFIG_LIBCELT 0 ++%define CONFIG_LIBCODEC2 0 ++%define CONFIG_LIBDAV1D 0 ++%define CONFIG_LIBDC1394 0 ++%define CONFIG_LIBDRM 0 ++%define CONFIG_LIBFLITE 0 ++%define CONFIG_LIBFONTCONFIG 0 ++%define CONFIG_LIBFREETYPE 0 ++%define CONFIG_LIBFRIBIDI 0 ++%define CONFIG_LIBGLSLANG 0 ++%define CONFIG_LIBGME 0 ++%define CONFIG_LIBGSM 0 ++%define CONFIG_LIBIEC61883 0 ++%define CONFIG_LIBILBC 0 ++%define CONFIG_LIBJACK 0 ++%define CONFIG_LIBKLVANC 0 ++%define CONFIG_LIBKVAZAAR 0 ++%define CONFIG_LIBMODPLUG 0 ++%define CONFIG_LIBMP3LAME 0 ++%define CONFIG_LIBMYSOFA 0 ++%define CONFIG_LIBOPENCV 0 ++%define CONFIG_LIBOPENH264 0 ++%define CONFIG_LIBOPENJPEG 0 ++%define CONFIG_LIBOPENMPT 0 ++%define CONFIG_LIBOPENVINO 0 ++%define CONFIG_LIBOPUS 1 ++%define CONFIG_LIBPULSE 0 ++%define CONFIG_LIBRABBITMQ 0 ++%define CONFIG_LIBRAV1E 0 ++%define CONFIG_LIBRIST 0 ++%define CONFIG_LIBRSVG 0 ++%define CONFIG_LIBRTMP 0 ++%define CONFIG_LIBSHINE 0 ++%define CONFIG_LIBSMBCLIENT 0 ++%define CONFIG_LIBSNAPPY 0 ++%define CONFIG_LIBSOXR 0 ++%define CONFIG_LIBSPEEX 0 ++%define CONFIG_LIBSRT 0 ++%define CONFIG_LIBSSH 0 ++%define CONFIG_LIBSVTAV1 0 ++%define CONFIG_LIBTENSORFLOW 0 ++%define CONFIG_LIBTESSERACT 0 ++%define CONFIG_LIBTHEORA 0 ++%define CONFIG_LIBTWOLAME 0 ++%define CONFIG_LIBUAVS3D 0 ++%define CONFIG_LIBV4L2 0 ++%define CONFIG_LIBVMAF 0 ++%define CONFIG_LIBVORBIS 0 ++%define CONFIG_LIBVPX 0 ++%define CONFIG_LIBWEBP 0 ++%define CONFIG_LIBXML2 0 ++%define CONFIG_LIBZIMG 0 ++%define CONFIG_LIBZMQ 0 ++%define CONFIG_LIBZVBI 0 ++%define CONFIG_LV2 0 ++%define CONFIG_MEDIACODEC 0 ++%define CONFIG_OPENAL 0 ++%define CONFIG_OPENGL 0 ++%define CONFIG_OPENSSL 0 ++%define CONFIG_POCKETSPHINX 0 ++%define CONFIG_VAPOURSYNTH 0 ++%define CONFIG_ALSA 0 ++%define CONFIG_APPKIT 0 ++%define CONFIG_AVFOUNDATION 0 ++%define CONFIG_BZLIB 0 ++%define CONFIG_COREIMAGE 0 ++%define CONFIG_ICONV 0 ++%define CONFIG_LIBXCB 0 ++%define CONFIG_LIBXCB_SHM 0 ++%define CONFIG_LIBXCB_SHAPE 0 ++%define CONFIG_LIBXCB_XFIXES 0 ++%define CONFIG_LZMA 0 ++%define CONFIG_MEDIAFOUNDATION 0 ++%define CONFIG_SCHANNEL 0 ++%define CONFIG_SDL2 0 ++%define CONFIG_SECURETRANSPORT 0 ++%define CONFIG_SNDIO 0 ++%define CONFIG_XLIB 0 ++%define CONFIG_ZLIB 0 ++%define CONFIG_CUDA_NVCC 0 ++%define CONFIG_CUDA_SDK 0 ++%define CONFIG_LIBNPP 0 ++%define CONFIG_LIBMFX 0 ++%define CONFIG_MMAL 0 ++%define CONFIG_OMX 0 ++%define CONFIG_OPENCL 0 ++%define CONFIG_VULKAN 0 ++%define CONFIG_AMF 0 ++%define CONFIG_AUDIOTOOLBOX 0 ++%define CONFIG_CRYSTALHD 0 ++%define CONFIG_CUDA 0 ++%define CONFIG_CUDA_LLVM 0 ++%define CONFIG_CUVID 0 ++%define CONFIG_D3D11VA 0 ++%define CONFIG_DXVA2 0 ++%define CONFIG_FFNVCODEC 0 ++%define CONFIG_NVDEC 0 ++%define CONFIG_NVENC 0 ++%define CONFIG_VAAPI 0 ++%define CONFIG_VDPAU 0 ++%define CONFIG_VIDEOTOOLBOX 0 ++%define CONFIG_V4L2_M2M 0 ++%define CONFIG_XVMC 0 ++%define CONFIG_FTRAPV 0 ++%define CONFIG_GRAY 0 ++%define CONFIG_HARDCODED_TABLES 0 ++%define CONFIG_OMX_RPI 0 ++%define CONFIG_RUNTIME_CPUDETECT 1 ++%define CONFIG_SAFE_BITSTREAM_READER 1 ++%define CONFIG_SHARED 0 ++%define CONFIG_SMALL 0 ++%define CONFIG_STATIC 1 ++%define CONFIG_SWSCALE_ALPHA 1 ++%define CONFIG_GPL 0 ++%define CONFIG_NONFREE 0 ++%define CONFIG_VERSION3 0 ++%define CONFIG_AVDEVICE 0 ++%define CONFIG_AVFILTER 0 ++%define CONFIG_SWSCALE 0 ++%define CONFIG_POSTPROC 0 ++%define CONFIG_AVFORMAT 1 ++%define CONFIG_AVCODEC 1 ++%define CONFIG_SWRESAMPLE 0 ++%define CONFIG_AVUTIL 1 ++%define CONFIG_FFPLAY 0 ++%define CONFIG_FFPROBE 0 ++%define CONFIG_FFMPEG 0 ++%define CONFIG_DCT 1 ++%define CONFIG_DWT 0 ++%define CONFIG_ERROR_RESILIENCE 0 ++%define CONFIG_FAAN 0 ++%define CONFIG_FAST_UNALIGNED 1 ++%define CONFIG_FFT 1 ++%define CONFIG_LSP 0 ++%define CONFIG_LZO 0 ++%define CONFIG_MDCT 1 ++%define CONFIG_PIXELUTILS 0 ++%define CONFIG_NETWORK 0 ++%define CONFIG_RDFT 1 ++%define CONFIG_AUTODETECT 0 ++%define CONFIG_FONTCONFIG 0 ++%define CONFIG_LARGE_TESTS 1 ++%define CONFIG_LINUX_PERF 0 ++%define CONFIG_MACOS_KPERF 0 ++%define CONFIG_MEMORY_POISONING 0 ++%define CONFIG_NEON_CLOBBER_TEST 0 ++%define CONFIG_OSSFUZZ 0 ++%define CONFIG_PIC 1 ++%define CONFIG_PTX_COMPRESSION 0 ++%define CONFIG_THUMB 0 ++%define CONFIG_VALGRIND_BACKTRACE 0 ++%define CONFIG_XMM_CLOBBER_TEST 0 ++%define CONFIG_BSFS 0 ++%define CONFIG_DECODERS 1 ++%define CONFIG_ENCODERS 0 ++%define CONFIG_HWACCELS 0 ++%define CONFIG_PARSERS 1 ++%define CONFIG_INDEVS 0 ++%define CONFIG_OUTDEVS 0 ++%define CONFIG_FILTERS 0 ++%define CONFIG_DEMUXERS 1 ++%define CONFIG_MUXERS 0 ++%define CONFIG_PROTOCOLS 0 ++%define CONFIG_AANDCTTABLES 0 ++%define CONFIG_AC3DSP 0 ++%define CONFIG_ADTS_HEADER 1 ++%define CONFIG_ATSC_A53 1 ++%define CONFIG_AUDIO_FRAME_QUEUE 0 ++%define CONFIG_AUDIODSP 0 ++%define CONFIG_BLOCKDSP 0 ++%define CONFIG_BSWAPDSP 0 ++%define CONFIG_CABAC 1 ++%define CONFIG_CBS 0 ++%define CONFIG_CBS_AV1 0 ++%define CONFIG_CBS_H264 0 ++%define CONFIG_CBS_H265 0 ++%define CONFIG_CBS_JPEG 0 ++%define CONFIG_CBS_MPEG2 0 ++%define CONFIG_CBS_VP9 0 ++%define CONFIG_DIRAC_PARSE 1 ++%define CONFIG_DNN 0 ++%define CONFIG_DVPROFILE 0 ++%define CONFIG_EXIF 0 ++%define CONFIG_FAANDCT 0 ++%define CONFIG_FAANIDCT 0 ++%define CONFIG_FDCTDSP 0 ++%define CONFIG_FLACDSP 1 ++%define CONFIG_FMTCONVERT 0 ++%define CONFIG_FRAME_THREAD_ENCODER 0 ++%define CONFIG_G722DSP 0 ++%define CONFIG_GOLOMB 1 ++%define CONFIG_GPLV3 0 ++%define CONFIG_H263DSP 0 ++%define CONFIG_H264CHROMA 1 ++%define CONFIG_H264DSP 1 ++%define CONFIG_H264PARSE 1 ++%define CONFIG_H264PRED 1 ++%define CONFIG_H264QPEL 1 ++%define CONFIG_HEVCPARSE 0 ++%define CONFIG_HPELDSP 1 ++%define CONFIG_HUFFMAN 0 ++%define CONFIG_HUFFYUVDSP 0 ++%define CONFIG_HUFFYUVENCDSP 0 ++%define CONFIG_IDCTDSP 0 ++%define CONFIG_IIRFILTER 0 ++%define CONFIG_MDCT15 1 ++%define CONFIG_INTRAX8 0 ++%define CONFIG_ISO_MEDIA 1 ++%define CONFIG_IVIDSP 0 ++%define CONFIG_JPEGTABLES 0 ++%define CONFIG_LGPLV3 0 ++%define CONFIG_LIBX262 0 ++%define CONFIG_LLAUDDSP 0 ++%define CONFIG_LLVIDDSP 0 ++%define CONFIG_LLVIDENCDSP 0 ++%define CONFIG_LPC 0 ++%define CONFIG_LZF 0 ++%define CONFIG_ME_CMP 0 ++%define CONFIG_MPEG_ER 0 ++%define CONFIG_MPEGAUDIO 1 ++%define CONFIG_MPEGAUDIODSP 1 ++%define CONFIG_MPEGAUDIOHEADER 1 ++%define CONFIG_MPEGVIDEO 0 ++%define CONFIG_MPEGVIDEOENC 0 ++%define CONFIG_MSS34DSP 0 ++%define CONFIG_PIXBLOCKDSP 0 ++%define CONFIG_QPELDSP 0 ++%define CONFIG_QSV 0 ++%define CONFIG_QSVDEC 0 ++%define CONFIG_QSVENC 0 ++%define CONFIG_QSVVPP 0 ++%define CONFIG_RANGECODER 0 ++%define CONFIG_RIFFDEC 1 ++%define CONFIG_RIFFENC 0 ++%define CONFIG_RTPDEC 0 ++%define CONFIG_RTPENC_CHAIN 0 ++%define CONFIG_RV34DSP 0 ++%define CONFIG_SCENE_SAD 0 ++%define CONFIG_SINEWIN 1 ++%define CONFIG_SNAPPY 0 ++%define CONFIG_SRTP 0 ++%define CONFIG_STARTCODE 1 ++%define CONFIG_TEXTUREDSP 0 ++%define CONFIG_TEXTUREDSPENC 0 ++%define CONFIG_TPELDSP 0 ++%define CONFIG_VAAPI_1 0 ++%define CONFIG_VAAPI_ENCODE 0 ++%define CONFIG_VC1DSP 0 ++%define CONFIG_VIDEODSP 1 ++%define CONFIG_VP3DSP 1 ++%define CONFIG_VP56DSP 0 ++%define CONFIG_VP8DSP 1 ++%define CONFIG_WMA_FREQS 0 ++%define CONFIG_WMV2DSP 0 ++%define CONFIG_AAC_ADTSTOASC_BSF 0 ++%define CONFIG_AV1_FRAME_MERGE_BSF 0 ++%define CONFIG_AV1_FRAME_SPLIT_BSF 0 ++%define CONFIG_AV1_METADATA_BSF 0 ++%define CONFIG_CHOMP_BSF 0 ++%define CONFIG_DUMP_EXTRADATA_BSF 0 ++%define CONFIG_DCA_CORE_BSF 0 ++%define CONFIG_EAC3_CORE_BSF 0 ++%define CONFIG_EXTRACT_EXTRADATA_BSF 0 ++%define CONFIG_FILTER_UNITS_BSF 0 ++%define CONFIG_H264_METADATA_BSF 0 ++%define CONFIG_H264_MP4TOANNEXB_BSF 0 ++%define CONFIG_H264_REDUNDANT_PPS_BSF 0 ++%define CONFIG_HAPQA_EXTRACT_BSF 0 ++%define CONFIG_HEVC_METADATA_BSF 0 ++%define CONFIG_HEVC_MP4TOANNEXB_BSF 0 ++%define CONFIG_IMX_DUMP_HEADER_BSF 0 ++%define CONFIG_MJPEG2JPEG_BSF 0 ++%define CONFIG_MJPEGA_DUMP_HEADER_BSF 0 ++%define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0 ++%define CONFIG_MPEG2_METADATA_BSF 0 ++%define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 0 ++%define CONFIG_MOV2TEXTSUB_BSF 0 ++%define CONFIG_NOISE_BSF 0 ++%define CONFIG_NULL_BSF 0 ++%define CONFIG_OPUS_METADATA_BSF 0 ++%define CONFIG_PCM_RECHUNK_BSF 0 ++%define CONFIG_PRORES_METADATA_BSF 0 ++%define CONFIG_REMOVE_EXTRADATA_BSF 0 ++%define CONFIG_SETTS_BSF 0 ++%define CONFIG_TEXT2MOVSUB_BSF 0 ++%define CONFIG_TRACE_HEADERS_BSF 0 ++%define CONFIG_TRUEHD_CORE_BSF 0 ++%define CONFIG_VP9_METADATA_BSF 0 ++%define CONFIG_VP9_RAW_REORDER_BSF 0 ++%define CONFIG_VP9_SUPERFRAME_BSF 0 ++%define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 0 ++%define CONFIG_AASC_DECODER 0 ++%define CONFIG_AIC_DECODER 0 ++%define CONFIG_ALIAS_PIX_DECODER 0 ++%define CONFIG_AGM_DECODER 0 ++%define CONFIG_AMV_DECODER 0 ++%define CONFIG_ANM_DECODER 0 ++%define CONFIG_ANSI_DECODER 0 ++%define CONFIG_APNG_DECODER 0 ++%define CONFIG_ARBC_DECODER 0 ++%define CONFIG_ARGO_DECODER 0 ++%define CONFIG_ASV1_DECODER 0 ++%define CONFIG_ASV2_DECODER 0 ++%define CONFIG_AURA_DECODER 0 ++%define CONFIG_AURA2_DECODER 0 ++%define CONFIG_AVRP_DECODER 0 ++%define CONFIG_AVRN_DECODER 0 ++%define CONFIG_AVS_DECODER 0 ++%define CONFIG_AVUI_DECODER 0 ++%define CONFIG_AYUV_DECODER 0 ++%define CONFIG_BETHSOFTVID_DECODER 0 ++%define CONFIG_BFI_DECODER 0 ++%define CONFIG_BINK_DECODER 0 ++%define CONFIG_BITPACKED_DECODER 0 ++%define CONFIG_BMP_DECODER 0 ++%define CONFIG_BMV_VIDEO_DECODER 0 ++%define CONFIG_BRENDER_PIX_DECODER 0 ++%define CONFIG_C93_DECODER 0 ++%define CONFIG_CAVS_DECODER 0 ++%define CONFIG_CDGRAPHICS_DECODER 0 ++%define CONFIG_CDTOONS_DECODER 0 ++%define CONFIG_CDXL_DECODER 0 ++%define CONFIG_CFHD_DECODER 0 ++%define CONFIG_CINEPAK_DECODER 0 ++%define CONFIG_CLEARVIDEO_DECODER 0 ++%define CONFIG_CLJR_DECODER 0 ++%define CONFIG_CLLC_DECODER 0 ++%define CONFIG_COMFORTNOISE_DECODER 0 ++%define CONFIG_CPIA_DECODER 0 ++%define CONFIG_CRI_DECODER 0 ++%define CONFIG_CSCD_DECODER 0 ++%define CONFIG_CYUV_DECODER 0 ++%define CONFIG_DDS_DECODER 0 ++%define CONFIG_DFA_DECODER 0 ++%define CONFIG_DIRAC_DECODER 0 ++%define CONFIG_DNXHD_DECODER 0 ++%define CONFIG_DPX_DECODER 0 ++%define CONFIG_DSICINVIDEO_DECODER 0 ++%define CONFIG_DVAUDIO_DECODER 0 ++%define CONFIG_DVVIDEO_DECODER 0 ++%define CONFIG_DXA_DECODER 0 ++%define CONFIG_DXTORY_DECODER 0 ++%define CONFIG_DXV_DECODER 0 ++%define CONFIG_EACMV_DECODER 0 ++%define CONFIG_EAMAD_DECODER 0 ++%define CONFIG_EATGQ_DECODER 0 ++%define CONFIG_EATGV_DECODER 0 ++%define CONFIG_EATQI_DECODER 0 ++%define CONFIG_EIGHTBPS_DECODER 0 ++%define CONFIG_EIGHTSVX_EXP_DECODER 0 ++%define CONFIG_EIGHTSVX_FIB_DECODER 0 ++%define CONFIG_ESCAPE124_DECODER 0 ++%define CONFIG_ESCAPE130_DECODER 0 ++%define CONFIG_EXR_DECODER 0 ++%define CONFIG_FFV1_DECODER 0 ++%define CONFIG_FFVHUFF_DECODER 0 ++%define CONFIG_FIC_DECODER 0 ++%define CONFIG_FITS_DECODER 0 ++%define CONFIG_FLASHSV_DECODER 0 ++%define CONFIG_FLASHSV2_DECODER 0 ++%define CONFIG_FLIC_DECODER 0 ++%define CONFIG_FLV_DECODER 0 ++%define CONFIG_FMVC_DECODER 0 ++%define CONFIG_FOURXM_DECODER 0 ++%define CONFIG_FRAPS_DECODER 0 ++%define CONFIG_FRWU_DECODER 0 ++%define CONFIG_G2M_DECODER 0 ++%define CONFIG_GDV_DECODER 0 ++%define CONFIG_GEM_DECODER 0 ++%define CONFIG_GIF_DECODER 0 ++%define CONFIG_H261_DECODER 0 ++%define CONFIG_H263_DECODER 0 ++%define CONFIG_H263I_DECODER 0 ++%define CONFIG_H263P_DECODER 0 ++%define CONFIG_H263_V4L2M2M_DECODER 0 ++%define CONFIG_H264_DECODER 1 ++%define CONFIG_H264_CRYSTALHD_DECODER 0 ++%define CONFIG_H264_V4L2M2M_DECODER 0 ++%define CONFIG_H264_MEDIACODEC_DECODER 0 ++%define CONFIG_H264_MMAL_DECODER 0 ++%define CONFIG_H264_QSV_DECODER 0 ++%define CONFIG_H264_RKMPP_DECODER 0 ++%define CONFIG_HAP_DECODER 0 ++%define CONFIG_HEVC_DECODER 0 ++%define CONFIG_HEVC_QSV_DECODER 0 ++%define CONFIG_HEVC_RKMPP_DECODER 0 ++%define CONFIG_HEVC_V4L2M2M_DECODER 0 ++%define CONFIG_HNM4_VIDEO_DECODER 0 ++%define CONFIG_HQ_HQA_DECODER 0 ++%define CONFIG_HQX_DECODER 0 ++%define CONFIG_HUFFYUV_DECODER 0 ++%define CONFIG_HYMT_DECODER 0 ++%define CONFIG_IDCIN_DECODER 0 ++%define CONFIG_IFF_ILBM_DECODER 0 ++%define CONFIG_IMM4_DECODER 0 ++%define CONFIG_IMM5_DECODER 0 ++%define CONFIG_INDEO2_DECODER 0 ++%define CONFIG_INDEO3_DECODER 0 ++%define CONFIG_INDEO4_DECODER 0 ++%define CONFIG_INDEO5_DECODER 0 ++%define CONFIG_INTERPLAY_VIDEO_DECODER 0 ++%define CONFIG_IPU_DECODER 0 ++%define CONFIG_JPEG2000_DECODER 0 ++%define CONFIG_JPEGLS_DECODER 0 ++%define CONFIG_JV_DECODER 0 ++%define CONFIG_KGV1_DECODER 0 ++%define CONFIG_KMVC_DECODER 0 ++%define CONFIG_LAGARITH_DECODER 0 ++%define CONFIG_LOCO_DECODER 0 ++%define CONFIG_LSCR_DECODER 0 ++%define CONFIG_M101_DECODER 0 ++%define CONFIG_MAGICYUV_DECODER 0 ++%define CONFIG_MDEC_DECODER 0 ++%define CONFIG_MIMIC_DECODER 0 ++%define CONFIG_MJPEG_DECODER 0 ++%define CONFIG_MJPEGB_DECODER 0 ++%define CONFIG_MMVIDEO_DECODER 0 ++%define CONFIG_MOBICLIP_DECODER 0 ++%define CONFIG_MOTIONPIXELS_DECODER 0 ++%define CONFIG_MPEG1VIDEO_DECODER 0 ++%define CONFIG_MPEG2VIDEO_DECODER 0 ++%define CONFIG_MPEG4_DECODER 0 ++%define CONFIG_MPEG4_CRYSTALHD_DECODER 0 ++%define CONFIG_MPEG4_V4L2M2M_DECODER 0 ++%define CONFIG_MPEG4_MMAL_DECODER 0 ++%define CONFIG_MPEGVIDEO_DECODER 0 ++%define CONFIG_MPEG1_V4L2M2M_DECODER 0 ++%define CONFIG_MPEG2_MMAL_DECODER 0 ++%define CONFIG_MPEG2_CRYSTALHD_DECODER 0 ++%define CONFIG_MPEG2_V4L2M2M_DECODER 0 ++%define CONFIG_MPEG2_QSV_DECODER 0 ++%define CONFIG_MPEG2_MEDIACODEC_DECODER 0 ++%define CONFIG_MSA1_DECODER 0 ++%define CONFIG_MSCC_DECODER 0 ++%define CONFIG_MSMPEG4V1_DECODER 0 ++%define CONFIG_MSMPEG4V2_DECODER 0 ++%define CONFIG_MSMPEG4V3_DECODER 0 ++%define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 ++%define CONFIG_MSP2_DECODER 0 ++%define CONFIG_MSRLE_DECODER 0 ++%define CONFIG_MSS1_DECODER 0 ++%define CONFIG_MSS2_DECODER 0 ++%define CONFIG_MSVIDEO1_DECODER 0 ++%define CONFIG_MSZH_DECODER 0 ++%define CONFIG_MTS2_DECODER 0 ++%define CONFIG_MV30_DECODER 0 ++%define CONFIG_MVC1_DECODER 0 ++%define CONFIG_MVC2_DECODER 0 ++%define CONFIG_MVDV_DECODER 0 ++%define CONFIG_MVHA_DECODER 0 ++%define CONFIG_MWSC_DECODER 0 ++%define CONFIG_MXPEG_DECODER 0 ++%define CONFIG_NOTCHLC_DECODER 0 ++%define CONFIG_NUV_DECODER 0 ++%define CONFIG_PAF_VIDEO_DECODER 0 ++%define CONFIG_PAM_DECODER 0 ++%define CONFIG_PBM_DECODER 0 ++%define CONFIG_PCX_DECODER 0 ++%define CONFIG_PFM_DECODER 0 ++%define CONFIG_PGM_DECODER 0 ++%define CONFIG_PGMYUV_DECODER 0 ++%define CONFIG_PGX_DECODER 0 ++%define CONFIG_PHOTOCD_DECODER 0 ++%define CONFIG_PICTOR_DECODER 0 ++%define CONFIG_PIXLET_DECODER 0 ++%define CONFIG_PNG_DECODER 0 ++%define CONFIG_PPM_DECODER 0 ++%define CONFIG_PRORES_DECODER 0 ++%define CONFIG_PROSUMER_DECODER 0 ++%define CONFIG_PSD_DECODER 0 ++%define CONFIG_PTX_DECODER 0 ++%define CONFIG_QDRAW_DECODER 0 ++%define CONFIG_QPEG_DECODER 0 ++%define CONFIG_QTRLE_DECODER 0 ++%define CONFIG_R10K_DECODER 0 ++%define CONFIG_R210_DECODER 0 ++%define CONFIG_RASC_DECODER 0 ++%define CONFIG_RAWVIDEO_DECODER 0 ++%define CONFIG_RL2_DECODER 0 ++%define CONFIG_ROQ_DECODER 0 ++%define CONFIG_RPZA_DECODER 0 ++%define CONFIG_RSCC_DECODER 0 ++%define CONFIG_RV10_DECODER 0 ++%define CONFIG_RV20_DECODER 0 ++%define CONFIG_RV30_DECODER 0 ++%define CONFIG_RV40_DECODER 0 ++%define CONFIG_S302M_DECODER 0 ++%define CONFIG_SANM_DECODER 0 ++%define CONFIG_SCPR_DECODER 0 ++%define CONFIG_SCREENPRESSO_DECODER 0 ++%define CONFIG_SGA_DECODER 0 ++%define CONFIG_SGI_DECODER 0 ++%define CONFIG_SGIRLE_DECODER 0 ++%define CONFIG_SHEERVIDEO_DECODER 0 ++%define CONFIG_SIMBIOSIS_IMX_DECODER 0 ++%define CONFIG_SMACKER_DECODER 0 ++%define CONFIG_SMC_DECODER 0 ++%define CONFIG_SMVJPEG_DECODER 0 ++%define CONFIG_SNOW_DECODER 0 ++%define CONFIG_SP5X_DECODER 0 ++%define CONFIG_SPEEDHQ_DECODER 0 ++%define CONFIG_SPEEX_DECODER 0 ++%define CONFIG_SRGC_DECODER 0 ++%define CONFIG_SUNRAST_DECODER 0 ++%define CONFIG_SVQ1_DECODER 0 ++%define CONFIG_SVQ3_DECODER 0 ++%define CONFIG_TARGA_DECODER 0 ++%define CONFIG_TARGA_Y216_DECODER 0 ++%define CONFIG_TDSC_DECODER 0 ++%define CONFIG_THEORA_DECODER 1 ++%define CONFIG_THP_DECODER 0 ++%define CONFIG_TIERTEXSEQVIDEO_DECODER 0 ++%define CONFIG_TIFF_DECODER 0 ++%define CONFIG_TMV_DECODER 0 ++%define CONFIG_TRUEMOTION1_DECODER 0 ++%define CONFIG_TRUEMOTION2_DECODER 0 ++%define CONFIG_TRUEMOTION2RT_DECODER 0 ++%define CONFIG_TSCC_DECODER 0 ++%define CONFIG_TSCC2_DECODER 0 ++%define CONFIG_TXD_DECODER 0 ++%define CONFIG_ULTI_DECODER 0 ++%define CONFIG_UTVIDEO_DECODER 0 ++%define CONFIG_V210_DECODER 0 ++%define CONFIG_V210X_DECODER 0 ++%define CONFIG_V308_DECODER 0 ++%define CONFIG_V408_DECODER 0 ++%define CONFIG_V410_DECODER 0 ++%define CONFIG_VB_DECODER 0 ++%define CONFIG_VBLE_DECODER 0 ++%define CONFIG_VC1_DECODER 0 ++%define CONFIG_VC1_CRYSTALHD_DECODER 0 ++%define CONFIG_VC1IMAGE_DECODER 0 ++%define CONFIG_VC1_MMAL_DECODER 0 ++%define CONFIG_VC1_QSV_DECODER 0 ++%define CONFIG_VC1_V4L2M2M_DECODER 0 ++%define CONFIG_VCR1_DECODER 0 ++%define CONFIG_VMDVIDEO_DECODER 0 ++%define CONFIG_VMNC_DECODER 0 ++%define CONFIG_VP3_DECODER 1 ++%define CONFIG_VP4_DECODER 0 ++%define CONFIG_VP5_DECODER 0 ++%define CONFIG_VP6_DECODER 0 ++%define CONFIG_VP6A_DECODER 0 ++%define CONFIG_VP6F_DECODER 0 ++%define CONFIG_VP7_DECODER 0 ++%define CONFIG_VP8_DECODER 1 ++%define CONFIG_VP8_RKMPP_DECODER 0 ++%define CONFIG_VP8_V4L2M2M_DECODER 0 ++%define CONFIG_VP9_DECODER 0 ++%define CONFIG_VP9_RKMPP_DECODER 0 ++%define CONFIG_VP9_V4L2M2M_DECODER 0 ++%define CONFIG_VQA_DECODER 0 ++%define CONFIG_WEBP_DECODER 0 ++%define CONFIG_WCMV_DECODER 0 ++%define CONFIG_WRAPPED_AVFRAME_DECODER 0 ++%define CONFIG_WMV1_DECODER 0 ++%define CONFIG_WMV2_DECODER 0 ++%define CONFIG_WMV3_DECODER 0 ++%define CONFIG_WMV3_CRYSTALHD_DECODER 0 ++%define CONFIG_WMV3IMAGE_DECODER 0 ++%define CONFIG_WNV1_DECODER 0 ++%define CONFIG_XAN_WC3_DECODER 0 ++%define CONFIG_XAN_WC4_DECODER 0 ++%define CONFIG_XBM_DECODER 0 ++%define CONFIG_XFACE_DECODER 0 ++%define CONFIG_XL_DECODER 0 ++%define CONFIG_XPM_DECODER 0 ++%define CONFIG_XWD_DECODER 0 ++%define CONFIG_Y41P_DECODER 0 ++%define CONFIG_YLC_DECODER 0 ++%define CONFIG_YOP_DECODER 0 ++%define CONFIG_YUV4_DECODER 0 ++%define CONFIG_ZERO12V_DECODER 0 ++%define CONFIG_ZEROCODEC_DECODER 0 ++%define CONFIG_ZLIB_DECODER 0 ++%define CONFIG_ZMBV_DECODER 0 ++%define CONFIG_AAC_DECODER 1 ++%define CONFIG_AAC_FIXED_DECODER 0 ++%define CONFIG_AAC_LATM_DECODER 0 ++%define CONFIG_AC3_DECODER 0 ++%define CONFIG_AC3_FIXED_DECODER 0 ++%define CONFIG_ACELP_KELVIN_DECODER 0 ++%define CONFIG_ALAC_DECODER 0 ++%define CONFIG_ALS_DECODER 0 ++%define CONFIG_AMRNB_DECODER 0 ++%define CONFIG_AMRWB_DECODER 0 ++%define CONFIG_APE_DECODER 0 ++%define CONFIG_APTX_DECODER 0 ++%define CONFIG_APTX_HD_DECODER 0 ++%define CONFIG_ATRAC1_DECODER 0 ++%define CONFIG_ATRAC3_DECODER 0 ++%define CONFIG_ATRAC3AL_DECODER 0 ++%define CONFIG_ATRAC3P_DECODER 0 ++%define CONFIG_ATRAC3PAL_DECODER 0 ++%define CONFIG_ATRAC9_DECODER 0 ++%define CONFIG_BINKAUDIO_DCT_DECODER 0 ++%define CONFIG_BINKAUDIO_RDFT_DECODER 0 ++%define CONFIG_BMV_AUDIO_DECODER 0 ++%define CONFIG_COOK_DECODER 0 ++%define CONFIG_DCA_DECODER 0 ++%define CONFIG_DOLBY_E_DECODER 0 ++%define CONFIG_DSD_LSBF_DECODER 0 ++%define CONFIG_DSD_MSBF_DECODER 0 ++%define CONFIG_DSD_LSBF_PLANAR_DECODER 0 ++%define CONFIG_DSD_MSBF_PLANAR_DECODER 0 ++%define CONFIG_DSICINAUDIO_DECODER 0 ++%define CONFIG_DSS_SP_DECODER 0 ++%define CONFIG_DST_DECODER 0 ++%define CONFIG_EAC3_DECODER 0 ++%define CONFIG_EVRC_DECODER 0 ++%define CONFIG_FASTAUDIO_DECODER 0 ++%define CONFIG_FFWAVESYNTH_DECODER 0 ++%define CONFIG_FLAC_DECODER 1 ++%define CONFIG_G723_1_DECODER 0 ++%define CONFIG_G729_DECODER 0 ++%define CONFIG_GSM_DECODER 0 ++%define CONFIG_GSM_MS_DECODER 0 ++%define CONFIG_HCA_DECODER 0 ++%define CONFIG_HCOM_DECODER 0 ++%define CONFIG_IAC_DECODER 0 ++%define CONFIG_ILBC_DECODER 0 ++%define CONFIG_IMC_DECODER 0 ++%define CONFIG_INTERPLAY_ACM_DECODER 0 ++%define CONFIG_MACE3_DECODER 0 ++%define CONFIG_MACE6_DECODER 0 ++%define CONFIG_METASOUND_DECODER 0 ++%define CONFIG_MLP_DECODER 0 ++%define CONFIG_MP1_DECODER 0 ++%define CONFIG_MP1FLOAT_DECODER 0 ++%define CONFIG_MP2_DECODER 0 ++%define CONFIG_MP2FLOAT_DECODER 0 ++%define CONFIG_MP3FLOAT_DECODER 0 ++%define CONFIG_MP3_DECODER 1 ++%define CONFIG_MP3ADUFLOAT_DECODER 0 ++%define CONFIG_MP3ADU_DECODER 0 ++%define CONFIG_MP3ON4FLOAT_DECODER 0 ++%define CONFIG_MP3ON4_DECODER 0 ++%define CONFIG_MPC7_DECODER 0 ++%define CONFIG_MPC8_DECODER 0 ++%define CONFIG_MSNSIREN_DECODER 0 ++%define CONFIG_NELLYMOSER_DECODER 0 ++%define CONFIG_ON2AVC_DECODER 0 ++%define CONFIG_OPUS_DECODER 0 ++%define CONFIG_PAF_AUDIO_DECODER 0 ++%define CONFIG_QCELP_DECODER 0 ++%define CONFIG_QDM2_DECODER 0 ++%define CONFIG_QDMC_DECODER 0 ++%define CONFIG_RA_144_DECODER 0 ++%define CONFIG_RA_288_DECODER 0 ++%define CONFIG_RALF_DECODER 0 ++%define CONFIG_SBC_DECODER 0 ++%define CONFIG_SHORTEN_DECODER 0 ++%define CONFIG_SIPR_DECODER 0 ++%define CONFIG_SIREN_DECODER 0 ++%define CONFIG_SMACKAUD_DECODER 0 ++%define CONFIG_SONIC_DECODER 0 ++%define CONFIG_TAK_DECODER 0 ++%define CONFIG_TRUEHD_DECODER 0 ++%define CONFIG_TRUESPEECH_DECODER 0 ++%define CONFIG_TTA_DECODER 0 ++%define CONFIG_TWINVQ_DECODER 0 ++%define CONFIG_VMDAUDIO_DECODER 0 ++%define CONFIG_VORBIS_DECODER 1 ++%define CONFIG_WAVPACK_DECODER 0 ++%define CONFIG_WMALOSSLESS_DECODER 0 ++%define CONFIG_WMAPRO_DECODER 0 ++%define CONFIG_WMAV1_DECODER 0 ++%define CONFIG_WMAV2_DECODER 0 ++%define CONFIG_WMAVOICE_DECODER 0 ++%define CONFIG_WS_SND1_DECODER 0 ++%define CONFIG_XMA1_DECODER 0 ++%define CONFIG_XMA2_DECODER 0 ++%define CONFIG_PCM_ALAW_DECODER 1 ++%define CONFIG_PCM_BLURAY_DECODER 0 ++%define CONFIG_PCM_DVD_DECODER 0 ++%define CONFIG_PCM_F16LE_DECODER 0 ++%define CONFIG_PCM_F24LE_DECODER 0 ++%define CONFIG_PCM_F32BE_DECODER 0 ++%define CONFIG_PCM_F32LE_DECODER 1 ++%define CONFIG_PCM_F64BE_DECODER 0 ++%define CONFIG_PCM_F64LE_DECODER 0 ++%define CONFIG_PCM_LXF_DECODER 0 ++%define CONFIG_PCM_MULAW_DECODER 1 ++%define CONFIG_PCM_S8_DECODER 0 ++%define CONFIG_PCM_S8_PLANAR_DECODER 0 ++%define CONFIG_PCM_S16BE_DECODER 1 ++%define CONFIG_PCM_S16BE_PLANAR_DECODER 0 ++%define CONFIG_PCM_S16LE_DECODER 1 ++%define CONFIG_PCM_S16LE_PLANAR_DECODER 0 ++%define CONFIG_PCM_S24BE_DECODER 1 ++%define CONFIG_PCM_S24DAUD_DECODER 0 ++%define CONFIG_PCM_S24LE_DECODER 1 ++%define CONFIG_PCM_S24LE_PLANAR_DECODER 0 ++%define CONFIG_PCM_S32BE_DECODER 0 ++%define CONFIG_PCM_S32LE_DECODER 1 ++%define CONFIG_PCM_S32LE_PLANAR_DECODER 0 ++%define CONFIG_PCM_S64BE_DECODER 0 ++%define CONFIG_PCM_S64LE_DECODER 0 ++%define CONFIG_PCM_SGA_DECODER 0 ++%define CONFIG_PCM_U8_DECODER 1 ++%define CONFIG_PCM_U16BE_DECODER 0 ++%define CONFIG_PCM_U16LE_DECODER 0 ++%define CONFIG_PCM_U24BE_DECODER 0 ++%define CONFIG_PCM_U24LE_DECODER 0 ++%define CONFIG_PCM_U32BE_DECODER 0 ++%define CONFIG_PCM_U32LE_DECODER 0 ++%define CONFIG_PCM_VIDC_DECODER 0 ++%define CONFIG_DERF_DPCM_DECODER 0 ++%define CONFIG_GREMLIN_DPCM_DECODER 0 ++%define CONFIG_INTERPLAY_DPCM_DECODER 0 ++%define CONFIG_ROQ_DPCM_DECODER 0 ++%define CONFIG_SDX2_DPCM_DECODER 0 ++%define CONFIG_SOL_DPCM_DECODER 0 ++%define CONFIG_XAN_DPCM_DECODER 0 ++%define CONFIG_ADPCM_4XM_DECODER 0 ++%define CONFIG_ADPCM_ADX_DECODER 0 ++%define CONFIG_ADPCM_AFC_DECODER 0 ++%define CONFIG_ADPCM_AGM_DECODER 0 ++%define CONFIG_ADPCM_AICA_DECODER 0 ++%define CONFIG_ADPCM_ARGO_DECODER 0 ++%define CONFIG_ADPCM_CT_DECODER 0 ++%define CONFIG_ADPCM_DTK_DECODER 0 ++%define CONFIG_ADPCM_EA_DECODER 0 ++%define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 0 ++%define CONFIG_ADPCM_EA_R1_DECODER 0 ++%define CONFIG_ADPCM_EA_R2_DECODER 0 ++%define CONFIG_ADPCM_EA_R3_DECODER 0 ++%define CONFIG_ADPCM_EA_XAS_DECODER 0 ++%define CONFIG_ADPCM_G722_DECODER 0 ++%define CONFIG_ADPCM_G726_DECODER 0 ++%define CONFIG_ADPCM_G726LE_DECODER 0 ++%define CONFIG_ADPCM_IMA_ACORN_DECODER 0 ++%define CONFIG_ADPCM_IMA_AMV_DECODER 0 ++%define CONFIG_ADPCM_IMA_ALP_DECODER 0 ++%define CONFIG_ADPCM_IMA_APC_DECODER 0 ++%define CONFIG_ADPCM_IMA_APM_DECODER 0 ++%define CONFIG_ADPCM_IMA_CUNNING_DECODER 0 ++%define CONFIG_ADPCM_IMA_DAT4_DECODER 0 ++%define CONFIG_ADPCM_IMA_DK3_DECODER 0 ++%define CONFIG_ADPCM_IMA_DK4_DECODER 0 ++%define CONFIG_ADPCM_IMA_EA_EACS_DECODER 0 ++%define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0 ++%define CONFIG_ADPCM_IMA_ISS_DECODER 0 ++%define CONFIG_ADPCM_IMA_MOFLEX_DECODER 0 ++%define CONFIG_ADPCM_IMA_MTF_DECODER 0 ++%define CONFIG_ADPCM_IMA_OKI_DECODER 0 ++%define CONFIG_ADPCM_IMA_QT_DECODER 0 ++%define CONFIG_ADPCM_IMA_RAD_DECODER 0 ++%define CONFIG_ADPCM_IMA_SSI_DECODER 0 ++%define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0 ++%define CONFIG_ADPCM_IMA_WAV_DECODER 0 ++%define CONFIG_ADPCM_IMA_WS_DECODER 0 ++%define CONFIG_ADPCM_MS_DECODER 0 ++%define CONFIG_ADPCM_MTAF_DECODER 0 ++%define CONFIG_ADPCM_PSX_DECODER 0 ++%define CONFIG_ADPCM_SBPRO_2_DECODER 0 ++%define CONFIG_ADPCM_SBPRO_3_DECODER 0 ++%define CONFIG_ADPCM_SBPRO_4_DECODER 0 ++%define CONFIG_ADPCM_SWF_DECODER 0 ++%define CONFIG_ADPCM_THP_DECODER 0 ++%define CONFIG_ADPCM_THP_LE_DECODER 0 ++%define CONFIG_ADPCM_VIMA_DECODER 0 ++%define CONFIG_ADPCM_XA_DECODER 0 ++%define CONFIG_ADPCM_YAMAHA_DECODER 0 ++%define CONFIG_ADPCM_ZORK_DECODER 0 ++%define CONFIG_SSA_DECODER 0 ++%define CONFIG_ASS_DECODER 0 ++%define CONFIG_CCAPTION_DECODER 0 ++%define CONFIG_DVBSUB_DECODER 0 ++%define CONFIG_DVDSUB_DECODER 0 ++%define CONFIG_JACOSUB_DECODER 0 ++%define CONFIG_MICRODVD_DECODER 0 ++%define CONFIG_MOVTEXT_DECODER 0 ++%define CONFIG_MPL2_DECODER 0 ++%define CONFIG_PGSSUB_DECODER 0 ++%define CONFIG_PJS_DECODER 0 ++%define CONFIG_REALTEXT_DECODER 0 ++%define CONFIG_SAMI_DECODER 0 ++%define CONFIG_SRT_DECODER 0 ++%define CONFIG_STL_DECODER 0 ++%define CONFIG_SUBRIP_DECODER 0 ++%define CONFIG_SUBVIEWER_DECODER 0 ++%define CONFIG_SUBVIEWER1_DECODER 0 ++%define CONFIG_TEXT_DECODER 0 ++%define CONFIG_VPLAYER_DECODER 0 ++%define CONFIG_WEBVTT_DECODER 0 ++%define CONFIG_XSUB_DECODER 0 ++%define CONFIG_AAC_AT_DECODER 0 ++%define CONFIG_AC3_AT_DECODER 0 ++%define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 ++%define CONFIG_ALAC_AT_DECODER 0 ++%define CONFIG_AMR_NB_AT_DECODER 0 ++%define CONFIG_EAC3_AT_DECODER 0 ++%define CONFIG_GSM_MS_AT_DECODER 0 ++%define CONFIG_ILBC_AT_DECODER 0 ++%define CONFIG_MP1_AT_DECODER 0 ++%define CONFIG_MP2_AT_DECODER 0 ++%define CONFIG_MP3_AT_DECODER 0 ++%define CONFIG_PCM_ALAW_AT_DECODER 0 ++%define CONFIG_PCM_MULAW_AT_DECODER 0 ++%define CONFIG_QDMC_AT_DECODER 0 ++%define CONFIG_QDM2_AT_DECODER 0 ++%define CONFIG_LIBARIBB24_DECODER 0 ++%define CONFIG_LIBCELT_DECODER 0 ++%define CONFIG_LIBCODEC2_DECODER 0 ++%define CONFIG_LIBDAV1D_DECODER 0 ++%define CONFIG_LIBDAVS2_DECODER 0 ++%define CONFIG_LIBFDK_AAC_DECODER 0 ++%define CONFIG_LIBGSM_DECODER 0 ++%define CONFIG_LIBGSM_MS_DECODER 0 ++%define CONFIG_LIBILBC_DECODER 0 ++%define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 ++%define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 ++%define CONFIG_LIBOPENJPEG_DECODER 0 ++%define CONFIG_LIBOPUS_DECODER 1 ++%define CONFIG_LIBRSVG_DECODER 0 ++%define CONFIG_LIBSPEEX_DECODER 0 ++%define CONFIG_LIBUAVS3D_DECODER 0 ++%define CONFIG_LIBVORBIS_DECODER 0 ++%define CONFIG_LIBVPX_VP8_DECODER 0 ++%define CONFIG_LIBVPX_VP9_DECODER 0 ++%define CONFIG_LIBZVBI_TELETEXT_DECODER 0 ++%define CONFIG_BINTEXT_DECODER 0 ++%define CONFIG_XBIN_DECODER 0 ++%define CONFIG_IDF_DECODER 0 ++%define CONFIG_LIBAOM_AV1_DECODER 0 ++%define CONFIG_AV1_DECODER 0 ++%define CONFIG_AV1_CUVID_DECODER 0 ++%define CONFIG_AV1_QSV_DECODER 0 ++%define CONFIG_LIBOPENH264_DECODER 0 ++%define CONFIG_H264_CUVID_DECODER 0 ++%define CONFIG_HEVC_CUVID_DECODER 0 ++%define CONFIG_HEVC_MEDIACODEC_DECODER 0 ++%define CONFIG_MJPEG_CUVID_DECODER 0 ++%define CONFIG_MJPEG_QSV_DECODER 0 ++%define CONFIG_MPEG1_CUVID_DECODER 0 ++%define CONFIG_MPEG2_CUVID_DECODER 0 ++%define CONFIG_MPEG4_CUVID_DECODER 0 ++%define CONFIG_MPEG4_MEDIACODEC_DECODER 0 ++%define CONFIG_VC1_CUVID_DECODER 0 ++%define CONFIG_VP8_CUVID_DECODER 0 ++%define CONFIG_VP8_MEDIACODEC_DECODER 0 ++%define CONFIG_VP8_QSV_DECODER 0 ++%define CONFIG_VP9_CUVID_DECODER 0 ++%define CONFIG_VP9_MEDIACODEC_DECODER 0 ++%define CONFIG_VP9_QSV_DECODER 0 ++%define CONFIG_A64MULTI_ENCODER 0 ++%define CONFIG_A64MULTI5_ENCODER 0 ++%define CONFIG_ALIAS_PIX_ENCODER 0 ++%define CONFIG_AMV_ENCODER 0 ++%define CONFIG_APNG_ENCODER 0 ++%define CONFIG_ASV1_ENCODER 0 ++%define CONFIG_ASV2_ENCODER 0 ++%define CONFIG_AVRP_ENCODER 0 ++%define CONFIG_AVUI_ENCODER 0 ++%define CONFIG_AYUV_ENCODER 0 ++%define CONFIG_BMP_ENCODER 0 ++%define CONFIG_CFHD_ENCODER 0 ++%define CONFIG_CINEPAK_ENCODER 0 ++%define CONFIG_CLJR_ENCODER 0 ++%define CONFIG_COMFORTNOISE_ENCODER 0 ++%define CONFIG_DNXHD_ENCODER 0 ++%define CONFIG_DPX_ENCODER 0 ++%define CONFIG_DVVIDEO_ENCODER 0 ++%define CONFIG_EXR_ENCODER 0 ++%define CONFIG_FFV1_ENCODER 0 ++%define CONFIG_FFVHUFF_ENCODER 0 ++%define CONFIG_FITS_ENCODER 0 ++%define CONFIG_FLASHSV_ENCODER 0 ++%define CONFIG_FLASHSV2_ENCODER 0 ++%define CONFIG_FLV_ENCODER 0 ++%define CONFIG_GIF_ENCODER 0 ++%define CONFIG_H261_ENCODER 0 ++%define CONFIG_H263_ENCODER 0 ++%define CONFIG_H263P_ENCODER 0 ++%define CONFIG_HAP_ENCODER 0 ++%define CONFIG_HUFFYUV_ENCODER 0 ++%define CONFIG_JPEG2000_ENCODER 0 ++%define CONFIG_JPEGLS_ENCODER 0 ++%define CONFIG_LJPEG_ENCODER 0 ++%define CONFIG_MAGICYUV_ENCODER 0 ++%define CONFIG_MJPEG_ENCODER 0 ++%define CONFIG_MPEG1VIDEO_ENCODER 0 ++%define CONFIG_MPEG2VIDEO_ENCODER 0 ++%define CONFIG_MPEG4_ENCODER 0 ++%define CONFIG_MSMPEG4V2_ENCODER 0 ++%define CONFIG_MSMPEG4V3_ENCODER 0 ++%define CONFIG_MSVIDEO1_ENCODER 0 ++%define CONFIG_PAM_ENCODER 0 ++%define CONFIG_PBM_ENCODER 0 ++%define CONFIG_PCX_ENCODER 0 ++%define CONFIG_PFM_ENCODER 0 ++%define CONFIG_PGM_ENCODER 0 ++%define CONFIG_PGMYUV_ENCODER 0 ++%define CONFIG_PNG_ENCODER 0 ++%define CONFIG_PPM_ENCODER 0 ++%define CONFIG_PRORES_ENCODER 0 ++%define CONFIG_PRORES_AW_ENCODER 0 ++%define CONFIG_PRORES_KS_ENCODER 0 ++%define CONFIG_QTRLE_ENCODER 0 ++%define CONFIG_R10K_ENCODER 0 ++%define CONFIG_R210_ENCODER 0 ++%define CONFIG_RAWVIDEO_ENCODER 0 ++%define CONFIG_ROQ_ENCODER 0 ++%define CONFIG_RPZA_ENCODER 0 ++%define CONFIG_RV10_ENCODER 0 ++%define CONFIG_RV20_ENCODER 0 ++%define CONFIG_S302M_ENCODER 0 ++%define CONFIG_SGI_ENCODER 0 ++%define CONFIG_SMC_ENCODER 0 ++%define CONFIG_SNOW_ENCODER 0 ++%define CONFIG_SPEEDHQ_ENCODER 0 ++%define CONFIG_SUNRAST_ENCODER 0 ++%define CONFIG_SVQ1_ENCODER 0 ++%define CONFIG_TARGA_ENCODER 0 ++%define CONFIG_TIFF_ENCODER 0 ++%define CONFIG_UTVIDEO_ENCODER 0 ++%define CONFIG_V210_ENCODER 0 ++%define CONFIG_V308_ENCODER 0 ++%define CONFIG_V408_ENCODER 0 ++%define CONFIG_V410_ENCODER 0 ++%define CONFIG_VC2_ENCODER 0 ++%define CONFIG_WRAPPED_AVFRAME_ENCODER 0 ++%define CONFIG_WMV1_ENCODER 0 ++%define CONFIG_WMV2_ENCODER 0 ++%define CONFIG_XBM_ENCODER 0 ++%define CONFIG_XFACE_ENCODER 0 ++%define CONFIG_XWD_ENCODER 0 ++%define CONFIG_Y41P_ENCODER 0 ++%define CONFIG_YUV4_ENCODER 0 ++%define CONFIG_ZLIB_ENCODER 0 ++%define CONFIG_ZMBV_ENCODER 0 ++%define CONFIG_AAC_ENCODER 0 ++%define CONFIG_AC3_ENCODER 0 ++%define CONFIG_AC3_FIXED_ENCODER 0 ++%define CONFIG_ALAC_ENCODER 0 ++%define CONFIG_APTX_ENCODER 0 ++%define CONFIG_APTX_HD_ENCODER 0 ++%define CONFIG_DCA_ENCODER 0 ++%define CONFIG_EAC3_ENCODER 0 ++%define CONFIG_FLAC_ENCODER 0 ++%define CONFIG_G723_1_ENCODER 0 ++%define CONFIG_MLP_ENCODER 0 ++%define CONFIG_MP2_ENCODER 0 ++%define CONFIG_MP2FIXED_ENCODER 0 ++%define CONFIG_NELLYMOSER_ENCODER 0 ++%define CONFIG_OPUS_ENCODER 0 ++%define CONFIG_RA_144_ENCODER 0 ++%define CONFIG_SBC_ENCODER 0 ++%define CONFIG_SONIC_ENCODER 0 ++%define CONFIG_SONIC_LS_ENCODER 0 ++%define CONFIG_TRUEHD_ENCODER 0 ++%define CONFIG_TTA_ENCODER 0 ++%define CONFIG_VORBIS_ENCODER 0 ++%define CONFIG_WAVPACK_ENCODER 0 ++%define CONFIG_WMAV1_ENCODER 0 ++%define CONFIG_WMAV2_ENCODER 0 ++%define CONFIG_PCM_ALAW_ENCODER 0 ++%define CONFIG_PCM_DVD_ENCODER 0 ++%define CONFIG_PCM_F32BE_ENCODER 0 ++%define CONFIG_PCM_F32LE_ENCODER 0 ++%define CONFIG_PCM_F64BE_ENCODER 0 ++%define CONFIG_PCM_F64LE_ENCODER 0 ++%define CONFIG_PCM_MULAW_ENCODER 0 ++%define CONFIG_PCM_S8_ENCODER 0 ++%define CONFIG_PCM_S8_PLANAR_ENCODER 0 ++%define CONFIG_PCM_S16BE_ENCODER 0 ++%define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 ++%define CONFIG_PCM_S16LE_ENCODER 0 ++%define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 ++%define CONFIG_PCM_S24BE_ENCODER 0 ++%define CONFIG_PCM_S24DAUD_ENCODER 0 ++%define CONFIG_PCM_S24LE_ENCODER 0 ++%define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 ++%define CONFIG_PCM_S32BE_ENCODER 0 ++%define CONFIG_PCM_S32LE_ENCODER 0 ++%define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 ++%define CONFIG_PCM_S64BE_ENCODER 0 ++%define CONFIG_PCM_S64LE_ENCODER 0 ++%define CONFIG_PCM_U8_ENCODER 0 ++%define CONFIG_PCM_U16BE_ENCODER 0 ++%define CONFIG_PCM_U16LE_ENCODER 0 ++%define CONFIG_PCM_U24BE_ENCODER 0 ++%define CONFIG_PCM_U24LE_ENCODER 0 ++%define CONFIG_PCM_U32BE_ENCODER 0 ++%define CONFIG_PCM_U32LE_ENCODER 0 ++%define CONFIG_PCM_VIDC_ENCODER 0 ++%define CONFIG_ROQ_DPCM_ENCODER 0 ++%define CONFIG_ADPCM_ADX_ENCODER 0 ++%define CONFIG_ADPCM_ARGO_ENCODER 0 ++%define CONFIG_ADPCM_G722_ENCODER 0 ++%define CONFIG_ADPCM_G726_ENCODER 0 ++%define CONFIG_ADPCM_G726LE_ENCODER 0 ++%define CONFIG_ADPCM_IMA_AMV_ENCODER 0 ++%define CONFIG_ADPCM_IMA_ALP_ENCODER 0 ++%define CONFIG_ADPCM_IMA_APM_ENCODER 0 ++%define CONFIG_ADPCM_IMA_QT_ENCODER 0 ++%define CONFIG_ADPCM_IMA_SSI_ENCODER 0 ++%define CONFIG_ADPCM_IMA_WAV_ENCODER 0 ++%define CONFIG_ADPCM_IMA_WS_ENCODER 0 ++%define CONFIG_ADPCM_MS_ENCODER 0 ++%define CONFIG_ADPCM_SWF_ENCODER 0 ++%define CONFIG_ADPCM_YAMAHA_ENCODER 0 ++%define CONFIG_SSA_ENCODER 0 ++%define CONFIG_ASS_ENCODER 0 ++%define CONFIG_DVBSUB_ENCODER 0 ++%define CONFIG_DVDSUB_ENCODER 0 ++%define CONFIG_MOVTEXT_ENCODER 0 ++%define CONFIG_SRT_ENCODER 0 ++%define CONFIG_SUBRIP_ENCODER 0 ++%define CONFIG_TEXT_ENCODER 0 ++%define CONFIG_TTML_ENCODER 0 ++%define CONFIG_WEBVTT_ENCODER 0 ++%define CONFIG_XSUB_ENCODER 0 ++%define CONFIG_AAC_AT_ENCODER 0 ++%define CONFIG_ALAC_AT_ENCODER 0 ++%define CONFIG_ILBC_AT_ENCODER 0 ++%define CONFIG_PCM_ALAW_AT_ENCODER 0 ++%define CONFIG_PCM_MULAW_AT_ENCODER 0 ++%define CONFIG_LIBAOM_AV1_ENCODER 0 ++%define CONFIG_LIBCODEC2_ENCODER 0 ++%define CONFIG_LIBFDK_AAC_ENCODER 0 ++%define CONFIG_LIBGSM_ENCODER 0 ++%define CONFIG_LIBGSM_MS_ENCODER 0 ++%define CONFIG_LIBILBC_ENCODER 0 ++%define CONFIG_LIBMP3LAME_ENCODER 0 ++%define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 ++%define CONFIG_LIBOPENJPEG_ENCODER 0 ++%define CONFIG_LIBOPUS_ENCODER 0 ++%define CONFIG_LIBRAV1E_ENCODER 0 ++%define CONFIG_LIBSHINE_ENCODER 0 ++%define CONFIG_LIBSPEEX_ENCODER 0 ++%define CONFIG_LIBSVTAV1_ENCODER 0 ++%define CONFIG_LIBTHEORA_ENCODER 0 ++%define CONFIG_LIBTWOLAME_ENCODER 0 ++%define CONFIG_LIBVO_AMRWBENC_ENCODER 0 ++%define CONFIG_LIBVORBIS_ENCODER 0 ++%define CONFIG_LIBVPX_VP8_ENCODER 0 ++%define CONFIG_LIBVPX_VP9_ENCODER 0 ++%define CONFIG_LIBWEBP_ANIM_ENCODER 0 ++%define CONFIG_LIBWEBP_ENCODER 0 ++%define CONFIG_LIBX262_ENCODER 0 ++%define CONFIG_LIBX264_ENCODER 0 ++%define CONFIG_LIBX264RGB_ENCODER 0 ++%define CONFIG_LIBX265_ENCODER 0 ++%define CONFIG_LIBXAVS_ENCODER 0 ++%define CONFIG_LIBXAVS2_ENCODER 0 ++%define CONFIG_LIBXVID_ENCODER 0 ++%define CONFIG_AAC_MF_ENCODER 0 ++%define CONFIG_AC3_MF_ENCODER 0 ++%define CONFIG_H263_V4L2M2M_ENCODER 0 ++%define CONFIG_LIBOPENH264_ENCODER 0 ++%define CONFIG_H264_AMF_ENCODER 0 ++%define CONFIG_H264_MF_ENCODER 0 ++%define CONFIG_H264_NVENC_ENCODER 0 ++%define CONFIG_H264_OMX_ENCODER 0 ++%define CONFIG_H264_QSV_ENCODER 0 ++%define CONFIG_H264_V4L2M2M_ENCODER 0 ++%define CONFIG_H264_VAAPI_ENCODER 0 ++%define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 ++%define CONFIG_HEVC_AMF_ENCODER 0 ++%define CONFIG_HEVC_MF_ENCODER 0 ++%define CONFIG_HEVC_NVENC_ENCODER 0 ++%define CONFIG_HEVC_QSV_ENCODER 0 ++%define CONFIG_HEVC_V4L2M2M_ENCODER 0 ++%define CONFIG_HEVC_VAAPI_ENCODER 0 ++%define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 ++%define CONFIG_LIBKVAZAAR_ENCODER 0 ++%define CONFIG_MJPEG_QSV_ENCODER 0 ++%define CONFIG_MJPEG_VAAPI_ENCODER 0 ++%define CONFIG_MP3_MF_ENCODER 0 ++%define CONFIG_MPEG2_QSV_ENCODER 0 ++%define CONFIG_MPEG2_VAAPI_ENCODER 0 ++%define CONFIG_MPEG4_OMX_ENCODER 0 ++%define CONFIG_MPEG4_V4L2M2M_ENCODER 0 ++%define CONFIG_VP8_V4L2M2M_ENCODER 0 ++%define CONFIG_VP8_VAAPI_ENCODER 0 ++%define CONFIG_VP9_VAAPI_ENCODER 0 ++%define CONFIG_VP9_QSV_ENCODER 0 ++%define CONFIG_AV1_D3D11VA_HWACCEL 0 ++%define CONFIG_AV1_D3D11VA2_HWACCEL 0 ++%define CONFIG_AV1_DXVA2_HWACCEL 0 ++%define CONFIG_AV1_NVDEC_HWACCEL 0 ++%define CONFIG_AV1_VAAPI_HWACCEL 0 ++%define CONFIG_H263_VAAPI_HWACCEL 0 ++%define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_H264_D3D11VA_HWACCEL 0 ++%define CONFIG_H264_D3D11VA2_HWACCEL 0 ++%define CONFIG_H264_DXVA2_HWACCEL 0 ++%define CONFIG_H264_NVDEC_HWACCEL 0 ++%define CONFIG_H264_VAAPI_HWACCEL 0 ++%define CONFIG_H264_VDPAU_HWACCEL 0 ++%define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_HEVC_D3D11VA_HWACCEL 0 ++%define CONFIG_HEVC_D3D11VA2_HWACCEL 0 ++%define CONFIG_HEVC_DXVA2_HWACCEL 0 ++%define CONFIG_HEVC_NVDEC_HWACCEL 0 ++%define CONFIG_HEVC_VAAPI_HWACCEL 0 ++%define CONFIG_HEVC_VDPAU_HWACCEL 0 ++%define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_MJPEG_NVDEC_HWACCEL 0 ++%define CONFIG_MJPEG_VAAPI_HWACCEL 0 ++%define CONFIG_MPEG1_NVDEC_HWACCEL 0 ++%define CONFIG_MPEG1_VDPAU_HWACCEL 0 ++%define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_MPEG1_XVMC_HWACCEL 0 ++%define CONFIG_MPEG2_D3D11VA_HWACCEL 0 ++%define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 ++%define CONFIG_MPEG2_NVDEC_HWACCEL 0 ++%define CONFIG_MPEG2_DXVA2_HWACCEL 0 ++%define CONFIG_MPEG2_VAAPI_HWACCEL 0 ++%define CONFIG_MPEG2_VDPAU_HWACCEL 0 ++%define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_MPEG2_XVMC_HWACCEL 0 ++%define CONFIG_MPEG4_NVDEC_HWACCEL 0 ++%define CONFIG_MPEG4_VAAPI_HWACCEL 0 ++%define CONFIG_MPEG4_VDPAU_HWACCEL 0 ++%define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_VC1_D3D11VA_HWACCEL 0 ++%define CONFIG_VC1_D3D11VA2_HWACCEL 0 ++%define CONFIG_VC1_DXVA2_HWACCEL 0 ++%define CONFIG_VC1_NVDEC_HWACCEL 0 ++%define CONFIG_VC1_VAAPI_HWACCEL 0 ++%define CONFIG_VC1_VDPAU_HWACCEL 0 ++%define CONFIG_VP8_NVDEC_HWACCEL 0 ++%define CONFIG_VP8_VAAPI_HWACCEL 0 ++%define CONFIG_VP9_D3D11VA_HWACCEL 0 ++%define CONFIG_VP9_D3D11VA2_HWACCEL 0 ++%define CONFIG_VP9_DXVA2_HWACCEL 0 ++%define CONFIG_VP9_NVDEC_HWACCEL 0 ++%define CONFIG_VP9_VAAPI_HWACCEL 0 ++%define CONFIG_VP9_VDPAU_HWACCEL 0 ++%define CONFIG_WMV3_D3D11VA_HWACCEL 0 ++%define CONFIG_WMV3_D3D11VA2_HWACCEL 0 ++%define CONFIG_WMV3_DXVA2_HWACCEL 0 ++%define CONFIG_WMV3_NVDEC_HWACCEL 0 ++%define CONFIG_WMV3_VAAPI_HWACCEL 0 ++%define CONFIG_WMV3_VDPAU_HWACCEL 0 ++%define CONFIG_AAC_PARSER 1 ++%define CONFIG_AAC_LATM_PARSER 0 ++%define CONFIG_AC3_PARSER 0 ++%define CONFIG_ADX_PARSER 0 ++%define CONFIG_AMR_PARSER 0 ++%define CONFIG_AV1_PARSER 0 ++%define CONFIG_AVS2_PARSER 0 ++%define CONFIG_AVS3_PARSER 0 ++%define CONFIG_BMP_PARSER 0 ++%define CONFIG_CAVSVIDEO_PARSER 0 ++%define CONFIG_COOK_PARSER 0 ++%define CONFIG_CRI_PARSER 0 ++%define CONFIG_DCA_PARSER 0 ++%define CONFIG_DIRAC_PARSER 0 ++%define CONFIG_DNXHD_PARSER 0 ++%define CONFIG_DOLBY_E_PARSER 0 ++%define CONFIG_DPX_PARSER 0 ++%define CONFIG_DVAUDIO_PARSER 0 ++%define CONFIG_DVBSUB_PARSER 0 ++%define CONFIG_DVDSUB_PARSER 0 ++%define CONFIG_DVD_NAV_PARSER 0 ++%define CONFIG_FLAC_PARSER 1 ++%define CONFIG_G723_1_PARSER 0 ++%define CONFIG_G729_PARSER 0 ++%define CONFIG_GIF_PARSER 0 ++%define CONFIG_GSM_PARSER 0 ++%define CONFIG_H261_PARSER 0 ++%define CONFIG_H263_PARSER 0 ++%define CONFIG_H264_PARSER 1 ++%define CONFIG_HEVC_PARSER 0 ++%define CONFIG_IPU_PARSER 0 ++%define CONFIG_JPEG2000_PARSER 0 ++%define CONFIG_MJPEG_PARSER 0 ++%define CONFIG_MLP_PARSER 0 ++%define CONFIG_MPEG4VIDEO_PARSER 0 ++%define CONFIG_MPEGAUDIO_PARSER 1 ++%define CONFIG_MPEGVIDEO_PARSER 0 ++%define CONFIG_OPUS_PARSER 1 ++%define CONFIG_PNG_PARSER 0 ++%define CONFIG_PNM_PARSER 0 ++%define CONFIG_RV30_PARSER 0 ++%define CONFIG_RV40_PARSER 0 ++%define CONFIG_SBC_PARSER 0 ++%define CONFIG_SIPR_PARSER 0 ++%define CONFIG_TAK_PARSER 0 ++%define CONFIG_VC1_PARSER 0 ++%define CONFIG_VORBIS_PARSER 1 ++%define CONFIG_VP3_PARSER 1 ++%define CONFIG_VP8_PARSER 1 ++%define CONFIG_VP9_PARSER 1 ++%define CONFIG_WEBP_PARSER 0 ++%define CONFIG_XBM_PARSER 0 ++%define CONFIG_XMA_PARSER 0 ++%define CONFIG_ALSA_INDEV 0 ++%define CONFIG_ANDROID_CAMERA_INDEV 0 ++%define CONFIG_AVFOUNDATION_INDEV 0 ++%define CONFIG_BKTR_INDEV 0 ++%define CONFIG_DECKLINK_INDEV 0 ++%define CONFIG_DSHOW_INDEV 0 ++%define CONFIG_FBDEV_INDEV 0 ++%define CONFIG_GDIGRAB_INDEV 0 ++%define CONFIG_IEC61883_INDEV 0 ++%define CONFIG_JACK_INDEV 0 ++%define CONFIG_KMSGRAB_INDEV 0 ++%define CONFIG_LAVFI_INDEV 0 ++%define CONFIG_OPENAL_INDEV 0 ++%define CONFIG_OSS_INDEV 0 ++%define CONFIG_PULSE_INDEV 0 ++%define CONFIG_SNDIO_INDEV 0 ++%define CONFIG_V4L2_INDEV 0 ++%define CONFIG_VFWCAP_INDEV 0 ++%define CONFIG_XCBGRAB_INDEV 0 ++%define CONFIG_LIBCDIO_INDEV 0 ++%define CONFIG_LIBDC1394_INDEV 0 ++%define CONFIG_ALSA_OUTDEV 0 ++%define CONFIG_AUDIOTOOLBOX_OUTDEV 0 ++%define CONFIG_CACA_OUTDEV 0 ++%define CONFIG_DECKLINK_OUTDEV 0 ++%define CONFIG_FBDEV_OUTDEV 0 ++%define CONFIG_OPENGL_OUTDEV 0 ++%define CONFIG_OSS_OUTDEV 0 ++%define CONFIG_PULSE_OUTDEV 0 ++%define CONFIG_SDL2_OUTDEV 0 ++%define CONFIG_SNDIO_OUTDEV 0 ++%define CONFIG_V4L2_OUTDEV 0 ++%define CONFIG_XV_OUTDEV 0 ++%define CONFIG_ABENCH_FILTER 0 ++%define CONFIG_ACOMPRESSOR_FILTER 0 ++%define CONFIG_ACONTRAST_FILTER 0 ++%define CONFIG_ACOPY_FILTER 0 ++%define CONFIG_ACUE_FILTER 0 ++%define CONFIG_ACROSSFADE_FILTER 0 ++%define CONFIG_ACROSSOVER_FILTER 0 ++%define CONFIG_ACRUSHER_FILTER 0 ++%define CONFIG_ADECLICK_FILTER 0 ++%define CONFIG_ADECLIP_FILTER 0 ++%define CONFIG_ADECORRELATE_FILTER 0 ++%define CONFIG_ADELAY_FILTER 0 ++%define CONFIG_ADENORM_FILTER 0 ++%define CONFIG_ADERIVATIVE_FILTER 0 ++%define CONFIG_AECHO_FILTER 0 ++%define CONFIG_AEMPHASIS_FILTER 0 ++%define CONFIG_AEVAL_FILTER 0 ++%define CONFIG_AEXCITER_FILTER 0 ++%define CONFIG_AFADE_FILTER 0 ++%define CONFIG_AFFTDN_FILTER 0 ++%define CONFIG_AFFTFILT_FILTER 0 ++%define CONFIG_AFIR_FILTER 0 ++%define CONFIG_AFORMAT_FILTER 0 ++%define CONFIG_AFREQSHIFT_FILTER 0 ++%define CONFIG_AFWTDN_FILTER 0 ++%define CONFIG_AGATE_FILTER 0 ++%define CONFIG_AIIR_FILTER 0 ++%define CONFIG_AINTEGRAL_FILTER 0 ++%define CONFIG_AINTERLEAVE_FILTER 0 ++%define CONFIG_ALATENCY_FILTER 0 ++%define CONFIG_ALIMITER_FILTER 0 ++%define CONFIG_ALLPASS_FILTER 0 ++%define CONFIG_ALOOP_FILTER 0 ++%define CONFIG_AMERGE_FILTER 0 ++%define CONFIG_AMETADATA_FILTER 0 ++%define CONFIG_AMIX_FILTER 0 ++%define CONFIG_AMULTIPLY_FILTER 0 ++%define CONFIG_ANEQUALIZER_FILTER 0 ++%define CONFIG_ANLMDN_FILTER 0 ++%define CONFIG_ANLMS_FILTER 0 ++%define CONFIG_ANULL_FILTER 0 ++%define CONFIG_APAD_FILTER 0 ++%define CONFIG_APERMS_FILTER 0 ++%define CONFIG_APHASER_FILTER 0 ++%define CONFIG_APHASESHIFT_FILTER 0 ++%define CONFIG_APSYCLIP_FILTER 0 ++%define CONFIG_APULSATOR_FILTER 0 ++%define CONFIG_AREALTIME_FILTER 0 ++%define CONFIG_ARESAMPLE_FILTER 0 ++%define CONFIG_AREVERSE_FILTER 0 ++%define CONFIG_ARNNDN_FILTER 0 ++%define CONFIG_ASDR_FILTER 0 ++%define CONFIG_ASEGMENT_FILTER 0 ++%define CONFIG_ASELECT_FILTER 0 ++%define CONFIG_ASENDCMD_FILTER 0 ++%define CONFIG_ASETNSAMPLES_FILTER 0 ++%define CONFIG_ASETPTS_FILTER 0 ++%define CONFIG_ASETRATE_FILTER 0 ++%define CONFIG_ASETTB_FILTER 0 ++%define CONFIG_ASHOWINFO_FILTER 0 ++%define CONFIG_ASIDEDATA_FILTER 0 ++%define CONFIG_ASOFTCLIP_FILTER 0 ++%define CONFIG_ASPLIT_FILTER 0 ++%define CONFIG_ASR_FILTER 0 ++%define CONFIG_ASTATS_FILTER 0 ++%define CONFIG_ASTREAMSELECT_FILTER 0 ++%define CONFIG_ASUBBOOST_FILTER 0 ++%define CONFIG_ASUBCUT_FILTER 0 ++%define CONFIG_ASUPERCUT_FILTER 0 ++%define CONFIG_ASUPERPASS_FILTER 0 ++%define CONFIG_ASUPERSTOP_FILTER 0 ++%define CONFIG_ATEMPO_FILTER 0 ++%define CONFIG_ATILT_FILTER 0 ++%define CONFIG_ATRIM_FILTER 0 ++%define CONFIG_AXCORRELATE_FILTER 0 ++%define CONFIG_AZMQ_FILTER 0 ++%define CONFIG_BANDPASS_FILTER 0 ++%define CONFIG_BANDREJECT_FILTER 0 ++%define CONFIG_BASS_FILTER 0 ++%define CONFIG_BIQUAD_FILTER 0 ++%define CONFIG_BS2B_FILTER 0 ++%define CONFIG_CHROMABER_VULKAN_FILTER 0 ++%define CONFIG_CHANNELMAP_FILTER 0 ++%define CONFIG_CHANNELSPLIT_FILTER 0 ++%define CONFIG_CHORUS_FILTER 0 ++%define CONFIG_COMPAND_FILTER 0 ++%define CONFIG_COMPENSATIONDELAY_FILTER 0 ++%define CONFIG_CROSSFEED_FILTER 0 ++%define CONFIG_CRYSTALIZER_FILTER 0 ++%define CONFIG_DCSHIFT_FILTER 0 ++%define CONFIG_DEESSER_FILTER 0 ++%define CONFIG_DRMETER_FILTER 0 ++%define CONFIG_DYNAUDNORM_FILTER 0 ++%define CONFIG_EARWAX_FILTER 0 ++%define CONFIG_EBUR128_FILTER 0 ++%define CONFIG_EQUALIZER_FILTER 0 ++%define CONFIG_EXTRASTEREO_FILTER 0 ++%define CONFIG_FIREQUALIZER_FILTER 0 ++%define CONFIG_FLANGER_FILTER 0 ++%define CONFIG_HAAS_FILTER 0 ++%define CONFIG_HDCD_FILTER 0 ++%define CONFIG_HEADPHONE_FILTER 0 ++%define CONFIG_HIGHPASS_FILTER 0 ++%define CONFIG_HIGHSHELF_FILTER 0 ++%define CONFIG_JOIN_FILTER 0 ++%define CONFIG_LADSPA_FILTER 0 ++%define CONFIG_LOUDNORM_FILTER 0 ++%define CONFIG_LOWPASS_FILTER 0 ++%define CONFIG_LOWSHELF_FILTER 0 ++%define CONFIG_LV2_FILTER 0 ++%define CONFIG_MCOMPAND_FILTER 0 ++%define CONFIG_PAN_FILTER 0 ++%define CONFIG_REPLAYGAIN_FILTER 0 ++%define CONFIG_RUBBERBAND_FILTER 0 ++%define CONFIG_SIDECHAINCOMPRESS_FILTER 0 ++%define CONFIG_SIDECHAINGATE_FILTER 0 ++%define CONFIG_SILENCEDETECT_FILTER 0 ++%define CONFIG_SILENCEREMOVE_FILTER 0 ++%define CONFIG_SOFALIZER_FILTER 0 ++%define CONFIG_SPEECHNORM_FILTER 0 ++%define CONFIG_STEREOTOOLS_FILTER 0 ++%define CONFIG_STEREOWIDEN_FILTER 0 ++%define CONFIG_SUPEREQUALIZER_FILTER 0 ++%define CONFIG_SURROUND_FILTER 0 ++%define CONFIG_TREBLE_FILTER 0 ++%define CONFIG_TREMOLO_FILTER 0 ++%define CONFIG_VIBRATO_FILTER 0 ++%define CONFIG_VOLUME_FILTER 0 ++%define CONFIG_VOLUMEDETECT_FILTER 0 ++%define CONFIG_AEVALSRC_FILTER 0 ++%define CONFIG_AFIRSRC_FILTER 0 ++%define CONFIG_ANOISESRC_FILTER 0 ++%define CONFIG_ANULLSRC_FILTER 0 ++%define CONFIG_FLITE_FILTER 0 ++%define CONFIG_HILBERT_FILTER 0 ++%define CONFIG_SINC_FILTER 0 ++%define CONFIG_SINE_FILTER 0 ++%define CONFIG_ANULLSINK_FILTER 0 ++%define CONFIG_ADDROI_FILTER 0 ++%define CONFIG_ALPHAEXTRACT_FILTER 0 ++%define CONFIG_ALPHAMERGE_FILTER 0 ++%define CONFIG_AMPLIFY_FILTER 0 ++%define CONFIG_ASS_FILTER 0 ++%define CONFIG_ATADENOISE_FILTER 0 ++%define CONFIG_AVGBLUR_FILTER 0 ++%define CONFIG_AVGBLUR_OPENCL_FILTER 0 ++%define CONFIG_AVGBLUR_VULKAN_FILTER 0 ++%define CONFIG_BBOX_FILTER 0 ++%define CONFIG_BENCH_FILTER 0 ++%define CONFIG_BILATERAL_FILTER 0 ++%define CONFIG_BITPLANENOISE_FILTER 0 ++%define CONFIG_BLACKDETECT_FILTER 0 ++%define CONFIG_BLACKFRAME_FILTER 0 ++%define CONFIG_BLEND_FILTER 0 ++%define CONFIG_BM3D_FILTER 0 ++%define CONFIG_BOXBLUR_FILTER 0 ++%define CONFIG_BOXBLUR_OPENCL_FILTER 0 ++%define CONFIG_BWDIF_FILTER 0 ++%define CONFIG_CAS_FILTER 0 ++%define CONFIG_CHROMAHOLD_FILTER 0 ++%define CONFIG_CHROMAKEY_FILTER 0 ++%define CONFIG_CHROMANR_FILTER 0 ++%define CONFIG_CHROMASHIFT_FILTER 0 ++%define CONFIG_CIESCOPE_FILTER 0 ++%define CONFIG_CODECVIEW_FILTER 0 ++%define CONFIG_COLORBALANCE_FILTER 0 ++%define CONFIG_COLORCHANNELMIXER_FILTER 0 ++%define CONFIG_COLORCONTRAST_FILTER 0 ++%define CONFIG_COLORCORRECT_FILTER 0 ++%define CONFIG_COLORIZE_FILTER 0 ++%define CONFIG_COLORKEY_FILTER 0 ++%define CONFIG_COLORKEY_OPENCL_FILTER 0 ++%define CONFIG_COLORHOLD_FILTER 0 ++%define CONFIG_COLORLEVELS_FILTER 0 ++%define CONFIG_COLORMATRIX_FILTER 0 ++%define CONFIG_COLORSPACE_FILTER 0 ++%define CONFIG_COLORTEMPERATURE_FILTER 0 ++%define CONFIG_CONVOLUTION_FILTER 0 ++%define CONFIG_CONVOLUTION_OPENCL_FILTER 0 ++%define CONFIG_CONVOLVE_FILTER 0 ++%define CONFIG_COPY_FILTER 0 ++%define CONFIG_COREIMAGE_FILTER 0 ++%define CONFIG_COVER_RECT_FILTER 0 ++%define CONFIG_CROP_FILTER 0 ++%define CONFIG_CROPDETECT_FILTER 0 ++%define CONFIG_CUE_FILTER 0 ++%define CONFIG_CURVES_FILTER 0 ++%define CONFIG_DATASCOPE_FILTER 0 ++%define CONFIG_DBLUR_FILTER 0 ++%define CONFIG_DCTDNOIZ_FILTER 0 ++%define CONFIG_DEBAND_FILTER 0 ++%define CONFIG_DEBLOCK_FILTER 0 ++%define CONFIG_DECIMATE_FILTER 0 ++%define CONFIG_DECONVOLVE_FILTER 0 ++%define CONFIG_DEDOT_FILTER 0 ++%define CONFIG_DEFLATE_FILTER 0 ++%define CONFIG_DEFLICKER_FILTER 0 ++%define CONFIG_DEINTERLACE_QSV_FILTER 0 ++%define CONFIG_DEINTERLACE_VAAPI_FILTER 0 ++%define CONFIG_DEJUDDER_FILTER 0 ++%define CONFIG_DELOGO_FILTER 0 ++%define CONFIG_DENOISE_VAAPI_FILTER 0 ++%define CONFIG_DERAIN_FILTER 0 ++%define CONFIG_DESHAKE_FILTER 0 ++%define CONFIG_DESHAKE_OPENCL_FILTER 0 ++%define CONFIG_DESPILL_FILTER 0 ++%define CONFIG_DETELECINE_FILTER 0 ++%define CONFIG_DILATION_FILTER 0 ++%define CONFIG_DILATION_OPENCL_FILTER 0 ++%define CONFIG_DISPLACE_FILTER 0 ++%define CONFIG_DNN_CLASSIFY_FILTER 0 ++%define CONFIG_DNN_DETECT_FILTER 0 ++%define CONFIG_DNN_PROCESSING_FILTER 0 ++%define CONFIG_DOUBLEWEAVE_FILTER 0 ++%define CONFIG_DRAWBOX_FILTER 0 ++%define CONFIG_DRAWGRAPH_FILTER 0 ++%define CONFIG_DRAWGRID_FILTER 0 ++%define CONFIG_DRAWTEXT_FILTER 0 ++%define CONFIG_EDGEDETECT_FILTER 0 ++%define CONFIG_ELBG_FILTER 0 ++%define CONFIG_ENTROPY_FILTER 0 ++%define CONFIG_EPX_FILTER 0 ++%define CONFIG_EQ_FILTER 0 ++%define CONFIG_EROSION_FILTER 0 ++%define CONFIG_EROSION_OPENCL_FILTER 0 ++%define CONFIG_ESTDIF_FILTER 0 ++%define CONFIG_EXPOSURE_FILTER 0 ++%define CONFIG_EXTRACTPLANES_FILTER 0 ++%define CONFIG_FADE_FILTER 0 ++%define CONFIG_FFTDNOIZ_FILTER 0 ++%define CONFIG_FFTFILT_FILTER 0 ++%define CONFIG_FIELD_FILTER 0 ++%define CONFIG_FIELDHINT_FILTER 0 ++%define CONFIG_FIELDMATCH_FILTER 0 ++%define CONFIG_FIELDORDER_FILTER 0 ++%define CONFIG_FILLBORDERS_FILTER 0 ++%define CONFIG_FIND_RECT_FILTER 0 ++%define CONFIG_FLOODFILL_FILTER 0 ++%define CONFIG_FORMAT_FILTER 0 ++%define CONFIG_FPS_FILTER 0 ++%define CONFIG_FRAMEPACK_FILTER 0 ++%define CONFIG_FRAMERATE_FILTER 0 ++%define CONFIG_FRAMESTEP_FILTER 0 ++%define CONFIG_FREEZEDETECT_FILTER 0 ++%define CONFIG_FREEZEFRAMES_FILTER 0 ++%define CONFIG_FREI0R_FILTER 0 ++%define CONFIG_FSPP_FILTER 0 ++%define CONFIG_GBLUR_FILTER 0 ++%define CONFIG_GEQ_FILTER 0 ++%define CONFIG_GRADFUN_FILTER 0 ++%define CONFIG_GRAPHMONITOR_FILTER 0 ++%define CONFIG_GRAYWORLD_FILTER 0 ++%define CONFIG_GREYEDGE_FILTER 0 ++%define CONFIG_GUIDED_FILTER 0 ++%define CONFIG_HALDCLUT_FILTER 0 ++%define CONFIG_HFLIP_FILTER 0 ++%define CONFIG_HISTEQ_FILTER 0 ++%define CONFIG_HISTOGRAM_FILTER 0 ++%define CONFIG_HQDN3D_FILTER 0 ++%define CONFIG_HQX_FILTER 0 ++%define CONFIG_HSTACK_FILTER 0 ++%define CONFIG_HSVHOLD_FILTER 0 ++%define CONFIG_HSVKEY_FILTER 0 ++%define CONFIG_HUE_FILTER 0 ++%define CONFIG_HUESATURATION_FILTER 0 ++%define CONFIG_HWDOWNLOAD_FILTER 0 ++%define CONFIG_HWMAP_FILTER 0 ++%define CONFIG_HWUPLOAD_FILTER 0 ++%define CONFIG_HWUPLOAD_CUDA_FILTER 0 ++%define CONFIG_HYSTERESIS_FILTER 0 ++%define CONFIG_IDENTITY_FILTER 0 ++%define CONFIG_IDET_FILTER 0 ++%define CONFIG_IL_FILTER 0 ++%define CONFIG_INFLATE_FILTER 0 ++%define CONFIG_INTERLACE_FILTER 0 ++%define CONFIG_INTERLEAVE_FILTER 0 ++%define CONFIG_KERNDEINT_FILTER 0 ++%define CONFIG_KIRSCH_FILTER 0 ++%define CONFIG_LAGFUN_FILTER 0 ++%define CONFIG_LATENCY_FILTER 0 ++%define CONFIG_LENSCORRECTION_FILTER 0 ++%define CONFIG_LENSFUN_FILTER 0 ++%define CONFIG_LIBVMAF_FILTER 0 ++%define CONFIG_LIMITDIFF_FILTER 0 ++%define CONFIG_LIMITER_FILTER 0 ++%define CONFIG_LOOP_FILTER 0 ++%define CONFIG_LUMAKEY_FILTER 0 ++%define CONFIG_LUT_FILTER 0 ++%define CONFIG_LUT1D_FILTER 0 ++%define CONFIG_LUT2_FILTER 0 ++%define CONFIG_LUT3D_FILTER 0 ++%define CONFIG_LUTRGB_FILTER 0 ++%define CONFIG_LUTYUV_FILTER 0 ++%define CONFIG_MASKEDCLAMP_FILTER 0 ++%define CONFIG_MASKEDMAX_FILTER 0 ++%define CONFIG_MASKEDMERGE_FILTER 0 ++%define CONFIG_MASKEDMIN_FILTER 0 ++%define CONFIG_MASKEDTHRESHOLD_FILTER 0 ++%define CONFIG_MASKFUN_FILTER 0 ++%define CONFIG_MCDEINT_FILTER 0 ++%define CONFIG_MEDIAN_FILTER 0 ++%define CONFIG_MERGEPLANES_FILTER 0 ++%define CONFIG_MESTIMATE_FILTER 0 ++%define CONFIG_METADATA_FILTER 0 ++%define CONFIG_MIDEQUALIZER_FILTER 0 ++%define CONFIG_MINTERPOLATE_FILTER 0 ++%define CONFIG_MIX_FILTER 0 ++%define CONFIG_MONOCHROME_FILTER 0 ++%define CONFIG_MORPHO_FILTER 0 ++%define CONFIG_MPDECIMATE_FILTER 0 ++%define CONFIG_MSAD_FILTER 0 ++%define CONFIG_NEGATE_FILTER 0 ++%define CONFIG_NLMEANS_FILTER 0 ++%define CONFIG_NLMEANS_OPENCL_FILTER 0 ++%define CONFIG_NNEDI_FILTER 0 ++%define CONFIG_NOFORMAT_FILTER 0 ++%define CONFIG_NOISE_FILTER 0 ++%define CONFIG_NORMALIZE_FILTER 0 ++%define CONFIG_NULL_FILTER 0 ++%define CONFIG_OCR_FILTER 0 ++%define CONFIG_OCV_FILTER 0 ++%define CONFIG_OSCILLOSCOPE_FILTER 0 ++%define CONFIG_OVERLAY_FILTER 0 ++%define CONFIG_OVERLAY_OPENCL_FILTER 0 ++%define CONFIG_OVERLAY_QSV_FILTER 0 ++%define CONFIG_OVERLAY_VULKAN_FILTER 0 ++%define CONFIG_OVERLAY_CUDA_FILTER 0 ++%define CONFIG_OWDENOISE_FILTER 0 ++%define CONFIG_PAD_FILTER 0 ++%define CONFIG_PAD_OPENCL_FILTER 0 ++%define CONFIG_PALETTEGEN_FILTER 0 ++%define CONFIG_PALETTEUSE_FILTER 0 ++%define CONFIG_PERMS_FILTER 0 ++%define CONFIG_PERSPECTIVE_FILTER 0 ++%define CONFIG_PHASE_FILTER 0 ++%define CONFIG_PHOTOSENSITIVITY_FILTER 0 ++%define CONFIG_PIXDESCTEST_FILTER 0 ++%define CONFIG_PIXSCOPE_FILTER 0 ++%define CONFIG_PP_FILTER 0 ++%define CONFIG_PP7_FILTER 0 ++%define CONFIG_PREMULTIPLY_FILTER 0 ++%define CONFIG_PREWITT_FILTER 0 ++%define CONFIG_PREWITT_OPENCL_FILTER 0 ++%define CONFIG_PROCAMP_VAAPI_FILTER 0 ++%define CONFIG_PROGRAM_OPENCL_FILTER 0 ++%define CONFIG_PSEUDOCOLOR_FILTER 0 ++%define CONFIG_PSNR_FILTER 0 ++%define CONFIG_PULLUP_FILTER 0 ++%define CONFIG_QP_FILTER 0 ++%define CONFIG_RANDOM_FILTER 0 ++%define CONFIG_READEIA608_FILTER 0 ++%define CONFIG_READVITC_FILTER 0 ++%define CONFIG_REALTIME_FILTER 0 ++%define CONFIG_REMAP_FILTER 0 ++%define CONFIG_REMOVEGRAIN_FILTER 0 ++%define CONFIG_REMOVELOGO_FILTER 0 ++%define CONFIG_REPEATFIELDS_FILTER 0 ++%define CONFIG_REVERSE_FILTER 0 ++%define CONFIG_RGBASHIFT_FILTER 0 ++%define CONFIG_ROBERTS_FILTER 0 ++%define CONFIG_ROBERTS_OPENCL_FILTER 0 ++%define CONFIG_ROTATE_FILTER 0 ++%define CONFIG_SAB_FILTER 0 ++%define CONFIG_SCALE_FILTER 0 ++%define CONFIG_SCALE_CUDA_FILTER 0 ++%define CONFIG_SCALE_NPP_FILTER 0 ++%define CONFIG_SCALE_QSV_FILTER 0 ++%define CONFIG_SCALE_VAAPI_FILTER 0 ++%define CONFIG_SCALE_VULKAN_FILTER 0 ++%define CONFIG_SCALE2REF_FILTER 0 ++%define CONFIG_SCALE2REF_NPP_FILTER 0 ++%define CONFIG_SCDET_FILTER 0 ++%define CONFIG_SCHARR_FILTER 0 ++%define CONFIG_SCROLL_FILTER 0 ++%define CONFIG_SEGMENT_FILTER 0 ++%define CONFIG_SELECT_FILTER 0 ++%define CONFIG_SELECTIVECOLOR_FILTER 0 ++%define CONFIG_SENDCMD_FILTER 0 ++%define CONFIG_SEPARATEFIELDS_FILTER 0 ++%define CONFIG_SETDAR_FILTER 0 ++%define CONFIG_SETFIELD_FILTER 0 ++%define CONFIG_SETPARAMS_FILTER 0 ++%define CONFIG_SETPTS_FILTER 0 ++%define CONFIG_SETRANGE_FILTER 0 ++%define CONFIG_SETSAR_FILTER 0 ++%define CONFIG_SETTB_FILTER 0 ++%define CONFIG_SHARPEN_NPP_FILTER 0 ++%define CONFIG_SHARPNESS_VAAPI_FILTER 0 ++%define CONFIG_SHEAR_FILTER 0 ++%define CONFIG_SHOWINFO_FILTER 0 ++%define CONFIG_SHOWPALETTE_FILTER 0 ++%define CONFIG_SHUFFLEFRAMES_FILTER 0 ++%define CONFIG_SHUFFLEPIXELS_FILTER 0 ++%define CONFIG_SHUFFLEPLANES_FILTER 0 ++%define CONFIG_SIDEDATA_FILTER 0 ++%define CONFIG_SIGNALSTATS_FILTER 0 ++%define CONFIG_SIGNATURE_FILTER 0 ++%define CONFIG_SMARTBLUR_FILTER 0 ++%define CONFIG_SOBEL_FILTER 0 ++%define CONFIG_SOBEL_OPENCL_FILTER 0 ++%define CONFIG_SPLIT_FILTER 0 ++%define CONFIG_SPP_FILTER 0 ++%define CONFIG_SR_FILTER 0 ++%define CONFIG_SSIM_FILTER 0 ++%define CONFIG_STEREO3D_FILTER 0 ++%define CONFIG_STREAMSELECT_FILTER 0 ++%define CONFIG_SUBTITLES_FILTER 0 ++%define CONFIG_SUPER2XSAI_FILTER 0 ++%define CONFIG_SWAPRECT_FILTER 0 ++%define CONFIG_SWAPUV_FILTER 0 ++%define CONFIG_TBLEND_FILTER 0 ++%define CONFIG_TELECINE_FILTER 0 ++%define CONFIG_THISTOGRAM_FILTER 0 ++%define CONFIG_THRESHOLD_FILTER 0 ++%define CONFIG_THUMBNAIL_FILTER 0 ++%define CONFIG_THUMBNAIL_CUDA_FILTER 0 ++%define CONFIG_TILE_FILTER 0 ++%define CONFIG_TINTERLACE_FILTER 0 ++%define CONFIG_TLUT2_FILTER 0 ++%define CONFIG_TMEDIAN_FILTER 0 ++%define CONFIG_TMIDEQUALIZER_FILTER 0 ++%define CONFIG_TMIX_FILTER 0 ++%define CONFIG_TONEMAP_FILTER 0 ++%define CONFIG_TONEMAP_OPENCL_FILTER 0 ++%define CONFIG_TONEMAP_VAAPI_FILTER 0 ++%define CONFIG_TPAD_FILTER 0 ++%define CONFIG_TRANSPOSE_FILTER 0 ++%define CONFIG_TRANSPOSE_NPP_FILTER 0 ++%define CONFIG_TRANSPOSE_OPENCL_FILTER 0 ++%define CONFIG_TRANSPOSE_VAAPI_FILTER 0 ++%define CONFIG_TRIM_FILTER 0 ++%define CONFIG_UNPREMULTIPLY_FILTER 0 ++%define CONFIG_UNSHARP_FILTER 0 ++%define CONFIG_UNSHARP_OPENCL_FILTER 0 ++%define CONFIG_UNTILE_FILTER 0 ++%define CONFIG_USPP_FILTER 0 ++%define CONFIG_V360_FILTER 0 ++%define CONFIG_VAGUEDENOISER_FILTER 0 ++%define CONFIG_VARBLUR_FILTER 0 ++%define CONFIG_VECTORSCOPE_FILTER 0 ++%define CONFIG_VFLIP_FILTER 0 ++%define CONFIG_VFRDET_FILTER 0 ++%define CONFIG_VIBRANCE_FILTER 0 ++%define CONFIG_VIDSTABDETECT_FILTER 0 ++%define CONFIG_VIDSTABTRANSFORM_FILTER 0 ++%define CONFIG_VIF_FILTER 0 ++%define CONFIG_VIGNETTE_FILTER 0 ++%define CONFIG_VMAFMOTION_FILTER 0 ++%define CONFIG_VPP_QSV_FILTER 0 ++%define CONFIG_VSTACK_FILTER 0 ++%define CONFIG_W3FDIF_FILTER 0 ++%define CONFIG_WAVEFORM_FILTER 0 ++%define CONFIG_WEAVE_FILTER 0 ++%define CONFIG_XBR_FILTER 0 ++%define CONFIG_XCORRELATE_FILTER 0 ++%define CONFIG_XFADE_FILTER 0 ++%define CONFIG_XFADE_OPENCL_FILTER 0 ++%define CONFIG_XMEDIAN_FILTER 0 ++%define CONFIG_XSTACK_FILTER 0 ++%define CONFIG_YADIF_FILTER 0 ++%define CONFIG_YADIF_CUDA_FILTER 0 ++%define CONFIG_YAEPBLUR_FILTER 0 ++%define CONFIG_ZMQ_FILTER 0 ++%define CONFIG_ZOOMPAN_FILTER 0 ++%define CONFIG_ZSCALE_FILTER 0 ++%define CONFIG_ALLRGB_FILTER 0 ++%define CONFIG_ALLYUV_FILTER 0 ++%define CONFIG_CELLAUTO_FILTER 0 ++%define CONFIG_COLOR_FILTER 0 ++%define CONFIG_COREIMAGESRC_FILTER 0 ++%define CONFIG_FREI0R_SRC_FILTER 0 ++%define CONFIG_GRADIENTS_FILTER 0 ++%define CONFIG_HALDCLUTSRC_FILTER 0 ++%define CONFIG_LIFE_FILTER 0 ++%define CONFIG_MANDELBROT_FILTER 0 ++%define CONFIG_MPTESTSRC_FILTER 0 ++%define CONFIG_NULLSRC_FILTER 0 ++%define CONFIG_OPENCLSRC_FILTER 0 ++%define CONFIG_PAL75BARS_FILTER 0 ++%define CONFIG_PAL100BARS_FILTER 0 ++%define CONFIG_RGBTESTSRC_FILTER 0 ++%define CONFIG_SIERPINSKI_FILTER 0 ++%define CONFIG_SMPTEBARS_FILTER 0 ++%define CONFIG_SMPTEHDBARS_FILTER 0 ++%define CONFIG_TESTSRC_FILTER 0 ++%define CONFIG_TESTSRC2_FILTER 0 ++%define CONFIG_YUVTESTSRC_FILTER 0 ++%define CONFIG_NULLSINK_FILTER 0 ++%define CONFIG_ABITSCOPE_FILTER 0 ++%define CONFIG_ADRAWGRAPH_FILTER 0 ++%define CONFIG_AGRAPHMONITOR_FILTER 0 ++%define CONFIG_AHISTOGRAM_FILTER 0 ++%define CONFIG_APHASEMETER_FILTER 0 ++%define CONFIG_AVECTORSCOPE_FILTER 0 ++%define CONFIG_CONCAT_FILTER 0 ++%define CONFIG_SHOWCQT_FILTER 0 ++%define CONFIG_SHOWFREQS_FILTER 0 ++%define CONFIG_SHOWSPATIAL_FILTER 0 ++%define CONFIG_SHOWSPECTRUM_FILTER 0 ++%define CONFIG_SHOWSPECTRUMPIC_FILTER 0 ++%define CONFIG_SHOWVOLUME_FILTER 0 ++%define CONFIG_SHOWWAVES_FILTER 0 ++%define CONFIG_SHOWWAVESPIC_FILTER 0 ++%define CONFIG_SPECTRUMSYNTH_FILTER 0 ++%define CONFIG_AMOVIE_FILTER 0 ++%define CONFIG_MOVIE_FILTER 0 ++%define CONFIG_AFIFO_FILTER 0 ++%define CONFIG_FIFO_FILTER 0 ++%define CONFIG_AA_DEMUXER 0 ++%define CONFIG_AAC_DEMUXER 1 ++%define CONFIG_AAX_DEMUXER 0 ++%define CONFIG_AC3_DEMUXER 0 ++%define CONFIG_ACE_DEMUXER 0 ++%define CONFIG_ACM_DEMUXER 0 ++%define CONFIG_ACT_DEMUXER 0 ++%define CONFIG_ADF_DEMUXER 0 ++%define CONFIG_ADP_DEMUXER 0 ++%define CONFIG_ADS_DEMUXER 0 ++%define CONFIG_ADX_DEMUXER 0 ++%define CONFIG_AEA_DEMUXER 0 ++%define CONFIG_AFC_DEMUXER 0 ++%define CONFIG_AIFF_DEMUXER 0 ++%define CONFIG_AIX_DEMUXER 0 ++%define CONFIG_ALP_DEMUXER 0 ++%define CONFIG_AMR_DEMUXER 0 ++%define CONFIG_AMRNB_DEMUXER 0 ++%define CONFIG_AMRWB_DEMUXER 0 ++%define CONFIG_ANM_DEMUXER 0 ++%define CONFIG_APC_DEMUXER 0 ++%define CONFIG_APE_DEMUXER 0 ++%define CONFIG_APM_DEMUXER 0 ++%define CONFIG_APNG_DEMUXER 0 ++%define CONFIG_APTX_DEMUXER 0 ++%define CONFIG_APTX_HD_DEMUXER 0 ++%define CONFIG_AQTITLE_DEMUXER 0 ++%define CONFIG_ARGO_ASF_DEMUXER 0 ++%define CONFIG_ARGO_BRP_DEMUXER 0 ++%define CONFIG_ARGO_CVG_DEMUXER 0 ++%define CONFIG_ASF_DEMUXER 0 ++%define CONFIG_ASF_O_DEMUXER 0 ++%define CONFIG_ASS_DEMUXER 0 ++%define CONFIG_AST_DEMUXER 0 ++%define CONFIG_AU_DEMUXER 0 ++%define CONFIG_AV1_DEMUXER 0 ++%define CONFIG_AVI_DEMUXER 0 ++%define CONFIG_AVISYNTH_DEMUXER 0 ++%define CONFIG_AVR_DEMUXER 0 ++%define CONFIG_AVS_DEMUXER 0 ++%define CONFIG_AVS2_DEMUXER 0 ++%define CONFIG_AVS3_DEMUXER 0 ++%define CONFIG_BETHSOFTVID_DEMUXER 0 ++%define CONFIG_BFI_DEMUXER 0 ++%define CONFIG_BINTEXT_DEMUXER 0 ++%define CONFIG_BINK_DEMUXER 0 ++%define CONFIG_BINKA_DEMUXER 0 ++%define CONFIG_BIT_DEMUXER 0 ++%define CONFIG_BMV_DEMUXER 0 ++%define CONFIG_BFSTM_DEMUXER 0 ++%define CONFIG_BRSTM_DEMUXER 0 ++%define CONFIG_BOA_DEMUXER 0 ++%define CONFIG_C93_DEMUXER 0 ++%define CONFIG_CAF_DEMUXER 0 ++%define CONFIG_CAVSVIDEO_DEMUXER 0 ++%define CONFIG_CDG_DEMUXER 0 ++%define CONFIG_CDXL_DEMUXER 0 ++%define CONFIG_CINE_DEMUXER 0 ++%define CONFIG_CODEC2_DEMUXER 0 ++%define CONFIG_CODEC2RAW_DEMUXER 0 ++%define CONFIG_CONCAT_DEMUXER 0 ++%define CONFIG_DASH_DEMUXER 0 ++%define CONFIG_DATA_DEMUXER 0 ++%define CONFIG_DAUD_DEMUXER 0 ++%define CONFIG_DCSTR_DEMUXER 0 ++%define CONFIG_DERF_DEMUXER 0 ++%define CONFIG_DFA_DEMUXER 0 ++%define CONFIG_DHAV_DEMUXER 0 ++%define CONFIG_DIRAC_DEMUXER 0 ++%define CONFIG_DNXHD_DEMUXER 0 ++%define CONFIG_DSF_DEMUXER 0 ++%define CONFIG_DSICIN_DEMUXER 0 ++%define CONFIG_DSS_DEMUXER 0 ++%define CONFIG_DTS_DEMUXER 0 ++%define CONFIG_DTSHD_DEMUXER 0 ++%define CONFIG_DV_DEMUXER 0 ++%define CONFIG_DVBSUB_DEMUXER 0 ++%define CONFIG_DVBTXT_DEMUXER 0 ++%define CONFIG_DXA_DEMUXER 0 ++%define CONFIG_EA_DEMUXER 0 ++%define CONFIG_EA_CDATA_DEMUXER 0 ++%define CONFIG_EAC3_DEMUXER 0 ++%define CONFIG_EPAF_DEMUXER 0 ++%define CONFIG_FFMETADATA_DEMUXER 0 ++%define CONFIG_FILMSTRIP_DEMUXER 0 ++%define CONFIG_FITS_DEMUXER 0 ++%define CONFIG_FLAC_DEMUXER 1 ++%define CONFIG_FLIC_DEMUXER 0 ++%define CONFIG_FLV_DEMUXER 0 ++%define CONFIG_LIVE_FLV_DEMUXER 0 ++%define CONFIG_FOURXM_DEMUXER 0 ++%define CONFIG_FRM_DEMUXER 0 ++%define CONFIG_FSB_DEMUXER 0 ++%define CONFIG_FWSE_DEMUXER 0 ++%define CONFIG_G722_DEMUXER 0 ++%define CONFIG_G723_1_DEMUXER 0 ++%define CONFIG_G726_DEMUXER 0 ++%define CONFIG_G726LE_DEMUXER 0 ++%define CONFIG_G729_DEMUXER 0 ++%define CONFIG_GDV_DEMUXER 0 ++%define CONFIG_GENH_DEMUXER 0 ++%define CONFIG_GIF_DEMUXER 0 ++%define CONFIG_GSM_DEMUXER 0 ++%define CONFIG_GXF_DEMUXER 0 ++%define CONFIG_H261_DEMUXER 0 ++%define CONFIG_H263_DEMUXER 0 ++%define CONFIG_H264_DEMUXER 0 ++%define CONFIG_HCA_DEMUXER 0 ++%define CONFIG_HCOM_DEMUXER 0 ++%define CONFIG_HEVC_DEMUXER 0 ++%define CONFIG_HLS_DEMUXER 0 ++%define CONFIG_HNM_DEMUXER 0 ++%define CONFIG_ICO_DEMUXER 0 ++%define CONFIG_IDCIN_DEMUXER 0 ++%define CONFIG_IDF_DEMUXER 0 ++%define CONFIG_IFF_DEMUXER 0 ++%define CONFIG_IFV_DEMUXER 0 ++%define CONFIG_ILBC_DEMUXER 0 ++%define CONFIG_IMAGE2_DEMUXER 0 ++%define CONFIG_IMAGE2PIPE_DEMUXER 0 ++%define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 0 ++%define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 0 ++%define CONFIG_INGENIENT_DEMUXER 0 ++%define CONFIG_IPMOVIE_DEMUXER 0 ++%define CONFIG_IPU_DEMUXER 0 ++%define CONFIG_IRCAM_DEMUXER 0 ++%define CONFIG_ISS_DEMUXER 0 ++%define CONFIG_IV8_DEMUXER 0 ++%define CONFIG_IVF_DEMUXER 0 ++%define CONFIG_IVR_DEMUXER 0 ++%define CONFIG_JACOSUB_DEMUXER 0 ++%define CONFIG_JV_DEMUXER 0 ++%define CONFIG_KUX_DEMUXER 0 ++%define CONFIG_KVAG_DEMUXER 0 ++%define CONFIG_LMLM4_DEMUXER 0 ++%define CONFIG_LOAS_DEMUXER 0 ++%define CONFIG_LUODAT_DEMUXER 0 ++%define CONFIG_LRC_DEMUXER 0 ++%define CONFIG_LVF_DEMUXER 0 ++%define CONFIG_LXF_DEMUXER 0 ++%define CONFIG_M4V_DEMUXER 0 ++%define CONFIG_MCA_DEMUXER 0 ++%define CONFIG_MCC_DEMUXER 0 ++%define CONFIG_MATROSKA_DEMUXER 1 ++%define CONFIG_MGSTS_DEMUXER 0 ++%define CONFIG_MICRODVD_DEMUXER 0 ++%define CONFIG_MJPEG_DEMUXER 0 ++%define CONFIG_MJPEG_2000_DEMUXER 0 ++%define CONFIG_MLP_DEMUXER 0 ++%define CONFIG_MLV_DEMUXER 0 ++%define CONFIG_MM_DEMUXER 0 ++%define CONFIG_MMF_DEMUXER 0 ++%define CONFIG_MODS_DEMUXER 0 ++%define CONFIG_MOFLEX_DEMUXER 0 ++%define CONFIG_MOV_DEMUXER 1 ++%define CONFIG_MP3_DEMUXER 1 ++%define CONFIG_MPC_DEMUXER 0 ++%define CONFIG_MPC8_DEMUXER 0 ++%define CONFIG_MPEGPS_DEMUXER 0 ++%define CONFIG_MPEGTS_DEMUXER 0 ++%define CONFIG_MPEGTSRAW_DEMUXER 0 ++%define CONFIG_MPEGVIDEO_DEMUXER 0 ++%define CONFIG_MPJPEG_DEMUXER 0 ++%define CONFIG_MPL2_DEMUXER 0 ++%define CONFIG_MPSUB_DEMUXER 0 ++%define CONFIG_MSF_DEMUXER 0 ++%define CONFIG_MSNWC_TCP_DEMUXER 0 ++%define CONFIG_MSP_DEMUXER 0 ++%define CONFIG_MTAF_DEMUXER 0 ++%define CONFIG_MTV_DEMUXER 0 ++%define CONFIG_MUSX_DEMUXER 0 ++%define CONFIG_MV_DEMUXER 0 ++%define CONFIG_MVI_DEMUXER 0 ++%define CONFIG_MXF_DEMUXER 0 ++%define CONFIG_MXG_DEMUXER 0 ++%define CONFIG_NC_DEMUXER 0 ++%define CONFIG_NISTSPHERE_DEMUXER 0 ++%define CONFIG_NSP_DEMUXER 0 ++%define CONFIG_NSV_DEMUXER 0 ++%define CONFIG_NUT_DEMUXER 0 ++%define CONFIG_NUV_DEMUXER 0 ++%define CONFIG_OBU_DEMUXER 0 ++%define CONFIG_OGG_DEMUXER 1 ++%define CONFIG_OMA_DEMUXER 0 ++%define CONFIG_PAF_DEMUXER 0 ++%define CONFIG_PCM_ALAW_DEMUXER 0 ++%define CONFIG_PCM_MULAW_DEMUXER 0 ++%define CONFIG_PCM_VIDC_DEMUXER 0 ++%define CONFIG_PCM_F64BE_DEMUXER 0 ++%define CONFIG_PCM_F64LE_DEMUXER 0 ++%define CONFIG_PCM_F32BE_DEMUXER 0 ++%define CONFIG_PCM_F32LE_DEMUXER 0 ++%define CONFIG_PCM_S32BE_DEMUXER 0 ++%define CONFIG_PCM_S32LE_DEMUXER 0 ++%define CONFIG_PCM_S24BE_DEMUXER 0 ++%define CONFIG_PCM_S24LE_DEMUXER 0 ++%define CONFIG_PCM_S16BE_DEMUXER 0 ++%define CONFIG_PCM_S16LE_DEMUXER 0 ++%define CONFIG_PCM_S8_DEMUXER 0 ++%define CONFIG_PCM_U32BE_DEMUXER 0 ++%define CONFIG_PCM_U32LE_DEMUXER 0 ++%define CONFIG_PCM_U24BE_DEMUXER 0 ++%define CONFIG_PCM_U24LE_DEMUXER 0 ++%define CONFIG_PCM_U16BE_DEMUXER 0 ++%define CONFIG_PCM_U16LE_DEMUXER 0 ++%define CONFIG_PCM_U8_DEMUXER 0 ++%define CONFIG_PJS_DEMUXER 0 ++%define CONFIG_PMP_DEMUXER 0 ++%define CONFIG_PP_BNK_DEMUXER 0 ++%define CONFIG_PVA_DEMUXER 0 ++%define CONFIG_PVF_DEMUXER 0 ++%define CONFIG_QCP_DEMUXER 0 ++%define CONFIG_R3D_DEMUXER 0 ++%define CONFIG_RAWVIDEO_DEMUXER 0 ++%define CONFIG_REALTEXT_DEMUXER 0 ++%define CONFIG_REDSPARK_DEMUXER 0 ++%define CONFIG_RL2_DEMUXER 0 ++%define CONFIG_RM_DEMUXER 0 ++%define CONFIG_ROQ_DEMUXER 0 ++%define CONFIG_RPL_DEMUXER 0 ++%define CONFIG_RSD_DEMUXER 0 ++%define CONFIG_RSO_DEMUXER 0 ++%define CONFIG_RTP_DEMUXER 0 ++%define CONFIG_RTSP_DEMUXER 0 ++%define CONFIG_S337M_DEMUXER 0 ++%define CONFIG_SAMI_DEMUXER 0 ++%define CONFIG_SAP_DEMUXER 0 ++%define CONFIG_SBC_DEMUXER 0 ++%define CONFIG_SBG_DEMUXER 0 ++%define CONFIG_SCC_DEMUXER 0 ++%define CONFIG_SDP_DEMUXER 0 ++%define CONFIG_SDR2_DEMUXER 0 ++%define CONFIG_SDS_DEMUXER 0 ++%define CONFIG_SDX_DEMUXER 0 ++%define CONFIG_SEGAFILM_DEMUXER 0 ++%define CONFIG_SER_DEMUXER 0 ++%define CONFIG_SGA_DEMUXER 0 ++%define CONFIG_SHORTEN_DEMUXER 0 ++%define CONFIG_SIFF_DEMUXER 0 ++%define CONFIG_SIMBIOSIS_IMX_DEMUXER 0 ++%define CONFIG_SLN_DEMUXER 0 ++%define CONFIG_SMACKER_DEMUXER 0 ++%define CONFIG_SMJPEG_DEMUXER 0 ++%define CONFIG_SMUSH_DEMUXER 0 ++%define CONFIG_SOL_DEMUXER 0 ++%define CONFIG_SOX_DEMUXER 0 ++%define CONFIG_SPDIF_DEMUXER 0 ++%define CONFIG_SRT_DEMUXER 0 ++%define CONFIG_STR_DEMUXER 0 ++%define CONFIG_STL_DEMUXER 0 ++%define CONFIG_SUBVIEWER1_DEMUXER 0 ++%define CONFIG_SUBVIEWER_DEMUXER 0 ++%define CONFIG_SUP_DEMUXER 0 ++%define CONFIG_SVAG_DEMUXER 0 ++%define CONFIG_SVS_DEMUXER 0 ++%define CONFIG_SWF_DEMUXER 0 ++%define CONFIG_TAK_DEMUXER 0 ++%define CONFIG_TEDCAPTIONS_DEMUXER 0 ++%define CONFIG_THP_DEMUXER 0 ++%define CONFIG_THREEDOSTR_DEMUXER 0 ++%define CONFIG_TIERTEXSEQ_DEMUXER 0 ++%define CONFIG_TMV_DEMUXER 0 ++%define CONFIG_TRUEHD_DEMUXER 0 ++%define CONFIG_TTA_DEMUXER 0 ++%define CONFIG_TXD_DEMUXER 0 ++%define CONFIG_TTY_DEMUXER 0 ++%define CONFIG_TY_DEMUXER 0 ++%define CONFIG_V210_DEMUXER 0 ++%define CONFIG_V210X_DEMUXER 0 ++%define CONFIG_VAG_DEMUXER 0 ++%define CONFIG_VC1_DEMUXER 0 ++%define CONFIG_VC1T_DEMUXER 0 ++%define CONFIG_VIVIDAS_DEMUXER 0 ++%define CONFIG_VIVO_DEMUXER 0 ++%define CONFIG_VMD_DEMUXER 0 ++%define CONFIG_VOBSUB_DEMUXER 0 ++%define CONFIG_VOC_DEMUXER 0 ++%define CONFIG_VPK_DEMUXER 0 ++%define CONFIG_VPLAYER_DEMUXER 0 ++%define CONFIG_VQF_DEMUXER 0 ++%define CONFIG_W64_DEMUXER 0 ++%define CONFIG_WAV_DEMUXER 1 ++%define CONFIG_WC3_DEMUXER 0 ++%define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 0 ++%define CONFIG_WEBVTT_DEMUXER 0 ++%define CONFIG_WSAUD_DEMUXER 0 ++%define CONFIG_WSD_DEMUXER 0 ++%define CONFIG_WSVQA_DEMUXER 0 ++%define CONFIG_WTV_DEMUXER 0 ++%define CONFIG_WVE_DEMUXER 0 ++%define CONFIG_WV_DEMUXER 0 ++%define CONFIG_XA_DEMUXER 0 ++%define CONFIG_XBIN_DEMUXER 0 ++%define CONFIG_XMV_DEMUXER 0 ++%define CONFIG_XVAG_DEMUXER 0 ++%define CONFIG_XWMA_DEMUXER 0 ++%define CONFIG_YOP_DEMUXER 0 ++%define CONFIG_YUV4MPEGPIPE_DEMUXER 0 ++%define CONFIG_IMAGE_BMP_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_CRI_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_DDS_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_DPX_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_EXR_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_GEM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_GIF_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_J2K_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PAM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PBM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PCX_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PGM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PGX_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PHOTOCD_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PNG_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PPM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PSD_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_SVG_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_XBM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_XPM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_XWD_PIPE_DEMUXER 0 ++%define CONFIG_LIBGME_DEMUXER 0 ++%define CONFIG_LIBMODPLUG_DEMUXER 0 ++%define CONFIG_LIBOPENMPT_DEMUXER 0 ++%define CONFIG_VAPOURSYNTH_DEMUXER 0 ++%define CONFIG_A64_MUXER 0 ++%define CONFIG_AC3_MUXER 0 ++%define CONFIG_ADTS_MUXER 0 ++%define CONFIG_ADX_MUXER 0 ++%define CONFIG_AIFF_MUXER 0 ++%define CONFIG_ALP_MUXER 0 ++%define CONFIG_AMR_MUXER 0 ++%define CONFIG_AMV_MUXER 0 ++%define CONFIG_APM_MUXER 0 ++%define CONFIG_APNG_MUXER 0 ++%define CONFIG_APTX_MUXER 0 ++%define CONFIG_APTX_HD_MUXER 0 ++%define CONFIG_ARGO_ASF_MUXER 0 ++%define CONFIG_ARGO_CVG_MUXER 0 ++%define CONFIG_ASF_MUXER 0 ++%define CONFIG_ASS_MUXER 0 ++%define CONFIG_AST_MUXER 0 ++%define CONFIG_ASF_STREAM_MUXER 0 ++%define CONFIG_AU_MUXER 0 ++%define CONFIG_AVI_MUXER 0 ++%define CONFIG_AVM2_MUXER 0 ++%define CONFIG_AVS2_MUXER 0 ++%define CONFIG_AVS3_MUXER 0 ++%define CONFIG_BIT_MUXER 0 ++%define CONFIG_CAF_MUXER 0 ++%define CONFIG_CAVSVIDEO_MUXER 0 ++%define CONFIG_CODEC2_MUXER 0 ++%define CONFIG_CODEC2RAW_MUXER 0 ++%define CONFIG_CRC_MUXER 0 ++%define CONFIG_DASH_MUXER 0 ++%define CONFIG_DATA_MUXER 0 ++%define CONFIG_DAUD_MUXER 0 ++%define CONFIG_DIRAC_MUXER 0 ++%define CONFIG_DNXHD_MUXER 0 ++%define CONFIG_DTS_MUXER 0 ++%define CONFIG_DV_MUXER 0 ++%define CONFIG_EAC3_MUXER 0 ++%define CONFIG_F4V_MUXER 0 ++%define CONFIG_FFMETADATA_MUXER 0 ++%define CONFIG_FIFO_MUXER 0 ++%define CONFIG_FIFO_TEST_MUXER 0 ++%define CONFIG_FILMSTRIP_MUXER 0 ++%define CONFIG_FITS_MUXER 0 ++%define CONFIG_FLAC_MUXER 0 ++%define CONFIG_FLV_MUXER 0 ++%define CONFIG_FRAMECRC_MUXER 0 ++%define CONFIG_FRAMEHASH_MUXER 0 ++%define CONFIG_FRAMEMD5_MUXER 0 ++%define CONFIG_G722_MUXER 0 ++%define CONFIG_G723_1_MUXER 0 ++%define CONFIG_G726_MUXER 0 ++%define CONFIG_G726LE_MUXER 0 ++%define CONFIG_GIF_MUXER 0 ++%define CONFIG_GSM_MUXER 0 ++%define CONFIG_GXF_MUXER 0 ++%define CONFIG_H261_MUXER 0 ++%define CONFIG_H263_MUXER 0 ++%define CONFIG_H264_MUXER 0 ++%define CONFIG_HASH_MUXER 0 ++%define CONFIG_HDS_MUXER 0 ++%define CONFIG_HEVC_MUXER 0 ++%define CONFIG_HLS_MUXER 0 ++%define CONFIG_ICO_MUXER 0 ++%define CONFIG_ILBC_MUXER 0 ++%define CONFIG_IMAGE2_MUXER 0 ++%define CONFIG_IMAGE2PIPE_MUXER 0 ++%define CONFIG_IPOD_MUXER 0 ++%define CONFIG_IRCAM_MUXER 0 ++%define CONFIG_ISMV_MUXER 0 ++%define CONFIG_IVF_MUXER 0 ++%define CONFIG_JACOSUB_MUXER 0 ++%define CONFIG_KVAG_MUXER 0 ++%define CONFIG_LATM_MUXER 0 ++%define CONFIG_LRC_MUXER 0 ++%define CONFIG_M4V_MUXER 0 ++%define CONFIG_MD5_MUXER 0 ++%define CONFIG_MATROSKA_MUXER 0 ++%define CONFIG_MATROSKA_AUDIO_MUXER 0 ++%define CONFIG_MICRODVD_MUXER 0 ++%define CONFIG_MJPEG_MUXER 0 ++%define CONFIG_MLP_MUXER 0 ++%define CONFIG_MMF_MUXER 0 ++%define CONFIG_MOV_MUXER 0 ++%define CONFIG_MP2_MUXER 0 ++%define CONFIG_MP3_MUXER 0 ++%define CONFIG_MP4_MUXER 0 ++%define CONFIG_MPEG1SYSTEM_MUXER 0 ++%define CONFIG_MPEG1VCD_MUXER 0 ++%define CONFIG_MPEG1VIDEO_MUXER 0 ++%define CONFIG_MPEG2DVD_MUXER 0 ++%define CONFIG_MPEG2SVCD_MUXER 0 ++%define CONFIG_MPEG2VIDEO_MUXER 0 ++%define CONFIG_MPEG2VOB_MUXER 0 ++%define CONFIG_MPEGTS_MUXER 0 ++%define CONFIG_MPJPEG_MUXER 0 ++%define CONFIG_MXF_MUXER 0 ++%define CONFIG_MXF_D10_MUXER 0 ++%define CONFIG_MXF_OPATOM_MUXER 0 ++%define CONFIG_NULL_MUXER 0 ++%define CONFIG_NUT_MUXER 0 ++%define CONFIG_OBU_MUXER 0 ++%define CONFIG_OGA_MUXER 0 ++%define CONFIG_OGG_MUXER 0 ++%define CONFIG_OGV_MUXER 0 ++%define CONFIG_OMA_MUXER 0 ++%define CONFIG_OPUS_MUXER 0 ++%define CONFIG_PCM_ALAW_MUXER 0 ++%define CONFIG_PCM_MULAW_MUXER 0 ++%define CONFIG_PCM_VIDC_MUXER 0 ++%define CONFIG_PCM_F64BE_MUXER 0 ++%define CONFIG_PCM_F64LE_MUXER 0 ++%define CONFIG_PCM_F32BE_MUXER 0 ++%define CONFIG_PCM_F32LE_MUXER 0 ++%define CONFIG_PCM_S32BE_MUXER 0 ++%define CONFIG_PCM_S32LE_MUXER 0 ++%define CONFIG_PCM_S24BE_MUXER 0 ++%define CONFIG_PCM_S24LE_MUXER 0 ++%define CONFIG_PCM_S16BE_MUXER 0 ++%define CONFIG_PCM_S16LE_MUXER 0 ++%define CONFIG_PCM_S8_MUXER 0 ++%define CONFIG_PCM_U32BE_MUXER 0 ++%define CONFIG_PCM_U32LE_MUXER 0 ++%define CONFIG_PCM_U24BE_MUXER 0 ++%define CONFIG_PCM_U24LE_MUXER 0 ++%define CONFIG_PCM_U16BE_MUXER 0 ++%define CONFIG_PCM_U16LE_MUXER 0 ++%define CONFIG_PCM_U8_MUXER 0 ++%define CONFIG_PSP_MUXER 0 ++%define CONFIG_RAWVIDEO_MUXER 0 ++%define CONFIG_RM_MUXER 0 ++%define CONFIG_ROQ_MUXER 0 ++%define CONFIG_RSO_MUXER 0 ++%define CONFIG_RTP_MUXER 0 ++%define CONFIG_RTP_MPEGTS_MUXER 0 ++%define CONFIG_RTSP_MUXER 0 ++%define CONFIG_SAP_MUXER 0 ++%define CONFIG_SBC_MUXER 0 ++%define CONFIG_SCC_MUXER 0 ++%define CONFIG_SEGAFILM_MUXER 0 ++%define CONFIG_SEGMENT_MUXER 0 ++%define CONFIG_STREAM_SEGMENT_MUXER 0 ++%define CONFIG_SMJPEG_MUXER 0 ++%define CONFIG_SMOOTHSTREAMING_MUXER 0 ++%define CONFIG_SOX_MUXER 0 ++%define CONFIG_SPX_MUXER 0 ++%define CONFIG_SPDIF_MUXER 0 ++%define CONFIG_SRT_MUXER 0 ++%define CONFIG_STREAMHASH_MUXER 0 ++%define CONFIG_SUP_MUXER 0 ++%define CONFIG_SWF_MUXER 0 ++%define CONFIG_TEE_MUXER 0 ++%define CONFIG_TG2_MUXER 0 ++%define CONFIG_TGP_MUXER 0 ++%define CONFIG_MKVTIMESTAMP_V2_MUXER 0 ++%define CONFIG_TRUEHD_MUXER 0 ++%define CONFIG_TTA_MUXER 0 ++%define CONFIG_TTML_MUXER 0 ++%define CONFIG_UNCODEDFRAMECRC_MUXER 0 ++%define CONFIG_VC1_MUXER 0 ++%define CONFIG_VC1T_MUXER 0 ++%define CONFIG_VOC_MUXER 0 ++%define CONFIG_W64_MUXER 0 ++%define CONFIG_WAV_MUXER 0 ++%define CONFIG_WEBM_MUXER 0 ++%define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 ++%define CONFIG_WEBM_CHUNK_MUXER 0 ++%define CONFIG_WEBP_MUXER 0 ++%define CONFIG_WEBVTT_MUXER 0 ++%define CONFIG_WSAUD_MUXER 0 ++%define CONFIG_WTV_MUXER 0 ++%define CONFIG_WV_MUXER 0 ++%define CONFIG_YUV4MPEGPIPE_MUXER 0 ++%define CONFIG_CHROMAPRINT_MUXER 0 ++%define CONFIG_ASYNC_PROTOCOL 0 ++%define CONFIG_BLURAY_PROTOCOL 0 ++%define CONFIG_CACHE_PROTOCOL 0 ++%define CONFIG_CONCAT_PROTOCOL 0 ++%define CONFIG_CONCATF_PROTOCOL 0 ++%define CONFIG_CRYPTO_PROTOCOL 0 ++%define CONFIG_DATA_PROTOCOL 0 ++%define CONFIG_FFRTMPCRYPT_PROTOCOL 0 ++%define CONFIG_FFRTMPHTTP_PROTOCOL 0 ++%define CONFIG_FILE_PROTOCOL 0 ++%define CONFIG_FTP_PROTOCOL 0 ++%define CONFIG_GOPHER_PROTOCOL 0 ++%define CONFIG_GOPHERS_PROTOCOL 0 ++%define CONFIG_HLS_PROTOCOL 0 ++%define CONFIG_HTTP_PROTOCOL 0 ++%define CONFIG_HTTPPROXY_PROTOCOL 0 ++%define CONFIG_HTTPS_PROTOCOL 0 ++%define CONFIG_ICECAST_PROTOCOL 0 ++%define CONFIG_MMSH_PROTOCOL 0 ++%define CONFIG_MMST_PROTOCOL 0 ++%define CONFIG_MD5_PROTOCOL 0 ++%define CONFIG_PIPE_PROTOCOL 0 ++%define CONFIG_PROMPEG_PROTOCOL 0 ++%define CONFIG_RTMP_PROTOCOL 0 ++%define CONFIG_RTMPE_PROTOCOL 0 ++%define CONFIG_RTMPS_PROTOCOL 0 ++%define CONFIG_RTMPT_PROTOCOL 0 ++%define CONFIG_RTMPTE_PROTOCOL 0 ++%define CONFIG_RTMPTS_PROTOCOL 0 ++%define CONFIG_RTP_PROTOCOL 0 ++%define CONFIG_SCTP_PROTOCOL 0 ++%define CONFIG_SRTP_PROTOCOL 0 ++%define CONFIG_SUBFILE_PROTOCOL 0 ++%define CONFIG_TEE_PROTOCOL 0 ++%define CONFIG_TCP_PROTOCOL 0 ++%define CONFIG_TLS_PROTOCOL 0 ++%define CONFIG_UDP_PROTOCOL 0 ++%define CONFIG_UDPLITE_PROTOCOL 0 ++%define CONFIG_UNIX_PROTOCOL 0 ++%define CONFIG_LIBAMQP_PROTOCOL 0 ++%define CONFIG_LIBRIST_PROTOCOL 0 ++%define CONFIG_LIBRTMP_PROTOCOL 0 ++%define CONFIG_LIBRTMPE_PROTOCOL 0 ++%define CONFIG_LIBRTMPS_PROTOCOL 0 ++%define CONFIG_LIBRTMPT_PROTOCOL 0 ++%define CONFIG_LIBRTMPTE_PROTOCOL 0 ++%define CONFIG_LIBSRT_PROTOCOL 0 ++%define CONFIG_LIBSSH_PROTOCOL 0 ++%define CONFIG_LIBSMBCLIENT_PROTOCOL 0 ++%define CONFIG_LIBZMQ_PROTOCOL 0 diff --git a/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_ia32_config.h b/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_ia32_config.h new file mode 100644 index 000000000000..974ddc69d0c6 --- /dev/null +++ b/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_ia32_config.h @@ -0,0 +1,2747 @@ +--- third_party/ffmpeg/chromium/config/Chrome/openbsd/ia32/config.h.orig 2022-05-20 04:31:06 UTC ++++ third_party/ffmpeg/chromium/config/Chrome/openbsd/ia32/config.h +@@ -0,0 +1,2744 @@ ++/* Automatically generated by configure - do not modify! */ ++#ifndef FFMPEG_CONFIG_H ++#define FFMPEG_CONFIG_H ++/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio,vp9' --extra-cflags=-I/usr/local/google/home/jrummell/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=nasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-pic --cc=clang --cxx=clang++ --ld=clang --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */ ++#define FFMPEG_LICENSE "LGPL version 2.1 or later" ++#define CONFIG_THIS_YEAR 2021 ++#define FFMPEG_DATADIR "/usr/local/share/ffmpeg" ++#define AVCONV_DATADIR "/usr/local/share/ffmpeg" ++#define CC_IDENT "OpenBSD clang version 13.0.0" ++#define OS_NAME openbsd ++#define av_restrict restrict ++#define EXTERN_PREFIX "" ++#define EXTERN_ASM ++#define BUILDSUF "" ++#define SLIBSUF ".so" ++#define HAVE_MMX2 HAVE_MMXEXT ++#define SWS_MAX_FILTER_SIZE 256 ++#define ARCH_AARCH64 0 ++#define ARCH_ALPHA 0 ++#define ARCH_ARM 0 ++#define ARCH_AVR32 0 ++#define ARCH_AVR32_AP 0 ++#define ARCH_AVR32_UC 0 ++#define ARCH_BFIN 0 ++#define ARCH_IA64 0 ++#define ARCH_M68K 0 ++#define ARCH_MIPS 0 ++#define ARCH_MIPS64 0 ++#define ARCH_PARISC 0 ++#define ARCH_PPC 0 ++#define ARCH_PPC64 0 ++#define ARCH_RISCV 0 ++#define ARCH_S390 0 ++#define ARCH_SH4 0 ++#define ARCH_SPARC 0 ++#define ARCH_SPARC64 0 ++#define ARCH_TILEGX 0 ++#define ARCH_TILEPRO 0 ++#define ARCH_TOMI 0 ++#define ARCH_X86 1 ++#define ARCH_X86_32 1 ++#define ARCH_X86_64 0 ++#define HAVE_ARMV5TE 0 ++#define HAVE_ARMV6 0 ++#define HAVE_ARMV6T2 0 ++#define HAVE_ARMV8 0 ++#define HAVE_NEON 0 ++#define HAVE_VFP 0 ++#define HAVE_VFPV3 0 ++#define HAVE_SETEND 0 ++#define HAVE_ALTIVEC 0 ++#define HAVE_DCBZL 0 ++#define HAVE_LDBRX 0 ++#define HAVE_POWER8 0 ++#define HAVE_PPC4XX 0 ++#define HAVE_VSX 0 ++#define HAVE_AESNI 1 ++#define HAVE_AMD3DNOW 1 ++#define HAVE_AMD3DNOWEXT 1 ++#define HAVE_AVX 1 ++#define HAVE_AVX2 1 ++#define HAVE_AVX512 1 ++#define HAVE_FMA3 1 ++#define HAVE_FMA4 1 ++#define HAVE_MMX 1 ++#define HAVE_MMXEXT 1 ++#define HAVE_SSE 1 ++#define HAVE_SSE2 1 ++#define HAVE_SSE3 1 ++#define HAVE_SSE4 1 ++#define HAVE_SSE42 1 ++#define HAVE_SSSE3 1 ++#define HAVE_XOP 1 ++#define HAVE_CPUNOP 0 ++#define HAVE_I686 1 ++#define HAVE_MIPSFPU 0 ++#define HAVE_MIPS32R2 0 ++#define HAVE_MIPS32R5 0 ++#define HAVE_MIPS64R2 0 ++#define HAVE_MIPS32R6 0 ++#define HAVE_MIPS64R6 0 ++#define HAVE_MIPSDSP 0 ++#define HAVE_MIPSDSPR2 0 ++#define HAVE_MSA 0 ++#define HAVE_LOONGSON2 0 ++#define HAVE_LOONGSON3 0 ++#define HAVE_MMI 0 ++#define HAVE_ARMV5TE_EXTERNAL 0 ++#define HAVE_ARMV6_EXTERNAL 0 ++#define HAVE_ARMV6T2_EXTERNAL 0 ++#define HAVE_ARMV8_EXTERNAL 0 ++#define HAVE_NEON_EXTERNAL 0 ++#define HAVE_VFP_EXTERNAL 0 ++#define HAVE_VFPV3_EXTERNAL 0 ++#define HAVE_SETEND_EXTERNAL 0 ++#define HAVE_ALTIVEC_EXTERNAL 0 ++#define HAVE_DCBZL_EXTERNAL 0 ++#define HAVE_LDBRX_EXTERNAL 0 ++#define HAVE_POWER8_EXTERNAL 0 ++#define HAVE_PPC4XX_EXTERNAL 0 ++#define HAVE_VSX_EXTERNAL 0 ++#define HAVE_AESNI_EXTERNAL 1 ++#define HAVE_AMD3DNOW_EXTERNAL 1 ++#define HAVE_AMD3DNOWEXT_EXTERNAL 1 ++#define HAVE_AVX_EXTERNAL 1 ++#define HAVE_AVX2_EXTERNAL 1 ++#define HAVE_AVX512_EXTERNAL 1 ++#define HAVE_FMA3_EXTERNAL 1 ++#define HAVE_FMA4_EXTERNAL 1 ++#define HAVE_MMX_EXTERNAL 1 ++#define HAVE_MMXEXT_EXTERNAL 1 ++#define HAVE_SSE_EXTERNAL 1 ++#define HAVE_SSE2_EXTERNAL 1 ++#define HAVE_SSE3_EXTERNAL 1 ++#define HAVE_SSE4_EXTERNAL 1 ++#define HAVE_SSE42_EXTERNAL 1 ++#define HAVE_SSSE3_EXTERNAL 1 ++#define HAVE_XOP_EXTERNAL 1 ++#define HAVE_CPUNOP_EXTERNAL 0 ++#define HAVE_I686_EXTERNAL 0 ++#define HAVE_MIPSFPU_EXTERNAL 0 ++#define HAVE_MIPS32R2_EXTERNAL 0 ++#define HAVE_MIPS32R5_EXTERNAL 0 ++#define HAVE_MIPS64R2_EXTERNAL 0 ++#define HAVE_MIPS32R6_EXTERNAL 0 ++#define HAVE_MIPS64R6_EXTERNAL 0 ++#define HAVE_MIPSDSP_EXTERNAL 0 ++#define HAVE_MIPSDSPR2_EXTERNAL 0 ++#define HAVE_MSA_EXTERNAL 0 ++#define HAVE_LOONGSON2_EXTERNAL 0 ++#define HAVE_LOONGSON3_EXTERNAL 0 ++#define HAVE_MMI_EXTERNAL 0 ++#define HAVE_ARMV5TE_INLINE 0 ++#define HAVE_ARMV6_INLINE 0 ++#define HAVE_ARMV6T2_INLINE 0 ++#define HAVE_ARMV8_INLINE 0 ++#define HAVE_NEON_INLINE 0 ++#define HAVE_VFP_INLINE 0 ++#define HAVE_VFPV3_INLINE 0 ++#define HAVE_SETEND_INLINE 0 ++#define HAVE_ALTIVEC_INLINE 0 ++#define HAVE_DCBZL_INLINE 0 ++#define HAVE_LDBRX_INLINE 0 ++#define HAVE_POWER8_INLINE 0 ++#define HAVE_PPC4XX_INLINE 0 ++#define HAVE_VSX_INLINE 0 ++#define HAVE_AESNI_INLINE 1 ++#define HAVE_AMD3DNOW_INLINE 1 ++#define HAVE_AMD3DNOWEXT_INLINE 1 ++#define HAVE_AVX_INLINE 1 ++#define HAVE_AVX2_INLINE 1 ++#define HAVE_AVX512_INLINE 1 ++#define HAVE_FMA3_INLINE 1 ++#define HAVE_FMA4_INLINE 1 ++#define HAVE_MMX_INLINE 1 ++#define HAVE_MMXEXT_INLINE 1 ++#define HAVE_SSE_INLINE 1 ++#define HAVE_SSE2_INLINE 1 ++#define HAVE_SSE3_INLINE 1 ++#define HAVE_SSE4_INLINE 1 ++#define HAVE_SSE42_INLINE 1 ++#define HAVE_SSSE3_INLINE 1 ++#define HAVE_XOP_INLINE 1 ++#define HAVE_CPUNOP_INLINE 0 ++#define HAVE_I686_INLINE 0 ++#define HAVE_MIPSFPU_INLINE 0 ++#define HAVE_MIPS32R2_INLINE 0 ++#define HAVE_MIPS32R5_INLINE 0 ++#define HAVE_MIPS64R2_INLINE 0 ++#define HAVE_MIPS32R6_INLINE 0 ++#define HAVE_MIPS64R6_INLINE 0 ++#define HAVE_MIPSDSP_INLINE 0 ++#define HAVE_MIPSDSPR2_INLINE 0 ++#define HAVE_MSA_INLINE 0 ++#define HAVE_LOONGSON2_INLINE 0 ++#define HAVE_LOONGSON3_INLINE 0 ++#define HAVE_MMI_INLINE 0 ++#define HAVE_ALIGNED_STACK 0 ++#define HAVE_FAST_64BIT 0 ++#define HAVE_FAST_CLZ 1 ++#define HAVE_FAST_CMOV 0 ++#define HAVE_LOCAL_ALIGNED 1 ++#define HAVE_SIMD_ALIGN_16 1 ++#define HAVE_SIMD_ALIGN_32 1 ++#define HAVE_SIMD_ALIGN_64 1 ++#define HAVE_ATOMIC_CAS_PTR 0 ++#define HAVE_MACHINE_RW_BARRIER 0 ++#define HAVE_MEMORYBARRIER 0 ++#define HAVE_MM_EMPTY 0 ++#define HAVE_RDTSC 0 ++#define HAVE_SEM_TIMEDWAIT 1 ++#define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 ++#define HAVE_CABS 0 ++#define HAVE_CEXP 0 ++#define HAVE_INLINE_ASM 1 ++#define HAVE_SYMVER 0 ++#define HAVE_X86ASM 1 ++#define HAVE_BIGENDIAN 0 ++#define HAVE_FAST_UNALIGNED 1 ++#define HAVE_ARPA_INET_H 0 ++#define HAVE_ASM_TYPES_H 0 ++#define HAVE_CDIO_PARANOIA_H 0 ++#define HAVE_CDIO_PARANOIA_PARANOIA_H 0 ++#define HAVE_CUDA_H 0 ++#define HAVE_DISPATCH_DISPATCH_H 0 ++#define HAVE_DEV_BKTR_IOCTL_BT848_H 0 ++#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 ++#define HAVE_DEV_IC_BT8XX_H 1 ++#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 ++#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 ++#define HAVE_DIRECT_H 0 ++#define HAVE_DIRENT_H 1 ++#define HAVE_DXGIDEBUG_H 0 ++#define HAVE_DXVA_H 0 ++#define HAVE_ES2_GL_H 0 ++#define HAVE_GSM_H 0 ++#define HAVE_IO_H 0 ++#define HAVE_LINUX_DMA_BUF_H 0 ++#define HAVE_LINUX_PERF_EVENT_H 0 ++#define HAVE_MACHINE_IOCTL_BT848_H 0 ++#define HAVE_MACHINE_IOCTL_METEOR_H 0 ++#define HAVE_MALLOC_H 0 ++#define HAVE_OPENCV2_CORE_CORE_C_H 0 ++#define HAVE_OPENGL_GL3_H 0 ++#define HAVE_POLL_H 1 ++#define HAVE_SYS_PARAM_H 1 ++#define HAVE_SYS_RESOURCE_H 1 ++#define HAVE_SYS_SELECT_H 1 ++#define HAVE_SYS_SOUNDCARD_H 0 ++#define HAVE_SYS_TIME_H 1 ++#define HAVE_SYS_UN_H 1 ++#define HAVE_SYS_VIDEOIO_H 1 ++#define HAVE_TERMIOS_H 1 ++#define HAVE_UDPLITE_H 0 ++#define HAVE_UNISTD_H 1 ++#define HAVE_VALGRIND_VALGRIND_H 0 ++#define HAVE_WINDOWS_H 0 ++#define HAVE_WINSOCK2_H 0 ++#define HAVE_INTRINSICS_NEON 0 ++#define HAVE_ATANF 1 ++#define HAVE_ATAN2F 1 ++#define HAVE_CBRT 1 ++#define HAVE_CBRTF 1 ++#define HAVE_COPYSIGN 1 ++#define HAVE_COSF 1 ++#define HAVE_ERF 1 ++#define HAVE_EXP2 1 ++#define HAVE_EXP2F 1 ++#define HAVE_EXPF 1 ++#define HAVE_HYPOT 1 ++#define HAVE_ISFINITE 1 ++#define HAVE_ISINF 1 ++#define HAVE_ISNAN 1 ++#define HAVE_LDEXPF 1 ++#define HAVE_LLRINT 1 ++#define HAVE_LLRINTF 1 ++#define HAVE_LOG2 1 ++#define HAVE_LOG2F 1 ++#define HAVE_LOG10F 1 ++#define HAVE_LRINT 1 ++#define HAVE_LRINTF 1 ++#define HAVE_POWF 1 ++#define HAVE_RINT 1 ++#define HAVE_ROUND 1 ++#define HAVE_ROUNDF 1 ++#define HAVE_SINF 1 ++#define HAVE_TRUNC 1 ++#define HAVE_TRUNCF 1 ++#define HAVE_DOS_PATHS 0 ++#define HAVE_LIBC_MSVCRT 0 ++#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 ++#define HAVE_SECTION_DATA_REL_RO 1 ++#define HAVE_THREADS 1 ++#define HAVE_UWP 0 ++#define HAVE_WINRT 0 ++#define HAVE_ACCESS 1 ++#define HAVE_ALIGNED_MALLOC 0 ++#define HAVE_ARC4RANDOM 1 ++#define HAVE_CLOCK_GETTIME 1 ++#define HAVE_CLOSESOCKET 0 ++#define HAVE_COMMANDLINETOARGVW 0 ++#define HAVE_FCNTL 1 ++#define HAVE_GETADDRINFO 0 ++#define HAVE_GETHRTIME 0 ++#define HAVE_GETOPT 1 ++#define HAVE_GETMODULEHANDLE 0 ++#define HAVE_GETPROCESSAFFINITYMASK 0 ++#define HAVE_GETPROCESSMEMORYINFO 0 ++#define HAVE_GETPROCESSTIMES 0 ++#define HAVE_GETRUSAGE 1 ++#define HAVE_GETSTDHANDLE 0 ++#define HAVE_GETSYSTEMTIMEASFILETIME 0 ++#define HAVE_GETTIMEOFDAY 1 ++#define HAVE_GLOB 1 ++#define HAVE_GLXGETPROCADDRESS 0 ++#define HAVE_GMTIME_R 1 ++#define HAVE_INET_ATON 0 ++#define HAVE_ISATTY 1 ++#define HAVE_KBHIT 0 ++#define HAVE_LOCALTIME_R 1 ++#define HAVE_LSTAT 1 ++#define HAVE_LZO1X_999_COMPRESS 0 ++#define HAVE_MACH_ABSOLUTE_TIME 0 ++#define HAVE_MAPVIEWOFFILE 0 ++#define HAVE_MEMALIGN 0 ++#define HAVE_MKSTEMP 1 ++#define HAVE_MMAP 1 ++#define HAVE_MPROTECT 1 ++#define HAVE_NANOSLEEP 1 ++#define HAVE_PEEKNAMEDPIPE 0 ++#define HAVE_POSIX_MEMALIGN 1 ++#define HAVE_PTHREAD_CANCEL 1 ++#define HAVE_SCHED_GETAFFINITY 0 ++#define HAVE_SECITEMIMPORT 0 ++#define HAVE_SETCONSOLETEXTATTRIBUTE 0 ++#define HAVE_SETCONSOLECTRLHANDLER 0 ++#define HAVE_SETDLLDIRECTORY 0 ++#define HAVE_SETMODE 0 ++#define HAVE_SETRLIMIT 1 ++#define HAVE_SLEEP 0 ++#define HAVE_STRERROR_R 1 ++#define HAVE_SYSCONF 1 ++#define HAVE_SYSCTL 1 ++#define HAVE_USLEEP 1 ++#define HAVE_UTGETOSTYPEFROMSTRING 0 ++#define HAVE_VIRTUALALLOC 0 ++#define HAVE_WGLGETPROCADDRESS 0 ++#define HAVE_BCRYPT 0 ++#define HAVE_VAAPI_DRM 0 ++#define HAVE_VAAPI_X11 0 ++#define HAVE_VDPAU_X11 0 ++#define HAVE_PTHREADS 1 ++#define HAVE_OS2THREADS 0 ++#define HAVE_W32THREADS 0 ++#define HAVE_AS_ARCH_DIRECTIVE 0 ++#define HAVE_AS_DN_DIRECTIVE 0 ++#define HAVE_AS_FPU_DIRECTIVE 0 ++#define HAVE_AS_FUNC 0 ++#define HAVE_AS_OBJECT_ARCH 0 ++#define HAVE_ASM_MOD_Q 0 ++#define HAVE_BLOCKS_EXTENSION 0 ++/* #define HAVE_EBP_AVAILABLE 1 -- ebp selection is done by the chrome build */ ++#define HAVE_EBX_AVAILABLE 1 ++#define HAVE_GNU_AS 0 ++#define HAVE_GNU_WINDRES 0 ++#define HAVE_IBM_ASM 0 ++#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 1 ++#define HAVE_INLINE_ASM_LABELS 1 ++#define HAVE_INLINE_ASM_NONLOCAL_LABELS 1 ++#define HAVE_PRAGMA_DEPRECATED 1 ++#define HAVE_RSYNC_CONTIMEOUT 1 ++#define HAVE_SYMVER_ASM_LABEL 1 ++#define HAVE_SYMVER_GNU_ASM 1 ++#define HAVE_VFP_ARGS 0 ++#define HAVE_XFORM_ASM 0 ++#define HAVE_XMM_CLOBBERS 1 ++#define HAVE_KCMVIDEOCODECTYPE_HEVC 0 ++#define HAVE_KCMVIDEOCODECTYPE_HEVCWITHALPHA 0 ++#define HAVE_KCVPIXELFORMATTYPE_420YPCBCR10BIPLANARVIDEORANGE 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_2084_PQ 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2100_HLG 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_LINEAR 0 ++#define HAVE_KCVIMAGEBUFFERYCBCRMATRIX_ITU_R_2020 0 ++#define HAVE_KCVIMAGEBUFFERCOLORPRIMARIES_ITU_R_2020 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2020 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_428_1 0 ++#define HAVE_SOCKLEN_T 0 ++#define HAVE_STRUCT_ADDRINFO 0 ++#define HAVE_STRUCT_GROUP_SOURCE_REQ 0 ++#define HAVE_STRUCT_IP_MREQ_SOURCE 0 ++#define HAVE_STRUCT_IPV6_MREQ 0 ++#define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 ++#define HAVE_STRUCT_POLLFD 0 ++#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1 ++#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 ++#define HAVE_STRUCT_SOCKADDR_IN6 0 ++#define HAVE_STRUCT_SOCKADDR_SA_LEN 0 ++#define HAVE_STRUCT_SOCKADDR_STORAGE 0 ++#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 ++#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1 ++#define HAVE_GZIP 1 ++#define HAVE_LIBDRM_GETFB2 0 ++#define HAVE_MAKEINFO 1 ++#define HAVE_MAKEINFO_HTML 0 ++#define HAVE_OPENCL_D3D11 0 ++#define HAVE_OPENCL_DRM_ARM 0 ++#define HAVE_OPENCL_DRM_BEIGNET 0 ++#define HAVE_OPENCL_DXVA2 0 ++#define HAVE_OPENCL_VAAPI_BEIGNET 0 ++#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 ++#define HAVE_PERL 1 ++#define HAVE_POD2MAN 1 ++#define HAVE_TEXI2HTML 0 ++#define HAVE_XMLLINT 1 ++#define HAVE_ZLIB_GZIP 0 ++#define CONFIG_DOC 0 ++#define CONFIG_HTMLPAGES 0 ++#define CONFIG_MANPAGES 0 ++#define CONFIG_PODPAGES 0 ++#define CONFIG_TXTPAGES 0 ++#define CONFIG_AVIO_LIST_DIR_EXAMPLE 1 ++#define CONFIG_AVIO_READING_EXAMPLE 1 ++#define CONFIG_DECODE_AUDIO_EXAMPLE 1 ++#define CONFIG_DECODE_VIDEO_EXAMPLE 1 ++#define CONFIG_DEMUXING_DECODING_EXAMPLE 1 ++#define CONFIG_ENCODE_AUDIO_EXAMPLE 1 ++#define CONFIG_ENCODE_VIDEO_EXAMPLE 1 ++#define CONFIG_EXTRACT_MVS_EXAMPLE 1 ++#define CONFIG_FILTER_AUDIO_EXAMPLE 0 ++#define CONFIG_FILTERING_AUDIO_EXAMPLE 0 ++#define CONFIG_FILTERING_VIDEO_EXAMPLE 0 ++#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 1 ++#define CONFIG_HW_DECODE_EXAMPLE 1 ++#define CONFIG_METADATA_EXAMPLE 1 ++#define CONFIG_MUXING_EXAMPLE 0 ++#define CONFIG_QSVDEC_EXAMPLE 0 ++#define CONFIG_REMUXING_EXAMPLE 1 ++#define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0 ++#define CONFIG_SCALING_VIDEO_EXAMPLE 0 ++#define CONFIG_TRANSCODE_AAC_EXAMPLE 0 ++#define CONFIG_TRANSCODING_EXAMPLE 0 ++#define CONFIG_VAAPI_ENCODE_EXAMPLE 0 ++#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 ++#define CONFIG_AVISYNTH 0 ++#define CONFIG_FREI0R 0 ++#define CONFIG_LIBCDIO 0 ++#define CONFIG_LIBDAVS2 0 ++#define CONFIG_LIBRUBBERBAND 0 ++#define CONFIG_LIBVIDSTAB 0 ++#define CONFIG_LIBX264 0 ++#define CONFIG_LIBX265 0 ++#define CONFIG_LIBXAVS 0 ++#define CONFIG_LIBXAVS2 0 ++#define CONFIG_LIBXVID 0 ++#define CONFIG_DECKLINK 0 ++#define CONFIG_LIBFDK_AAC 0 ++#define CONFIG_LIBTLS 0 ++#define CONFIG_GMP 0 ++#define CONFIG_LIBARIBB24 0 ++#define CONFIG_LIBLENSFUN 0 ++#define CONFIG_LIBOPENCORE_AMRNB 0 ++#define CONFIG_LIBOPENCORE_AMRWB 0 ++#define CONFIG_LIBVO_AMRWBENC 0 ++#define CONFIG_MBEDTLS 0 ++#define CONFIG_RKMPP 0 ++#define CONFIG_LIBSMBCLIENT 0 ++#define CONFIG_CHROMAPRINT 0 ++#define CONFIG_GCRYPT 0 ++#define CONFIG_GNUTLS 0 ++#define CONFIG_JNI 0 ++#define CONFIG_LADSPA 0 ++#define CONFIG_LIBAOM 0 ++#define CONFIG_LIBASS 0 ++#define CONFIG_LIBBLURAY 0 ++#define CONFIG_LIBBS2B 0 ++#define CONFIG_LIBCACA 0 ++#define CONFIG_LIBCELT 0 ++#define CONFIG_LIBCODEC2 0 ++#define CONFIG_LIBDAV1D 0 ++#define CONFIG_LIBDC1394 0 ++#define CONFIG_LIBDRM 0 ++#define CONFIG_LIBFLITE 0 ++#define CONFIG_LIBFONTCONFIG 0 ++#define CONFIG_LIBFREETYPE 0 ++#define CONFIG_LIBFRIBIDI 0 ++#define CONFIG_LIBGLSLANG 0 ++#define CONFIG_LIBGME 0 ++#define CONFIG_LIBGSM 0 ++#define CONFIG_LIBIEC61883 0 ++#define CONFIG_LIBILBC 0 ++#define CONFIG_LIBJACK 0 ++#define CONFIG_LIBKLVANC 0 ++#define CONFIG_LIBKVAZAAR 0 ++#define CONFIG_LIBMODPLUG 0 ++#define CONFIG_LIBMP3LAME 0 ++#define CONFIG_LIBMYSOFA 0 ++#define CONFIG_LIBOPENCV 0 ++#define CONFIG_LIBOPENH264 0 ++#define CONFIG_LIBOPENJPEG 0 ++#define CONFIG_LIBOPENMPT 0 ++#define CONFIG_LIBOPENVINO 0 ++#define CONFIG_LIBOPUS 1 ++#define CONFIG_LIBPULSE 0 ++#define CONFIG_LIBRABBITMQ 0 ++#define CONFIG_LIBRAV1E 0 ++#define CONFIG_LIBRIST 0 ++#define CONFIG_LIBRSVG 0 ++#define CONFIG_LIBRTMP 0 ++#define CONFIG_LIBSHINE 0 ++#define CONFIG_LIBSMBCLIENT 0 ++#define CONFIG_LIBSNAPPY 0 ++#define CONFIG_LIBSOXR 0 ++#define CONFIG_LIBSPEEX 0 ++#define CONFIG_LIBSRT 0 ++#define CONFIG_LIBSSH 0 ++#define CONFIG_LIBSVTAV1 0 ++#define CONFIG_LIBTENSORFLOW 0 ++#define CONFIG_LIBTESSERACT 0 ++#define CONFIG_LIBTHEORA 0 ++#define CONFIG_LIBTWOLAME 0 ++#define CONFIG_LIBUAVS3D 0 ++#define CONFIG_LIBV4L2 0 ++#define CONFIG_LIBVMAF 0 ++#define CONFIG_LIBVORBIS 0 ++#define CONFIG_LIBVPX 0 ++#define CONFIG_LIBWEBP 0 ++#define CONFIG_LIBXML2 0 ++#define CONFIG_LIBZIMG 0 ++#define CONFIG_LIBZMQ 0 ++#define CONFIG_LIBZVBI 0 ++#define CONFIG_LV2 0 ++#define CONFIG_MEDIACODEC 0 ++#define CONFIG_OPENAL 0 ++#define CONFIG_OPENGL 0 ++#define CONFIG_OPENSSL 0 ++#define CONFIG_POCKETSPHINX 0 ++#define CONFIG_VAPOURSYNTH 0 ++#define CONFIG_ALSA 0 ++#define CONFIG_APPKIT 0 ++#define CONFIG_AVFOUNDATION 0 ++#define CONFIG_BZLIB 0 ++#define CONFIG_COREIMAGE 0 ++#define CONFIG_ICONV 0 ++#define CONFIG_LIBXCB 0 ++#define CONFIG_LIBXCB_SHM 0 ++#define CONFIG_LIBXCB_SHAPE 0 ++#define CONFIG_LIBXCB_XFIXES 0 ++#define CONFIG_LZMA 0 ++#define CONFIG_MEDIAFOUNDATION 0 ++#define CONFIG_SCHANNEL 0 ++#define CONFIG_SDL2 0 ++#define CONFIG_SECURETRANSPORT 0 ++#define CONFIG_SNDIO 0 ++#define CONFIG_XLIB 0 ++#define CONFIG_ZLIB 0 ++#define CONFIG_CUDA_NVCC 0 ++#define CONFIG_CUDA_SDK 0 ++#define CONFIG_LIBNPP 0 ++#define CONFIG_LIBMFX 0 ++#define CONFIG_MMAL 0 ++#define CONFIG_OMX 0 ++#define CONFIG_OPENCL 0 ++#define CONFIG_VULKAN 0 ++#define CONFIG_AMF 0 ++#define CONFIG_AUDIOTOOLBOX 0 ++#define CONFIG_CRYSTALHD 0 ++#define CONFIG_CUDA 0 ++#define CONFIG_CUDA_LLVM 0 ++#define CONFIG_CUVID 0 ++#define CONFIG_D3D11VA 0 ++#define CONFIG_DXVA2 0 ++#define CONFIG_FFNVCODEC 0 ++#define CONFIG_NVDEC 0 ++#define CONFIG_NVENC 0 ++#define CONFIG_VAAPI 0 ++#define CONFIG_VDPAU 0 ++#define CONFIG_VIDEOTOOLBOX 0 ++#define CONFIG_V4L2_M2M 0 ++#define CONFIG_XVMC 0 ++#define CONFIG_FTRAPV 0 ++#define CONFIG_GRAY 0 ++#define CONFIG_HARDCODED_TABLES 0 ++#define CONFIG_OMX_RPI 0 ++#define CONFIG_RUNTIME_CPUDETECT 1 ++#define CONFIG_SAFE_BITSTREAM_READER 1 ++#define CONFIG_SHARED 0 ++#define CONFIG_SMALL 0 ++#define CONFIG_STATIC 1 ++#define CONFIG_SWSCALE_ALPHA 1 ++#define CONFIG_GPL 0 ++#define CONFIG_NONFREE 0 ++#define CONFIG_VERSION3 0 ++#define CONFIG_AVDEVICE 0 ++#define CONFIG_AVFILTER 0 ++#define CONFIG_SWSCALE 0 ++#define CONFIG_POSTPROC 0 ++#define CONFIG_AVFORMAT 1 ++#define CONFIG_AVCODEC 1 ++#define CONFIG_SWRESAMPLE 0 ++#define CONFIG_AVUTIL 1 ++#define CONFIG_FFPLAY 0 ++#define CONFIG_FFPROBE 0 ++#define CONFIG_FFMPEG 0 ++#define CONFIG_DCT 1 ++#define CONFIG_DWT 0 ++#define CONFIG_ERROR_RESILIENCE 0 ++#define CONFIG_FAAN 0 ++#define CONFIG_FAST_UNALIGNED 1 ++#define CONFIG_FFT 1 ++#define CONFIG_LSP 0 ++#define CONFIG_LZO 0 ++#define CONFIG_MDCT 1 ++#define CONFIG_PIXELUTILS 0 ++#define CONFIG_NETWORK 0 ++#define CONFIG_RDFT 1 ++#define CONFIG_AUTODETECT 0 ++#define CONFIG_FONTCONFIG 0 ++#define CONFIG_LARGE_TESTS 1 ++#define CONFIG_LINUX_PERF 0 ++#define CONFIG_MACOS_KPERF 0 ++#define CONFIG_MEMORY_POISONING 0 ++#define CONFIG_NEON_CLOBBER_TEST 0 ++#define CONFIG_OSSFUZZ 0 ++#define CONFIG_PIC 1 ++#define CONFIG_PTX_COMPRESSION 0 ++#define CONFIG_THUMB 0 ++#define CONFIG_VALGRIND_BACKTRACE 0 ++#define CONFIG_XMM_CLOBBER_TEST 0 ++#define CONFIG_BSFS 0 ++#define CONFIG_DECODERS 1 ++#define CONFIG_ENCODERS 0 ++#define CONFIG_HWACCELS 0 ++#define CONFIG_PARSERS 1 ++#define CONFIG_INDEVS 0 ++#define CONFIG_OUTDEVS 0 ++#define CONFIG_FILTERS 0 ++#define CONFIG_DEMUXERS 1 ++#define CONFIG_MUXERS 0 ++#define CONFIG_PROTOCOLS 0 ++#define CONFIG_AANDCTTABLES 0 ++#define CONFIG_AC3DSP 0 ++#define CONFIG_ADTS_HEADER 1 ++#define CONFIG_ATSC_A53 1 ++#define CONFIG_AUDIO_FRAME_QUEUE 0 ++#define CONFIG_AUDIODSP 0 ++#define CONFIG_BLOCKDSP 0 ++#define CONFIG_BSWAPDSP 0 ++#define CONFIG_CABAC 1 ++#define CONFIG_CBS 0 ++#define CONFIG_CBS_AV1 0 ++#define CONFIG_CBS_H264 0 ++#define CONFIG_CBS_H265 0 ++#define CONFIG_CBS_JPEG 0 ++#define CONFIG_CBS_MPEG2 0 ++#define CONFIG_CBS_VP9 0 ++#define CONFIG_DIRAC_PARSE 1 ++#define CONFIG_DNN 0 ++#define CONFIG_DVPROFILE 0 ++#define CONFIG_EXIF 0 ++#define CONFIG_FAANDCT 0 ++#define CONFIG_FAANIDCT 0 ++#define CONFIG_FDCTDSP 0 ++#define CONFIG_FLACDSP 1 ++#define CONFIG_FMTCONVERT 0 ++#define CONFIG_FRAME_THREAD_ENCODER 0 ++#define CONFIG_G722DSP 0 ++#define CONFIG_GOLOMB 1 ++#define CONFIG_GPLV3 0 ++#define CONFIG_H263DSP 0 ++#define CONFIG_H264CHROMA 1 ++#define CONFIG_H264DSP 1 ++#define CONFIG_H264PARSE 1 ++#define CONFIG_H264PRED 1 ++#define CONFIG_H264QPEL 1 ++#define CONFIG_HEVCPARSE 0 ++#define CONFIG_HPELDSP 1 ++#define CONFIG_HUFFMAN 0 ++#define CONFIG_HUFFYUVDSP 0 ++#define CONFIG_HUFFYUVENCDSP 0 ++#define CONFIG_IDCTDSP 0 ++#define CONFIG_IIRFILTER 0 ++#define CONFIG_MDCT15 1 ++#define CONFIG_INTRAX8 0 ++#define CONFIG_ISO_MEDIA 1 ++#define CONFIG_IVIDSP 0 ++#define CONFIG_JPEGTABLES 0 ++#define CONFIG_LGPLV3 0 ++#define CONFIG_LIBX262 0 ++#define CONFIG_LLAUDDSP 0 ++#define CONFIG_LLVIDDSP 0 ++#define CONFIG_LLVIDENCDSP 0 ++#define CONFIG_LPC 0 ++#define CONFIG_LZF 0 ++#define CONFIG_ME_CMP 0 ++#define CONFIG_MPEG_ER 0 ++#define CONFIG_MPEGAUDIO 1 ++#define CONFIG_MPEGAUDIODSP 1 ++#define CONFIG_MPEGAUDIOHEADER 1 ++#define CONFIG_MPEGVIDEO 0 ++#define CONFIG_MPEGVIDEOENC 0 ++#define CONFIG_MSS34DSP 0 ++#define CONFIG_PIXBLOCKDSP 0 ++#define CONFIG_QPELDSP 0 ++#define CONFIG_QSV 0 ++#define CONFIG_QSVDEC 0 ++#define CONFIG_QSVENC 0 ++#define CONFIG_QSVVPP 0 ++#define CONFIG_RANGECODER 0 ++#define CONFIG_RIFFDEC 1 ++#define CONFIG_RIFFENC 0 ++#define CONFIG_RTPDEC 0 ++#define CONFIG_RTPENC_CHAIN 0 ++#define CONFIG_RV34DSP 0 ++#define CONFIG_SCENE_SAD 0 ++#define CONFIG_SINEWIN 1 ++#define CONFIG_SNAPPY 0 ++#define CONFIG_SRTP 0 ++#define CONFIG_STARTCODE 1 ++#define CONFIG_TEXTUREDSP 0 ++#define CONFIG_TEXTUREDSPENC 0 ++#define CONFIG_TPELDSP 0 ++#define CONFIG_VAAPI_1 0 ++#define CONFIG_VAAPI_ENCODE 0 ++#define CONFIG_VC1DSP 0 ++#define CONFIG_VIDEODSP 1 ++#define CONFIG_VP3DSP 1 ++#define CONFIG_VP56DSP 0 ++#define CONFIG_VP8DSP 1 ++#define CONFIG_WMA_FREQS 0 ++#define CONFIG_WMV2DSP 0 ++#define CONFIG_AAC_ADTSTOASC_BSF 0 ++#define CONFIG_AV1_FRAME_MERGE_BSF 0 ++#define CONFIG_AV1_FRAME_SPLIT_BSF 0 ++#define CONFIG_AV1_METADATA_BSF 0 ++#define CONFIG_CHOMP_BSF 0 ++#define CONFIG_DUMP_EXTRADATA_BSF 0 ++#define CONFIG_DCA_CORE_BSF 0 ++#define CONFIG_EAC3_CORE_BSF 0 ++#define CONFIG_EXTRACT_EXTRADATA_BSF 0 ++#define CONFIG_FILTER_UNITS_BSF 0 ++#define CONFIG_H264_METADATA_BSF 0 ++#define CONFIG_H264_MP4TOANNEXB_BSF 0 ++#define CONFIG_H264_REDUNDANT_PPS_BSF 0 ++#define CONFIG_HAPQA_EXTRACT_BSF 0 ++#define CONFIG_HEVC_METADATA_BSF 0 ++#define CONFIG_HEVC_MP4TOANNEXB_BSF 0 ++#define CONFIG_IMX_DUMP_HEADER_BSF 0 ++#define CONFIG_MJPEG2JPEG_BSF 0 ++#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0 ++#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0 ++#define CONFIG_MPEG2_METADATA_BSF 0 ++#define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 0 ++#define CONFIG_MOV2TEXTSUB_BSF 0 ++#define CONFIG_NOISE_BSF 0 ++#define CONFIG_NULL_BSF 0 ++#define CONFIG_OPUS_METADATA_BSF 0 ++#define CONFIG_PCM_RECHUNK_BSF 0 ++#define CONFIG_PRORES_METADATA_BSF 0 ++#define CONFIG_REMOVE_EXTRADATA_BSF 0 ++#define CONFIG_SETTS_BSF 0 ++#define CONFIG_TEXT2MOVSUB_BSF 0 ++#define CONFIG_TRACE_HEADERS_BSF 0 ++#define CONFIG_TRUEHD_CORE_BSF 0 ++#define CONFIG_VP9_METADATA_BSF 0 ++#define CONFIG_VP9_RAW_REORDER_BSF 0 ++#define CONFIG_VP9_SUPERFRAME_BSF 0 ++#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 0 ++#define CONFIG_AASC_DECODER 0 ++#define CONFIG_AIC_DECODER 0 ++#define CONFIG_ALIAS_PIX_DECODER 0 ++#define CONFIG_AGM_DECODER 0 ++#define CONFIG_AMV_DECODER 0 ++#define CONFIG_ANM_DECODER 0 ++#define CONFIG_ANSI_DECODER 0 ++#define CONFIG_APNG_DECODER 0 ++#define CONFIG_ARBC_DECODER 0 ++#define CONFIG_ARGO_DECODER 0 ++#define CONFIG_ASV1_DECODER 0 ++#define CONFIG_ASV2_DECODER 0 ++#define CONFIG_AURA_DECODER 0 ++#define CONFIG_AURA2_DECODER 0 ++#define CONFIG_AVRP_DECODER 0 ++#define CONFIG_AVRN_DECODER 0 ++#define CONFIG_AVS_DECODER 0 ++#define CONFIG_AVUI_DECODER 0 ++#define CONFIG_AYUV_DECODER 0 ++#define CONFIG_BETHSOFTVID_DECODER 0 ++#define CONFIG_BFI_DECODER 0 ++#define CONFIG_BINK_DECODER 0 ++#define CONFIG_BITPACKED_DECODER 0 ++#define CONFIG_BMP_DECODER 0 ++#define CONFIG_BMV_VIDEO_DECODER 0 ++#define CONFIG_BRENDER_PIX_DECODER 0 ++#define CONFIG_C93_DECODER 0 ++#define CONFIG_CAVS_DECODER 0 ++#define CONFIG_CDGRAPHICS_DECODER 0 ++#define CONFIG_CDTOONS_DECODER 0 ++#define CONFIG_CDXL_DECODER 0 ++#define CONFIG_CFHD_DECODER 0 ++#define CONFIG_CINEPAK_DECODER 0 ++#define CONFIG_CLEARVIDEO_DECODER 0 ++#define CONFIG_CLJR_DECODER 0 ++#define CONFIG_CLLC_DECODER 0 ++#define CONFIG_COMFORTNOISE_DECODER 0 ++#define CONFIG_CPIA_DECODER 0 ++#define CONFIG_CRI_DECODER 0 ++#define CONFIG_CSCD_DECODER 0 ++#define CONFIG_CYUV_DECODER 0 ++#define CONFIG_DDS_DECODER 0 ++#define CONFIG_DFA_DECODER 0 ++#define CONFIG_DIRAC_DECODER 0 ++#define CONFIG_DNXHD_DECODER 0 ++#define CONFIG_DPX_DECODER 0 ++#define CONFIG_DSICINVIDEO_DECODER 0 ++#define CONFIG_DVAUDIO_DECODER 0 ++#define CONFIG_DVVIDEO_DECODER 0 ++#define CONFIG_DXA_DECODER 0 ++#define CONFIG_DXTORY_DECODER 0 ++#define CONFIG_DXV_DECODER 0 ++#define CONFIG_EACMV_DECODER 0 ++#define CONFIG_EAMAD_DECODER 0 ++#define CONFIG_EATGQ_DECODER 0 ++#define CONFIG_EATGV_DECODER 0 ++#define CONFIG_EATQI_DECODER 0 ++#define CONFIG_EIGHTBPS_DECODER 0 ++#define CONFIG_EIGHTSVX_EXP_DECODER 0 ++#define CONFIG_EIGHTSVX_FIB_DECODER 0 ++#define CONFIG_ESCAPE124_DECODER 0 ++#define CONFIG_ESCAPE130_DECODER 0 ++#define CONFIG_EXR_DECODER 0 ++#define CONFIG_FFV1_DECODER 0 ++#define CONFIG_FFVHUFF_DECODER 0 ++#define CONFIG_FIC_DECODER 0 ++#define CONFIG_FITS_DECODER 0 ++#define CONFIG_FLASHSV_DECODER 0 ++#define CONFIG_FLASHSV2_DECODER 0 ++#define CONFIG_FLIC_DECODER 0 ++#define CONFIG_FLV_DECODER 0 ++#define CONFIG_FMVC_DECODER 0 ++#define CONFIG_FOURXM_DECODER 0 ++#define CONFIG_FRAPS_DECODER 0 ++#define CONFIG_FRWU_DECODER 0 ++#define CONFIG_G2M_DECODER 0 ++#define CONFIG_GDV_DECODER 0 ++#define CONFIG_GEM_DECODER 0 ++#define CONFIG_GIF_DECODER 0 ++#define CONFIG_H261_DECODER 0 ++#define CONFIG_H263_DECODER 0 ++#define CONFIG_H263I_DECODER 0 ++#define CONFIG_H263P_DECODER 0 ++#define CONFIG_H263_V4L2M2M_DECODER 0 ++#define CONFIG_H264_DECODER 1 ++#define CONFIG_H264_CRYSTALHD_DECODER 0 ++#define CONFIG_H264_V4L2M2M_DECODER 0 ++#define CONFIG_H264_MEDIACODEC_DECODER 0 ++#define CONFIG_H264_MMAL_DECODER 0 ++#define CONFIG_H264_QSV_DECODER 0 ++#define CONFIG_H264_RKMPP_DECODER 0 ++#define CONFIG_HAP_DECODER 0 ++#define CONFIG_HEVC_DECODER 0 ++#define CONFIG_HEVC_QSV_DECODER 0 ++#define CONFIG_HEVC_RKMPP_DECODER 0 ++#define CONFIG_HEVC_V4L2M2M_DECODER 0 ++#define CONFIG_HNM4_VIDEO_DECODER 0 ++#define CONFIG_HQ_HQA_DECODER 0 ++#define CONFIG_HQX_DECODER 0 ++#define CONFIG_HUFFYUV_DECODER 0 ++#define CONFIG_HYMT_DECODER 0 ++#define CONFIG_IDCIN_DECODER 0 ++#define CONFIG_IFF_ILBM_DECODER 0 ++#define CONFIG_IMM4_DECODER 0 ++#define CONFIG_IMM5_DECODER 0 ++#define CONFIG_INDEO2_DECODER 0 ++#define CONFIG_INDEO3_DECODER 0 ++#define CONFIG_INDEO4_DECODER 0 ++#define CONFIG_INDEO5_DECODER 0 ++#define CONFIG_INTERPLAY_VIDEO_DECODER 0 ++#define CONFIG_IPU_DECODER 0 ++#define CONFIG_JPEG2000_DECODER 0 ++#define CONFIG_JPEGLS_DECODER 0 ++#define CONFIG_JV_DECODER 0 ++#define CONFIG_KGV1_DECODER 0 ++#define CONFIG_KMVC_DECODER 0 ++#define CONFIG_LAGARITH_DECODER 0 ++#define CONFIG_LOCO_DECODER 0 ++#define CONFIG_LSCR_DECODER 0 ++#define CONFIG_M101_DECODER 0 ++#define CONFIG_MAGICYUV_DECODER 0 ++#define CONFIG_MDEC_DECODER 0 ++#define CONFIG_MIMIC_DECODER 0 ++#define CONFIG_MJPEG_DECODER 0 ++#define CONFIG_MJPEGB_DECODER 0 ++#define CONFIG_MMVIDEO_DECODER 0 ++#define CONFIG_MOBICLIP_DECODER 0 ++#define CONFIG_MOTIONPIXELS_DECODER 0 ++#define CONFIG_MPEG1VIDEO_DECODER 0 ++#define CONFIG_MPEG2VIDEO_DECODER 0 ++#define CONFIG_MPEG4_DECODER 0 ++#define CONFIG_MPEG4_CRYSTALHD_DECODER 0 ++#define CONFIG_MPEG4_V4L2M2M_DECODER 0 ++#define CONFIG_MPEG4_MMAL_DECODER 0 ++#define CONFIG_MPEGVIDEO_DECODER 0 ++#define CONFIG_MPEG1_V4L2M2M_DECODER 0 ++#define CONFIG_MPEG2_MMAL_DECODER 0 ++#define CONFIG_MPEG2_CRYSTALHD_DECODER 0 ++#define CONFIG_MPEG2_V4L2M2M_DECODER 0 ++#define CONFIG_MPEG2_QSV_DECODER 0 ++#define CONFIG_MPEG2_MEDIACODEC_DECODER 0 ++#define CONFIG_MSA1_DECODER 0 ++#define CONFIG_MSCC_DECODER 0 ++#define CONFIG_MSMPEG4V1_DECODER 0 ++#define CONFIG_MSMPEG4V2_DECODER 0 ++#define CONFIG_MSMPEG4V3_DECODER 0 ++#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 ++#define CONFIG_MSP2_DECODER 0 ++#define CONFIG_MSRLE_DECODER 0 ++#define CONFIG_MSS1_DECODER 0 ++#define CONFIG_MSS2_DECODER 0 ++#define CONFIG_MSVIDEO1_DECODER 0 ++#define CONFIG_MSZH_DECODER 0 ++#define CONFIG_MTS2_DECODER 0 ++#define CONFIG_MV30_DECODER 0 ++#define CONFIG_MVC1_DECODER 0 ++#define CONFIG_MVC2_DECODER 0 ++#define CONFIG_MVDV_DECODER 0 ++#define CONFIG_MVHA_DECODER 0 ++#define CONFIG_MWSC_DECODER 0 ++#define CONFIG_MXPEG_DECODER 0 ++#define CONFIG_NOTCHLC_DECODER 0 ++#define CONFIG_NUV_DECODER 0 ++#define CONFIG_PAF_VIDEO_DECODER 0 ++#define CONFIG_PAM_DECODER 0 ++#define CONFIG_PBM_DECODER 0 ++#define CONFIG_PCX_DECODER 0 ++#define CONFIG_PFM_DECODER 0 ++#define CONFIG_PGM_DECODER 0 ++#define CONFIG_PGMYUV_DECODER 0 ++#define CONFIG_PGX_DECODER 0 ++#define CONFIG_PHOTOCD_DECODER 0 ++#define CONFIG_PICTOR_DECODER 0 ++#define CONFIG_PIXLET_DECODER 0 ++#define CONFIG_PNG_DECODER 0 ++#define CONFIG_PPM_DECODER 0 ++#define CONFIG_PRORES_DECODER 0 ++#define CONFIG_PROSUMER_DECODER 0 ++#define CONFIG_PSD_DECODER 0 ++#define CONFIG_PTX_DECODER 0 ++#define CONFIG_QDRAW_DECODER 0 ++#define CONFIG_QPEG_DECODER 0 ++#define CONFIG_QTRLE_DECODER 0 ++#define CONFIG_R10K_DECODER 0 ++#define CONFIG_R210_DECODER 0 ++#define CONFIG_RASC_DECODER 0 ++#define CONFIG_RAWVIDEO_DECODER 0 ++#define CONFIG_RL2_DECODER 0 ++#define CONFIG_ROQ_DECODER 0 ++#define CONFIG_RPZA_DECODER 0 ++#define CONFIG_RSCC_DECODER 0 ++#define CONFIG_RV10_DECODER 0 ++#define CONFIG_RV20_DECODER 0 ++#define CONFIG_RV30_DECODER 0 ++#define CONFIG_RV40_DECODER 0 ++#define CONFIG_S302M_DECODER 0 ++#define CONFIG_SANM_DECODER 0 ++#define CONFIG_SCPR_DECODER 0 ++#define CONFIG_SCREENPRESSO_DECODER 0 ++#define CONFIG_SGA_DECODER 0 ++#define CONFIG_SGI_DECODER 0 ++#define CONFIG_SGIRLE_DECODER 0 ++#define CONFIG_SHEERVIDEO_DECODER 0 ++#define CONFIG_SIMBIOSIS_IMX_DECODER 0 ++#define CONFIG_SMACKER_DECODER 0 ++#define CONFIG_SMC_DECODER 0 ++#define CONFIG_SMVJPEG_DECODER 0 ++#define CONFIG_SNOW_DECODER 0 ++#define CONFIG_SP5X_DECODER 0 ++#define CONFIG_SPEEDHQ_DECODER 0 ++#define CONFIG_SPEEX_DECODER 0 ++#define CONFIG_SRGC_DECODER 0 ++#define CONFIG_SUNRAST_DECODER 0 ++#define CONFIG_SVQ1_DECODER 0 ++#define CONFIG_SVQ3_DECODER 0 ++#define CONFIG_TARGA_DECODER 0 ++#define CONFIG_TARGA_Y216_DECODER 0 ++#define CONFIG_TDSC_DECODER 0 ++#define CONFIG_THEORA_DECODER 1 ++#define CONFIG_THP_DECODER 0 ++#define CONFIG_TIERTEXSEQVIDEO_DECODER 0 ++#define CONFIG_TIFF_DECODER 0 ++#define CONFIG_TMV_DECODER 0 ++#define CONFIG_TRUEMOTION1_DECODER 0 ++#define CONFIG_TRUEMOTION2_DECODER 0 ++#define CONFIG_TRUEMOTION2RT_DECODER 0 ++#define CONFIG_TSCC_DECODER 0 ++#define CONFIG_TSCC2_DECODER 0 ++#define CONFIG_TXD_DECODER 0 ++#define CONFIG_ULTI_DECODER 0 ++#define CONFIG_UTVIDEO_DECODER 0 ++#define CONFIG_V210_DECODER 0 ++#define CONFIG_V210X_DECODER 0 ++#define CONFIG_V308_DECODER 0 ++#define CONFIG_V408_DECODER 0 ++#define CONFIG_V410_DECODER 0 ++#define CONFIG_VB_DECODER 0 ++#define CONFIG_VBLE_DECODER 0 ++#define CONFIG_VC1_DECODER 0 ++#define CONFIG_VC1_CRYSTALHD_DECODER 0 ++#define CONFIG_VC1IMAGE_DECODER 0 ++#define CONFIG_VC1_MMAL_DECODER 0 ++#define CONFIG_VC1_QSV_DECODER 0 ++#define CONFIG_VC1_V4L2M2M_DECODER 0 ++#define CONFIG_VCR1_DECODER 0 ++#define CONFIG_VMDVIDEO_DECODER 0 ++#define CONFIG_VMNC_DECODER 0 ++#define CONFIG_VP3_DECODER 1 ++#define CONFIG_VP4_DECODER 0 ++#define CONFIG_VP5_DECODER 0 ++#define CONFIG_VP6_DECODER 0 ++#define CONFIG_VP6A_DECODER 0 ++#define CONFIG_VP6F_DECODER 0 ++#define CONFIG_VP7_DECODER 0 ++#define CONFIG_VP8_DECODER 1 ++#define CONFIG_VP8_RKMPP_DECODER 0 ++#define CONFIG_VP8_V4L2M2M_DECODER 0 ++#define CONFIG_VP9_DECODER 0 ++#define CONFIG_VP9_RKMPP_DECODER 0 ++#define CONFIG_VP9_V4L2M2M_DECODER 0 ++#define CONFIG_VQA_DECODER 0 ++#define CONFIG_WEBP_DECODER 0 ++#define CONFIG_WCMV_DECODER 0 ++#define CONFIG_WRAPPED_AVFRAME_DECODER 0 ++#define CONFIG_WMV1_DECODER 0 ++#define CONFIG_WMV2_DECODER 0 ++#define CONFIG_WMV3_DECODER 0 ++#define CONFIG_WMV3_CRYSTALHD_DECODER 0 ++#define CONFIG_WMV3IMAGE_DECODER 0 ++#define CONFIG_WNV1_DECODER 0 ++#define CONFIG_XAN_WC3_DECODER 0 ++#define CONFIG_XAN_WC4_DECODER 0 ++#define CONFIG_XBM_DECODER 0 ++#define CONFIG_XFACE_DECODER 0 ++#define CONFIG_XL_DECODER 0 ++#define CONFIG_XPM_DECODER 0 ++#define CONFIG_XWD_DECODER 0 ++#define CONFIG_Y41P_DECODER 0 ++#define CONFIG_YLC_DECODER 0 ++#define CONFIG_YOP_DECODER 0 ++#define CONFIG_YUV4_DECODER 0 ++#define CONFIG_ZERO12V_DECODER 0 ++#define CONFIG_ZEROCODEC_DECODER 0 ++#define CONFIG_ZLIB_DECODER 0 ++#define CONFIG_ZMBV_DECODER 0 ++#define CONFIG_AAC_DECODER 1 ++#define CONFIG_AAC_FIXED_DECODER 0 ++#define CONFIG_AAC_LATM_DECODER 0 ++#define CONFIG_AC3_DECODER 0 ++#define CONFIG_AC3_FIXED_DECODER 0 ++#define CONFIG_ACELP_KELVIN_DECODER 0 ++#define CONFIG_ALAC_DECODER 0 ++#define CONFIG_ALS_DECODER 0 ++#define CONFIG_AMRNB_DECODER 0 ++#define CONFIG_AMRWB_DECODER 0 ++#define CONFIG_APE_DECODER 0 ++#define CONFIG_APTX_DECODER 0 ++#define CONFIG_APTX_HD_DECODER 0 ++#define CONFIG_ATRAC1_DECODER 0 ++#define CONFIG_ATRAC3_DECODER 0 ++#define CONFIG_ATRAC3AL_DECODER 0 ++#define CONFIG_ATRAC3P_DECODER 0 ++#define CONFIG_ATRAC3PAL_DECODER 0 ++#define CONFIG_ATRAC9_DECODER 0 ++#define CONFIG_BINKAUDIO_DCT_DECODER 0 ++#define CONFIG_BINKAUDIO_RDFT_DECODER 0 ++#define CONFIG_BMV_AUDIO_DECODER 0 ++#define CONFIG_COOK_DECODER 0 ++#define CONFIG_DCA_DECODER 0 ++#define CONFIG_DOLBY_E_DECODER 0 ++#define CONFIG_DSD_LSBF_DECODER 0 ++#define CONFIG_DSD_MSBF_DECODER 0 ++#define CONFIG_DSD_LSBF_PLANAR_DECODER 0 ++#define CONFIG_DSD_MSBF_PLANAR_DECODER 0 ++#define CONFIG_DSICINAUDIO_DECODER 0 ++#define CONFIG_DSS_SP_DECODER 0 ++#define CONFIG_DST_DECODER 0 ++#define CONFIG_EAC3_DECODER 0 ++#define CONFIG_EVRC_DECODER 0 ++#define CONFIG_FASTAUDIO_DECODER 0 ++#define CONFIG_FFWAVESYNTH_DECODER 0 ++#define CONFIG_FLAC_DECODER 1 ++#define CONFIG_G723_1_DECODER 0 ++#define CONFIG_G729_DECODER 0 ++#define CONFIG_GSM_DECODER 0 ++#define CONFIG_GSM_MS_DECODER 0 ++#define CONFIG_HCA_DECODER 0 ++#define CONFIG_HCOM_DECODER 0 ++#define CONFIG_IAC_DECODER 0 ++#define CONFIG_ILBC_DECODER 0 ++#define CONFIG_IMC_DECODER 0 ++#define CONFIG_INTERPLAY_ACM_DECODER 0 ++#define CONFIG_MACE3_DECODER 0 ++#define CONFIG_MACE6_DECODER 0 ++#define CONFIG_METASOUND_DECODER 0 ++#define CONFIG_MLP_DECODER 0 ++#define CONFIG_MP1_DECODER 0 ++#define CONFIG_MP1FLOAT_DECODER 0 ++#define CONFIG_MP2_DECODER 0 ++#define CONFIG_MP2FLOAT_DECODER 0 ++#define CONFIG_MP3FLOAT_DECODER 0 ++#define CONFIG_MP3_DECODER 1 ++#define CONFIG_MP3ADUFLOAT_DECODER 0 ++#define CONFIG_MP3ADU_DECODER 0 ++#define CONFIG_MP3ON4FLOAT_DECODER 0 ++#define CONFIG_MP3ON4_DECODER 0 ++#define CONFIG_MPC7_DECODER 0 ++#define CONFIG_MPC8_DECODER 0 ++#define CONFIG_MSNSIREN_DECODER 0 ++#define CONFIG_NELLYMOSER_DECODER 0 ++#define CONFIG_ON2AVC_DECODER 0 ++#define CONFIG_OPUS_DECODER 0 ++#define CONFIG_PAF_AUDIO_DECODER 0 ++#define CONFIG_QCELP_DECODER 0 ++#define CONFIG_QDM2_DECODER 0 ++#define CONFIG_QDMC_DECODER 0 ++#define CONFIG_RA_144_DECODER 0 ++#define CONFIG_RA_288_DECODER 0 ++#define CONFIG_RALF_DECODER 0 ++#define CONFIG_SBC_DECODER 0 ++#define CONFIG_SHORTEN_DECODER 0 ++#define CONFIG_SIPR_DECODER 0 ++#define CONFIG_SIREN_DECODER 0 ++#define CONFIG_SMACKAUD_DECODER 0 ++#define CONFIG_SONIC_DECODER 0 ++#define CONFIG_TAK_DECODER 0 ++#define CONFIG_TRUEHD_DECODER 0 ++#define CONFIG_TRUESPEECH_DECODER 0 ++#define CONFIG_TTA_DECODER 0 ++#define CONFIG_TWINVQ_DECODER 0 ++#define CONFIG_VMDAUDIO_DECODER 0 ++#define CONFIG_VORBIS_DECODER 1 ++#define CONFIG_WAVPACK_DECODER 0 ++#define CONFIG_WMALOSSLESS_DECODER 0 ++#define CONFIG_WMAPRO_DECODER 0 ++#define CONFIG_WMAV1_DECODER 0 ++#define CONFIG_WMAV2_DECODER 0 ++#define CONFIG_WMAVOICE_DECODER 0 ++#define CONFIG_WS_SND1_DECODER 0 ++#define CONFIG_XMA1_DECODER 0 ++#define CONFIG_XMA2_DECODER 0 ++#define CONFIG_PCM_ALAW_DECODER 1 ++#define CONFIG_PCM_BLURAY_DECODER 0 ++#define CONFIG_PCM_DVD_DECODER 0 ++#define CONFIG_PCM_F16LE_DECODER 0 ++#define CONFIG_PCM_F24LE_DECODER 0 ++#define CONFIG_PCM_F32BE_DECODER 0 ++#define CONFIG_PCM_F32LE_DECODER 1 ++#define CONFIG_PCM_F64BE_DECODER 0 ++#define CONFIG_PCM_F64LE_DECODER 0 ++#define CONFIG_PCM_LXF_DECODER 0 ++#define CONFIG_PCM_MULAW_DECODER 1 ++#define CONFIG_PCM_S8_DECODER 0 ++#define CONFIG_PCM_S8_PLANAR_DECODER 0 ++#define CONFIG_PCM_S16BE_DECODER 1 ++#define CONFIG_PCM_S16BE_PLANAR_DECODER 0 ++#define CONFIG_PCM_S16LE_DECODER 1 ++#define CONFIG_PCM_S16LE_PLANAR_DECODER 0 ++#define CONFIG_PCM_S24BE_DECODER 1 ++#define CONFIG_PCM_S24DAUD_DECODER 0 ++#define CONFIG_PCM_S24LE_DECODER 1 ++#define CONFIG_PCM_S24LE_PLANAR_DECODER 0 ++#define CONFIG_PCM_S32BE_DECODER 0 ++#define CONFIG_PCM_S32LE_DECODER 1 ++#define CONFIG_PCM_S32LE_PLANAR_DECODER 0 ++#define CONFIG_PCM_S64BE_DECODER 0 ++#define CONFIG_PCM_S64LE_DECODER 0 ++#define CONFIG_PCM_SGA_DECODER 0 ++#define CONFIG_PCM_U8_DECODER 1 ++#define CONFIG_PCM_U16BE_DECODER 0 ++#define CONFIG_PCM_U16LE_DECODER 0 ++#define CONFIG_PCM_U24BE_DECODER 0 ++#define CONFIG_PCM_U24LE_DECODER 0 ++#define CONFIG_PCM_U32BE_DECODER 0 ++#define CONFIG_PCM_U32LE_DECODER 0 ++#define CONFIG_PCM_VIDC_DECODER 0 ++#define CONFIG_DERF_DPCM_DECODER 0 ++#define CONFIG_GREMLIN_DPCM_DECODER 0 ++#define CONFIG_INTERPLAY_DPCM_DECODER 0 ++#define CONFIG_ROQ_DPCM_DECODER 0 ++#define CONFIG_SDX2_DPCM_DECODER 0 ++#define CONFIG_SOL_DPCM_DECODER 0 ++#define CONFIG_XAN_DPCM_DECODER 0 ++#define CONFIG_ADPCM_4XM_DECODER 0 ++#define CONFIG_ADPCM_ADX_DECODER 0 ++#define CONFIG_ADPCM_AFC_DECODER 0 ++#define CONFIG_ADPCM_AGM_DECODER 0 ++#define CONFIG_ADPCM_AICA_DECODER 0 ++#define CONFIG_ADPCM_ARGO_DECODER 0 ++#define CONFIG_ADPCM_CT_DECODER 0 ++#define CONFIG_ADPCM_DTK_DECODER 0 ++#define CONFIG_ADPCM_EA_DECODER 0 ++#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 0 ++#define CONFIG_ADPCM_EA_R1_DECODER 0 ++#define CONFIG_ADPCM_EA_R2_DECODER 0 ++#define CONFIG_ADPCM_EA_R3_DECODER 0 ++#define CONFIG_ADPCM_EA_XAS_DECODER 0 ++#define CONFIG_ADPCM_G722_DECODER 0 ++#define CONFIG_ADPCM_G726_DECODER 0 ++#define CONFIG_ADPCM_G726LE_DECODER 0 ++#define CONFIG_ADPCM_IMA_ACORN_DECODER 0 ++#define CONFIG_ADPCM_IMA_AMV_DECODER 0 ++#define CONFIG_ADPCM_IMA_ALP_DECODER 0 ++#define CONFIG_ADPCM_IMA_APC_DECODER 0 ++#define CONFIG_ADPCM_IMA_APM_DECODER 0 ++#define CONFIG_ADPCM_IMA_CUNNING_DECODER 0 ++#define CONFIG_ADPCM_IMA_DAT4_DECODER 0 ++#define CONFIG_ADPCM_IMA_DK3_DECODER 0 ++#define CONFIG_ADPCM_IMA_DK4_DECODER 0 ++#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 0 ++#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0 ++#define CONFIG_ADPCM_IMA_ISS_DECODER 0 ++#define CONFIG_ADPCM_IMA_MOFLEX_DECODER 0 ++#define CONFIG_ADPCM_IMA_MTF_DECODER 0 ++#define CONFIG_ADPCM_IMA_OKI_DECODER 0 ++#define CONFIG_ADPCM_IMA_QT_DECODER 0 ++#define CONFIG_ADPCM_IMA_RAD_DECODER 0 ++#define CONFIG_ADPCM_IMA_SSI_DECODER 0 ++#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0 ++#define CONFIG_ADPCM_IMA_WAV_DECODER 0 ++#define CONFIG_ADPCM_IMA_WS_DECODER 0 ++#define CONFIG_ADPCM_MS_DECODER 0 ++#define CONFIG_ADPCM_MTAF_DECODER 0 ++#define CONFIG_ADPCM_PSX_DECODER 0 ++#define CONFIG_ADPCM_SBPRO_2_DECODER 0 ++#define CONFIG_ADPCM_SBPRO_3_DECODER 0 ++#define CONFIG_ADPCM_SBPRO_4_DECODER 0 ++#define CONFIG_ADPCM_SWF_DECODER 0 ++#define CONFIG_ADPCM_THP_DECODER 0 ++#define CONFIG_ADPCM_THP_LE_DECODER 0 ++#define CONFIG_ADPCM_VIMA_DECODER 0 ++#define CONFIG_ADPCM_XA_DECODER 0 ++#define CONFIG_ADPCM_YAMAHA_DECODER 0 ++#define CONFIG_ADPCM_ZORK_DECODER 0 ++#define CONFIG_SSA_DECODER 0 ++#define CONFIG_ASS_DECODER 0 ++#define CONFIG_CCAPTION_DECODER 0 ++#define CONFIG_DVBSUB_DECODER 0 ++#define CONFIG_DVDSUB_DECODER 0 ++#define CONFIG_JACOSUB_DECODER 0 ++#define CONFIG_MICRODVD_DECODER 0 ++#define CONFIG_MOVTEXT_DECODER 0 ++#define CONFIG_MPL2_DECODER 0 ++#define CONFIG_PGSSUB_DECODER 0 ++#define CONFIG_PJS_DECODER 0 ++#define CONFIG_REALTEXT_DECODER 0 ++#define CONFIG_SAMI_DECODER 0 ++#define CONFIG_SRT_DECODER 0 ++#define CONFIG_STL_DECODER 0 ++#define CONFIG_SUBRIP_DECODER 0 ++#define CONFIG_SUBVIEWER_DECODER 0 ++#define CONFIG_SUBVIEWER1_DECODER 0 ++#define CONFIG_TEXT_DECODER 0 ++#define CONFIG_VPLAYER_DECODER 0 ++#define CONFIG_WEBVTT_DECODER 0 ++#define CONFIG_XSUB_DECODER 0 ++#define CONFIG_AAC_AT_DECODER 0 ++#define CONFIG_AC3_AT_DECODER 0 ++#define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 ++#define CONFIG_ALAC_AT_DECODER 0 ++#define CONFIG_AMR_NB_AT_DECODER 0 ++#define CONFIG_EAC3_AT_DECODER 0 ++#define CONFIG_GSM_MS_AT_DECODER 0 ++#define CONFIG_ILBC_AT_DECODER 0 ++#define CONFIG_MP1_AT_DECODER 0 ++#define CONFIG_MP2_AT_DECODER 0 ++#define CONFIG_MP3_AT_DECODER 0 ++#define CONFIG_PCM_ALAW_AT_DECODER 0 ++#define CONFIG_PCM_MULAW_AT_DECODER 0 ++#define CONFIG_QDMC_AT_DECODER 0 ++#define CONFIG_QDM2_AT_DECODER 0 ++#define CONFIG_LIBARIBB24_DECODER 0 ++#define CONFIG_LIBCELT_DECODER 0 ++#define CONFIG_LIBCODEC2_DECODER 0 ++#define CONFIG_LIBDAV1D_DECODER 0 ++#define CONFIG_LIBDAVS2_DECODER 0 ++#define CONFIG_LIBFDK_AAC_DECODER 0 ++#define CONFIG_LIBGSM_DECODER 0 ++#define CONFIG_LIBGSM_MS_DECODER 0 ++#define CONFIG_LIBILBC_DECODER 0 ++#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 ++#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 ++#define CONFIG_LIBOPENJPEG_DECODER 0 ++#define CONFIG_LIBOPUS_DECODER 1 ++#define CONFIG_LIBRSVG_DECODER 0 ++#define CONFIG_LIBSPEEX_DECODER 0 ++#define CONFIG_LIBUAVS3D_DECODER 0 ++#define CONFIG_LIBVORBIS_DECODER 0 ++#define CONFIG_LIBVPX_VP8_DECODER 0 ++#define CONFIG_LIBVPX_VP9_DECODER 0 ++#define CONFIG_LIBZVBI_TELETEXT_DECODER 0 ++#define CONFIG_BINTEXT_DECODER 0 ++#define CONFIG_XBIN_DECODER 0 ++#define CONFIG_IDF_DECODER 0 ++#define CONFIG_LIBAOM_AV1_DECODER 0 ++#define CONFIG_AV1_DECODER 0 ++#define CONFIG_AV1_CUVID_DECODER 0 ++#define CONFIG_AV1_QSV_DECODER 0 ++#define CONFIG_LIBOPENH264_DECODER 0 ++#define CONFIG_H264_CUVID_DECODER 0 ++#define CONFIG_HEVC_CUVID_DECODER 0 ++#define CONFIG_HEVC_MEDIACODEC_DECODER 0 ++#define CONFIG_MJPEG_CUVID_DECODER 0 ++#define CONFIG_MJPEG_QSV_DECODER 0 ++#define CONFIG_MPEG1_CUVID_DECODER 0 ++#define CONFIG_MPEG2_CUVID_DECODER 0 ++#define CONFIG_MPEG4_CUVID_DECODER 0 ++#define CONFIG_MPEG4_MEDIACODEC_DECODER 0 ++#define CONFIG_VC1_CUVID_DECODER 0 ++#define CONFIG_VP8_CUVID_DECODER 0 ++#define CONFIG_VP8_MEDIACODEC_DECODER 0 ++#define CONFIG_VP8_QSV_DECODER 0 ++#define CONFIG_VP9_CUVID_DECODER 0 ++#define CONFIG_VP9_MEDIACODEC_DECODER 0 ++#define CONFIG_VP9_QSV_DECODER 0 ++#define CONFIG_A64MULTI_ENCODER 0 ++#define CONFIG_A64MULTI5_ENCODER 0 ++#define CONFIG_ALIAS_PIX_ENCODER 0 ++#define CONFIG_AMV_ENCODER 0 ++#define CONFIG_APNG_ENCODER 0 ++#define CONFIG_ASV1_ENCODER 0 ++#define CONFIG_ASV2_ENCODER 0 ++#define CONFIG_AVRP_ENCODER 0 ++#define CONFIG_AVUI_ENCODER 0 ++#define CONFIG_AYUV_ENCODER 0 ++#define CONFIG_BMP_ENCODER 0 ++#define CONFIG_CFHD_ENCODER 0 ++#define CONFIG_CINEPAK_ENCODER 0 ++#define CONFIG_CLJR_ENCODER 0 ++#define CONFIG_COMFORTNOISE_ENCODER 0 ++#define CONFIG_DNXHD_ENCODER 0 ++#define CONFIG_DPX_ENCODER 0 ++#define CONFIG_DVVIDEO_ENCODER 0 ++#define CONFIG_EXR_ENCODER 0 ++#define CONFIG_FFV1_ENCODER 0 ++#define CONFIG_FFVHUFF_ENCODER 0 ++#define CONFIG_FITS_ENCODER 0 ++#define CONFIG_FLASHSV_ENCODER 0 ++#define CONFIG_FLASHSV2_ENCODER 0 ++#define CONFIG_FLV_ENCODER 0 ++#define CONFIG_GIF_ENCODER 0 ++#define CONFIG_H261_ENCODER 0 ++#define CONFIG_H263_ENCODER 0 ++#define CONFIG_H263P_ENCODER 0 ++#define CONFIG_HAP_ENCODER 0 ++#define CONFIG_HUFFYUV_ENCODER 0 ++#define CONFIG_JPEG2000_ENCODER 0 ++#define CONFIG_JPEGLS_ENCODER 0 ++#define CONFIG_LJPEG_ENCODER 0 ++#define CONFIG_MAGICYUV_ENCODER 0 ++#define CONFIG_MJPEG_ENCODER 0 ++#define CONFIG_MPEG1VIDEO_ENCODER 0 ++#define CONFIG_MPEG2VIDEO_ENCODER 0 ++#define CONFIG_MPEG4_ENCODER 0 ++#define CONFIG_MSMPEG4V2_ENCODER 0 ++#define CONFIG_MSMPEG4V3_ENCODER 0 ++#define CONFIG_MSVIDEO1_ENCODER 0 ++#define CONFIG_PAM_ENCODER 0 ++#define CONFIG_PBM_ENCODER 0 ++#define CONFIG_PCX_ENCODER 0 ++#define CONFIG_PFM_ENCODER 0 ++#define CONFIG_PGM_ENCODER 0 ++#define CONFIG_PGMYUV_ENCODER 0 ++#define CONFIG_PNG_ENCODER 0 ++#define CONFIG_PPM_ENCODER 0 ++#define CONFIG_PRORES_ENCODER 0 ++#define CONFIG_PRORES_AW_ENCODER 0 ++#define CONFIG_PRORES_KS_ENCODER 0 ++#define CONFIG_QTRLE_ENCODER 0 ++#define CONFIG_R10K_ENCODER 0 ++#define CONFIG_R210_ENCODER 0 ++#define CONFIG_RAWVIDEO_ENCODER 0 ++#define CONFIG_ROQ_ENCODER 0 ++#define CONFIG_RPZA_ENCODER 0 ++#define CONFIG_RV10_ENCODER 0 ++#define CONFIG_RV20_ENCODER 0 ++#define CONFIG_S302M_ENCODER 0 ++#define CONFIG_SGI_ENCODER 0 ++#define CONFIG_SMC_ENCODER 0 ++#define CONFIG_SNOW_ENCODER 0 ++#define CONFIG_SPEEDHQ_ENCODER 0 ++#define CONFIG_SUNRAST_ENCODER 0 ++#define CONFIG_SVQ1_ENCODER 0 ++#define CONFIG_TARGA_ENCODER 0 ++#define CONFIG_TIFF_ENCODER 0 ++#define CONFIG_UTVIDEO_ENCODER 0 ++#define CONFIG_V210_ENCODER 0 ++#define CONFIG_V308_ENCODER 0 ++#define CONFIG_V408_ENCODER 0 ++#define CONFIG_V410_ENCODER 0 ++#define CONFIG_VC2_ENCODER 0 ++#define CONFIG_WRAPPED_AVFRAME_ENCODER 0 ++#define CONFIG_WMV1_ENCODER 0 ++#define CONFIG_WMV2_ENCODER 0 ++#define CONFIG_XBM_ENCODER 0 ++#define CONFIG_XFACE_ENCODER 0 ++#define CONFIG_XWD_ENCODER 0 ++#define CONFIG_Y41P_ENCODER 0 ++#define CONFIG_YUV4_ENCODER 0 ++#define CONFIG_ZLIB_ENCODER 0 ++#define CONFIG_ZMBV_ENCODER 0 ++#define CONFIG_AAC_ENCODER 0 ++#define CONFIG_AC3_ENCODER 0 ++#define CONFIG_AC3_FIXED_ENCODER 0 ++#define CONFIG_ALAC_ENCODER 0 ++#define CONFIG_APTX_ENCODER 0 ++#define CONFIG_APTX_HD_ENCODER 0 ++#define CONFIG_DCA_ENCODER 0 ++#define CONFIG_EAC3_ENCODER 0 ++#define CONFIG_FLAC_ENCODER 0 ++#define CONFIG_G723_1_ENCODER 0 ++#define CONFIG_MLP_ENCODER 0 ++#define CONFIG_MP2_ENCODER 0 ++#define CONFIG_MP2FIXED_ENCODER 0 ++#define CONFIG_NELLYMOSER_ENCODER 0 ++#define CONFIG_OPUS_ENCODER 0 ++#define CONFIG_RA_144_ENCODER 0 ++#define CONFIG_SBC_ENCODER 0 ++#define CONFIG_SONIC_ENCODER 0 ++#define CONFIG_SONIC_LS_ENCODER 0 ++#define CONFIG_TRUEHD_ENCODER 0 ++#define CONFIG_TTA_ENCODER 0 ++#define CONFIG_VORBIS_ENCODER 0 ++#define CONFIG_WAVPACK_ENCODER 0 ++#define CONFIG_WMAV1_ENCODER 0 ++#define CONFIG_WMAV2_ENCODER 0 ++#define CONFIG_PCM_ALAW_ENCODER 0 ++#define CONFIG_PCM_DVD_ENCODER 0 ++#define CONFIG_PCM_F32BE_ENCODER 0 ++#define CONFIG_PCM_F32LE_ENCODER 0 ++#define CONFIG_PCM_F64BE_ENCODER 0 ++#define CONFIG_PCM_F64LE_ENCODER 0 ++#define CONFIG_PCM_MULAW_ENCODER 0 ++#define CONFIG_PCM_S8_ENCODER 0 ++#define CONFIG_PCM_S8_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S16BE_ENCODER 0 ++#define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S16LE_ENCODER 0 ++#define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S24BE_ENCODER 0 ++#define CONFIG_PCM_S24DAUD_ENCODER 0 ++#define CONFIG_PCM_S24LE_ENCODER 0 ++#define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S32BE_ENCODER 0 ++#define CONFIG_PCM_S32LE_ENCODER 0 ++#define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S64BE_ENCODER 0 ++#define CONFIG_PCM_S64LE_ENCODER 0 ++#define CONFIG_PCM_U8_ENCODER 0 ++#define CONFIG_PCM_U16BE_ENCODER 0 ++#define CONFIG_PCM_U16LE_ENCODER 0 ++#define CONFIG_PCM_U24BE_ENCODER 0 ++#define CONFIG_PCM_U24LE_ENCODER 0 ++#define CONFIG_PCM_U32BE_ENCODER 0 ++#define CONFIG_PCM_U32LE_ENCODER 0 ++#define CONFIG_PCM_VIDC_ENCODER 0 ++#define CONFIG_ROQ_DPCM_ENCODER 0 ++#define CONFIG_ADPCM_ADX_ENCODER 0 ++#define CONFIG_ADPCM_ARGO_ENCODER 0 ++#define CONFIG_ADPCM_G722_ENCODER 0 ++#define CONFIG_ADPCM_G726_ENCODER 0 ++#define CONFIG_ADPCM_G726LE_ENCODER 0 ++#define CONFIG_ADPCM_IMA_AMV_ENCODER 0 ++#define CONFIG_ADPCM_IMA_ALP_ENCODER 0 ++#define CONFIG_ADPCM_IMA_APM_ENCODER 0 ++#define CONFIG_ADPCM_IMA_QT_ENCODER 0 ++#define CONFIG_ADPCM_IMA_SSI_ENCODER 0 ++#define CONFIG_ADPCM_IMA_WAV_ENCODER 0 ++#define CONFIG_ADPCM_IMA_WS_ENCODER 0 ++#define CONFIG_ADPCM_MS_ENCODER 0 ++#define CONFIG_ADPCM_SWF_ENCODER 0 ++#define CONFIG_ADPCM_YAMAHA_ENCODER 0 ++#define CONFIG_SSA_ENCODER 0 ++#define CONFIG_ASS_ENCODER 0 ++#define CONFIG_DVBSUB_ENCODER 0 ++#define CONFIG_DVDSUB_ENCODER 0 ++#define CONFIG_MOVTEXT_ENCODER 0 ++#define CONFIG_SRT_ENCODER 0 ++#define CONFIG_SUBRIP_ENCODER 0 ++#define CONFIG_TEXT_ENCODER 0 ++#define CONFIG_TTML_ENCODER 0 ++#define CONFIG_WEBVTT_ENCODER 0 ++#define CONFIG_XSUB_ENCODER 0 ++#define CONFIG_AAC_AT_ENCODER 0 ++#define CONFIG_ALAC_AT_ENCODER 0 ++#define CONFIG_ILBC_AT_ENCODER 0 ++#define CONFIG_PCM_ALAW_AT_ENCODER 0 ++#define CONFIG_PCM_MULAW_AT_ENCODER 0 ++#define CONFIG_LIBAOM_AV1_ENCODER 0 ++#define CONFIG_LIBCODEC2_ENCODER 0 ++#define CONFIG_LIBFDK_AAC_ENCODER 0 ++#define CONFIG_LIBGSM_ENCODER 0 ++#define CONFIG_LIBGSM_MS_ENCODER 0 ++#define CONFIG_LIBILBC_ENCODER 0 ++#define CONFIG_LIBMP3LAME_ENCODER 0 ++#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 ++#define CONFIG_LIBOPENJPEG_ENCODER 0 ++#define CONFIG_LIBOPUS_ENCODER 0 ++#define CONFIG_LIBRAV1E_ENCODER 0 ++#define CONFIG_LIBSHINE_ENCODER 0 ++#define CONFIG_LIBSPEEX_ENCODER 0 ++#define CONFIG_LIBSVTAV1_ENCODER 0 ++#define CONFIG_LIBTHEORA_ENCODER 0 ++#define CONFIG_LIBTWOLAME_ENCODER 0 ++#define CONFIG_LIBVO_AMRWBENC_ENCODER 0 ++#define CONFIG_LIBVORBIS_ENCODER 0 ++#define CONFIG_LIBVPX_VP8_ENCODER 0 ++#define CONFIG_LIBVPX_VP9_ENCODER 0 ++#define CONFIG_LIBWEBP_ANIM_ENCODER 0 ++#define CONFIG_LIBWEBP_ENCODER 0 ++#define CONFIG_LIBX262_ENCODER 0 ++#define CONFIG_LIBX264_ENCODER 0 ++#define CONFIG_LIBX264RGB_ENCODER 0 ++#define CONFIG_LIBX265_ENCODER 0 ++#define CONFIG_LIBXAVS_ENCODER 0 ++#define CONFIG_LIBXAVS2_ENCODER 0 ++#define CONFIG_LIBXVID_ENCODER 0 ++#define CONFIG_AAC_MF_ENCODER 0 ++#define CONFIG_AC3_MF_ENCODER 0 ++#define CONFIG_H263_V4L2M2M_ENCODER 0 ++#define CONFIG_LIBOPENH264_ENCODER 0 ++#define CONFIG_H264_AMF_ENCODER 0 ++#define CONFIG_H264_MF_ENCODER 0 ++#define CONFIG_H264_NVENC_ENCODER 0 ++#define CONFIG_H264_OMX_ENCODER 0 ++#define CONFIG_H264_QSV_ENCODER 0 ++#define CONFIG_H264_V4L2M2M_ENCODER 0 ++#define CONFIG_H264_VAAPI_ENCODER 0 ++#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 ++#define CONFIG_HEVC_AMF_ENCODER 0 ++#define CONFIG_HEVC_MF_ENCODER 0 ++#define CONFIG_HEVC_NVENC_ENCODER 0 ++#define CONFIG_HEVC_QSV_ENCODER 0 ++#define CONFIG_HEVC_V4L2M2M_ENCODER 0 ++#define CONFIG_HEVC_VAAPI_ENCODER 0 ++#define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 ++#define CONFIG_LIBKVAZAAR_ENCODER 0 ++#define CONFIG_MJPEG_QSV_ENCODER 0 ++#define CONFIG_MJPEG_VAAPI_ENCODER 0 ++#define CONFIG_MP3_MF_ENCODER 0 ++#define CONFIG_MPEG2_QSV_ENCODER 0 ++#define CONFIG_MPEG2_VAAPI_ENCODER 0 ++#define CONFIG_MPEG4_OMX_ENCODER 0 ++#define CONFIG_MPEG4_V4L2M2M_ENCODER 0 ++#define CONFIG_VP8_V4L2M2M_ENCODER 0 ++#define CONFIG_VP8_VAAPI_ENCODER 0 ++#define CONFIG_VP9_VAAPI_ENCODER 0 ++#define CONFIG_VP9_QSV_ENCODER 0 ++#define CONFIG_AV1_D3D11VA_HWACCEL 0 ++#define CONFIG_AV1_D3D11VA2_HWACCEL 0 ++#define CONFIG_AV1_DXVA2_HWACCEL 0 ++#define CONFIG_AV1_NVDEC_HWACCEL 0 ++#define CONFIG_AV1_VAAPI_HWACCEL 0 ++#define CONFIG_H263_VAAPI_HWACCEL 0 ++#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_H264_D3D11VA_HWACCEL 0 ++#define CONFIG_H264_D3D11VA2_HWACCEL 0 ++#define CONFIG_H264_DXVA2_HWACCEL 0 ++#define CONFIG_H264_NVDEC_HWACCEL 0 ++#define CONFIG_H264_VAAPI_HWACCEL 0 ++#define CONFIG_H264_VDPAU_HWACCEL 0 ++#define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_HEVC_D3D11VA_HWACCEL 0 ++#define CONFIG_HEVC_D3D11VA2_HWACCEL 0 ++#define CONFIG_HEVC_DXVA2_HWACCEL 0 ++#define CONFIG_HEVC_NVDEC_HWACCEL 0 ++#define CONFIG_HEVC_VAAPI_HWACCEL 0 ++#define CONFIG_HEVC_VDPAU_HWACCEL 0 ++#define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_MJPEG_NVDEC_HWACCEL 0 ++#define CONFIG_MJPEG_VAAPI_HWACCEL 0 ++#define CONFIG_MPEG1_NVDEC_HWACCEL 0 ++#define CONFIG_MPEG1_VDPAU_HWACCEL 0 ++#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_MPEG1_XVMC_HWACCEL 0 ++#define CONFIG_MPEG2_D3D11VA_HWACCEL 0 ++#define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 ++#define CONFIG_MPEG2_NVDEC_HWACCEL 0 ++#define CONFIG_MPEG2_DXVA2_HWACCEL 0 ++#define CONFIG_MPEG2_VAAPI_HWACCEL 0 ++#define CONFIG_MPEG2_VDPAU_HWACCEL 0 ++#define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_MPEG2_XVMC_HWACCEL 0 ++#define CONFIG_MPEG4_NVDEC_HWACCEL 0 ++#define CONFIG_MPEG4_VAAPI_HWACCEL 0 ++#define CONFIG_MPEG4_VDPAU_HWACCEL 0 ++#define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_VC1_D3D11VA_HWACCEL 0 ++#define CONFIG_VC1_D3D11VA2_HWACCEL 0 ++#define CONFIG_VC1_DXVA2_HWACCEL 0 ++#define CONFIG_VC1_NVDEC_HWACCEL 0 ++#define CONFIG_VC1_VAAPI_HWACCEL 0 ++#define CONFIG_VC1_VDPAU_HWACCEL 0 ++#define CONFIG_VP8_NVDEC_HWACCEL 0 ++#define CONFIG_VP8_VAAPI_HWACCEL 0 ++#define CONFIG_VP9_D3D11VA_HWACCEL 0 ++#define CONFIG_VP9_D3D11VA2_HWACCEL 0 ++#define CONFIG_VP9_DXVA2_HWACCEL 0 ++#define CONFIG_VP9_NVDEC_HWACCEL 0 ++#define CONFIG_VP9_VAAPI_HWACCEL 0 ++#define CONFIG_VP9_VDPAU_HWACCEL 0 ++#define CONFIG_WMV3_D3D11VA_HWACCEL 0 ++#define CONFIG_WMV3_D3D11VA2_HWACCEL 0 ++#define CONFIG_WMV3_DXVA2_HWACCEL 0 ++#define CONFIG_WMV3_NVDEC_HWACCEL 0 ++#define CONFIG_WMV3_VAAPI_HWACCEL 0 ++#define CONFIG_WMV3_VDPAU_HWACCEL 0 ++#define CONFIG_AAC_PARSER 1 ++#define CONFIG_AAC_LATM_PARSER 0 ++#define CONFIG_AC3_PARSER 0 ++#define CONFIG_ADX_PARSER 0 ++#define CONFIG_AMR_PARSER 0 ++#define CONFIG_AV1_PARSER 0 ++#define CONFIG_AVS2_PARSER 0 ++#define CONFIG_AVS3_PARSER 0 ++#define CONFIG_BMP_PARSER 0 ++#define CONFIG_CAVSVIDEO_PARSER 0 ++#define CONFIG_COOK_PARSER 0 ++#define CONFIG_CRI_PARSER 0 ++#define CONFIG_DCA_PARSER 0 ++#define CONFIG_DIRAC_PARSER 0 ++#define CONFIG_DNXHD_PARSER 0 ++#define CONFIG_DOLBY_E_PARSER 0 ++#define CONFIG_DPX_PARSER 0 ++#define CONFIG_DVAUDIO_PARSER 0 ++#define CONFIG_DVBSUB_PARSER 0 ++#define CONFIG_DVDSUB_PARSER 0 ++#define CONFIG_DVD_NAV_PARSER 0 ++#define CONFIG_FLAC_PARSER 1 ++#define CONFIG_G723_1_PARSER 0 ++#define CONFIG_G729_PARSER 0 ++#define CONFIG_GIF_PARSER 0 ++#define CONFIG_GSM_PARSER 0 ++#define CONFIG_H261_PARSER 0 ++#define CONFIG_H263_PARSER 0 ++#define CONFIG_H264_PARSER 1 ++#define CONFIG_HEVC_PARSER 0 ++#define CONFIG_IPU_PARSER 0 ++#define CONFIG_JPEG2000_PARSER 0 ++#define CONFIG_MJPEG_PARSER 0 ++#define CONFIG_MLP_PARSER 0 ++#define CONFIG_MPEG4VIDEO_PARSER 0 ++#define CONFIG_MPEGAUDIO_PARSER 1 ++#define CONFIG_MPEGVIDEO_PARSER 0 ++#define CONFIG_OPUS_PARSER 1 ++#define CONFIG_PNG_PARSER 0 ++#define CONFIG_PNM_PARSER 0 ++#define CONFIG_RV30_PARSER 0 ++#define CONFIG_RV40_PARSER 0 ++#define CONFIG_SBC_PARSER 0 ++#define CONFIG_SIPR_PARSER 0 ++#define CONFIG_TAK_PARSER 0 ++#define CONFIG_VC1_PARSER 0 ++#define CONFIG_VORBIS_PARSER 1 ++#define CONFIG_VP3_PARSER 1 ++#define CONFIG_VP8_PARSER 1 ++#define CONFIG_VP9_PARSER 1 ++#define CONFIG_WEBP_PARSER 0 ++#define CONFIG_XBM_PARSER 0 ++#define CONFIG_XMA_PARSER 0 ++#define CONFIG_ALSA_INDEV 0 ++#define CONFIG_ANDROID_CAMERA_INDEV 0 ++#define CONFIG_AVFOUNDATION_INDEV 0 ++#define CONFIG_BKTR_INDEV 0 ++#define CONFIG_DECKLINK_INDEV 0 ++#define CONFIG_DSHOW_INDEV 0 ++#define CONFIG_FBDEV_INDEV 0 ++#define CONFIG_GDIGRAB_INDEV 0 ++#define CONFIG_IEC61883_INDEV 0 ++#define CONFIG_JACK_INDEV 0 ++#define CONFIG_KMSGRAB_INDEV 0 ++#define CONFIG_LAVFI_INDEV 0 ++#define CONFIG_OPENAL_INDEV 0 ++#define CONFIG_OSS_INDEV 0 ++#define CONFIG_PULSE_INDEV 0 ++#define CONFIG_SNDIO_INDEV 0 ++#define CONFIG_V4L2_INDEV 0 ++#define CONFIG_VFWCAP_INDEV 0 ++#define CONFIG_XCBGRAB_INDEV 0 ++#define CONFIG_LIBCDIO_INDEV 0 ++#define CONFIG_LIBDC1394_INDEV 0 ++#define CONFIG_ALSA_OUTDEV 0 ++#define CONFIG_AUDIOTOOLBOX_OUTDEV 0 ++#define CONFIG_CACA_OUTDEV 0 ++#define CONFIG_DECKLINK_OUTDEV 0 ++#define CONFIG_FBDEV_OUTDEV 0 ++#define CONFIG_OPENGL_OUTDEV 0 ++#define CONFIG_OSS_OUTDEV 0 ++#define CONFIG_PULSE_OUTDEV 0 ++#define CONFIG_SDL2_OUTDEV 0 ++#define CONFIG_SNDIO_OUTDEV 0 ++#define CONFIG_V4L2_OUTDEV 0 ++#define CONFIG_XV_OUTDEV 0 ++#define CONFIG_ABENCH_FILTER 0 ++#define CONFIG_ACOMPRESSOR_FILTER 0 ++#define CONFIG_ACONTRAST_FILTER 0 ++#define CONFIG_ACOPY_FILTER 0 ++#define CONFIG_ACUE_FILTER 0 ++#define CONFIG_ACROSSFADE_FILTER 0 ++#define CONFIG_ACROSSOVER_FILTER 0 ++#define CONFIG_ACRUSHER_FILTER 0 ++#define CONFIG_ADECLICK_FILTER 0 ++#define CONFIG_ADECLIP_FILTER 0 ++#define CONFIG_ADECORRELATE_FILTER 0 ++#define CONFIG_ADELAY_FILTER 0 ++#define CONFIG_ADENORM_FILTER 0 ++#define CONFIG_ADERIVATIVE_FILTER 0 ++#define CONFIG_AECHO_FILTER 0 ++#define CONFIG_AEMPHASIS_FILTER 0 ++#define CONFIG_AEVAL_FILTER 0 ++#define CONFIG_AEXCITER_FILTER 0 ++#define CONFIG_AFADE_FILTER 0 ++#define CONFIG_AFFTDN_FILTER 0 ++#define CONFIG_AFFTFILT_FILTER 0 ++#define CONFIG_AFIR_FILTER 0 ++#define CONFIG_AFORMAT_FILTER 0 ++#define CONFIG_AFREQSHIFT_FILTER 0 ++#define CONFIG_AFWTDN_FILTER 0 ++#define CONFIG_AGATE_FILTER 0 ++#define CONFIG_AIIR_FILTER 0 ++#define CONFIG_AINTEGRAL_FILTER 0 ++#define CONFIG_AINTERLEAVE_FILTER 0 ++#define CONFIG_ALATENCY_FILTER 0 ++#define CONFIG_ALIMITER_FILTER 0 ++#define CONFIG_ALLPASS_FILTER 0 ++#define CONFIG_ALOOP_FILTER 0 ++#define CONFIG_AMERGE_FILTER 0 ++#define CONFIG_AMETADATA_FILTER 0 ++#define CONFIG_AMIX_FILTER 0 ++#define CONFIG_AMULTIPLY_FILTER 0 ++#define CONFIG_ANEQUALIZER_FILTER 0 ++#define CONFIG_ANLMDN_FILTER 0 ++#define CONFIG_ANLMS_FILTER 0 ++#define CONFIG_ANULL_FILTER 0 ++#define CONFIG_APAD_FILTER 0 ++#define CONFIG_APERMS_FILTER 0 ++#define CONFIG_APHASER_FILTER 0 ++#define CONFIG_APHASESHIFT_FILTER 0 ++#define CONFIG_APSYCLIP_FILTER 0 ++#define CONFIG_APULSATOR_FILTER 0 ++#define CONFIG_AREALTIME_FILTER 0 ++#define CONFIG_ARESAMPLE_FILTER 0 ++#define CONFIG_AREVERSE_FILTER 0 ++#define CONFIG_ARNNDN_FILTER 0 ++#define CONFIG_ASDR_FILTER 0 ++#define CONFIG_ASEGMENT_FILTER 0 ++#define CONFIG_ASELECT_FILTER 0 ++#define CONFIG_ASENDCMD_FILTER 0 ++#define CONFIG_ASETNSAMPLES_FILTER 0 ++#define CONFIG_ASETPTS_FILTER 0 ++#define CONFIG_ASETRATE_FILTER 0 ++#define CONFIG_ASETTB_FILTER 0 ++#define CONFIG_ASHOWINFO_FILTER 0 ++#define CONFIG_ASIDEDATA_FILTER 0 ++#define CONFIG_ASOFTCLIP_FILTER 0 ++#define CONFIG_ASPLIT_FILTER 0 ++#define CONFIG_ASR_FILTER 0 ++#define CONFIG_ASTATS_FILTER 0 ++#define CONFIG_ASTREAMSELECT_FILTER 0 ++#define CONFIG_ASUBBOOST_FILTER 0 ++#define CONFIG_ASUBCUT_FILTER 0 ++#define CONFIG_ASUPERCUT_FILTER 0 ++#define CONFIG_ASUPERPASS_FILTER 0 ++#define CONFIG_ASUPERSTOP_FILTER 0 ++#define CONFIG_ATEMPO_FILTER 0 ++#define CONFIG_ATILT_FILTER 0 ++#define CONFIG_ATRIM_FILTER 0 ++#define CONFIG_AXCORRELATE_FILTER 0 ++#define CONFIG_AZMQ_FILTER 0 ++#define CONFIG_BANDPASS_FILTER 0 ++#define CONFIG_BANDREJECT_FILTER 0 ++#define CONFIG_BASS_FILTER 0 ++#define CONFIG_BIQUAD_FILTER 0 ++#define CONFIG_BS2B_FILTER 0 ++#define CONFIG_CHROMABER_VULKAN_FILTER 0 ++#define CONFIG_CHANNELMAP_FILTER 0 ++#define CONFIG_CHANNELSPLIT_FILTER 0 ++#define CONFIG_CHORUS_FILTER 0 ++#define CONFIG_COMPAND_FILTER 0 ++#define CONFIG_COMPENSATIONDELAY_FILTER 0 ++#define CONFIG_CROSSFEED_FILTER 0 ++#define CONFIG_CRYSTALIZER_FILTER 0 ++#define CONFIG_DCSHIFT_FILTER 0 ++#define CONFIG_DEESSER_FILTER 0 ++#define CONFIG_DRMETER_FILTER 0 ++#define CONFIG_DYNAUDNORM_FILTER 0 ++#define CONFIG_EARWAX_FILTER 0 ++#define CONFIG_EBUR128_FILTER 0 ++#define CONFIG_EQUALIZER_FILTER 0 ++#define CONFIG_EXTRASTEREO_FILTER 0 ++#define CONFIG_FIREQUALIZER_FILTER 0 ++#define CONFIG_FLANGER_FILTER 0 ++#define CONFIG_HAAS_FILTER 0 ++#define CONFIG_HDCD_FILTER 0 ++#define CONFIG_HEADPHONE_FILTER 0 ++#define CONFIG_HIGHPASS_FILTER 0 ++#define CONFIG_HIGHSHELF_FILTER 0 ++#define CONFIG_JOIN_FILTER 0 ++#define CONFIG_LADSPA_FILTER 0 ++#define CONFIG_LOUDNORM_FILTER 0 ++#define CONFIG_LOWPASS_FILTER 0 ++#define CONFIG_LOWSHELF_FILTER 0 ++#define CONFIG_LV2_FILTER 0 ++#define CONFIG_MCOMPAND_FILTER 0 ++#define CONFIG_PAN_FILTER 0 ++#define CONFIG_REPLAYGAIN_FILTER 0 ++#define CONFIG_RUBBERBAND_FILTER 0 ++#define CONFIG_SIDECHAINCOMPRESS_FILTER 0 ++#define CONFIG_SIDECHAINGATE_FILTER 0 ++#define CONFIG_SILENCEDETECT_FILTER 0 ++#define CONFIG_SILENCEREMOVE_FILTER 0 ++#define CONFIG_SOFALIZER_FILTER 0 ++#define CONFIG_SPEECHNORM_FILTER 0 ++#define CONFIG_STEREOTOOLS_FILTER 0 ++#define CONFIG_STEREOWIDEN_FILTER 0 ++#define CONFIG_SUPEREQUALIZER_FILTER 0 ++#define CONFIG_SURROUND_FILTER 0 ++#define CONFIG_TREBLE_FILTER 0 ++#define CONFIG_TREMOLO_FILTER 0 ++#define CONFIG_VIBRATO_FILTER 0 ++#define CONFIG_VOLUME_FILTER 0 ++#define CONFIG_VOLUMEDETECT_FILTER 0 ++#define CONFIG_AEVALSRC_FILTER 0 ++#define CONFIG_AFIRSRC_FILTER 0 ++#define CONFIG_ANOISESRC_FILTER 0 ++#define CONFIG_ANULLSRC_FILTER 0 ++#define CONFIG_FLITE_FILTER 0 ++#define CONFIG_HILBERT_FILTER 0 ++#define CONFIG_SINC_FILTER 0 ++#define CONFIG_SINE_FILTER 0 ++#define CONFIG_ANULLSINK_FILTER 0 ++#define CONFIG_ADDROI_FILTER 0 ++#define CONFIG_ALPHAEXTRACT_FILTER 0 ++#define CONFIG_ALPHAMERGE_FILTER 0 ++#define CONFIG_AMPLIFY_FILTER 0 ++#define CONFIG_ASS_FILTER 0 ++#define CONFIG_ATADENOISE_FILTER 0 ++#define CONFIG_AVGBLUR_FILTER 0 ++#define CONFIG_AVGBLUR_OPENCL_FILTER 0 ++#define CONFIG_AVGBLUR_VULKAN_FILTER 0 ++#define CONFIG_BBOX_FILTER 0 ++#define CONFIG_BENCH_FILTER 0 ++#define CONFIG_BILATERAL_FILTER 0 ++#define CONFIG_BITPLANENOISE_FILTER 0 ++#define CONFIG_BLACKDETECT_FILTER 0 ++#define CONFIG_BLACKFRAME_FILTER 0 ++#define CONFIG_BLEND_FILTER 0 ++#define CONFIG_BM3D_FILTER 0 ++#define CONFIG_BOXBLUR_FILTER 0 ++#define CONFIG_BOXBLUR_OPENCL_FILTER 0 ++#define CONFIG_BWDIF_FILTER 0 ++#define CONFIG_CAS_FILTER 0 ++#define CONFIG_CHROMAHOLD_FILTER 0 ++#define CONFIG_CHROMAKEY_FILTER 0 ++#define CONFIG_CHROMANR_FILTER 0 ++#define CONFIG_CHROMASHIFT_FILTER 0 ++#define CONFIG_CIESCOPE_FILTER 0 ++#define CONFIG_CODECVIEW_FILTER 0 ++#define CONFIG_COLORBALANCE_FILTER 0 ++#define CONFIG_COLORCHANNELMIXER_FILTER 0 ++#define CONFIG_COLORCONTRAST_FILTER 0 ++#define CONFIG_COLORCORRECT_FILTER 0 ++#define CONFIG_COLORIZE_FILTER 0 ++#define CONFIG_COLORKEY_FILTER 0 ++#define CONFIG_COLORKEY_OPENCL_FILTER 0 ++#define CONFIG_COLORHOLD_FILTER 0 ++#define CONFIG_COLORLEVELS_FILTER 0 ++#define CONFIG_COLORMATRIX_FILTER 0 ++#define CONFIG_COLORSPACE_FILTER 0 ++#define CONFIG_COLORTEMPERATURE_FILTER 0 ++#define CONFIG_CONVOLUTION_FILTER 0 ++#define CONFIG_CONVOLUTION_OPENCL_FILTER 0 ++#define CONFIG_CONVOLVE_FILTER 0 ++#define CONFIG_COPY_FILTER 0 ++#define CONFIG_COREIMAGE_FILTER 0 ++#define CONFIG_COVER_RECT_FILTER 0 ++#define CONFIG_CROP_FILTER 0 ++#define CONFIG_CROPDETECT_FILTER 0 ++#define CONFIG_CUE_FILTER 0 ++#define CONFIG_CURVES_FILTER 0 ++#define CONFIG_DATASCOPE_FILTER 0 ++#define CONFIG_DBLUR_FILTER 0 ++#define CONFIG_DCTDNOIZ_FILTER 0 ++#define CONFIG_DEBAND_FILTER 0 ++#define CONFIG_DEBLOCK_FILTER 0 ++#define CONFIG_DECIMATE_FILTER 0 ++#define CONFIG_DECONVOLVE_FILTER 0 ++#define CONFIG_DEDOT_FILTER 0 ++#define CONFIG_DEFLATE_FILTER 0 ++#define CONFIG_DEFLICKER_FILTER 0 ++#define CONFIG_DEINTERLACE_QSV_FILTER 0 ++#define CONFIG_DEINTERLACE_VAAPI_FILTER 0 ++#define CONFIG_DEJUDDER_FILTER 0 ++#define CONFIG_DELOGO_FILTER 0 ++#define CONFIG_DENOISE_VAAPI_FILTER 0 ++#define CONFIG_DERAIN_FILTER 0 ++#define CONFIG_DESHAKE_FILTER 0 ++#define CONFIG_DESHAKE_OPENCL_FILTER 0 ++#define CONFIG_DESPILL_FILTER 0 ++#define CONFIG_DETELECINE_FILTER 0 ++#define CONFIG_DILATION_FILTER 0 ++#define CONFIG_DILATION_OPENCL_FILTER 0 ++#define CONFIG_DISPLACE_FILTER 0 ++#define CONFIG_DNN_CLASSIFY_FILTER 0 ++#define CONFIG_DNN_DETECT_FILTER 0 ++#define CONFIG_DNN_PROCESSING_FILTER 0 ++#define CONFIG_DOUBLEWEAVE_FILTER 0 ++#define CONFIG_DRAWBOX_FILTER 0 ++#define CONFIG_DRAWGRAPH_FILTER 0 ++#define CONFIG_DRAWGRID_FILTER 0 ++#define CONFIG_DRAWTEXT_FILTER 0 ++#define CONFIG_EDGEDETECT_FILTER 0 ++#define CONFIG_ELBG_FILTER 0 ++#define CONFIG_ENTROPY_FILTER 0 ++#define CONFIG_EPX_FILTER 0 ++#define CONFIG_EQ_FILTER 0 ++#define CONFIG_EROSION_FILTER 0 ++#define CONFIG_EROSION_OPENCL_FILTER 0 ++#define CONFIG_ESTDIF_FILTER 0 ++#define CONFIG_EXPOSURE_FILTER 0 ++#define CONFIG_EXTRACTPLANES_FILTER 0 ++#define CONFIG_FADE_FILTER 0 ++#define CONFIG_FFTDNOIZ_FILTER 0 ++#define CONFIG_FFTFILT_FILTER 0 ++#define CONFIG_FIELD_FILTER 0 ++#define CONFIG_FIELDHINT_FILTER 0 ++#define CONFIG_FIELDMATCH_FILTER 0 ++#define CONFIG_FIELDORDER_FILTER 0 ++#define CONFIG_FILLBORDERS_FILTER 0 ++#define CONFIG_FIND_RECT_FILTER 0 ++#define CONFIG_FLOODFILL_FILTER 0 ++#define CONFIG_FORMAT_FILTER 0 ++#define CONFIG_FPS_FILTER 0 ++#define CONFIG_FRAMEPACK_FILTER 0 ++#define CONFIG_FRAMERATE_FILTER 0 ++#define CONFIG_FRAMESTEP_FILTER 0 ++#define CONFIG_FREEZEDETECT_FILTER 0 ++#define CONFIG_FREEZEFRAMES_FILTER 0 ++#define CONFIG_FREI0R_FILTER 0 ++#define CONFIG_FSPP_FILTER 0 ++#define CONFIG_GBLUR_FILTER 0 ++#define CONFIG_GEQ_FILTER 0 ++#define CONFIG_GRADFUN_FILTER 0 ++#define CONFIG_GRAPHMONITOR_FILTER 0 ++#define CONFIG_GRAYWORLD_FILTER 0 ++#define CONFIG_GREYEDGE_FILTER 0 ++#define CONFIG_GUIDED_FILTER 0 ++#define CONFIG_HALDCLUT_FILTER 0 ++#define CONFIG_HFLIP_FILTER 0 ++#define CONFIG_HISTEQ_FILTER 0 ++#define CONFIG_HISTOGRAM_FILTER 0 ++#define CONFIG_HQDN3D_FILTER 0 ++#define CONFIG_HQX_FILTER 0 ++#define CONFIG_HSTACK_FILTER 0 ++#define CONFIG_HSVHOLD_FILTER 0 ++#define CONFIG_HSVKEY_FILTER 0 ++#define CONFIG_HUE_FILTER 0 ++#define CONFIG_HUESATURATION_FILTER 0 ++#define CONFIG_HWDOWNLOAD_FILTER 0 ++#define CONFIG_HWMAP_FILTER 0 ++#define CONFIG_HWUPLOAD_FILTER 0 ++#define CONFIG_HWUPLOAD_CUDA_FILTER 0 ++#define CONFIG_HYSTERESIS_FILTER 0 ++#define CONFIG_IDENTITY_FILTER 0 ++#define CONFIG_IDET_FILTER 0 ++#define CONFIG_IL_FILTER 0 ++#define CONFIG_INFLATE_FILTER 0 ++#define CONFIG_INTERLACE_FILTER 0 ++#define CONFIG_INTERLEAVE_FILTER 0 ++#define CONFIG_KERNDEINT_FILTER 0 ++#define CONFIG_KIRSCH_FILTER 0 ++#define CONFIG_LAGFUN_FILTER 0 ++#define CONFIG_LATENCY_FILTER 0 ++#define CONFIG_LENSCORRECTION_FILTER 0 ++#define CONFIG_LENSFUN_FILTER 0 ++#define CONFIG_LIBVMAF_FILTER 0 ++#define CONFIG_LIMITDIFF_FILTER 0 ++#define CONFIG_LIMITER_FILTER 0 ++#define CONFIG_LOOP_FILTER 0 ++#define CONFIG_LUMAKEY_FILTER 0 ++#define CONFIG_LUT_FILTER 0 ++#define CONFIG_LUT1D_FILTER 0 ++#define CONFIG_LUT2_FILTER 0 ++#define CONFIG_LUT3D_FILTER 0 ++#define CONFIG_LUTRGB_FILTER 0 ++#define CONFIG_LUTYUV_FILTER 0 ++#define CONFIG_MASKEDCLAMP_FILTER 0 ++#define CONFIG_MASKEDMAX_FILTER 0 ++#define CONFIG_MASKEDMERGE_FILTER 0 ++#define CONFIG_MASKEDMIN_FILTER 0 ++#define CONFIG_MASKEDTHRESHOLD_FILTER 0 ++#define CONFIG_MASKFUN_FILTER 0 ++#define CONFIG_MCDEINT_FILTER 0 ++#define CONFIG_MEDIAN_FILTER 0 ++#define CONFIG_MERGEPLANES_FILTER 0 ++#define CONFIG_MESTIMATE_FILTER 0 ++#define CONFIG_METADATA_FILTER 0 ++#define CONFIG_MIDEQUALIZER_FILTER 0 ++#define CONFIG_MINTERPOLATE_FILTER 0 ++#define CONFIG_MIX_FILTER 0 ++#define CONFIG_MONOCHROME_FILTER 0 ++#define CONFIG_MORPHO_FILTER 0 ++#define CONFIG_MPDECIMATE_FILTER 0 ++#define CONFIG_MSAD_FILTER 0 ++#define CONFIG_NEGATE_FILTER 0 ++#define CONFIG_NLMEANS_FILTER 0 ++#define CONFIG_NLMEANS_OPENCL_FILTER 0 ++#define CONFIG_NNEDI_FILTER 0 ++#define CONFIG_NOFORMAT_FILTER 0 ++#define CONFIG_NOISE_FILTER 0 ++#define CONFIG_NORMALIZE_FILTER 0 ++#define CONFIG_NULL_FILTER 0 ++#define CONFIG_OCR_FILTER 0 ++#define CONFIG_OCV_FILTER 0 ++#define CONFIG_OSCILLOSCOPE_FILTER 0 ++#define CONFIG_OVERLAY_FILTER 0 ++#define CONFIG_OVERLAY_OPENCL_FILTER 0 ++#define CONFIG_OVERLAY_QSV_FILTER 0 ++#define CONFIG_OVERLAY_VULKAN_FILTER 0 ++#define CONFIG_OVERLAY_CUDA_FILTER 0 ++#define CONFIG_OWDENOISE_FILTER 0 ++#define CONFIG_PAD_FILTER 0 ++#define CONFIG_PAD_OPENCL_FILTER 0 ++#define CONFIG_PALETTEGEN_FILTER 0 ++#define CONFIG_PALETTEUSE_FILTER 0 ++#define CONFIG_PERMS_FILTER 0 ++#define CONFIG_PERSPECTIVE_FILTER 0 ++#define CONFIG_PHASE_FILTER 0 ++#define CONFIG_PHOTOSENSITIVITY_FILTER 0 ++#define CONFIG_PIXDESCTEST_FILTER 0 ++#define CONFIG_PIXSCOPE_FILTER 0 ++#define CONFIG_PP_FILTER 0 ++#define CONFIG_PP7_FILTER 0 ++#define CONFIG_PREMULTIPLY_FILTER 0 ++#define CONFIG_PREWITT_FILTER 0 ++#define CONFIG_PREWITT_OPENCL_FILTER 0 ++#define CONFIG_PROCAMP_VAAPI_FILTER 0 ++#define CONFIG_PROGRAM_OPENCL_FILTER 0 ++#define CONFIG_PSEUDOCOLOR_FILTER 0 ++#define CONFIG_PSNR_FILTER 0 ++#define CONFIG_PULLUP_FILTER 0 ++#define CONFIG_QP_FILTER 0 ++#define CONFIG_RANDOM_FILTER 0 ++#define CONFIG_READEIA608_FILTER 0 ++#define CONFIG_READVITC_FILTER 0 ++#define CONFIG_REALTIME_FILTER 0 ++#define CONFIG_REMAP_FILTER 0 ++#define CONFIG_REMOVEGRAIN_FILTER 0 ++#define CONFIG_REMOVELOGO_FILTER 0 ++#define CONFIG_REPEATFIELDS_FILTER 0 ++#define CONFIG_REVERSE_FILTER 0 ++#define CONFIG_RGBASHIFT_FILTER 0 ++#define CONFIG_ROBERTS_FILTER 0 ++#define CONFIG_ROBERTS_OPENCL_FILTER 0 ++#define CONFIG_ROTATE_FILTER 0 ++#define CONFIG_SAB_FILTER 0 ++#define CONFIG_SCALE_FILTER 0 ++#define CONFIG_SCALE_CUDA_FILTER 0 ++#define CONFIG_SCALE_NPP_FILTER 0 ++#define CONFIG_SCALE_QSV_FILTER 0 ++#define CONFIG_SCALE_VAAPI_FILTER 0 ++#define CONFIG_SCALE_VULKAN_FILTER 0 ++#define CONFIG_SCALE2REF_FILTER 0 ++#define CONFIG_SCALE2REF_NPP_FILTER 0 ++#define CONFIG_SCDET_FILTER 0 ++#define CONFIG_SCHARR_FILTER 0 ++#define CONFIG_SCROLL_FILTER 0 ++#define CONFIG_SEGMENT_FILTER 0 ++#define CONFIG_SELECT_FILTER 0 ++#define CONFIG_SELECTIVECOLOR_FILTER 0 ++#define CONFIG_SENDCMD_FILTER 0 ++#define CONFIG_SEPARATEFIELDS_FILTER 0 ++#define CONFIG_SETDAR_FILTER 0 ++#define CONFIG_SETFIELD_FILTER 0 ++#define CONFIG_SETPARAMS_FILTER 0 ++#define CONFIG_SETPTS_FILTER 0 ++#define CONFIG_SETRANGE_FILTER 0 ++#define CONFIG_SETSAR_FILTER 0 ++#define CONFIG_SETTB_FILTER 0 ++#define CONFIG_SHARPEN_NPP_FILTER 0 ++#define CONFIG_SHARPNESS_VAAPI_FILTER 0 ++#define CONFIG_SHEAR_FILTER 0 ++#define CONFIG_SHOWINFO_FILTER 0 ++#define CONFIG_SHOWPALETTE_FILTER 0 ++#define CONFIG_SHUFFLEFRAMES_FILTER 0 ++#define CONFIG_SHUFFLEPIXELS_FILTER 0 ++#define CONFIG_SHUFFLEPLANES_FILTER 0 ++#define CONFIG_SIDEDATA_FILTER 0 ++#define CONFIG_SIGNALSTATS_FILTER 0 ++#define CONFIG_SIGNATURE_FILTER 0 ++#define CONFIG_SMARTBLUR_FILTER 0 ++#define CONFIG_SOBEL_FILTER 0 ++#define CONFIG_SOBEL_OPENCL_FILTER 0 ++#define CONFIG_SPLIT_FILTER 0 ++#define CONFIG_SPP_FILTER 0 ++#define CONFIG_SR_FILTER 0 ++#define CONFIG_SSIM_FILTER 0 ++#define CONFIG_STEREO3D_FILTER 0 ++#define CONFIG_STREAMSELECT_FILTER 0 ++#define CONFIG_SUBTITLES_FILTER 0 ++#define CONFIG_SUPER2XSAI_FILTER 0 ++#define CONFIG_SWAPRECT_FILTER 0 ++#define CONFIG_SWAPUV_FILTER 0 ++#define CONFIG_TBLEND_FILTER 0 ++#define CONFIG_TELECINE_FILTER 0 ++#define CONFIG_THISTOGRAM_FILTER 0 ++#define CONFIG_THRESHOLD_FILTER 0 ++#define CONFIG_THUMBNAIL_FILTER 0 ++#define CONFIG_THUMBNAIL_CUDA_FILTER 0 ++#define CONFIG_TILE_FILTER 0 ++#define CONFIG_TINTERLACE_FILTER 0 ++#define CONFIG_TLUT2_FILTER 0 ++#define CONFIG_TMEDIAN_FILTER 0 ++#define CONFIG_TMIDEQUALIZER_FILTER 0 ++#define CONFIG_TMIX_FILTER 0 ++#define CONFIG_TONEMAP_FILTER 0 ++#define CONFIG_TONEMAP_OPENCL_FILTER 0 ++#define CONFIG_TONEMAP_VAAPI_FILTER 0 ++#define CONFIG_TPAD_FILTER 0 ++#define CONFIG_TRANSPOSE_FILTER 0 ++#define CONFIG_TRANSPOSE_NPP_FILTER 0 ++#define CONFIG_TRANSPOSE_OPENCL_FILTER 0 ++#define CONFIG_TRANSPOSE_VAAPI_FILTER 0 ++#define CONFIG_TRIM_FILTER 0 ++#define CONFIG_UNPREMULTIPLY_FILTER 0 ++#define CONFIG_UNSHARP_FILTER 0 ++#define CONFIG_UNSHARP_OPENCL_FILTER 0 ++#define CONFIG_UNTILE_FILTER 0 ++#define CONFIG_USPP_FILTER 0 ++#define CONFIG_V360_FILTER 0 ++#define CONFIG_VAGUEDENOISER_FILTER 0 ++#define CONFIG_VARBLUR_FILTER 0 ++#define CONFIG_VECTORSCOPE_FILTER 0 ++#define CONFIG_VFLIP_FILTER 0 ++#define CONFIG_VFRDET_FILTER 0 ++#define CONFIG_VIBRANCE_FILTER 0 ++#define CONFIG_VIDSTABDETECT_FILTER 0 ++#define CONFIG_VIDSTABTRANSFORM_FILTER 0 ++#define CONFIG_VIF_FILTER 0 ++#define CONFIG_VIGNETTE_FILTER 0 ++#define CONFIG_VMAFMOTION_FILTER 0 ++#define CONFIG_VPP_QSV_FILTER 0 ++#define CONFIG_VSTACK_FILTER 0 ++#define CONFIG_W3FDIF_FILTER 0 ++#define CONFIG_WAVEFORM_FILTER 0 ++#define CONFIG_WEAVE_FILTER 0 ++#define CONFIG_XBR_FILTER 0 ++#define CONFIG_XCORRELATE_FILTER 0 ++#define CONFIG_XFADE_FILTER 0 ++#define CONFIG_XFADE_OPENCL_FILTER 0 ++#define CONFIG_XMEDIAN_FILTER 0 ++#define CONFIG_XSTACK_FILTER 0 ++#define CONFIG_YADIF_FILTER 0 ++#define CONFIG_YADIF_CUDA_FILTER 0 ++#define CONFIG_YAEPBLUR_FILTER 0 ++#define CONFIG_ZMQ_FILTER 0 ++#define CONFIG_ZOOMPAN_FILTER 0 ++#define CONFIG_ZSCALE_FILTER 0 ++#define CONFIG_ALLRGB_FILTER 0 ++#define CONFIG_ALLYUV_FILTER 0 ++#define CONFIG_CELLAUTO_FILTER 0 ++#define CONFIG_COLOR_FILTER 0 ++#define CONFIG_COREIMAGESRC_FILTER 0 ++#define CONFIG_FREI0R_SRC_FILTER 0 ++#define CONFIG_GRADIENTS_FILTER 0 ++#define CONFIG_HALDCLUTSRC_FILTER 0 ++#define CONFIG_LIFE_FILTER 0 ++#define CONFIG_MANDELBROT_FILTER 0 ++#define CONFIG_MPTESTSRC_FILTER 0 ++#define CONFIG_NULLSRC_FILTER 0 ++#define CONFIG_OPENCLSRC_FILTER 0 ++#define CONFIG_PAL75BARS_FILTER 0 ++#define CONFIG_PAL100BARS_FILTER 0 ++#define CONFIG_RGBTESTSRC_FILTER 0 ++#define CONFIG_SIERPINSKI_FILTER 0 ++#define CONFIG_SMPTEBARS_FILTER 0 ++#define CONFIG_SMPTEHDBARS_FILTER 0 ++#define CONFIG_TESTSRC_FILTER 0 ++#define CONFIG_TESTSRC2_FILTER 0 ++#define CONFIG_YUVTESTSRC_FILTER 0 ++#define CONFIG_NULLSINK_FILTER 0 ++#define CONFIG_ABITSCOPE_FILTER 0 ++#define CONFIG_ADRAWGRAPH_FILTER 0 ++#define CONFIG_AGRAPHMONITOR_FILTER 0 ++#define CONFIG_AHISTOGRAM_FILTER 0 ++#define CONFIG_APHASEMETER_FILTER 0 ++#define CONFIG_AVECTORSCOPE_FILTER 0 ++#define CONFIG_CONCAT_FILTER 0 ++#define CONFIG_SHOWCQT_FILTER 0 ++#define CONFIG_SHOWFREQS_FILTER 0 ++#define CONFIG_SHOWSPATIAL_FILTER 0 ++#define CONFIG_SHOWSPECTRUM_FILTER 0 ++#define CONFIG_SHOWSPECTRUMPIC_FILTER 0 ++#define CONFIG_SHOWVOLUME_FILTER 0 ++#define CONFIG_SHOWWAVES_FILTER 0 ++#define CONFIG_SHOWWAVESPIC_FILTER 0 ++#define CONFIG_SPECTRUMSYNTH_FILTER 0 ++#define CONFIG_AMOVIE_FILTER 0 ++#define CONFIG_MOVIE_FILTER 0 ++#define CONFIG_AFIFO_FILTER 0 ++#define CONFIG_FIFO_FILTER 0 ++#define CONFIG_AA_DEMUXER 0 ++#define CONFIG_AAC_DEMUXER 1 ++#define CONFIG_AAX_DEMUXER 0 ++#define CONFIG_AC3_DEMUXER 0 ++#define CONFIG_ACE_DEMUXER 0 ++#define CONFIG_ACM_DEMUXER 0 ++#define CONFIG_ACT_DEMUXER 0 ++#define CONFIG_ADF_DEMUXER 0 ++#define CONFIG_ADP_DEMUXER 0 ++#define CONFIG_ADS_DEMUXER 0 ++#define CONFIG_ADX_DEMUXER 0 ++#define CONFIG_AEA_DEMUXER 0 ++#define CONFIG_AFC_DEMUXER 0 ++#define CONFIG_AIFF_DEMUXER 0 ++#define CONFIG_AIX_DEMUXER 0 ++#define CONFIG_ALP_DEMUXER 0 ++#define CONFIG_AMR_DEMUXER 0 ++#define CONFIG_AMRNB_DEMUXER 0 ++#define CONFIG_AMRWB_DEMUXER 0 ++#define CONFIG_ANM_DEMUXER 0 ++#define CONFIG_APC_DEMUXER 0 ++#define CONFIG_APE_DEMUXER 0 ++#define CONFIG_APM_DEMUXER 0 ++#define CONFIG_APNG_DEMUXER 0 ++#define CONFIG_APTX_DEMUXER 0 ++#define CONFIG_APTX_HD_DEMUXER 0 ++#define CONFIG_AQTITLE_DEMUXER 0 ++#define CONFIG_ARGO_ASF_DEMUXER 0 ++#define CONFIG_ARGO_BRP_DEMUXER 0 ++#define CONFIG_ARGO_CVG_DEMUXER 0 ++#define CONFIG_ASF_DEMUXER 0 ++#define CONFIG_ASF_O_DEMUXER 0 ++#define CONFIG_ASS_DEMUXER 0 ++#define CONFIG_AST_DEMUXER 0 ++#define CONFIG_AU_DEMUXER 0 ++#define CONFIG_AV1_DEMUXER 0 ++#define CONFIG_AVI_DEMUXER 0 ++#define CONFIG_AVISYNTH_DEMUXER 0 ++#define CONFIG_AVR_DEMUXER 0 ++#define CONFIG_AVS_DEMUXER 0 ++#define CONFIG_AVS2_DEMUXER 0 ++#define CONFIG_AVS3_DEMUXER 0 ++#define CONFIG_BETHSOFTVID_DEMUXER 0 ++#define CONFIG_BFI_DEMUXER 0 ++#define CONFIG_BINTEXT_DEMUXER 0 ++#define CONFIG_BINK_DEMUXER 0 ++#define CONFIG_BINKA_DEMUXER 0 ++#define CONFIG_BIT_DEMUXER 0 ++#define CONFIG_BMV_DEMUXER 0 ++#define CONFIG_BFSTM_DEMUXER 0 ++#define CONFIG_BRSTM_DEMUXER 0 ++#define CONFIG_BOA_DEMUXER 0 ++#define CONFIG_C93_DEMUXER 0 ++#define CONFIG_CAF_DEMUXER 0 ++#define CONFIG_CAVSVIDEO_DEMUXER 0 ++#define CONFIG_CDG_DEMUXER 0 ++#define CONFIG_CDXL_DEMUXER 0 ++#define CONFIG_CINE_DEMUXER 0 ++#define CONFIG_CODEC2_DEMUXER 0 ++#define CONFIG_CODEC2RAW_DEMUXER 0 ++#define CONFIG_CONCAT_DEMUXER 0 ++#define CONFIG_DASH_DEMUXER 0 ++#define CONFIG_DATA_DEMUXER 0 ++#define CONFIG_DAUD_DEMUXER 0 ++#define CONFIG_DCSTR_DEMUXER 0 ++#define CONFIG_DERF_DEMUXER 0 ++#define CONFIG_DFA_DEMUXER 0 ++#define CONFIG_DHAV_DEMUXER 0 ++#define CONFIG_DIRAC_DEMUXER 0 ++#define CONFIG_DNXHD_DEMUXER 0 ++#define CONFIG_DSF_DEMUXER 0 ++#define CONFIG_DSICIN_DEMUXER 0 ++#define CONFIG_DSS_DEMUXER 0 ++#define CONFIG_DTS_DEMUXER 0 ++#define CONFIG_DTSHD_DEMUXER 0 ++#define CONFIG_DV_DEMUXER 0 ++#define CONFIG_DVBSUB_DEMUXER 0 ++#define CONFIG_DVBTXT_DEMUXER 0 ++#define CONFIG_DXA_DEMUXER 0 ++#define CONFIG_EA_DEMUXER 0 ++#define CONFIG_EA_CDATA_DEMUXER 0 ++#define CONFIG_EAC3_DEMUXER 0 ++#define CONFIG_EPAF_DEMUXER 0 ++#define CONFIG_FFMETADATA_DEMUXER 0 ++#define CONFIG_FILMSTRIP_DEMUXER 0 ++#define CONFIG_FITS_DEMUXER 0 ++#define CONFIG_FLAC_DEMUXER 1 ++#define CONFIG_FLIC_DEMUXER 0 ++#define CONFIG_FLV_DEMUXER 0 ++#define CONFIG_LIVE_FLV_DEMUXER 0 ++#define CONFIG_FOURXM_DEMUXER 0 ++#define CONFIG_FRM_DEMUXER 0 ++#define CONFIG_FSB_DEMUXER 0 ++#define CONFIG_FWSE_DEMUXER 0 ++#define CONFIG_G722_DEMUXER 0 ++#define CONFIG_G723_1_DEMUXER 0 ++#define CONFIG_G726_DEMUXER 0 ++#define CONFIG_G726LE_DEMUXER 0 ++#define CONFIG_G729_DEMUXER 0 ++#define CONFIG_GDV_DEMUXER 0 ++#define CONFIG_GENH_DEMUXER 0 ++#define CONFIG_GIF_DEMUXER 0 ++#define CONFIG_GSM_DEMUXER 0 ++#define CONFIG_GXF_DEMUXER 0 ++#define CONFIG_H261_DEMUXER 0 ++#define CONFIG_H263_DEMUXER 0 ++#define CONFIG_H264_DEMUXER 0 ++#define CONFIG_HCA_DEMUXER 0 ++#define CONFIG_HCOM_DEMUXER 0 ++#define CONFIG_HEVC_DEMUXER 0 ++#define CONFIG_HLS_DEMUXER 0 ++#define CONFIG_HNM_DEMUXER 0 ++#define CONFIG_ICO_DEMUXER 0 ++#define CONFIG_IDCIN_DEMUXER 0 ++#define CONFIG_IDF_DEMUXER 0 ++#define CONFIG_IFF_DEMUXER 0 ++#define CONFIG_IFV_DEMUXER 0 ++#define CONFIG_ILBC_DEMUXER 0 ++#define CONFIG_IMAGE2_DEMUXER 0 ++#define CONFIG_IMAGE2PIPE_DEMUXER 0 ++#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 0 ++#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 0 ++#define CONFIG_INGENIENT_DEMUXER 0 ++#define CONFIG_IPMOVIE_DEMUXER 0 ++#define CONFIG_IPU_DEMUXER 0 ++#define CONFIG_IRCAM_DEMUXER 0 ++#define CONFIG_ISS_DEMUXER 0 ++#define CONFIG_IV8_DEMUXER 0 ++#define CONFIG_IVF_DEMUXER 0 ++#define CONFIG_IVR_DEMUXER 0 ++#define CONFIG_JACOSUB_DEMUXER 0 ++#define CONFIG_JV_DEMUXER 0 ++#define CONFIG_KUX_DEMUXER 0 ++#define CONFIG_KVAG_DEMUXER 0 ++#define CONFIG_LMLM4_DEMUXER 0 ++#define CONFIG_LOAS_DEMUXER 0 ++#define CONFIG_LUODAT_DEMUXER 0 ++#define CONFIG_LRC_DEMUXER 0 ++#define CONFIG_LVF_DEMUXER 0 ++#define CONFIG_LXF_DEMUXER 0 ++#define CONFIG_M4V_DEMUXER 0 ++#define CONFIG_MCA_DEMUXER 0 ++#define CONFIG_MCC_DEMUXER 0 ++#define CONFIG_MATROSKA_DEMUXER 1 ++#define CONFIG_MGSTS_DEMUXER 0 ++#define CONFIG_MICRODVD_DEMUXER 0 ++#define CONFIG_MJPEG_DEMUXER 0 ++#define CONFIG_MJPEG_2000_DEMUXER 0 ++#define CONFIG_MLP_DEMUXER 0 ++#define CONFIG_MLV_DEMUXER 0 ++#define CONFIG_MM_DEMUXER 0 ++#define CONFIG_MMF_DEMUXER 0 ++#define CONFIG_MODS_DEMUXER 0 ++#define CONFIG_MOFLEX_DEMUXER 0 ++#define CONFIG_MOV_DEMUXER 1 ++#define CONFIG_MP3_DEMUXER 1 ++#define CONFIG_MPC_DEMUXER 0 ++#define CONFIG_MPC8_DEMUXER 0 ++#define CONFIG_MPEGPS_DEMUXER 0 ++#define CONFIG_MPEGTS_DEMUXER 0 ++#define CONFIG_MPEGTSRAW_DEMUXER 0 ++#define CONFIG_MPEGVIDEO_DEMUXER 0 ++#define CONFIG_MPJPEG_DEMUXER 0 ++#define CONFIG_MPL2_DEMUXER 0 ++#define CONFIG_MPSUB_DEMUXER 0 ++#define CONFIG_MSF_DEMUXER 0 ++#define CONFIG_MSNWC_TCP_DEMUXER 0 ++#define CONFIG_MSP_DEMUXER 0 ++#define CONFIG_MTAF_DEMUXER 0 ++#define CONFIG_MTV_DEMUXER 0 ++#define CONFIG_MUSX_DEMUXER 0 ++#define CONFIG_MV_DEMUXER 0 ++#define CONFIG_MVI_DEMUXER 0 ++#define CONFIG_MXF_DEMUXER 0 ++#define CONFIG_MXG_DEMUXER 0 ++#define CONFIG_NC_DEMUXER 0 ++#define CONFIG_NISTSPHERE_DEMUXER 0 ++#define CONFIG_NSP_DEMUXER 0 ++#define CONFIG_NSV_DEMUXER 0 ++#define CONFIG_NUT_DEMUXER 0 ++#define CONFIG_NUV_DEMUXER 0 ++#define CONFIG_OBU_DEMUXER 0 ++#define CONFIG_OGG_DEMUXER 1 ++#define CONFIG_OMA_DEMUXER 0 ++#define CONFIG_PAF_DEMUXER 0 ++#define CONFIG_PCM_ALAW_DEMUXER 0 ++#define CONFIG_PCM_MULAW_DEMUXER 0 ++#define CONFIG_PCM_VIDC_DEMUXER 0 ++#define CONFIG_PCM_F64BE_DEMUXER 0 ++#define CONFIG_PCM_F64LE_DEMUXER 0 ++#define CONFIG_PCM_F32BE_DEMUXER 0 ++#define CONFIG_PCM_F32LE_DEMUXER 0 ++#define CONFIG_PCM_S32BE_DEMUXER 0 ++#define CONFIG_PCM_S32LE_DEMUXER 0 ++#define CONFIG_PCM_S24BE_DEMUXER 0 ++#define CONFIG_PCM_S24LE_DEMUXER 0 ++#define CONFIG_PCM_S16BE_DEMUXER 0 ++#define CONFIG_PCM_S16LE_DEMUXER 0 ++#define CONFIG_PCM_S8_DEMUXER 0 ++#define CONFIG_PCM_U32BE_DEMUXER 0 ++#define CONFIG_PCM_U32LE_DEMUXER 0 ++#define CONFIG_PCM_U24BE_DEMUXER 0 ++#define CONFIG_PCM_U24LE_DEMUXER 0 ++#define CONFIG_PCM_U16BE_DEMUXER 0 ++#define CONFIG_PCM_U16LE_DEMUXER 0 ++#define CONFIG_PCM_U8_DEMUXER 0 ++#define CONFIG_PJS_DEMUXER 0 ++#define CONFIG_PMP_DEMUXER 0 ++#define CONFIG_PP_BNK_DEMUXER 0 ++#define CONFIG_PVA_DEMUXER 0 ++#define CONFIG_PVF_DEMUXER 0 ++#define CONFIG_QCP_DEMUXER 0 ++#define CONFIG_R3D_DEMUXER 0 ++#define CONFIG_RAWVIDEO_DEMUXER 0 ++#define CONFIG_REALTEXT_DEMUXER 0 ++#define CONFIG_REDSPARK_DEMUXER 0 ++#define CONFIG_RL2_DEMUXER 0 ++#define CONFIG_RM_DEMUXER 0 ++#define CONFIG_ROQ_DEMUXER 0 ++#define CONFIG_RPL_DEMUXER 0 ++#define CONFIG_RSD_DEMUXER 0 ++#define CONFIG_RSO_DEMUXER 0 ++#define CONFIG_RTP_DEMUXER 0 ++#define CONFIG_RTSP_DEMUXER 0 ++#define CONFIG_S337M_DEMUXER 0 ++#define CONFIG_SAMI_DEMUXER 0 ++#define CONFIG_SAP_DEMUXER 0 ++#define CONFIG_SBC_DEMUXER 0 ++#define CONFIG_SBG_DEMUXER 0 ++#define CONFIG_SCC_DEMUXER 0 ++#define CONFIG_SDP_DEMUXER 0 ++#define CONFIG_SDR2_DEMUXER 0 ++#define CONFIG_SDS_DEMUXER 0 ++#define CONFIG_SDX_DEMUXER 0 ++#define CONFIG_SEGAFILM_DEMUXER 0 ++#define CONFIG_SER_DEMUXER 0 ++#define CONFIG_SGA_DEMUXER 0 ++#define CONFIG_SHORTEN_DEMUXER 0 ++#define CONFIG_SIFF_DEMUXER 0 ++#define CONFIG_SIMBIOSIS_IMX_DEMUXER 0 ++#define CONFIG_SLN_DEMUXER 0 ++#define CONFIG_SMACKER_DEMUXER 0 ++#define CONFIG_SMJPEG_DEMUXER 0 ++#define CONFIG_SMUSH_DEMUXER 0 ++#define CONFIG_SOL_DEMUXER 0 ++#define CONFIG_SOX_DEMUXER 0 ++#define CONFIG_SPDIF_DEMUXER 0 ++#define CONFIG_SRT_DEMUXER 0 ++#define CONFIG_STR_DEMUXER 0 ++#define CONFIG_STL_DEMUXER 0 ++#define CONFIG_SUBVIEWER1_DEMUXER 0 ++#define CONFIG_SUBVIEWER_DEMUXER 0 ++#define CONFIG_SUP_DEMUXER 0 ++#define CONFIG_SVAG_DEMUXER 0 ++#define CONFIG_SVS_DEMUXER 0 ++#define CONFIG_SWF_DEMUXER 0 ++#define CONFIG_TAK_DEMUXER 0 ++#define CONFIG_TEDCAPTIONS_DEMUXER 0 ++#define CONFIG_THP_DEMUXER 0 ++#define CONFIG_THREEDOSTR_DEMUXER 0 ++#define CONFIG_TIERTEXSEQ_DEMUXER 0 ++#define CONFIG_TMV_DEMUXER 0 ++#define CONFIG_TRUEHD_DEMUXER 0 ++#define CONFIG_TTA_DEMUXER 0 ++#define CONFIG_TXD_DEMUXER 0 ++#define CONFIG_TTY_DEMUXER 0 ++#define CONFIG_TY_DEMUXER 0 ++#define CONFIG_V210_DEMUXER 0 ++#define CONFIG_V210X_DEMUXER 0 ++#define CONFIG_VAG_DEMUXER 0 ++#define CONFIG_VC1_DEMUXER 0 ++#define CONFIG_VC1T_DEMUXER 0 ++#define CONFIG_VIVIDAS_DEMUXER 0 ++#define CONFIG_VIVO_DEMUXER 0 ++#define CONFIG_VMD_DEMUXER 0 ++#define CONFIG_VOBSUB_DEMUXER 0 ++#define CONFIG_VOC_DEMUXER 0 ++#define CONFIG_VPK_DEMUXER 0 ++#define CONFIG_VPLAYER_DEMUXER 0 ++#define CONFIG_VQF_DEMUXER 0 ++#define CONFIG_W64_DEMUXER 0 ++#define CONFIG_WAV_DEMUXER 1 ++#define CONFIG_WC3_DEMUXER 0 ++#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 0 ++#define CONFIG_WEBVTT_DEMUXER 0 ++#define CONFIG_WSAUD_DEMUXER 0 ++#define CONFIG_WSD_DEMUXER 0 ++#define CONFIG_WSVQA_DEMUXER 0 ++#define CONFIG_WTV_DEMUXER 0 ++#define CONFIG_WVE_DEMUXER 0 ++#define CONFIG_WV_DEMUXER 0 ++#define CONFIG_XA_DEMUXER 0 ++#define CONFIG_XBIN_DEMUXER 0 ++#define CONFIG_XMV_DEMUXER 0 ++#define CONFIG_XVAG_DEMUXER 0 ++#define CONFIG_XWMA_DEMUXER 0 ++#define CONFIG_YOP_DEMUXER 0 ++#define CONFIG_YUV4MPEGPIPE_DEMUXER 0 ++#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_CRI_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_GEM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_GIF_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PAM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PBM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PCX_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PGM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PGX_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PHOTOCD_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PPM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PSD_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_SVG_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_XBM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_XPM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_XWD_PIPE_DEMUXER 0 ++#define CONFIG_LIBGME_DEMUXER 0 ++#define CONFIG_LIBMODPLUG_DEMUXER 0 ++#define CONFIG_LIBOPENMPT_DEMUXER 0 ++#define CONFIG_VAPOURSYNTH_DEMUXER 0 ++#define CONFIG_A64_MUXER 0 ++#define CONFIG_AC3_MUXER 0 ++#define CONFIG_ADTS_MUXER 0 ++#define CONFIG_ADX_MUXER 0 ++#define CONFIG_AIFF_MUXER 0 ++#define CONFIG_ALP_MUXER 0 ++#define CONFIG_AMR_MUXER 0 ++#define CONFIG_AMV_MUXER 0 ++#define CONFIG_APM_MUXER 0 ++#define CONFIG_APNG_MUXER 0 ++#define CONFIG_APTX_MUXER 0 ++#define CONFIG_APTX_HD_MUXER 0 ++#define CONFIG_ARGO_ASF_MUXER 0 ++#define CONFIG_ARGO_CVG_MUXER 0 ++#define CONFIG_ASF_MUXER 0 ++#define CONFIG_ASS_MUXER 0 ++#define CONFIG_AST_MUXER 0 ++#define CONFIG_ASF_STREAM_MUXER 0 ++#define CONFIG_AU_MUXER 0 ++#define CONFIG_AVI_MUXER 0 ++#define CONFIG_AVM2_MUXER 0 ++#define CONFIG_AVS2_MUXER 0 ++#define CONFIG_AVS3_MUXER 0 ++#define CONFIG_BIT_MUXER 0 ++#define CONFIG_CAF_MUXER 0 ++#define CONFIG_CAVSVIDEO_MUXER 0 ++#define CONFIG_CODEC2_MUXER 0 ++#define CONFIG_CODEC2RAW_MUXER 0 ++#define CONFIG_CRC_MUXER 0 ++#define CONFIG_DASH_MUXER 0 ++#define CONFIG_DATA_MUXER 0 ++#define CONFIG_DAUD_MUXER 0 ++#define CONFIG_DIRAC_MUXER 0 ++#define CONFIG_DNXHD_MUXER 0 ++#define CONFIG_DTS_MUXER 0 ++#define CONFIG_DV_MUXER 0 ++#define CONFIG_EAC3_MUXER 0 ++#define CONFIG_F4V_MUXER 0 ++#define CONFIG_FFMETADATA_MUXER 0 ++#define CONFIG_FIFO_MUXER 0 ++#define CONFIG_FIFO_TEST_MUXER 0 ++#define CONFIG_FILMSTRIP_MUXER 0 ++#define CONFIG_FITS_MUXER 0 ++#define CONFIG_FLAC_MUXER 0 ++#define CONFIG_FLV_MUXER 0 ++#define CONFIG_FRAMECRC_MUXER 0 ++#define CONFIG_FRAMEHASH_MUXER 0 ++#define CONFIG_FRAMEMD5_MUXER 0 ++#define CONFIG_G722_MUXER 0 ++#define CONFIG_G723_1_MUXER 0 ++#define CONFIG_G726_MUXER 0 ++#define CONFIG_G726LE_MUXER 0 ++#define CONFIG_GIF_MUXER 0 ++#define CONFIG_GSM_MUXER 0 ++#define CONFIG_GXF_MUXER 0 ++#define CONFIG_H261_MUXER 0 ++#define CONFIG_H263_MUXER 0 ++#define CONFIG_H264_MUXER 0 ++#define CONFIG_HASH_MUXER 0 ++#define CONFIG_HDS_MUXER 0 ++#define CONFIG_HEVC_MUXER 0 ++#define CONFIG_HLS_MUXER 0 ++#define CONFIG_ICO_MUXER 0 ++#define CONFIG_ILBC_MUXER 0 ++#define CONFIG_IMAGE2_MUXER 0 ++#define CONFIG_IMAGE2PIPE_MUXER 0 ++#define CONFIG_IPOD_MUXER 0 ++#define CONFIG_IRCAM_MUXER 0 ++#define CONFIG_ISMV_MUXER 0 ++#define CONFIG_IVF_MUXER 0 ++#define CONFIG_JACOSUB_MUXER 0 ++#define CONFIG_KVAG_MUXER 0 ++#define CONFIG_LATM_MUXER 0 ++#define CONFIG_LRC_MUXER 0 ++#define CONFIG_M4V_MUXER 0 ++#define CONFIG_MD5_MUXER 0 ++#define CONFIG_MATROSKA_MUXER 0 ++#define CONFIG_MATROSKA_AUDIO_MUXER 0 ++#define CONFIG_MICRODVD_MUXER 0 ++#define CONFIG_MJPEG_MUXER 0 ++#define CONFIG_MLP_MUXER 0 ++#define CONFIG_MMF_MUXER 0 ++#define CONFIG_MOV_MUXER 0 ++#define CONFIG_MP2_MUXER 0 ++#define CONFIG_MP3_MUXER 0 ++#define CONFIG_MP4_MUXER 0 ++#define CONFIG_MPEG1SYSTEM_MUXER 0 ++#define CONFIG_MPEG1VCD_MUXER 0 ++#define CONFIG_MPEG1VIDEO_MUXER 0 ++#define CONFIG_MPEG2DVD_MUXER 0 ++#define CONFIG_MPEG2SVCD_MUXER 0 ++#define CONFIG_MPEG2VIDEO_MUXER 0 ++#define CONFIG_MPEG2VOB_MUXER 0 ++#define CONFIG_MPEGTS_MUXER 0 ++#define CONFIG_MPJPEG_MUXER 0 ++#define CONFIG_MXF_MUXER 0 ++#define CONFIG_MXF_D10_MUXER 0 ++#define CONFIG_MXF_OPATOM_MUXER 0 ++#define CONFIG_NULL_MUXER 0 ++#define CONFIG_NUT_MUXER 0 ++#define CONFIG_OBU_MUXER 0 ++#define CONFIG_OGA_MUXER 0 ++#define CONFIG_OGG_MUXER 0 ++#define CONFIG_OGV_MUXER 0 ++#define CONFIG_OMA_MUXER 0 ++#define CONFIG_OPUS_MUXER 0 ++#define CONFIG_PCM_ALAW_MUXER 0 ++#define CONFIG_PCM_MULAW_MUXER 0 ++#define CONFIG_PCM_VIDC_MUXER 0 ++#define CONFIG_PCM_F64BE_MUXER 0 ++#define CONFIG_PCM_F64LE_MUXER 0 ++#define CONFIG_PCM_F32BE_MUXER 0 ++#define CONFIG_PCM_F32LE_MUXER 0 ++#define CONFIG_PCM_S32BE_MUXER 0 ++#define CONFIG_PCM_S32LE_MUXER 0 ++#define CONFIG_PCM_S24BE_MUXER 0 ++#define CONFIG_PCM_S24LE_MUXER 0 ++#define CONFIG_PCM_S16BE_MUXER 0 ++#define CONFIG_PCM_S16LE_MUXER 0 ++#define CONFIG_PCM_S8_MUXER 0 ++#define CONFIG_PCM_U32BE_MUXER 0 ++#define CONFIG_PCM_U32LE_MUXER 0 ++#define CONFIG_PCM_U24BE_MUXER 0 ++#define CONFIG_PCM_U24LE_MUXER 0 ++#define CONFIG_PCM_U16BE_MUXER 0 ++#define CONFIG_PCM_U16LE_MUXER 0 ++#define CONFIG_PCM_U8_MUXER 0 ++#define CONFIG_PSP_MUXER 0 ++#define CONFIG_RAWVIDEO_MUXER 0 ++#define CONFIG_RM_MUXER 0 ++#define CONFIG_ROQ_MUXER 0 ++#define CONFIG_RSO_MUXER 0 ++#define CONFIG_RTP_MUXER 0 ++#define CONFIG_RTP_MPEGTS_MUXER 0 ++#define CONFIG_RTSP_MUXER 0 ++#define CONFIG_SAP_MUXER 0 ++#define CONFIG_SBC_MUXER 0 ++#define CONFIG_SCC_MUXER 0 ++#define CONFIG_SEGAFILM_MUXER 0 ++#define CONFIG_SEGMENT_MUXER 0 ++#define CONFIG_STREAM_SEGMENT_MUXER 0 ++#define CONFIG_SMJPEG_MUXER 0 ++#define CONFIG_SMOOTHSTREAMING_MUXER 0 ++#define CONFIG_SOX_MUXER 0 ++#define CONFIG_SPX_MUXER 0 ++#define CONFIG_SPDIF_MUXER 0 ++#define CONFIG_SRT_MUXER 0 ++#define CONFIG_STREAMHASH_MUXER 0 ++#define CONFIG_SUP_MUXER 0 ++#define CONFIG_SWF_MUXER 0 ++#define CONFIG_TEE_MUXER 0 ++#define CONFIG_TG2_MUXER 0 ++#define CONFIG_TGP_MUXER 0 ++#define CONFIG_MKVTIMESTAMP_V2_MUXER 0 ++#define CONFIG_TRUEHD_MUXER 0 ++#define CONFIG_TTA_MUXER 0 ++#define CONFIG_TTML_MUXER 0 ++#define CONFIG_UNCODEDFRAMECRC_MUXER 0 ++#define CONFIG_VC1_MUXER 0 ++#define CONFIG_VC1T_MUXER 0 ++#define CONFIG_VOC_MUXER 0 ++#define CONFIG_W64_MUXER 0 ++#define CONFIG_WAV_MUXER 0 ++#define CONFIG_WEBM_MUXER 0 ++#define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 ++#define CONFIG_WEBM_CHUNK_MUXER 0 ++#define CONFIG_WEBP_MUXER 0 ++#define CONFIG_WEBVTT_MUXER 0 ++#define CONFIG_WSAUD_MUXER 0 ++#define CONFIG_WTV_MUXER 0 ++#define CONFIG_WV_MUXER 0 ++#define CONFIG_YUV4MPEGPIPE_MUXER 0 ++#define CONFIG_CHROMAPRINT_MUXER 0 ++#define CONFIG_ASYNC_PROTOCOL 0 ++#define CONFIG_BLURAY_PROTOCOL 0 ++#define CONFIG_CACHE_PROTOCOL 0 ++#define CONFIG_CONCAT_PROTOCOL 0 ++#define CONFIG_CONCATF_PROTOCOL 0 ++#define CONFIG_CRYPTO_PROTOCOL 0 ++#define CONFIG_DATA_PROTOCOL 0 ++#define CONFIG_FFRTMPCRYPT_PROTOCOL 0 ++#define CONFIG_FFRTMPHTTP_PROTOCOL 0 ++#define CONFIG_FILE_PROTOCOL 0 ++#define CONFIG_FTP_PROTOCOL 0 ++#define CONFIG_GOPHER_PROTOCOL 0 ++#define CONFIG_GOPHERS_PROTOCOL 0 ++#define CONFIG_HLS_PROTOCOL 0 ++#define CONFIG_HTTP_PROTOCOL 0 ++#define CONFIG_HTTPPROXY_PROTOCOL 0 ++#define CONFIG_HTTPS_PROTOCOL 0 ++#define CONFIG_ICECAST_PROTOCOL 0 ++#define CONFIG_MMSH_PROTOCOL 0 ++#define CONFIG_MMST_PROTOCOL 0 ++#define CONFIG_MD5_PROTOCOL 0 ++#define CONFIG_PIPE_PROTOCOL 0 ++#define CONFIG_PROMPEG_PROTOCOL 0 ++#define CONFIG_RTMP_PROTOCOL 0 ++#define CONFIG_RTMPE_PROTOCOL 0 ++#define CONFIG_RTMPS_PROTOCOL 0 ++#define CONFIG_RTMPT_PROTOCOL 0 ++#define CONFIG_RTMPTE_PROTOCOL 0 ++#define CONFIG_RTMPTS_PROTOCOL 0 ++#define CONFIG_RTP_PROTOCOL 0 ++#define CONFIG_SCTP_PROTOCOL 0 ++#define CONFIG_SRTP_PROTOCOL 0 ++#define CONFIG_SUBFILE_PROTOCOL 0 ++#define CONFIG_TEE_PROTOCOL 0 ++#define CONFIG_TCP_PROTOCOL 0 ++#define CONFIG_TLS_PROTOCOL 0 ++#define CONFIG_UDP_PROTOCOL 0 ++#define CONFIG_UDPLITE_PROTOCOL 0 ++#define CONFIG_UNIX_PROTOCOL 0 ++#define CONFIG_LIBAMQP_PROTOCOL 0 ++#define CONFIG_LIBRIST_PROTOCOL 0 ++#define CONFIG_LIBRTMP_PROTOCOL 0 ++#define CONFIG_LIBRTMPE_PROTOCOL 0 ++#define CONFIG_LIBRTMPS_PROTOCOL 0 ++#define CONFIG_LIBRTMPT_PROTOCOL 0 ++#define CONFIG_LIBRTMPTE_PROTOCOL 0 ++#define CONFIG_LIBSRT_PROTOCOL 0 ++#define CONFIG_LIBSSH_PROTOCOL 0 ++#define CONFIG_LIBSMBCLIENT_PROTOCOL 0 ++#define CONFIG_LIBZMQ_PROTOCOL 0 ++#endif /* FFMPEG_CONFIG_H */ diff --git a/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_x64_config.asm b/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_x64_config.asm new file mode 100644 index 000000000000..e53b40b9d141 --- /dev/null +++ b/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_x64_config.asm @@ -0,0 +1,2773 @@ +--- third_party/ffmpeg/chromium/config/Chrome/openbsd/x64/config.asm.orig 2022-05-20 04:31:06 UTC ++++ third_party/ffmpeg/chromium/config/Chrome/openbsd/x64/config.asm +@@ -0,0 +1,2770 @@ ++; Automatically generated by configure - do not modify! ++%define ARCH_AARCH64 0 ++%define ARCH_ALPHA 0 ++%define ARCH_ARM 0 ++%define ARCH_AVR32 0 ++%define ARCH_AVR32_AP 0 ++%define ARCH_AVR32_UC 0 ++%define ARCH_BFIN 0 ++%define ARCH_IA64 0 ++%define ARCH_LOONGARCH 0 ++%define ARCH_LOONGARCH32 0 ++%define ARCH_LOONGARCH64 0 ++%define ARCH_M68K 0 ++%define ARCH_MIPS 0 ++%define ARCH_MIPS64 0 ++%define ARCH_PARISC 0 ++%define ARCH_PPC 0 ++%define ARCH_PPC64 0 ++%define ARCH_RISCV 0 ++%define ARCH_S390 0 ++%define ARCH_SH4 0 ++%define ARCH_SPARC 0 ++%define ARCH_SPARC64 0 ++%define ARCH_TILEGX 0 ++%define ARCH_TILEPRO 0 ++%define ARCH_TOMI 0 ++%define ARCH_X86 1 ++%define ARCH_X86_32 0 ++%define ARCH_X86_64 1 ++%define HAVE_ARMV5TE 0 ++%define HAVE_ARMV6 0 ++%define HAVE_ARMV6T2 0 ++%define HAVE_ARMV8 0 ++%define HAVE_NEON 0 ++%define HAVE_VFP 0 ++%define HAVE_VFPV3 0 ++%define HAVE_SETEND 0 ++%define HAVE_ALTIVEC 0 ++%define HAVE_DCBZL 0 ++%define HAVE_LDBRX 0 ++%define HAVE_POWER8 0 ++%define HAVE_PPC4XX 0 ++%define HAVE_VSX 0 ++%define HAVE_AESNI 1 ++%define HAVE_AMD3DNOW 1 ++%define HAVE_AMD3DNOWEXT 1 ++%define HAVE_AVX 1 ++%define HAVE_AVX2 1 ++%define HAVE_AVX512 1 ++%define HAVE_FMA3 1 ++%define HAVE_FMA4 1 ++%define HAVE_MMX 1 ++%define HAVE_MMXEXT 1 ++%define HAVE_SSE 1 ++%define HAVE_SSE2 1 ++%define HAVE_SSE3 1 ++%define HAVE_SSE4 1 ++%define HAVE_SSE42 1 ++%define HAVE_SSSE3 1 ++%define HAVE_XOP 1 ++%define HAVE_CPUNOP 0 ++%define HAVE_I686 1 ++%define HAVE_MIPSFPU 0 ++%define HAVE_MIPS32R2 0 ++%define HAVE_MIPS32R5 0 ++%define HAVE_MIPS64R2 0 ++%define HAVE_MIPS32R6 0 ++%define HAVE_MIPS64R6 0 ++%define HAVE_MIPSDSP 0 ++%define HAVE_MIPSDSPR2 0 ++%define HAVE_MSA 0 ++%define HAVE_LOONGSON2 0 ++%define HAVE_LOONGSON3 0 ++%define HAVE_MMI 0 ++%define HAVE_LSX 0 ++%define HAVE_LASX 0 ++%define HAVE_ARMV5TE_EXTERNAL 0 ++%define HAVE_ARMV6_EXTERNAL 0 ++%define HAVE_ARMV6T2_EXTERNAL 0 ++%define HAVE_ARMV8_EXTERNAL 0 ++%define HAVE_NEON_EXTERNAL 0 ++%define HAVE_VFP_EXTERNAL 0 ++%define HAVE_VFPV3_EXTERNAL 0 ++%define HAVE_SETEND_EXTERNAL 0 ++%define HAVE_ALTIVEC_EXTERNAL 0 ++%define HAVE_DCBZL_EXTERNAL 0 ++%define HAVE_LDBRX_EXTERNAL 0 ++%define HAVE_POWER8_EXTERNAL 0 ++%define HAVE_PPC4XX_EXTERNAL 0 ++%define HAVE_VSX_EXTERNAL 0 ++%define HAVE_AESNI_EXTERNAL 1 ++%define HAVE_AMD3DNOW_EXTERNAL 1 ++%define HAVE_AMD3DNOWEXT_EXTERNAL 1 ++%define HAVE_AVX_EXTERNAL 1 ++%define HAVE_AVX2_EXTERNAL 1 ++%define HAVE_AVX512_EXTERNAL 1 ++%define HAVE_FMA3_EXTERNAL 1 ++%define HAVE_FMA4_EXTERNAL 1 ++%define HAVE_MMX_EXTERNAL 1 ++%define HAVE_MMXEXT_EXTERNAL 1 ++%define HAVE_SSE_EXTERNAL 1 ++%define HAVE_SSE2_EXTERNAL 1 ++%define HAVE_SSE3_EXTERNAL 1 ++%define HAVE_SSE4_EXTERNAL 1 ++%define HAVE_SSE42_EXTERNAL 1 ++%define HAVE_SSSE3_EXTERNAL 1 ++%define HAVE_XOP_EXTERNAL 1 ++%define HAVE_CPUNOP_EXTERNAL 0 ++%define HAVE_I686_EXTERNAL 0 ++%define HAVE_MIPSFPU_EXTERNAL 0 ++%define HAVE_MIPS32R2_EXTERNAL 0 ++%define HAVE_MIPS32R5_EXTERNAL 0 ++%define HAVE_MIPS64R2_EXTERNAL 0 ++%define HAVE_MIPS32R6_EXTERNAL 0 ++%define HAVE_MIPS64R6_EXTERNAL 0 ++%define HAVE_MIPSDSP_EXTERNAL 0 ++%define HAVE_MIPSDSPR2_EXTERNAL 0 ++%define HAVE_MSA_EXTERNAL 0 ++%define HAVE_LOONGSON2_EXTERNAL 0 ++%define HAVE_LOONGSON3_EXTERNAL 0 ++%define HAVE_MMI_EXTERNAL 0 ++%define HAVE_LSX_EXTERNAL 0 ++%define HAVE_LASX_EXTERNAL 0 ++%define HAVE_ARMV5TE_INLINE 0 ++%define HAVE_ARMV6_INLINE 0 ++%define HAVE_ARMV6T2_INLINE 0 ++%define HAVE_ARMV8_INLINE 0 ++%define HAVE_NEON_INLINE 0 ++%define HAVE_VFP_INLINE 0 ++%define HAVE_VFPV3_INLINE 0 ++%define HAVE_SETEND_INLINE 0 ++%define HAVE_ALTIVEC_INLINE 0 ++%define HAVE_DCBZL_INLINE 0 ++%define HAVE_LDBRX_INLINE 0 ++%define HAVE_POWER8_INLINE 0 ++%define HAVE_PPC4XX_INLINE 0 ++%define HAVE_VSX_INLINE 0 ++%define HAVE_AESNI_INLINE 1 ++%define HAVE_AMD3DNOW_INLINE 1 ++%define HAVE_AMD3DNOWEXT_INLINE 1 ++%define HAVE_AVX_INLINE 1 ++%define HAVE_AVX2_INLINE 1 ++%define HAVE_AVX512_INLINE 1 ++%define HAVE_FMA3_INLINE 1 ++%define HAVE_FMA4_INLINE 1 ++%define HAVE_MMX_INLINE 1 ++%define HAVE_MMXEXT_INLINE 1 ++%define HAVE_SSE_INLINE 1 ++%define HAVE_SSE2_INLINE 1 ++%define HAVE_SSE3_INLINE 1 ++%define HAVE_SSE4_INLINE 1 ++%define HAVE_SSE42_INLINE 1 ++%define HAVE_SSSE3_INLINE 1 ++%define HAVE_XOP_INLINE 1 ++%define HAVE_CPUNOP_INLINE 0 ++%define HAVE_I686_INLINE 0 ++%define HAVE_MIPSFPU_INLINE 0 ++%define HAVE_MIPS32R2_INLINE 0 ++%define HAVE_MIPS32R5_INLINE 0 ++%define HAVE_MIPS64R2_INLINE 0 ++%define HAVE_MIPS32R6_INLINE 0 ++%define HAVE_MIPS64R6_INLINE 0 ++%define HAVE_MIPSDSP_INLINE 0 ++%define HAVE_MIPSDSPR2_INLINE 0 ++%define HAVE_MSA_INLINE 0 ++%define HAVE_LOONGSON2_INLINE 0 ++%define HAVE_LOONGSON3_INLINE 0 ++%define HAVE_MMI_INLINE 0 ++%define HAVE_LSX_INLINE 0 ++%define HAVE_LASX_INLINE 0 ++%define HAVE_ALIGNED_STACK 1 ++%define HAVE_FAST_64BIT 1 ++%define HAVE_FAST_CLZ 1 ++%define HAVE_FAST_CMOV 1 ++%define HAVE_LOCAL_ALIGNED 1 ++%define HAVE_SIMD_ALIGN_16 1 ++%define HAVE_SIMD_ALIGN_32 1 ++%define HAVE_SIMD_ALIGN_64 1 ++%define HAVE_ATOMIC_CAS_PTR 0 ++%define HAVE_MACHINE_RW_BARRIER 0 ++%define HAVE_MEMORYBARRIER 0 ++%define HAVE_MM_EMPTY 1 ++%define HAVE_RDTSC 0 ++%define HAVE_SEM_TIMEDWAIT 1 ++%define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 ++%define HAVE_CABS 0 ++%define HAVE_CEXP 0 ++%define HAVE_INLINE_ASM 1 ++%define HAVE_SYMVER 0 ++%define HAVE_X86ASM 1 ++%define HAVE_BIGENDIAN 0 ++%define HAVE_FAST_UNALIGNED 1 ++%define HAVE_ARPA_INET_H 0 ++%define HAVE_ASM_TYPES_H 0 ++%define HAVE_CDIO_PARANOIA_H 0 ++%define HAVE_CDIO_PARANOIA_PARANOIA_H 0 ++%define HAVE_CUDA_H 0 ++%define HAVE_DISPATCH_DISPATCH_H 0 ++%define HAVE_DEV_BKTR_IOCTL_BT848_H 0 ++%define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 ++%define HAVE_DEV_IC_BT8XX_H 1 ++%define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 ++%define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 ++%define HAVE_DIRECT_H 0 ++%define HAVE_DIRENT_H 1 ++%define HAVE_DXGIDEBUG_H 0 ++%define HAVE_DXVA_H 0 ++%define HAVE_ES2_GL_H 0 ++%define HAVE_GSM_H 0 ++%define HAVE_IO_H 0 ++%define HAVE_LINUX_DMA_BUF_H 0 ++%define HAVE_LINUX_PERF_EVENT_H 0 ++%define HAVE_MACHINE_IOCTL_BT848_H 0 ++%define HAVE_MACHINE_IOCTL_METEOR_H 0 ++%define HAVE_MALLOC_H 0 ++%define HAVE_OPENCV2_CORE_CORE_C_H 0 ++%define HAVE_OPENGL_GL3_H 0 ++%define HAVE_POLL_H 1 ++%define HAVE_SYS_PARAM_H 1 ++%define HAVE_SYS_RESOURCE_H 1 ++%define HAVE_SYS_SELECT_H 1 ++%define HAVE_SYS_SOUNDCARD_H 0 ++%define HAVE_SYS_TIME_H 1 ++%define HAVE_SYS_UN_H 1 ++%define HAVE_SYS_VIDEOIO_H 1 ++%define HAVE_TERMIOS_H 1 ++%define HAVE_UDPLITE_H 0 ++%define HAVE_UNISTD_H 1 ++%define HAVE_VALGRIND_VALGRIND_H 0 ++%define HAVE_WINDOWS_H 0 ++%define HAVE_WINSOCK2_H 0 ++%define HAVE_INTRINSICS_NEON 0 ++%define HAVE_ATANF 1 ++%define HAVE_ATAN2F 1 ++%define HAVE_CBRT 1 ++%define HAVE_CBRTF 1 ++%define HAVE_COPYSIGN 1 ++%define HAVE_COSF 1 ++%define HAVE_ERF 1 ++%define HAVE_EXP2 1 ++%define HAVE_EXP2F 1 ++%define HAVE_EXPF 1 ++%define HAVE_HYPOT 1 ++%define HAVE_ISFINITE 1 ++%define HAVE_ISINF 1 ++%define HAVE_ISNAN 1 ++%define HAVE_LDEXPF 1 ++%define HAVE_LLRINT 1 ++%define HAVE_LLRINTF 1 ++%define HAVE_LOG2 1 ++%define HAVE_LOG2F 1 ++%define HAVE_LOG10F 1 ++%define HAVE_LRINT 1 ++%define HAVE_LRINTF 1 ++%define HAVE_POWF 1 ++%define HAVE_RINT 1 ++%define HAVE_ROUND 1 ++%define HAVE_ROUNDF 1 ++%define HAVE_SINF 1 ++%define HAVE_TRUNC 1 ++%define HAVE_TRUNCF 1 ++%define HAVE_DOS_PATHS 0 ++%define HAVE_LIBC_MSVCRT 0 ++%define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 ++%define HAVE_SECTION_DATA_REL_RO 1 ++%define HAVE_THREADS 1 ++%define HAVE_UWP 0 ++%define HAVE_WINRT 0 ++%define HAVE_ACCESS 1 ++%define HAVE_ALIGNED_MALLOC 0 ++%define HAVE_ARC4RANDOM 1 ++%define HAVE_CLOCK_GETTIME 1 ++%define HAVE_CLOSESOCKET 0 ++%define HAVE_COMMANDLINETOARGVW 0 ++%define HAVE_FCNTL 1 ++%define HAVE_GETADDRINFO 0 ++%define HAVE_GETHRTIME 0 ++%define HAVE_GETOPT 1 ++%define HAVE_GETMODULEHANDLE 0 ++%define HAVE_GETPROCESSAFFINITYMASK 0 ++%define HAVE_GETPROCESSMEMORYINFO 0 ++%define HAVE_GETPROCESSTIMES 0 ++%define HAVE_GETRUSAGE 1 ++%define HAVE_GETSTDHANDLE 0 ++%define HAVE_GETSYSTEMTIMEASFILETIME 0 ++%define HAVE_GETTIMEOFDAY 1 ++%define HAVE_GLOB 1 ++%define HAVE_GLXGETPROCADDRESS 0 ++%define HAVE_GMTIME_R 1 ++%define HAVE_INET_ATON 0 ++%define HAVE_ISATTY 1 ++%define HAVE_KBHIT 0 ++%define HAVE_LOCALTIME_R 1 ++%define HAVE_LSTAT 1 ++%define HAVE_LZO1X_999_COMPRESS 0 ++%define HAVE_MACH_ABSOLUTE_TIME 0 ++%define HAVE_MAPVIEWOFFILE 0 ++%define HAVE_MEMALIGN 0 ++%define HAVE_MKSTEMP 1 ++%define HAVE_MMAP 1 ++%define HAVE_MPROTECT 1 ++%define HAVE_NANOSLEEP 1 ++%define HAVE_PEEKNAMEDPIPE 0 ++%define HAVE_POSIX_MEMALIGN 1 ++%define HAVE_PTHREAD_CANCEL 1 ++%define HAVE_SCHED_GETAFFINITY 0 ++%define HAVE_SECITEMIMPORT 0 ++%define HAVE_SETCONSOLETEXTATTRIBUTE 0 ++%define HAVE_SETCONSOLECTRLHANDLER 0 ++%define HAVE_SETDLLDIRECTORY 0 ++%define HAVE_SETMODE 0 ++%define HAVE_SETRLIMIT 1 ++%define HAVE_SLEEP 0 ++%define HAVE_STRERROR_R 1 ++%define HAVE_SYSCONF 1 ++%define HAVE_SYSCTL 1 ++%define HAVE_USLEEP 1 ++%define HAVE_UTGETOSTYPEFROMSTRING 0 ++%define HAVE_VIRTUALALLOC 0 ++%define HAVE_WGLGETPROCADDRESS 0 ++%define HAVE_BCRYPT 0 ++%define HAVE_VAAPI_DRM 0 ++%define HAVE_VAAPI_X11 0 ++%define HAVE_VDPAU_X11 0 ++%define HAVE_PTHREADS 1 ++%define HAVE_OS2THREADS 0 ++%define HAVE_W32THREADS 0 ++%define HAVE_AS_ARCH_DIRECTIVE 0 ++%define HAVE_AS_DN_DIRECTIVE 0 ++%define HAVE_AS_FPU_DIRECTIVE 0 ++%define HAVE_AS_FUNC 0 ++%define HAVE_AS_OBJECT_ARCH 0 ++%define HAVE_ASM_MOD_Q 0 ++%define HAVE_BLOCKS_EXTENSION 0 ++%define HAVE_EBP_AVAILABLE 1 ++%define HAVE_EBX_AVAILABLE 1 ++%define HAVE_GNU_AS 0 ++%define HAVE_GNU_WINDRES 0 ++%define HAVE_IBM_ASM 0 ++%define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 ++%define HAVE_INLINE_ASM_LABELS 1 ++%define HAVE_INLINE_ASM_NONLOCAL_LABELS 1 ++%define HAVE_PRAGMA_DEPRECATED 1 ++%define HAVE_RSYNC_CONTIMEOUT 1 ++%define HAVE_SYMVER_ASM_LABEL 1 ++%define HAVE_SYMVER_GNU_ASM 1 ++%define HAVE_VFP_ARGS 0 ++%define HAVE_XFORM_ASM 0 ++%define HAVE_XMM_CLOBBERS 1 ++%define HAVE_KCMVIDEOCODECTYPE_HEVC 0 ++%define HAVE_KCMVIDEOCODECTYPE_HEVCWITHALPHA 0 ++%define HAVE_KCMVIDEOCODECTYPE_VP9 0 ++%define HAVE_KCVPIXELFORMATTYPE_420YPCBCR10BIPLANARVIDEORANGE 0 ++%define HAVE_KCVPIXELFORMATTYPE_422YPCBCR8BIPLANARVIDEORANGE 0 ++%define HAVE_KCVPIXELFORMATTYPE_422YPCBCR10BIPLANARVIDEORANGE 0 ++%define HAVE_KCVPIXELFORMATTYPE_422YPCBCR16BIPLANARVIDEORANGE 0 ++%define HAVE_KCVPIXELFORMATTYPE_444YPCBCR8BIPLANARVIDEORANGE 0 ++%define HAVE_KCVPIXELFORMATTYPE_444YPCBCR10BIPLANARVIDEORANGE 0 ++%define HAVE_KCVPIXELFORMATTYPE_444YPCBCR16BIPLANARVIDEORANGE 0 ++%define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_2084_PQ 0 ++%define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2100_HLG 0 ++%define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_LINEAR 0 ++%define HAVE_KCVIMAGEBUFFERYCBCRMATRIX_ITU_R_2020 0 ++%define HAVE_KCVIMAGEBUFFERCOLORPRIMARIES_ITU_R_2020 0 ++%define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2020 0 ++%define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_428_1 0 ++%define HAVE_SOCKLEN_T 0 ++%define HAVE_STRUCT_ADDRINFO 0 ++%define HAVE_STRUCT_GROUP_SOURCE_REQ 0 ++%define HAVE_STRUCT_IP_MREQ_SOURCE 0 ++%define HAVE_STRUCT_IPV6_MREQ 0 ++%define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 ++%define HAVE_STRUCT_POLLFD 0 ++%define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1 ++%define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 ++%define HAVE_STRUCT_SOCKADDR_IN6 0 ++%define HAVE_STRUCT_SOCKADDR_SA_LEN 0 ++%define HAVE_STRUCT_SOCKADDR_STORAGE 0 ++%define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 ++%define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1 ++%define HAVE_GZIP 1 ++%define HAVE_LIBDRM_GETFB2 0 ++%define HAVE_MAKEINFO 1 ++%define HAVE_MAKEINFO_HTML 0 ++%define HAVE_OPENCL_D3D11 0 ++%define HAVE_OPENCL_DRM_ARM 0 ++%define HAVE_OPENCL_DRM_BEIGNET 0 ++%define HAVE_OPENCL_DXVA2 0 ++%define HAVE_OPENCL_VAAPI_BEIGNET 0 ++%define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 ++%define HAVE_PERL 1 ++%define HAVE_POD2MAN 1 ++%define HAVE_TEXI2HTML 0 ++%define HAVE_XMLLINT 1 ++%define HAVE_ZLIB_GZIP 0 ++%define CONFIG_DOC 0 ++%define CONFIG_HTMLPAGES 0 ++%define CONFIG_MANPAGES 0 ++%define CONFIG_PODPAGES 0 ++%define CONFIG_TXTPAGES 0 ++%define CONFIG_AVIO_LIST_DIR_EXAMPLE 1 ++%define CONFIG_AVIO_READING_EXAMPLE 1 ++%define CONFIG_DECODE_AUDIO_EXAMPLE 1 ++%define CONFIG_DECODE_VIDEO_EXAMPLE 1 ++%define CONFIG_DEMUXING_DECODING_EXAMPLE 1 ++%define CONFIG_ENCODE_AUDIO_EXAMPLE 1 ++%define CONFIG_ENCODE_VIDEO_EXAMPLE 1 ++%define CONFIG_EXTRACT_MVS_EXAMPLE 1 ++%define CONFIG_FILTER_AUDIO_EXAMPLE 0 ++%define CONFIG_FILTERING_AUDIO_EXAMPLE 0 ++%define CONFIG_FILTERING_VIDEO_EXAMPLE 0 ++%define CONFIG_HTTP_MULTICLIENT_EXAMPLE 1 ++%define CONFIG_HW_DECODE_EXAMPLE 1 ++%define CONFIG_METADATA_EXAMPLE 1 ++%define CONFIG_MUXING_EXAMPLE 0 ++%define CONFIG_QSVDEC_EXAMPLE 0 ++%define CONFIG_REMUXING_EXAMPLE 1 ++%define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0 ++%define CONFIG_SCALING_VIDEO_EXAMPLE 0 ++%define CONFIG_TRANSCODE_AAC_EXAMPLE 0 ++%define CONFIG_TRANSCODING_EXAMPLE 0 ++%define CONFIG_VAAPI_ENCODE_EXAMPLE 0 ++%define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 ++%define CONFIG_AVISYNTH 0 ++%define CONFIG_FREI0R 0 ++%define CONFIG_LIBCDIO 0 ++%define CONFIG_LIBDAVS2 0 ++%define CONFIG_LIBRUBBERBAND 0 ++%define CONFIG_LIBVIDSTAB 0 ++%define CONFIG_LIBX264 0 ++%define CONFIG_LIBX265 0 ++%define CONFIG_LIBXAVS 0 ++%define CONFIG_LIBXAVS2 0 ++%define CONFIG_LIBXVID 0 ++%define CONFIG_DECKLINK 0 ++%define CONFIG_LIBFDK_AAC 0 ++%define CONFIG_LIBTLS 0 ++%define CONFIG_GMP 0 ++%define CONFIG_LIBARIBB24 0 ++%define CONFIG_LIBLENSFUN 0 ++%define CONFIG_LIBOPENCORE_AMRNB 0 ++%define CONFIG_LIBOPENCORE_AMRWB 0 ++%define CONFIG_LIBVO_AMRWBENC 0 ++%define CONFIG_MBEDTLS 0 ++%define CONFIG_RKMPP 0 ++%define CONFIG_LIBSMBCLIENT 0 ++%define CONFIG_CHROMAPRINT 0 ++%define CONFIG_GCRYPT 0 ++%define CONFIG_GNUTLS 0 ++%define CONFIG_JNI 0 ++%define CONFIG_LADSPA 0 ++%define CONFIG_LIBAOM 0 ++%define CONFIG_LIBASS 0 ++%define CONFIG_LIBBLURAY 0 ++%define CONFIG_LIBBS2B 0 ++%define CONFIG_LIBCACA 0 ++%define CONFIG_LIBCELT 0 ++%define CONFIG_LIBCODEC2 0 ++%define CONFIG_LIBDAV1D 0 ++%define CONFIG_LIBDC1394 0 ++%define CONFIG_LIBDRM 0 ++%define CONFIG_LIBFLITE 0 ++%define CONFIG_LIBFONTCONFIG 0 ++%define CONFIG_LIBFREETYPE 0 ++%define CONFIG_LIBFRIBIDI 0 ++%define CONFIG_LIBGLSLANG 0 ++%define CONFIG_LIBGME 0 ++%define CONFIG_LIBGSM 0 ++%define CONFIG_LIBIEC61883 0 ++%define CONFIG_LIBILBC 0 ++%define CONFIG_LIBJACK 0 ++%define CONFIG_LIBKLVANC 0 ++%define CONFIG_LIBKVAZAAR 0 ++%define CONFIG_LIBMODPLUG 0 ++%define CONFIG_LIBMP3LAME 0 ++%define CONFIG_LIBMYSOFA 0 ++%define CONFIG_LIBOPENCV 0 ++%define CONFIG_LIBOPENH264 0 ++%define CONFIG_LIBOPENJPEG 0 ++%define CONFIG_LIBOPENMPT 0 ++%define CONFIG_LIBOPENVINO 0 ++%define CONFIG_LIBOPUS 1 ++%define CONFIG_LIBPLACEBO 0 ++%define CONFIG_LIBPULSE 0 ++%define CONFIG_LIBRABBITMQ 0 ++%define CONFIG_LIBRAV1E 0 ++%define CONFIG_LIBRIST 0 ++%define CONFIG_LIBRSVG 0 ++%define CONFIG_LIBRTMP 0 ++%define CONFIG_LIBSHADERC 0 ++%define CONFIG_LIBSHINE 0 ++%define CONFIG_LIBSMBCLIENT 0 ++%define CONFIG_LIBSNAPPY 0 ++%define CONFIG_LIBSOXR 0 ++%define CONFIG_LIBSPEEX 0 ++%define CONFIG_LIBSRT 0 ++%define CONFIG_LIBSSH 0 ++%define CONFIG_LIBSVTAV1 0 ++%define CONFIG_LIBTENSORFLOW 0 ++%define CONFIG_LIBTESSERACT 0 ++%define CONFIG_LIBTHEORA 0 ++%define CONFIG_LIBTWOLAME 0 ++%define CONFIG_LIBUAVS3D 0 ++%define CONFIG_LIBV4L2 0 ++%define CONFIG_LIBVMAF 0 ++%define CONFIG_LIBVORBIS 0 ++%define CONFIG_LIBVPX 0 ++%define CONFIG_LIBWEBP 0 ++%define CONFIG_LIBXML2 0 ++%define CONFIG_LIBZIMG 0 ++%define CONFIG_LIBZMQ 0 ++%define CONFIG_LIBZVBI 0 ++%define CONFIG_LV2 0 ++%define CONFIG_MEDIACODEC 0 ++%define CONFIG_OPENAL 0 ++%define CONFIG_OPENGL 0 ++%define CONFIG_OPENSSL 0 ++%define CONFIG_POCKETSPHINX 0 ++%define CONFIG_VAPOURSYNTH 0 ++%define CONFIG_ALSA 0 ++%define CONFIG_APPKIT 0 ++%define CONFIG_AVFOUNDATION 0 ++%define CONFIG_BZLIB 0 ++%define CONFIG_COREIMAGE 0 ++%define CONFIG_ICONV 0 ++%define CONFIG_LIBXCB 0 ++%define CONFIG_LIBXCB_SHM 0 ++%define CONFIG_LIBXCB_SHAPE 0 ++%define CONFIG_LIBXCB_XFIXES 0 ++%define CONFIG_LZMA 0 ++%define CONFIG_MEDIAFOUNDATION 0 ++%define CONFIG_METAL 0 ++%define CONFIG_SCHANNEL 0 ++%define CONFIG_SDL2 0 ++%define CONFIG_SECURETRANSPORT 0 ++%define CONFIG_SNDIO 0 ++%define CONFIG_XLIB 0 ++%define CONFIG_ZLIB 0 ++%define CONFIG_CUDA_NVCC 0 ++%define CONFIG_CUDA_SDK 0 ++%define CONFIG_LIBNPP 0 ++%define CONFIG_LIBMFX 0 ++%define CONFIG_MMAL 0 ++%define CONFIG_OMX 0 ++%define CONFIG_OPENCL 0 ++%define CONFIG_AMF 0 ++%define CONFIG_AUDIOTOOLBOX 0 ++%define CONFIG_CRYSTALHD 0 ++%define CONFIG_CUDA 0 ++%define CONFIG_CUDA_LLVM 0 ++%define CONFIG_CUVID 0 ++%define CONFIG_D3D11VA 0 ++%define CONFIG_DXVA2 0 ++%define CONFIG_FFNVCODEC 0 ++%define CONFIG_NVDEC 0 ++%define CONFIG_NVENC 0 ++%define CONFIG_VAAPI 0 ++%define CONFIG_VDPAU 0 ++%define CONFIG_VIDEOTOOLBOX 0 ++%define CONFIG_VULKAN 0 ++%define CONFIG_V4L2_M2M 0 ++%define CONFIG_XVMC 0 ++%define CONFIG_FTRAPV 0 ++%define CONFIG_GRAY 0 ++%define CONFIG_HARDCODED_TABLES 0 ++%define CONFIG_OMX_RPI 0 ++%define CONFIG_RUNTIME_CPUDETECT 1 ++%define CONFIG_SAFE_BITSTREAM_READER 1 ++%define CONFIG_SHARED 0 ++%define CONFIG_SMALL 0 ++%define CONFIG_STATIC 1 ++%define CONFIG_SWSCALE_ALPHA 1 ++%define CONFIG_GPL 0 ++%define CONFIG_NONFREE 0 ++%define CONFIG_VERSION3 0 ++%define CONFIG_AVDEVICE 0 ++%define CONFIG_AVFILTER 0 ++%define CONFIG_SWSCALE 0 ++%define CONFIG_POSTPROC 0 ++%define CONFIG_AVFORMAT 1 ++%define CONFIG_AVCODEC 1 ++%define CONFIG_SWRESAMPLE 0 ++%define CONFIG_AVUTIL 1 ++%define CONFIG_FFPLAY 0 ++%define CONFIG_FFPROBE 0 ++%define CONFIG_FFMPEG 0 ++%define CONFIG_DCT 1 ++%define CONFIG_DWT 0 ++%define CONFIG_ERROR_RESILIENCE 0 ++%define CONFIG_FAAN 0 ++%define CONFIG_FAST_UNALIGNED 1 ++%define CONFIG_FFT 1 ++%define CONFIG_LSP 0 ++%define CONFIG_LZO 0 ++%define CONFIG_MDCT 1 ++%define CONFIG_PIXELUTILS 0 ++%define CONFIG_NETWORK 0 ++%define CONFIG_RDFT 1 ++%define CONFIG_AUTODETECT 0 ++%define CONFIG_FONTCONFIG 0 ++%define CONFIG_LARGE_TESTS 1 ++%define CONFIG_LINUX_PERF 0 ++%define CONFIG_MACOS_KPERF 0 ++%define CONFIG_MEMORY_POISONING 0 ++%define CONFIG_NEON_CLOBBER_TEST 0 ++%define CONFIG_OSSFUZZ 0 ++%define CONFIG_PIC 1 ++%define CONFIG_PTX_COMPRESSION 0 ++%define CONFIG_THUMB 0 ++%define CONFIG_VALGRIND_BACKTRACE 0 ++%define CONFIG_XMM_CLOBBER_TEST 0 ++%define CONFIG_BSFS 0 ++%define CONFIG_DECODERS 1 ++%define CONFIG_ENCODERS 0 ++%define CONFIG_HWACCELS 0 ++%define CONFIG_PARSERS 1 ++%define CONFIG_INDEVS 0 ++%define CONFIG_OUTDEVS 0 ++%define CONFIG_FILTERS 0 ++%define CONFIG_DEMUXERS 1 ++%define CONFIG_MUXERS 0 ++%define CONFIG_PROTOCOLS 0 ++%define CONFIG_AANDCTTABLES 0 ++%define CONFIG_AC3DSP 0 ++%define CONFIG_ADTS_HEADER 1 ++%define CONFIG_ATSC_A53 1 ++%define CONFIG_AUDIO_FRAME_QUEUE 0 ++%define CONFIG_AUDIODSP 0 ++%define CONFIG_BLOCKDSP 0 ++%define CONFIG_BSWAPDSP 0 ++%define CONFIG_CABAC 1 ++%define CONFIG_CBS 0 ++%define CONFIG_CBS_AV1 0 ++%define CONFIG_CBS_H264 0 ++%define CONFIG_CBS_H265 0 ++%define CONFIG_CBS_JPEG 0 ++%define CONFIG_CBS_MPEG2 0 ++%define CONFIG_CBS_VP9 0 ++%define CONFIG_DIRAC_PARSE 1 ++%define CONFIG_DNN 0 ++%define CONFIG_DOVI_RPU 0 ++%define CONFIG_DVPROFILE 0 ++%define CONFIG_EXIF 0 ++%define CONFIG_FAANDCT 0 ++%define CONFIG_FAANIDCT 0 ++%define CONFIG_FDCTDSP 0 ++%define CONFIG_FLACDSP 1 ++%define CONFIG_FMTCONVERT 0 ++%define CONFIG_FRAME_THREAD_ENCODER 0 ++%define CONFIG_G722DSP 0 ++%define CONFIG_GOLOMB 1 ++%define CONFIG_GPLV3 0 ++%define CONFIG_H263DSP 0 ++%define CONFIG_H264CHROMA 1 ++%define CONFIG_H264DSP 1 ++%define CONFIG_H264PARSE 1 ++%define CONFIG_H264PRED 1 ++%define CONFIG_H264QPEL 1 ++%define CONFIG_HEVCPARSE 0 ++%define CONFIG_HPELDSP 1 ++%define CONFIG_HUFFMAN 0 ++%define CONFIG_HUFFYUVDSP 0 ++%define CONFIG_HUFFYUVENCDSP 0 ++%define CONFIG_IDCTDSP 0 ++%define CONFIG_IIRFILTER 0 ++%define CONFIG_MDCT15 1 ++%define CONFIG_INTRAX8 0 ++%define CONFIG_ISO_MEDIA 1 ++%define CONFIG_IVIDSP 0 ++%define CONFIG_JPEGTABLES 0 ++%define CONFIG_LGPLV3 0 ++%define CONFIG_LIBX262 0 ++%define CONFIG_LLAUDDSP 0 ++%define CONFIG_LLVIDDSP 0 ++%define CONFIG_LLVIDENCDSP 0 ++%define CONFIG_LPC 0 ++%define CONFIG_LZF 0 ++%define CONFIG_ME_CMP 0 ++%define CONFIG_MPEG_ER 0 ++%define CONFIG_MPEGAUDIO 1 ++%define CONFIG_MPEGAUDIODSP 1 ++%define CONFIG_MPEGAUDIOHEADER 1 ++%define CONFIG_MPEG4AUDIO 1 ++%define CONFIG_MPEGVIDEO 0 ++%define CONFIG_MPEGVIDEODEC 0 ++%define CONFIG_MPEGVIDEOENC 0 ++%define CONFIG_MSS34DSP 0 ++%define CONFIG_PIXBLOCKDSP 0 ++%define CONFIG_QPELDSP 0 ++%define CONFIG_QSV 0 ++%define CONFIG_QSVDEC 0 ++%define CONFIG_QSVENC 0 ++%define CONFIG_QSVVPP 0 ++%define CONFIG_RANGECODER 0 ++%define CONFIG_RIFFDEC 1 ++%define CONFIG_RIFFENC 0 ++%define CONFIG_RTPDEC 0 ++%define CONFIG_RTPENC_CHAIN 0 ++%define CONFIG_RV34DSP 0 ++%define CONFIG_SCENE_SAD 0 ++%define CONFIG_SINEWIN 1 ++%define CONFIG_SNAPPY 0 ++%define CONFIG_SRTP 0 ++%define CONFIG_STARTCODE 1 ++%define CONFIG_TEXTUREDSP 0 ++%define CONFIG_TEXTUREDSPENC 0 ++%define CONFIG_TPELDSP 0 ++%define CONFIG_VAAPI_1 0 ++%define CONFIG_VAAPI_ENCODE 0 ++%define CONFIG_VC1DSP 0 ++%define CONFIG_VIDEODSP 1 ++%define CONFIG_VP3DSP 1 ++%define CONFIG_VP56DSP 0 ++%define CONFIG_VP8DSP 1 ++%define CONFIG_WMA_FREQS 0 ++%define CONFIG_WMV2DSP 0 ++%define CONFIG_AAC_ADTSTOASC_BSF 0 ++%define CONFIG_AV1_FRAME_MERGE_BSF 0 ++%define CONFIG_AV1_FRAME_SPLIT_BSF 0 ++%define CONFIG_AV1_METADATA_BSF 0 ++%define CONFIG_CHOMP_BSF 0 ++%define CONFIG_DUMP_EXTRADATA_BSF 0 ++%define CONFIG_DCA_CORE_BSF 0 ++%define CONFIG_EAC3_CORE_BSF 0 ++%define CONFIG_EXTRACT_EXTRADATA_BSF 0 ++%define CONFIG_FILTER_UNITS_BSF 0 ++%define CONFIG_H264_METADATA_BSF 0 ++%define CONFIG_H264_MP4TOANNEXB_BSF 0 ++%define CONFIG_H264_REDUNDANT_PPS_BSF 0 ++%define CONFIG_HAPQA_EXTRACT_BSF 0 ++%define CONFIG_HEVC_METADATA_BSF 0 ++%define CONFIG_HEVC_MP4TOANNEXB_BSF 0 ++%define CONFIG_IMX_DUMP_HEADER_BSF 0 ++%define CONFIG_MJPEG2JPEG_BSF 0 ++%define CONFIG_MJPEGA_DUMP_HEADER_BSF 0 ++%define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0 ++%define CONFIG_MPEG2_METADATA_BSF 0 ++%define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 0 ++%define CONFIG_MOV2TEXTSUB_BSF 0 ++%define CONFIG_NOISE_BSF 0 ++%define CONFIG_NULL_BSF 0 ++%define CONFIG_OPUS_METADATA_BSF 0 ++%define CONFIG_PCM_RECHUNK_BSF 0 ++%define CONFIG_PRORES_METADATA_BSF 0 ++%define CONFIG_REMOVE_EXTRADATA_BSF 0 ++%define CONFIG_SETTS_BSF 0 ++%define CONFIG_TEXT2MOVSUB_BSF 0 ++%define CONFIG_TRACE_HEADERS_BSF 0 ++%define CONFIG_TRUEHD_CORE_BSF 0 ++%define CONFIG_VP9_METADATA_BSF 0 ++%define CONFIG_VP9_RAW_REORDER_BSF 0 ++%define CONFIG_VP9_SUPERFRAME_BSF 0 ++%define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 0 ++%define CONFIG_AASC_DECODER 0 ++%define CONFIG_AIC_DECODER 0 ++%define CONFIG_ALIAS_PIX_DECODER 0 ++%define CONFIG_AGM_DECODER 0 ++%define CONFIG_AMV_DECODER 0 ++%define CONFIG_ANM_DECODER 0 ++%define CONFIG_ANSI_DECODER 0 ++%define CONFIG_APNG_DECODER 0 ++%define CONFIG_ARBC_DECODER 0 ++%define CONFIG_ARGO_DECODER 0 ++%define CONFIG_ASV1_DECODER 0 ++%define CONFIG_ASV2_DECODER 0 ++%define CONFIG_AURA_DECODER 0 ++%define CONFIG_AURA2_DECODER 0 ++%define CONFIG_AVRP_DECODER 0 ++%define CONFIG_AVRN_DECODER 0 ++%define CONFIG_AVS_DECODER 0 ++%define CONFIG_AVUI_DECODER 0 ++%define CONFIG_AYUV_DECODER 0 ++%define CONFIG_BETHSOFTVID_DECODER 0 ++%define CONFIG_BFI_DECODER 0 ++%define CONFIG_BINK_DECODER 0 ++%define CONFIG_BITPACKED_DECODER 0 ++%define CONFIG_BMP_DECODER 0 ++%define CONFIG_BMV_VIDEO_DECODER 0 ++%define CONFIG_BRENDER_PIX_DECODER 0 ++%define CONFIG_C93_DECODER 0 ++%define CONFIG_CAVS_DECODER 0 ++%define CONFIG_CDGRAPHICS_DECODER 0 ++%define CONFIG_CDTOONS_DECODER 0 ++%define CONFIG_CDXL_DECODER 0 ++%define CONFIG_CFHD_DECODER 0 ++%define CONFIG_CINEPAK_DECODER 0 ++%define CONFIG_CLEARVIDEO_DECODER 0 ++%define CONFIG_CLJR_DECODER 0 ++%define CONFIG_CLLC_DECODER 0 ++%define CONFIG_COMFORTNOISE_DECODER 0 ++%define CONFIG_CPIA_DECODER 0 ++%define CONFIG_CRI_DECODER 0 ++%define CONFIG_CSCD_DECODER 0 ++%define CONFIG_CYUV_DECODER 0 ++%define CONFIG_DDS_DECODER 0 ++%define CONFIG_DFA_DECODER 0 ++%define CONFIG_DIRAC_DECODER 0 ++%define CONFIG_DNXHD_DECODER 0 ++%define CONFIG_DPX_DECODER 0 ++%define CONFIG_DSICINVIDEO_DECODER 0 ++%define CONFIG_DVAUDIO_DECODER 0 ++%define CONFIG_DVVIDEO_DECODER 0 ++%define CONFIG_DXA_DECODER 0 ++%define CONFIG_DXTORY_DECODER 0 ++%define CONFIG_DXV_DECODER 0 ++%define CONFIG_EACMV_DECODER 0 ++%define CONFIG_EAMAD_DECODER 0 ++%define CONFIG_EATGQ_DECODER 0 ++%define CONFIG_EATGV_DECODER 0 ++%define CONFIG_EATQI_DECODER 0 ++%define CONFIG_EIGHTBPS_DECODER 0 ++%define CONFIG_EIGHTSVX_EXP_DECODER 0 ++%define CONFIG_EIGHTSVX_FIB_DECODER 0 ++%define CONFIG_ESCAPE124_DECODER 0 ++%define CONFIG_ESCAPE130_DECODER 0 ++%define CONFIG_EXR_DECODER 0 ++%define CONFIG_FFV1_DECODER 0 ++%define CONFIG_FFVHUFF_DECODER 0 ++%define CONFIG_FIC_DECODER 0 ++%define CONFIG_FITS_DECODER 0 ++%define CONFIG_FLASHSV_DECODER 0 ++%define CONFIG_FLASHSV2_DECODER 0 ++%define CONFIG_FLIC_DECODER 0 ++%define CONFIG_FLV_DECODER 0 ++%define CONFIG_FMVC_DECODER 0 ++%define CONFIG_FOURXM_DECODER 0 ++%define CONFIG_FRAPS_DECODER 0 ++%define CONFIG_FRWU_DECODER 0 ++%define CONFIG_G2M_DECODER 0 ++%define CONFIG_GDV_DECODER 0 ++%define CONFIG_GEM_DECODER 0 ++%define CONFIG_GIF_DECODER 0 ++%define CONFIG_H261_DECODER 0 ++%define CONFIG_H263_DECODER 0 ++%define CONFIG_H263I_DECODER 0 ++%define CONFIG_H263P_DECODER 0 ++%define CONFIG_H263_V4L2M2M_DECODER 0 ++%define CONFIG_H264_DECODER 1 ++%define CONFIG_H264_CRYSTALHD_DECODER 0 ++%define CONFIG_H264_V4L2M2M_DECODER 0 ++%define CONFIG_H264_MEDIACODEC_DECODER 0 ++%define CONFIG_H264_MMAL_DECODER 0 ++%define CONFIG_H264_QSV_DECODER 0 ++%define CONFIG_H264_RKMPP_DECODER 0 ++%define CONFIG_HAP_DECODER 0 ++%define CONFIG_HEVC_DECODER 0 ++%define CONFIG_HEVC_QSV_DECODER 0 ++%define CONFIG_HEVC_RKMPP_DECODER 0 ++%define CONFIG_HEVC_V4L2M2M_DECODER 0 ++%define CONFIG_HNM4_VIDEO_DECODER 0 ++%define CONFIG_HQ_HQA_DECODER 0 ++%define CONFIG_HQX_DECODER 0 ++%define CONFIG_HUFFYUV_DECODER 0 ++%define CONFIG_HYMT_DECODER 0 ++%define CONFIG_IDCIN_DECODER 0 ++%define CONFIG_IFF_ILBM_DECODER 0 ++%define CONFIG_IMM4_DECODER 0 ++%define CONFIG_IMM5_DECODER 0 ++%define CONFIG_INDEO2_DECODER 0 ++%define CONFIG_INDEO3_DECODER 0 ++%define CONFIG_INDEO4_DECODER 0 ++%define CONFIG_INDEO5_DECODER 0 ++%define CONFIG_INTERPLAY_VIDEO_DECODER 0 ++%define CONFIG_IPU_DECODER 0 ++%define CONFIG_JPEG2000_DECODER 0 ++%define CONFIG_JPEGLS_DECODER 0 ++%define CONFIG_JV_DECODER 0 ++%define CONFIG_KGV1_DECODER 0 ++%define CONFIG_KMVC_DECODER 0 ++%define CONFIG_LAGARITH_DECODER 0 ++%define CONFIG_LOCO_DECODER 0 ++%define CONFIG_LSCR_DECODER 0 ++%define CONFIG_M101_DECODER 0 ++%define CONFIG_MAGICYUV_DECODER 0 ++%define CONFIG_MDEC_DECODER 0 ++%define CONFIG_MIMIC_DECODER 0 ++%define CONFIG_MJPEG_DECODER 0 ++%define CONFIG_MJPEGB_DECODER 0 ++%define CONFIG_MMVIDEO_DECODER 0 ++%define CONFIG_MOBICLIP_DECODER 0 ++%define CONFIG_MOTIONPIXELS_DECODER 0 ++%define CONFIG_MPEG1VIDEO_DECODER 0 ++%define CONFIG_MPEG2VIDEO_DECODER 0 ++%define CONFIG_MPEG4_DECODER 0 ++%define CONFIG_MPEG4_CRYSTALHD_DECODER 0 ++%define CONFIG_MPEG4_V4L2M2M_DECODER 0 ++%define CONFIG_MPEG4_MMAL_DECODER 0 ++%define CONFIG_MPEGVIDEO_DECODER 0 ++%define CONFIG_MPEG1_V4L2M2M_DECODER 0 ++%define CONFIG_MPEG2_MMAL_DECODER 0 ++%define CONFIG_MPEG2_CRYSTALHD_DECODER 0 ++%define CONFIG_MPEG2_V4L2M2M_DECODER 0 ++%define CONFIG_MPEG2_QSV_DECODER 0 ++%define CONFIG_MPEG2_MEDIACODEC_DECODER 0 ++%define CONFIG_MSA1_DECODER 0 ++%define CONFIG_MSCC_DECODER 0 ++%define CONFIG_MSMPEG4V1_DECODER 0 ++%define CONFIG_MSMPEG4V2_DECODER 0 ++%define CONFIG_MSMPEG4V3_DECODER 0 ++%define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 ++%define CONFIG_MSP2_DECODER 0 ++%define CONFIG_MSRLE_DECODER 0 ++%define CONFIG_MSS1_DECODER 0 ++%define CONFIG_MSS2_DECODER 0 ++%define CONFIG_MSVIDEO1_DECODER 0 ++%define CONFIG_MSZH_DECODER 0 ++%define CONFIG_MTS2_DECODER 0 ++%define CONFIG_MV30_DECODER 0 ++%define CONFIG_MVC1_DECODER 0 ++%define CONFIG_MVC2_DECODER 0 ++%define CONFIG_MVDV_DECODER 0 ++%define CONFIG_MVHA_DECODER 0 ++%define CONFIG_MWSC_DECODER 0 ++%define CONFIG_MXPEG_DECODER 0 ++%define CONFIG_NOTCHLC_DECODER 0 ++%define CONFIG_NUV_DECODER 0 ++%define CONFIG_PAF_VIDEO_DECODER 0 ++%define CONFIG_PAM_DECODER 0 ++%define CONFIG_PBM_DECODER 0 ++%define CONFIG_PCX_DECODER 0 ++%define CONFIG_PFM_DECODER 0 ++%define CONFIG_PGM_DECODER 0 ++%define CONFIG_PGMYUV_DECODER 0 ++%define CONFIG_PGX_DECODER 0 ++%define CONFIG_PHOTOCD_DECODER 0 ++%define CONFIG_PICTOR_DECODER 0 ++%define CONFIG_PIXLET_DECODER 0 ++%define CONFIG_PNG_DECODER 0 ++%define CONFIG_PPM_DECODER 0 ++%define CONFIG_PRORES_DECODER 0 ++%define CONFIG_PROSUMER_DECODER 0 ++%define CONFIG_PSD_DECODER 0 ++%define CONFIG_PTX_DECODER 0 ++%define CONFIG_QDRAW_DECODER 0 ++%define CONFIG_QPEG_DECODER 0 ++%define CONFIG_QTRLE_DECODER 0 ++%define CONFIG_R10K_DECODER 0 ++%define CONFIG_R210_DECODER 0 ++%define CONFIG_RASC_DECODER 0 ++%define CONFIG_RAWVIDEO_DECODER 0 ++%define CONFIG_RL2_DECODER 0 ++%define CONFIG_ROQ_DECODER 0 ++%define CONFIG_RPZA_DECODER 0 ++%define CONFIG_RSCC_DECODER 0 ++%define CONFIG_RV10_DECODER 0 ++%define CONFIG_RV20_DECODER 0 ++%define CONFIG_RV30_DECODER 0 ++%define CONFIG_RV40_DECODER 0 ++%define CONFIG_S302M_DECODER 0 ++%define CONFIG_SANM_DECODER 0 ++%define CONFIG_SCPR_DECODER 0 ++%define CONFIG_SCREENPRESSO_DECODER 0 ++%define CONFIG_SGA_DECODER 0 ++%define CONFIG_SGI_DECODER 0 ++%define CONFIG_SGIRLE_DECODER 0 ++%define CONFIG_SHEERVIDEO_DECODER 0 ++%define CONFIG_SIMBIOSIS_IMX_DECODER 0 ++%define CONFIG_SMACKER_DECODER 0 ++%define CONFIG_SMC_DECODER 0 ++%define CONFIG_SMVJPEG_DECODER 0 ++%define CONFIG_SNOW_DECODER 0 ++%define CONFIG_SP5X_DECODER 0 ++%define CONFIG_SPEEDHQ_DECODER 0 ++%define CONFIG_SPEEX_DECODER 0 ++%define CONFIG_SRGC_DECODER 0 ++%define CONFIG_SUNRAST_DECODER 0 ++%define CONFIG_SVQ1_DECODER 0 ++%define CONFIG_SVQ3_DECODER 0 ++%define CONFIG_TARGA_DECODER 0 ++%define CONFIG_TARGA_Y216_DECODER 0 ++%define CONFIG_TDSC_DECODER 0 ++%define CONFIG_THEORA_DECODER 1 ++%define CONFIG_THP_DECODER 0 ++%define CONFIG_TIERTEXSEQVIDEO_DECODER 0 ++%define CONFIG_TIFF_DECODER 0 ++%define CONFIG_TMV_DECODER 0 ++%define CONFIG_TRUEMOTION1_DECODER 0 ++%define CONFIG_TRUEMOTION2_DECODER 0 ++%define CONFIG_TRUEMOTION2RT_DECODER 0 ++%define CONFIG_TSCC_DECODER 0 ++%define CONFIG_TSCC2_DECODER 0 ++%define CONFIG_TXD_DECODER 0 ++%define CONFIG_ULTI_DECODER 0 ++%define CONFIG_UTVIDEO_DECODER 0 ++%define CONFIG_V210_DECODER 0 ++%define CONFIG_V210X_DECODER 0 ++%define CONFIG_V308_DECODER 0 ++%define CONFIG_V408_DECODER 0 ++%define CONFIG_V410_DECODER 0 ++%define CONFIG_VB_DECODER 0 ++%define CONFIG_VBLE_DECODER 0 ++%define CONFIG_VC1_DECODER 0 ++%define CONFIG_VC1_CRYSTALHD_DECODER 0 ++%define CONFIG_VC1IMAGE_DECODER 0 ++%define CONFIG_VC1_MMAL_DECODER 0 ++%define CONFIG_VC1_QSV_DECODER 0 ++%define CONFIG_VC1_V4L2M2M_DECODER 0 ++%define CONFIG_VCR1_DECODER 0 ++%define CONFIG_VMDVIDEO_DECODER 0 ++%define CONFIG_VMNC_DECODER 0 ++%define CONFIG_VP3_DECODER 1 ++%define CONFIG_VP4_DECODER 0 ++%define CONFIG_VP5_DECODER 0 ++%define CONFIG_VP6_DECODER 0 ++%define CONFIG_VP6A_DECODER 0 ++%define CONFIG_VP6F_DECODER 0 ++%define CONFIG_VP7_DECODER 0 ++%define CONFIG_VP8_DECODER 1 ++%define CONFIG_VP8_RKMPP_DECODER 0 ++%define CONFIG_VP8_V4L2M2M_DECODER 0 ++%define CONFIG_VP9_DECODER 0 ++%define CONFIG_VP9_RKMPP_DECODER 0 ++%define CONFIG_VP9_V4L2M2M_DECODER 0 ++%define CONFIG_VQA_DECODER 0 ++%define CONFIG_WEBP_DECODER 0 ++%define CONFIG_WCMV_DECODER 0 ++%define CONFIG_WRAPPED_AVFRAME_DECODER 0 ++%define CONFIG_WMV1_DECODER 0 ++%define CONFIG_WMV2_DECODER 0 ++%define CONFIG_WMV3_DECODER 0 ++%define CONFIG_WMV3_CRYSTALHD_DECODER 0 ++%define CONFIG_WMV3IMAGE_DECODER 0 ++%define CONFIG_WNV1_DECODER 0 ++%define CONFIG_XAN_WC3_DECODER 0 ++%define CONFIG_XAN_WC4_DECODER 0 ++%define CONFIG_XBM_DECODER 0 ++%define CONFIG_XFACE_DECODER 0 ++%define CONFIG_XL_DECODER 0 ++%define CONFIG_XPM_DECODER 0 ++%define CONFIG_XWD_DECODER 0 ++%define CONFIG_Y41P_DECODER 0 ++%define CONFIG_YLC_DECODER 0 ++%define CONFIG_YOP_DECODER 0 ++%define CONFIG_YUV4_DECODER 0 ++%define CONFIG_ZERO12V_DECODER 0 ++%define CONFIG_ZEROCODEC_DECODER 0 ++%define CONFIG_ZLIB_DECODER 0 ++%define CONFIG_ZMBV_DECODER 0 ++%define CONFIG_AAC_DECODER 1 ++%define CONFIG_AAC_FIXED_DECODER 0 ++%define CONFIG_AAC_LATM_DECODER 0 ++%define CONFIG_AC3_DECODER 0 ++%define CONFIG_AC3_FIXED_DECODER 0 ++%define CONFIG_ACELP_KELVIN_DECODER 0 ++%define CONFIG_ALAC_DECODER 0 ++%define CONFIG_ALS_DECODER 0 ++%define CONFIG_AMRNB_DECODER 0 ++%define CONFIG_AMRWB_DECODER 0 ++%define CONFIG_APE_DECODER 0 ++%define CONFIG_APTX_DECODER 0 ++%define CONFIG_APTX_HD_DECODER 0 ++%define CONFIG_ATRAC1_DECODER 0 ++%define CONFIG_ATRAC3_DECODER 0 ++%define CONFIG_ATRAC3AL_DECODER 0 ++%define CONFIG_ATRAC3P_DECODER 0 ++%define CONFIG_ATRAC3PAL_DECODER 0 ++%define CONFIG_ATRAC9_DECODER 0 ++%define CONFIG_BINKAUDIO_DCT_DECODER 0 ++%define CONFIG_BINKAUDIO_RDFT_DECODER 0 ++%define CONFIG_BMV_AUDIO_DECODER 0 ++%define CONFIG_COOK_DECODER 0 ++%define CONFIG_DCA_DECODER 0 ++%define CONFIG_DOLBY_E_DECODER 0 ++%define CONFIG_DSD_LSBF_DECODER 0 ++%define CONFIG_DSD_MSBF_DECODER 0 ++%define CONFIG_DSD_LSBF_PLANAR_DECODER 0 ++%define CONFIG_DSD_MSBF_PLANAR_DECODER 0 ++%define CONFIG_DSICINAUDIO_DECODER 0 ++%define CONFIG_DSS_SP_DECODER 0 ++%define CONFIG_DST_DECODER 0 ++%define CONFIG_EAC3_DECODER 0 ++%define CONFIG_EVRC_DECODER 0 ++%define CONFIG_FASTAUDIO_DECODER 0 ++%define CONFIG_FFWAVESYNTH_DECODER 0 ++%define CONFIG_FLAC_DECODER 1 ++%define CONFIG_G723_1_DECODER 0 ++%define CONFIG_G729_DECODER 0 ++%define CONFIG_GSM_DECODER 0 ++%define CONFIG_GSM_MS_DECODER 0 ++%define CONFIG_HCA_DECODER 0 ++%define CONFIG_HCOM_DECODER 0 ++%define CONFIG_IAC_DECODER 0 ++%define CONFIG_ILBC_DECODER 0 ++%define CONFIG_IMC_DECODER 0 ++%define CONFIG_INTERPLAY_ACM_DECODER 0 ++%define CONFIG_MACE3_DECODER 0 ++%define CONFIG_MACE6_DECODER 0 ++%define CONFIG_METASOUND_DECODER 0 ++%define CONFIG_MLP_DECODER 0 ++%define CONFIG_MP1_DECODER 0 ++%define CONFIG_MP1FLOAT_DECODER 0 ++%define CONFIG_MP2_DECODER 0 ++%define CONFIG_MP2FLOAT_DECODER 0 ++%define CONFIG_MP3FLOAT_DECODER 0 ++%define CONFIG_MP3_DECODER 1 ++%define CONFIG_MP3ADUFLOAT_DECODER 0 ++%define CONFIG_MP3ADU_DECODER 0 ++%define CONFIG_MP3ON4FLOAT_DECODER 0 ++%define CONFIG_MP3ON4_DECODER 0 ++%define CONFIG_MPC7_DECODER 0 ++%define CONFIG_MPC8_DECODER 0 ++%define CONFIG_MSNSIREN_DECODER 0 ++%define CONFIG_NELLYMOSER_DECODER 0 ++%define CONFIG_ON2AVC_DECODER 0 ++%define CONFIG_OPUS_DECODER 0 ++%define CONFIG_PAF_AUDIO_DECODER 0 ++%define CONFIG_QCELP_DECODER 0 ++%define CONFIG_QDM2_DECODER 0 ++%define CONFIG_QDMC_DECODER 0 ++%define CONFIG_RA_144_DECODER 0 ++%define CONFIG_RA_288_DECODER 0 ++%define CONFIG_RALF_DECODER 0 ++%define CONFIG_SBC_DECODER 0 ++%define CONFIG_SHORTEN_DECODER 0 ++%define CONFIG_SIPR_DECODER 0 ++%define CONFIG_SIREN_DECODER 0 ++%define CONFIG_SMACKAUD_DECODER 0 ++%define CONFIG_SONIC_DECODER 0 ++%define CONFIG_TAK_DECODER 0 ++%define CONFIG_TRUEHD_DECODER 0 ++%define CONFIG_TRUESPEECH_DECODER 0 ++%define CONFIG_TTA_DECODER 0 ++%define CONFIG_TWINVQ_DECODER 0 ++%define CONFIG_VMDAUDIO_DECODER 0 ++%define CONFIG_VORBIS_DECODER 1 ++%define CONFIG_WAVPACK_DECODER 0 ++%define CONFIG_WMALOSSLESS_DECODER 0 ++%define CONFIG_WMAPRO_DECODER 0 ++%define CONFIG_WMAV1_DECODER 0 ++%define CONFIG_WMAV2_DECODER 0 ++%define CONFIG_WMAVOICE_DECODER 0 ++%define CONFIG_WS_SND1_DECODER 0 ++%define CONFIG_XMA1_DECODER 0 ++%define CONFIG_XMA2_DECODER 0 ++%define CONFIG_PCM_ALAW_DECODER 1 ++%define CONFIG_PCM_BLURAY_DECODER 0 ++%define CONFIG_PCM_DVD_DECODER 0 ++%define CONFIG_PCM_F16LE_DECODER 0 ++%define CONFIG_PCM_F24LE_DECODER 0 ++%define CONFIG_PCM_F32BE_DECODER 0 ++%define CONFIG_PCM_F32LE_DECODER 1 ++%define CONFIG_PCM_F64BE_DECODER 0 ++%define CONFIG_PCM_F64LE_DECODER 0 ++%define CONFIG_PCM_LXF_DECODER 0 ++%define CONFIG_PCM_MULAW_DECODER 1 ++%define CONFIG_PCM_S8_DECODER 0 ++%define CONFIG_PCM_S8_PLANAR_DECODER 0 ++%define CONFIG_PCM_S16BE_DECODER 1 ++%define CONFIG_PCM_S16BE_PLANAR_DECODER 0 ++%define CONFIG_PCM_S16LE_DECODER 1 ++%define CONFIG_PCM_S16LE_PLANAR_DECODER 0 ++%define CONFIG_PCM_S24BE_DECODER 1 ++%define CONFIG_PCM_S24DAUD_DECODER 0 ++%define CONFIG_PCM_S24LE_DECODER 1 ++%define CONFIG_PCM_S24LE_PLANAR_DECODER 0 ++%define CONFIG_PCM_S32BE_DECODER 0 ++%define CONFIG_PCM_S32LE_DECODER 1 ++%define CONFIG_PCM_S32LE_PLANAR_DECODER 0 ++%define CONFIG_PCM_S64BE_DECODER 0 ++%define CONFIG_PCM_S64LE_DECODER 0 ++%define CONFIG_PCM_SGA_DECODER 0 ++%define CONFIG_PCM_U8_DECODER 1 ++%define CONFIG_PCM_U16BE_DECODER 0 ++%define CONFIG_PCM_U16LE_DECODER 0 ++%define CONFIG_PCM_U24BE_DECODER 0 ++%define CONFIG_PCM_U24LE_DECODER 0 ++%define CONFIG_PCM_U32BE_DECODER 0 ++%define CONFIG_PCM_U32LE_DECODER 0 ++%define CONFIG_PCM_VIDC_DECODER 0 ++%define CONFIG_DERF_DPCM_DECODER 0 ++%define CONFIG_GREMLIN_DPCM_DECODER 0 ++%define CONFIG_INTERPLAY_DPCM_DECODER 0 ++%define CONFIG_ROQ_DPCM_DECODER 0 ++%define CONFIG_SDX2_DPCM_DECODER 0 ++%define CONFIG_SOL_DPCM_DECODER 0 ++%define CONFIG_XAN_DPCM_DECODER 0 ++%define CONFIG_ADPCM_4XM_DECODER 0 ++%define CONFIG_ADPCM_ADX_DECODER 0 ++%define CONFIG_ADPCM_AFC_DECODER 0 ++%define CONFIG_ADPCM_AGM_DECODER 0 ++%define CONFIG_ADPCM_AICA_DECODER 0 ++%define CONFIG_ADPCM_ARGO_DECODER 0 ++%define CONFIG_ADPCM_CT_DECODER 0 ++%define CONFIG_ADPCM_DTK_DECODER 0 ++%define CONFIG_ADPCM_EA_DECODER 0 ++%define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 0 ++%define CONFIG_ADPCM_EA_R1_DECODER 0 ++%define CONFIG_ADPCM_EA_R2_DECODER 0 ++%define CONFIG_ADPCM_EA_R3_DECODER 0 ++%define CONFIG_ADPCM_EA_XAS_DECODER 0 ++%define CONFIG_ADPCM_G722_DECODER 0 ++%define CONFIG_ADPCM_G726_DECODER 0 ++%define CONFIG_ADPCM_G726LE_DECODER 0 ++%define CONFIG_ADPCM_IMA_ACORN_DECODER 0 ++%define CONFIG_ADPCM_IMA_AMV_DECODER 0 ++%define CONFIG_ADPCM_IMA_ALP_DECODER 0 ++%define CONFIG_ADPCM_IMA_APC_DECODER 0 ++%define CONFIG_ADPCM_IMA_APM_DECODER 0 ++%define CONFIG_ADPCM_IMA_CUNNING_DECODER 0 ++%define CONFIG_ADPCM_IMA_DAT4_DECODER 0 ++%define CONFIG_ADPCM_IMA_DK3_DECODER 0 ++%define CONFIG_ADPCM_IMA_DK4_DECODER 0 ++%define CONFIG_ADPCM_IMA_EA_EACS_DECODER 0 ++%define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0 ++%define CONFIG_ADPCM_IMA_ISS_DECODER 0 ++%define CONFIG_ADPCM_IMA_MOFLEX_DECODER 0 ++%define CONFIG_ADPCM_IMA_MTF_DECODER 0 ++%define CONFIG_ADPCM_IMA_OKI_DECODER 0 ++%define CONFIG_ADPCM_IMA_QT_DECODER 0 ++%define CONFIG_ADPCM_IMA_RAD_DECODER 0 ++%define CONFIG_ADPCM_IMA_SSI_DECODER 0 ++%define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0 ++%define CONFIG_ADPCM_IMA_WAV_DECODER 0 ++%define CONFIG_ADPCM_IMA_WS_DECODER 0 ++%define CONFIG_ADPCM_MS_DECODER 0 ++%define CONFIG_ADPCM_MTAF_DECODER 0 ++%define CONFIG_ADPCM_PSX_DECODER 0 ++%define CONFIG_ADPCM_SBPRO_2_DECODER 0 ++%define CONFIG_ADPCM_SBPRO_3_DECODER 0 ++%define CONFIG_ADPCM_SBPRO_4_DECODER 0 ++%define CONFIG_ADPCM_SWF_DECODER 0 ++%define CONFIG_ADPCM_THP_DECODER 0 ++%define CONFIG_ADPCM_THP_LE_DECODER 0 ++%define CONFIG_ADPCM_VIMA_DECODER 0 ++%define CONFIG_ADPCM_XA_DECODER 0 ++%define CONFIG_ADPCM_YAMAHA_DECODER 0 ++%define CONFIG_ADPCM_ZORK_DECODER 0 ++%define CONFIG_SSA_DECODER 0 ++%define CONFIG_ASS_DECODER 0 ++%define CONFIG_CCAPTION_DECODER 0 ++%define CONFIG_DVBSUB_DECODER 0 ++%define CONFIG_DVDSUB_DECODER 0 ++%define CONFIG_JACOSUB_DECODER 0 ++%define CONFIG_MICRODVD_DECODER 0 ++%define CONFIG_MOVTEXT_DECODER 0 ++%define CONFIG_MPL2_DECODER 0 ++%define CONFIG_PGSSUB_DECODER 0 ++%define CONFIG_PJS_DECODER 0 ++%define CONFIG_REALTEXT_DECODER 0 ++%define CONFIG_SAMI_DECODER 0 ++%define CONFIG_SRT_DECODER 0 ++%define CONFIG_STL_DECODER 0 ++%define CONFIG_SUBRIP_DECODER 0 ++%define CONFIG_SUBVIEWER_DECODER 0 ++%define CONFIG_SUBVIEWER1_DECODER 0 ++%define CONFIG_TEXT_DECODER 0 ++%define CONFIG_VPLAYER_DECODER 0 ++%define CONFIG_WEBVTT_DECODER 0 ++%define CONFIG_XSUB_DECODER 0 ++%define CONFIG_AAC_AT_DECODER 0 ++%define CONFIG_AC3_AT_DECODER 0 ++%define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 ++%define CONFIG_ALAC_AT_DECODER 0 ++%define CONFIG_AMR_NB_AT_DECODER 0 ++%define CONFIG_EAC3_AT_DECODER 0 ++%define CONFIG_GSM_MS_AT_DECODER 0 ++%define CONFIG_ILBC_AT_DECODER 0 ++%define CONFIG_MP1_AT_DECODER 0 ++%define CONFIG_MP2_AT_DECODER 0 ++%define CONFIG_MP3_AT_DECODER 0 ++%define CONFIG_PCM_ALAW_AT_DECODER 0 ++%define CONFIG_PCM_MULAW_AT_DECODER 0 ++%define CONFIG_QDMC_AT_DECODER 0 ++%define CONFIG_QDM2_AT_DECODER 0 ++%define CONFIG_LIBARIBB24_DECODER 0 ++%define CONFIG_LIBCELT_DECODER 0 ++%define CONFIG_LIBCODEC2_DECODER 0 ++%define CONFIG_LIBDAV1D_DECODER 0 ++%define CONFIG_LIBDAVS2_DECODER 0 ++%define CONFIG_LIBFDK_AAC_DECODER 0 ++%define CONFIG_LIBGSM_DECODER 0 ++%define CONFIG_LIBGSM_MS_DECODER 0 ++%define CONFIG_LIBILBC_DECODER 0 ++%define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 ++%define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 ++%define CONFIG_LIBOPENJPEG_DECODER 0 ++%define CONFIG_LIBOPUS_DECODER 1 ++%define CONFIG_LIBRSVG_DECODER 0 ++%define CONFIG_LIBSPEEX_DECODER 0 ++%define CONFIG_LIBUAVS3D_DECODER 0 ++%define CONFIG_LIBVORBIS_DECODER 0 ++%define CONFIG_LIBVPX_VP8_DECODER 0 ++%define CONFIG_LIBVPX_VP9_DECODER 0 ++%define CONFIG_LIBZVBI_TELETEXT_DECODER 0 ++%define CONFIG_BINTEXT_DECODER 0 ++%define CONFIG_XBIN_DECODER 0 ++%define CONFIG_IDF_DECODER 0 ++%define CONFIG_LIBAOM_AV1_DECODER 0 ++%define CONFIG_AV1_DECODER 0 ++%define CONFIG_AV1_CUVID_DECODER 0 ++%define CONFIG_AV1_QSV_DECODER 0 ++%define CONFIG_LIBOPENH264_DECODER 0 ++%define CONFIG_H264_CUVID_DECODER 0 ++%define CONFIG_HEVC_CUVID_DECODER 0 ++%define CONFIG_HEVC_MEDIACODEC_DECODER 0 ++%define CONFIG_MJPEG_CUVID_DECODER 0 ++%define CONFIG_MJPEG_QSV_DECODER 0 ++%define CONFIG_MPEG1_CUVID_DECODER 0 ++%define CONFIG_MPEG2_CUVID_DECODER 0 ++%define CONFIG_MPEG4_CUVID_DECODER 0 ++%define CONFIG_MPEG4_MEDIACODEC_DECODER 0 ++%define CONFIG_VC1_CUVID_DECODER 0 ++%define CONFIG_VP8_CUVID_DECODER 0 ++%define CONFIG_VP8_MEDIACODEC_DECODER 0 ++%define CONFIG_VP8_QSV_DECODER 0 ++%define CONFIG_VP9_CUVID_DECODER 0 ++%define CONFIG_VP9_MEDIACODEC_DECODER 0 ++%define CONFIG_VP9_QSV_DECODER 0 ++%define CONFIG_A64MULTI_ENCODER 0 ++%define CONFIG_A64MULTI5_ENCODER 0 ++%define CONFIG_ALIAS_PIX_ENCODER 0 ++%define CONFIG_AMV_ENCODER 0 ++%define CONFIG_APNG_ENCODER 0 ++%define CONFIG_ASV1_ENCODER 0 ++%define CONFIG_ASV2_ENCODER 0 ++%define CONFIG_AVRP_ENCODER 0 ++%define CONFIG_AVUI_ENCODER 0 ++%define CONFIG_AYUV_ENCODER 0 ++%define CONFIG_BITPACKED_ENCODER 0 ++%define CONFIG_BMP_ENCODER 0 ++%define CONFIG_CFHD_ENCODER 0 ++%define CONFIG_CINEPAK_ENCODER 0 ++%define CONFIG_CLJR_ENCODER 0 ++%define CONFIG_COMFORTNOISE_ENCODER 0 ++%define CONFIG_DNXHD_ENCODER 0 ++%define CONFIG_DPX_ENCODER 0 ++%define CONFIG_DVVIDEO_ENCODER 0 ++%define CONFIG_EXR_ENCODER 0 ++%define CONFIG_FFV1_ENCODER 0 ++%define CONFIG_FFVHUFF_ENCODER 0 ++%define CONFIG_FITS_ENCODER 0 ++%define CONFIG_FLASHSV_ENCODER 0 ++%define CONFIG_FLASHSV2_ENCODER 0 ++%define CONFIG_FLV_ENCODER 0 ++%define CONFIG_GIF_ENCODER 0 ++%define CONFIG_H261_ENCODER 0 ++%define CONFIG_H263_ENCODER 0 ++%define CONFIG_H263P_ENCODER 0 ++%define CONFIG_HAP_ENCODER 0 ++%define CONFIG_HUFFYUV_ENCODER 0 ++%define CONFIG_JPEG2000_ENCODER 0 ++%define CONFIG_JPEGLS_ENCODER 0 ++%define CONFIG_LJPEG_ENCODER 0 ++%define CONFIG_MAGICYUV_ENCODER 0 ++%define CONFIG_MJPEG_ENCODER 0 ++%define CONFIG_MPEG1VIDEO_ENCODER 0 ++%define CONFIG_MPEG2VIDEO_ENCODER 0 ++%define CONFIG_MPEG4_ENCODER 0 ++%define CONFIG_MSMPEG4V2_ENCODER 0 ++%define CONFIG_MSMPEG4V3_ENCODER 0 ++%define CONFIG_MSVIDEO1_ENCODER 0 ++%define CONFIG_PAM_ENCODER 0 ++%define CONFIG_PBM_ENCODER 0 ++%define CONFIG_PCX_ENCODER 0 ++%define CONFIG_PFM_ENCODER 0 ++%define CONFIG_PGM_ENCODER 0 ++%define CONFIG_PGMYUV_ENCODER 0 ++%define CONFIG_PNG_ENCODER 0 ++%define CONFIG_PPM_ENCODER 0 ++%define CONFIG_PRORES_ENCODER 0 ++%define CONFIG_PRORES_AW_ENCODER 0 ++%define CONFIG_PRORES_KS_ENCODER 0 ++%define CONFIG_QTRLE_ENCODER 0 ++%define CONFIG_R10K_ENCODER 0 ++%define CONFIG_R210_ENCODER 0 ++%define CONFIG_RAWVIDEO_ENCODER 0 ++%define CONFIG_ROQ_ENCODER 0 ++%define CONFIG_RPZA_ENCODER 0 ++%define CONFIG_RV10_ENCODER 0 ++%define CONFIG_RV20_ENCODER 0 ++%define CONFIG_S302M_ENCODER 0 ++%define CONFIG_SGI_ENCODER 0 ++%define CONFIG_SMC_ENCODER 0 ++%define CONFIG_SNOW_ENCODER 0 ++%define CONFIG_SPEEDHQ_ENCODER 0 ++%define CONFIG_SUNRAST_ENCODER 0 ++%define CONFIG_SVQ1_ENCODER 0 ++%define CONFIG_TARGA_ENCODER 0 ++%define CONFIG_TIFF_ENCODER 0 ++%define CONFIG_UTVIDEO_ENCODER 0 ++%define CONFIG_V210_ENCODER 0 ++%define CONFIG_V308_ENCODER 0 ++%define CONFIG_V408_ENCODER 0 ++%define CONFIG_V410_ENCODER 0 ++%define CONFIG_VC2_ENCODER 0 ++%define CONFIG_WRAPPED_AVFRAME_ENCODER 0 ++%define CONFIG_WMV1_ENCODER 0 ++%define CONFIG_WMV2_ENCODER 0 ++%define CONFIG_XBM_ENCODER 0 ++%define CONFIG_XFACE_ENCODER 0 ++%define CONFIG_XWD_ENCODER 0 ++%define CONFIG_Y41P_ENCODER 0 ++%define CONFIG_YUV4_ENCODER 0 ++%define CONFIG_ZLIB_ENCODER 0 ++%define CONFIG_ZMBV_ENCODER 0 ++%define CONFIG_AAC_ENCODER 0 ++%define CONFIG_AC3_ENCODER 0 ++%define CONFIG_AC3_FIXED_ENCODER 0 ++%define CONFIG_ALAC_ENCODER 0 ++%define CONFIG_APTX_ENCODER 0 ++%define CONFIG_APTX_HD_ENCODER 0 ++%define CONFIG_DCA_ENCODER 0 ++%define CONFIG_EAC3_ENCODER 0 ++%define CONFIG_FLAC_ENCODER 0 ++%define CONFIG_G723_1_ENCODER 0 ++%define CONFIG_MLP_ENCODER 0 ++%define CONFIG_MP2_ENCODER 0 ++%define CONFIG_MP2FIXED_ENCODER 0 ++%define CONFIG_NELLYMOSER_ENCODER 0 ++%define CONFIG_OPUS_ENCODER 0 ++%define CONFIG_RA_144_ENCODER 0 ++%define CONFIG_SBC_ENCODER 0 ++%define CONFIG_SONIC_ENCODER 0 ++%define CONFIG_SONIC_LS_ENCODER 0 ++%define CONFIG_TRUEHD_ENCODER 0 ++%define CONFIG_TTA_ENCODER 0 ++%define CONFIG_VORBIS_ENCODER 0 ++%define CONFIG_WAVPACK_ENCODER 0 ++%define CONFIG_WMAV1_ENCODER 0 ++%define CONFIG_WMAV2_ENCODER 0 ++%define CONFIG_PCM_ALAW_ENCODER 0 ++%define CONFIG_PCM_DVD_ENCODER 0 ++%define CONFIG_PCM_F32BE_ENCODER 0 ++%define CONFIG_PCM_F32LE_ENCODER 0 ++%define CONFIG_PCM_F64BE_ENCODER 0 ++%define CONFIG_PCM_F64LE_ENCODER 0 ++%define CONFIG_PCM_MULAW_ENCODER 0 ++%define CONFIG_PCM_S8_ENCODER 0 ++%define CONFIG_PCM_S8_PLANAR_ENCODER 0 ++%define CONFIG_PCM_S16BE_ENCODER 0 ++%define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 ++%define CONFIG_PCM_S16LE_ENCODER 0 ++%define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 ++%define CONFIG_PCM_S24BE_ENCODER 0 ++%define CONFIG_PCM_S24DAUD_ENCODER 0 ++%define CONFIG_PCM_S24LE_ENCODER 0 ++%define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 ++%define CONFIG_PCM_S32BE_ENCODER 0 ++%define CONFIG_PCM_S32LE_ENCODER 0 ++%define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 ++%define CONFIG_PCM_S64BE_ENCODER 0 ++%define CONFIG_PCM_S64LE_ENCODER 0 ++%define CONFIG_PCM_U8_ENCODER 0 ++%define CONFIG_PCM_U16BE_ENCODER 0 ++%define CONFIG_PCM_U16LE_ENCODER 0 ++%define CONFIG_PCM_U24BE_ENCODER 0 ++%define CONFIG_PCM_U24LE_ENCODER 0 ++%define CONFIG_PCM_U32BE_ENCODER 0 ++%define CONFIG_PCM_U32LE_ENCODER 0 ++%define CONFIG_PCM_VIDC_ENCODER 0 ++%define CONFIG_ROQ_DPCM_ENCODER 0 ++%define CONFIG_ADPCM_ADX_ENCODER 0 ++%define CONFIG_ADPCM_ARGO_ENCODER 0 ++%define CONFIG_ADPCM_G722_ENCODER 0 ++%define CONFIG_ADPCM_G726_ENCODER 0 ++%define CONFIG_ADPCM_G726LE_ENCODER 0 ++%define CONFIG_ADPCM_IMA_AMV_ENCODER 0 ++%define CONFIG_ADPCM_IMA_ALP_ENCODER 0 ++%define CONFIG_ADPCM_IMA_APM_ENCODER 0 ++%define CONFIG_ADPCM_IMA_QT_ENCODER 0 ++%define CONFIG_ADPCM_IMA_SSI_ENCODER 0 ++%define CONFIG_ADPCM_IMA_WAV_ENCODER 0 ++%define CONFIG_ADPCM_IMA_WS_ENCODER 0 ++%define CONFIG_ADPCM_MS_ENCODER 0 ++%define CONFIG_ADPCM_SWF_ENCODER 0 ++%define CONFIG_ADPCM_YAMAHA_ENCODER 0 ++%define CONFIG_SSA_ENCODER 0 ++%define CONFIG_ASS_ENCODER 0 ++%define CONFIG_DVBSUB_ENCODER 0 ++%define CONFIG_DVDSUB_ENCODER 0 ++%define CONFIG_MOVTEXT_ENCODER 0 ++%define CONFIG_SRT_ENCODER 0 ++%define CONFIG_SUBRIP_ENCODER 0 ++%define CONFIG_TEXT_ENCODER 0 ++%define CONFIG_TTML_ENCODER 0 ++%define CONFIG_WEBVTT_ENCODER 0 ++%define CONFIG_XSUB_ENCODER 0 ++%define CONFIG_AAC_AT_ENCODER 0 ++%define CONFIG_ALAC_AT_ENCODER 0 ++%define CONFIG_ILBC_AT_ENCODER 0 ++%define CONFIG_PCM_ALAW_AT_ENCODER 0 ++%define CONFIG_PCM_MULAW_AT_ENCODER 0 ++%define CONFIG_LIBAOM_AV1_ENCODER 0 ++%define CONFIG_LIBCODEC2_ENCODER 0 ++%define CONFIG_LIBFDK_AAC_ENCODER 0 ++%define CONFIG_LIBGSM_ENCODER 0 ++%define CONFIG_LIBGSM_MS_ENCODER 0 ++%define CONFIG_LIBILBC_ENCODER 0 ++%define CONFIG_LIBMP3LAME_ENCODER 0 ++%define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 ++%define CONFIG_LIBOPENJPEG_ENCODER 0 ++%define CONFIG_LIBOPUS_ENCODER 0 ++%define CONFIG_LIBRAV1E_ENCODER 0 ++%define CONFIG_LIBSHINE_ENCODER 0 ++%define CONFIG_LIBSPEEX_ENCODER 0 ++%define CONFIG_LIBSVTAV1_ENCODER 0 ++%define CONFIG_LIBTHEORA_ENCODER 0 ++%define CONFIG_LIBTWOLAME_ENCODER 0 ++%define CONFIG_LIBVO_AMRWBENC_ENCODER 0 ++%define CONFIG_LIBVORBIS_ENCODER 0 ++%define CONFIG_LIBVPX_VP8_ENCODER 0 ++%define CONFIG_LIBVPX_VP9_ENCODER 0 ++%define CONFIG_LIBWEBP_ANIM_ENCODER 0 ++%define CONFIG_LIBWEBP_ENCODER 0 ++%define CONFIG_LIBX262_ENCODER 0 ++%define CONFIG_LIBX264_ENCODER 0 ++%define CONFIG_LIBX264RGB_ENCODER 0 ++%define CONFIG_LIBX265_ENCODER 0 ++%define CONFIG_LIBXAVS_ENCODER 0 ++%define CONFIG_LIBXAVS2_ENCODER 0 ++%define CONFIG_LIBXVID_ENCODER 0 ++%define CONFIG_AAC_MF_ENCODER 0 ++%define CONFIG_AC3_MF_ENCODER 0 ++%define CONFIG_H263_V4L2M2M_ENCODER 0 ++%define CONFIG_LIBOPENH264_ENCODER 0 ++%define CONFIG_H264_AMF_ENCODER 0 ++%define CONFIG_H264_MF_ENCODER 0 ++%define CONFIG_H264_NVENC_ENCODER 0 ++%define CONFIG_H264_OMX_ENCODER 0 ++%define CONFIG_H264_QSV_ENCODER 0 ++%define CONFIG_H264_V4L2M2M_ENCODER 0 ++%define CONFIG_H264_VAAPI_ENCODER 0 ++%define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 ++%define CONFIG_HEVC_AMF_ENCODER 0 ++%define CONFIG_HEVC_MF_ENCODER 0 ++%define CONFIG_HEVC_NVENC_ENCODER 0 ++%define CONFIG_HEVC_QSV_ENCODER 0 ++%define CONFIG_HEVC_V4L2M2M_ENCODER 0 ++%define CONFIG_HEVC_VAAPI_ENCODER 0 ++%define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 ++%define CONFIG_LIBKVAZAAR_ENCODER 0 ++%define CONFIG_MJPEG_QSV_ENCODER 0 ++%define CONFIG_MJPEG_VAAPI_ENCODER 0 ++%define CONFIG_MP3_MF_ENCODER 0 ++%define CONFIG_MPEG2_QSV_ENCODER 0 ++%define CONFIG_MPEG2_VAAPI_ENCODER 0 ++%define CONFIG_MPEG4_OMX_ENCODER 0 ++%define CONFIG_MPEG4_V4L2M2M_ENCODER 0 ++%define CONFIG_PRORES_VIDEOTOOLBOX_ENCODER 0 ++%define CONFIG_VP8_V4L2M2M_ENCODER 0 ++%define CONFIG_VP8_VAAPI_ENCODER 0 ++%define CONFIG_VP9_VAAPI_ENCODER 0 ++%define CONFIG_VP9_QSV_ENCODER 0 ++%define CONFIG_AV1_D3D11VA_HWACCEL 0 ++%define CONFIG_AV1_D3D11VA2_HWACCEL 0 ++%define CONFIG_AV1_DXVA2_HWACCEL 0 ++%define CONFIG_AV1_NVDEC_HWACCEL 0 ++%define CONFIG_AV1_VAAPI_HWACCEL 0 ++%define CONFIG_H263_VAAPI_HWACCEL 0 ++%define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_H264_D3D11VA_HWACCEL 0 ++%define CONFIG_H264_D3D11VA2_HWACCEL 0 ++%define CONFIG_H264_DXVA2_HWACCEL 0 ++%define CONFIG_H264_NVDEC_HWACCEL 0 ++%define CONFIG_H264_VAAPI_HWACCEL 0 ++%define CONFIG_H264_VDPAU_HWACCEL 0 ++%define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_HEVC_D3D11VA_HWACCEL 0 ++%define CONFIG_HEVC_D3D11VA2_HWACCEL 0 ++%define CONFIG_HEVC_DXVA2_HWACCEL 0 ++%define CONFIG_HEVC_NVDEC_HWACCEL 0 ++%define CONFIG_HEVC_VAAPI_HWACCEL 0 ++%define CONFIG_HEVC_VDPAU_HWACCEL 0 ++%define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_MJPEG_NVDEC_HWACCEL 0 ++%define CONFIG_MJPEG_VAAPI_HWACCEL 0 ++%define CONFIG_MPEG1_NVDEC_HWACCEL 0 ++%define CONFIG_MPEG1_VDPAU_HWACCEL 0 ++%define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_MPEG1_XVMC_HWACCEL 0 ++%define CONFIG_MPEG2_D3D11VA_HWACCEL 0 ++%define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 ++%define CONFIG_MPEG2_NVDEC_HWACCEL 0 ++%define CONFIG_MPEG2_DXVA2_HWACCEL 0 ++%define CONFIG_MPEG2_VAAPI_HWACCEL 0 ++%define CONFIG_MPEG2_VDPAU_HWACCEL 0 ++%define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_MPEG2_XVMC_HWACCEL 0 ++%define CONFIG_MPEG4_NVDEC_HWACCEL 0 ++%define CONFIG_MPEG4_VAAPI_HWACCEL 0 ++%define CONFIG_MPEG4_VDPAU_HWACCEL 0 ++%define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_PRORES_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_VC1_D3D11VA_HWACCEL 0 ++%define CONFIG_VC1_D3D11VA2_HWACCEL 0 ++%define CONFIG_VC1_DXVA2_HWACCEL 0 ++%define CONFIG_VC1_NVDEC_HWACCEL 0 ++%define CONFIG_VC1_VAAPI_HWACCEL 0 ++%define CONFIG_VC1_VDPAU_HWACCEL 0 ++%define CONFIG_VP8_NVDEC_HWACCEL 0 ++%define CONFIG_VP8_VAAPI_HWACCEL 0 ++%define CONFIG_VP9_D3D11VA_HWACCEL 0 ++%define CONFIG_VP9_D3D11VA2_HWACCEL 0 ++%define CONFIG_VP9_DXVA2_HWACCEL 0 ++%define CONFIG_VP9_NVDEC_HWACCEL 0 ++%define CONFIG_VP9_VAAPI_HWACCEL 0 ++%define CONFIG_VP9_VDPAU_HWACCEL 0 ++%define CONFIG_VP9_VIDEOTOOLBOX_HWACCEL 0 ++%define CONFIG_WMV3_D3D11VA_HWACCEL 0 ++%define CONFIG_WMV3_D3D11VA2_HWACCEL 0 ++%define CONFIG_WMV3_DXVA2_HWACCEL 0 ++%define CONFIG_WMV3_NVDEC_HWACCEL 0 ++%define CONFIG_WMV3_VAAPI_HWACCEL 0 ++%define CONFIG_WMV3_VDPAU_HWACCEL 0 ++%define CONFIG_AAC_PARSER 1 ++%define CONFIG_AAC_LATM_PARSER 0 ++%define CONFIG_AC3_PARSER 0 ++%define CONFIG_ADX_PARSER 0 ++%define CONFIG_AMR_PARSER 0 ++%define CONFIG_AV1_PARSER 0 ++%define CONFIG_AVS2_PARSER 0 ++%define CONFIG_AVS3_PARSER 0 ++%define CONFIG_BMP_PARSER 0 ++%define CONFIG_CAVSVIDEO_PARSER 0 ++%define CONFIG_COOK_PARSER 0 ++%define CONFIG_CRI_PARSER 0 ++%define CONFIG_DCA_PARSER 0 ++%define CONFIG_DIRAC_PARSER 0 ++%define CONFIG_DNXHD_PARSER 0 ++%define CONFIG_DOLBY_E_PARSER 0 ++%define CONFIG_DPX_PARSER 0 ++%define CONFIG_DVAUDIO_PARSER 0 ++%define CONFIG_DVBSUB_PARSER 0 ++%define CONFIG_DVDSUB_PARSER 0 ++%define CONFIG_DVD_NAV_PARSER 0 ++%define CONFIG_FLAC_PARSER 1 ++%define CONFIG_G723_1_PARSER 0 ++%define CONFIG_G729_PARSER 0 ++%define CONFIG_GIF_PARSER 0 ++%define CONFIG_GSM_PARSER 0 ++%define CONFIG_H261_PARSER 0 ++%define CONFIG_H263_PARSER 0 ++%define CONFIG_H264_PARSER 1 ++%define CONFIG_HEVC_PARSER 0 ++%define CONFIG_IPU_PARSER 0 ++%define CONFIG_JPEG2000_PARSER 0 ++%define CONFIG_MJPEG_PARSER 0 ++%define CONFIG_MLP_PARSER 0 ++%define CONFIG_MPEG4VIDEO_PARSER 0 ++%define CONFIG_MPEGAUDIO_PARSER 1 ++%define CONFIG_MPEGVIDEO_PARSER 0 ++%define CONFIG_OPUS_PARSER 1 ++%define CONFIG_PNG_PARSER 0 ++%define CONFIG_PNM_PARSER 0 ++%define CONFIG_RV30_PARSER 0 ++%define CONFIG_RV40_PARSER 0 ++%define CONFIG_SBC_PARSER 0 ++%define CONFIG_SIPR_PARSER 0 ++%define CONFIG_TAK_PARSER 0 ++%define CONFIG_VC1_PARSER 0 ++%define CONFIG_VORBIS_PARSER 1 ++%define CONFIG_VP3_PARSER 1 ++%define CONFIG_VP8_PARSER 1 ++%define CONFIG_VP9_PARSER 1 ++%define CONFIG_WEBP_PARSER 0 ++%define CONFIG_XBM_PARSER 0 ++%define CONFIG_XMA_PARSER 0 ++%define CONFIG_ALSA_INDEV 0 ++%define CONFIG_ANDROID_CAMERA_INDEV 0 ++%define CONFIG_AVFOUNDATION_INDEV 0 ++%define CONFIG_BKTR_INDEV 0 ++%define CONFIG_DECKLINK_INDEV 0 ++%define CONFIG_DSHOW_INDEV 0 ++%define CONFIG_FBDEV_INDEV 0 ++%define CONFIG_GDIGRAB_INDEV 0 ++%define CONFIG_IEC61883_INDEV 0 ++%define CONFIG_JACK_INDEV 0 ++%define CONFIG_KMSGRAB_INDEV 0 ++%define CONFIG_LAVFI_INDEV 0 ++%define CONFIG_OPENAL_INDEV 0 ++%define CONFIG_OSS_INDEV 0 ++%define CONFIG_PULSE_INDEV 0 ++%define CONFIG_SNDIO_INDEV 0 ++%define CONFIG_V4L2_INDEV 0 ++%define CONFIG_VFWCAP_INDEV 0 ++%define CONFIG_XCBGRAB_INDEV 0 ++%define CONFIG_LIBCDIO_INDEV 0 ++%define CONFIG_LIBDC1394_INDEV 0 ++%define CONFIG_ALSA_OUTDEV 0 ++%define CONFIG_AUDIOTOOLBOX_OUTDEV 0 ++%define CONFIG_CACA_OUTDEV 0 ++%define CONFIG_DECKLINK_OUTDEV 0 ++%define CONFIG_FBDEV_OUTDEV 0 ++%define CONFIG_OPENGL_OUTDEV 0 ++%define CONFIG_OSS_OUTDEV 0 ++%define CONFIG_PULSE_OUTDEV 0 ++%define CONFIG_SDL2_OUTDEV 0 ++%define CONFIG_SNDIO_OUTDEV 0 ++%define CONFIG_V4L2_OUTDEV 0 ++%define CONFIG_XV_OUTDEV 0 ++%define CONFIG_ABENCH_FILTER 0 ++%define CONFIG_ACOMPRESSOR_FILTER 0 ++%define CONFIG_ACONTRAST_FILTER 0 ++%define CONFIG_ACOPY_FILTER 0 ++%define CONFIG_ACUE_FILTER 0 ++%define CONFIG_ACROSSFADE_FILTER 0 ++%define CONFIG_ACROSSOVER_FILTER 0 ++%define CONFIG_ACRUSHER_FILTER 0 ++%define CONFIG_ADECLICK_FILTER 0 ++%define CONFIG_ADECLIP_FILTER 0 ++%define CONFIG_ADECORRELATE_FILTER 0 ++%define CONFIG_ADELAY_FILTER 0 ++%define CONFIG_ADENORM_FILTER 0 ++%define CONFIG_ADERIVATIVE_FILTER 0 ++%define CONFIG_ADYNAMICEQUALIZER_FILTER 0 ++%define CONFIG_ADYNAMICSMOOTH_FILTER 0 ++%define CONFIG_AECHO_FILTER 0 ++%define CONFIG_AEMPHASIS_FILTER 0 ++%define CONFIG_AEVAL_FILTER 0 ++%define CONFIG_AEXCITER_FILTER 0 ++%define CONFIG_AFADE_FILTER 0 ++%define CONFIG_AFFTDN_FILTER 0 ++%define CONFIG_AFFTFILT_FILTER 0 ++%define CONFIG_AFIR_FILTER 0 ++%define CONFIG_AFORMAT_FILTER 0 ++%define CONFIG_AFREQSHIFT_FILTER 0 ++%define CONFIG_AFWTDN_FILTER 0 ++%define CONFIG_AGATE_FILTER 0 ++%define CONFIG_AIIR_FILTER 0 ++%define CONFIG_AINTEGRAL_FILTER 0 ++%define CONFIG_AINTERLEAVE_FILTER 0 ++%define CONFIG_ALATENCY_FILTER 0 ++%define CONFIG_ALIMITER_FILTER 0 ++%define CONFIG_ALLPASS_FILTER 0 ++%define CONFIG_ALOOP_FILTER 0 ++%define CONFIG_AMERGE_FILTER 0 ++%define CONFIG_AMETADATA_FILTER 0 ++%define CONFIG_AMIX_FILTER 0 ++%define CONFIG_AMULTIPLY_FILTER 0 ++%define CONFIG_ANEQUALIZER_FILTER 0 ++%define CONFIG_ANLMDN_FILTER 0 ++%define CONFIG_ANLMF_FILTER 0 ++%define CONFIG_ANLMS_FILTER 0 ++%define CONFIG_ANULL_FILTER 0 ++%define CONFIG_APAD_FILTER 0 ++%define CONFIG_APERMS_FILTER 0 ++%define CONFIG_APHASER_FILTER 0 ++%define CONFIG_APHASESHIFT_FILTER 0 ++%define CONFIG_APSYCLIP_FILTER 0 ++%define CONFIG_APULSATOR_FILTER 0 ++%define CONFIG_AREALTIME_FILTER 0 ++%define CONFIG_ARESAMPLE_FILTER 0 ++%define CONFIG_AREVERSE_FILTER 0 ++%define CONFIG_ARNNDN_FILTER 0 ++%define CONFIG_ASDR_FILTER 0 ++%define CONFIG_ASEGMENT_FILTER 0 ++%define CONFIG_ASELECT_FILTER 0 ++%define CONFIG_ASENDCMD_FILTER 0 ++%define CONFIG_ASETNSAMPLES_FILTER 0 ++%define CONFIG_ASETPTS_FILTER 0 ++%define CONFIG_ASETRATE_FILTER 0 ++%define CONFIG_ASETTB_FILTER 0 ++%define CONFIG_ASHOWINFO_FILTER 0 ++%define CONFIG_ASIDEDATA_FILTER 0 ++%define CONFIG_ASOFTCLIP_FILTER 0 ++%define CONFIG_ASPECTRALSTATS_FILTER 0 ++%define CONFIG_ASPLIT_FILTER 0 ++%define CONFIG_ASR_FILTER 0 ++%define CONFIG_ASTATS_FILTER 0 ++%define CONFIG_ASTREAMSELECT_FILTER 0 ++%define CONFIG_ASUBBOOST_FILTER 0 ++%define CONFIG_ASUBCUT_FILTER 0 ++%define CONFIG_ASUPERCUT_FILTER 0 ++%define CONFIG_ASUPERPASS_FILTER 0 ++%define CONFIG_ASUPERSTOP_FILTER 0 ++%define CONFIG_ATEMPO_FILTER 0 ++%define CONFIG_ATILT_FILTER 0 ++%define CONFIG_ATRIM_FILTER 0 ++%define CONFIG_AXCORRELATE_FILTER 0 ++%define CONFIG_AZMQ_FILTER 0 ++%define CONFIG_BANDPASS_FILTER 0 ++%define CONFIG_BANDREJECT_FILTER 0 ++%define CONFIG_BASS_FILTER 0 ++%define CONFIG_BIQUAD_FILTER 0 ++%define CONFIG_BS2B_FILTER 0 ++%define CONFIG_CHANNELMAP_FILTER 0 ++%define CONFIG_CHANNELSPLIT_FILTER 0 ++%define CONFIG_CHORUS_FILTER 0 ++%define CONFIG_COMPAND_FILTER 0 ++%define CONFIG_COMPENSATIONDELAY_FILTER 0 ++%define CONFIG_CROSSFEED_FILTER 0 ++%define CONFIG_CRYSTALIZER_FILTER 0 ++%define CONFIG_DCSHIFT_FILTER 0 ++%define CONFIG_DEESSER_FILTER 0 ++%define CONFIG_DRMETER_FILTER 0 ++%define CONFIG_DYNAUDNORM_FILTER 0 ++%define CONFIG_EARWAX_FILTER 0 ++%define CONFIG_EBUR128_FILTER 0 ++%define CONFIG_EQUALIZER_FILTER 0 ++%define CONFIG_EXTRASTEREO_FILTER 0 ++%define CONFIG_FIREQUALIZER_FILTER 0 ++%define CONFIG_FLANGER_FILTER 0 ++%define CONFIG_HAAS_FILTER 0 ++%define CONFIG_HDCD_FILTER 0 ++%define CONFIG_HEADPHONE_FILTER 0 ++%define CONFIG_HIGHPASS_FILTER 0 ++%define CONFIG_HIGHSHELF_FILTER 0 ++%define CONFIG_JOIN_FILTER 0 ++%define CONFIG_LADSPA_FILTER 0 ++%define CONFIG_LOUDNORM_FILTER 0 ++%define CONFIG_LOWPASS_FILTER 0 ++%define CONFIG_LOWSHELF_FILTER 0 ++%define CONFIG_LV2_FILTER 0 ++%define CONFIG_MCOMPAND_FILTER 0 ++%define CONFIG_PAN_FILTER 0 ++%define CONFIG_REPLAYGAIN_FILTER 0 ++%define CONFIG_RUBBERBAND_FILTER 0 ++%define CONFIG_SIDECHAINCOMPRESS_FILTER 0 ++%define CONFIG_SIDECHAINGATE_FILTER 0 ++%define CONFIG_SILENCEDETECT_FILTER 0 ++%define CONFIG_SILENCEREMOVE_FILTER 0 ++%define CONFIG_SOFALIZER_FILTER 0 ++%define CONFIG_SPEECHNORM_FILTER 0 ++%define CONFIG_STEREOTOOLS_FILTER 0 ++%define CONFIG_STEREOWIDEN_FILTER 0 ++%define CONFIG_SUPEREQUALIZER_FILTER 0 ++%define CONFIG_SURROUND_FILTER 0 ++%define CONFIG_TREBLE_FILTER 0 ++%define CONFIG_TREMOLO_FILTER 0 ++%define CONFIG_VIBRATO_FILTER 0 ++%define CONFIG_VOLUME_FILTER 0 ++%define CONFIG_VOLUMEDETECT_FILTER 0 ++%define CONFIG_AEVALSRC_FILTER 0 ++%define CONFIG_AFIRSRC_FILTER 0 ++%define CONFIG_ANOISESRC_FILTER 0 ++%define CONFIG_ANULLSRC_FILTER 0 ++%define CONFIG_FLITE_FILTER 0 ++%define CONFIG_HILBERT_FILTER 0 ++%define CONFIG_SINC_FILTER 0 ++%define CONFIG_SINE_FILTER 0 ++%define CONFIG_ANULLSINK_FILTER 0 ++%define CONFIG_ADDROI_FILTER 0 ++%define CONFIG_ALPHAEXTRACT_FILTER 0 ++%define CONFIG_ALPHAMERGE_FILTER 0 ++%define CONFIG_AMPLIFY_FILTER 0 ++%define CONFIG_ASS_FILTER 0 ++%define CONFIG_ATADENOISE_FILTER 0 ++%define CONFIG_AVGBLUR_FILTER 0 ++%define CONFIG_AVGBLUR_OPENCL_FILTER 0 ++%define CONFIG_AVGBLUR_VULKAN_FILTER 0 ++%define CONFIG_BBOX_FILTER 0 ++%define CONFIG_BENCH_FILTER 0 ++%define CONFIG_BILATERAL_FILTER 0 ++%define CONFIG_BITPLANENOISE_FILTER 0 ++%define CONFIG_BLACKDETECT_FILTER 0 ++%define CONFIG_BLACKFRAME_FILTER 0 ++%define CONFIG_BLEND_FILTER 0 ++%define CONFIG_BLEND_VULKAN_FILTER 0 ++%define CONFIG_BM3D_FILTER 0 ++%define CONFIG_BOXBLUR_FILTER 0 ++%define CONFIG_BOXBLUR_OPENCL_FILTER 0 ++%define CONFIG_BWDIF_FILTER 0 ++%define CONFIG_CAS_FILTER 0 ++%define CONFIG_CHROMABER_VULKAN_FILTER 0 ++%define CONFIG_CHROMAHOLD_FILTER 0 ++%define CONFIG_CHROMAKEY_FILTER 0 ++%define CONFIG_CHROMANR_FILTER 0 ++%define CONFIG_CHROMASHIFT_FILTER 0 ++%define CONFIG_CIESCOPE_FILTER 0 ++%define CONFIG_CODECVIEW_FILTER 0 ++%define CONFIG_COLORBALANCE_FILTER 0 ++%define CONFIG_COLORCHANNELMIXER_FILTER 0 ++%define CONFIG_COLORCONTRAST_FILTER 0 ++%define CONFIG_COLORCORRECT_FILTER 0 ++%define CONFIG_COLORIZE_FILTER 0 ++%define CONFIG_COLORKEY_FILTER 0 ++%define CONFIG_COLORKEY_OPENCL_FILTER 0 ++%define CONFIG_COLORHOLD_FILTER 0 ++%define CONFIG_COLORLEVELS_FILTER 0 ++%define CONFIG_COLORMATRIX_FILTER 0 ++%define CONFIG_COLORSPACE_FILTER 0 ++%define CONFIG_COLORTEMPERATURE_FILTER 0 ++%define CONFIG_CONVOLUTION_FILTER 0 ++%define CONFIG_CONVOLUTION_OPENCL_FILTER 0 ++%define CONFIG_CONVOLVE_FILTER 0 ++%define CONFIG_COPY_FILTER 0 ++%define CONFIG_COREIMAGE_FILTER 0 ++%define CONFIG_COVER_RECT_FILTER 0 ++%define CONFIG_CROP_FILTER 0 ++%define CONFIG_CROPDETECT_FILTER 0 ++%define CONFIG_CUE_FILTER 0 ++%define CONFIG_CURVES_FILTER 0 ++%define CONFIG_DATASCOPE_FILTER 0 ++%define CONFIG_DBLUR_FILTER 0 ++%define CONFIG_DCTDNOIZ_FILTER 0 ++%define CONFIG_DEBAND_FILTER 0 ++%define CONFIG_DEBLOCK_FILTER 0 ++%define CONFIG_DECIMATE_FILTER 0 ++%define CONFIG_DECONVOLVE_FILTER 0 ++%define CONFIG_DEDOT_FILTER 0 ++%define CONFIG_DEFLATE_FILTER 0 ++%define CONFIG_DEFLICKER_FILTER 0 ++%define CONFIG_DEINTERLACE_QSV_FILTER 0 ++%define CONFIG_DEINTERLACE_VAAPI_FILTER 0 ++%define CONFIG_DEJUDDER_FILTER 0 ++%define CONFIG_DELOGO_FILTER 0 ++%define CONFIG_DENOISE_VAAPI_FILTER 0 ++%define CONFIG_DERAIN_FILTER 0 ++%define CONFIG_DESHAKE_FILTER 0 ++%define CONFIG_DESHAKE_OPENCL_FILTER 0 ++%define CONFIG_DESPILL_FILTER 0 ++%define CONFIG_DETELECINE_FILTER 0 ++%define CONFIG_DILATION_FILTER 0 ++%define CONFIG_DILATION_OPENCL_FILTER 0 ++%define CONFIG_DISPLACE_FILTER 0 ++%define CONFIG_DNN_CLASSIFY_FILTER 0 ++%define CONFIG_DNN_DETECT_FILTER 0 ++%define CONFIG_DNN_PROCESSING_FILTER 0 ++%define CONFIG_DOUBLEWEAVE_FILTER 0 ++%define CONFIG_DRAWBOX_FILTER 0 ++%define CONFIG_DRAWGRAPH_FILTER 0 ++%define CONFIG_DRAWGRID_FILTER 0 ++%define CONFIG_DRAWTEXT_FILTER 0 ++%define CONFIG_EDGEDETECT_FILTER 0 ++%define CONFIG_ELBG_FILTER 0 ++%define CONFIG_ENTROPY_FILTER 0 ++%define CONFIG_EPX_FILTER 0 ++%define CONFIG_EQ_FILTER 0 ++%define CONFIG_EROSION_FILTER 0 ++%define CONFIG_EROSION_OPENCL_FILTER 0 ++%define CONFIG_ESTDIF_FILTER 0 ++%define CONFIG_EXPOSURE_FILTER 0 ++%define CONFIG_EXTRACTPLANES_FILTER 0 ++%define CONFIG_FADE_FILTER 0 ++%define CONFIG_FFTDNOIZ_FILTER 0 ++%define CONFIG_FFTFILT_FILTER 0 ++%define CONFIG_FIELD_FILTER 0 ++%define CONFIG_FIELDHINT_FILTER 0 ++%define CONFIG_FIELDMATCH_FILTER 0 ++%define CONFIG_FIELDORDER_FILTER 0 ++%define CONFIG_FILLBORDERS_FILTER 0 ++%define CONFIG_FIND_RECT_FILTER 0 ++%define CONFIG_FLIP_VULKAN_FILTER 0 ++%define CONFIG_FLOODFILL_FILTER 0 ++%define CONFIG_FORMAT_FILTER 0 ++%define CONFIG_FPS_FILTER 0 ++%define CONFIG_FRAMEPACK_FILTER 0 ++%define CONFIG_FRAMERATE_FILTER 0 ++%define CONFIG_FRAMESTEP_FILTER 0 ++%define CONFIG_FREEZEDETECT_FILTER 0 ++%define CONFIG_FREEZEFRAMES_FILTER 0 ++%define CONFIG_FREI0R_FILTER 0 ++%define CONFIG_FSPP_FILTER 0 ++%define CONFIG_GBLUR_FILTER 0 ++%define CONFIG_GBLUR_VULKAN_FILTER 0 ++%define CONFIG_GEQ_FILTER 0 ++%define CONFIG_GRADFUN_FILTER 0 ++%define CONFIG_GRAPHMONITOR_FILTER 0 ++%define CONFIG_GRAYWORLD_FILTER 0 ++%define CONFIG_GREYEDGE_FILTER 0 ++%define CONFIG_GUIDED_FILTER 0 ++%define CONFIG_HALDCLUT_FILTER 0 ++%define CONFIG_HFLIP_FILTER 0 ++%define CONFIG_HFLIP_VULKAN_FILTER 0 ++%define CONFIG_HISTEQ_FILTER 0 ++%define CONFIG_HISTOGRAM_FILTER 0 ++%define CONFIG_HQDN3D_FILTER 0 ++%define CONFIG_HQX_FILTER 0 ++%define CONFIG_HSTACK_FILTER 0 ++%define CONFIG_HSVHOLD_FILTER 0 ++%define CONFIG_HSVKEY_FILTER 0 ++%define CONFIG_HUE_FILTER 0 ++%define CONFIG_HUESATURATION_FILTER 0 ++%define CONFIG_HWDOWNLOAD_FILTER 0 ++%define CONFIG_HWMAP_FILTER 0 ++%define CONFIG_HWUPLOAD_FILTER 0 ++%define CONFIG_HWUPLOAD_CUDA_FILTER 0 ++%define CONFIG_HYSTERESIS_FILTER 0 ++%define CONFIG_IDENTITY_FILTER 0 ++%define CONFIG_IDET_FILTER 0 ++%define CONFIG_IL_FILTER 0 ++%define CONFIG_INFLATE_FILTER 0 ++%define CONFIG_INTERLACE_FILTER 0 ++%define CONFIG_INTERLEAVE_FILTER 0 ++%define CONFIG_KERNDEINT_FILTER 0 ++%define CONFIG_KIRSCH_FILTER 0 ++%define CONFIG_LAGFUN_FILTER 0 ++%define CONFIG_LATENCY_FILTER 0 ++%define CONFIG_LENSCORRECTION_FILTER 0 ++%define CONFIG_LENSFUN_FILTER 0 ++%define CONFIG_LIBPLACEBO_FILTER 0 ++%define CONFIG_LIBVMAF_FILTER 0 ++%define CONFIG_LIMITDIFF_FILTER 0 ++%define CONFIG_LIMITER_FILTER 0 ++%define CONFIG_LOOP_FILTER 0 ++%define CONFIG_LUMAKEY_FILTER 0 ++%define CONFIG_LUT_FILTER 0 ++%define CONFIG_LUT1D_FILTER 0 ++%define CONFIG_LUT2_FILTER 0 ++%define CONFIG_LUT3D_FILTER 0 ++%define CONFIG_LUTRGB_FILTER 0 ++%define CONFIG_LUTYUV_FILTER 0 ++%define CONFIG_MASKEDCLAMP_FILTER 0 ++%define CONFIG_MASKEDMAX_FILTER 0 ++%define CONFIG_MASKEDMERGE_FILTER 0 ++%define CONFIG_MASKEDMIN_FILTER 0 ++%define CONFIG_MASKEDTHRESHOLD_FILTER 0 ++%define CONFIG_MASKFUN_FILTER 0 ++%define CONFIG_MCDEINT_FILTER 0 ++%define CONFIG_MEDIAN_FILTER 0 ++%define CONFIG_MERGEPLANES_FILTER 0 ++%define CONFIG_MESTIMATE_FILTER 0 ++%define CONFIG_METADATA_FILTER 0 ++%define CONFIG_MIDEQUALIZER_FILTER 0 ++%define CONFIG_MINTERPOLATE_FILTER 0 ++%define CONFIG_MIX_FILTER 0 ++%define CONFIG_MONOCHROME_FILTER 0 ++%define CONFIG_MORPHO_FILTER 0 ++%define CONFIG_MPDECIMATE_FILTER 0 ++%define CONFIG_MSAD_FILTER 0 ++%define CONFIG_NEGATE_FILTER 0 ++%define CONFIG_NLMEANS_FILTER 0 ++%define CONFIG_NLMEANS_OPENCL_FILTER 0 ++%define CONFIG_NNEDI_FILTER 0 ++%define CONFIG_NOFORMAT_FILTER 0 ++%define CONFIG_NOISE_FILTER 0 ++%define CONFIG_NORMALIZE_FILTER 0 ++%define CONFIG_NULL_FILTER 0 ++%define CONFIG_OCR_FILTER 0 ++%define CONFIG_OCV_FILTER 0 ++%define CONFIG_OSCILLOSCOPE_FILTER 0 ++%define CONFIG_OVERLAY_FILTER 0 ++%define CONFIG_OVERLAY_OPENCL_FILTER 0 ++%define CONFIG_OVERLAY_QSV_FILTER 0 ++%define CONFIG_OVERLAY_VAAPI_FILTER 0 ++%define CONFIG_OVERLAY_VULKAN_FILTER 0 ++%define CONFIG_OVERLAY_CUDA_FILTER 0 ++%define CONFIG_OWDENOISE_FILTER 0 ++%define CONFIG_PAD_FILTER 0 ++%define CONFIG_PAD_OPENCL_FILTER 0 ++%define CONFIG_PALETTEGEN_FILTER 0 ++%define CONFIG_PALETTEUSE_FILTER 0 ++%define CONFIG_PERMS_FILTER 0 ++%define CONFIG_PERSPECTIVE_FILTER 0 ++%define CONFIG_PHASE_FILTER 0 ++%define CONFIG_PHOTOSENSITIVITY_FILTER 0 ++%define CONFIG_PIXDESCTEST_FILTER 0 ++%define CONFIG_PIXSCOPE_FILTER 0 ++%define CONFIG_PP_FILTER 0 ++%define CONFIG_PP7_FILTER 0 ++%define CONFIG_PREMULTIPLY_FILTER 0 ++%define CONFIG_PREWITT_FILTER 0 ++%define CONFIG_PREWITT_OPENCL_FILTER 0 ++%define CONFIG_PROCAMP_VAAPI_FILTER 0 ++%define CONFIG_PROGRAM_OPENCL_FILTER 0 ++%define CONFIG_PSEUDOCOLOR_FILTER 0 ++%define CONFIG_PSNR_FILTER 0 ++%define CONFIG_PULLUP_FILTER 0 ++%define CONFIG_QP_FILTER 0 ++%define CONFIG_RANDOM_FILTER 0 ++%define CONFIG_READEIA608_FILTER 0 ++%define CONFIG_READVITC_FILTER 0 ++%define CONFIG_REALTIME_FILTER 0 ++%define CONFIG_REMAP_FILTER 0 ++%define CONFIG_REMOVEGRAIN_FILTER 0 ++%define CONFIG_REMOVELOGO_FILTER 0 ++%define CONFIG_REPEATFIELDS_FILTER 0 ++%define CONFIG_REVERSE_FILTER 0 ++%define CONFIG_RGBASHIFT_FILTER 0 ++%define CONFIG_ROBERTS_FILTER 0 ++%define CONFIG_ROBERTS_OPENCL_FILTER 0 ++%define CONFIG_ROTATE_FILTER 0 ++%define CONFIG_SAB_FILTER 0 ++%define CONFIG_SCALE_FILTER 0 ++%define CONFIG_SCALE_CUDA_FILTER 0 ++%define CONFIG_SCALE_NPP_FILTER 0 ++%define CONFIG_SCALE_QSV_FILTER 0 ++%define CONFIG_SCALE_VAAPI_FILTER 0 ++%define CONFIG_SCALE_VULKAN_FILTER 0 ++%define CONFIG_SCALE2REF_FILTER 0 ++%define CONFIG_SCALE2REF_NPP_FILTER 0 ++%define CONFIG_SCDET_FILTER 0 ++%define CONFIG_SCHARR_FILTER 0 ++%define CONFIG_SCROLL_FILTER 0 ++%define CONFIG_SEGMENT_FILTER 0 ++%define CONFIG_SELECT_FILTER 0 ++%define CONFIG_SELECTIVECOLOR_FILTER 0 ++%define CONFIG_SENDCMD_FILTER 0 ++%define CONFIG_SEPARATEFIELDS_FILTER 0 ++%define CONFIG_SETDAR_FILTER 0 ++%define CONFIG_SETFIELD_FILTER 0 ++%define CONFIG_SETPARAMS_FILTER 0 ++%define CONFIG_SETPTS_FILTER 0 ++%define CONFIG_SETRANGE_FILTER 0 ++%define CONFIG_SETSAR_FILTER 0 ++%define CONFIG_SETTB_FILTER 0 ++%define CONFIG_SHARPEN_NPP_FILTER 0 ++%define CONFIG_SHARPNESS_VAAPI_FILTER 0 ++%define CONFIG_SHEAR_FILTER 0 ++%define CONFIG_SHOWINFO_FILTER 0 ++%define CONFIG_SHOWPALETTE_FILTER 0 ++%define CONFIG_SHUFFLEFRAMES_FILTER 0 ++%define CONFIG_SHUFFLEPIXELS_FILTER 0 ++%define CONFIG_SHUFFLEPLANES_FILTER 0 ++%define CONFIG_SIDEDATA_FILTER 0 ++%define CONFIG_SIGNALSTATS_FILTER 0 ++%define CONFIG_SIGNATURE_FILTER 0 ++%define CONFIG_SMARTBLUR_FILTER 0 ++%define CONFIG_SOBEL_FILTER 0 ++%define CONFIG_SOBEL_OPENCL_FILTER 0 ++%define CONFIG_SPLIT_FILTER 0 ++%define CONFIG_SPP_FILTER 0 ++%define CONFIG_SR_FILTER 0 ++%define CONFIG_SSIM_FILTER 0 ++%define CONFIG_STEREO3D_FILTER 0 ++%define CONFIG_STREAMSELECT_FILTER 0 ++%define CONFIG_SUBTITLES_FILTER 0 ++%define CONFIG_SUPER2XSAI_FILTER 0 ++%define CONFIG_SWAPRECT_FILTER 0 ++%define CONFIG_SWAPUV_FILTER 0 ++%define CONFIG_TBLEND_FILTER 0 ++%define CONFIG_TELECINE_FILTER 0 ++%define CONFIG_THISTOGRAM_FILTER 0 ++%define CONFIG_THRESHOLD_FILTER 0 ++%define CONFIG_THUMBNAIL_FILTER 0 ++%define CONFIG_THUMBNAIL_CUDA_FILTER 0 ++%define CONFIG_TILE_FILTER 0 ++%define CONFIG_TINTERLACE_FILTER 0 ++%define CONFIG_TLUT2_FILTER 0 ++%define CONFIG_TMEDIAN_FILTER 0 ++%define CONFIG_TMIDEQUALIZER_FILTER 0 ++%define CONFIG_TMIX_FILTER 0 ++%define CONFIG_TONEMAP_FILTER 0 ++%define CONFIG_TONEMAP_OPENCL_FILTER 0 ++%define CONFIG_TONEMAP_VAAPI_FILTER 0 ++%define CONFIG_TPAD_FILTER 0 ++%define CONFIG_TRANSPOSE_FILTER 0 ++%define CONFIG_TRANSPOSE_NPP_FILTER 0 ++%define CONFIG_TRANSPOSE_OPENCL_FILTER 0 ++%define CONFIG_TRANSPOSE_VAAPI_FILTER 0 ++%define CONFIG_TRANSPOSE_VULKAN_FILTER 0 ++%define CONFIG_TRIM_FILTER 0 ++%define CONFIG_UNPREMULTIPLY_FILTER 0 ++%define CONFIG_UNSHARP_FILTER 0 ++%define CONFIG_UNSHARP_OPENCL_FILTER 0 ++%define CONFIG_UNTILE_FILTER 0 ++%define CONFIG_USPP_FILTER 0 ++%define CONFIG_V360_FILTER 0 ++%define CONFIG_VAGUEDENOISER_FILTER 0 ++%define CONFIG_VARBLUR_FILTER 0 ++%define CONFIG_VECTORSCOPE_FILTER 0 ++%define CONFIG_VFLIP_FILTER 0 ++%define CONFIG_VFLIP_VULKAN_FILTER 0 ++%define CONFIG_VFRDET_FILTER 0 ++%define CONFIG_VIBRANCE_FILTER 0 ++%define CONFIG_VIDSTABDETECT_FILTER 0 ++%define CONFIG_VIDSTABTRANSFORM_FILTER 0 ++%define CONFIG_VIF_FILTER 0 ++%define CONFIG_VIGNETTE_FILTER 0 ++%define CONFIG_VMAFMOTION_FILTER 0 ++%define CONFIG_VPP_QSV_FILTER 0 ++%define CONFIG_VSTACK_FILTER 0 ++%define CONFIG_W3FDIF_FILTER 0 ++%define CONFIG_WAVEFORM_FILTER 0 ++%define CONFIG_WEAVE_FILTER 0 ++%define CONFIG_XBR_FILTER 0 ++%define CONFIG_XCORRELATE_FILTER 0 ++%define CONFIG_XFADE_FILTER 0 ++%define CONFIG_XFADE_OPENCL_FILTER 0 ++%define CONFIG_XMEDIAN_FILTER 0 ++%define CONFIG_XSTACK_FILTER 0 ++%define CONFIG_YADIF_FILTER 0 ++%define CONFIG_YADIF_CUDA_FILTER 0 ++%define CONFIG_YADIF_VIDEOTOOLBOX_FILTER 0 ++%define CONFIG_YAEPBLUR_FILTER 0 ++%define CONFIG_ZMQ_FILTER 0 ++%define CONFIG_ZOOMPAN_FILTER 0 ++%define CONFIG_ZSCALE_FILTER 0 ++%define CONFIG_ALLRGB_FILTER 0 ++%define CONFIG_ALLYUV_FILTER 0 ++%define CONFIG_CELLAUTO_FILTER 0 ++%define CONFIG_COLOR_FILTER 0 ++%define CONFIG_COLORSPECTRUM_FILTER 0 ++%define CONFIG_COREIMAGESRC_FILTER 0 ++%define CONFIG_FREI0R_SRC_FILTER 0 ++%define CONFIG_GRADIENTS_FILTER 0 ++%define CONFIG_HALDCLUTSRC_FILTER 0 ++%define CONFIG_LIFE_FILTER 0 ++%define CONFIG_MANDELBROT_FILTER 0 ++%define CONFIG_MPTESTSRC_FILTER 0 ++%define CONFIG_NULLSRC_FILTER 0 ++%define CONFIG_OPENCLSRC_FILTER 0 ++%define CONFIG_PAL75BARS_FILTER 0 ++%define CONFIG_PAL100BARS_FILTER 0 ++%define CONFIG_RGBTESTSRC_FILTER 0 ++%define CONFIG_SIERPINSKI_FILTER 0 ++%define CONFIG_SMPTEBARS_FILTER 0 ++%define CONFIG_SMPTEHDBARS_FILTER 0 ++%define CONFIG_TESTSRC_FILTER 0 ++%define CONFIG_TESTSRC2_FILTER 0 ++%define CONFIG_YUVTESTSRC_FILTER 0 ++%define CONFIG_NULLSINK_FILTER 0 ++%define CONFIG_ABITSCOPE_FILTER 0 ++%define CONFIG_ADRAWGRAPH_FILTER 0 ++%define CONFIG_AGRAPHMONITOR_FILTER 0 ++%define CONFIG_AHISTOGRAM_FILTER 0 ++%define CONFIG_APHASEMETER_FILTER 0 ++%define CONFIG_AVECTORSCOPE_FILTER 0 ++%define CONFIG_CONCAT_FILTER 0 ++%define CONFIG_SHOWCQT_FILTER 0 ++%define CONFIG_SHOWFREQS_FILTER 0 ++%define CONFIG_SHOWSPATIAL_FILTER 0 ++%define CONFIG_SHOWSPECTRUM_FILTER 0 ++%define CONFIG_SHOWSPECTRUMPIC_FILTER 0 ++%define CONFIG_SHOWVOLUME_FILTER 0 ++%define CONFIG_SHOWWAVES_FILTER 0 ++%define CONFIG_SHOWWAVESPIC_FILTER 0 ++%define CONFIG_SPECTRUMSYNTH_FILTER 0 ++%define CONFIG_AMOVIE_FILTER 0 ++%define CONFIG_MOVIE_FILTER 0 ++%define CONFIG_AFIFO_FILTER 0 ++%define CONFIG_FIFO_FILTER 0 ++%define CONFIG_AA_DEMUXER 0 ++%define CONFIG_AAC_DEMUXER 1 ++%define CONFIG_AAX_DEMUXER 0 ++%define CONFIG_AC3_DEMUXER 0 ++%define CONFIG_ACE_DEMUXER 0 ++%define CONFIG_ACM_DEMUXER 0 ++%define CONFIG_ACT_DEMUXER 0 ++%define CONFIG_ADF_DEMUXER 0 ++%define CONFIG_ADP_DEMUXER 0 ++%define CONFIG_ADS_DEMUXER 0 ++%define CONFIG_ADX_DEMUXER 0 ++%define CONFIG_AEA_DEMUXER 0 ++%define CONFIG_AFC_DEMUXER 0 ++%define CONFIG_AIFF_DEMUXER 0 ++%define CONFIG_AIX_DEMUXER 0 ++%define CONFIG_ALP_DEMUXER 0 ++%define CONFIG_AMR_DEMUXER 0 ++%define CONFIG_AMRNB_DEMUXER 0 ++%define CONFIG_AMRWB_DEMUXER 0 ++%define CONFIG_ANM_DEMUXER 0 ++%define CONFIG_APC_DEMUXER 0 ++%define CONFIG_APE_DEMUXER 0 ++%define CONFIG_APM_DEMUXER 0 ++%define CONFIG_APNG_DEMUXER 0 ++%define CONFIG_APTX_DEMUXER 0 ++%define CONFIG_APTX_HD_DEMUXER 0 ++%define CONFIG_AQTITLE_DEMUXER 0 ++%define CONFIG_ARGO_ASF_DEMUXER 0 ++%define CONFIG_ARGO_BRP_DEMUXER 0 ++%define CONFIG_ARGO_CVG_DEMUXER 0 ++%define CONFIG_ASF_DEMUXER 0 ++%define CONFIG_ASF_O_DEMUXER 0 ++%define CONFIG_ASS_DEMUXER 0 ++%define CONFIG_AST_DEMUXER 0 ++%define CONFIG_AU_DEMUXER 0 ++%define CONFIG_AV1_DEMUXER 0 ++%define CONFIG_AVI_DEMUXER 0 ++%define CONFIG_AVISYNTH_DEMUXER 0 ++%define CONFIG_AVR_DEMUXER 0 ++%define CONFIG_AVS_DEMUXER 0 ++%define CONFIG_AVS2_DEMUXER 0 ++%define CONFIG_AVS3_DEMUXER 0 ++%define CONFIG_BETHSOFTVID_DEMUXER 0 ++%define CONFIG_BFI_DEMUXER 0 ++%define CONFIG_BINTEXT_DEMUXER 0 ++%define CONFIG_BINK_DEMUXER 0 ++%define CONFIG_BINKA_DEMUXER 0 ++%define CONFIG_BIT_DEMUXER 0 ++%define CONFIG_BITPACKED_DEMUXER 0 ++%define CONFIG_BMV_DEMUXER 0 ++%define CONFIG_BFSTM_DEMUXER 0 ++%define CONFIG_BRSTM_DEMUXER 0 ++%define CONFIG_BOA_DEMUXER 0 ++%define CONFIG_C93_DEMUXER 0 ++%define CONFIG_CAF_DEMUXER 0 ++%define CONFIG_CAVSVIDEO_DEMUXER 0 ++%define CONFIG_CDG_DEMUXER 0 ++%define CONFIG_CDXL_DEMUXER 0 ++%define CONFIG_CINE_DEMUXER 0 ++%define CONFIG_CODEC2_DEMUXER 0 ++%define CONFIG_CODEC2RAW_DEMUXER 0 ++%define CONFIG_CONCAT_DEMUXER 0 ++%define CONFIG_DASH_DEMUXER 0 ++%define CONFIG_DATA_DEMUXER 0 ++%define CONFIG_DAUD_DEMUXER 0 ++%define CONFIG_DCSTR_DEMUXER 0 ++%define CONFIG_DERF_DEMUXER 0 ++%define CONFIG_DFA_DEMUXER 0 ++%define CONFIG_DHAV_DEMUXER 0 ++%define CONFIG_DIRAC_DEMUXER 0 ++%define CONFIG_DNXHD_DEMUXER 0 ++%define CONFIG_DSF_DEMUXER 0 ++%define CONFIG_DSICIN_DEMUXER 0 ++%define CONFIG_DSS_DEMUXER 0 ++%define CONFIG_DTS_DEMUXER 0 ++%define CONFIG_DTSHD_DEMUXER 0 ++%define CONFIG_DV_DEMUXER 0 ++%define CONFIG_DVBSUB_DEMUXER 0 ++%define CONFIG_DVBTXT_DEMUXER 0 ++%define CONFIG_DXA_DEMUXER 0 ++%define CONFIG_EA_DEMUXER 0 ++%define CONFIG_EA_CDATA_DEMUXER 0 ++%define CONFIG_EAC3_DEMUXER 0 ++%define CONFIG_EPAF_DEMUXER 0 ++%define CONFIG_FFMETADATA_DEMUXER 0 ++%define CONFIG_FILMSTRIP_DEMUXER 0 ++%define CONFIG_FITS_DEMUXER 0 ++%define CONFIG_FLAC_DEMUXER 1 ++%define CONFIG_FLIC_DEMUXER 0 ++%define CONFIG_FLV_DEMUXER 0 ++%define CONFIG_LIVE_FLV_DEMUXER 0 ++%define CONFIG_FOURXM_DEMUXER 0 ++%define CONFIG_FRM_DEMUXER 0 ++%define CONFIG_FSB_DEMUXER 0 ++%define CONFIG_FWSE_DEMUXER 0 ++%define CONFIG_G722_DEMUXER 0 ++%define CONFIG_G723_1_DEMUXER 0 ++%define CONFIG_G726_DEMUXER 0 ++%define CONFIG_G726LE_DEMUXER 0 ++%define CONFIG_G729_DEMUXER 0 ++%define CONFIG_GDV_DEMUXER 0 ++%define CONFIG_GENH_DEMUXER 0 ++%define CONFIG_GIF_DEMUXER 0 ++%define CONFIG_GSM_DEMUXER 0 ++%define CONFIG_GXF_DEMUXER 0 ++%define CONFIG_H261_DEMUXER 0 ++%define CONFIG_H263_DEMUXER 0 ++%define CONFIG_H264_DEMUXER 0 ++%define CONFIG_HCA_DEMUXER 0 ++%define CONFIG_HCOM_DEMUXER 0 ++%define CONFIG_HEVC_DEMUXER 0 ++%define CONFIG_HLS_DEMUXER 0 ++%define CONFIG_HNM_DEMUXER 0 ++%define CONFIG_ICO_DEMUXER 0 ++%define CONFIG_IDCIN_DEMUXER 0 ++%define CONFIG_IDF_DEMUXER 0 ++%define CONFIG_IFF_DEMUXER 0 ++%define CONFIG_IFV_DEMUXER 0 ++%define CONFIG_ILBC_DEMUXER 0 ++%define CONFIG_IMAGE2_DEMUXER 0 ++%define CONFIG_IMAGE2PIPE_DEMUXER 0 ++%define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 0 ++%define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 0 ++%define CONFIG_IMF_DEMUXER 0 ++%define CONFIG_INGENIENT_DEMUXER 0 ++%define CONFIG_IPMOVIE_DEMUXER 0 ++%define CONFIG_IPU_DEMUXER 0 ++%define CONFIG_IRCAM_DEMUXER 0 ++%define CONFIG_ISS_DEMUXER 0 ++%define CONFIG_IV8_DEMUXER 0 ++%define CONFIG_IVF_DEMUXER 0 ++%define CONFIG_IVR_DEMUXER 0 ++%define CONFIG_JACOSUB_DEMUXER 0 ++%define CONFIG_JV_DEMUXER 0 ++%define CONFIG_KUX_DEMUXER 0 ++%define CONFIG_KVAG_DEMUXER 0 ++%define CONFIG_LMLM4_DEMUXER 0 ++%define CONFIG_LOAS_DEMUXER 0 ++%define CONFIG_LUODAT_DEMUXER 0 ++%define CONFIG_LRC_DEMUXER 0 ++%define CONFIG_LVF_DEMUXER 0 ++%define CONFIG_LXF_DEMUXER 0 ++%define CONFIG_M4V_DEMUXER 0 ++%define CONFIG_MCA_DEMUXER 0 ++%define CONFIG_MCC_DEMUXER 0 ++%define CONFIG_MATROSKA_DEMUXER 1 ++%define CONFIG_MGSTS_DEMUXER 0 ++%define CONFIG_MICRODVD_DEMUXER 0 ++%define CONFIG_MJPEG_DEMUXER 0 ++%define CONFIG_MJPEG_2000_DEMUXER 0 ++%define CONFIG_MLP_DEMUXER 0 ++%define CONFIG_MLV_DEMUXER 0 ++%define CONFIG_MM_DEMUXER 0 ++%define CONFIG_MMF_DEMUXER 0 ++%define CONFIG_MODS_DEMUXER 0 ++%define CONFIG_MOFLEX_DEMUXER 0 ++%define CONFIG_MOV_DEMUXER 1 ++%define CONFIG_MP3_DEMUXER 1 ++%define CONFIG_MPC_DEMUXER 0 ++%define CONFIG_MPC8_DEMUXER 0 ++%define CONFIG_MPEGPS_DEMUXER 0 ++%define CONFIG_MPEGTS_DEMUXER 0 ++%define CONFIG_MPEGTSRAW_DEMUXER 0 ++%define CONFIG_MPEGVIDEO_DEMUXER 0 ++%define CONFIG_MPJPEG_DEMUXER 0 ++%define CONFIG_MPL2_DEMUXER 0 ++%define CONFIG_MPSUB_DEMUXER 0 ++%define CONFIG_MSF_DEMUXER 0 ++%define CONFIG_MSNWC_TCP_DEMUXER 0 ++%define CONFIG_MSP_DEMUXER 0 ++%define CONFIG_MTAF_DEMUXER 0 ++%define CONFIG_MTV_DEMUXER 0 ++%define CONFIG_MUSX_DEMUXER 0 ++%define CONFIG_MV_DEMUXER 0 ++%define CONFIG_MVI_DEMUXER 0 ++%define CONFIG_MXF_DEMUXER 0 ++%define CONFIG_MXG_DEMUXER 0 ++%define CONFIG_NC_DEMUXER 0 ++%define CONFIG_NISTSPHERE_DEMUXER 0 ++%define CONFIG_NSP_DEMUXER 0 ++%define CONFIG_NSV_DEMUXER 0 ++%define CONFIG_NUT_DEMUXER 0 ++%define CONFIG_NUV_DEMUXER 0 ++%define CONFIG_OBU_DEMUXER 0 ++%define CONFIG_OGG_DEMUXER 1 ++%define CONFIG_OMA_DEMUXER 0 ++%define CONFIG_PAF_DEMUXER 0 ++%define CONFIG_PCM_ALAW_DEMUXER 0 ++%define CONFIG_PCM_MULAW_DEMUXER 0 ++%define CONFIG_PCM_VIDC_DEMUXER 0 ++%define CONFIG_PCM_F64BE_DEMUXER 0 ++%define CONFIG_PCM_F64LE_DEMUXER 0 ++%define CONFIG_PCM_F32BE_DEMUXER 0 ++%define CONFIG_PCM_F32LE_DEMUXER 0 ++%define CONFIG_PCM_S32BE_DEMUXER 0 ++%define CONFIG_PCM_S32LE_DEMUXER 0 ++%define CONFIG_PCM_S24BE_DEMUXER 0 ++%define CONFIG_PCM_S24LE_DEMUXER 0 ++%define CONFIG_PCM_S16BE_DEMUXER 0 ++%define CONFIG_PCM_S16LE_DEMUXER 0 ++%define CONFIG_PCM_S8_DEMUXER 0 ++%define CONFIG_PCM_U32BE_DEMUXER 0 ++%define CONFIG_PCM_U32LE_DEMUXER 0 ++%define CONFIG_PCM_U24BE_DEMUXER 0 ++%define CONFIG_PCM_U24LE_DEMUXER 0 ++%define CONFIG_PCM_U16BE_DEMUXER 0 ++%define CONFIG_PCM_U16LE_DEMUXER 0 ++%define CONFIG_PCM_U8_DEMUXER 0 ++%define CONFIG_PJS_DEMUXER 0 ++%define CONFIG_PMP_DEMUXER 0 ++%define CONFIG_PP_BNK_DEMUXER 0 ++%define CONFIG_PVA_DEMUXER 0 ++%define CONFIG_PVF_DEMUXER 0 ++%define CONFIG_QCP_DEMUXER 0 ++%define CONFIG_R3D_DEMUXER 0 ++%define CONFIG_RAWVIDEO_DEMUXER 0 ++%define CONFIG_REALTEXT_DEMUXER 0 ++%define CONFIG_REDSPARK_DEMUXER 0 ++%define CONFIG_RL2_DEMUXER 0 ++%define CONFIG_RM_DEMUXER 0 ++%define CONFIG_ROQ_DEMUXER 0 ++%define CONFIG_RPL_DEMUXER 0 ++%define CONFIG_RSD_DEMUXER 0 ++%define CONFIG_RSO_DEMUXER 0 ++%define CONFIG_RTP_DEMUXER 0 ++%define CONFIG_RTSP_DEMUXER 0 ++%define CONFIG_S337M_DEMUXER 0 ++%define CONFIG_SAMI_DEMUXER 0 ++%define CONFIG_SAP_DEMUXER 0 ++%define CONFIG_SBC_DEMUXER 0 ++%define CONFIG_SBG_DEMUXER 0 ++%define CONFIG_SCC_DEMUXER 0 ++%define CONFIG_SCD_DEMUXER 0 ++%define CONFIG_SDP_DEMUXER 0 ++%define CONFIG_SDR2_DEMUXER 0 ++%define CONFIG_SDS_DEMUXER 0 ++%define CONFIG_SDX_DEMUXER 0 ++%define CONFIG_SEGAFILM_DEMUXER 0 ++%define CONFIG_SER_DEMUXER 0 ++%define CONFIG_SGA_DEMUXER 0 ++%define CONFIG_SHORTEN_DEMUXER 0 ++%define CONFIG_SIFF_DEMUXER 0 ++%define CONFIG_SIMBIOSIS_IMX_DEMUXER 0 ++%define CONFIG_SLN_DEMUXER 0 ++%define CONFIG_SMACKER_DEMUXER 0 ++%define CONFIG_SMJPEG_DEMUXER 0 ++%define CONFIG_SMUSH_DEMUXER 0 ++%define CONFIG_SOL_DEMUXER 0 ++%define CONFIG_SOX_DEMUXER 0 ++%define CONFIG_SPDIF_DEMUXER 0 ++%define CONFIG_SRT_DEMUXER 0 ++%define CONFIG_STR_DEMUXER 0 ++%define CONFIG_STL_DEMUXER 0 ++%define CONFIG_SUBVIEWER1_DEMUXER 0 ++%define CONFIG_SUBVIEWER_DEMUXER 0 ++%define CONFIG_SUP_DEMUXER 0 ++%define CONFIG_SVAG_DEMUXER 0 ++%define CONFIG_SVS_DEMUXER 0 ++%define CONFIG_SWF_DEMUXER 0 ++%define CONFIG_TAK_DEMUXER 0 ++%define CONFIG_TEDCAPTIONS_DEMUXER 0 ++%define CONFIG_THP_DEMUXER 0 ++%define CONFIG_THREEDOSTR_DEMUXER 0 ++%define CONFIG_TIERTEXSEQ_DEMUXER 0 ++%define CONFIG_TMV_DEMUXER 0 ++%define CONFIG_TRUEHD_DEMUXER 0 ++%define CONFIG_TTA_DEMUXER 0 ++%define CONFIG_TXD_DEMUXER 0 ++%define CONFIG_TTY_DEMUXER 0 ++%define CONFIG_TY_DEMUXER 0 ++%define CONFIG_V210_DEMUXER 0 ++%define CONFIG_V210X_DEMUXER 0 ++%define CONFIG_VAG_DEMUXER 0 ++%define CONFIG_VC1_DEMUXER 0 ++%define CONFIG_VC1T_DEMUXER 0 ++%define CONFIG_VIVIDAS_DEMUXER 0 ++%define CONFIG_VIVO_DEMUXER 0 ++%define CONFIG_VMD_DEMUXER 0 ++%define CONFIG_VOBSUB_DEMUXER 0 ++%define CONFIG_VOC_DEMUXER 0 ++%define CONFIG_VPK_DEMUXER 0 ++%define CONFIG_VPLAYER_DEMUXER 0 ++%define CONFIG_VQF_DEMUXER 0 ++%define CONFIG_W64_DEMUXER 0 ++%define CONFIG_WAV_DEMUXER 1 ++%define CONFIG_WC3_DEMUXER 0 ++%define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 0 ++%define CONFIG_WEBVTT_DEMUXER 0 ++%define CONFIG_WSAUD_DEMUXER 0 ++%define CONFIG_WSD_DEMUXER 0 ++%define CONFIG_WSVQA_DEMUXER 0 ++%define CONFIG_WTV_DEMUXER 0 ++%define CONFIG_WVE_DEMUXER 0 ++%define CONFIG_WV_DEMUXER 0 ++%define CONFIG_XA_DEMUXER 0 ++%define CONFIG_XBIN_DEMUXER 0 ++%define CONFIG_XMV_DEMUXER 0 ++%define CONFIG_XVAG_DEMUXER 0 ++%define CONFIG_XWMA_DEMUXER 0 ++%define CONFIG_YOP_DEMUXER 0 ++%define CONFIG_YUV4MPEGPIPE_DEMUXER 0 ++%define CONFIG_IMAGE_BMP_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_CRI_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_DDS_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_DPX_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_EXR_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_GEM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_GIF_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_J2K_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PAM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PBM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PCX_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PGM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PGX_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PHOTOCD_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PNG_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PPM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_PSD_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_SVG_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_XBM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_XPM_PIPE_DEMUXER 0 ++%define CONFIG_IMAGE_XWD_PIPE_DEMUXER 0 ++%define CONFIG_LIBGME_DEMUXER 0 ++%define CONFIG_LIBMODPLUG_DEMUXER 0 ++%define CONFIG_LIBOPENMPT_DEMUXER 0 ++%define CONFIG_VAPOURSYNTH_DEMUXER 0 ++%define CONFIG_A64_MUXER 0 ++%define CONFIG_AC3_MUXER 0 ++%define CONFIG_ADTS_MUXER 0 ++%define CONFIG_ADX_MUXER 0 ++%define CONFIG_AIFF_MUXER 0 ++%define CONFIG_ALP_MUXER 0 ++%define CONFIG_AMR_MUXER 0 ++%define CONFIG_AMV_MUXER 0 ++%define CONFIG_APM_MUXER 0 ++%define CONFIG_APNG_MUXER 0 ++%define CONFIG_APTX_MUXER 0 ++%define CONFIG_APTX_HD_MUXER 0 ++%define CONFIG_ARGO_ASF_MUXER 0 ++%define CONFIG_ARGO_CVG_MUXER 0 ++%define CONFIG_ASF_MUXER 0 ++%define CONFIG_ASS_MUXER 0 ++%define CONFIG_AST_MUXER 0 ++%define CONFIG_ASF_STREAM_MUXER 0 ++%define CONFIG_AU_MUXER 0 ++%define CONFIG_AVI_MUXER 0 ++%define CONFIG_AVM2_MUXER 0 ++%define CONFIG_AVS2_MUXER 0 ++%define CONFIG_AVS3_MUXER 0 ++%define CONFIG_BIT_MUXER 0 ++%define CONFIG_CAF_MUXER 0 ++%define CONFIG_CAVSVIDEO_MUXER 0 ++%define CONFIG_CODEC2_MUXER 0 ++%define CONFIG_CODEC2RAW_MUXER 0 ++%define CONFIG_CRC_MUXER 0 ++%define CONFIG_DASH_MUXER 0 ++%define CONFIG_DATA_MUXER 0 ++%define CONFIG_DAUD_MUXER 0 ++%define CONFIG_DIRAC_MUXER 0 ++%define CONFIG_DNXHD_MUXER 0 ++%define CONFIG_DTS_MUXER 0 ++%define CONFIG_DV_MUXER 0 ++%define CONFIG_EAC3_MUXER 0 ++%define CONFIG_F4V_MUXER 0 ++%define CONFIG_FFMETADATA_MUXER 0 ++%define CONFIG_FIFO_MUXER 0 ++%define CONFIG_FIFO_TEST_MUXER 0 ++%define CONFIG_FILMSTRIP_MUXER 0 ++%define CONFIG_FITS_MUXER 0 ++%define CONFIG_FLAC_MUXER 0 ++%define CONFIG_FLV_MUXER 0 ++%define CONFIG_FRAMECRC_MUXER 0 ++%define CONFIG_FRAMEHASH_MUXER 0 ++%define CONFIG_FRAMEMD5_MUXER 0 ++%define CONFIG_G722_MUXER 0 ++%define CONFIG_G723_1_MUXER 0 ++%define CONFIG_G726_MUXER 0 ++%define CONFIG_G726LE_MUXER 0 ++%define CONFIG_GIF_MUXER 0 ++%define CONFIG_GSM_MUXER 0 ++%define CONFIG_GXF_MUXER 0 ++%define CONFIG_H261_MUXER 0 ++%define CONFIG_H263_MUXER 0 ++%define CONFIG_H264_MUXER 0 ++%define CONFIG_HASH_MUXER 0 ++%define CONFIG_HDS_MUXER 0 ++%define CONFIG_HEVC_MUXER 0 ++%define CONFIG_HLS_MUXER 0 ++%define CONFIG_ICO_MUXER 0 ++%define CONFIG_ILBC_MUXER 0 ++%define CONFIG_IMAGE2_MUXER 0 ++%define CONFIG_IMAGE2PIPE_MUXER 0 ++%define CONFIG_IPOD_MUXER 0 ++%define CONFIG_IRCAM_MUXER 0 ++%define CONFIG_ISMV_MUXER 0 ++%define CONFIG_IVF_MUXER 0 ++%define CONFIG_JACOSUB_MUXER 0 ++%define CONFIG_KVAG_MUXER 0 ++%define CONFIG_LATM_MUXER 0 ++%define CONFIG_LRC_MUXER 0 ++%define CONFIG_M4V_MUXER 0 ++%define CONFIG_MD5_MUXER 0 ++%define CONFIG_MATROSKA_MUXER 0 ++%define CONFIG_MATROSKA_AUDIO_MUXER 0 ++%define CONFIG_MICRODVD_MUXER 0 ++%define CONFIG_MJPEG_MUXER 0 ++%define CONFIG_MLP_MUXER 0 ++%define CONFIG_MMF_MUXER 0 ++%define CONFIG_MOV_MUXER 0 ++%define CONFIG_MP2_MUXER 0 ++%define CONFIG_MP3_MUXER 0 ++%define CONFIG_MP4_MUXER 0 ++%define CONFIG_MPEG1SYSTEM_MUXER 0 ++%define CONFIG_MPEG1VCD_MUXER 0 ++%define CONFIG_MPEG1VIDEO_MUXER 0 ++%define CONFIG_MPEG2DVD_MUXER 0 ++%define CONFIG_MPEG2SVCD_MUXER 0 ++%define CONFIG_MPEG2VIDEO_MUXER 0 ++%define CONFIG_MPEG2VOB_MUXER 0 ++%define CONFIG_MPEGTS_MUXER 0 ++%define CONFIG_MPJPEG_MUXER 0 ++%define CONFIG_MXF_MUXER 0 ++%define CONFIG_MXF_D10_MUXER 0 ++%define CONFIG_MXF_OPATOM_MUXER 0 ++%define CONFIG_NULL_MUXER 0 ++%define CONFIG_NUT_MUXER 0 ++%define CONFIG_OBU_MUXER 0 ++%define CONFIG_OGA_MUXER 0 ++%define CONFIG_OGG_MUXER 0 ++%define CONFIG_OGV_MUXER 0 ++%define CONFIG_OMA_MUXER 0 ++%define CONFIG_OPUS_MUXER 0 ++%define CONFIG_PCM_ALAW_MUXER 0 ++%define CONFIG_PCM_MULAW_MUXER 0 ++%define CONFIG_PCM_VIDC_MUXER 0 ++%define CONFIG_PCM_F64BE_MUXER 0 ++%define CONFIG_PCM_F64LE_MUXER 0 ++%define CONFIG_PCM_F32BE_MUXER 0 ++%define CONFIG_PCM_F32LE_MUXER 0 ++%define CONFIG_PCM_S32BE_MUXER 0 ++%define CONFIG_PCM_S32LE_MUXER 0 ++%define CONFIG_PCM_S24BE_MUXER 0 ++%define CONFIG_PCM_S24LE_MUXER 0 ++%define CONFIG_PCM_S16BE_MUXER 0 ++%define CONFIG_PCM_S16LE_MUXER 0 ++%define CONFIG_PCM_S8_MUXER 0 ++%define CONFIG_PCM_U32BE_MUXER 0 ++%define CONFIG_PCM_U32LE_MUXER 0 ++%define CONFIG_PCM_U24BE_MUXER 0 ++%define CONFIG_PCM_U24LE_MUXER 0 ++%define CONFIG_PCM_U16BE_MUXER 0 ++%define CONFIG_PCM_U16LE_MUXER 0 ++%define CONFIG_PCM_U8_MUXER 0 ++%define CONFIG_PSP_MUXER 0 ++%define CONFIG_RAWVIDEO_MUXER 0 ++%define CONFIG_RM_MUXER 0 ++%define CONFIG_ROQ_MUXER 0 ++%define CONFIG_RSO_MUXER 0 ++%define CONFIG_RTP_MUXER 0 ++%define CONFIG_RTP_MPEGTS_MUXER 0 ++%define CONFIG_RTSP_MUXER 0 ++%define CONFIG_SAP_MUXER 0 ++%define CONFIG_SBC_MUXER 0 ++%define CONFIG_SCC_MUXER 0 ++%define CONFIG_SEGAFILM_MUXER 0 ++%define CONFIG_SEGMENT_MUXER 0 ++%define CONFIG_STREAM_SEGMENT_MUXER 0 ++%define CONFIG_SMJPEG_MUXER 0 ++%define CONFIG_SMOOTHSTREAMING_MUXER 0 ++%define CONFIG_SOX_MUXER 0 ++%define CONFIG_SPX_MUXER 0 ++%define CONFIG_SPDIF_MUXER 0 ++%define CONFIG_SRT_MUXER 0 ++%define CONFIG_STREAMHASH_MUXER 0 ++%define CONFIG_SUP_MUXER 0 ++%define CONFIG_SWF_MUXER 0 ++%define CONFIG_TEE_MUXER 0 ++%define CONFIG_TG2_MUXER 0 ++%define CONFIG_TGP_MUXER 0 ++%define CONFIG_MKVTIMESTAMP_V2_MUXER 0 ++%define CONFIG_TRUEHD_MUXER 0 ++%define CONFIG_TTA_MUXER 0 ++%define CONFIG_TTML_MUXER 0 ++%define CONFIG_UNCODEDFRAMECRC_MUXER 0 ++%define CONFIG_VC1_MUXER 0 ++%define CONFIG_VC1T_MUXER 0 ++%define CONFIG_VOC_MUXER 0 ++%define CONFIG_W64_MUXER 0 ++%define CONFIG_WAV_MUXER 0 ++%define CONFIG_WEBM_MUXER 0 ++%define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 ++%define CONFIG_WEBM_CHUNK_MUXER 0 ++%define CONFIG_WEBP_MUXER 0 ++%define CONFIG_WEBVTT_MUXER 0 ++%define CONFIG_WSAUD_MUXER 0 ++%define CONFIG_WTV_MUXER 0 ++%define CONFIG_WV_MUXER 0 ++%define CONFIG_YUV4MPEGPIPE_MUXER 0 ++%define CONFIG_CHROMAPRINT_MUXER 0 ++%define CONFIG_ASYNC_PROTOCOL 0 ++%define CONFIG_BLURAY_PROTOCOL 0 ++%define CONFIG_CACHE_PROTOCOL 0 ++%define CONFIG_CONCAT_PROTOCOL 0 ++%define CONFIG_CONCATF_PROTOCOL 0 ++%define CONFIG_CRYPTO_PROTOCOL 0 ++%define CONFIG_DATA_PROTOCOL 0 ++%define CONFIG_FFRTMPCRYPT_PROTOCOL 0 ++%define CONFIG_FFRTMPHTTP_PROTOCOL 0 ++%define CONFIG_FILE_PROTOCOL 0 ++%define CONFIG_FTP_PROTOCOL 0 ++%define CONFIG_GOPHER_PROTOCOL 0 ++%define CONFIG_GOPHERS_PROTOCOL 0 ++%define CONFIG_HLS_PROTOCOL 0 ++%define CONFIG_HTTP_PROTOCOL 0 ++%define CONFIG_HTTPPROXY_PROTOCOL 0 ++%define CONFIG_HTTPS_PROTOCOL 0 ++%define CONFIG_ICECAST_PROTOCOL 0 ++%define CONFIG_MMSH_PROTOCOL 0 ++%define CONFIG_MMST_PROTOCOL 0 ++%define CONFIG_MD5_PROTOCOL 0 ++%define CONFIG_PIPE_PROTOCOL 0 ++%define CONFIG_PROMPEG_PROTOCOL 0 ++%define CONFIG_RTMP_PROTOCOL 0 ++%define CONFIG_RTMPE_PROTOCOL 0 ++%define CONFIG_RTMPS_PROTOCOL 0 ++%define CONFIG_RTMPT_PROTOCOL 0 ++%define CONFIG_RTMPTE_PROTOCOL 0 ++%define CONFIG_RTMPTS_PROTOCOL 0 ++%define CONFIG_RTP_PROTOCOL 0 ++%define CONFIG_SCTP_PROTOCOL 0 ++%define CONFIG_SRTP_PROTOCOL 0 ++%define CONFIG_SUBFILE_PROTOCOL 0 ++%define CONFIG_TEE_PROTOCOL 0 ++%define CONFIG_TCP_PROTOCOL 0 ++%define CONFIG_TLS_PROTOCOL 0 ++%define CONFIG_UDP_PROTOCOL 0 ++%define CONFIG_UDPLITE_PROTOCOL 0 ++%define CONFIG_UNIX_PROTOCOL 0 ++%define CONFIG_LIBAMQP_PROTOCOL 0 ++%define CONFIG_LIBRIST_PROTOCOL 0 ++%define CONFIG_LIBRTMP_PROTOCOL 0 ++%define CONFIG_LIBRTMPE_PROTOCOL 0 ++%define CONFIG_LIBRTMPS_PROTOCOL 0 ++%define CONFIG_LIBRTMPT_PROTOCOL 0 ++%define CONFIG_LIBRTMPTE_PROTOCOL 0 ++%define CONFIG_LIBSRT_PROTOCOL 0 ++%define CONFIG_LIBSSH_PROTOCOL 0 ++%define CONFIG_LIBSMBCLIENT_PROTOCOL 0 ++%define CONFIG_LIBZMQ_PROTOCOL 0 diff --git a/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_x64_config.h b/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_x64_config.h new file mode 100644 index 000000000000..86ec3cfbe7f5 --- /dev/null +++ b/devel/electron18/files/patch-third__party_ffmpeg_chromium_config_Chrome_openbsd_x64_config.h @@ -0,0 +1,2790 @@ +--- third_party/ffmpeg/chromium/config/Chrome/openbsd/x64/config.h.orig 2022-05-20 04:31:06 UTC ++++ third_party/ffmpeg/chromium/config/Chrome/openbsd/x64/config.h +@@ -0,0 +1,2787 @@ ++/* Automatically generated by configure - do not modify! */ ++#ifndef FFMPEG_CONFIG_H ++#define FFMPEG_CONFIG_H ++/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio,vp9' --extra-cflags=-I/usr/local/google/home/chcunningham/src/chrome/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=nasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */ ++#define FFMPEG_LICENSE "LGPL version 2.1 or later" ++#define CONFIG_THIS_YEAR 2022 ++#define FFMPEG_DATADIR "/usr/local/share/ffmpeg" ++#define AVCONV_DATADIR "/usr/local/share/ffmpeg" ++#define CC_IDENT "OpenBSD clang version 13.0.0" ++#define OS_NAME openbsd ++#define av_restrict restrict ++#define EXTERN_PREFIX "" ++#define EXTERN_ASM ++#define BUILDSUF "" ++#define SLIBSUF ".so" ++#define HAVE_MMX2 HAVE_MMXEXT ++#define SWS_MAX_FILTER_SIZE 256 ++#define ARCH_AARCH64 0 ++#define ARCH_ALPHA 0 ++#define ARCH_ARM 0 ++#define ARCH_AVR32 0 ++#define ARCH_AVR32_AP 0 ++#define ARCH_AVR32_UC 0 ++#define ARCH_BFIN 0 ++#define ARCH_IA64 0 ++#define ARCH_LOONGARCH 0 ++#define ARCH_LOONGARCH32 0 ++#define ARCH_LOONGARCH64 0 ++#define ARCH_M68K 0 ++#define ARCH_MIPS 0 ++#define ARCH_MIPS64 0 ++#define ARCH_PARISC 0 ++#define ARCH_PPC 0 ++#define ARCH_PPC64 0 ++#define ARCH_RISCV 0 ++#define ARCH_S390 0 ++#define ARCH_SH4 0 ++#define ARCH_SPARC 0 ++#define ARCH_SPARC64 0 ++#define ARCH_TILEGX 0 ++#define ARCH_TILEPRO 0 ++#define ARCH_TOMI 0 ++#define ARCH_X86 1 ++#define ARCH_X86_32 0 ++#define ARCH_X86_64 1 ++#define HAVE_ARMV5TE 0 ++#define HAVE_ARMV6 0 ++#define HAVE_ARMV6T2 0 ++#define HAVE_ARMV8 0 ++#define HAVE_NEON 0 ++#define HAVE_VFP 0 ++#define HAVE_VFPV3 0 ++#define HAVE_SETEND 0 ++#define HAVE_ALTIVEC 0 ++#define HAVE_DCBZL 0 ++#define HAVE_LDBRX 0 ++#define HAVE_POWER8 0 ++#define HAVE_PPC4XX 0 ++#define HAVE_VSX 0 ++#define HAVE_AESNI 1 ++#define HAVE_AMD3DNOW 1 ++#define HAVE_AMD3DNOWEXT 1 ++#define HAVE_AVX 1 ++#define HAVE_AVX2 1 ++#define HAVE_AVX512 1 ++#define HAVE_FMA3 1 ++#define HAVE_FMA4 1 ++#define HAVE_MMX 1 ++#define HAVE_MMXEXT 1 ++#define HAVE_SSE 1 ++#define HAVE_SSE2 1 ++#define HAVE_SSE3 1 ++#define HAVE_SSE4 1 ++#define HAVE_SSE42 1 ++#define HAVE_SSSE3 1 ++#define HAVE_XOP 1 ++#define HAVE_CPUNOP 0 ++#define HAVE_I686 1 ++#define HAVE_MIPSFPU 0 ++#define HAVE_MIPS32R2 0 ++#define HAVE_MIPS32R5 0 ++#define HAVE_MIPS64R2 0 ++#define HAVE_MIPS32R6 0 ++#define HAVE_MIPS64R6 0 ++#define HAVE_MIPSDSP 0 ++#define HAVE_MIPSDSPR2 0 ++#define HAVE_MSA 0 ++#define HAVE_LOONGSON2 0 ++#define HAVE_LOONGSON3 0 ++#define HAVE_MMI 0 ++#define HAVE_LSX 0 ++#define HAVE_LASX 0 ++#define HAVE_ARMV5TE_EXTERNAL 0 ++#define HAVE_ARMV6_EXTERNAL 0 ++#define HAVE_ARMV6T2_EXTERNAL 0 ++#define HAVE_ARMV8_EXTERNAL 0 ++#define HAVE_NEON_EXTERNAL 0 ++#define HAVE_VFP_EXTERNAL 0 ++#define HAVE_VFPV3_EXTERNAL 0 ++#define HAVE_SETEND_EXTERNAL 0 ++#define HAVE_ALTIVEC_EXTERNAL 0 ++#define HAVE_DCBZL_EXTERNAL 0 ++#define HAVE_LDBRX_EXTERNAL 0 ++#define HAVE_POWER8_EXTERNAL 0 ++#define HAVE_PPC4XX_EXTERNAL 0 ++#define HAVE_VSX_EXTERNAL 0 ++#define HAVE_AESNI_EXTERNAL 1 ++#define HAVE_AMD3DNOW_EXTERNAL 1 ++#define HAVE_AMD3DNOWEXT_EXTERNAL 1 ++#define HAVE_AVX_EXTERNAL 1 ++#define HAVE_AVX2_EXTERNAL 1 ++#define HAVE_AVX512_EXTERNAL 1 ++#define HAVE_FMA3_EXTERNAL 1 ++#define HAVE_FMA4_EXTERNAL 1 ++#define HAVE_MMX_EXTERNAL 1 ++#define HAVE_MMXEXT_EXTERNAL 1 ++#define HAVE_SSE_EXTERNAL 1 ++#define HAVE_SSE2_EXTERNAL 1 ++#define HAVE_SSE3_EXTERNAL 1 ++#define HAVE_SSE4_EXTERNAL 1 ++#define HAVE_SSE42_EXTERNAL 1 ++#define HAVE_SSSE3_EXTERNAL 1 ++#define HAVE_XOP_EXTERNAL 1 ++#define HAVE_CPUNOP_EXTERNAL 0 ++#define HAVE_I686_EXTERNAL 0 ++#define HAVE_MIPSFPU_EXTERNAL 0 ++#define HAVE_MIPS32R2_EXTERNAL 0 ++#define HAVE_MIPS32R5_EXTERNAL 0 ++#define HAVE_MIPS64R2_EXTERNAL 0 ++#define HAVE_MIPS32R6_EXTERNAL 0 ++#define HAVE_MIPS64R6_EXTERNAL 0 ++#define HAVE_MIPSDSP_EXTERNAL 0 ++#define HAVE_MIPSDSPR2_EXTERNAL 0 ++#define HAVE_MSA_EXTERNAL 0 ++#define HAVE_LOONGSON2_EXTERNAL 0 ++#define HAVE_LOONGSON3_EXTERNAL 0 ++#define HAVE_MMI_EXTERNAL 0 ++#define HAVE_LSX_EXTERNAL 0 ++#define HAVE_LASX_EXTERNAL 0 ++#define HAVE_ARMV5TE_INLINE 0 ++#define HAVE_ARMV6_INLINE 0 ++#define HAVE_ARMV6T2_INLINE 0 ++#define HAVE_ARMV8_INLINE 0 ++#define HAVE_NEON_INLINE 0 ++#define HAVE_VFP_INLINE 0 ++#define HAVE_VFPV3_INLINE 0 ++#define HAVE_SETEND_INLINE 0 ++#define HAVE_ALTIVEC_INLINE 0 ++#define HAVE_DCBZL_INLINE 0 ++#define HAVE_LDBRX_INLINE 0 ++#define HAVE_POWER8_INLINE 0 ++#define HAVE_PPC4XX_INLINE 0 ++#define HAVE_VSX_INLINE 0 ++#define HAVE_AESNI_INLINE 1 ++#define HAVE_AMD3DNOW_INLINE 1 ++#define HAVE_AMD3DNOWEXT_INLINE 1 ++#define HAVE_AVX_INLINE 1 ++#define HAVE_AVX2_INLINE 1 ++#define HAVE_AVX512_INLINE 1 ++#define HAVE_FMA3_INLINE 1 ++#define HAVE_FMA4_INLINE 1 ++#define HAVE_MMX_INLINE 1 ++#define HAVE_MMXEXT_INLINE 1 ++#define HAVE_SSE_INLINE 1 ++#define HAVE_SSE2_INLINE 1 ++#define HAVE_SSE3_INLINE 1 ++#define HAVE_SSE4_INLINE 1 ++#define HAVE_SSE42_INLINE 1 ++#define HAVE_SSSE3_INLINE 1 ++#define HAVE_XOP_INLINE 1 ++#define HAVE_CPUNOP_INLINE 0 ++#define HAVE_I686_INLINE 0 ++#define HAVE_MIPSFPU_INLINE 0 ++#define HAVE_MIPS32R2_INLINE 0 ++#define HAVE_MIPS32R5_INLINE 0 ++#define HAVE_MIPS64R2_INLINE 0 ++#define HAVE_MIPS32R6_INLINE 0 ++#define HAVE_MIPS64R6_INLINE 0 ++#define HAVE_MIPSDSP_INLINE 0 ++#define HAVE_MIPSDSPR2_INLINE 0 ++#define HAVE_MSA_INLINE 0 ++#define HAVE_LOONGSON2_INLINE 0 ++#define HAVE_LOONGSON3_INLINE 0 ++#define HAVE_MMI_INLINE 0 ++#define HAVE_LSX_INLINE 0 ++#define HAVE_LASX_INLINE 0 ++#define HAVE_ALIGNED_STACK 1 ++#define HAVE_FAST_64BIT 1 ++#define HAVE_FAST_CLZ 1 ++#define HAVE_FAST_CMOV 1 ++#define HAVE_LOCAL_ALIGNED 1 ++#define HAVE_SIMD_ALIGN_16 1 ++#define HAVE_SIMD_ALIGN_32 1 ++#define HAVE_SIMD_ALIGN_64 1 ++#define HAVE_ATOMIC_CAS_PTR 0 ++#define HAVE_MACHINE_RW_BARRIER 0 ++#define HAVE_MEMORYBARRIER 0 ++#define HAVE_MM_EMPTY 1 ++#define HAVE_RDTSC 0 ++#define HAVE_SEM_TIMEDWAIT 1 ++#define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1 ++#define HAVE_CABS 0 ++#define HAVE_CEXP 0 ++#define HAVE_INLINE_ASM 1 ++#define HAVE_SYMVER 0 ++#define HAVE_X86ASM 1 ++#define HAVE_BIGENDIAN 0 ++#define HAVE_FAST_UNALIGNED 1 ++#define HAVE_ARPA_INET_H 0 ++#define HAVE_ASM_TYPES_H 0 ++#define HAVE_CDIO_PARANOIA_H 0 ++#define HAVE_CDIO_PARANOIA_PARANOIA_H 0 ++#define HAVE_CUDA_H 0 ++#define HAVE_DISPATCH_DISPATCH_H 0 ++#define HAVE_DEV_BKTR_IOCTL_BT848_H 0 ++#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 ++#define HAVE_DEV_IC_BT8XX_H 1 ++#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 ++#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 ++#define HAVE_DIRECT_H 0 ++#define HAVE_DIRENT_H 1 ++#define HAVE_DXGIDEBUG_H 0 ++#define HAVE_DXVA_H 0 ++#define HAVE_ES2_GL_H 0 ++#define HAVE_GSM_H 0 ++#define HAVE_IO_H 0 ++#define HAVE_LINUX_DMA_BUF_H 0 ++#define HAVE_LINUX_PERF_EVENT_H 0 ++#define HAVE_MACHINE_IOCTL_BT848_H 0 ++#define HAVE_MACHINE_IOCTL_METEOR_H 0 ++#define HAVE_MALLOC_H 0 ++#define HAVE_OPENCV2_CORE_CORE_C_H 0 ++#define HAVE_OPENGL_GL3_H 0 ++#define HAVE_POLL_H 1 ++#define HAVE_SYS_PARAM_H 1 ++#define HAVE_SYS_RESOURCE_H 1 ++#define HAVE_SYS_SELECT_H 1 ++#define HAVE_SYS_SOUNDCARD_H 0 ++#define HAVE_SYS_TIME_H 1 ++#define HAVE_SYS_UN_H 1 ++#define HAVE_SYS_VIDEOIO_H 1 ++#define HAVE_TERMIOS_H 1 ++#define HAVE_UDPLITE_H 0 ++#define HAVE_UNISTD_H 1 ++#define HAVE_VALGRIND_VALGRIND_H 0 /* #define HAVE_VALGRIND_VALGRIND_H 0 -- forced to 0. See https://crbug.com/590440 */ ++#define HAVE_WINDOWS_H 0 ++#define HAVE_WINSOCK2_H 0 ++#define HAVE_INTRINSICS_NEON 0 ++#define HAVE_ATANF 1 ++#define HAVE_ATAN2F 1 ++#define HAVE_CBRT 1 ++#define HAVE_CBRTF 1 ++#define HAVE_COPYSIGN 1 ++#define HAVE_COSF 1 ++#define HAVE_ERF 1 ++#define HAVE_EXP2 1 ++#define HAVE_EXP2F 1 ++#define HAVE_EXPF 1 ++#define HAVE_HYPOT 1 ++#define HAVE_ISFINITE 1 ++#define HAVE_ISINF 1 ++#define HAVE_ISNAN 1 ++#define HAVE_LDEXPF 1 ++#define HAVE_LLRINT 1 ++#define HAVE_LLRINTF 1 ++#define HAVE_LOG2 1 ++#define HAVE_LOG2F 1 ++#define HAVE_LOG10F 1 ++#define HAVE_LRINT 1 ++#define HAVE_LRINTF 1 ++#define HAVE_POWF 1 ++#define HAVE_RINT 1 ++#define HAVE_ROUND 1 ++#define HAVE_ROUNDF 1 ++#define HAVE_SINF 1 ++#define HAVE_TRUNC 1 ++#define HAVE_TRUNCF 1 ++#define HAVE_DOS_PATHS 0 ++#define HAVE_LIBC_MSVCRT 0 ++#define HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS 0 ++#define HAVE_SECTION_DATA_REL_RO 1 ++#define HAVE_THREADS 1 ++#define HAVE_UWP 0 ++#define HAVE_WINRT 0 ++#define HAVE_ACCESS 1 ++#define HAVE_ALIGNED_MALLOC 0 ++#define HAVE_ARC4RANDOM 1 ++#define HAVE_CLOCK_GETTIME 1 ++#define HAVE_CLOSESOCKET 0 ++#define HAVE_COMMANDLINETOARGVW 0 ++#define HAVE_FCNTL 1 ++#define HAVE_GETADDRINFO 0 ++#define HAVE_GETHRTIME 0 ++#define HAVE_GETOPT 1 ++#define HAVE_GETMODULEHANDLE 0 ++#define HAVE_GETPROCESSAFFINITYMASK 0 ++#define HAVE_GETPROCESSMEMORYINFO 0 ++#define HAVE_GETPROCESSTIMES 0 ++#define HAVE_GETRUSAGE 1 ++#define HAVE_GETSTDHANDLE 0 ++#define HAVE_GETSYSTEMTIMEASFILETIME 0 ++#define HAVE_GETTIMEOFDAY 1 ++#define HAVE_GLOB 1 ++#define HAVE_GLXGETPROCADDRESS 0 ++#define HAVE_GMTIME_R 1 ++#define HAVE_INET_ATON 0 ++#define HAVE_ISATTY 1 ++#define HAVE_KBHIT 0 ++#define HAVE_LOCALTIME_R 1 ++#define HAVE_LSTAT 1 ++#define HAVE_LZO1X_999_COMPRESS 0 ++#define HAVE_MACH_ABSOLUTE_TIME 0 ++#define HAVE_MAPVIEWOFFILE 0 ++#define HAVE_MEMALIGN 0 ++#define HAVE_MKSTEMP 1 ++#define HAVE_MMAP 1 ++#define HAVE_MPROTECT 1 ++#define HAVE_NANOSLEEP 1 ++#define HAVE_PEEKNAMEDPIPE 0 ++#define HAVE_POSIX_MEMALIGN 1 ++#define HAVE_PTHREAD_CANCEL 1 ++#define HAVE_SCHED_GETAFFINITY 0 ++#define HAVE_SECITEMIMPORT 0 ++#define HAVE_SETCONSOLETEXTATTRIBUTE 0 ++#define HAVE_SETCONSOLECTRLHANDLER 0 ++#define HAVE_SETDLLDIRECTORY 0 ++#define HAVE_SETMODE 0 ++#define HAVE_SETRLIMIT 1 ++#define HAVE_SLEEP 0 ++#define HAVE_STRERROR_R 1 ++#define HAVE_SYSCONF 1 ++#define HAVE_SYSCTL 1 ++#define HAVE_USLEEP 1 ++#define HAVE_UTGETOSTYPEFROMSTRING 0 ++#define HAVE_VIRTUALALLOC 0 ++#define HAVE_WGLGETPROCADDRESS 0 ++#define HAVE_BCRYPT 0 ++#define HAVE_VAAPI_DRM 0 ++#define HAVE_VAAPI_X11 0 ++#define HAVE_VDPAU_X11 0 ++#define HAVE_PTHREADS 1 ++#define HAVE_OS2THREADS 0 ++#define HAVE_W32THREADS 0 ++#define HAVE_AS_ARCH_DIRECTIVE 0 ++#define HAVE_AS_DN_DIRECTIVE 0 ++#define HAVE_AS_FPU_DIRECTIVE 0 ++#define HAVE_AS_FUNC 0 ++#define HAVE_AS_OBJECT_ARCH 0 ++#define HAVE_ASM_MOD_Q 0 ++#define HAVE_BLOCKS_EXTENSION 0 ++#define HAVE_EBP_AVAILABLE 1 ++#define HAVE_EBX_AVAILABLE 1 ++#define HAVE_GNU_AS 0 ++#define HAVE_GNU_WINDRES 0 ++#define HAVE_IBM_ASM 0 ++#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 ++#define HAVE_INLINE_ASM_LABELS 1 ++#define HAVE_INLINE_ASM_NONLOCAL_LABELS 1 ++#define HAVE_PRAGMA_DEPRECATED 1 ++#define HAVE_RSYNC_CONTIMEOUT 1 ++#define HAVE_SYMVER_ASM_LABEL 1 ++#define HAVE_SYMVER_GNU_ASM 1 ++#define HAVE_VFP_ARGS 0 ++#define HAVE_XFORM_ASM 0 ++#define HAVE_XMM_CLOBBERS 1 ++#define HAVE_KCMVIDEOCODECTYPE_HEVC 0 ++#define HAVE_KCMVIDEOCODECTYPE_HEVCWITHALPHA 0 ++#define HAVE_KCMVIDEOCODECTYPE_VP9 0 ++#define HAVE_KCVPIXELFORMATTYPE_420YPCBCR10BIPLANARVIDEORANGE 0 ++#define HAVE_KCVPIXELFORMATTYPE_422YPCBCR8BIPLANARVIDEORANGE 0 ++#define HAVE_KCVPIXELFORMATTYPE_422YPCBCR10BIPLANARVIDEORANGE 0 ++#define HAVE_KCVPIXELFORMATTYPE_422YPCBCR16BIPLANARVIDEORANGE 0 ++#define HAVE_KCVPIXELFORMATTYPE_444YPCBCR8BIPLANARVIDEORANGE 0 ++#define HAVE_KCVPIXELFORMATTYPE_444YPCBCR10BIPLANARVIDEORANGE 0 ++#define HAVE_KCVPIXELFORMATTYPE_444YPCBCR16BIPLANARVIDEORANGE 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_2084_PQ 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2100_HLG 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_LINEAR 0 ++#define HAVE_KCVIMAGEBUFFERYCBCRMATRIX_ITU_R_2020 0 ++#define HAVE_KCVIMAGEBUFFERCOLORPRIMARIES_ITU_R_2020 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2020 0 ++#define HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_428_1 0 ++#define HAVE_SOCKLEN_T 0 ++#define HAVE_STRUCT_ADDRINFO 0 ++#define HAVE_STRUCT_GROUP_SOURCE_REQ 0 ++#define HAVE_STRUCT_IP_MREQ_SOURCE 0 ++#define HAVE_STRUCT_IPV6_MREQ 0 ++#define HAVE_STRUCT_MSGHDR_MSG_FLAGS 0 ++#define HAVE_STRUCT_POLLFD 0 ++#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1 ++#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 ++#define HAVE_STRUCT_SOCKADDR_IN6 0 ++#define HAVE_STRUCT_SOCKADDR_SA_LEN 0 ++#define HAVE_STRUCT_SOCKADDR_STORAGE 0 ++#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 ++#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 1 ++#define HAVE_GZIP 1 ++#define HAVE_LIBDRM_GETFB2 0 ++#define HAVE_MAKEINFO 1 ++#define HAVE_MAKEINFO_HTML 0 ++#define HAVE_OPENCL_D3D11 0 ++#define HAVE_OPENCL_DRM_ARM 0 ++#define HAVE_OPENCL_DRM_BEIGNET 0 ++#define HAVE_OPENCL_DXVA2 0 ++#define HAVE_OPENCL_VAAPI_BEIGNET 0 ++#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 ++#define HAVE_PERL 1 ++#define HAVE_POD2MAN 1 ++#define HAVE_TEXI2HTML 0 ++#define HAVE_XMLLINT 1 ++#define HAVE_ZLIB_GZIP 0 ++#define CONFIG_DOC 0 ++#define CONFIG_HTMLPAGES 0 ++#define CONFIG_MANPAGES 0 ++#define CONFIG_PODPAGES 0 ++#define CONFIG_TXTPAGES 0 ++#define CONFIG_AVIO_LIST_DIR_EXAMPLE 1 ++#define CONFIG_AVIO_READING_EXAMPLE 1 ++#define CONFIG_DECODE_AUDIO_EXAMPLE 1 ++#define CONFIG_DECODE_VIDEO_EXAMPLE 1 ++#define CONFIG_DEMUXING_DECODING_EXAMPLE 1 ++#define CONFIG_ENCODE_AUDIO_EXAMPLE 1 ++#define CONFIG_ENCODE_VIDEO_EXAMPLE 1 ++#define CONFIG_EXTRACT_MVS_EXAMPLE 1 ++#define CONFIG_FILTER_AUDIO_EXAMPLE 0 ++#define CONFIG_FILTERING_AUDIO_EXAMPLE 0 ++#define CONFIG_FILTERING_VIDEO_EXAMPLE 0 ++#define CONFIG_HTTP_MULTICLIENT_EXAMPLE 1 ++#define CONFIG_HW_DECODE_EXAMPLE 1 ++#define CONFIG_METADATA_EXAMPLE 1 ++#define CONFIG_MUXING_EXAMPLE 0 ++#define CONFIG_QSVDEC_EXAMPLE 0 ++#define CONFIG_REMUXING_EXAMPLE 1 ++#define CONFIG_RESAMPLING_AUDIO_EXAMPLE 0 ++#define CONFIG_SCALING_VIDEO_EXAMPLE 0 ++#define CONFIG_TRANSCODE_AAC_EXAMPLE 0 ++#define CONFIG_TRANSCODING_EXAMPLE 0 ++#define CONFIG_VAAPI_ENCODE_EXAMPLE 0 ++#define CONFIG_VAAPI_TRANSCODE_EXAMPLE 0 ++#define CONFIG_AVISYNTH 0 ++#define CONFIG_FREI0R 0 ++#define CONFIG_LIBCDIO 0 ++#define CONFIG_LIBDAVS2 0 ++#define CONFIG_LIBRUBBERBAND 0 ++#define CONFIG_LIBVIDSTAB 0 ++#define CONFIG_LIBX264 0 ++#define CONFIG_LIBX265 0 ++#define CONFIG_LIBXAVS 0 ++#define CONFIG_LIBXAVS2 0 ++#define CONFIG_LIBXVID 0 ++#define CONFIG_DECKLINK 0 ++#define CONFIG_LIBFDK_AAC 0 ++#define CONFIG_LIBTLS 0 ++#define CONFIG_GMP 0 ++#define CONFIG_LIBARIBB24 0 ++#define CONFIG_LIBLENSFUN 0 ++#define CONFIG_LIBOPENCORE_AMRNB 0 ++#define CONFIG_LIBOPENCORE_AMRWB 0 ++#define CONFIG_LIBVO_AMRWBENC 0 ++#define CONFIG_MBEDTLS 0 ++#define CONFIG_RKMPP 0 ++#define CONFIG_LIBSMBCLIENT 0 ++#define CONFIG_CHROMAPRINT 0 ++#define CONFIG_GCRYPT 0 ++#define CONFIG_GNUTLS 0 ++#define CONFIG_JNI 0 ++#define CONFIG_LADSPA 0 ++#define CONFIG_LIBAOM 0 ++#define CONFIG_LIBASS 0 ++#define CONFIG_LIBBLURAY 0 ++#define CONFIG_LIBBS2B 0 ++#define CONFIG_LIBCACA 0 ++#define CONFIG_LIBCELT 0 ++#define CONFIG_LIBCODEC2 0 ++#define CONFIG_LIBDAV1D 0 ++#define CONFIG_LIBDC1394 0 ++#define CONFIG_LIBDRM 0 ++#define CONFIG_LIBFLITE 0 ++#define CONFIG_LIBFONTCONFIG 0 ++#define CONFIG_LIBFREETYPE 0 ++#define CONFIG_LIBFRIBIDI 0 ++#define CONFIG_LIBGLSLANG 0 ++#define CONFIG_LIBGME 0 ++#define CONFIG_LIBGSM 0 ++#define CONFIG_LIBIEC61883 0 ++#define CONFIG_LIBILBC 0 ++#define CONFIG_LIBJACK 0 ++#define CONFIG_LIBKLVANC 0 ++#define CONFIG_LIBKVAZAAR 0 ++#define CONFIG_LIBMODPLUG 0 ++#define CONFIG_LIBMP3LAME 0 ++#define CONFIG_LIBMYSOFA 0 ++#define CONFIG_LIBOPENCV 0 ++#define CONFIG_LIBOPENH264 0 ++#define CONFIG_LIBOPENJPEG 0 ++#define CONFIG_LIBOPENMPT 0 ++#define CONFIG_LIBOPENVINO 0 ++#define CONFIG_LIBOPUS 1 ++#define CONFIG_LIBPLACEBO 0 ++#define CONFIG_LIBPULSE 0 ++#define CONFIG_LIBRABBITMQ 0 ++#define CONFIG_LIBRAV1E 0 ++#define CONFIG_LIBRIST 0 ++#define CONFIG_LIBRSVG 0 ++#define CONFIG_LIBRTMP 0 ++#define CONFIG_LIBSHADERC 0 ++#define CONFIG_LIBSHINE 0 ++#define CONFIG_LIBSMBCLIENT 0 ++#define CONFIG_LIBSNAPPY 0 ++#define CONFIG_LIBSOXR 0 ++#define CONFIG_LIBSPEEX 0 ++#define CONFIG_LIBSRT 0 ++#define CONFIG_LIBSSH 0 ++#define CONFIG_LIBSVTAV1 0 ++#define CONFIG_LIBTENSORFLOW 0 ++#define CONFIG_LIBTESSERACT 0 ++#define CONFIG_LIBTHEORA 0 ++#define CONFIG_LIBTWOLAME 0 ++#define CONFIG_LIBUAVS3D 0 ++#define CONFIG_LIBV4L2 0 ++#define CONFIG_LIBVMAF 0 ++#define CONFIG_LIBVORBIS 0 ++#define CONFIG_LIBVPX 0 ++#define CONFIG_LIBWEBP 0 ++#define CONFIG_LIBXML2 0 ++#define CONFIG_LIBZIMG 0 ++#define CONFIG_LIBZMQ 0 ++#define CONFIG_LIBZVBI 0 ++#define CONFIG_LV2 0 ++#define CONFIG_MEDIACODEC 0 ++#define CONFIG_OPENAL 0 ++#define CONFIG_OPENGL 0 ++#define CONFIG_OPENSSL 0 ++#define CONFIG_POCKETSPHINX 0 ++#define CONFIG_VAPOURSYNTH 0 ++#define CONFIG_ALSA 0 ++#define CONFIG_APPKIT 0 ++#define CONFIG_AVFOUNDATION 0 ++#define CONFIG_BZLIB 0 ++#define CONFIG_COREIMAGE 0 ++#define CONFIG_ICONV 0 ++#define CONFIG_LIBXCB 0 ++#define CONFIG_LIBXCB_SHM 0 ++#define CONFIG_LIBXCB_SHAPE 0 ++#define CONFIG_LIBXCB_XFIXES 0 ++#define CONFIG_LZMA 0 ++#define CONFIG_MEDIAFOUNDATION 0 ++#define CONFIG_METAL 0 ++#define CONFIG_SCHANNEL 0 ++#define CONFIG_SDL2 0 ++#define CONFIG_SECURETRANSPORT 0 ++#define CONFIG_SNDIO 0 ++#define CONFIG_XLIB 0 ++#define CONFIG_ZLIB 0 ++#define CONFIG_CUDA_NVCC 0 ++#define CONFIG_CUDA_SDK 0 ++#define CONFIG_LIBNPP 0 ++#define CONFIG_LIBMFX 0 ++#define CONFIG_MMAL 0 ++#define CONFIG_OMX 0 ++#define CONFIG_OPENCL 0 ++#define CONFIG_AMF 0 ++#define CONFIG_AUDIOTOOLBOX 0 ++#define CONFIG_CRYSTALHD 0 ++#define CONFIG_CUDA 0 ++#define CONFIG_CUDA_LLVM 0 ++#define CONFIG_CUVID 0 ++#define CONFIG_D3D11VA 0 ++#define CONFIG_DXVA2 0 ++#define CONFIG_FFNVCODEC 0 ++#define CONFIG_NVDEC 0 ++#define CONFIG_NVENC 0 ++#define CONFIG_VAAPI 0 ++#define CONFIG_VDPAU 0 ++#define CONFIG_VIDEOTOOLBOX 0 ++#define CONFIG_VULKAN 0 ++#define CONFIG_V4L2_M2M 0 ++#define CONFIG_XVMC 0 ++#define CONFIG_FTRAPV 0 ++#define CONFIG_GRAY 0 ++#define CONFIG_HARDCODED_TABLES 0 ++#define CONFIG_OMX_RPI 0 ++#define CONFIG_RUNTIME_CPUDETECT 1 ++#define CONFIG_SAFE_BITSTREAM_READER 1 ++#define CONFIG_SHARED 0 ++#define CONFIG_SMALL 0 ++#define CONFIG_STATIC 1 ++#define CONFIG_SWSCALE_ALPHA 1 ++#define CONFIG_GPL 0 ++#define CONFIG_NONFREE 0 ++#define CONFIG_VERSION3 0 ++#define CONFIG_AVDEVICE 0 ++#define CONFIG_AVFILTER 0 ++#define CONFIG_SWSCALE 0 ++#define CONFIG_POSTPROC 0 ++#define CONFIG_AVFORMAT 1 ++#define CONFIG_AVCODEC 1 ++#define CONFIG_SWRESAMPLE 0 ++#define CONFIG_AVUTIL 1 ++#define CONFIG_FFPLAY 0 ++#define CONFIG_FFPROBE 0 ++#define CONFIG_FFMPEG 0 ++#define CONFIG_DCT 1 ++#define CONFIG_DWT 0 ++#define CONFIG_ERROR_RESILIENCE 0 ++#define CONFIG_FAAN 0 ++#define CONFIG_FAST_UNALIGNED 1 ++#define CONFIG_FFT 1 ++#define CONFIG_LSP 0 ++#define CONFIG_LZO 0 ++#define CONFIG_MDCT 1 ++#define CONFIG_PIXELUTILS 0 ++#define CONFIG_NETWORK 0 ++#define CONFIG_RDFT 1 ++#define CONFIG_AUTODETECT 0 ++#define CONFIG_FONTCONFIG 0 ++#define CONFIG_LARGE_TESTS 1 ++#define CONFIG_LINUX_PERF 0 ++#define CONFIG_MACOS_KPERF 0 ++#define CONFIG_MEMORY_POISONING 0 ++#define CONFIG_NEON_CLOBBER_TEST 0 ++#define CONFIG_OSSFUZZ 0 ++#define CONFIG_PIC 1 ++#define CONFIG_PTX_COMPRESSION 0 ++#define CONFIG_THUMB 0 ++#define CONFIG_VALGRIND_BACKTRACE 0 ++#define CONFIG_XMM_CLOBBER_TEST 0 ++#define CONFIG_BSFS 0 ++#define CONFIG_DECODERS 1 ++#define CONFIG_ENCODERS 0 ++#define CONFIG_HWACCELS 0 ++#define CONFIG_PARSERS 1 ++#define CONFIG_INDEVS 0 ++#define CONFIG_OUTDEVS 0 ++#define CONFIG_FILTERS 0 ++#define CONFIG_DEMUXERS 1 ++#define CONFIG_MUXERS 0 ++#define CONFIG_PROTOCOLS 0 ++#define CONFIG_AANDCTTABLES 0 ++#define CONFIG_AC3DSP 0 ++#define CONFIG_ADTS_HEADER 1 ++#define CONFIG_ATSC_A53 1 ++#define CONFIG_AUDIO_FRAME_QUEUE 0 ++#define CONFIG_AUDIODSP 0 ++#define CONFIG_BLOCKDSP 0 ++#define CONFIG_BSWAPDSP 0 ++#define CONFIG_CABAC 1 ++#define CONFIG_CBS 0 ++#define CONFIG_CBS_AV1 0 ++#define CONFIG_CBS_H264 0 ++#define CONFIG_CBS_H265 0 ++#define CONFIG_CBS_JPEG 0 ++#define CONFIG_CBS_MPEG2 0 ++#define CONFIG_CBS_VP9 0 ++#define CONFIG_DIRAC_PARSE 1 ++#define CONFIG_DNN 0 ++#define CONFIG_DOVI_RPU 0 ++#define CONFIG_DVPROFILE 0 ++#define CONFIG_EXIF 0 ++#define CONFIG_FAANDCT 0 ++#define CONFIG_FAANIDCT 0 ++#define CONFIG_FDCTDSP 0 ++#define CONFIG_FLACDSP 1 ++#define CONFIG_FMTCONVERT 0 ++#define CONFIG_FRAME_THREAD_ENCODER 0 ++#define CONFIG_G722DSP 0 ++#define CONFIG_GOLOMB 1 ++#define CONFIG_GPLV3 0 ++#define CONFIG_H263DSP 0 ++#define CONFIG_H264CHROMA 1 ++#define CONFIG_H264DSP 1 ++#define CONFIG_H264PARSE 1 ++#define CONFIG_H264PRED 1 ++#define CONFIG_H264QPEL 1 ++#define CONFIG_HEVCPARSE 0 ++#define CONFIG_HPELDSP 1 ++#define CONFIG_HUFFMAN 0 ++#define CONFIG_HUFFYUVDSP 0 ++#define CONFIG_HUFFYUVENCDSP 0 ++#define CONFIG_IDCTDSP 0 ++#define CONFIG_IIRFILTER 0 ++#define CONFIG_MDCT15 1 ++#define CONFIG_INTRAX8 0 ++#define CONFIG_ISO_MEDIA 1 ++#define CONFIG_IVIDSP 0 ++#define CONFIG_JPEGTABLES 0 ++#define CONFIG_LGPLV3 0 ++#define CONFIG_LIBX262 0 ++#define CONFIG_LLAUDDSP 0 ++#define CONFIG_LLVIDDSP 0 ++#define CONFIG_LLVIDENCDSP 0 ++#define CONFIG_LPC 0 ++#define CONFIG_LZF 0 ++#define CONFIG_ME_CMP 0 ++#define CONFIG_MPEG_ER 0 ++#define CONFIG_MPEGAUDIO 1 ++#define CONFIG_MPEGAUDIODSP 1 ++#define CONFIG_MPEGAUDIOHEADER 1 ++#define CONFIG_MPEG4AUDIO 1 ++#define CONFIG_MPEGVIDEO 0 ++#define CONFIG_MPEGVIDEODEC 0 ++#define CONFIG_MPEGVIDEOENC 0 ++#define CONFIG_MSS34DSP 0 ++#define CONFIG_PIXBLOCKDSP 0 ++#define CONFIG_QPELDSP 0 ++#define CONFIG_QSV 0 ++#define CONFIG_QSVDEC 0 ++#define CONFIG_QSVENC 0 ++#define CONFIG_QSVVPP 0 ++#define CONFIG_RANGECODER 0 ++#define CONFIG_RIFFDEC 1 ++#define CONFIG_RIFFENC 0 ++#define CONFIG_RTPDEC 0 ++#define CONFIG_RTPENC_CHAIN 0 ++#define CONFIG_RV34DSP 0 ++#define CONFIG_SCENE_SAD 0 ++#define CONFIG_SINEWIN 1 ++#define CONFIG_SNAPPY 0 ++#define CONFIG_SRTP 0 ++#define CONFIG_STARTCODE 1 ++#define CONFIG_TEXTUREDSP 0 ++#define CONFIG_TEXTUREDSPENC 0 ++#define CONFIG_TPELDSP 0 ++#define CONFIG_VAAPI_1 0 ++#define CONFIG_VAAPI_ENCODE 0 ++#define CONFIG_VC1DSP 0 ++#define CONFIG_VIDEODSP 1 ++#define CONFIG_VP3DSP 1 ++#define CONFIG_VP56DSP 0 ++#define CONFIG_VP8DSP 1 ++#define CONFIG_WMA_FREQS 0 ++#define CONFIG_WMV2DSP 0 ++#define CONFIG_AAC_ADTSTOASC_BSF 0 ++#define CONFIG_AV1_FRAME_MERGE_BSF 0 ++#define CONFIG_AV1_FRAME_SPLIT_BSF 0 ++#define CONFIG_AV1_METADATA_BSF 0 ++#define CONFIG_CHOMP_BSF 0 ++#define CONFIG_DUMP_EXTRADATA_BSF 0 ++#define CONFIG_DCA_CORE_BSF 0 ++#define CONFIG_EAC3_CORE_BSF 0 ++#define CONFIG_EXTRACT_EXTRADATA_BSF 0 ++#define CONFIG_FILTER_UNITS_BSF 0 ++#define CONFIG_H264_METADATA_BSF 0 ++#define CONFIG_H264_MP4TOANNEXB_BSF 0 ++#define CONFIG_H264_REDUNDANT_PPS_BSF 0 ++#define CONFIG_HAPQA_EXTRACT_BSF 0 ++#define CONFIG_HEVC_METADATA_BSF 0 ++#define CONFIG_HEVC_MP4TOANNEXB_BSF 0 ++#define CONFIG_IMX_DUMP_HEADER_BSF 0 ++#define CONFIG_MJPEG2JPEG_BSF 0 ++#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0 ++#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0 ++#define CONFIG_MPEG2_METADATA_BSF 0 ++#define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 0 ++#define CONFIG_MOV2TEXTSUB_BSF 0 ++#define CONFIG_NOISE_BSF 0 ++#define CONFIG_NULL_BSF 0 ++#define CONFIG_OPUS_METADATA_BSF 0 ++#define CONFIG_PCM_RECHUNK_BSF 0 ++#define CONFIG_PRORES_METADATA_BSF 0 ++#define CONFIG_REMOVE_EXTRADATA_BSF 0 ++#define CONFIG_SETTS_BSF 0 ++#define CONFIG_TEXT2MOVSUB_BSF 0 ++#define CONFIG_TRACE_HEADERS_BSF 0 ++#define CONFIG_TRUEHD_CORE_BSF 0 ++#define CONFIG_VP9_METADATA_BSF 0 ++#define CONFIG_VP9_RAW_REORDER_BSF 0 ++#define CONFIG_VP9_SUPERFRAME_BSF 0 ++#define CONFIG_VP9_SUPERFRAME_SPLIT_BSF 0 ++#define CONFIG_AASC_DECODER 0 ++#define CONFIG_AIC_DECODER 0 ++#define CONFIG_ALIAS_PIX_DECODER 0 ++#define CONFIG_AGM_DECODER 0 ++#define CONFIG_AMV_DECODER 0 ++#define CONFIG_ANM_DECODER 0 ++#define CONFIG_ANSI_DECODER 0 ++#define CONFIG_APNG_DECODER 0 ++#define CONFIG_ARBC_DECODER 0 ++#define CONFIG_ARGO_DECODER 0 ++#define CONFIG_ASV1_DECODER 0 ++#define CONFIG_ASV2_DECODER 0 ++#define CONFIG_AURA_DECODER 0 ++#define CONFIG_AURA2_DECODER 0 ++#define CONFIG_AVRP_DECODER 0 ++#define CONFIG_AVRN_DECODER 0 ++#define CONFIG_AVS_DECODER 0 ++#define CONFIG_AVUI_DECODER 0 ++#define CONFIG_AYUV_DECODER 0 ++#define CONFIG_BETHSOFTVID_DECODER 0 ++#define CONFIG_BFI_DECODER 0 ++#define CONFIG_BINK_DECODER 0 ++#define CONFIG_BITPACKED_DECODER 0 ++#define CONFIG_BMP_DECODER 0 ++#define CONFIG_BMV_VIDEO_DECODER 0 ++#define CONFIG_BRENDER_PIX_DECODER 0 ++#define CONFIG_C93_DECODER 0 ++#define CONFIG_CAVS_DECODER 0 ++#define CONFIG_CDGRAPHICS_DECODER 0 ++#define CONFIG_CDTOONS_DECODER 0 ++#define CONFIG_CDXL_DECODER 0 ++#define CONFIG_CFHD_DECODER 0 ++#define CONFIG_CINEPAK_DECODER 0 ++#define CONFIG_CLEARVIDEO_DECODER 0 ++#define CONFIG_CLJR_DECODER 0 ++#define CONFIG_CLLC_DECODER 0 ++#define CONFIG_COMFORTNOISE_DECODER 0 ++#define CONFIG_CPIA_DECODER 0 ++#define CONFIG_CRI_DECODER 0 ++#define CONFIG_CSCD_DECODER 0 ++#define CONFIG_CYUV_DECODER 0 ++#define CONFIG_DDS_DECODER 0 ++#define CONFIG_DFA_DECODER 0 ++#define CONFIG_DIRAC_DECODER 0 ++#define CONFIG_DNXHD_DECODER 0 ++#define CONFIG_DPX_DECODER 0 ++#define CONFIG_DSICINVIDEO_DECODER 0 ++#define CONFIG_DVAUDIO_DECODER 0 ++#define CONFIG_DVVIDEO_DECODER 0 ++#define CONFIG_DXA_DECODER 0 ++#define CONFIG_DXTORY_DECODER 0 ++#define CONFIG_DXV_DECODER 0 ++#define CONFIG_EACMV_DECODER 0 ++#define CONFIG_EAMAD_DECODER 0 ++#define CONFIG_EATGQ_DECODER 0 ++#define CONFIG_EATGV_DECODER 0 ++#define CONFIG_EATQI_DECODER 0 ++#define CONFIG_EIGHTBPS_DECODER 0 ++#define CONFIG_EIGHTSVX_EXP_DECODER 0 ++#define CONFIG_EIGHTSVX_FIB_DECODER 0 ++#define CONFIG_ESCAPE124_DECODER 0 ++#define CONFIG_ESCAPE130_DECODER 0 ++#define CONFIG_EXR_DECODER 0 ++#define CONFIG_FFV1_DECODER 0 ++#define CONFIG_FFVHUFF_DECODER 0 ++#define CONFIG_FIC_DECODER 0 ++#define CONFIG_FITS_DECODER 0 ++#define CONFIG_FLASHSV_DECODER 0 ++#define CONFIG_FLASHSV2_DECODER 0 ++#define CONFIG_FLIC_DECODER 0 ++#define CONFIG_FLV_DECODER 0 ++#define CONFIG_FMVC_DECODER 0 ++#define CONFIG_FOURXM_DECODER 0 ++#define CONFIG_FRAPS_DECODER 0 ++#define CONFIG_FRWU_DECODER 0 ++#define CONFIG_G2M_DECODER 0 ++#define CONFIG_GDV_DECODER 0 ++#define CONFIG_GEM_DECODER 0 ++#define CONFIG_GIF_DECODER 0 ++#define CONFIG_H261_DECODER 0 ++#define CONFIG_H263_DECODER 0 ++#define CONFIG_H263I_DECODER 0 ++#define CONFIG_H263P_DECODER 0 ++#define CONFIG_H263_V4L2M2M_DECODER 0 ++#define CONFIG_H264_DECODER 1 ++#define CONFIG_H264_CRYSTALHD_DECODER 0 ++#define CONFIG_H264_V4L2M2M_DECODER 0 ++#define CONFIG_H264_MEDIACODEC_DECODER 0 ++#define CONFIG_H264_MMAL_DECODER 0 ++#define CONFIG_H264_QSV_DECODER 0 ++#define CONFIG_H264_RKMPP_DECODER 0 ++#define CONFIG_HAP_DECODER 0 ++#define CONFIG_HEVC_DECODER 0 ++#define CONFIG_HEVC_QSV_DECODER 0 ++#define CONFIG_HEVC_RKMPP_DECODER 0 ++#define CONFIG_HEVC_V4L2M2M_DECODER 0 ++#define CONFIG_HNM4_VIDEO_DECODER 0 ++#define CONFIG_HQ_HQA_DECODER 0 ++#define CONFIG_HQX_DECODER 0 ++#define CONFIG_HUFFYUV_DECODER 0 ++#define CONFIG_HYMT_DECODER 0 ++#define CONFIG_IDCIN_DECODER 0 ++#define CONFIG_IFF_ILBM_DECODER 0 ++#define CONFIG_IMM4_DECODER 0 ++#define CONFIG_IMM5_DECODER 0 ++#define CONFIG_INDEO2_DECODER 0 ++#define CONFIG_INDEO3_DECODER 0 ++#define CONFIG_INDEO4_DECODER 0 ++#define CONFIG_INDEO5_DECODER 0 ++#define CONFIG_INTERPLAY_VIDEO_DECODER 0 ++#define CONFIG_IPU_DECODER 0 ++#define CONFIG_JPEG2000_DECODER 0 ++#define CONFIG_JPEGLS_DECODER 0 ++#define CONFIG_JV_DECODER 0 ++#define CONFIG_KGV1_DECODER 0 ++#define CONFIG_KMVC_DECODER 0 ++#define CONFIG_LAGARITH_DECODER 0 ++#define CONFIG_LOCO_DECODER 0 ++#define CONFIG_LSCR_DECODER 0 ++#define CONFIG_M101_DECODER 0 ++#define CONFIG_MAGICYUV_DECODER 0 ++#define CONFIG_MDEC_DECODER 0 ++#define CONFIG_MIMIC_DECODER 0 ++#define CONFIG_MJPEG_DECODER 0 ++#define CONFIG_MJPEGB_DECODER 0 ++#define CONFIG_MMVIDEO_DECODER 0 ++#define CONFIG_MOBICLIP_DECODER 0 ++#define CONFIG_MOTIONPIXELS_DECODER 0 ++#define CONFIG_MPEG1VIDEO_DECODER 0 ++#define CONFIG_MPEG2VIDEO_DECODER 0 ++#define CONFIG_MPEG4_DECODER 0 ++#define CONFIG_MPEG4_CRYSTALHD_DECODER 0 ++#define CONFIG_MPEG4_V4L2M2M_DECODER 0 ++#define CONFIG_MPEG4_MMAL_DECODER 0 ++#define CONFIG_MPEGVIDEO_DECODER 0 ++#define CONFIG_MPEG1_V4L2M2M_DECODER 0 ++#define CONFIG_MPEG2_MMAL_DECODER 0 ++#define CONFIG_MPEG2_CRYSTALHD_DECODER 0 ++#define CONFIG_MPEG2_V4L2M2M_DECODER 0 ++#define CONFIG_MPEG2_QSV_DECODER 0 ++#define CONFIG_MPEG2_MEDIACODEC_DECODER 0 ++#define CONFIG_MSA1_DECODER 0 ++#define CONFIG_MSCC_DECODER 0 ++#define CONFIG_MSMPEG4V1_DECODER 0 ++#define CONFIG_MSMPEG4V2_DECODER 0 ++#define CONFIG_MSMPEG4V3_DECODER 0 ++#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 ++#define CONFIG_MSP2_DECODER 0 ++#define CONFIG_MSRLE_DECODER 0 ++#define CONFIG_MSS1_DECODER 0 ++#define CONFIG_MSS2_DECODER 0 ++#define CONFIG_MSVIDEO1_DECODER 0 ++#define CONFIG_MSZH_DECODER 0 ++#define CONFIG_MTS2_DECODER 0 ++#define CONFIG_MV30_DECODER 0 ++#define CONFIG_MVC1_DECODER 0 ++#define CONFIG_MVC2_DECODER 0 ++#define CONFIG_MVDV_DECODER 0 ++#define CONFIG_MVHA_DECODER 0 ++#define CONFIG_MWSC_DECODER 0 ++#define CONFIG_MXPEG_DECODER 0 ++#define CONFIG_NOTCHLC_DECODER 0 ++#define CONFIG_NUV_DECODER 0 ++#define CONFIG_PAF_VIDEO_DECODER 0 ++#define CONFIG_PAM_DECODER 0 ++#define CONFIG_PBM_DECODER 0 ++#define CONFIG_PCX_DECODER 0 ++#define CONFIG_PFM_DECODER 0 ++#define CONFIG_PGM_DECODER 0 ++#define CONFIG_PGMYUV_DECODER 0 ++#define CONFIG_PGX_DECODER 0 ++#define CONFIG_PHOTOCD_DECODER 0 ++#define CONFIG_PICTOR_DECODER 0 ++#define CONFIG_PIXLET_DECODER 0 ++#define CONFIG_PNG_DECODER 0 ++#define CONFIG_PPM_DECODER 0 ++#define CONFIG_PRORES_DECODER 0 ++#define CONFIG_PROSUMER_DECODER 0 ++#define CONFIG_PSD_DECODER 0 ++#define CONFIG_PTX_DECODER 0 ++#define CONFIG_QDRAW_DECODER 0 ++#define CONFIG_QPEG_DECODER 0 ++#define CONFIG_QTRLE_DECODER 0 ++#define CONFIG_R10K_DECODER 0 ++#define CONFIG_R210_DECODER 0 ++#define CONFIG_RASC_DECODER 0 ++#define CONFIG_RAWVIDEO_DECODER 0 ++#define CONFIG_RL2_DECODER 0 ++#define CONFIG_ROQ_DECODER 0 ++#define CONFIG_RPZA_DECODER 0 ++#define CONFIG_RSCC_DECODER 0 ++#define CONFIG_RV10_DECODER 0 ++#define CONFIG_RV20_DECODER 0 ++#define CONFIG_RV30_DECODER 0 ++#define CONFIG_RV40_DECODER 0 ++#define CONFIG_S302M_DECODER 0 ++#define CONFIG_SANM_DECODER 0 ++#define CONFIG_SCPR_DECODER 0 ++#define CONFIG_SCREENPRESSO_DECODER 0 ++#define CONFIG_SGA_DECODER 0 ++#define CONFIG_SGI_DECODER 0 ++#define CONFIG_SGIRLE_DECODER 0 ++#define CONFIG_SHEERVIDEO_DECODER 0 ++#define CONFIG_SIMBIOSIS_IMX_DECODER 0 ++#define CONFIG_SMACKER_DECODER 0 ++#define CONFIG_SMC_DECODER 0 ++#define CONFIG_SMVJPEG_DECODER 0 ++#define CONFIG_SNOW_DECODER 0 ++#define CONFIG_SP5X_DECODER 0 ++#define CONFIG_SPEEDHQ_DECODER 0 ++#define CONFIG_SPEEX_DECODER 0 ++#define CONFIG_SRGC_DECODER 0 ++#define CONFIG_SUNRAST_DECODER 0 ++#define CONFIG_SVQ1_DECODER 0 ++#define CONFIG_SVQ3_DECODER 0 ++#define CONFIG_TARGA_DECODER 0 ++#define CONFIG_TARGA_Y216_DECODER 0 ++#define CONFIG_TDSC_DECODER 0 ++#define CONFIG_THEORA_DECODER 1 ++#define CONFIG_THP_DECODER 0 ++#define CONFIG_TIERTEXSEQVIDEO_DECODER 0 ++#define CONFIG_TIFF_DECODER 0 ++#define CONFIG_TMV_DECODER 0 ++#define CONFIG_TRUEMOTION1_DECODER 0 ++#define CONFIG_TRUEMOTION2_DECODER 0 ++#define CONFIG_TRUEMOTION2RT_DECODER 0 ++#define CONFIG_TSCC_DECODER 0 ++#define CONFIG_TSCC2_DECODER 0 ++#define CONFIG_TXD_DECODER 0 ++#define CONFIG_ULTI_DECODER 0 ++#define CONFIG_UTVIDEO_DECODER 0 ++#define CONFIG_V210_DECODER 0 ++#define CONFIG_V210X_DECODER 0 ++#define CONFIG_V308_DECODER 0 ++#define CONFIG_V408_DECODER 0 ++#define CONFIG_V410_DECODER 0 ++#define CONFIG_VB_DECODER 0 ++#define CONFIG_VBLE_DECODER 0 ++#define CONFIG_VC1_DECODER 0 ++#define CONFIG_VC1_CRYSTALHD_DECODER 0 ++#define CONFIG_VC1IMAGE_DECODER 0 ++#define CONFIG_VC1_MMAL_DECODER 0 ++#define CONFIG_VC1_QSV_DECODER 0 ++#define CONFIG_VC1_V4L2M2M_DECODER 0 ++#define CONFIG_VCR1_DECODER 0 ++#define CONFIG_VMDVIDEO_DECODER 0 ++#define CONFIG_VMNC_DECODER 0 ++#define CONFIG_VP3_DECODER 1 ++#define CONFIG_VP4_DECODER 0 ++#define CONFIG_VP5_DECODER 0 ++#define CONFIG_VP6_DECODER 0 ++#define CONFIG_VP6A_DECODER 0 ++#define CONFIG_VP6F_DECODER 0 ++#define CONFIG_VP7_DECODER 0 ++#define CONFIG_VP8_DECODER 1 ++#define CONFIG_VP8_RKMPP_DECODER 0 ++#define CONFIG_VP8_V4L2M2M_DECODER 0 ++#define CONFIG_VP9_DECODER 0 ++#define CONFIG_VP9_RKMPP_DECODER 0 ++#define CONFIG_VP9_V4L2M2M_DECODER 0 ++#define CONFIG_VQA_DECODER 0 ++#define CONFIG_WEBP_DECODER 0 ++#define CONFIG_WCMV_DECODER 0 ++#define CONFIG_WRAPPED_AVFRAME_DECODER 0 ++#define CONFIG_WMV1_DECODER 0 ++#define CONFIG_WMV2_DECODER 0 ++#define CONFIG_WMV3_DECODER 0 ++#define CONFIG_WMV3_CRYSTALHD_DECODER 0 ++#define CONFIG_WMV3IMAGE_DECODER 0 ++#define CONFIG_WNV1_DECODER 0 ++#define CONFIG_XAN_WC3_DECODER 0 ++#define CONFIG_XAN_WC4_DECODER 0 ++#define CONFIG_XBM_DECODER 0 ++#define CONFIG_XFACE_DECODER 0 ++#define CONFIG_XL_DECODER 0 ++#define CONFIG_XPM_DECODER 0 ++#define CONFIG_XWD_DECODER 0 ++#define CONFIG_Y41P_DECODER 0 ++#define CONFIG_YLC_DECODER 0 ++#define CONFIG_YOP_DECODER 0 ++#define CONFIG_YUV4_DECODER 0 ++#define CONFIG_ZERO12V_DECODER 0 ++#define CONFIG_ZEROCODEC_DECODER 0 ++#define CONFIG_ZLIB_DECODER 0 ++#define CONFIG_ZMBV_DECODER 0 ++#define CONFIG_AAC_DECODER 1 ++#define CONFIG_AAC_FIXED_DECODER 0 ++#define CONFIG_AAC_LATM_DECODER 0 ++#define CONFIG_AC3_DECODER 0 ++#define CONFIG_AC3_FIXED_DECODER 0 ++#define CONFIG_ACELP_KELVIN_DECODER 0 ++#define CONFIG_ALAC_DECODER 0 ++#define CONFIG_ALS_DECODER 0 ++#define CONFIG_AMRNB_DECODER 0 ++#define CONFIG_AMRWB_DECODER 0 ++#define CONFIG_APE_DECODER 0 ++#define CONFIG_APTX_DECODER 0 ++#define CONFIG_APTX_HD_DECODER 0 ++#define CONFIG_ATRAC1_DECODER 0 ++#define CONFIG_ATRAC3_DECODER 0 ++#define CONFIG_ATRAC3AL_DECODER 0 ++#define CONFIG_ATRAC3P_DECODER 0 ++#define CONFIG_ATRAC3PAL_DECODER 0 ++#define CONFIG_ATRAC9_DECODER 0 ++#define CONFIG_BINKAUDIO_DCT_DECODER 0 ++#define CONFIG_BINKAUDIO_RDFT_DECODER 0 ++#define CONFIG_BMV_AUDIO_DECODER 0 ++#define CONFIG_COOK_DECODER 0 ++#define CONFIG_DCA_DECODER 0 ++#define CONFIG_DOLBY_E_DECODER 0 ++#define CONFIG_DSD_LSBF_DECODER 0 ++#define CONFIG_DSD_MSBF_DECODER 0 ++#define CONFIG_DSD_LSBF_PLANAR_DECODER 0 ++#define CONFIG_DSD_MSBF_PLANAR_DECODER 0 ++#define CONFIG_DSICINAUDIO_DECODER 0 ++#define CONFIG_DSS_SP_DECODER 0 ++#define CONFIG_DST_DECODER 0 ++#define CONFIG_EAC3_DECODER 0 ++#define CONFIG_EVRC_DECODER 0 ++#define CONFIG_FASTAUDIO_DECODER 0 ++#define CONFIG_FFWAVESYNTH_DECODER 0 ++#define CONFIG_FLAC_DECODER 1 ++#define CONFIG_G723_1_DECODER 0 ++#define CONFIG_G729_DECODER 0 ++#define CONFIG_GSM_DECODER 0 ++#define CONFIG_GSM_MS_DECODER 0 ++#define CONFIG_HCA_DECODER 0 ++#define CONFIG_HCOM_DECODER 0 ++#define CONFIG_IAC_DECODER 0 ++#define CONFIG_ILBC_DECODER 0 ++#define CONFIG_IMC_DECODER 0 ++#define CONFIG_INTERPLAY_ACM_DECODER 0 ++#define CONFIG_MACE3_DECODER 0 ++#define CONFIG_MACE6_DECODER 0 ++#define CONFIG_METASOUND_DECODER 0 ++#define CONFIG_MLP_DECODER 0 ++#define CONFIG_MP1_DECODER 0 ++#define CONFIG_MP1FLOAT_DECODER 0 ++#define CONFIG_MP2_DECODER 0 ++#define CONFIG_MP2FLOAT_DECODER 0 ++#define CONFIG_MP3FLOAT_DECODER 0 ++#define CONFIG_MP3_DECODER 1 ++#define CONFIG_MP3ADUFLOAT_DECODER 0 ++#define CONFIG_MP3ADU_DECODER 0 ++#define CONFIG_MP3ON4FLOAT_DECODER 0 ++#define CONFIG_MP3ON4_DECODER 0 ++#define CONFIG_MPC7_DECODER 0 ++#define CONFIG_MPC8_DECODER 0 ++#define CONFIG_MSNSIREN_DECODER 0 ++#define CONFIG_NELLYMOSER_DECODER 0 ++#define CONFIG_ON2AVC_DECODER 0 ++#define CONFIG_OPUS_DECODER 0 ++#define CONFIG_PAF_AUDIO_DECODER 0 ++#define CONFIG_QCELP_DECODER 0 ++#define CONFIG_QDM2_DECODER 0 ++#define CONFIG_QDMC_DECODER 0 ++#define CONFIG_RA_144_DECODER 0 ++#define CONFIG_RA_288_DECODER 0 ++#define CONFIG_RALF_DECODER 0 ++#define CONFIG_SBC_DECODER 0 ++#define CONFIG_SHORTEN_DECODER 0 ++#define CONFIG_SIPR_DECODER 0 ++#define CONFIG_SIREN_DECODER 0 ++#define CONFIG_SMACKAUD_DECODER 0 ++#define CONFIG_SONIC_DECODER 0 ++#define CONFIG_TAK_DECODER 0 ++#define CONFIG_TRUEHD_DECODER 0 ++#define CONFIG_TRUESPEECH_DECODER 0 ++#define CONFIG_TTA_DECODER 0 ++#define CONFIG_TWINVQ_DECODER 0 ++#define CONFIG_VMDAUDIO_DECODER 0 ++#define CONFIG_VORBIS_DECODER 1 ++#define CONFIG_WAVPACK_DECODER 0 ++#define CONFIG_WMALOSSLESS_DECODER 0 ++#define CONFIG_WMAPRO_DECODER 0 ++#define CONFIG_WMAV1_DECODER 0 ++#define CONFIG_WMAV2_DECODER 0 ++#define CONFIG_WMAVOICE_DECODER 0 ++#define CONFIG_WS_SND1_DECODER 0 ++#define CONFIG_XMA1_DECODER 0 ++#define CONFIG_XMA2_DECODER 0 ++#define CONFIG_PCM_ALAW_DECODER 1 ++#define CONFIG_PCM_BLURAY_DECODER 0 ++#define CONFIG_PCM_DVD_DECODER 0 ++#define CONFIG_PCM_F16LE_DECODER 0 ++#define CONFIG_PCM_F24LE_DECODER 0 ++#define CONFIG_PCM_F32BE_DECODER 0 ++#define CONFIG_PCM_F32LE_DECODER 1 ++#define CONFIG_PCM_F64BE_DECODER 0 ++#define CONFIG_PCM_F64LE_DECODER 0 ++#define CONFIG_PCM_LXF_DECODER 0 ++#define CONFIG_PCM_MULAW_DECODER 1 ++#define CONFIG_PCM_S8_DECODER 0 ++#define CONFIG_PCM_S8_PLANAR_DECODER 0 ++#define CONFIG_PCM_S16BE_DECODER 1 ++#define CONFIG_PCM_S16BE_PLANAR_DECODER 0 ++#define CONFIG_PCM_S16LE_DECODER 1 ++#define CONFIG_PCM_S16LE_PLANAR_DECODER 0 ++#define CONFIG_PCM_S24BE_DECODER 1 ++#define CONFIG_PCM_S24DAUD_DECODER 0 ++#define CONFIG_PCM_S24LE_DECODER 1 ++#define CONFIG_PCM_S24LE_PLANAR_DECODER 0 ++#define CONFIG_PCM_S32BE_DECODER 0 ++#define CONFIG_PCM_S32LE_DECODER 1 ++#define CONFIG_PCM_S32LE_PLANAR_DECODER 0 ++#define CONFIG_PCM_S64BE_DECODER 0 ++#define CONFIG_PCM_S64LE_DECODER 0 ++#define CONFIG_PCM_SGA_DECODER 0 ++#define CONFIG_PCM_U8_DECODER 1 ++#define CONFIG_PCM_U16BE_DECODER 0 ++#define CONFIG_PCM_U16LE_DECODER 0 ++#define CONFIG_PCM_U24BE_DECODER 0 ++#define CONFIG_PCM_U24LE_DECODER 0 ++#define CONFIG_PCM_U32BE_DECODER 0 ++#define CONFIG_PCM_U32LE_DECODER 0 ++#define CONFIG_PCM_VIDC_DECODER 0 ++#define CONFIG_DERF_DPCM_DECODER 0 ++#define CONFIG_GREMLIN_DPCM_DECODER 0 ++#define CONFIG_INTERPLAY_DPCM_DECODER 0 ++#define CONFIG_ROQ_DPCM_DECODER 0 ++#define CONFIG_SDX2_DPCM_DECODER 0 ++#define CONFIG_SOL_DPCM_DECODER 0 ++#define CONFIG_XAN_DPCM_DECODER 0 ++#define CONFIG_ADPCM_4XM_DECODER 0 ++#define CONFIG_ADPCM_ADX_DECODER 0 ++#define CONFIG_ADPCM_AFC_DECODER 0 ++#define CONFIG_ADPCM_AGM_DECODER 0 ++#define CONFIG_ADPCM_AICA_DECODER 0 ++#define CONFIG_ADPCM_ARGO_DECODER 0 ++#define CONFIG_ADPCM_CT_DECODER 0 ++#define CONFIG_ADPCM_DTK_DECODER 0 ++#define CONFIG_ADPCM_EA_DECODER 0 ++#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 0 ++#define CONFIG_ADPCM_EA_R1_DECODER 0 ++#define CONFIG_ADPCM_EA_R2_DECODER 0 ++#define CONFIG_ADPCM_EA_R3_DECODER 0 ++#define CONFIG_ADPCM_EA_XAS_DECODER 0 ++#define CONFIG_ADPCM_G722_DECODER 0 ++#define CONFIG_ADPCM_G726_DECODER 0 ++#define CONFIG_ADPCM_G726LE_DECODER 0 ++#define CONFIG_ADPCM_IMA_ACORN_DECODER 0 ++#define CONFIG_ADPCM_IMA_AMV_DECODER 0 ++#define CONFIG_ADPCM_IMA_ALP_DECODER 0 ++#define CONFIG_ADPCM_IMA_APC_DECODER 0 ++#define CONFIG_ADPCM_IMA_APM_DECODER 0 ++#define CONFIG_ADPCM_IMA_CUNNING_DECODER 0 ++#define CONFIG_ADPCM_IMA_DAT4_DECODER 0 ++#define CONFIG_ADPCM_IMA_DK3_DECODER 0 ++#define CONFIG_ADPCM_IMA_DK4_DECODER 0 ++#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 0 ++#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0 ++#define CONFIG_ADPCM_IMA_ISS_DECODER 0 ++#define CONFIG_ADPCM_IMA_MOFLEX_DECODER 0 ++#define CONFIG_ADPCM_IMA_MTF_DECODER 0 ++#define CONFIG_ADPCM_IMA_OKI_DECODER 0 ++#define CONFIG_ADPCM_IMA_QT_DECODER 0 ++#define CONFIG_ADPCM_IMA_RAD_DECODER 0 ++#define CONFIG_ADPCM_IMA_SSI_DECODER 0 ++#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0 ++#define CONFIG_ADPCM_IMA_WAV_DECODER 0 ++#define CONFIG_ADPCM_IMA_WS_DECODER 0 ++#define CONFIG_ADPCM_MS_DECODER 0 ++#define CONFIG_ADPCM_MTAF_DECODER 0 ++#define CONFIG_ADPCM_PSX_DECODER 0 ++#define CONFIG_ADPCM_SBPRO_2_DECODER 0 ++#define CONFIG_ADPCM_SBPRO_3_DECODER 0 ++#define CONFIG_ADPCM_SBPRO_4_DECODER 0 ++#define CONFIG_ADPCM_SWF_DECODER 0 ++#define CONFIG_ADPCM_THP_DECODER 0 ++#define CONFIG_ADPCM_THP_LE_DECODER 0 ++#define CONFIG_ADPCM_VIMA_DECODER 0 ++#define CONFIG_ADPCM_XA_DECODER 0 ++#define CONFIG_ADPCM_YAMAHA_DECODER 0 ++#define CONFIG_ADPCM_ZORK_DECODER 0 ++#define CONFIG_SSA_DECODER 0 ++#define CONFIG_ASS_DECODER 0 ++#define CONFIG_CCAPTION_DECODER 0 ++#define CONFIG_DVBSUB_DECODER 0 ++#define CONFIG_DVDSUB_DECODER 0 ++#define CONFIG_JACOSUB_DECODER 0 ++#define CONFIG_MICRODVD_DECODER 0 ++#define CONFIG_MOVTEXT_DECODER 0 ++#define CONFIG_MPL2_DECODER 0 ++#define CONFIG_PGSSUB_DECODER 0 ++#define CONFIG_PJS_DECODER 0 ++#define CONFIG_REALTEXT_DECODER 0 ++#define CONFIG_SAMI_DECODER 0 ++#define CONFIG_SRT_DECODER 0 ++#define CONFIG_STL_DECODER 0 ++#define CONFIG_SUBRIP_DECODER 0 ++#define CONFIG_SUBVIEWER_DECODER 0 ++#define CONFIG_SUBVIEWER1_DECODER 0 ++#define CONFIG_TEXT_DECODER 0 ++#define CONFIG_VPLAYER_DECODER 0 ++#define CONFIG_WEBVTT_DECODER 0 ++#define CONFIG_XSUB_DECODER 0 ++#define CONFIG_AAC_AT_DECODER 0 ++#define CONFIG_AC3_AT_DECODER 0 ++#define CONFIG_ADPCM_IMA_QT_AT_DECODER 0 ++#define CONFIG_ALAC_AT_DECODER 0 ++#define CONFIG_AMR_NB_AT_DECODER 0 ++#define CONFIG_EAC3_AT_DECODER 0 ++#define CONFIG_GSM_MS_AT_DECODER 0 ++#define CONFIG_ILBC_AT_DECODER 0 ++#define CONFIG_MP1_AT_DECODER 0 ++#define CONFIG_MP2_AT_DECODER 0 ++#define CONFIG_MP3_AT_DECODER 0 ++#define CONFIG_PCM_ALAW_AT_DECODER 0 ++#define CONFIG_PCM_MULAW_AT_DECODER 0 ++#define CONFIG_QDMC_AT_DECODER 0 ++#define CONFIG_QDM2_AT_DECODER 0 ++#define CONFIG_LIBARIBB24_DECODER 0 ++#define CONFIG_LIBCELT_DECODER 0 ++#define CONFIG_LIBCODEC2_DECODER 0 ++#define CONFIG_LIBDAV1D_DECODER 0 ++#define CONFIG_LIBDAVS2_DECODER 0 ++#define CONFIG_LIBFDK_AAC_DECODER 0 ++#define CONFIG_LIBGSM_DECODER 0 ++#define CONFIG_LIBGSM_MS_DECODER 0 ++#define CONFIG_LIBILBC_DECODER 0 ++#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0 ++#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0 ++#define CONFIG_LIBOPENJPEG_DECODER 0 ++#define CONFIG_LIBOPUS_DECODER 1 ++#define CONFIG_LIBRSVG_DECODER 0 ++#define CONFIG_LIBSPEEX_DECODER 0 ++#define CONFIG_LIBUAVS3D_DECODER 0 ++#define CONFIG_LIBVORBIS_DECODER 0 ++#define CONFIG_LIBVPX_VP8_DECODER 0 ++#define CONFIG_LIBVPX_VP9_DECODER 0 ++#define CONFIG_LIBZVBI_TELETEXT_DECODER 0 ++#define CONFIG_BINTEXT_DECODER 0 ++#define CONFIG_XBIN_DECODER 0 ++#define CONFIG_IDF_DECODER 0 ++#define CONFIG_LIBAOM_AV1_DECODER 0 ++#define CONFIG_AV1_DECODER 0 ++#define CONFIG_AV1_CUVID_DECODER 0 ++#define CONFIG_AV1_QSV_DECODER 0 ++#define CONFIG_LIBOPENH264_DECODER 0 ++#define CONFIG_H264_CUVID_DECODER 0 ++#define CONFIG_HEVC_CUVID_DECODER 0 ++#define CONFIG_HEVC_MEDIACODEC_DECODER 0 ++#define CONFIG_MJPEG_CUVID_DECODER 0 ++#define CONFIG_MJPEG_QSV_DECODER 0 ++#define CONFIG_MPEG1_CUVID_DECODER 0 ++#define CONFIG_MPEG2_CUVID_DECODER 0 ++#define CONFIG_MPEG4_CUVID_DECODER 0 ++#define CONFIG_MPEG4_MEDIACODEC_DECODER 0 ++#define CONFIG_VC1_CUVID_DECODER 0 ++#define CONFIG_VP8_CUVID_DECODER 0 ++#define CONFIG_VP8_MEDIACODEC_DECODER 0 ++#define CONFIG_VP8_QSV_DECODER 0 ++#define CONFIG_VP9_CUVID_DECODER 0 ++#define CONFIG_VP9_MEDIACODEC_DECODER 0 ++#define CONFIG_VP9_QSV_DECODER 0 ++#define CONFIG_A64MULTI_ENCODER 0 ++#define CONFIG_A64MULTI5_ENCODER 0 ++#define CONFIG_ALIAS_PIX_ENCODER 0 ++#define CONFIG_AMV_ENCODER 0 ++#define CONFIG_APNG_ENCODER 0 ++#define CONFIG_ASV1_ENCODER 0 ++#define CONFIG_ASV2_ENCODER 0 ++#define CONFIG_AVRP_ENCODER 0 ++#define CONFIG_AVUI_ENCODER 0 ++#define CONFIG_AYUV_ENCODER 0 ++#define CONFIG_BITPACKED_ENCODER 0 ++#define CONFIG_BMP_ENCODER 0 ++#define CONFIG_CFHD_ENCODER 0 ++#define CONFIG_CINEPAK_ENCODER 0 ++#define CONFIG_CLJR_ENCODER 0 ++#define CONFIG_COMFORTNOISE_ENCODER 0 ++#define CONFIG_DNXHD_ENCODER 0 ++#define CONFIG_DPX_ENCODER 0 ++#define CONFIG_DVVIDEO_ENCODER 0 ++#define CONFIG_EXR_ENCODER 0 ++#define CONFIG_FFV1_ENCODER 0 ++#define CONFIG_FFVHUFF_ENCODER 0 ++#define CONFIG_FITS_ENCODER 0 ++#define CONFIG_FLASHSV_ENCODER 0 ++#define CONFIG_FLASHSV2_ENCODER 0 ++#define CONFIG_FLV_ENCODER 0 ++#define CONFIG_GIF_ENCODER 0 ++#define CONFIG_H261_ENCODER 0 ++#define CONFIG_H263_ENCODER 0 ++#define CONFIG_H263P_ENCODER 0 ++#define CONFIG_HAP_ENCODER 0 ++#define CONFIG_HUFFYUV_ENCODER 0 ++#define CONFIG_JPEG2000_ENCODER 0 ++#define CONFIG_JPEGLS_ENCODER 0 ++#define CONFIG_LJPEG_ENCODER 0 ++#define CONFIG_MAGICYUV_ENCODER 0 ++#define CONFIG_MJPEG_ENCODER 0 ++#define CONFIG_MPEG1VIDEO_ENCODER 0 ++#define CONFIG_MPEG2VIDEO_ENCODER 0 ++#define CONFIG_MPEG4_ENCODER 0 ++#define CONFIG_MSMPEG4V2_ENCODER 0 ++#define CONFIG_MSMPEG4V3_ENCODER 0 ++#define CONFIG_MSVIDEO1_ENCODER 0 ++#define CONFIG_PAM_ENCODER 0 ++#define CONFIG_PBM_ENCODER 0 ++#define CONFIG_PCX_ENCODER 0 ++#define CONFIG_PFM_ENCODER 0 ++#define CONFIG_PGM_ENCODER 0 ++#define CONFIG_PGMYUV_ENCODER 0 ++#define CONFIG_PNG_ENCODER 0 ++#define CONFIG_PPM_ENCODER 0 ++#define CONFIG_PRORES_ENCODER 0 ++#define CONFIG_PRORES_AW_ENCODER 0 ++#define CONFIG_PRORES_KS_ENCODER 0 ++#define CONFIG_QTRLE_ENCODER 0 ++#define CONFIG_R10K_ENCODER 0 ++#define CONFIG_R210_ENCODER 0 ++#define CONFIG_RAWVIDEO_ENCODER 0 ++#define CONFIG_ROQ_ENCODER 0 ++#define CONFIG_RPZA_ENCODER 0 ++#define CONFIG_RV10_ENCODER 0 ++#define CONFIG_RV20_ENCODER 0 ++#define CONFIG_S302M_ENCODER 0 ++#define CONFIG_SGI_ENCODER 0 ++#define CONFIG_SMC_ENCODER 0 ++#define CONFIG_SNOW_ENCODER 0 ++#define CONFIG_SPEEDHQ_ENCODER 0 ++#define CONFIG_SUNRAST_ENCODER 0 ++#define CONFIG_SVQ1_ENCODER 0 ++#define CONFIG_TARGA_ENCODER 0 ++#define CONFIG_TIFF_ENCODER 0 ++#define CONFIG_UTVIDEO_ENCODER 0 ++#define CONFIG_V210_ENCODER 0 ++#define CONFIG_V308_ENCODER 0 ++#define CONFIG_V408_ENCODER 0 ++#define CONFIG_V410_ENCODER 0 ++#define CONFIG_VC2_ENCODER 0 ++#define CONFIG_WRAPPED_AVFRAME_ENCODER 0 ++#define CONFIG_WMV1_ENCODER 0 ++#define CONFIG_WMV2_ENCODER 0 ++#define CONFIG_XBM_ENCODER 0 ++#define CONFIG_XFACE_ENCODER 0 ++#define CONFIG_XWD_ENCODER 0 ++#define CONFIG_Y41P_ENCODER 0 ++#define CONFIG_YUV4_ENCODER 0 ++#define CONFIG_ZLIB_ENCODER 0 ++#define CONFIG_ZMBV_ENCODER 0 ++#define CONFIG_AAC_ENCODER 0 ++#define CONFIG_AC3_ENCODER 0 ++#define CONFIG_AC3_FIXED_ENCODER 0 ++#define CONFIG_ALAC_ENCODER 0 ++#define CONFIG_APTX_ENCODER 0 ++#define CONFIG_APTX_HD_ENCODER 0 ++#define CONFIG_DCA_ENCODER 0 ++#define CONFIG_EAC3_ENCODER 0 ++#define CONFIG_FLAC_ENCODER 0 ++#define CONFIG_G723_1_ENCODER 0 ++#define CONFIG_MLP_ENCODER 0 ++#define CONFIG_MP2_ENCODER 0 ++#define CONFIG_MP2FIXED_ENCODER 0 ++#define CONFIG_NELLYMOSER_ENCODER 0 ++#define CONFIG_OPUS_ENCODER 0 ++#define CONFIG_RA_144_ENCODER 0 ++#define CONFIG_SBC_ENCODER 0 ++#define CONFIG_SONIC_ENCODER 0 ++#define CONFIG_SONIC_LS_ENCODER 0 ++#define CONFIG_TRUEHD_ENCODER 0 ++#define CONFIG_TTA_ENCODER 0 ++#define CONFIG_VORBIS_ENCODER 0 ++#define CONFIG_WAVPACK_ENCODER 0 ++#define CONFIG_WMAV1_ENCODER 0 ++#define CONFIG_WMAV2_ENCODER 0 ++#define CONFIG_PCM_ALAW_ENCODER 0 ++#define CONFIG_PCM_DVD_ENCODER 0 ++#define CONFIG_PCM_F32BE_ENCODER 0 ++#define CONFIG_PCM_F32LE_ENCODER 0 ++#define CONFIG_PCM_F64BE_ENCODER 0 ++#define CONFIG_PCM_F64LE_ENCODER 0 ++#define CONFIG_PCM_MULAW_ENCODER 0 ++#define CONFIG_PCM_S8_ENCODER 0 ++#define CONFIG_PCM_S8_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S16BE_ENCODER 0 ++#define CONFIG_PCM_S16BE_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S16LE_ENCODER 0 ++#define CONFIG_PCM_S16LE_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S24BE_ENCODER 0 ++#define CONFIG_PCM_S24DAUD_ENCODER 0 ++#define CONFIG_PCM_S24LE_ENCODER 0 ++#define CONFIG_PCM_S24LE_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S32BE_ENCODER 0 ++#define CONFIG_PCM_S32LE_ENCODER 0 ++#define CONFIG_PCM_S32LE_PLANAR_ENCODER 0 ++#define CONFIG_PCM_S64BE_ENCODER 0 ++#define CONFIG_PCM_S64LE_ENCODER 0 ++#define CONFIG_PCM_U8_ENCODER 0 ++#define CONFIG_PCM_U16BE_ENCODER 0 ++#define CONFIG_PCM_U16LE_ENCODER 0 ++#define CONFIG_PCM_U24BE_ENCODER 0 ++#define CONFIG_PCM_U24LE_ENCODER 0 ++#define CONFIG_PCM_U32BE_ENCODER 0 ++#define CONFIG_PCM_U32LE_ENCODER 0 ++#define CONFIG_PCM_VIDC_ENCODER 0 ++#define CONFIG_ROQ_DPCM_ENCODER 0 ++#define CONFIG_ADPCM_ADX_ENCODER 0 ++#define CONFIG_ADPCM_ARGO_ENCODER 0 ++#define CONFIG_ADPCM_G722_ENCODER 0 ++#define CONFIG_ADPCM_G726_ENCODER 0 ++#define CONFIG_ADPCM_G726LE_ENCODER 0 ++#define CONFIG_ADPCM_IMA_AMV_ENCODER 0 ++#define CONFIG_ADPCM_IMA_ALP_ENCODER 0 ++#define CONFIG_ADPCM_IMA_APM_ENCODER 0 ++#define CONFIG_ADPCM_IMA_QT_ENCODER 0 ++#define CONFIG_ADPCM_IMA_SSI_ENCODER 0 ++#define CONFIG_ADPCM_IMA_WAV_ENCODER 0 ++#define CONFIG_ADPCM_IMA_WS_ENCODER 0 ++#define CONFIG_ADPCM_MS_ENCODER 0 ++#define CONFIG_ADPCM_SWF_ENCODER 0 ++#define CONFIG_ADPCM_YAMAHA_ENCODER 0 ++#define CONFIG_SSA_ENCODER 0 ++#define CONFIG_ASS_ENCODER 0 ++#define CONFIG_DVBSUB_ENCODER 0 ++#define CONFIG_DVDSUB_ENCODER 0 ++#define CONFIG_MOVTEXT_ENCODER 0 ++#define CONFIG_SRT_ENCODER 0 ++#define CONFIG_SUBRIP_ENCODER 0 ++#define CONFIG_TEXT_ENCODER 0 ++#define CONFIG_TTML_ENCODER 0 ++#define CONFIG_WEBVTT_ENCODER 0 ++#define CONFIG_XSUB_ENCODER 0 ++#define CONFIG_AAC_AT_ENCODER 0 ++#define CONFIG_ALAC_AT_ENCODER 0 ++#define CONFIG_ILBC_AT_ENCODER 0 ++#define CONFIG_PCM_ALAW_AT_ENCODER 0 ++#define CONFIG_PCM_MULAW_AT_ENCODER 0 ++#define CONFIG_LIBAOM_AV1_ENCODER 0 ++#define CONFIG_LIBCODEC2_ENCODER 0 ++#define CONFIG_LIBFDK_AAC_ENCODER 0 ++#define CONFIG_LIBGSM_ENCODER 0 ++#define CONFIG_LIBGSM_MS_ENCODER 0 ++#define CONFIG_LIBILBC_ENCODER 0 ++#define CONFIG_LIBMP3LAME_ENCODER 0 ++#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0 ++#define CONFIG_LIBOPENJPEG_ENCODER 0 ++#define CONFIG_LIBOPUS_ENCODER 0 ++#define CONFIG_LIBRAV1E_ENCODER 0 ++#define CONFIG_LIBSHINE_ENCODER 0 ++#define CONFIG_LIBSPEEX_ENCODER 0 ++#define CONFIG_LIBSVTAV1_ENCODER 0 ++#define CONFIG_LIBTHEORA_ENCODER 0 ++#define CONFIG_LIBTWOLAME_ENCODER 0 ++#define CONFIG_LIBVO_AMRWBENC_ENCODER 0 ++#define CONFIG_LIBVORBIS_ENCODER 0 ++#define CONFIG_LIBVPX_VP8_ENCODER 0 ++#define CONFIG_LIBVPX_VP9_ENCODER 0 ++#define CONFIG_LIBWEBP_ANIM_ENCODER 0 ++#define CONFIG_LIBWEBP_ENCODER 0 ++#define CONFIG_LIBX262_ENCODER 0 ++#define CONFIG_LIBX264_ENCODER 0 ++#define CONFIG_LIBX264RGB_ENCODER 0 ++#define CONFIG_LIBX265_ENCODER 0 ++#define CONFIG_LIBXAVS_ENCODER 0 ++#define CONFIG_LIBXAVS2_ENCODER 0 ++#define CONFIG_LIBXVID_ENCODER 0 ++#define CONFIG_AAC_MF_ENCODER 0 ++#define CONFIG_AC3_MF_ENCODER 0 ++#define CONFIG_H263_V4L2M2M_ENCODER 0 ++#define CONFIG_LIBOPENH264_ENCODER 0 ++#define CONFIG_H264_AMF_ENCODER 0 ++#define CONFIG_H264_MF_ENCODER 0 ++#define CONFIG_H264_NVENC_ENCODER 0 ++#define CONFIG_H264_OMX_ENCODER 0 ++#define CONFIG_H264_QSV_ENCODER 0 ++#define CONFIG_H264_V4L2M2M_ENCODER 0 ++#define CONFIG_H264_VAAPI_ENCODER 0 ++#define CONFIG_H264_VIDEOTOOLBOX_ENCODER 0 ++#define CONFIG_HEVC_AMF_ENCODER 0 ++#define CONFIG_HEVC_MF_ENCODER 0 ++#define CONFIG_HEVC_NVENC_ENCODER 0 ++#define CONFIG_HEVC_QSV_ENCODER 0 ++#define CONFIG_HEVC_V4L2M2M_ENCODER 0 ++#define CONFIG_HEVC_VAAPI_ENCODER 0 ++#define CONFIG_HEVC_VIDEOTOOLBOX_ENCODER 0 ++#define CONFIG_LIBKVAZAAR_ENCODER 0 ++#define CONFIG_MJPEG_QSV_ENCODER 0 ++#define CONFIG_MJPEG_VAAPI_ENCODER 0 ++#define CONFIG_MP3_MF_ENCODER 0 ++#define CONFIG_MPEG2_QSV_ENCODER 0 ++#define CONFIG_MPEG2_VAAPI_ENCODER 0 ++#define CONFIG_MPEG4_OMX_ENCODER 0 ++#define CONFIG_MPEG4_V4L2M2M_ENCODER 0 ++#define CONFIG_PRORES_VIDEOTOOLBOX_ENCODER 0 ++#define CONFIG_VP8_V4L2M2M_ENCODER 0 ++#define CONFIG_VP8_VAAPI_ENCODER 0 ++#define CONFIG_VP9_VAAPI_ENCODER 0 ++#define CONFIG_VP9_QSV_ENCODER 0 ++#define CONFIG_AV1_D3D11VA_HWACCEL 0 ++#define CONFIG_AV1_D3D11VA2_HWACCEL 0 ++#define CONFIG_AV1_DXVA2_HWACCEL 0 ++#define CONFIG_AV1_NVDEC_HWACCEL 0 ++#define CONFIG_AV1_VAAPI_HWACCEL 0 ++#define CONFIG_H263_VAAPI_HWACCEL 0 ++#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_H264_D3D11VA_HWACCEL 0 ++#define CONFIG_H264_D3D11VA2_HWACCEL 0 ++#define CONFIG_H264_DXVA2_HWACCEL 0 ++#define CONFIG_H264_NVDEC_HWACCEL 0 ++#define CONFIG_H264_VAAPI_HWACCEL 0 ++#define CONFIG_H264_VDPAU_HWACCEL 0 ++#define CONFIG_H264_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_HEVC_D3D11VA_HWACCEL 0 ++#define CONFIG_HEVC_D3D11VA2_HWACCEL 0 ++#define CONFIG_HEVC_DXVA2_HWACCEL 0 ++#define CONFIG_HEVC_NVDEC_HWACCEL 0 ++#define CONFIG_HEVC_VAAPI_HWACCEL 0 ++#define CONFIG_HEVC_VDPAU_HWACCEL 0 ++#define CONFIG_HEVC_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_MJPEG_NVDEC_HWACCEL 0 ++#define CONFIG_MJPEG_VAAPI_HWACCEL 0 ++#define CONFIG_MPEG1_NVDEC_HWACCEL 0 ++#define CONFIG_MPEG1_VDPAU_HWACCEL 0 ++#define CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_MPEG1_XVMC_HWACCEL 0 ++#define CONFIG_MPEG2_D3D11VA_HWACCEL 0 ++#define CONFIG_MPEG2_D3D11VA2_HWACCEL 0 ++#define CONFIG_MPEG2_NVDEC_HWACCEL 0 ++#define CONFIG_MPEG2_DXVA2_HWACCEL 0 ++#define CONFIG_MPEG2_VAAPI_HWACCEL 0 ++#define CONFIG_MPEG2_VDPAU_HWACCEL 0 ++#define CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_MPEG2_XVMC_HWACCEL 0 ++#define CONFIG_MPEG4_NVDEC_HWACCEL 0 ++#define CONFIG_MPEG4_VAAPI_HWACCEL 0 ++#define CONFIG_MPEG4_VDPAU_HWACCEL 0 ++#define CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_PRORES_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_VC1_D3D11VA_HWACCEL 0 ++#define CONFIG_VC1_D3D11VA2_HWACCEL 0 ++#define CONFIG_VC1_DXVA2_HWACCEL 0 ++#define CONFIG_VC1_NVDEC_HWACCEL 0 ++#define CONFIG_VC1_VAAPI_HWACCEL 0 ++#define CONFIG_VC1_VDPAU_HWACCEL 0 ++#define CONFIG_VP8_NVDEC_HWACCEL 0 ++#define CONFIG_VP8_VAAPI_HWACCEL 0 ++#define CONFIG_VP9_D3D11VA_HWACCEL 0 ++#define CONFIG_VP9_D3D11VA2_HWACCEL 0 ++#define CONFIG_VP9_DXVA2_HWACCEL 0 ++#define CONFIG_VP9_NVDEC_HWACCEL 0 ++#define CONFIG_VP9_VAAPI_HWACCEL 0 ++#define CONFIG_VP9_VDPAU_HWACCEL 0 ++#define CONFIG_VP9_VIDEOTOOLBOX_HWACCEL 0 ++#define CONFIG_WMV3_D3D11VA_HWACCEL 0 ++#define CONFIG_WMV3_D3D11VA2_HWACCEL 0 ++#define CONFIG_WMV3_DXVA2_HWACCEL 0 ++#define CONFIG_WMV3_NVDEC_HWACCEL 0 ++#define CONFIG_WMV3_VAAPI_HWACCEL 0 ++#define CONFIG_WMV3_VDPAU_HWACCEL 0 ++#define CONFIG_AAC_PARSER 1 ++#define CONFIG_AAC_LATM_PARSER 0 ++#define CONFIG_AC3_PARSER 0 ++#define CONFIG_ADX_PARSER 0 ++#define CONFIG_AMR_PARSER 0 ++#define CONFIG_AV1_PARSER 0 ++#define CONFIG_AVS2_PARSER 0 ++#define CONFIG_AVS3_PARSER 0 ++#define CONFIG_BMP_PARSER 0 ++#define CONFIG_CAVSVIDEO_PARSER 0 ++#define CONFIG_COOK_PARSER 0 ++#define CONFIG_CRI_PARSER 0 ++#define CONFIG_DCA_PARSER 0 ++#define CONFIG_DIRAC_PARSER 0 ++#define CONFIG_DNXHD_PARSER 0 ++#define CONFIG_DOLBY_E_PARSER 0 ++#define CONFIG_DPX_PARSER 0 ++#define CONFIG_DVAUDIO_PARSER 0 ++#define CONFIG_DVBSUB_PARSER 0 ++#define CONFIG_DVDSUB_PARSER 0 ++#define CONFIG_DVD_NAV_PARSER 0 ++#define CONFIG_FLAC_PARSER 1 ++#define CONFIG_G723_1_PARSER 0 ++#define CONFIG_G729_PARSER 0 ++#define CONFIG_GIF_PARSER 0 ++#define CONFIG_GSM_PARSER 0 ++#define CONFIG_H261_PARSER 0 ++#define CONFIG_H263_PARSER 0 ++#define CONFIG_H264_PARSER 1 ++#define CONFIG_HEVC_PARSER 0 ++#define CONFIG_IPU_PARSER 0 ++#define CONFIG_JPEG2000_PARSER 0 ++#define CONFIG_MJPEG_PARSER 0 ++#define CONFIG_MLP_PARSER 0 ++#define CONFIG_MPEG4VIDEO_PARSER 0 ++#define CONFIG_MPEGAUDIO_PARSER 1 ++#define CONFIG_MPEGVIDEO_PARSER 0 ++#define CONFIG_OPUS_PARSER 1 ++#define CONFIG_PNG_PARSER 0 ++#define CONFIG_PNM_PARSER 0 ++#define CONFIG_RV30_PARSER 0 ++#define CONFIG_RV40_PARSER 0 ++#define CONFIG_SBC_PARSER 0 ++#define CONFIG_SIPR_PARSER 0 ++#define CONFIG_TAK_PARSER 0 ++#define CONFIG_VC1_PARSER 0 ++#define CONFIG_VORBIS_PARSER 1 ++#define CONFIG_VP3_PARSER 1 ++#define CONFIG_VP8_PARSER 1 ++#define CONFIG_VP9_PARSER 1 ++#define CONFIG_WEBP_PARSER 0 ++#define CONFIG_XBM_PARSER 0 ++#define CONFIG_XMA_PARSER 0 ++#define CONFIG_ALSA_INDEV 0 ++#define CONFIG_ANDROID_CAMERA_INDEV 0 ++#define CONFIG_AVFOUNDATION_INDEV 0 ++#define CONFIG_BKTR_INDEV 0 ++#define CONFIG_DECKLINK_INDEV 0 ++#define CONFIG_DSHOW_INDEV 0 ++#define CONFIG_FBDEV_INDEV 0 ++#define CONFIG_GDIGRAB_INDEV 0 ++#define CONFIG_IEC61883_INDEV 0 ++#define CONFIG_JACK_INDEV 0 ++#define CONFIG_KMSGRAB_INDEV 0 ++#define CONFIG_LAVFI_INDEV 0 ++#define CONFIG_OPENAL_INDEV 0 ++#define CONFIG_OSS_INDEV 0 ++#define CONFIG_PULSE_INDEV 0 ++#define CONFIG_SNDIO_INDEV 0 ++#define CONFIG_V4L2_INDEV 0 ++#define CONFIG_VFWCAP_INDEV 0 ++#define CONFIG_XCBGRAB_INDEV 0 ++#define CONFIG_LIBCDIO_INDEV 0 ++#define CONFIG_LIBDC1394_INDEV 0 ++#define CONFIG_ALSA_OUTDEV 0 ++#define CONFIG_AUDIOTOOLBOX_OUTDEV 0 ++#define CONFIG_CACA_OUTDEV 0 ++#define CONFIG_DECKLINK_OUTDEV 0 ++#define CONFIG_FBDEV_OUTDEV 0 ++#define CONFIG_OPENGL_OUTDEV 0 ++#define CONFIG_OSS_OUTDEV 0 ++#define CONFIG_PULSE_OUTDEV 0 ++#define CONFIG_SDL2_OUTDEV 0 ++#define CONFIG_SNDIO_OUTDEV 0 ++#define CONFIG_V4L2_OUTDEV 0 ++#define CONFIG_XV_OUTDEV 0 ++#define CONFIG_ABENCH_FILTER 0 ++#define CONFIG_ACOMPRESSOR_FILTER 0 ++#define CONFIG_ACONTRAST_FILTER 0 ++#define CONFIG_ACOPY_FILTER 0 ++#define CONFIG_ACUE_FILTER 0 ++#define CONFIG_ACROSSFADE_FILTER 0 ++#define CONFIG_ACROSSOVER_FILTER 0 ++#define CONFIG_ACRUSHER_FILTER 0 ++#define CONFIG_ADECLICK_FILTER 0 ++#define CONFIG_ADECLIP_FILTER 0 ++#define CONFIG_ADECORRELATE_FILTER 0 ++#define CONFIG_ADELAY_FILTER 0 ++#define CONFIG_ADENORM_FILTER 0 ++#define CONFIG_ADERIVATIVE_FILTER 0 ++#define CONFIG_ADYNAMICEQUALIZER_FILTER 0 ++#define CONFIG_ADYNAMICSMOOTH_FILTER 0 ++#define CONFIG_AECHO_FILTER 0 ++#define CONFIG_AEMPHASIS_FILTER 0 ++#define CONFIG_AEVAL_FILTER 0 ++#define CONFIG_AEXCITER_FILTER 0 ++#define CONFIG_AFADE_FILTER 0 ++#define CONFIG_AFFTDN_FILTER 0 ++#define CONFIG_AFFTFILT_FILTER 0 ++#define CONFIG_AFIR_FILTER 0 ++#define CONFIG_AFORMAT_FILTER 0 ++#define CONFIG_AFREQSHIFT_FILTER 0 ++#define CONFIG_AFWTDN_FILTER 0 ++#define CONFIG_AGATE_FILTER 0 ++#define CONFIG_AIIR_FILTER 0 ++#define CONFIG_AINTEGRAL_FILTER 0 ++#define CONFIG_AINTERLEAVE_FILTER 0 ++#define CONFIG_ALATENCY_FILTER 0 ++#define CONFIG_ALIMITER_FILTER 0 ++#define CONFIG_ALLPASS_FILTER 0 ++#define CONFIG_ALOOP_FILTER 0 ++#define CONFIG_AMERGE_FILTER 0 ++#define CONFIG_AMETADATA_FILTER 0 ++#define CONFIG_AMIX_FILTER 0 ++#define CONFIG_AMULTIPLY_FILTER 0 ++#define CONFIG_ANEQUALIZER_FILTER 0 ++#define CONFIG_ANLMDN_FILTER 0 ++#define CONFIG_ANLMF_FILTER 0 ++#define CONFIG_ANLMS_FILTER 0 ++#define CONFIG_ANULL_FILTER 0 ++#define CONFIG_APAD_FILTER 0 ++#define CONFIG_APERMS_FILTER 0 ++#define CONFIG_APHASER_FILTER 0 ++#define CONFIG_APHASESHIFT_FILTER 0 ++#define CONFIG_APSYCLIP_FILTER 0 ++#define CONFIG_APULSATOR_FILTER 0 ++#define CONFIG_AREALTIME_FILTER 0 ++#define CONFIG_ARESAMPLE_FILTER 0 ++#define CONFIG_AREVERSE_FILTER 0 ++#define CONFIG_ARNNDN_FILTER 0 ++#define CONFIG_ASDR_FILTER 0 ++#define CONFIG_ASEGMENT_FILTER 0 ++#define CONFIG_ASELECT_FILTER 0 ++#define CONFIG_ASENDCMD_FILTER 0 ++#define CONFIG_ASETNSAMPLES_FILTER 0 ++#define CONFIG_ASETPTS_FILTER 0 ++#define CONFIG_ASETRATE_FILTER 0 ++#define CONFIG_ASETTB_FILTER 0 ++#define CONFIG_ASHOWINFO_FILTER 0 ++#define CONFIG_ASIDEDATA_FILTER 0 ++#define CONFIG_ASOFTCLIP_FILTER 0 ++#define CONFIG_ASPECTRALSTATS_FILTER 0 ++#define CONFIG_ASPLIT_FILTER 0 ++#define CONFIG_ASR_FILTER 0 ++#define CONFIG_ASTATS_FILTER 0 ++#define CONFIG_ASTREAMSELECT_FILTER 0 ++#define CONFIG_ASUBBOOST_FILTER 0 ++#define CONFIG_ASUBCUT_FILTER 0 ++#define CONFIG_ASUPERCUT_FILTER 0 ++#define CONFIG_ASUPERPASS_FILTER 0 ++#define CONFIG_ASUPERSTOP_FILTER 0 ++#define CONFIG_ATEMPO_FILTER 0 ++#define CONFIG_ATILT_FILTER 0 ++#define CONFIG_ATRIM_FILTER 0 ++#define CONFIG_AXCORRELATE_FILTER 0 ++#define CONFIG_AZMQ_FILTER 0 ++#define CONFIG_BANDPASS_FILTER 0 ++#define CONFIG_BANDREJECT_FILTER 0 ++#define CONFIG_BASS_FILTER 0 ++#define CONFIG_BIQUAD_FILTER 0 ++#define CONFIG_BS2B_FILTER 0 ++#define CONFIG_CHANNELMAP_FILTER 0 ++#define CONFIG_CHANNELSPLIT_FILTER 0 ++#define CONFIG_CHORUS_FILTER 0 ++#define CONFIG_COMPAND_FILTER 0 ++#define CONFIG_COMPENSATIONDELAY_FILTER 0 ++#define CONFIG_CROSSFEED_FILTER 0 ++#define CONFIG_CRYSTALIZER_FILTER 0 ++#define CONFIG_DCSHIFT_FILTER 0 ++#define CONFIG_DEESSER_FILTER 0 ++#define CONFIG_DRMETER_FILTER 0 ++#define CONFIG_DYNAUDNORM_FILTER 0 ++#define CONFIG_EARWAX_FILTER 0 ++#define CONFIG_EBUR128_FILTER 0 ++#define CONFIG_EQUALIZER_FILTER 0 ++#define CONFIG_EXTRASTEREO_FILTER 0 ++#define CONFIG_FIREQUALIZER_FILTER 0 ++#define CONFIG_FLANGER_FILTER 0 ++#define CONFIG_HAAS_FILTER 0 ++#define CONFIG_HDCD_FILTER 0 ++#define CONFIG_HEADPHONE_FILTER 0 ++#define CONFIG_HIGHPASS_FILTER 0 ++#define CONFIG_HIGHSHELF_FILTER 0 ++#define CONFIG_JOIN_FILTER 0 ++#define CONFIG_LADSPA_FILTER 0 ++#define CONFIG_LOUDNORM_FILTER 0 ++#define CONFIG_LOWPASS_FILTER 0 ++#define CONFIG_LOWSHELF_FILTER 0 ++#define CONFIG_LV2_FILTER 0 ++#define CONFIG_MCOMPAND_FILTER 0 ++#define CONFIG_PAN_FILTER 0 ++#define CONFIG_REPLAYGAIN_FILTER 0 ++#define CONFIG_RUBBERBAND_FILTER 0 ++#define CONFIG_SIDECHAINCOMPRESS_FILTER 0 ++#define CONFIG_SIDECHAINGATE_FILTER 0 ++#define CONFIG_SILENCEDETECT_FILTER 0 ++#define CONFIG_SILENCEREMOVE_FILTER 0 ++#define CONFIG_SOFALIZER_FILTER 0 ++#define CONFIG_SPEECHNORM_FILTER 0 ++#define CONFIG_STEREOTOOLS_FILTER 0 ++#define CONFIG_STEREOWIDEN_FILTER 0 ++#define CONFIG_SUPEREQUALIZER_FILTER 0 ++#define CONFIG_SURROUND_FILTER 0 ++#define CONFIG_TREBLE_FILTER 0 ++#define CONFIG_TREMOLO_FILTER 0 ++#define CONFIG_VIBRATO_FILTER 0 ++#define CONFIG_VOLUME_FILTER 0 ++#define CONFIG_VOLUMEDETECT_FILTER 0 ++#define CONFIG_AEVALSRC_FILTER 0 ++#define CONFIG_AFIRSRC_FILTER 0 ++#define CONFIG_ANOISESRC_FILTER 0 ++#define CONFIG_ANULLSRC_FILTER 0 ++#define CONFIG_FLITE_FILTER 0 ++#define CONFIG_HILBERT_FILTER 0 ++#define CONFIG_SINC_FILTER 0 ++#define CONFIG_SINE_FILTER 0 ++#define CONFIG_ANULLSINK_FILTER 0 ++#define CONFIG_ADDROI_FILTER 0 ++#define CONFIG_ALPHAEXTRACT_FILTER 0 ++#define CONFIG_ALPHAMERGE_FILTER 0 ++#define CONFIG_AMPLIFY_FILTER 0 ++#define CONFIG_ASS_FILTER 0 ++#define CONFIG_ATADENOISE_FILTER 0 ++#define CONFIG_AVGBLUR_FILTER 0 ++#define CONFIG_AVGBLUR_OPENCL_FILTER 0 ++#define CONFIG_AVGBLUR_VULKAN_FILTER 0 ++#define CONFIG_BBOX_FILTER 0 ++#define CONFIG_BENCH_FILTER 0 ++#define CONFIG_BILATERAL_FILTER 0 ++#define CONFIG_BITPLANENOISE_FILTER 0 ++#define CONFIG_BLACKDETECT_FILTER 0 ++#define CONFIG_BLACKFRAME_FILTER 0 ++#define CONFIG_BLEND_FILTER 0 ++#define CONFIG_BLEND_VULKAN_FILTER 0 ++#define CONFIG_BM3D_FILTER 0 ++#define CONFIG_BOXBLUR_FILTER 0 ++#define CONFIG_BOXBLUR_OPENCL_FILTER 0 ++#define CONFIG_BWDIF_FILTER 0 ++#define CONFIG_CAS_FILTER 0 ++#define CONFIG_CHROMABER_VULKAN_FILTER 0 ++#define CONFIG_CHROMAHOLD_FILTER 0 ++#define CONFIG_CHROMAKEY_FILTER 0 ++#define CONFIG_CHROMANR_FILTER 0 ++#define CONFIG_CHROMASHIFT_FILTER 0 ++#define CONFIG_CIESCOPE_FILTER 0 ++#define CONFIG_CODECVIEW_FILTER 0 ++#define CONFIG_COLORBALANCE_FILTER 0 ++#define CONFIG_COLORCHANNELMIXER_FILTER 0 ++#define CONFIG_COLORCONTRAST_FILTER 0 ++#define CONFIG_COLORCORRECT_FILTER 0 ++#define CONFIG_COLORIZE_FILTER 0 ++#define CONFIG_COLORKEY_FILTER 0 ++#define CONFIG_COLORKEY_OPENCL_FILTER 0 ++#define CONFIG_COLORHOLD_FILTER 0 ++#define CONFIG_COLORLEVELS_FILTER 0 ++#define CONFIG_COLORMATRIX_FILTER 0 ++#define CONFIG_COLORSPACE_FILTER 0 ++#define CONFIG_COLORTEMPERATURE_FILTER 0 ++#define CONFIG_CONVOLUTION_FILTER 0 ++#define CONFIG_CONVOLUTION_OPENCL_FILTER 0 ++#define CONFIG_CONVOLVE_FILTER 0 ++#define CONFIG_COPY_FILTER 0 ++#define CONFIG_COREIMAGE_FILTER 0 ++#define CONFIG_COVER_RECT_FILTER 0 ++#define CONFIG_CROP_FILTER 0 ++#define CONFIG_CROPDETECT_FILTER 0 ++#define CONFIG_CUE_FILTER 0 ++#define CONFIG_CURVES_FILTER 0 ++#define CONFIG_DATASCOPE_FILTER 0 ++#define CONFIG_DBLUR_FILTER 0 ++#define CONFIG_DCTDNOIZ_FILTER 0 ++#define CONFIG_DEBAND_FILTER 0 ++#define CONFIG_DEBLOCK_FILTER 0 ++#define CONFIG_DECIMATE_FILTER 0 ++#define CONFIG_DECONVOLVE_FILTER 0 ++#define CONFIG_DEDOT_FILTER 0 ++#define CONFIG_DEFLATE_FILTER 0 ++#define CONFIG_DEFLICKER_FILTER 0 ++#define CONFIG_DEINTERLACE_QSV_FILTER 0 ++#define CONFIG_DEINTERLACE_VAAPI_FILTER 0 ++#define CONFIG_DEJUDDER_FILTER 0 ++#define CONFIG_DELOGO_FILTER 0 ++#define CONFIG_DENOISE_VAAPI_FILTER 0 ++#define CONFIG_DERAIN_FILTER 0 ++#define CONFIG_DESHAKE_FILTER 0 ++#define CONFIG_DESHAKE_OPENCL_FILTER 0 ++#define CONFIG_DESPILL_FILTER 0 ++#define CONFIG_DETELECINE_FILTER 0 ++#define CONFIG_DILATION_FILTER 0 ++#define CONFIG_DILATION_OPENCL_FILTER 0 ++#define CONFIG_DISPLACE_FILTER 0 ++#define CONFIG_DNN_CLASSIFY_FILTER 0 ++#define CONFIG_DNN_DETECT_FILTER 0 ++#define CONFIG_DNN_PROCESSING_FILTER 0 ++#define CONFIG_DOUBLEWEAVE_FILTER 0 ++#define CONFIG_DRAWBOX_FILTER 0 ++#define CONFIG_DRAWGRAPH_FILTER 0 ++#define CONFIG_DRAWGRID_FILTER 0 ++#define CONFIG_DRAWTEXT_FILTER 0 ++#define CONFIG_EDGEDETECT_FILTER 0 ++#define CONFIG_ELBG_FILTER 0 ++#define CONFIG_ENTROPY_FILTER 0 ++#define CONFIG_EPX_FILTER 0 ++#define CONFIG_EQ_FILTER 0 ++#define CONFIG_EROSION_FILTER 0 ++#define CONFIG_EROSION_OPENCL_FILTER 0 ++#define CONFIG_ESTDIF_FILTER 0 ++#define CONFIG_EXPOSURE_FILTER 0 ++#define CONFIG_EXTRACTPLANES_FILTER 0 ++#define CONFIG_FADE_FILTER 0 ++#define CONFIG_FFTDNOIZ_FILTER 0 ++#define CONFIG_FFTFILT_FILTER 0 ++#define CONFIG_FIELD_FILTER 0 ++#define CONFIG_FIELDHINT_FILTER 0 ++#define CONFIG_FIELDMATCH_FILTER 0 ++#define CONFIG_FIELDORDER_FILTER 0 ++#define CONFIG_FILLBORDERS_FILTER 0 ++#define CONFIG_FIND_RECT_FILTER 0 ++#define CONFIG_FLIP_VULKAN_FILTER 0 ++#define CONFIG_FLOODFILL_FILTER 0 ++#define CONFIG_FORMAT_FILTER 0 ++#define CONFIG_FPS_FILTER 0 ++#define CONFIG_FRAMEPACK_FILTER 0 ++#define CONFIG_FRAMERATE_FILTER 0 ++#define CONFIG_FRAMESTEP_FILTER 0 ++#define CONFIG_FREEZEDETECT_FILTER 0 ++#define CONFIG_FREEZEFRAMES_FILTER 0 ++#define CONFIG_FREI0R_FILTER 0 ++#define CONFIG_FSPP_FILTER 0 ++#define CONFIG_GBLUR_FILTER 0 ++#define CONFIG_GBLUR_VULKAN_FILTER 0 ++#define CONFIG_GEQ_FILTER 0 ++#define CONFIG_GRADFUN_FILTER 0 ++#define CONFIG_GRAPHMONITOR_FILTER 0 ++#define CONFIG_GRAYWORLD_FILTER 0 ++#define CONFIG_GREYEDGE_FILTER 0 ++#define CONFIG_GUIDED_FILTER 0 ++#define CONFIG_HALDCLUT_FILTER 0 ++#define CONFIG_HFLIP_FILTER 0 ++#define CONFIG_HFLIP_VULKAN_FILTER 0 ++#define CONFIG_HISTEQ_FILTER 0 ++#define CONFIG_HISTOGRAM_FILTER 0 ++#define CONFIG_HQDN3D_FILTER 0 ++#define CONFIG_HQX_FILTER 0 ++#define CONFIG_HSTACK_FILTER 0 ++#define CONFIG_HSVHOLD_FILTER 0 ++#define CONFIG_HSVKEY_FILTER 0 ++#define CONFIG_HUE_FILTER 0 ++#define CONFIG_HUESATURATION_FILTER 0 ++#define CONFIG_HWDOWNLOAD_FILTER 0 ++#define CONFIG_HWMAP_FILTER 0 ++#define CONFIG_HWUPLOAD_FILTER 0 ++#define CONFIG_HWUPLOAD_CUDA_FILTER 0 ++#define CONFIG_HYSTERESIS_FILTER 0 ++#define CONFIG_IDENTITY_FILTER 0 ++#define CONFIG_IDET_FILTER 0 ++#define CONFIG_IL_FILTER 0 ++#define CONFIG_INFLATE_FILTER 0 ++#define CONFIG_INTERLACE_FILTER 0 ++#define CONFIG_INTERLEAVE_FILTER 0 ++#define CONFIG_KERNDEINT_FILTER 0 ++#define CONFIG_KIRSCH_FILTER 0 ++#define CONFIG_LAGFUN_FILTER 0 ++#define CONFIG_LATENCY_FILTER 0 ++#define CONFIG_LENSCORRECTION_FILTER 0 ++#define CONFIG_LENSFUN_FILTER 0 ++#define CONFIG_LIBPLACEBO_FILTER 0 ++#define CONFIG_LIBVMAF_FILTER 0 ++#define CONFIG_LIMITDIFF_FILTER 0 ++#define CONFIG_LIMITER_FILTER 0 ++#define CONFIG_LOOP_FILTER 0 ++#define CONFIG_LUMAKEY_FILTER 0 ++#define CONFIG_LUT_FILTER 0 ++#define CONFIG_LUT1D_FILTER 0 ++#define CONFIG_LUT2_FILTER 0 ++#define CONFIG_LUT3D_FILTER 0 ++#define CONFIG_LUTRGB_FILTER 0 ++#define CONFIG_LUTYUV_FILTER 0 ++#define CONFIG_MASKEDCLAMP_FILTER 0 ++#define CONFIG_MASKEDMAX_FILTER 0 ++#define CONFIG_MASKEDMERGE_FILTER 0 ++#define CONFIG_MASKEDMIN_FILTER 0 ++#define CONFIG_MASKEDTHRESHOLD_FILTER 0 ++#define CONFIG_MASKFUN_FILTER 0 ++#define CONFIG_MCDEINT_FILTER 0 ++#define CONFIG_MEDIAN_FILTER 0 ++#define CONFIG_MERGEPLANES_FILTER 0 ++#define CONFIG_MESTIMATE_FILTER 0 ++#define CONFIG_METADATA_FILTER 0 ++#define CONFIG_MIDEQUALIZER_FILTER 0 ++#define CONFIG_MINTERPOLATE_FILTER 0 ++#define CONFIG_MIX_FILTER 0 ++#define CONFIG_MONOCHROME_FILTER 0 ++#define CONFIG_MORPHO_FILTER 0 ++#define CONFIG_MPDECIMATE_FILTER 0 ++#define CONFIG_MSAD_FILTER 0 ++#define CONFIG_NEGATE_FILTER 0 ++#define CONFIG_NLMEANS_FILTER 0 ++#define CONFIG_NLMEANS_OPENCL_FILTER 0 ++#define CONFIG_NNEDI_FILTER 0 ++#define CONFIG_NOFORMAT_FILTER 0 ++#define CONFIG_NOISE_FILTER 0 ++#define CONFIG_NORMALIZE_FILTER 0 ++#define CONFIG_NULL_FILTER 0 ++#define CONFIG_OCR_FILTER 0 ++#define CONFIG_OCV_FILTER 0 ++#define CONFIG_OSCILLOSCOPE_FILTER 0 ++#define CONFIG_OVERLAY_FILTER 0 ++#define CONFIG_OVERLAY_OPENCL_FILTER 0 ++#define CONFIG_OVERLAY_QSV_FILTER 0 ++#define CONFIG_OVERLAY_VAAPI_FILTER 0 ++#define CONFIG_OVERLAY_VULKAN_FILTER 0 ++#define CONFIG_OVERLAY_CUDA_FILTER 0 ++#define CONFIG_OWDENOISE_FILTER 0 ++#define CONFIG_PAD_FILTER 0 ++#define CONFIG_PAD_OPENCL_FILTER 0 ++#define CONFIG_PALETTEGEN_FILTER 0 ++#define CONFIG_PALETTEUSE_FILTER 0 ++#define CONFIG_PERMS_FILTER 0 ++#define CONFIG_PERSPECTIVE_FILTER 0 ++#define CONFIG_PHASE_FILTER 0 ++#define CONFIG_PHOTOSENSITIVITY_FILTER 0 ++#define CONFIG_PIXDESCTEST_FILTER 0 ++#define CONFIG_PIXSCOPE_FILTER 0 ++#define CONFIG_PP_FILTER 0 ++#define CONFIG_PP7_FILTER 0 ++#define CONFIG_PREMULTIPLY_FILTER 0 ++#define CONFIG_PREWITT_FILTER 0 ++#define CONFIG_PREWITT_OPENCL_FILTER 0 ++#define CONFIG_PROCAMP_VAAPI_FILTER 0 ++#define CONFIG_PROGRAM_OPENCL_FILTER 0 ++#define CONFIG_PSEUDOCOLOR_FILTER 0 ++#define CONFIG_PSNR_FILTER 0 ++#define CONFIG_PULLUP_FILTER 0 ++#define CONFIG_QP_FILTER 0 ++#define CONFIG_RANDOM_FILTER 0 ++#define CONFIG_READEIA608_FILTER 0 ++#define CONFIG_READVITC_FILTER 0 ++#define CONFIG_REALTIME_FILTER 0 ++#define CONFIG_REMAP_FILTER 0 ++#define CONFIG_REMOVEGRAIN_FILTER 0 ++#define CONFIG_REMOVELOGO_FILTER 0 ++#define CONFIG_REPEATFIELDS_FILTER 0 ++#define CONFIG_REVERSE_FILTER 0 ++#define CONFIG_RGBASHIFT_FILTER 0 ++#define CONFIG_ROBERTS_FILTER 0 ++#define CONFIG_ROBERTS_OPENCL_FILTER 0 ++#define CONFIG_ROTATE_FILTER 0 ++#define CONFIG_SAB_FILTER 0 ++#define CONFIG_SCALE_FILTER 0 ++#define CONFIG_SCALE_CUDA_FILTER 0 ++#define CONFIG_SCALE_NPP_FILTER 0 ++#define CONFIG_SCALE_QSV_FILTER 0 ++#define CONFIG_SCALE_VAAPI_FILTER 0 ++#define CONFIG_SCALE_VULKAN_FILTER 0 ++#define CONFIG_SCALE2REF_FILTER 0 ++#define CONFIG_SCALE2REF_NPP_FILTER 0 ++#define CONFIG_SCDET_FILTER 0 ++#define CONFIG_SCHARR_FILTER 0 ++#define CONFIG_SCROLL_FILTER 0 ++#define CONFIG_SEGMENT_FILTER 0 ++#define CONFIG_SELECT_FILTER 0 ++#define CONFIG_SELECTIVECOLOR_FILTER 0 ++#define CONFIG_SENDCMD_FILTER 0 ++#define CONFIG_SEPARATEFIELDS_FILTER 0 ++#define CONFIG_SETDAR_FILTER 0 ++#define CONFIG_SETFIELD_FILTER 0 ++#define CONFIG_SETPARAMS_FILTER 0 ++#define CONFIG_SETPTS_FILTER 0 ++#define CONFIG_SETRANGE_FILTER 0 ++#define CONFIG_SETSAR_FILTER 0 ++#define CONFIG_SETTB_FILTER 0 ++#define CONFIG_SHARPEN_NPP_FILTER 0 ++#define CONFIG_SHARPNESS_VAAPI_FILTER 0 ++#define CONFIG_SHEAR_FILTER 0 ++#define CONFIG_SHOWINFO_FILTER 0 ++#define CONFIG_SHOWPALETTE_FILTER 0 ++#define CONFIG_SHUFFLEFRAMES_FILTER 0 ++#define CONFIG_SHUFFLEPIXELS_FILTER 0 ++#define CONFIG_SHUFFLEPLANES_FILTER 0 ++#define CONFIG_SIDEDATA_FILTER 0 ++#define CONFIG_SIGNALSTATS_FILTER 0 ++#define CONFIG_SIGNATURE_FILTER 0 ++#define CONFIG_SMARTBLUR_FILTER 0 ++#define CONFIG_SOBEL_FILTER 0 ++#define CONFIG_SOBEL_OPENCL_FILTER 0 ++#define CONFIG_SPLIT_FILTER 0 ++#define CONFIG_SPP_FILTER 0 ++#define CONFIG_SR_FILTER 0 ++#define CONFIG_SSIM_FILTER 0 ++#define CONFIG_STEREO3D_FILTER 0 ++#define CONFIG_STREAMSELECT_FILTER 0 ++#define CONFIG_SUBTITLES_FILTER 0 ++#define CONFIG_SUPER2XSAI_FILTER 0 ++#define CONFIG_SWAPRECT_FILTER 0 ++#define CONFIG_SWAPUV_FILTER 0 ++#define CONFIG_TBLEND_FILTER 0 ++#define CONFIG_TELECINE_FILTER 0 ++#define CONFIG_THISTOGRAM_FILTER 0 ++#define CONFIG_THRESHOLD_FILTER 0 ++#define CONFIG_THUMBNAIL_FILTER 0 ++#define CONFIG_THUMBNAIL_CUDA_FILTER 0 ++#define CONFIG_TILE_FILTER 0 ++#define CONFIG_TINTERLACE_FILTER 0 ++#define CONFIG_TLUT2_FILTER 0 ++#define CONFIG_TMEDIAN_FILTER 0 ++#define CONFIG_TMIDEQUALIZER_FILTER 0 ++#define CONFIG_TMIX_FILTER 0 ++#define CONFIG_TONEMAP_FILTER 0 ++#define CONFIG_TONEMAP_OPENCL_FILTER 0 ++#define CONFIG_TONEMAP_VAAPI_FILTER 0 ++#define CONFIG_TPAD_FILTER 0 ++#define CONFIG_TRANSPOSE_FILTER 0 ++#define CONFIG_TRANSPOSE_NPP_FILTER 0 ++#define CONFIG_TRANSPOSE_OPENCL_FILTER 0 ++#define CONFIG_TRANSPOSE_VAAPI_FILTER 0 ++#define CONFIG_TRANSPOSE_VULKAN_FILTER 0 ++#define CONFIG_TRIM_FILTER 0 ++#define CONFIG_UNPREMULTIPLY_FILTER 0 ++#define CONFIG_UNSHARP_FILTER 0 ++#define CONFIG_UNSHARP_OPENCL_FILTER 0 ++#define CONFIG_UNTILE_FILTER 0 ++#define CONFIG_USPP_FILTER 0 ++#define CONFIG_V360_FILTER 0 ++#define CONFIG_VAGUEDENOISER_FILTER 0 ++#define CONFIG_VARBLUR_FILTER 0 ++#define CONFIG_VECTORSCOPE_FILTER 0 ++#define CONFIG_VFLIP_FILTER 0 ++#define CONFIG_VFLIP_VULKAN_FILTER 0 ++#define CONFIG_VFRDET_FILTER 0 ++#define CONFIG_VIBRANCE_FILTER 0 ++#define CONFIG_VIDSTABDETECT_FILTER 0 ++#define CONFIG_VIDSTABTRANSFORM_FILTER 0 ++#define CONFIG_VIF_FILTER 0 ++#define CONFIG_VIGNETTE_FILTER 0 ++#define CONFIG_VMAFMOTION_FILTER 0 ++#define CONFIG_VPP_QSV_FILTER 0 ++#define CONFIG_VSTACK_FILTER 0 ++#define CONFIG_W3FDIF_FILTER 0 ++#define CONFIG_WAVEFORM_FILTER 0 ++#define CONFIG_WEAVE_FILTER 0 ++#define CONFIG_XBR_FILTER 0 ++#define CONFIG_XCORRELATE_FILTER 0 ++#define CONFIG_XFADE_FILTER 0 ++#define CONFIG_XFADE_OPENCL_FILTER 0 ++#define CONFIG_XMEDIAN_FILTER 0 ++#define CONFIG_XSTACK_FILTER 0 ++#define CONFIG_YADIF_FILTER 0 ++#define CONFIG_YADIF_CUDA_FILTER 0 ++#define CONFIG_YADIF_VIDEOTOOLBOX_FILTER 0 ++#define CONFIG_YAEPBLUR_FILTER 0 ++#define CONFIG_ZMQ_FILTER 0 ++#define CONFIG_ZOOMPAN_FILTER 0 ++#define CONFIG_ZSCALE_FILTER 0 ++#define CONFIG_ALLRGB_FILTER 0 ++#define CONFIG_ALLYUV_FILTER 0 ++#define CONFIG_CELLAUTO_FILTER 0 ++#define CONFIG_COLOR_FILTER 0 ++#define CONFIG_COLORSPECTRUM_FILTER 0 ++#define CONFIG_COREIMAGESRC_FILTER 0 ++#define CONFIG_FREI0R_SRC_FILTER 0 ++#define CONFIG_GRADIENTS_FILTER 0 ++#define CONFIG_HALDCLUTSRC_FILTER 0 ++#define CONFIG_LIFE_FILTER 0 ++#define CONFIG_MANDELBROT_FILTER 0 ++#define CONFIG_MPTESTSRC_FILTER 0 ++#define CONFIG_NULLSRC_FILTER 0 ++#define CONFIG_OPENCLSRC_FILTER 0 ++#define CONFIG_PAL75BARS_FILTER 0 ++#define CONFIG_PAL100BARS_FILTER 0 ++#define CONFIG_RGBTESTSRC_FILTER 0 ++#define CONFIG_SIERPINSKI_FILTER 0 ++#define CONFIG_SMPTEBARS_FILTER 0 ++#define CONFIG_SMPTEHDBARS_FILTER 0 ++#define CONFIG_TESTSRC_FILTER 0 ++#define CONFIG_TESTSRC2_FILTER 0 ++#define CONFIG_YUVTESTSRC_FILTER 0 ++#define CONFIG_NULLSINK_FILTER 0 ++#define CONFIG_ABITSCOPE_FILTER 0 ++#define CONFIG_ADRAWGRAPH_FILTER 0 ++#define CONFIG_AGRAPHMONITOR_FILTER 0 ++#define CONFIG_AHISTOGRAM_FILTER 0 ++#define CONFIG_APHASEMETER_FILTER 0 ++#define CONFIG_AVECTORSCOPE_FILTER 0 ++#define CONFIG_CONCAT_FILTER 0 ++#define CONFIG_SHOWCQT_FILTER 0 ++#define CONFIG_SHOWFREQS_FILTER 0 ++#define CONFIG_SHOWSPATIAL_FILTER 0 ++#define CONFIG_SHOWSPECTRUM_FILTER 0 ++#define CONFIG_SHOWSPECTRUMPIC_FILTER 0 ++#define CONFIG_SHOWVOLUME_FILTER 0 ++#define CONFIG_SHOWWAVES_FILTER 0 ++#define CONFIG_SHOWWAVESPIC_FILTER 0 ++#define CONFIG_SPECTRUMSYNTH_FILTER 0 ++#define CONFIG_AMOVIE_FILTER 0 ++#define CONFIG_MOVIE_FILTER 0 ++#define CONFIG_AFIFO_FILTER 0 ++#define CONFIG_FIFO_FILTER 0 ++#define CONFIG_AA_DEMUXER 0 ++#define CONFIG_AAC_DEMUXER 1 ++#define CONFIG_AAX_DEMUXER 0 ++#define CONFIG_AC3_DEMUXER 0 ++#define CONFIG_ACE_DEMUXER 0 ++#define CONFIG_ACM_DEMUXER 0 ++#define CONFIG_ACT_DEMUXER 0 ++#define CONFIG_ADF_DEMUXER 0 ++#define CONFIG_ADP_DEMUXER 0 ++#define CONFIG_ADS_DEMUXER 0 ++#define CONFIG_ADX_DEMUXER 0 ++#define CONFIG_AEA_DEMUXER 0 ++#define CONFIG_AFC_DEMUXER 0 ++#define CONFIG_AIFF_DEMUXER 0 ++#define CONFIG_AIX_DEMUXER 0 ++#define CONFIG_ALP_DEMUXER 0 ++#define CONFIG_AMR_DEMUXER 0 ++#define CONFIG_AMRNB_DEMUXER 0 ++#define CONFIG_AMRWB_DEMUXER 0 ++#define CONFIG_ANM_DEMUXER 0 ++#define CONFIG_APC_DEMUXER 0 ++#define CONFIG_APE_DEMUXER 0 ++#define CONFIG_APM_DEMUXER 0 ++#define CONFIG_APNG_DEMUXER 0 ++#define CONFIG_APTX_DEMUXER 0 ++#define CONFIG_APTX_HD_DEMUXER 0 ++#define CONFIG_AQTITLE_DEMUXER 0 ++#define CONFIG_ARGO_ASF_DEMUXER 0 ++#define CONFIG_ARGO_BRP_DEMUXER 0 ++#define CONFIG_ARGO_CVG_DEMUXER 0 ++#define CONFIG_ASF_DEMUXER 0 ++#define CONFIG_ASF_O_DEMUXER 0 ++#define CONFIG_ASS_DEMUXER 0 ++#define CONFIG_AST_DEMUXER 0 ++#define CONFIG_AU_DEMUXER 0 ++#define CONFIG_AV1_DEMUXER 0 ++#define CONFIG_AVI_DEMUXER 0 ++#define CONFIG_AVISYNTH_DEMUXER 0 ++#define CONFIG_AVR_DEMUXER 0 ++#define CONFIG_AVS_DEMUXER 0 ++#define CONFIG_AVS2_DEMUXER 0 ++#define CONFIG_AVS3_DEMUXER 0 ++#define CONFIG_BETHSOFTVID_DEMUXER 0 ++#define CONFIG_BFI_DEMUXER 0 ++#define CONFIG_BINTEXT_DEMUXER 0 ++#define CONFIG_BINK_DEMUXER 0 ++#define CONFIG_BINKA_DEMUXER 0 ++#define CONFIG_BIT_DEMUXER 0 ++#define CONFIG_BITPACKED_DEMUXER 0 ++#define CONFIG_BMV_DEMUXER 0 ++#define CONFIG_BFSTM_DEMUXER 0 ++#define CONFIG_BRSTM_DEMUXER 0 ++#define CONFIG_BOA_DEMUXER 0 ++#define CONFIG_C93_DEMUXER 0 ++#define CONFIG_CAF_DEMUXER 0 ++#define CONFIG_CAVSVIDEO_DEMUXER 0 ++#define CONFIG_CDG_DEMUXER 0 ++#define CONFIG_CDXL_DEMUXER 0 ++#define CONFIG_CINE_DEMUXER 0 ++#define CONFIG_CODEC2_DEMUXER 0 ++#define CONFIG_CODEC2RAW_DEMUXER 0 ++#define CONFIG_CONCAT_DEMUXER 0 ++#define CONFIG_DASH_DEMUXER 0 ++#define CONFIG_DATA_DEMUXER 0 ++#define CONFIG_DAUD_DEMUXER 0 ++#define CONFIG_DCSTR_DEMUXER 0 ++#define CONFIG_DERF_DEMUXER 0 ++#define CONFIG_DFA_DEMUXER 0 ++#define CONFIG_DHAV_DEMUXER 0 ++#define CONFIG_DIRAC_DEMUXER 0 ++#define CONFIG_DNXHD_DEMUXER 0 ++#define CONFIG_DSF_DEMUXER 0 ++#define CONFIG_DSICIN_DEMUXER 0 ++#define CONFIG_DSS_DEMUXER 0 ++#define CONFIG_DTS_DEMUXER 0 ++#define CONFIG_DTSHD_DEMUXER 0 ++#define CONFIG_DV_DEMUXER 0 ++#define CONFIG_DVBSUB_DEMUXER 0 ++#define CONFIG_DVBTXT_DEMUXER 0 ++#define CONFIG_DXA_DEMUXER 0 ++#define CONFIG_EA_DEMUXER 0 ++#define CONFIG_EA_CDATA_DEMUXER 0 ++#define CONFIG_EAC3_DEMUXER 0 ++#define CONFIG_EPAF_DEMUXER 0 ++#define CONFIG_FFMETADATA_DEMUXER 0 ++#define CONFIG_FILMSTRIP_DEMUXER 0 ++#define CONFIG_FITS_DEMUXER 0 ++#define CONFIG_FLAC_DEMUXER 1 ++#define CONFIG_FLIC_DEMUXER 0 ++#define CONFIG_FLV_DEMUXER 0 ++#define CONFIG_LIVE_FLV_DEMUXER 0 ++#define CONFIG_FOURXM_DEMUXER 0 ++#define CONFIG_FRM_DEMUXER 0 ++#define CONFIG_FSB_DEMUXER 0 ++#define CONFIG_FWSE_DEMUXER 0 ++#define CONFIG_G722_DEMUXER 0 ++#define CONFIG_G723_1_DEMUXER 0 ++#define CONFIG_G726_DEMUXER 0 ++#define CONFIG_G726LE_DEMUXER 0 ++#define CONFIG_G729_DEMUXER 0 ++#define CONFIG_GDV_DEMUXER 0 ++#define CONFIG_GENH_DEMUXER 0 ++#define CONFIG_GIF_DEMUXER 0 ++#define CONFIG_GSM_DEMUXER 0 ++#define CONFIG_GXF_DEMUXER 0 ++#define CONFIG_H261_DEMUXER 0 ++#define CONFIG_H263_DEMUXER 0 ++#define CONFIG_H264_DEMUXER 0 ++#define CONFIG_HCA_DEMUXER 0 ++#define CONFIG_HCOM_DEMUXER 0 ++#define CONFIG_HEVC_DEMUXER 0 ++#define CONFIG_HLS_DEMUXER 0 ++#define CONFIG_HNM_DEMUXER 0 ++#define CONFIG_ICO_DEMUXER 0 ++#define CONFIG_IDCIN_DEMUXER 0 ++#define CONFIG_IDF_DEMUXER 0 ++#define CONFIG_IFF_DEMUXER 0 ++#define CONFIG_IFV_DEMUXER 0 ++#define CONFIG_ILBC_DEMUXER 0 ++#define CONFIG_IMAGE2_DEMUXER 0 ++#define CONFIG_IMAGE2PIPE_DEMUXER 0 ++#define CONFIG_IMAGE2_ALIAS_PIX_DEMUXER 0 ++#define CONFIG_IMAGE2_BRENDER_PIX_DEMUXER 0 ++#define CONFIG_IMF_DEMUXER 0 ++#define CONFIG_INGENIENT_DEMUXER 0 ++#define CONFIG_IPMOVIE_DEMUXER 0 ++#define CONFIG_IPU_DEMUXER 0 ++#define CONFIG_IRCAM_DEMUXER 0 ++#define CONFIG_ISS_DEMUXER 0 ++#define CONFIG_IV8_DEMUXER 0 ++#define CONFIG_IVF_DEMUXER 0 ++#define CONFIG_IVR_DEMUXER 0 ++#define CONFIG_JACOSUB_DEMUXER 0 ++#define CONFIG_JV_DEMUXER 0 ++#define CONFIG_KUX_DEMUXER 0 ++#define CONFIG_KVAG_DEMUXER 0 ++#define CONFIG_LMLM4_DEMUXER 0 ++#define CONFIG_LOAS_DEMUXER 0 ++#define CONFIG_LUODAT_DEMUXER 0 ++#define CONFIG_LRC_DEMUXER 0 ++#define CONFIG_LVF_DEMUXER 0 ++#define CONFIG_LXF_DEMUXER 0 ++#define CONFIG_M4V_DEMUXER 0 ++#define CONFIG_MCA_DEMUXER 0 ++#define CONFIG_MCC_DEMUXER 0 ++#define CONFIG_MATROSKA_DEMUXER 1 ++#define CONFIG_MGSTS_DEMUXER 0 ++#define CONFIG_MICRODVD_DEMUXER 0 ++#define CONFIG_MJPEG_DEMUXER 0 ++#define CONFIG_MJPEG_2000_DEMUXER 0 ++#define CONFIG_MLP_DEMUXER 0 ++#define CONFIG_MLV_DEMUXER 0 ++#define CONFIG_MM_DEMUXER 0 ++#define CONFIG_MMF_DEMUXER 0 ++#define CONFIG_MODS_DEMUXER 0 ++#define CONFIG_MOFLEX_DEMUXER 0 ++#define CONFIG_MOV_DEMUXER 1 ++#define CONFIG_MP3_DEMUXER 1 ++#define CONFIG_MPC_DEMUXER 0 ++#define CONFIG_MPC8_DEMUXER 0 ++#define CONFIG_MPEGPS_DEMUXER 0 ++#define CONFIG_MPEGTS_DEMUXER 0 ++#define CONFIG_MPEGTSRAW_DEMUXER 0 ++#define CONFIG_MPEGVIDEO_DEMUXER 0 ++#define CONFIG_MPJPEG_DEMUXER 0 ++#define CONFIG_MPL2_DEMUXER 0 ++#define CONFIG_MPSUB_DEMUXER 0 ++#define CONFIG_MSF_DEMUXER 0 ++#define CONFIG_MSNWC_TCP_DEMUXER 0 ++#define CONFIG_MSP_DEMUXER 0 ++#define CONFIG_MTAF_DEMUXER 0 ++#define CONFIG_MTV_DEMUXER 0 ++#define CONFIG_MUSX_DEMUXER 0 ++#define CONFIG_MV_DEMUXER 0 ++#define CONFIG_MVI_DEMUXER 0 ++#define CONFIG_MXF_DEMUXER 0 ++#define CONFIG_MXG_DEMUXER 0 ++#define CONFIG_NC_DEMUXER 0 ++#define CONFIG_NISTSPHERE_DEMUXER 0 ++#define CONFIG_NSP_DEMUXER 0 ++#define CONFIG_NSV_DEMUXER 0 ++#define CONFIG_NUT_DEMUXER 0 ++#define CONFIG_NUV_DEMUXER 0 ++#define CONFIG_OBU_DEMUXER 0 ++#define CONFIG_OGG_DEMUXER 1 ++#define CONFIG_OMA_DEMUXER 0 ++#define CONFIG_PAF_DEMUXER 0 ++#define CONFIG_PCM_ALAW_DEMUXER 0 ++#define CONFIG_PCM_MULAW_DEMUXER 0 ++#define CONFIG_PCM_VIDC_DEMUXER 0 ++#define CONFIG_PCM_F64BE_DEMUXER 0 ++#define CONFIG_PCM_F64LE_DEMUXER 0 ++#define CONFIG_PCM_F32BE_DEMUXER 0 ++#define CONFIG_PCM_F32LE_DEMUXER 0 ++#define CONFIG_PCM_S32BE_DEMUXER 0 ++#define CONFIG_PCM_S32LE_DEMUXER 0 ++#define CONFIG_PCM_S24BE_DEMUXER 0 ++#define CONFIG_PCM_S24LE_DEMUXER 0 ++#define CONFIG_PCM_S16BE_DEMUXER 0 ++#define CONFIG_PCM_S16LE_DEMUXER 0 ++#define CONFIG_PCM_S8_DEMUXER 0 ++#define CONFIG_PCM_U32BE_DEMUXER 0 ++#define CONFIG_PCM_U32LE_DEMUXER 0 ++#define CONFIG_PCM_U24BE_DEMUXER 0 ++#define CONFIG_PCM_U24LE_DEMUXER 0 ++#define CONFIG_PCM_U16BE_DEMUXER 0 ++#define CONFIG_PCM_U16LE_DEMUXER 0 ++#define CONFIG_PCM_U8_DEMUXER 0 ++#define CONFIG_PJS_DEMUXER 0 ++#define CONFIG_PMP_DEMUXER 0 ++#define CONFIG_PP_BNK_DEMUXER 0 ++#define CONFIG_PVA_DEMUXER 0 ++#define CONFIG_PVF_DEMUXER 0 ++#define CONFIG_QCP_DEMUXER 0 ++#define CONFIG_R3D_DEMUXER 0 ++#define CONFIG_RAWVIDEO_DEMUXER 0 ++#define CONFIG_REALTEXT_DEMUXER 0 ++#define CONFIG_REDSPARK_DEMUXER 0 ++#define CONFIG_RL2_DEMUXER 0 ++#define CONFIG_RM_DEMUXER 0 ++#define CONFIG_ROQ_DEMUXER 0 ++#define CONFIG_RPL_DEMUXER 0 ++#define CONFIG_RSD_DEMUXER 0 ++#define CONFIG_RSO_DEMUXER 0 ++#define CONFIG_RTP_DEMUXER 0 ++#define CONFIG_RTSP_DEMUXER 0 ++#define CONFIG_S337M_DEMUXER 0 ++#define CONFIG_SAMI_DEMUXER 0 ++#define CONFIG_SAP_DEMUXER 0 ++#define CONFIG_SBC_DEMUXER 0 ++#define CONFIG_SBG_DEMUXER 0 ++#define CONFIG_SCC_DEMUXER 0 ++#define CONFIG_SCD_DEMUXER 0 ++#define CONFIG_SDP_DEMUXER 0 ++#define CONFIG_SDR2_DEMUXER 0 ++#define CONFIG_SDS_DEMUXER 0 ++#define CONFIG_SDX_DEMUXER 0 ++#define CONFIG_SEGAFILM_DEMUXER 0 ++#define CONFIG_SER_DEMUXER 0 ++#define CONFIG_SGA_DEMUXER 0 ++#define CONFIG_SHORTEN_DEMUXER 0 ++#define CONFIG_SIFF_DEMUXER 0 ++#define CONFIG_SIMBIOSIS_IMX_DEMUXER 0 ++#define CONFIG_SLN_DEMUXER 0 ++#define CONFIG_SMACKER_DEMUXER 0 ++#define CONFIG_SMJPEG_DEMUXER 0 ++#define CONFIG_SMUSH_DEMUXER 0 ++#define CONFIG_SOL_DEMUXER 0 ++#define CONFIG_SOX_DEMUXER 0 ++#define CONFIG_SPDIF_DEMUXER 0 ++#define CONFIG_SRT_DEMUXER 0 ++#define CONFIG_STR_DEMUXER 0 ++#define CONFIG_STL_DEMUXER 0 ++#define CONFIG_SUBVIEWER1_DEMUXER 0 ++#define CONFIG_SUBVIEWER_DEMUXER 0 ++#define CONFIG_SUP_DEMUXER 0 ++#define CONFIG_SVAG_DEMUXER 0 ++#define CONFIG_SVS_DEMUXER 0 ++#define CONFIG_SWF_DEMUXER 0 ++#define CONFIG_TAK_DEMUXER 0 ++#define CONFIG_TEDCAPTIONS_DEMUXER 0 ++#define CONFIG_THP_DEMUXER 0 ++#define CONFIG_THREEDOSTR_DEMUXER 0 ++#define CONFIG_TIERTEXSEQ_DEMUXER 0 ++#define CONFIG_TMV_DEMUXER 0 ++#define CONFIG_TRUEHD_DEMUXER 0 ++#define CONFIG_TTA_DEMUXER 0 ++#define CONFIG_TXD_DEMUXER 0 ++#define CONFIG_TTY_DEMUXER 0 ++#define CONFIG_TY_DEMUXER 0 ++#define CONFIG_V210_DEMUXER 0 ++#define CONFIG_V210X_DEMUXER 0 ++#define CONFIG_VAG_DEMUXER 0 ++#define CONFIG_VC1_DEMUXER 0 ++#define CONFIG_VC1T_DEMUXER 0 ++#define CONFIG_VIVIDAS_DEMUXER 0 ++#define CONFIG_VIVO_DEMUXER 0 ++#define CONFIG_VMD_DEMUXER 0 ++#define CONFIG_VOBSUB_DEMUXER 0 ++#define CONFIG_VOC_DEMUXER 0 ++#define CONFIG_VPK_DEMUXER 0 ++#define CONFIG_VPLAYER_DEMUXER 0 ++#define CONFIG_VQF_DEMUXER 0 ++#define CONFIG_W64_DEMUXER 0 ++#define CONFIG_WAV_DEMUXER 1 ++#define CONFIG_WC3_DEMUXER 0 ++#define CONFIG_WEBM_DASH_MANIFEST_DEMUXER 0 ++#define CONFIG_WEBVTT_DEMUXER 0 ++#define CONFIG_WSAUD_DEMUXER 0 ++#define CONFIG_WSD_DEMUXER 0 ++#define CONFIG_WSVQA_DEMUXER 0 ++#define CONFIG_WTV_DEMUXER 0 ++#define CONFIG_WVE_DEMUXER 0 ++#define CONFIG_WV_DEMUXER 0 ++#define CONFIG_XA_DEMUXER 0 ++#define CONFIG_XBIN_DEMUXER 0 ++#define CONFIG_XMV_DEMUXER 0 ++#define CONFIG_XVAG_DEMUXER 0 ++#define CONFIG_XWMA_DEMUXER 0 ++#define CONFIG_YOP_DEMUXER 0 ++#define CONFIG_YUV4MPEGPIPE_DEMUXER 0 ++#define CONFIG_IMAGE_BMP_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_CRI_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_DDS_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_DPX_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_EXR_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_GEM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_GIF_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_J2K_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_JPEG_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PAM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PBM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PCX_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PGM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PGX_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PHOTOCD_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PICTOR_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PNG_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PPM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_PSD_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_QDRAW_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_SGI_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_SVG_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_TIFF_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_WEBP_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_XBM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_XPM_PIPE_DEMUXER 0 ++#define CONFIG_IMAGE_XWD_PIPE_DEMUXER 0 ++#define CONFIG_LIBGME_DEMUXER 0 ++#define CONFIG_LIBMODPLUG_DEMUXER 0 ++#define CONFIG_LIBOPENMPT_DEMUXER 0 ++#define CONFIG_VAPOURSYNTH_DEMUXER 0 ++#define CONFIG_A64_MUXER 0 ++#define CONFIG_AC3_MUXER 0 ++#define CONFIG_ADTS_MUXER 0 ++#define CONFIG_ADX_MUXER 0 ++#define CONFIG_AIFF_MUXER 0 ++#define CONFIG_ALP_MUXER 0 ++#define CONFIG_AMR_MUXER 0 ++#define CONFIG_AMV_MUXER 0 ++#define CONFIG_APM_MUXER 0 ++#define CONFIG_APNG_MUXER 0 ++#define CONFIG_APTX_MUXER 0 ++#define CONFIG_APTX_HD_MUXER 0 ++#define CONFIG_ARGO_ASF_MUXER 0 ++#define CONFIG_ARGO_CVG_MUXER 0 ++#define CONFIG_ASF_MUXER 0 ++#define CONFIG_ASS_MUXER 0 ++#define CONFIG_AST_MUXER 0 ++#define CONFIG_ASF_STREAM_MUXER 0 ++#define CONFIG_AU_MUXER 0 ++#define CONFIG_AVI_MUXER 0 ++#define CONFIG_AVM2_MUXER 0 ++#define CONFIG_AVS2_MUXER 0 ++#define CONFIG_AVS3_MUXER 0 ++#define CONFIG_BIT_MUXER 0 ++#define CONFIG_CAF_MUXER 0 ++#define CONFIG_CAVSVIDEO_MUXER 0 ++#define CONFIG_CODEC2_MUXER 0 ++#define CONFIG_CODEC2RAW_MUXER 0 ++#define CONFIG_CRC_MUXER 0 ++#define CONFIG_DASH_MUXER 0 ++#define CONFIG_DATA_MUXER 0 ++#define CONFIG_DAUD_MUXER 0 ++#define CONFIG_DIRAC_MUXER 0 ++#define CONFIG_DNXHD_MUXER 0 ++#define CONFIG_DTS_MUXER 0 ++#define CONFIG_DV_MUXER 0 ++#define CONFIG_EAC3_MUXER 0 ++#define CONFIG_F4V_MUXER 0 ++#define CONFIG_FFMETADATA_MUXER 0 ++#define CONFIG_FIFO_MUXER 0 ++#define CONFIG_FIFO_TEST_MUXER 0 ++#define CONFIG_FILMSTRIP_MUXER 0 ++#define CONFIG_FITS_MUXER 0 ++#define CONFIG_FLAC_MUXER 0 ++#define CONFIG_FLV_MUXER 0 ++#define CONFIG_FRAMECRC_MUXER 0 ++#define CONFIG_FRAMEHASH_MUXER 0 ++#define CONFIG_FRAMEMD5_MUXER 0 ++#define CONFIG_G722_MUXER 0 ++#define CONFIG_G723_1_MUXER 0 ++#define CONFIG_G726_MUXER 0 ++#define CONFIG_G726LE_MUXER 0 ++#define CONFIG_GIF_MUXER 0 ++#define CONFIG_GSM_MUXER 0 ++#define CONFIG_GXF_MUXER 0 ++#define CONFIG_H261_MUXER 0 ++#define CONFIG_H263_MUXER 0 ++#define CONFIG_H264_MUXER 0 ++#define CONFIG_HASH_MUXER 0 ++#define CONFIG_HDS_MUXER 0 ++#define CONFIG_HEVC_MUXER 0 ++#define CONFIG_HLS_MUXER 0 ++#define CONFIG_ICO_MUXER 0 ++#define CONFIG_ILBC_MUXER 0 ++#define CONFIG_IMAGE2_MUXER 0 ++#define CONFIG_IMAGE2PIPE_MUXER 0 ++#define CONFIG_IPOD_MUXER 0 ++#define CONFIG_IRCAM_MUXER 0 ++#define CONFIG_ISMV_MUXER 0 ++#define CONFIG_IVF_MUXER 0 ++#define CONFIG_JACOSUB_MUXER 0 ++#define CONFIG_KVAG_MUXER 0 ++#define CONFIG_LATM_MUXER 0 ++#define CONFIG_LRC_MUXER 0 ++#define CONFIG_M4V_MUXER 0 ++#define CONFIG_MD5_MUXER 0 ++#define CONFIG_MATROSKA_MUXER 0 ++#define CONFIG_MATROSKA_AUDIO_MUXER 0 ++#define CONFIG_MICRODVD_MUXER 0 ++#define CONFIG_MJPEG_MUXER 0 ++#define CONFIG_MLP_MUXER 0 ++#define CONFIG_MMF_MUXER 0 ++#define CONFIG_MOV_MUXER 0 ++#define CONFIG_MP2_MUXER 0 ++#define CONFIG_MP3_MUXER 0 ++#define CONFIG_MP4_MUXER 0 ++#define CONFIG_MPEG1SYSTEM_MUXER 0 ++#define CONFIG_MPEG1VCD_MUXER 0 ++#define CONFIG_MPEG1VIDEO_MUXER 0 ++#define CONFIG_MPEG2DVD_MUXER 0 ++#define CONFIG_MPEG2SVCD_MUXER 0 ++#define CONFIG_MPEG2VIDEO_MUXER 0 ++#define CONFIG_MPEG2VOB_MUXER 0 ++#define CONFIG_MPEGTS_MUXER 0 ++#define CONFIG_MPJPEG_MUXER 0 ++#define CONFIG_MXF_MUXER 0 ++#define CONFIG_MXF_D10_MUXER 0 ++#define CONFIG_MXF_OPATOM_MUXER 0 ++#define CONFIG_NULL_MUXER 0 ++#define CONFIG_NUT_MUXER 0 ++#define CONFIG_OBU_MUXER 0 ++#define CONFIG_OGA_MUXER 0 ++#define CONFIG_OGG_MUXER 0 ++#define CONFIG_OGV_MUXER 0 ++#define CONFIG_OMA_MUXER 0 ++#define CONFIG_OPUS_MUXER 0 ++#define CONFIG_PCM_ALAW_MUXER 0 ++#define CONFIG_PCM_MULAW_MUXER 0 ++#define CONFIG_PCM_VIDC_MUXER 0 ++#define CONFIG_PCM_F64BE_MUXER 0 ++#define CONFIG_PCM_F64LE_MUXER 0 ++#define CONFIG_PCM_F32BE_MUXER 0 ++#define CONFIG_PCM_F32LE_MUXER 0 ++#define CONFIG_PCM_S32BE_MUXER 0 ++#define CONFIG_PCM_S32LE_MUXER 0 ++#define CONFIG_PCM_S24BE_MUXER 0 ++#define CONFIG_PCM_S24LE_MUXER 0 ++#define CONFIG_PCM_S16BE_MUXER 0 ++#define CONFIG_PCM_S16LE_MUXER 0 ++#define CONFIG_PCM_S8_MUXER 0 ++#define CONFIG_PCM_U32BE_MUXER 0 ++#define CONFIG_PCM_U32LE_MUXER 0 ++#define CONFIG_PCM_U24BE_MUXER 0 ++#define CONFIG_PCM_U24LE_MUXER 0 ++#define CONFIG_PCM_U16BE_MUXER 0 ++#define CONFIG_PCM_U16LE_MUXER 0 ++#define CONFIG_PCM_U8_MUXER 0 ++#define CONFIG_PSP_MUXER 0 ++#define CONFIG_RAWVIDEO_MUXER 0 ++#define CONFIG_RM_MUXER 0 ++#define CONFIG_ROQ_MUXER 0 ++#define CONFIG_RSO_MUXER 0 ++#define CONFIG_RTP_MUXER 0 ++#define CONFIG_RTP_MPEGTS_MUXER 0 ++#define CONFIG_RTSP_MUXER 0 ++#define CONFIG_SAP_MUXER 0 ++#define CONFIG_SBC_MUXER 0 ++#define CONFIG_SCC_MUXER 0 ++#define CONFIG_SEGAFILM_MUXER 0 ++#define CONFIG_SEGMENT_MUXER 0 ++#define CONFIG_STREAM_SEGMENT_MUXER 0 ++#define CONFIG_SMJPEG_MUXER 0 ++#define CONFIG_SMOOTHSTREAMING_MUXER 0 ++#define CONFIG_SOX_MUXER 0 ++#define CONFIG_SPX_MUXER 0 ++#define CONFIG_SPDIF_MUXER 0 ++#define CONFIG_SRT_MUXER 0 ++#define CONFIG_STREAMHASH_MUXER 0 ++#define CONFIG_SUP_MUXER 0 ++#define CONFIG_SWF_MUXER 0 ++#define CONFIG_TEE_MUXER 0 ++#define CONFIG_TG2_MUXER 0 ++#define CONFIG_TGP_MUXER 0 ++#define CONFIG_MKVTIMESTAMP_V2_MUXER 0 ++#define CONFIG_TRUEHD_MUXER 0 ++#define CONFIG_TTA_MUXER 0 ++#define CONFIG_TTML_MUXER 0 ++#define CONFIG_UNCODEDFRAMECRC_MUXER 0 ++#define CONFIG_VC1_MUXER 0 ++#define CONFIG_VC1T_MUXER 0 ++#define CONFIG_VOC_MUXER 0 ++#define CONFIG_W64_MUXER 0 ++#define CONFIG_WAV_MUXER 0 ++#define CONFIG_WEBM_MUXER 0 ++#define CONFIG_WEBM_DASH_MANIFEST_MUXER 0 ++#define CONFIG_WEBM_CHUNK_MUXER 0 ++#define CONFIG_WEBP_MUXER 0 ++#define CONFIG_WEBVTT_MUXER 0 ++#define CONFIG_WSAUD_MUXER 0 ++#define CONFIG_WTV_MUXER 0 ++#define CONFIG_WV_MUXER 0 ++#define CONFIG_YUV4MPEGPIPE_MUXER 0 ++#define CONFIG_CHROMAPRINT_MUXER 0 ++#define CONFIG_ASYNC_PROTOCOL 0 ++#define CONFIG_BLURAY_PROTOCOL 0 ++#define CONFIG_CACHE_PROTOCOL 0 ++#define CONFIG_CONCAT_PROTOCOL 0 ++#define CONFIG_CONCATF_PROTOCOL 0 ++#define CONFIG_CRYPTO_PROTOCOL 0 ++#define CONFIG_DATA_PROTOCOL 0 ++#define CONFIG_FFRTMPCRYPT_PROTOCOL 0 ++#define CONFIG_FFRTMPHTTP_PROTOCOL 0 ++#define CONFIG_FILE_PROTOCOL 0 ++#define CONFIG_FTP_PROTOCOL 0 ++#define CONFIG_GOPHER_PROTOCOL 0 ++#define CONFIG_GOPHERS_PROTOCOL 0 ++#define CONFIG_HLS_PROTOCOL 0 ++#define CONFIG_HTTP_PROTOCOL 0 ++#define CONFIG_HTTPPROXY_PROTOCOL 0 ++#define CONFIG_HTTPS_PROTOCOL 0 ++#define CONFIG_ICECAST_PROTOCOL 0 ++#define CONFIG_MMSH_PROTOCOL 0 ++#define CONFIG_MMST_PROTOCOL 0 ++#define CONFIG_MD5_PROTOCOL 0 ++#define CONFIG_PIPE_PROTOCOL 0 ++#define CONFIG_PROMPEG_PROTOCOL 0 ++#define CONFIG_RTMP_PROTOCOL 0 ++#define CONFIG_RTMPE_PROTOCOL 0 ++#define CONFIG_RTMPS_PROTOCOL 0 ++#define CONFIG_RTMPT_PROTOCOL 0 ++#define CONFIG_RTMPTE_PROTOCOL 0 ++#define CONFIG_RTMPTS_PROTOCOL 0 ++#define CONFIG_RTP_PROTOCOL 0 ++#define CONFIG_SCTP_PROTOCOL 0 ++#define CONFIG_SRTP_PROTOCOL 0 ++#define CONFIG_SUBFILE_PROTOCOL 0 ++#define CONFIG_TEE_PROTOCOL 0 ++#define CONFIG_TCP_PROTOCOL 0 ++#define CONFIG_TLS_PROTOCOL 0 ++#define CONFIG_UDP_PROTOCOL 0 ++#define CONFIG_UDPLITE_PROTOCOL 0 ++#define CONFIG_UNIX_PROTOCOL 0 ++#define CONFIG_LIBAMQP_PROTOCOL 0 ++#define CONFIG_LIBRIST_PROTOCOL 0 ++#define CONFIG_LIBRTMP_PROTOCOL 0 ++#define CONFIG_LIBRTMPE_PROTOCOL 0 ++#define CONFIG_LIBRTMPS_PROTOCOL 0 ++#define CONFIG_LIBRTMPT_PROTOCOL 0 ++#define CONFIG_LIBRTMPTE_PROTOCOL 0 ++#define CONFIG_LIBSRT_PROTOCOL 0 ++#define CONFIG_LIBSSH_PROTOCOL 0 ++#define CONFIG_LIBSMBCLIENT_PROTOCOL 0 ++#define CONFIG_LIBZMQ_PROTOCOL 0 ++#endif /* FFMPEG_CONFIG_H */ diff --git a/devel/electron18/files/patch-third__party_ffmpeg_libavcodec_x86_cabac.h b/devel/electron18/files/patch-third__party_ffmpeg_libavcodec_x86_cabac.h new file mode 100644 index 000000000000..2bfc9d3e601e --- /dev/null +++ b/devel/electron18/files/patch-third__party_ffmpeg_libavcodec_x86_cabac.h @@ -0,0 +1,12 @@ +--- third_party/ffmpeg/libavcodec/x86/cabac.h.orig 2022-05-11 07:03:53 UTC ++++ third_party/ffmpeg/libavcodec/x86/cabac.h +@@ -31,7 +31,8 @@ + + #if (defined(__i386) && defined(__clang__) && (__clang_major__<2 || (__clang_major__==2 && __clang_minor__<10)))\ + || ( !defined(__clang__) && defined(__llvm__) && __GNUC__==4 && __GNUC_MINOR__==2 && __GNUC_PATCHLEVEL__<=1)\ +- || (defined(__INTEL_COMPILER) && defined(_MSC_VER)) ++ || (defined(__INTEL_COMPILER) && defined(_MSC_VER)) \ ++ || ((defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386)) + # define BROKEN_COMPILER 1 + #else + # define BROKEN_COMPILER 0 diff --git a/devel/electron18/files/patch-third__party_ffmpeg_libavutil_cpu.c b/devel/electron18/files/patch-third__party_ffmpeg_libavutil_cpu.c new file mode 100644 index 000000000000..b0ec9b3b8169 --- /dev/null +++ b/devel/electron18/files/patch-third__party_ffmpeg_libavutil_cpu.c @@ -0,0 +1,14 @@ +--- third_party/ffmpeg/libavutil/cpu.c.orig 2022-05-11 07:17:29 UTC ++++ third_party/ffmpeg/libavutil/cpu.c +@@ -36,10 +36,7 @@ + #if HAVE_GETPROCESSAFFINITYMASK || HAVE_WINRT + #include <windows.h> + #endif +-#if HAVE_SYSCTL +-#if HAVE_SYS_PARAM_H +-#include <sys/param.h> +-#endif ++#if HAVE_SYSCTL && !defined(__OpenBSD__) + #include <sys/types.h> + #include <sys/sysctl.h> + #endif diff --git a/devel/electron18/files/patch-third__party_ffmpeg_libavutil_mem.c b/devel/electron18/files/patch-third__party_ffmpeg_libavutil_mem.c new file mode 100644 index 000000000000..d56b95005733 --- /dev/null +++ b/devel/electron18/files/patch-third__party_ffmpeg_libavutil_mem.c @@ -0,0 +1,12 @@ +--- third_party/ffmpeg/libavutil/mem.c.orig 2021-10-08 06:29:12 UTC ++++ third_party/ffmpeg/libavutil/mem.c +@@ -33,9 +33,6 @@ + #include <stdlib.h> + #include <stdatomic.h> + #include <string.h> +-#if HAVE_MALLOC_H +-#include <malloc.h> +-#endif + + #include "avutil.h" + #include "common.h" diff --git a/devel/electron18/files/patch-third__party_ffmpeg_libavutil_random__seed.c b/devel/electron18/files/patch-third__party_ffmpeg_libavutil_random__seed.c new file mode 100644 index 000000000000..788e66f8e00f --- /dev/null +++ b/devel/electron18/files/patch-third__party_ffmpeg_libavutil_random__seed.c @@ -0,0 +1,14 @@ +--- third_party/ffmpeg/libavutil/random_seed.c.orig 2022-05-11 07:03:54 UTC ++++ third_party/ffmpeg/libavutil/random_seed.c +@@ -30,6 +30,11 @@ + #include <windows.h> + #include <bcrypt.h> + #endif ++#if HAVE_ARC4RANDOM ++#undef __BSD_VISIBLE ++#define __BSD_VISIBLE 1 ++#include <stdlib.h> ++#endif + #include <fcntl.h> + #include <math.h> + #include <time.h> diff --git a/devel/electron18/files/patch-third__party_fontconfig_include_config.h b/devel/electron18/files/patch-third__party_fontconfig_include_config.h new file mode 100644 index 000000000000..6bf264fc8d61 --- /dev/null +++ b/devel/electron18/files/patch-third__party_fontconfig_include_config.h @@ -0,0 +1,89 @@ +--- third_party/fontconfig/include/config.h.orig 2022-05-11 07:01:48 UTC ++++ third_party/fontconfig/include/config.h +@@ -18,13 +18,13 @@ + #define ENABLE_NLS 1 + + /* Additional font directories */ +-#define FC_ADD_FONTS "yes" ++#define FC_ADD_FONTS "/usr/local/share/fonts" + + /* Architecture prefix to use for cache file names */ + /* #undef FC_ARCHITECTURE */ + + /* System font directory */ +-#define FC_DEFAULT_FONTS "/usr/share/fonts" ++#define FC_DEFAULT_FONTS "/usr/X11R6/lib/X11/fonts" + + /* The type of len parameter of the gperf hash/lookup function */ + #define FC_GPERF_SIZE_T size_t +@@ -100,7 +100,7 @@ + #define HAVE_GETPAGESIZE 1 + + /* Define to 1 if you have the `getprogname' function. */ +-/* #undef HAVE_GETPROGNAME */ ++#define HAVE_GETPROGNAME 1 + + /* Define if the GNU gettext() function is already present or preinstalled. */ + #define HAVE_GETTEXT 1 +@@ -142,7 +142,7 @@ + /* #undef HAVE_NDIR_H */ + + /* Define to 1 if you have the 'posix_fadvise' function. */ +-#define HAVE_POSIX_FADVISE 1 ++#define HAVE_POSIX_FADVISE 0 + + /* Have POSIX threads */ + #define HAVE_PTHREAD 1 +@@ -157,11 +157,14 @@ + #define HAVE_RANDOM 1 + + /* Define to 1 if you have the `random_r' function. */ +-#define HAVE_RANDOM_R 1 ++/* #undef HAVE_RANDOM_R */ + + /* Define to 1 if you have the `rand_r' function. */ + #define HAVE_RAND_R 1 + ++/* Define to 1 if you have the `arc4_random' function. */ ++#define HAVE_ARC4RANDOM 1 ++ + /* Define to 1 if you have the `readlink' function. */ + #define HAVE_READLINK 1 + +@@ -199,7 +202,7 @@ + #define HAVE_STRUCT_STATFS_F_FLAGS 1 + + /* Define to 1 if `f_fstypename' is a member of `struct statfs'. */ +-/* #undef HAVE_STRUCT_STATFS_F_FSTYPENAME */ ++#define HAVE_STRUCT_STATFS_F_FSTYPENAME 1 + + /* Define to 1 if `f_basetype' is a member of `struct statvfs'. */ + /* #undef HAVE_STRUCT_STATVFS_F_BASETYPE */ +@@ -225,7 +228,7 @@ + #define HAVE_SYS_PARAM_H 1 + + /* Define to 1 if you have the <sys/statfs.h> header file. */ +-#define HAVE_SYS_STATFS_H 1 ++/* #undef HAVE_SYS_STATFS_H */ + + /* Define to 1 if you have the <sys/statvfs.h> header file. */ + #define HAVE_SYS_STATVFS_H 1 +@@ -237,7 +240,7 @@ + #define HAVE_SYS_TYPES_H 1 + + /* Define to 1 if you have the <sys/vfs.h> header file. */ +-#define HAVE_SYS_VFS_H 1 ++/* #undef HAVE_SYS_VFS_H */ + + /* Define to 1 if you have the <unistd.h> header file. */ + #define HAVE_UNISTD_H 1 +@@ -257,7 +260,8 @@ + /* Define to 1 if you have the `_mktemp_s' function. */ + /* #undef HAVE__MKTEMP_S */ + +-/* Define to the sub-directory where libtool stores uninstalled libraries. */ ++/* Define to the sub-directory in which libtool stores uninstalled libraries. ++ */ + #define LT_OBJDIR ".libs/" + + /* Name of package */ diff --git a/devel/electron18/files/patch-third__party_fontconfig_src_src_fccompat.c b/devel/electron18/files/patch-third__party_fontconfig_src_src_fccompat.c new file mode 100644 index 000000000000..86e741f355d2 --- /dev/null +++ b/devel/electron18/files/patch-third__party_fontconfig_src_src_fccompat.c @@ -0,0 +1,13 @@ +--- third_party/fontconfig/src/src/fccompat.c.orig 2022-05-11 07:03:24 UTC ++++ third_party/fontconfig/src/src/fccompat.c +@@ -169,7 +169,9 @@ FcRandom(void) + { + int32_t result; + +-#if HAVE_RANDOM_R ++#if HAVE_ARC4RANDOM ++ result = arc4random() & 0x7fffffff; ++#elif HAVE_RANDOM_R + static struct random_data fcrandbuf; + static char statebuf[256]; + static FcBool initialized = FcFalse; diff --git a/devel/electron18/files/patch-third__party_glfw_src_src_egl__context.c b/devel/electron18/files/patch-third__party_glfw_src_src_egl__context.c new file mode 100644 index 000000000000..4513eb2a9ba1 --- /dev/null +++ b/devel/electron18/files/patch-third__party_glfw_src_src_egl__context.c @@ -0,0 +1,11 @@ +--- third_party/glfw/src/src/egl_context.c.orig 2022-05-11 07:03:38 UTC ++++ third_party/glfw/src/src/egl_context.c +@@ -712,7 +712,7 @@ GLFWbool _glfwCreateContextEGL(_GLFWwindow* window, + #elif defined(_GLFW_WIN32) + #elif defined(_GLFW_COCOA) + #else +- "libGL.so.1", ++ "libGL.so", + #endif + NULL + }; diff --git a/devel/electron18/files/patch-third__party_leveldatabase_env__chromium.cc b/devel/electron18/files/patch-third__party_leveldatabase_env__chromium.cc new file mode 100644 index 000000000000..5815960bf83b --- /dev/null +++ b/devel/electron18/files/patch-third__party_leveldatabase_env__chromium.cc @@ -0,0 +1,12 @@ +--- third_party/leveldatabase/env_chromium.cc.orig 2022-05-11 07:17:05 UTC ++++ third_party/leveldatabase/env_chromium.cc +@@ -316,7 +316,8 @@ ChromiumWritableFile::ChromiumWritableFile(const std:: + + Status ChromiumWritableFile::SyncParent() { + TRACE_EVENT0("leveldb", "SyncParent"); +-#if defined(OS_POSIX) || defined(OS_FUCHSIA) ++// pledge violation (directory passed as fd) ++#if (defined(OS_POSIX) || defined(OS_FUCHSIA)) && !defined(OS_OPENBSD) + FilePath path = FilePath::FromUTF8Unsafe(parent_dir_); + FileErrorOr<base::File> result = filesystem_->OpenFile( + path, base::File::FLAG_OPEN | base::File::FLAG_READ); diff --git a/devel/electron18/files/patch-third__party_libXNVCtrl_NVCtrl.c b/devel/electron18/files/patch-third__party_libXNVCtrl_NVCtrl.c new file mode 100644 index 000000000000..e65e639140f5 --- /dev/null +++ b/devel/electron18/files/patch-third__party_libXNVCtrl_NVCtrl.c @@ -0,0 +1,25 @@ +--- third_party/libXNVCtrl/NVCtrl.c.orig 2021-01-07 00:37:22 UTC ++++ third_party/libXNVCtrl/NVCtrl.c +@@ -27,10 +27,6 @@ + * libXNVCtrl library properly protects the Display connection. + */ + +-#if !defined(XTHREADS) +-#define XTHREADS +-#endif /* XTHREADS */ +- + #define NEED_EVENTS + #define NEED_REPLIES + #include <stdint.h> +@@ -39,6 +35,11 @@ + #include <X11/Xutil.h> + #include <X11/extensions/Xext.h> + #include <X11/extensions/extutil.h> ++ ++#if !defined(XTHREADS) ++#define XTHREADS ++#endif /* XTHREADS */ ++ + #include "NVCtrlLib.h" + #include "nv_control.h" + diff --git a/devel/electron18/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h b/devel/electron18/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h new file mode 100644 index 000000000000..5e5d88b4a93f --- /dev/null +++ b/devel/electron18/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h @@ -0,0 +1,12 @@ +--- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h.orig 2022-05-11 07:04:37 UTC ++++ third_party/libphonenumber/dist/cpp/src/phonenumbers/base/memory/singleton.h +@@ -56,7 +56,8 @@ template <class T> boost::once_flag Singleton<T>::flag + #include "phonenumbers/base/logging.h" + #include "phonenumbers/base/thread_checker.h" + +-#if !defined(__linux__) && !defined(__APPLE__) ++#if !defined(__linux__) && !defined(__APPLE__) && !defined(__OpenBSD__) && \ ++ !defined(__FreeBSD__) + + namespace i18n { + namespace phonenumbers { diff --git a/devel/electron18/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h b/devel/electron18/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h new file mode 100644 index 000000000000..e78a719afcc3 --- /dev/null +++ b/devel/electron18/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h @@ -0,0 +1,12 @@ +--- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h.orig 2022-05-11 07:04:37 UTC ++++ third_party/libphonenumber/dist/cpp/src/phonenumbers/base/synchronization/lock.h +@@ -63,7 +63,8 @@ class Lock { (private) + // Dummy lock implementation on non-POSIX platforms. If you are running on a + // different platform and care about thread-safety, please compile with + // -DI18N_PHONENUMBERS_USE_BOOST. +-#elif !defined(__linux__) && !defined(__APPLE__) ++#elif !defined(__linux__) && !defined(__APPLE__) && !defined(__OpenBSD__) && \ ++ !defined(__FreeBSD__) + + namespace i18n { + namespace phonenumbers { diff --git a/devel/electron18/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h b/devel/electron18/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h new file mode 100644 index 000000000000..6d20c070637f --- /dev/null +++ b/devel/electron18/files/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h @@ -0,0 +1,22 @@ +--- third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h.orig 2022-05-11 07:04:37 UTC ++++ third_party/libphonenumber/dist/cpp/src/phonenumbers/base/thread_checker.h +@@ -23,7 +23,8 @@ + // user of the library know that it can't be used in a thread-safe manner when + // it is not depending on Boost. + #if !defined(__linux__) && !defined(__APPLE__) && \ +- !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY) ++ !defined(I18N_PHONENUMBERS_NO_THREAD_SAFETY) && !defined(__OpenBSD__) && \ ++ !defined(__FreeBSD__) + #error Building without Boost, please provide \ + -DI18N_PHONENUMBERS_NO_THREAD_SAFETY + #endif +@@ -31,7 +32,8 @@ + #endif + + #if !defined(NDEBUG) && !defined(I18N_PHONENUMBERS_USE_BOOST) && \ +- (defined(__linux__) || defined(__apple__)) ++ (defined(__linux__) || defined(__apple__) || defined(__OpenBSD__) || \ ++ defined(__FreeBSD__)) + + #include <pthread.h> + diff --git a/devel/electron18/files/patch-third__party_libsync_src_include_sync_sync.h b/devel/electron18/files/patch-third__party_libsync_src_include_sync_sync.h new file mode 100644 index 000000000000..688e9fb85f42 --- /dev/null +++ b/devel/electron18/files/patch-third__party_libsync_src_include_sync_sync.h @@ -0,0 +1,12 @@ +--- third_party/libsync/src/include/sync/sync.h.orig 2022-05-11 07:04:22 UTC ++++ third_party/libsync/src/include/sync/sync.h +@@ -22,7 +22,9 @@ + #include <sys/cdefs.h> + #include <stdint.h> + ++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) + #include <linux/types.h> ++#endif + + __BEGIN_DECLS + diff --git a/devel/electron18/files/patch-third__party_libsync_src_sync.c b/devel/electron18/files/patch-third__party_libsync_src_sync.c new file mode 100644 index 000000000000..3d2bb5c1ad3e --- /dev/null +++ b/devel/electron18/files/patch-third__party_libsync_src_sync.c @@ -0,0 +1,25 @@ +--- third_party/libsync/src/sync.c.orig 2022-05-11 07:04:22 UTC ++++ third_party/libsync/src/sync.c +@@ -17,7 +17,9 @@ + */ + + #include <fcntl.h> ++#if !defined(__OpenBSD__) + #include <malloc.h> ++#endif + #include <stdint.h> + #include <string.h> + #include <errno.h> +@@ -29,6 +31,12 @@ + + #include <sync/sync.h> + ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++typedef __uint8_t __u8; ++typedef __uint32_t __u32; ++typedef __int32_t __s32; ++#define ETIME ETIMEDOUT ++#endif + + struct sw_sync_create_fence_data { + __u32 value; diff --git a/devel/electron18/files/patch-third__party_libusb_BUILD.gn b/devel/electron18/files/patch-third__party_libusb_BUILD.gn new file mode 100644 index 000000000000..ed4e7464dba7 --- /dev/null +++ b/devel/electron18/files/patch-third__party_libusb_BUILD.gn @@ -0,0 +1,46 @@ +--- third_party/libusb/BUILD.gn.orig 2022-05-11 07:01:53 UTC ++++ third_party/libusb/BUILD.gn +@@ -3,7 +3,7 @@ + # found in the LICENSE file. + + # libusb is only used by //services/device/usb on macOS. +-assert(is_mac) ++assert(is_mac || is_bsd) + + import("//build/config/chromeos/ui_mode.gni") + import("//build/config/features.gni") +@@ -116,7 +116,7 @@ static_library("libusb") { + ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "src/libusb/os/linux_usbfs.c", + "src/libusb/os/linux_usbfs.h", +@@ -127,6 +127,16 @@ static_library("libusb") { + ] + } + ++ if (is_openbsd) { ++ sources += [ ++ "src/libusb/os/openbsd_usb.c", ++ ] ++ defines += [ ++ "OS_OPENBSD=1", ++ "_GNU_SOURCE=1", ++ ] ++ } ++ + if (is_chromeos_ash) { + defines += [ "USBI_TIMERFD_AVAILABLE" ] + } +@@ -140,7 +150,7 @@ static_library("libusb") { + deps += [ "//build/linux/libudev" ] + } + +- if ((is_linux || is_chromeos) && !use_udev) { ++ if ((is_linux || is_chromeos) && !use_udev && !is_bsd) { + sources += [ "src/libusb/os/linux_netlink.c" ] + defines += [ "HAVE_LINUX_NETLINK_H" ] + } diff --git a/devel/electron18/files/patch-third__party_libusb_src_libusb_core.c b/devel/electron18/files/patch-third__party_libusb_src_libusb_core.c new file mode 100644 index 000000000000..a9cde2b82275 --- /dev/null +++ b/devel/electron18/files/patch-third__party_libusb_src_libusb_core.c @@ -0,0 +1,11 @@ +--- third_party/libusb/src/libusb/core.c.orig 2022-05-11 07:01:53 UTC ++++ third_party/libusb/src/libusb/core.c +@@ -448,7 +448,7 @@ libusb_free_device_list(list, 1); + * which grows when required. it can be freed once discovery has completed, + * eliminating the need for a list node in the libusb_device structure + * itself. */ +-#define DISCOVERED_DEVICES_SIZE_STEP 8 ++#define DISCOVERED_DEVICES_SIZE_STEP 16 + + static struct discovered_devs *discovered_devs_alloc(void) + { diff --git a/devel/electron18/files/patch-third__party_libxml_linux_config.h b/devel/electron18/files/patch-third__party_libxml_linux_config.h new file mode 100644 index 000000000000..b523f9e37e6e --- /dev/null +++ b/devel/electron18/files/patch-third__party_libxml_linux_config.h @@ -0,0 +1,12 @@ +--- third_party/libxml/linux/config.h.orig 2022-05-19 05:18:00 UTC ++++ third_party/libxml/linux/config.h +@@ -81,6 +81,9 @@ + /* Define to 1 if you have the `putenv' function. */ + #define HAVE_PUTENV 1 + ++/* Define to 1 if you have the `arc4random' function. */ ++#define HAVE_ARC4RANDOM 1 ++ + /* Define to 1 if you have the `rand_r' function. */ + + diff --git a/devel/electron18/files/patch-third__party_libxml_src_dict.c b/devel/electron18/files/patch-third__party_libxml_src_dict.c new file mode 100644 index 000000000000..ab437826a5ae --- /dev/null +++ b/devel/electron18/files/patch-third__party_libxml_src_dict.c @@ -0,0 +1,41 @@ +--- third_party/libxml/src/dict.c.orig 2022-05-19 05:18:00 UTC ++++ third_party/libxml/src/dict.c +@@ -135,7 +135,7 @@ static xmlRMutexPtr xmlDictMutex = NULL; + static int xmlDictInitialized = 0; + + #ifdef DICT_RANDOMIZATION +-#ifdef HAVE_RAND_R ++#if defined(HAVE_RAND_R) && !defined(HAVE_ARC4RANDOM) + /* + * Internal data for random function, protected by xmlDictMutex + */ +@@ -176,7 +176,7 @@ int __xmlInitializeDict(void) { + return(0); + xmlRMutexLock(xmlDictMutex); + +-#ifdef DICT_RANDOMIZATION ++#if defined(DICT_RANDOMIZATION) && !defined(HAVE_ARC4RANDOM) + #ifdef HAVE_RAND_R + rand_seed = time(NULL); + rand_r(& rand_seed); +@@ -196,13 +196,17 @@ int __xmlRandom(void) { + if (xmlDictInitialized == 0) + __xmlInitializeDict(); + ++#ifdef HAVE_ARC4RANDOM ++ ret = arc4random(); ++#else + xmlRMutexLock(xmlDictMutex); +-#ifdef HAVE_RAND_R ++# ifdef HAVE_RAND_R + ret = rand_r(& rand_seed); +-#else ++# else + ret = rand(); +-#endif ++# endif + xmlRMutexUnlock(xmlDictMutex); ++#endif + return(ret); + } + #endif diff --git a/devel/electron18/files/patch-third__party_maldoca_BUILD.gn b/devel/electron18/files/patch-third__party_maldoca_BUILD.gn new file mode 100644 index 000000000000..5767eafe4b14 --- /dev/null +++ b/devel/electron18/files/patch-third__party_maldoca_BUILD.gn @@ -0,0 +1,13 @@ +--- third_party/maldoca/BUILD.gn.orig 2022-05-19 03:47:06 UTC ++++ third_party/maldoca/BUILD.gn +@@ -299,6 +299,10 @@ static_library("maldoca") { + ":maldoca_chromium_config", + ":maldoca_flags", + ] ++ ++ if (is_bsd) { ++ libs = [ "iconv" ] ++ } + } + + fuzzer_test("process_doc_fuzzer") { diff --git a/devel/electron18/files/patch-third__party_maldoca_src_maldoca_base_get__runfiles__dir.cc b/devel/electron18/files/patch-third__party_maldoca_src_maldoca_base_get__runfiles__dir.cc new file mode 100644 index 000000000000..c5fa332bd95d --- /dev/null +++ b/devel/electron18/files/patch-third__party_maldoca_src_maldoca_base_get__runfiles__dir.cc @@ -0,0 +1,32 @@ +--- third_party/maldoca/src/maldoca/base/get_runfiles_dir.cc.orig 2022-05-11 07:01:55 UTC ++++ third_party/maldoca/src/maldoca/base/get_runfiles_dir.cc +@@ -24,11 +24,6 @@ + #error "__APPLE__ not supported." + #endif + +-#if defined(__FreeBSD__) +-// TODO(#110) FreeBSD-specific headers. +-#error "__FreeBSD__ not supported." +-#endif +- + #if defined(_WIN32) + #include <windows.h> + #define PATH_MAX MAX_PATH +@@ -50,8 +45,6 @@ std::string GetExecutablePath() { + char exe_path[PATH_MAX] = {0}; + #ifdef __APPLE__ + #error "__APPLE__ not supported."; +-#elif defined(__FreeBSD__) +-#error "__FreeBSD__ not supported."; + #elif defined(_WIN32) + HMODULE hModule = GetModuleHandleW(NULL); + WCHAR wc_file_path[MAX_PATH] = {0}; +@@ -97,8 +90,6 @@ std::string GetExecutablePath() { + absl::Status IsDirectory(const std::string& name) { + #ifdef __APPLE__ + #error "__APPLE__ not supported."; +-#elif defined(__FreeBSD__) +-#error "__FreeBSD__ not supported."; + #else + struct stat sbuf; + if (stat(name.c_str(), &sbuf) != 0) { diff --git a/devel/electron18/files/patch-third__party_maldoca_src_maldoca_service_common_process__doc__wrapper.cc b/devel/electron18/files/patch-third__party_maldoca_src_maldoca_service_common_process__doc__wrapper.cc new file mode 100644 index 000000000000..60b14fa73bfe --- /dev/null +++ b/devel/electron18/files/patch-third__party_maldoca_src_maldoca_service_common_process__doc__wrapper.cc @@ -0,0 +1,29 @@ +--- third_party/maldoca/src/maldoca/service/common/process_doc_wrapper.cc.orig 2022-05-11 07:01:55 UTC ++++ third_party/maldoca/src/maldoca/service/common/process_doc_wrapper.cc +@@ -7,7 +7,7 @@ + #include "build/build_config.h" + + #include "base/files/file_util.h" +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + #include "base/strings/string_util.h" + #else + #include "base/strings/string_util_win.h" +@@ -21,7 +21,7 @@ namespace third_party_maldoca { + + + bool ExtensionEqualInCaseSensitive(base::FilePath file_path, std::string extension){ +- #if defined(OS_LINUX) ++ #if defined(OS_LINUX) || defined(OS_BSD) + std::string file_extension = file_path.FinalExtension(); + return base::CompareCaseInsensitiveASCII(file_extension, extension) == 0; + #else +@@ -74,7 +74,7 @@ void AnalyzeOfficeDocument(base::File office_file, + maldoca::DocProcessor doc_processor(processor_config); + + maldoca::ProcessDocumentRequest process_doc_request; +- #if defined(OS_LINUX) ++ #if defined(OS_LINUX) || defined(OS_BSD) + const std::string file_name = file_path.BaseName().value().c_str(); + process_doc_request.set_file_name(file_name); + #endif diff --git a/devel/electron18/files/patch-third__party_nasm_BUILD.gn b/devel/electron18/files/patch-third__party_nasm_BUILD.gn new file mode 100644 index 000000000000..485d406e48da --- /dev/null +++ b/devel/electron18/files/patch-third__party_nasm_BUILD.gn @@ -0,0 +1,16 @@ +--- third_party/nasm/BUILD.gn.orig 2022-05-11 07:04:45 UTC ++++ third_party/nasm/BUILD.gn +@@ -59,6 +59,13 @@ config("nasm_config") { + + defines = [ "HAVE_CONFIG_H" ] + ++ _string_h_lines = ++ read_file("/usr/include/string.h", "list lines") ++ _mempcpy = filter_include(_string_h_lines, [ "*\*mempcpy*" ]) ++ if (_mempcpy != []) { ++ defines += [ "HAVE_MEMPCPY=1" ] ++ } ++ + if (is_clang) { + cflags = [ + # The inline functions in NASM's headers flag this. diff --git a/devel/electron18/files/patch-third__party_nasm_config_config-linux.h b/devel/electron18/files/patch-third__party_nasm_config_config-linux.h new file mode 100644 index 000000000000..8f7ee4011f70 --- /dev/null +++ b/devel/electron18/files/patch-third__party_nasm_config_config-linux.h @@ -0,0 +1,111 @@ +--- third_party/nasm/config/config-linux.h.orig 2022-05-11 07:04:45 UTC ++++ third_party/nasm/config/config-linux.h +@@ -139,7 +139,7 @@ + #define HAVE_ACCESS 1 + + /* Define to 1 if you have the `canonicalize_file_name' function. */ +-#define HAVE_CANONICALIZE_FILE_NAME 1 ++/* #undef HAVE_CANONICALIZE_FILE_NAME */ + + /* Define to 1 if you have the `cpu_to_le16' intrinsic function. */ + /* #undef HAVE_CPU_TO_LE16 */ +@@ -160,7 +160,7 @@ + + /* Define to 1 if you have the declaration of `strlcpy', and to 0 if you + don't. */ +-#define HAVE_DECL_STRLCPY 0 ++#define HAVE_DECL_STRLCPY 1 + + /* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you + don't. */ +@@ -183,7 +183,7 @@ + #define HAVE_DECL_STRSEP 1 + + /* Define to 1 if you have the <endian.h> header file. */ +-#define HAVE_ENDIAN_H 1 ++/* #undef HAVE_ENDIAN_H */ + + /* Define to 1 if you have the `faccessat' function. */ + #define HAVE_FACCESSAT 1 +@@ -327,16 +327,16 @@ + #define HAVE_ISASCII 1 + + /* Define to 1 if you have the `iscntrl' function. */ +-/* #undef HAVE_ISCNTRL */ ++#define HAVE_ISCNTRL 1 + + /* Define to 1 if you have the <machine/endian.h> header file. */ +-/* #undef HAVE_MACHINE_ENDIAN_H */ ++#define HAVE_MACHINE_ENDIAN_H 1 + + /* Define to 1 if you have the <memory.h> header file. */ + #define HAVE_MEMORY_H 1 + + /* Define to 1 if you have the `mempcpy' function. */ +-#define HAVE_MEMPCPY 1 ++/* #undef HAVE_MEMPCPY */ + + /* Define to 1 if you have a working `mmap' system call. */ + #define HAVE_MMAP 1 +@@ -357,7 +357,7 @@ + #define HAVE_STDARG_H 1 + + /* Define to 1 if stdbool.h conforms to C99. */ +-/* #undef HAVE_STDBOOL_H */ ++#define HAVE_STDBOOL_H 1 + + /* Define to 1 if your compiler supports C99 extern inline */ + #define HAVE_STDC_INLINE 1 +@@ -384,7 +384,7 @@ + #define HAVE_STRING_H 1 + + /* Define to 1 if you have the `strlcpy' function. */ +-/* #undef HAVE_STRLCPY */ ++#define HAVE_STRLCPY 1 + + /* Define to 1 if you have the `strncasecmp' function. */ + #define HAVE_STRNCASECMP 1 +@@ -411,7 +411,7 @@ + #define HAVE_SYSCONF 1 + + /* Define to 1 if you have the <sys/endian.h> header file. */ +-/* #undef HAVE_SYS_ENDIAN_H */ ++#define HAVE_SYS_ENDIAN_H 1 + + /* Define to 1 if you have the <sys/mman.h> header file. */ + #define HAVE_SYS_MMAN_H 1 +@@ -486,13 +486,13 @@ + /* #undef HAVE__STATI64 */ + + /* Define to 1 if you have the `__bswap_16' intrinsic function. */ +-#define HAVE___BSWAP_16 1 ++/* #undef HAVE___BSWAP_16 */ + + /* Define to 1 if you have the `__bswap_32' intrinsic function. */ +-#define HAVE___BSWAP_32 1 ++/* #undef HAVE___BSWAP_32 */ + + /* Define to 1 if you have the `__bswap_64' intrinsic function. */ +-#define HAVE___BSWAP_64 1 ++/* #undef HAVE___BSWAP_64 */ + + /* Define to 1 if you have the `__builtin_bswap16' intrinsic function. */ + #define HAVE___BUILTIN_BSWAP16 1 +@@ -620,7 +620,7 @@ + /* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +-#define restrict __restrict ++#define restrict __restrict__ + /* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the +@@ -637,7 +637,7 @@ + /* Define if your snprintf function is not named snprintf. */ + /* #undef snprintf */ + +-/* Define if your typeof operator is not named typeof. */ ++/* Define if your typeof operator is not named `typeof'. */ + #define typeof __typeof + + /* Define to the type of an unsigned integer type wide enough to hold a diff --git a/devel/electron18/files/patch-third__party_node_node.py b/devel/electron18/files/patch-third__party_node_node.py new file mode 100644 index 000000000000..1abef8d4b08a --- /dev/null +++ b/devel/electron18/files/patch-third__party_node_node.py @@ -0,0 +1,11 @@ +--- third_party/node/node.py.orig 2022-05-11 07:01:55 UTC ++++ third_party/node/node.py +@@ -16,6 +16,8 @@ def GetBinaryPath(): + return os_path.join(os_path.dirname(__file__), *{ + 'Darwin': ('mac', darwin_name, 'bin', 'node'), + 'Linux': ('linux', 'node-linux-x64', 'bin', 'node'), ++ 'OpenBSD': ('openbsd', 'node-openbsd', 'bin', 'node'), ++ 'FreeBSD': ('freebsd', 'node-freebsd', 'bin', 'node'), + 'Windows': ('win', 'node.exe'), + }[platform.system()]) + diff --git a/devel/electron18/files/patch-third__party_opus_BUILD.gn b/devel/electron18/files/patch-third__party_opus_BUILD.gn new file mode 100644 index 000000000000..4dd66e3512ea --- /dev/null +++ b/devel/electron18/files/patch-third__party_opus_BUILD.gn @@ -0,0 +1,10 @@ +--- third_party/opus/BUILD.gn.orig 2022-05-11 07:01:55 UTC ++++ third_party/opus/BUILD.gn +@@ -41,7 +41,6 @@ config("opus_private_config") { + # Prefer alloca() over variable length arrays which are often inefficient; + # the opus code will automatically handle this correctly per-platform. + "USE_ALLOCA", +- "HAVE_ALLOCA_H", + ] + + include_dirs = [ diff --git a/devel/electron18/files/patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp b/devel/electron18/files/patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp new file mode 100644 index 000000000000..6159996ba4f4 --- /dev/null +++ b/devel/electron18/files/patch-third__party_pdfium_core_fxcrt_cfx__datetime.cpp @@ -0,0 +1,11 @@ +--- third_party/pdfium/core/fxcrt/cfx_datetime.cpp.orig 2022-05-19 05:18:27 UTC ++++ third_party/pdfium/core/fxcrt/cfx_datetime.cpp +@@ -11,7 +11,7 @@ + #include "third_party/base/check.h" + + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_APPLE) || defined(OS_ASMJS) ++ BUILDFLAG(IS_APPLE) || defined(OS_ASMJS) || BUILDFLAG(IS_BSD) + #include <sys/time.h> + #include <time.h> + #endif diff --git a/devel/electron18/files/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp b/devel/electron18/files/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp new file mode 100644 index 000000000000..8481c894bfef --- /dev/null +++ b/devel/electron18/files/patch-third__party_pdfium_core_fxge_cfx__fontmapper.cpp @@ -0,0 +1,11 @@ +--- third_party/pdfium/core/fxge/cfx_fontmapper.cpp.orig 2022-05-19 05:18:27 UTC ++++ third_party/pdfium/core/fxge/cfx_fontmapper.cpp +@@ -155,7 +155,7 @@ constexpr AltFontFamily kAltFontFamilies[] = { + {"ForteMT", "Forte"}, + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(OS_ASMJS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(OS_ASMJS) || BUILDFLAG(IS_BSD) + const char kNarrowFamily[] = "LiberationSansNarrow"; + #elif BUILDFLAG(IS_ANDROID) + const char kNarrowFamily[] = "RobotoCondensed"; diff --git a/devel/electron18/files/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp b/devel/electron18/files/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp new file mode 100644 index 000000000000..aab006fb5ead --- /dev/null +++ b/devel/electron18/files/patch-third__party_pdfium_core_fxge_linux_fx__linux__impl.cpp @@ -0,0 +1,23 @@ +--- third_party/pdfium/core/fxge/linux/fx_linux_impl.cpp.orig 2022-05-19 05:18:27 UTC ++++ third_party/pdfium/core/fxge/linux/fx_linux_impl.cpp +@@ -17,7 +17,7 @@ + #include "third_party/base/check.h" + #include "third_party/base/cxx17_backports.h" + +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !defined(OS_ASMJS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !defined(OS_ASMJS) && !BUILDFLAG(IS_BSD) + #error "Included on the wrong platform" + #endif + +@@ -165,9 +165,8 @@ class CLinuxPlatform : public CFX_GEModule::PlatformIf + std::unique_ptr<SystemFontInfoIface> CreateDefaultSystemFontInfo() override { + auto pInfo = std::make_unique<CFX_LinuxFontInfo>(); + if (!pInfo->ParseFontCfg(CFX_GEModule::Get()->GetUserFontPaths())) { +- pInfo->AddPath("/usr/share/fonts"); +- pInfo->AddPath("/usr/share/X11/fonts/Type1"); +- pInfo->AddPath("/usr/share/X11/fonts/TTF"); ++ pInfo->AddPath("/usr/X11R6/lib/X11/fonts/Type1"); ++ pInfo->AddPath("/usr/X11R6/lib/X11/fonts/TTF"); + pInfo->AddPath("/usr/local/share/fonts"); + } + return pInfo; diff --git a/devel/electron18/files/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp b/devel/electron18/files/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp new file mode 100644 index 000000000000..efb7395043c6 --- /dev/null +++ b/devel/electron18/files/patch-third__party_pdfium_fxjs_fx__date__helpers.cpp @@ -0,0 +1,22 @@ +--- third_party/pdfium/fxjs/fx_date_helpers.cpp.orig 2022-05-19 05:18:27 UTC ++++ third_party/pdfium/fxjs/fx_date_helpers.cpp +@@ -36,6 +36,11 @@ double GetLocalTZA() { + return 0; + time_t t = 0; + FXSYS_time(&t); ++#ifdef __FreeBSD__ ++ struct tm lt; ++ localtime_r(&t, <); ++ return (double)(-(lt.tm_gmtoff * 1000)); ++#else + FXSYS_localtime(&t); + #if BUILDFLAG(IS_WIN) + // In gcc 'timezone' is a global variable declared in time.h. In VC++, that +@@ -44,6 +49,7 @@ double GetLocalTZA() { + _get_timezone(&timezone); + #endif + return (double)(-(timezone * 1000)); ++#endif // __FreeBSD__ + } + + int GetDaylightSavingTA(double d) { diff --git a/devel/electron18/files/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp b/devel/electron18/files/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp new file mode 100644 index 000000000000..c6d9ea6765a4 --- /dev/null +++ b/devel/electron18/files/patch-third__party_pdfium_xfa_fxfa_parser_cxfa__timezoneprovider.cpp @@ -0,0 +1,41 @@ +--- third_party/pdfium/xfa/fxfa/parser/cxfa_timezoneprovider.cpp.orig 2022-05-19 03:49:50 UTC ++++ third_party/pdfium/xfa/fxfa/parser/cxfa_timezoneprovider.cpp +@@ -6,12 +6,16 @@ + + #include "xfa/fxfa/parser/cxfa_timezoneprovider.h" + ++#include <stdint.h> + #include <stdlib.h> + #include <time.h> + + #include "build/build_config.h" + + static bool g_bProviderTimeZoneSet = false; ++#if defined(OS_FREEBSD) ++static long g_lTimeZoneOffset = 0; ++#endif + + #if BUILDFLAG(IS_WIN) + #define TIMEZONE _timezone +@@ -24,9 +28,21 @@ static bool g_bProviderTimeZoneSet = false; + CXFA_TimeZoneProvider::CXFA_TimeZoneProvider() { + if (!g_bProviderTimeZoneSet) { + g_bProviderTimeZoneSet = true; ++#if defined(OS_FREEBSD) ++ time_t now = time(nullptr); ++ struct tm tm = {}; ++ ++ localtime_r(&now, &tm); ++ g_lTimeZoneOffset = tm.tm_gmtoff; ++#else + TZSET(); ++#endif + } ++#if defined(OS_FREEBSD) ++ tz_minutes_ = static_cast<int8_t>((abs(g_lTimeZoneOffset) % 3600) / 60); ++#else + tz_minutes_ = TIMEZONE / -60; ++#endif + } + + CXFA_TimeZoneProvider::~CXFA_TimeZoneProvider() = default; diff --git a/devel/electron18/files/patch-third__party_perfetto_include_perfetto_base_build__config.h b/devel/electron18/files/patch-third__party_perfetto_include_perfetto_base_build__config.h new file mode 100644 index 000000000000..96ab60e742de --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_include_perfetto_base_build__config.h @@ -0,0 +1,66 @@ +--- third_party/perfetto/include/perfetto/base/build_config.h.orig 2022-05-11 07:05:12 UTC ++++ third_party/perfetto/include/perfetto/base/build_config.h +@@ -27,6 +27,7 @@ + #if defined(__ANDROID__) + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 1 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0 +@@ -38,6 +39,7 @@ + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 1 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WASM() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 0 +@@ -51,9 +53,10 @@ + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 1 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0 + #endif +-#elif defined(__linux__) ++#elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 1 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 1 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0 +@@ -64,6 +67,8 @@ + #elif defined(_WIN32) + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 1 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0 +@@ -74,6 +79,8 @@ + #elif defined(__EMSCRIPTEN__) + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0 +@@ -87,6 +94,8 @@ + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WASM() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 1 +@@ -94,6 +103,8 @@ + #elif defined(__native_client__) + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0 ++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0 + #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0 diff --git a/devel/electron18/files/patch-third__party_perfetto_include_perfetto_base_thread__utils.h b/devel/electron18/files/patch-third__party_perfetto_include_perfetto_base_thread__utils.h new file mode 100644 index 000000000000..091b080e53de --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_include_perfetto_base_thread__utils.h @@ -0,0 +1,22 @@ +--- third_party/perfetto/include/perfetto/base/thread_utils.h.orig 2022-05-11 07:05:12 UTC ++++ third_party/perfetto/include/perfetto/base/thread_utils.h +@@ -34,6 +34,7 @@ __declspec(dllimport) unsigned long __stdcall GetCurre + #include <sys/syscall.h> + #include <sys/types.h> + #include <unistd.h> ++#include <pthread.h> + #else + #include <pthread.h> + #endif +@@ -45,6 +46,11 @@ namespace base { + using PlatformThreadId = pid_t; + inline PlatformThreadId GetThreadId() { + return gettid(); ++} ++#elif PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) ++using PlatformThreadId = uint64_t; ++inline PlatformThreadId GetThreadId() { ++ return reinterpret_cast<uint64_t>(pthread_self()); + } + #elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) + using PlatformThreadId = pid_t; diff --git a/devel/electron18/files/patch-third__party_perfetto_include_perfetto_base_time.h b/devel/electron18/files/patch-third__party_perfetto_include_perfetto_base_time.h new file mode 100644 index 000000000000..fc86050f6c9a --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_include_perfetto_base_time.h @@ -0,0 +1,20 @@ +--- third_party/perfetto/include/perfetto/base/time.h.orig 2022-05-11 07:05:12 UTC ++++ third_party/perfetto/include/perfetto/base/time.h +@@ -142,6 +142,9 @@ inline TimeNanos GetTimeInternalNs(clockid_t clk_id) { + // Return ns from boot. Conversely to GetWallTimeNs, this clock counts also time + // during suspend (when supported). + inline TimeNanos GetBootTimeNs() { ++#if defined(__FreeBSD__) ++ return GetTimeInternalNs(kWallTimeClockSource); ++#else + // Determine if CLOCK_BOOTTIME is available on the first call. + static const clockid_t kBootTimeClockSource = [] { + struct timespec ts = {}; +@@ -149,6 +152,7 @@ inline TimeNanos GetBootTimeNs() { + return res == 0 ? CLOCK_BOOTTIME : kWallTimeClockSource; + }(); + return GetTimeInternalNs(kBootTimeClockSource); ++#endif + } + + inline TimeNanos GetWallTimeNs() { diff --git a/devel/electron18/files/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h b/devel/electron18/files/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h new file mode 100644 index 000000000000..1e5c5591a22b --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_include_perfetto_ext_base_event__fd.h @@ -0,0 +1,11 @@ +--- third_party/perfetto/include/perfetto/ext/base/event_fd.h.orig 2022-05-11 07:05:12 UTC ++++ third_party/perfetto/include/perfetto/ext/base/event_fd.h +@@ -55,6 +55,8 @@ class EventFd { + // On Mac and other non-Linux UNIX platforms a pipe-based fallback is used. + // The write end of the wakeup pipe. + ScopedFile write_fd_; ++#else ++ ScopedFile write_fd_; + #endif + }; + diff --git a/devel/electron18/files/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h b/devel/electron18/files/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h new file mode 100644 index 000000000000..b2364c2f2af7 --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_include_perfetto_ext_base_thread__utils.h @@ -0,0 +1,15 @@ +--- third_party/perfetto/include/perfetto/ext/base/thread_utils.h.orig 2022-05-11 07:05:12 UTC ++++ third_party/perfetto/include/perfetto/ext/base/thread_utils.h +@@ -40,9 +40,10 @@ + namespace perfetto { + namespace base { + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \ +- PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) ++ PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) + // Sets the "comm" of the calling thread to the first 15 chars of the given + // string. + inline bool MaybeSetThreadName(const std::string& name) { diff --git a/devel/electron18/files/patch-third__party_perfetto_src_base_event__fd.cc b/devel/electron18/files/patch-third__party_perfetto_src_base_event__fd.cc new file mode 100644 index 000000000000..f9db93d4ac06 --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_src_base_event__fd.cc @@ -0,0 +1,22 @@ +--- third_party/perfetto/src/base/event_fd.cc.orig 2022-05-11 07:17:51 UTC ++++ third_party/perfetto/src/base/event_fd.cc +@@ -22,7 +22,8 @@ + #if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) + #include <Windows.h> + #include <synchapi.h> +-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++#elif (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) + #include <sys/eventfd.h> + #include <unistd.h> +@@ -57,7 +58,8 @@ void EventFd::Clear() { + PERFETTO_DFATAL("EventFd::Clear()"); + } + +-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++#elif (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) + + EventFd::EventFd() { diff --git a/devel/electron18/files/patch-third__party_perfetto_src_base_periodic__task.cc b/devel/electron18/files/patch-third__party_perfetto_src_base_periodic__task.cc new file mode 100644 index 000000000000..c648a8178452 --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_src_base_periodic__task.cc @@ -0,0 +1,20 @@ +--- third_party/perfetto/src/base/periodic_task.cc.orig 2022-05-11 07:05:12 UTC ++++ third_party/perfetto/src/base/periodic_task.cc +@@ -24,7 +24,7 @@ + #include "perfetto/base/time.h" + #include "perfetto/ext/base/file_utils.h" + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) && __ANDROID_API__ >= 19) + #include <sys/timerfd.h> + #endif +@@ -34,7 +34,7 @@ namespace base { + + namespace { + base::ScopedPlatformHandle CreateTimerFd(uint32_t period_ms) { +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) && __ANDROID_API__ >= 19) + base::ScopedPlatformHandle tfd( + timerfd_create(CLOCK_BOOTTIME, TFD_CLOEXEC | TFD_NONBLOCK)); diff --git a/devel/electron18/files/patch-third__party_perfetto_src_base_string__utils.cc b/devel/electron18/files/patch-third__party_perfetto_src_base_string__utils.cc new file mode 100644 index 000000000000..d0289c931532 --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_src_base_string__utils.cc @@ -0,0 +1,15 @@ +--- third_party/perfetto/src/base/string_utils.cc.orig 2022-05-11 07:17:51 UTC ++++ third_party/perfetto/src/base/string_utils.cc +@@ -36,9 +36,10 @@ namespace base { + + // Locale-independant as possible version of strtod. + double StrToD(const char* nptr, char** endptr) { +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ +- PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) ++ PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) + static auto c_locale = newlocale(LC_ALL, "C", nullptr); + return strtod_l(nptr, endptr, c_locale); + #else diff --git a/devel/electron18/files/patch-third__party_perfetto_src_base_subprocess__posix.cc b/devel/electron18/files/patch-third__party_perfetto_src_base_subprocess__posix.cc new file mode 100644 index 000000000000..93b06ef0cc10 --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_src_base_subprocess__posix.cc @@ -0,0 +1,22 @@ +--- third_party/perfetto/src/base/subprocess_posix.cc.orig 2022-05-11 07:17:51 UTC ++++ third_party/perfetto/src/base/subprocess_posix.cc +@@ -35,7 +35,8 @@ + #include <thread> + #include <tuple> + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) + #include <sys/prctl.h> + #endif +@@ -64,7 +65,8 @@ struct ChildProcessArgs { + // Don't add any dynamic allocation in this function. This will be invoked + // under a fork(), potentially in a state where the allocator lock is held. + void __attribute__((noreturn)) ChildProcess(ChildProcessArgs* args) { +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) + // In no case we want a child process to outlive its parent process. This is + // relevant for tests, so that a test failure/crash doesn't leave child diff --git a/devel/electron18/files/patch-third__party_perfetto_src_base_test_vm__test__utils.cc b/devel/electron18/files/patch-third__party_perfetto_src_base_test_vm__test__utils.cc new file mode 100644 index 000000000000..7a400e96c952 --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_src_base_test_vm__test__utils.cc @@ -0,0 +1,11 @@ +--- third_party/perfetto/src/base/test/vm_test_utils.cc.orig 2022-05-19 05:18:28 UTC ++++ third_party/perfetto/src/base/test/vm_test_utils.cc +@@ -92,7 +92,7 @@ bool IsMapped(void* start, size_t size) { + // Fuchsia doesn't yet support paging (b/119503290). + ignore_result(page_size); + return true; +-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_NACL) ++#elif PERFETTO_BUILDFLAG(PERFETTO_OS_NACL) || PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) + // mincore isn't available on NaCL. + ignore_result(page_size); + return true; diff --git a/devel/electron18/files/patch-third__party_perfetto_src_base_thread__task__runner.cc b/devel/electron18/files/patch-third__party_perfetto_src_base_thread__task__runner.cc new file mode 100644 index 000000000000..705637e9e3cb --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_src_base_thread__task__runner.cc @@ -0,0 +1,14 @@ +--- third_party/perfetto/src/base/thread_task_runner.cc.orig 2022-05-11 07:05:12 UTC ++++ third_party/perfetto/src/base/thread_task_runner.cc +@@ -27,8 +27,9 @@ + #include "perfetto/ext/base/thread_utils.h" + #include "perfetto/ext/base/unix_task_runner.h" + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ +- PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) ++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++ PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) + #include <sys/prctl.h> + #endif + diff --git a/devel/electron18/files/patch-third__party_perfetto_src_base_unix__socket.cc b/devel/electron18/files/patch-third__party_perfetto_src_base_unix__socket.cc new file mode 100644 index 000000000000..b6e8cd22f62c --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_src_base_unix__socket.cc @@ -0,0 +1,26 @@ +--- third_party/perfetto/src/base/unix_socket.cc.orig 2022-05-11 07:05:12 UTC ++++ third_party/perfetto/src/base/unix_socket.cc +@@ -42,7 +42,7 @@ + #include <unistd.h> + #endif + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) ++#if PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) || defined(__FreeBSD__) + #include <sys/ucred.h> + #endif + +@@ -791,9 +791,13 @@ void UnixSocket::ReadPeerCredentialsPosix() { + return; + PERFETTO_CHECK(peer_cred_mode_ != SockPeerCredMode::kIgnore); + +-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ ++#if !defined(__FreeBSD__) && PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \ + PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) ++#if PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) ++ struct sockpeercred user_cred; ++#else + struct ucred user_cred; ++#endif + socklen_t len = sizeof(user_cred); + int fd = sock_raw_.fd(); + int res = getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &user_cred, &len); diff --git a/devel/electron18/files/patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc b/devel/electron18/files/patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc new file mode 100644 index 000000000000..09099a772276 --- /dev/null +++ b/devel/electron18/files/patch-third__party_perfetto_src_tracing_core_tracing__service__impl.cc @@ -0,0 +1,12 @@ +--- third_party/perfetto/src/tracing/core/tracing_service_impl.cc.orig 2022-05-19 05:18:28 UTC ++++ third_party/perfetto/src/tracing/core/tracing_service_impl.cc +@@ -3042,7 +3042,8 @@ bool TracingServiceImpl::SnapshotClocks( + + #if !PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE) && \ + !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) && \ +- !PERFETTO_BUILDFLAG(PERFETTO_OS_NACL) ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_NACL) && \ ++ !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD) + struct { + clockid_t id; + protos::pbzero::BuiltinClock type; diff --git a/devel/electron18/files/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h b/devel/electron18/files/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h new file mode 100644 index 000000000000..b5df4f5e0ec0 --- /dev/null +++ b/devel/electron18/files/patch-third__party_protobuf_src_google_protobuf_stubs_platform__macros.h @@ -0,0 +1,11 @@ +--- third_party/protobuf/src/google/protobuf/stubs/platform_macros.h.orig 2022-05-11 07:01:56 UTC ++++ third_party/protobuf/src/google/protobuf/stubs/platform_macros.h +@@ -118,7 +118,7 @@ GOOGLE_PROTOBUF_PLATFORM_ERROR + + #undef GOOGLE_PROTOBUF_PLATFORM_ERROR + +-#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE) || defined(__OpenBSD__) ++#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE) + // Android ndk does not support the __thread keyword very well yet. Here + // we use pthread_key_create()/pthread_getspecific()/... methods for + // TLS support on android. diff --git a/devel/electron18/files/patch-third__party_protobuf_src_google_protobuf_stubs_strutil.h b/devel/electron18/files/patch-third__party_protobuf_src_google_protobuf_stubs_strutil.h new file mode 100644 index 000000000000..1069eb9bf0e4 --- /dev/null +++ b/devel/electron18/files/patch-third__party_protobuf_src_google_protobuf_stubs_strutil.h @@ -0,0 +1,18 @@ +--- third_party/protobuf/src/google/protobuf/stubs/strutil.h.orig 2022-05-11 07:01:56 UTC ++++ third_party/protobuf/src/google/protobuf/stubs/strutil.h +@@ -373,13 +373,13 @@ inline uint32 strtou32(const char *nptr, char **endptr + inline int64 strto64(const char *nptr, char **endptr, int base) { + GOOGLE_COMPILE_ASSERT(sizeof(int64) == sizeof(long long), + sizeof_int64_is_not_sizeof_long_long); +- return strtoll(nptr, endptr, base); ++ return std::strtoll(nptr, endptr, base); + } + + inline uint64 strtou64(const char *nptr, char **endptr, int base) { + GOOGLE_COMPILE_ASSERT(sizeof(uint64) == sizeof(unsigned long long), + sizeof_uint64_is_not_sizeof_long_long); +- return strtoull(nptr, endptr, base); ++ return std::strtoull(nptr, endptr, base); + } + + // ---------------------------------------------------------------------- diff --git a/devel/electron18/files/patch-third__party_skia_src_core_SkCpu.cpp b/devel/electron18/files/patch-third__party_skia_src_core_SkCpu.cpp new file mode 100644 index 000000000000..07980a5259a6 --- /dev/null +++ b/devel/electron18/files/patch-third__party_skia_src_core_SkCpu.cpp @@ -0,0 +1,26 @@ +--- third_party/skia/src/core/SkCpu.cpp.orig 2022-05-19 03:51:39 UTC ++++ third_party/skia/src/core/SkCpu.cpp +@@ -73,6 +73,23 @@ + return features; + } + ++#elif defined(SK_CPU_ARM64) && defined(__FreeBSD__) ++ #include <machine/armreg.h> ++ #ifndef ID_AA64ISAR0_CRC32_VAL ++ #define ID_AA64ISAR0_CRC32_VAL ID_AA64ISAR0_CRC32 ++ #endif ++ ++ static uint32_t read_cpu_features() { ++ uint32_t features = 0; ++ uint64_t id_aa64isar0; ++ ++ id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1); ++ if (ID_AA64ISAR0_CRC32_VAL(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) { ++ features |= SkCpu::CRC32; ++ } ++ return features; ++ } ++ + #elif defined(SK_CPU_ARM64) && __has_include(<sys/auxv.h>) + #include <sys/auxv.h> + diff --git a/devel/electron18/files/patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h b/devel/electron18/files/patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h new file mode 100644 index 000000000000..114a16a94582 --- /dev/null +++ b/devel/electron18/files/patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h @@ -0,0 +1,11 @@ +--- third_party/skia/src/gpu/GrAutoLocaleSetter.h.orig 2022-05-11 07:17:52 UTC ++++ third_party/skia/src/gpu/GrAutoLocaleSetter.h +@@ -27,7 +27,7 @@ + #define HAVE_XLOCALE 0 + #endif + +-#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) ++#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) || defined(__OpenBSD__) + #define HAVE_LOCALE_T 0 + #else + #define HAVE_LOCALE_T 1 diff --git a/devel/electron18/files/patch-third__party_skia_src_ports_SkOSFile__posix.cpp b/devel/electron18/files/patch-third__party_skia_src_ports_SkOSFile__posix.cpp new file mode 100644 index 000000000000..ec2c1925554c --- /dev/null +++ b/devel/electron18/files/patch-third__party_skia_src_ports_SkOSFile__posix.cpp @@ -0,0 +1,11 @@ +--- third_party/skia/src/ports/SkOSFile_posix.cpp.orig 2022-05-19 03:51:39 UTC ++++ third_party/skia/src/ports/SkOSFile_posix.cpp +@@ -25,7 +25,7 @@ + #endif + + void sk_fsync(FILE* f) { +-#if !defined(SK_BUILD_FOR_ANDROID) && !defined(__UCLIBC__) && !defined(_NEWLIB_VERSION) ++#if !defined(SK_BUILD_FOR_ANDROID) && !defined(__UCLIBC__) && !defined(_NEWLIB_VERSION) && !defined(__OpenBSD__) + int fd = fileno(f); + fsync(fd); + #endif diff --git a/devel/electron18/files/patch-third__party_sqlite_BUILD.gn b/devel/electron18/files/patch-third__party_sqlite_BUILD.gn new file mode 100644 index 000000000000..bb0895d4522b --- /dev/null +++ b/devel/electron18/files/patch-third__party_sqlite_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/sqlite/BUILD.gn.orig 2022-05-11 07:01:57 UTC ++++ third_party/sqlite/BUILD.gn +@@ -142,7 +142,7 @@ config("sqlite_warnings") { + ] + } + } +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + cflags += [ + # SQLite doesn't believe in compiler warnings, preferring testing. + # http://www.sqlite.org/faq.html#q17 diff --git a/devel/electron18/files/patch-third__party_sqlite_src_amalgamation_sqlite3.c b/devel/electron18/files/patch-third__party_sqlite_src_amalgamation_sqlite3.c new file mode 100644 index 000000000000..f4d4b6978278 --- /dev/null +++ b/devel/electron18/files/patch-third__party_sqlite_src_amalgamation_sqlite3.c @@ -0,0 +1,23 @@ +--- third_party/sqlite/src/amalgamation/sqlite3.c.orig 2022-05-19 05:18:29 UTC ++++ third_party/sqlite/src/amalgamation/sqlite3.c +@@ -40896,7 +40896,12 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nB + memset(zBuf, 0, nBuf); + randomnessPid = osGetpid(0); + #if !defined(SQLITE_TEST) && !defined(SQLITE_OMIT_RANDOMNESS) ++#if defined(__OpenBSD__) + { ++ arc4random_buf(zBuf, nBuf); ++ } ++#else ++ { + int fd, got; + fd = robust_open("/dev/urandom", O_RDONLY, 0); + if( fd<0 ){ +@@ -40911,6 +40916,7 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nB + robust_close(0, fd, __LINE__); + } + } ++#endif + #endif + return nBuf; + } diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_Common_Configurator.cpp b/devel/electron18/files/patch-third__party_swiftshader_src_Common_Configurator.cpp new file mode 100644 index 000000000000..3e9ab03901ac --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_Common_Configurator.cpp @@ -0,0 +1,13 @@ +--- third_party/swiftshader/src/Common/Configurator.cpp.orig 2022-05-11 07:17:52 UTC ++++ third_party/swiftshader/src/Common/Configurator.cpp +@@ -42,6 +42,10 @@ namespace sw + + bool Configurator::readFile() + { ++#if defined(__OpenBSD__) || defined(__FreeBSD__) ++ return false; ++#endif ++ + #if defined(__unix__) + if(access(path.c_str(), R_OK) != 0) + { diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_Common_MutexLock.hpp b/devel/electron18/files/patch-third__party_swiftshader_src_Common_MutexLock.hpp new file mode 100644 index 000000000000..7a4e0e735447 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_Common_MutexLock.hpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/src/Common/MutexLock.hpp.orig 2022-05-11 07:17:52 UTC ++++ third_party/swiftshader/src/Common/MutexLock.hpp +@@ -17,7 +17,7 @@ + + #include "Thread.hpp" + +-#if defined(__linux__) ++#if defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) + // Use a pthread mutex on Linux. Since many processes may use SwiftShader + // at the same time it's best to just have the scheduler overhead. + #include <pthread.h> diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_Common_SharedLibrary.hpp b/devel/electron18/files/patch-third__party_swiftshader_src_Common_SharedLibrary.hpp new file mode 100644 index 000000000000..d5b3e26f4590 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_Common_SharedLibrary.hpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/src/Common/SharedLibrary.hpp.orig 2022-05-11 07:17:52 UTC ++++ third_party/swiftshader/src/Common/SharedLibrary.hpp +@@ -97,7 +97,7 @@ void *loadLibrary(const std::string &libraryDirectory, + + inline void *getLibraryHandle(const char *path) + { +- #ifdef __ANDROID__ ++ #if defined(__ANDROID__) || defined(__OpenBSD__) || defined(__FreeBSD__) + // bionic doesn't support RTLD_NOLOAD before L + return dlopen(path, RTLD_NOW | RTLD_LOCAL); + #else diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_Main_SwiftConfig.cpp b/devel/electron18/files/patch-third__party_swiftshader_src_Main_SwiftConfig.cpp new file mode 100644 index 000000000000..b7d184a99d94 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_Main_SwiftConfig.cpp @@ -0,0 +1,14 @@ +--- third_party/swiftshader/src/Main/SwiftConfig.cpp.orig 2022-05-11 07:17:52 UTC ++++ third_party/swiftshader/src/Main/SwiftConfig.cpp +@@ -764,7 +764,11 @@ namespace sw + struct stat status; + int lastModified = ini.getInteger("LastModified", "Time", 0); + ++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) + bool noConfig = stat("SwiftShader.ini", &status) != 0; ++#else ++ bool noConfig = false; ++#endif + newConfig = !noConfig && abs((int)status.st_mtime - lastModified) > 1; + + if(disableServerOverride) diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp b/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp new file mode 100644 index 000000000000..a4aa1060a621 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libEGL_Display.cpp @@ -0,0 +1,20 @@ +--- third_party/swiftshader/src/OpenGL/libEGL/Display.cpp.orig 2022-05-11 07:17:52 UTC ++++ third_party/swiftshader/src/OpenGL/libEGL/Display.cpp +@@ -677,7 +677,7 @@ bool Display::isValidWindow(EGLNativeWindowType window + return status != 0; + } + return false; +- #elif defined(__linux__) ++ #elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) + return false; // Non X11 linux is headless only + #elif defined(__APPLE__) + return sw::OSX::IsValidWindow(window); +@@ -855,7 +855,7 @@ sw::Format Display::getDisplayFormat() const + { + return sw::FORMAT_X8R8G8B8; + } +- #elif defined(__linux__) // Non X11 linux is headless only ++ #elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) // Non X11 linux is headless only + return sw::FORMAT_A8B8G8R8; + #elif defined(__APPLE__) + return sw::FORMAT_A8B8G8R8; diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp b/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp new file mode 100644 index 000000000000..be9ca7551484 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libEGL_Surface.cpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/src/OpenGL/libEGL/Surface.cpp.orig 2022-05-11 07:17:52 UTC ++++ third_party/swiftshader/src/OpenGL/libEGL/Surface.cpp +@@ -349,7 +349,7 @@ bool WindowSurface::checkForResize() + + int windowWidth = windowAttributes.width; + int windowHeight = windowAttributes.height; +- #elif defined(__linux__) ++ #elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) + // Non X11 linux is headless only + int windowWidth = 100; + int windowHeight = 100; diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp b/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp new file mode 100644 index 000000000000..e88b9c9f1a75 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.cpp @@ -0,0 +1,29 @@ +--- third_party/swiftshader/src/OpenGL/libEGL/libEGL.cpp.orig 2022-05-11 07:17:52 UTC ++++ third_party/swiftshader/src/OpenGL/libEGL/libEGL.cpp +@@ -153,7 +153,7 @@ EGLDisplay EGLAPIENTRY GetDisplay(EGLNativeDisplayType + // FIXME: Check if display_id is the default display + } + +- #if defined(__linux__) && !defined(__ANDROID__) ++ #if (defined(__OpenBSD__) || defined(__linux__) || defined(__FreeBSD__)) && !defined(__ANDROID__) + #if defined(SWIFTSHADER_USE_X11) + if(!libX11) + #endif // Non X11 linux is headless only +@@ -216,7 +216,7 @@ const char *EGLAPIENTRY QueryString(EGLDisplay dpy, EG + { + return success( + "EGL_KHR_client_get_all_proc_addresses " +-#if defined(__linux__) && !defined(__ANDROID__) ++#if (defined(__OpenBSD__) || defined(__linux__) || defined(__FreeBSD__)) && !defined(__ANDROID__) + "EGL_KHR_platform_gbm " + #endif + #if defined(SWIFTSHADER_USE_X11) +@@ -1307,7 +1307,7 @@ EGLDisplay EGLAPIENTRY GetPlatformDisplay(EGLenum plat + { + TRACE("(EGLenum platform = 0x%X, void *native_display = %p, const EGLAttrib *attrib_list = %p)", platform, native_display, attrib_list); + +- #if defined(__linux__) && !defined(__ANDROID__) ++ #if (defined(__OpenBSD__) || defined(__linux__) || defined(__FreeBSD__)) && !defined(__ANDROID__) + switch(platform) + { + #if defined(SWIFTSHADER_USE_X11) diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp b/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp new file mode 100644 index 000000000000..d23a95d05210 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libEGL_libEGL.hpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/src/OpenGL/libEGL/libEGL.hpp.orig 2022-05-11 07:17:52 UTC ++++ third_party/swiftshader/src/OpenGL/libEGL/libEGL.hpp +@@ -100,7 +100,7 @@ class LibEGL (private) + #endif + #elif defined(__ANDROID__) + const char *libEGL_lib[] = {"libEGL_swiftshader.so", "libEGL_swiftshader.so"}; +- #elif defined(__linux__) ++ #elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) + #if defined(__LP64__) + const char *libEGL_lib[] = {"lib64EGL_translator.so", "libEGL.so.1", "libEGL.so", "libEGL_deprecated.so.1", "libEGL_deprecated.so"}; + #else diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp b/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp new file mode 100644 index 000000000000..2b30ceaf4978 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_OpenGL_libGLESv2_libGLESv2.hpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/src/OpenGL/libGLESv2/libGLESv2.hpp.orig 2022-05-11 07:17:52 UTC ++++ third_party/swiftshader/src/OpenGL/libGLESv2/libGLESv2.hpp +@@ -286,7 +286,7 @@ class LibGLESv2 (private) + #endif + #elif defined(__ANDROID__) + const char *libGLESv2_lib[] = {"libGLESv2_swiftshader.so", "libGLESv2_swiftshader.so"}; +- #elif defined(__linux__) ++ #elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__) + #if defined(__LP64__) + const char *libGLESv2_lib[] = {"lib64GLES_V2_translator.so", "libGLESv2.so.2", "libGLESv2.so", "libGLESv2_deprecated.so.2", "libGLESv2_deprecated.so"}; + #else diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_Reactor_Debug.cpp b/devel/electron18/files/patch-third__party_swiftshader_src_Reactor_Debug.cpp new file mode 100644 index 000000000000..47985a50fae7 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_Reactor_Debug.cpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/src/Reactor/Debug.cpp.orig 2022-05-11 07:07:58 UTC ++++ third_party/swiftshader/src/Reactor/Debug.cpp +@@ -46,7 +46,7 @@ namespace { + + bool IsUnderDebugger() + { +-#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) ++#if defined(PTRACE) && !defined(__APPLE__) && !defined(__MACH__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) + static bool checked = false; + static bool res = false; + diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_System_SharedLibrary.hpp b/devel/electron18/files/patch-third__party_swiftshader_src_System_SharedLibrary.hpp new file mode 100644 index 000000000000..b679f95c55e5 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_System_SharedLibrary.hpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/src/System/SharedLibrary.hpp.orig 2022-05-11 07:07:58 UTC ++++ third_party/swiftshader/src/System/SharedLibrary.hpp +@@ -96,7 +96,7 @@ inline void *loadLibrary(const char *path) + + inline void *getLibraryHandle(const char *path) + { +-# ifdef __ANDROID__ ++# if defined(__ANDROID__) || defined(__OpenBSD__) || defined(__FreeBSD__) + // bionic doesn't support RTLD_NOLOAD before L + return dlopen(path, RTLD_NOW | RTLD_LOCAL); + # else diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp b/devel/electron18/files/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp new file mode 100644 index 000000000000..ac125718c6e6 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_Vulkan_VkSemaphoreExternalLinux.hpp @@ -0,0 +1,20 @@ +--- third_party/swiftshader/src/Vulkan/VkSemaphoreExternalLinux.hpp.orig 2022-05-11 07:07:58 UTC ++++ third_party/swiftshader/src/Vulkan/VkSemaphoreExternalLinux.hpp +@@ -49,13 +49,17 @@ class SharedSemaphore (public) + { + pthread_mutexattr_t mattr; + pthread_mutexattr_init(&mattr); ++#if 0 + pthread_mutexattr_setpshared(&mattr, PTHREAD_PROCESS_SHARED); ++#endif + pthread_mutex_init(&mutex, &mattr); + pthread_mutexattr_destroy(&mattr); + + pthread_condattr_t cattr; + pthread_condattr_init(&cattr); ++#if 0 + pthread_condattr_setpshared(&cattr, PTHREAD_PROCESS_SHARED); ++#endif + pthread_cond_init(&cond, &cattr); + pthread_condattr_destroy(&cattr); + } diff --git a/devel/electron18/files/patch-third__party_swiftshader_src_WSI_libXCB.cpp b/devel/electron18/files/patch-third__party_swiftshader_src_WSI_libXCB.cpp new file mode 100644 index 000000000000..6fa7cac935e6 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_src_WSI_libXCB.cpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/src/WSI/libXCB.cpp.orig 2022-05-19 05:18:28 UTC ++++ third_party/swiftshader/src/WSI/libXCB.cpp +@@ -55,7 +55,7 @@ LibXcbExports *LibXCB::loadExports() + } + else + { +- libxcb = loadLibrary("libxcb.so.1"); ++ libxcb = loadLibrary("libxcb.so"); + } + + if(getProcAddress(RTLD_DEFAULT, "xcb_shm_query_version")) // Search the global scope for pre-loaded XCB library. diff --git a/devel/electron18/files/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h b/devel/electron18/files/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h new file mode 100644 index 000000000000..2d6f493a9e6b --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_third__party_llvm-10.0_configs_linux_include_llvm_Config_config.h @@ -0,0 +1,213 @@ +--- third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h.orig 2022-05-11 07:17:57 UTC ++++ third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h +@@ -1,20 +1,19 @@ ++/* include/llvm/Config/config.h.cmake corresponding to config.h.in. */ ++ + #ifndef CONFIG_H + #define CONFIG_H + + /* Exported configuration */ + #include "llvm/Config/llvm-config.h" + +-/* For detecting __GLIBC__ usage */ +-#include <features.h> +- + /* Bug report URL. */ + #define BUG_REPORT_URL "https://bugs.llvm.org/" + + /* Define to 1 to enable backtraces, and to 0 otherwise. */ +-/* #undef ENABLE_BACKTRACES */ ++#define ENABLE_BACKTRACES 1 + + /* Define to 1 to enable crash overrides, and to 0 otherwise. */ +-/* #undef ENABLE_CRASH_OVERRIDES */ ++#define ENABLE_CRASH_OVERRIDES 1 + + /* Define to 1 to enable crash memory dumps, and to 0 otherwise. */ + #define LLVM_ENABLE_CRASH_DUMPS 0 +@@ -25,14 +24,14 @@ + /* #undef BACKTRACE_HEADER */ + + /* Define to 1 if you have the <CrashReporterClient.h> header file. */ +-/* #undef HAVE_CRASHREPORTERCLIENT_H */ ++#undef HAVE_CRASHREPORTERCLIENT_H + + /* can use __crashreporter_info__ */ + #define HAVE_CRASHREPORTER_INFO 0 + + /* Define to 1 if you have the declaration of `arc4random', and to 0 if you + don't. */ +-#define HAVE_DECL_ARC4RANDOM 0 ++#define HAVE_DECL_ARC4RANDOM 1 + + /* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you + don't. */ +@@ -56,7 +55,7 @@ + #define HAVE_DLOPEN 1 + + /* Define if dladdr() is available on this platform. */ +-/* #undef HAVE_DLADDR */ ++#define HAVE_DLADDR 1 + + /* Define to 1 if you have the <errno.h> header file. */ + #define HAVE_ERRNO_H 1 +@@ -95,7 +94,7 @@ + #define HAVE_ISATTY 1 + + /* Define to 1 if you have the `edit' library (-ledit). */ +-/* #undef HAVE_LIBEDIT */ ++#define HAVE_LIBEDIT 1 + + /* Define to 1 if you have the `pfm' library (-lpfm). */ + /* #undef HAVE_LIBPFM */ +@@ -113,13 +112,13 @@ + /* #undef HAVE_PTHREAD_SETNAME_NP */ + + /* Define to 1 if you have the `z' library (-lz). */ +-/* #undef HAVE_LIBZ */ ++#define HAVE_LIBZ 1 + + /* Define to 1 if you have the <link.h> header file. */ +-#define HAVE_LINK_H 1 ++/* #undef HAVE_LINK_H */ + + /* Define to 1 if you have the `lseek64' function. */ +-#define HAVE_LSEEK64 1 ++/* #undef HAVE_LSEEK64 */ + + /* Define to 1 if you have the <mach/mach.h> header file. */ + /* #undef HAVE_MACH_MACH_H */ +@@ -127,15 +126,9 @@ + /* Define to 1 if you have the `mallctl' function. */ + /* #undef HAVE_MALLCTL */ + +-/* Define to 1 if you have the `mallinfo' function. */ +-#define HAVE_MALLINFO 1 ++/* Define if mallinfo() is available on this platform. */ ++/* #undef HAVE_MALLINFO */ + +-/* Some projects using SwiftShader bypass cmake (eg Chromium via gn) */ +-/* so we need to check glibc version for the new API to be safe */ +-#if defined(__GLIBC__) && __GLIBC_MINOR__ >= 33 +-#define HAVE_MALLINFO2 1 +-#endif +- + /* Define to 1 if you have the <malloc/malloc.h> header file. */ + /* #undef HAVE_MALLOC_MALLOC_H */ + +@@ -143,10 +136,10 @@ + /* #undef HAVE_MALLOC_ZONE_STATISTICS */ + + /* Define to 1 if you have the `posix_fallocate' function. */ +-#define HAVE_POSIX_FALLOCATE 1 ++/* #undef HAVE_POSIX_FALLOCATE */ + + /* Define to 1 if you have the `posix_spawn' function. */ +-/* #undef HAVE_POSIX_SPAWN */ ++#define HAVE_POSIX_SPAWN 1 + + /* Define to 1 if you have the `pread' function. */ + #define HAVE_PREAD 1 +@@ -170,10 +163,10 @@ + #define HAVE_SETENV 1 + + /* Define to 1 if you have the `sched_getaffinity' function. */ +-#define HAVE_SCHED_GETAFFINITY 1 ++/* #undef HAVE_SCHED_GETAFFINITY */ + + /* Define to 1 if you have the `CPU_COUNT' macro. */ +-#define HAVE_CPU_COUNT 1 ++/* #undef HAVE_CPU_COUNT */ + + /* Define to 1 if you have the `setrlimit' function. */ + #define HAVE_SETRLIMIT 1 +@@ -191,7 +184,7 @@ + #define HAVE_STRERROR_R 1 + + /* Define to 1 if you have the `sysconf' function. */ +-#define HAVE_SYSCONF 1 ++/* #undef HAVE_SYSCONF */ + + /* Define to 1 if you have the <sys/ioctl.h> header file. */ + #define HAVE_SYS_IOCTL_H 1 +@@ -218,7 +211,7 @@ + #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 + + /* Define to 1 if you have the <sys/types.h> header file. */ +-#define HAVE_SYS_TYPES_H 1 ++/* #undef HAVE_SYS_TYPES_H */ + + /* Define if the setupterm() function is supported this platform. */ + /* #undef HAVE_TERMINFO */ +@@ -227,16 +220,16 @@ + /* #undef HAVE_LIBXAR */ + + /* Define to 1 if you have the <termios.h> header file. */ +-/* #undef HAVE_TERMIOS_H */ ++#define HAVE_TERMIOS_H 1 + + /* Define to 1 if you have the <unistd.h> header file. */ + #define HAVE_UNISTD_H 1 + + /* Define to 1 if you have the <valgrind/valgrind.h> header file. */ +-/* #undef HAVE_VALGRIND_VALGRIND_H */ ++/* #define HAVE_VALGRIND_VALGRIND_H 1 */ + + /* Define to 1 if you have the <zlib.h> header file. */ +-/* #undef HAVE_ZLIB_H */ ++#define HAVE_ZLIB_H 1 + + /* Have host's _alloca */ + /* #undef HAVE__ALLOCA */ +@@ -303,26 +296,10 @@ + + /* Target triple LLVM will generate code for by default */ + /* Doesn't use `cmakedefine` because it is allowed to be empty. */ +-#if defined(__x86_64__) +-#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-linux-gnu" +-#elif defined(__i386__) +-#define LLVM_DEFAULT_TARGET_TRIPLE "i686-pc-linux-gnu" +-#elif defined(__arm__) +-#define LLVM_DEFAULT_TARGET_TRIPLE "armv7-linux-gnueabihf" +-#elif defined(__aarch64__) +-#define LLVM_DEFAULT_TARGET_TRIPLE "aarch64-linux-gnu" +-#elif defined(__mips__) +-#define LLVM_DEFAULT_TARGET_TRIPLE "mipsel-linux-gnu" +-#elif defined(__mips64) +-#define LLVM_DEFAULT_TARGET_TRIPLE "mips64el-linux-gnuabi64" +-#elif defined(__powerpc64__) +-#define LLVM_DEFAULT_TARGET_TRIPLE "powerpc64le-unknown-linux-gnu" +-#else +-#error "unknown architecture" +-#endif ++/* #define LLVM_DEFAULT_TARGET_TRIPLE "amd64-unknown-openbsd6.8" */ + + /* Define if zlib compression is available */ +-#define LLVM_ENABLE_ZLIB 0 ++/* #define LLVM_ENABLE_ZLIB 1 */ + + /* Define if overriding target triple is enabled */ + /* #undef LLVM_TARGET_TRIPLE_ENV */ +@@ -346,10 +323,10 @@ + #define PACKAGE_NAME "LLVM" + + /* Define to the full name and version of this package. */ +-#define PACKAGE_STRING "LLVM 10.0.0" ++#define PACKAGE_STRING "LLVM 11.1.0" + + /* Define to the version of this package. */ +-#define PACKAGE_VERSION "10.0.0" ++#define PACKAGE_VERSION "11.1.0" + + /* Define to the vendor of this package. */ + /* #undef PACKAGE_VENDOR */ +@@ -368,9 +345,6 @@ + + /* Whether GlobalISel rule coverage is being collected */ + #define LLVM_GISEL_COV_ENABLED 0 +- +-/* Define if we have z3 and want to build it */ +-#define LLVM_WITH_Z3 1 + + /* Define to the default GlobalISel coverage file prefix */ + /* #undef LLVM_GISEL_COV_PREFIX */ diff --git a/devel/electron18/files/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h b/devel/electron18/files/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h new file mode 100644 index 000000000000..28990155edfd --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_third__party_llvm-subzero_build_Linux_include_llvm_Config_config.h @@ -0,0 +1,47 @@ +--- third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h.orig 2022-05-11 07:08:02 UTC ++++ third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h +@@ -5,8 +5,6 @@ + #include "llvm/Config/llvm-config.h" + + /* For detecting __GLIBC__ usage */ +-#include <features.h> +- + /* Bug report URL. */ + #define BUG_REPORT_URL "http://llvm.org/bugs/" + +@@ -27,7 +25,7 @@ + + /* Define to 1 if you have the declaration of `arc4random', and to 0 if you + don't. */ +-#define HAVE_DECL_ARC4RANDOM 0 ++#define HAVE_DECL_ARC4RANDOM 1 + + /* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you + don't. */ +@@ -124,7 +122,7 @@ + #define HAVE_LINK_H 1 + + /* Define to 1 if you have the `lseek64' function. */ +-#define HAVE_LSEEK64 1 ++/* #define HAVE_LSEEK64 */ + + /* Define to 1 if you have the <mach/mach.h> header file. */ + /* #undef HAVE_MACH_MACH_H */ +@@ -133,7 +131,7 @@ + /* #undef HAVE_MALLCTL */ + + /* Define to 1 if you have the `mallinfo' function. */ +-#define HAVE_MALLINFO 1 ++/* #define HAVE_MALLINFO */ + + /* Some projects using SwiftShader bypass cmake (eg Chromium via gn) */ + /* so we need to check glibc version for the new API to be safe */ +@@ -163,7 +161,7 @@ + /* #undef HAVE_NDIR_H */ + + /* Define to 1 if you have the `posix_fallocate' function. */ +-#define HAVE_POSIX_FALLOCATE 1 ++/* #define HAVE_POSIX_FALLOCATE */ + + /* Define to 1 if you have the `posix_spawn' function. */ + #define HAVE_POSIX_SPAWN 1 diff --git a/devel/electron18/files/patch-third__party_swiftshader_third__party_marl_src_memory.cpp b/devel/electron18/files/patch-third__party_swiftshader_third__party_marl_src_memory.cpp new file mode 100644 index 000000000000..a275aad32835 --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_third__party_marl_src_memory.cpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/third_party/marl/src/memory.cpp.orig 2022-05-11 07:08:02 UTC ++++ third_party/swiftshader/third_party/marl/src/memory.cpp +@@ -19,7 +19,7 @@ + + #include <cstring> + +-#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) ++#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__) + #include <sys/mman.h> + #include <unistd.h> + namespace { diff --git a/devel/electron18/files/patch-third__party_swiftshader_third__party_marl_src_thread.cpp b/devel/electron18/files/patch-third__party_swiftshader_third__party_marl_src_thread.cpp new file mode 100644 index 000000000000..bc6e8af5a2bd --- /dev/null +++ b/devel/electron18/files/patch-third__party_swiftshader_third__party_marl_src_thread.cpp @@ -0,0 +1,11 @@ +--- third_party/swiftshader/third_party/marl/src/thread.cpp.orig 2022-05-19 03:52:19 UTC ++++ third_party/swiftshader/third_party/marl/src/thread.cpp +@@ -426,7 +426,7 @@ void Thread::setName(const char* fmt, ...) { + pthread_setname_np(name); + #elif defined(__FreeBSD__) + pthread_set_name_np(pthread_self(), name); +-#elif !defined(__Fuchsia__) ++#elif !defined(__Fuchsia__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) + pthread_setname_np(pthread_self(), name); + #endif + diff --git a/devel/electron18/files/patch-third__party_test__fonts_fontconfig_BUILD.gn b/devel/electron18/files/patch-third__party_test__fonts_fontconfig_BUILD.gn new file mode 100644 index 000000000000..29b6a9333bda --- /dev/null +++ b/devel/electron18/files/patch-third__party_test__fonts_fontconfig_BUILD.gn @@ -0,0 +1,15 @@ +--- third_party/test_fonts/fontconfig/BUILD.gn.orig 2022-05-19 03:47:11 UTC ++++ third_party/test_fonts/fontconfig/BUILD.gn +@@ -26,7 +26,11 @@ if (is_linux || is_chromeos) { + + copy("fonts_conf") { + sources = [ "fonts.conf" ] +- outputs = [ "$root_out_dir/etc/fonts/{{source_file_part}}" ] ++ if (is_freebsd) { ++ outputs = [ "$root_out_dir/usr/local/etc/fonts/{{source_file_part}}" ] ++ } else { ++ outputs = [ "$root_out_dir/etc/fonts/{{source_file_part}}" ] ++ } + } + + if (current_toolchain == host_toolchain) { diff --git a/devel/electron18/files/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc b/devel/electron18/files/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc new file mode 100644 index 000000000000..dee7dc626a38 --- /dev/null +++ b/devel/electron18/files/patch-third__party_test__fonts_fontconfig_fontconfig__util__linux.cc @@ -0,0 +1,27 @@ +--- third_party/test_fonts/fontconfig/fontconfig_util_linux.cc.orig 2022-05-19 03:47:11 UTC ++++ third_party/test_fonts/fontconfig/fontconfig_util_linux.cc +@@ -2,6 +2,8 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++#include "build/build_config.h" ++ + #include "third_party/test_fonts/fontconfig/fontconfig_util_linux.h" + + #include <fontconfig/fontconfig.h> +@@ -15,11 +17,15 @@ + namespace test_fonts { + + std::string GetSysrootDir() { ++#if BUILDFLAG(IS_BSD) ++ return std::string("."); ++#else + char buf[PATH_MAX + 1]; + auto count = readlink("/proc/self/exe", buf, PATH_MAX); + assert(count > 0); + buf[count] = '\0'; + return dirname(buf); ++#endif + } + + void SetUpFontconfig() { diff --git a/devel/electron18/files/patch-third__party_unrar_src_crypt.cpp b/devel/electron18/files/patch-third__party_unrar_src_crypt.cpp new file mode 100644 index 000000000000..89fbee3195eb --- /dev/null +++ b/devel/electron18/files/patch-third__party_unrar_src_crypt.cpp @@ -0,0 +1,11 @@ +--- third_party/unrar/src/crypt.cpp.orig 2022-05-11 07:02:07 UTC ++++ third_party/unrar/src/crypt.cpp +@@ -120,6 +120,8 @@ void GetRnd(byte *RndBuf,size_t BufSize) + Success=CryptGenRandom(hProvider, (DWORD)BufSize, RndBuf) == TRUE; + CryptReleaseContext(hProvider, 0); + } ++#elif defined(__OpenBSD__) ++ arc4random_buf(RndBuf, BufSize); + #elif defined(_UNIX) + FILE *rndf = fopen("/dev/urandom", "r"); + if (rndf!=NULL) diff --git a/devel/electron18/files/patch-third__party_usrsctp_BUILD.gn b/devel/electron18/files/patch-third__party_usrsctp_BUILD.gn new file mode 100644 index 000000000000..89e249b4269d --- /dev/null +++ b/devel/electron18/files/patch-third__party_usrsctp_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/usrsctp/BUILD.gn.orig 2022-05-11 07:17:05 UTC ++++ third_party/usrsctp/BUILD.gn +@@ -13,7 +13,7 @@ config("usrsctp_public_config") { + + # This is part of the public config because it's used both by usrsctp and + # the client (WebRTC), to determine if the length field needs populating. +- if (is_mac || is_ios || target_os == "freebsd") { ++ if (is_mac || is_ios || target_os == "freebsd" || target_os == "openbsd") { + defines = [ "HAVE_SCONN_LEN" ] + } + } diff --git a/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_BUILD.gn b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_BUILD.gn new file mode 100644 index 000000000000..cf2775e4b8d0 --- /dev/null +++ b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/vulkan-deps/vulkan-loader/src/BUILD.gn.orig 2022-05-19 05:18:36 UTC ++++ third_party/vulkan-deps/vulkan-loader/src/BUILD.gn +@@ -61,7 +61,7 @@ config("vulkan_internal_config") { + defines += [ + "SYSCONFDIR=\"/etc\"", + "FALLBACK_CONFIG_DIRS=\"/etc/xdg\"", +- "FALLBACK_DATA_DIRS=\"/usr/local/share:/usr/share\"", ++ "FALLBACK_DATA_DIRS=\"/usr/X11R6/share:/usr/local/share:/usr/share\"", + ] + } + } diff --git a/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_loader_allocation.h b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_loader_allocation.h new file mode 100644 index 000000000000..f0798ade19c0 --- /dev/null +++ b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_loader_allocation.h @@ -0,0 +1,14 @@ +--- third_party/vulkan-deps/vulkan-loader/src/loader/allocation.h.orig 2022-05-11 07:07:29 UTC ++++ third_party/vulkan-deps/vulkan-loader/src/loader/allocation.h +@@ -39,8 +39,8 @@ void loader_device_heap_free(const struct loader_devic + void *loader_device_heap_realloc(const struct loader_device *device, void *pMemory, size_t orig_size, size_t size, + VkSystemAllocationScope alloc_scope); + +-#if defined(__linux__) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__QNXNTO__) || defined(__FreeBSD__) ++#if defined(__linux__) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__QNXNTO__) || defined(__FreeBSD__) || defined(__OpenBSD__) + #define loader_stack_alloc(size) alloca(size) + #elif defined(_WIN32) + #define loader_stack_alloc(size) _alloca(size) +-#endif // defined(_WIN32) +\ No newline at end of file ++#endif // defined(_WIN32) diff --git a/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_loader_get__environment.c b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_loader_get__environment.c new file mode 100644 index 000000000000..aef6294b91ba --- /dev/null +++ b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_loader_get__environment.c @@ -0,0 +1,27 @@ +--- third_party/vulkan-deps/vulkan-loader/src/loader/get_environment.c.orig 2022-05-11 07:18:05 UTC ++++ third_party/vulkan-deps/vulkan-loader/src/loader/get_environment.c +@@ -37,7 +37,7 @@ + #endif // !defined(VULKAN_NON_CMAKE_BUILD) + + // Environment variables +-#if defined(__linux__) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__QNXNTO__) || defined(__FreeBSD__) ++#if defined(__linux__) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__QNXNTO__) || defined(__FreeBSD__) || defined(__OpenBSD__) + + bool is_high_integrity() { return geteuid() != getuid() || getegid() != getgid(); } + +@@ -49,7 +49,7 @@ char *loader_getenv(const char *name, const struct loa + } + + char *loader_secure_getenv(const char *name, const struct loader_instance *inst) { +-#if defined(__APPLE__) || defined(__FreeBSD__) ++#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) + // Apple does not appear to have a secure getenv implementation. + // The main difference between secure getenv and getenv is that secure getenv + // returns NULL if the process is being run with elevated privileges by a normal user. +@@ -169,4 +169,4 @@ void loader_free_getenv(char *val, const struct loader + (void)inst; + } + +-#endif +\ No newline at end of file ++#endif diff --git a/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_loader_get__environment.h b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_loader_get__environment.h new file mode 100644 index 000000000000..3bd242ab5a03 --- /dev/null +++ b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_loader_get__environment.h @@ -0,0 +1,16 @@ +--- third_party/vulkan-deps/vulkan-loader/src/loader/get_environment.h.orig 2022-05-11 07:07:29 UTC ++++ third_party/vulkan-deps/vulkan-loader/src/loader/get_environment.h +@@ -35,10 +35,10 @@ + char *loader_getenv(const char *name, const struct loader_instance *inst); + void loader_free_getenv(char *val, const struct loader_instance *inst); + +-#if defined(WIN32) || defined(__linux__) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__QNXNTO__) || defined(__FreeBSD__) ++#if defined(WIN32) || defined(__linux__) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__QNXNTO__) || defined(__FreeBSD__) || defined(__OpenBSD__) + + bool is_high_integrity(); + + char *loader_secure_getenv(const char *name, const struct loader_instance *inst); + +-#endif +\ No newline at end of file ++#endif diff --git a/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_loader_vk__loader__platform.h b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_loader_vk__loader__platform.h new file mode 100644 index 000000000000..de31ced4c3b7 --- /dev/null +++ b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-loader_src_loader_vk__loader__platform.h @@ -0,0 +1,36 @@ +--- third_party/vulkan-deps/vulkan-loader/src/loader/vk_loader_platform.h.orig 2022-05-19 05:18:36 UTC ++++ third_party/vulkan-deps/vulkan-loader/src/loader/vk_loader_platform.h +@@ -42,7 +42,7 @@ + #include "dlopen_fuchsia.h" + #endif // defined(__Fuchsia__) + +-#if defined(__linux__) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__QNXNTO__) || defined(__FreeBSD__) ++#if defined(__linux__) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__QNXNTO__) || defined(__FreeBSD__) || defined(__OpenBSD__) + #include <unistd.h> + // Note: The following file is for dynamic loading: + #include <dlfcn.h> +@@ -102,7 +102,7 @@ + // Override layer information + #define VK_OVERRIDE_LAYER_NAME "VK_LAYER_LUNARG_override" + +-#if defined(__linux__) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__QNXNTO__) || defined(__FreeBSD__) ++#if defined(__linux__) || defined(__APPLE__) || defined(__Fuchsia__) || defined(__QNXNTO__) || defined(__FreeBSD__) || defined(__OpenBSD__) + /* Linux-specific common code: */ + + // VK Library Filenames, Paths, etc.: +@@ -192,6 +192,15 @@ static inline char *loader_platform_executable_path(ch + }; + if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), buffer, &size, NULL, 0) < 0) + return NULL; ++ ++ return buffer; ++} ++#elif defined(__OpenBSD__) ++static inline char *loader_platform_executable_path(char *buffer, size_t size) { ++ if ((buffer = getenv("CHROME_EXE_PATH")) != NULL) ++ return buffer; ++ else ++ buffer = "/usr/local/chrome/chrome"; + + return buffer; + } diff --git a/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-validation-layers_src_layers_vk__loader__platform.h b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-validation-layers_src_layers_vk__loader__platform.h new file mode 100644 index 000000000000..1c7d7f218d2d --- /dev/null +++ b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-validation-layers_src_layers_vk__loader__platform.h @@ -0,0 +1,11 @@ +--- third_party/vulkan-deps/vulkan-validation-layers/src/layers/vk_loader_platform.h.orig 2022-05-11 07:08:01 UTC ++++ third_party/vulkan-deps/vulkan-validation-layers/src/layers/vk_loader_platform.h +@@ -33,7 +33,7 @@ + #undef NOMINMAX + #include "vulkan/vk_sdk_platform.h" + +-#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) ++#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) + /* Linux-specific common code: */ + + // Headers: diff --git a/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-validation-layers_src_layers_vk__mem__alloc.h b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-validation-layers_src_layers_vk__mem__alloc.h new file mode 100644 index 000000000000..3f18943d9c89 --- /dev/null +++ b/devel/electron18/files/patch-third__party_vulkan-deps_vulkan-validation-layers_src_layers_vk__mem__alloc.h @@ -0,0 +1,12 @@ +--- third_party/vulkan-deps/vulkan-validation-layers/src/layers/vk_mem_alloc.h.orig 2022-05-11 07:08:01 UTC ++++ third_party/vulkan-deps/vulkan-validation-layers/src/layers/vk_mem_alloc.h +@@ -3181,7 +3181,8 @@ void *aligned_alloc(size_t alignment, size_t size) + + return memalign(alignment, size); + } +-#elif defined(__APPLE__) || defined(__ANDROID__) ++#elif defined(__APPLE__) || defined(__ANDROID__) || defined(__OpenBSD__) || \ ++ defined(__FreeBSD__) + # define ALIGNED_ALLOC_WITH_POSIX_MEMALIGN + #elif defined(__GNU_LIBRARY__) + # if !defined(__GLIBC_PREREQ) || !__GLIBC_PREREQ(2, 16) diff --git a/devel/electron18/files/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h b/devel/electron18/files/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h new file mode 100644 index 000000000000..c44cb289dfab --- /dev/null +++ b/devel/electron18/files/patch-third__party_vulkan__memory__allocator_include_vk__mem__alloc.h @@ -0,0 +1,11 @@ +--- third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.orig 2022-05-19 03:49:59 UTC ++++ third_party/vulkan_memory_allocator/include/vk_mem_alloc.h +@@ -2503,7 +2503,7 @@ void *vma_aligned_alloc(size_t alignment, size_t size) +
+ return memalign(alignment, size);
+ }
+-#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC))
++#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC)) || defined(__OpenBSD__) || defined(__FreeBSD__)
+ #include <cstdlib>
+
+ #if defined(__APPLE__)
diff --git a/devel/electron18/files/patch-third__party_wayland_features.gni b/devel/electron18/files/patch-third__party_wayland_features.gni new file mode 100644 index 000000000000..2cb175d1d49b --- /dev/null +++ b/devel/electron18/files/patch-third__party_wayland_features.gni @@ -0,0 +1,17 @@ +--- third_party/wayland/features.gni.orig 2022-05-19 03:47:18 UTC ++++ third_party/wayland/features.gni +@@ -13,8 +13,13 @@ declare_args() { + default_toolchain != "//build/toolchain/cros:target" + + # Path to wayland-scanner. Has effect only when the system libwayland is used. +- assert(host_os == "linux") ++ assert(host_os == "linux" || host_os == "freebsd") + system_wayland_scanner_path = "/usr/bin/wayland-scanner" ++ if (is_bsd) { ++ system_wayland_scanner_path = "/usr/local/bin/wayland-scanner" ++ } else { ++ system_wayland_scanner_path = "/usr/bin/wayland-scanner" ++ } + + # This may be set by Chromium packagers who do not wish to use the bundled + # wayland scanner. diff --git a/devel/electron18/files/patch-third__party_webrtc_BUILD.gn b/devel/electron18/files/patch-third__party_webrtc_BUILD.gn new file mode 100644 index 000000000000..e27953c057d7 --- /dev/null +++ b/devel/electron18/files/patch-third__party_webrtc_BUILD.gn @@ -0,0 +1,12 @@ +--- third_party/webrtc/BUILD.gn.orig 2022-05-19 05:18:46 UTC ++++ third_party/webrtc/BUILD.gn +@@ -196,6 +196,9 @@ config("common_inherited_config") { + if (is_linux || is_chromeos) { + defines += [ "WEBRTC_LINUX" ] + } ++ if (is_bsd) { ++ defines += [ "WEBRTC_BSD" ] ++ } + if (is_mac) { + defines += [ "WEBRTC_MAC" ] + } diff --git a/devel/electron18/files/patch-third__party_webrtc_modules_audio__device_BUILD.gn b/devel/electron18/files/patch-third__party_webrtc_modules_audio__device_BUILD.gn new file mode 100644 index 000000000000..6630d5ed2387 --- /dev/null +++ b/devel/electron18/files/patch-third__party_webrtc_modules_audio__device_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/webrtc/modules/audio_device/BUILD.gn.orig 2021-07-15 19:15:55 UTC ++++ third_party/webrtc/modules/audio_device/BUILD.gn +@@ -264,7 +264,7 @@ rtc_library("audio_device_impl") { + if (rtc_use_dummy_audio_file_devices) { + defines += [ "WEBRTC_DUMMY_FILE_DEVICES" ] + } else { +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "linux/alsasymboltable_linux.cc", + "linux/alsasymboltable_linux.h", diff --git a/devel/electron18/files/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc b/devel/electron18/files/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc new file mode 100644 index 000000000000..a6a09e87ca29 --- /dev/null +++ b/devel/electron18/files/patch-third__party_webrtc_modules_desktop__capture_linux_x11_x__server__pixel__buffer.cc @@ -0,0 +1,15 @@ +--- third_party/webrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc.orig 2022-05-19 03:51:01 UTC ++++ third_party/webrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc +@@ -212,6 +212,12 @@ bool XServerPixelBuffer::Init(XAtomCache* cache, Windo + void XServerPixelBuffer::InitShm(const XWindowAttributes& attributes) { + Visual* default_visual = attributes.visual; + int default_depth = attributes.depth; ++#if defined(__OpenBSD__) ++// pledge(2) ++ RTC_LOG(LS_WARNING) << "Unable to use shmget(2) while using pledge(2). " ++ "Performance may be degraded."; ++ return; ++#endif + + int major, minor; + Bool have_pixmaps; diff --git a/devel/electron18/files/patch-third__party_webrtc_rtc__base_BUILD.gn b/devel/electron18/files/patch-third__party_webrtc_rtc__base_BUILD.gn new file mode 100644 index 000000000000..bf2802e99b1d --- /dev/null +++ b/devel/electron18/files/patch-third__party_webrtc_rtc__base_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/webrtc/rtc_base/BUILD.gn.orig 2022-05-19 05:18:47 UTC ++++ third_party/webrtc/rtc_base/BUILD.gn +@@ -1087,7 +1087,7 @@ rtc_library("rtc_base") { + sources += [ "mac_ifaddrs_converter.cc" ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + libs += [ + "dl", + "rt", diff --git a/devel/electron18/files/patch-third__party_webrtc_rtc__base_byte__order.h b/devel/electron18/files/patch-third__party_webrtc_rtc__base_byte__order.h new file mode 100644 index 000000000000..a5ddd38e96da --- /dev/null +++ b/devel/electron18/files/patch-third__party_webrtc_rtc__base_byte__order.h @@ -0,0 +1,11 @@ +--- third_party/webrtc/rtc_base/byte_order.h.orig 2022-05-11 07:06:40 UTC ++++ third_party/webrtc/rtc_base/byte_order.h +@@ -88,6 +88,8 @@ + #error WEBRTC_ARCH_BIG_ENDIAN or WEBRTC_ARCH_LITTLE_ENDIAN must be defined. + #endif // defined(WEBRTC_ARCH_LITTLE_ENDIAN) + ++#elif defined(WEBRTC_BSD) ++#include <sys/endian.h> + #elif defined(WEBRTC_POSIX) + #include <endian.h> + #else diff --git a/devel/electron18/files/patch-third__party_webrtc_rtc__base_ip__address.cc b/devel/electron18/files/patch-third__party_webrtc_rtc__base_ip__address.cc new file mode 100644 index 000000000000..0b34d5ee668a --- /dev/null +++ b/devel/electron18/files/patch-third__party_webrtc_rtc__base_ip__address.cc @@ -0,0 +1,12 @@ +--- third_party/webrtc/rtc_base/ip_address.cc.orig 2022-05-11 07:17:59 UTC ++++ third_party/webrtc/rtc_base/ip_address.cc +@@ -11,7 +11,8 @@ + #if defined(WEBRTC_POSIX) + #include <netinet/in.h> + #include <sys/socket.h> +-#ifdef OPENBSD ++#if defined(WEBRTC_BSD) ++#include <sys/types.h> + #include <netinet/in_systm.h> + #endif + #ifndef __native_client__ diff --git a/devel/electron18/files/patch-third__party_webrtc_rtc__base_network.cc b/devel/electron18/files/patch-third__party_webrtc_rtc__base_network.cc new file mode 100644 index 000000000000..295844a3e524 --- /dev/null +++ b/devel/electron18/files/patch-third__party_webrtc_rtc__base_network.cc @@ -0,0 +1,15 @@ +--- third_party/webrtc/rtc_base/network.cc.orig 2022-05-19 05:18:47 UTC ++++ third_party/webrtc/rtc_base/network.cc +@@ -258,7 +258,12 @@ AdapterType GetAdapterTypeFromName(const char* network + } + #endif + ++#if defined(WEBRTC_BSD) ++ // Treat all other network interface names as ethernet on BSD ++ return ADAPTER_TYPE_ETHERNET; ++#else + return ADAPTER_TYPE_UNKNOWN; ++#endif + } + + NetworkManager::NetworkManager() {} diff --git a/devel/electron18/files/patch-third__party_webrtc_rtc__base_physical__socket__server.cc b/devel/electron18/files/patch-third__party_webrtc_rtc__base_physical__socket__server.cc new file mode 100644 index 000000000000..80e8af852775 --- /dev/null +++ b/devel/electron18/files/patch-third__party_webrtc_rtc__base_physical__socket__server.cc @@ -0,0 +1,65 @@ +--- third_party/webrtc/rtc_base/physical_socket_server.cc.orig 2022-05-11 07:06:40 UTC ++++ third_party/webrtc/rtc_base/physical_socket_server.cc +@@ -51,7 +51,7 @@ + #include "rtc_base/synchronization/mutex.h" + #include "rtc_base/time_utils.h" + +-#if defined(WEBRTC_LINUX) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) + #include <linux/sockios.h> + #endif + +@@ -70,7 +70,7 @@ typedef void* SockOptArg; + + #endif // WEBRTC_POSIX + +-#if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(__native_client__) ++#if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(__native_client__) && !defined(WEBRTC_BSD) + + int64_t GetSocketRecvTimestamp(int socket) { + struct timeval tv_ioctl; +@@ -298,7 +298,7 @@ int PhysicalSocket::GetOption(Option opt, int* value) + return -1; + } + if (opt == OPT_DONTFRAGMENT) { +-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) + *value = (*value != IP_PMTUDISC_DONT) ? 1 : 0; + #endif + } else if (opt == OPT_DSCP) { +@@ -316,7 +316,7 @@ int PhysicalSocket::SetOption(Option opt, int value) { + if (TranslateOption(opt, &slevel, &sopt) == -1) + return -1; + if (opt == OPT_DONTFRAGMENT) { +-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) + value = (value) ? IP_PMTUDISC_DO : IP_PMTUDISC_DONT; + #endif + } else if (opt == OPT_DSCP) { +@@ -344,7 +344,7 @@ int PhysicalSocket::SetOption(Option opt, int value) { + int PhysicalSocket::Send(const void* pv, size_t cb) { + int sent = DoSend( + s_, reinterpret_cast<const char*>(pv), static_cast<int>(cb), +-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) + // Suppress SIGPIPE. Without this, attempting to send on a socket whose + // other end is closed will result in a SIGPIPE signal being raised to + // our process, which by default will terminate the process, which we +@@ -373,7 +373,7 @@ int PhysicalSocket::SendTo(const void* buffer, + size_t len = addr.ToSockAddrStorage(&saddr); + int sent = + DoSendTo(s_, static_cast<const char*>(buffer), static_cast<int>(length), +-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) + // Suppress SIGPIPE. See above for explanation. + MSG_NOSIGNAL, + #else +@@ -564,7 +564,7 @@ int PhysicalSocket::TranslateOption(Option opt, int* s + *slevel = IPPROTO_IP; + *sopt = IP_DONTFRAGMENT; + break; +-#elif defined(WEBRTC_MAC) || defined(BSD) || defined(__native_client__) ++#elif defined(WEBRTC_MAC) || defined(WEBRTC_BSD) || defined(__native_client__) + RTC_LOG(LS_WARNING) << "Socket::OPT_DONTFRAGMENT not supported."; + return -1; + #elif defined(WEBRTC_POSIX) diff --git a/devel/electron18/files/patch-third__party_webrtc_rtc__base_physical__socket__server.h b/devel/electron18/files/patch-third__party_webrtc_rtc__base_physical__socket__server.h new file mode 100644 index 000000000000..2bbe1d8b7d5d --- /dev/null +++ b/devel/electron18/files/patch-third__party_webrtc_rtc__base_physical__socket__server.h @@ -0,0 +1,11 @@ +--- third_party/webrtc/rtc_base/physical_socket_server.h.orig 2021-01-07 00:39:38 UTC ++++ third_party/webrtc/rtc_base/physical_socket_server.h +@@ -11,7 +11,7 @@ + #ifndef RTC_BASE_PHYSICAL_SOCKET_SERVER_H_ + #define RTC_BASE_PHYSICAL_SOCKET_SERVER_H_ + +-#if defined(WEBRTC_POSIX) && defined(WEBRTC_LINUX) ++#if defined(WEBRTC_POSIX) && defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) + #include <sys/epoll.h> + #define WEBRTC_USE_EPOLL 1 + #endif diff --git a/devel/electron18/files/patch-third__party_webrtc_rtc__base_platform__thread__types.cc b/devel/electron18/files/patch-third__party_webrtc_rtc__base_platform__thread__types.cc new file mode 100644 index 000000000000..fa885df383c8 --- /dev/null +++ b/devel/electron18/files/patch-third__party_webrtc_rtc__base_platform__thread__types.cc @@ -0,0 +1,40 @@ +--- third_party/webrtc/rtc_base/platform_thread_types.cc.orig 2022-05-11 07:06:40 UTC ++++ third_party/webrtc/rtc_base/platform_thread_types.cc +@@ -11,7 +11,9 @@ + #include "rtc_base/platform_thread_types.h" + + #if defined(WEBRTC_LINUX) ++#if !defined(WEBRTC_BSD) + #include <sys/prctl.h> ++#endif + #include <sys/syscall.h> + #endif + +@@ -37,8 +39,10 @@ PlatformThreadId CurrentThreadId() { + return gettid(); + #elif defined(WEBRTC_FUCHSIA) + return zx_thread_self(); +-#elif defined(WEBRTC_LINUX) ++#elif defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) + return syscall(__NR_gettid); ++#elif defined(WEBRTC_BSD) ++ return reinterpret_cast<uint64_t>(pthread_self()); + #elif defined(__EMSCRIPTEN__) + return static_cast<PlatformThreadId>(pthread_self()); + #else +@@ -67,6 +71,7 @@ bool IsThreadRefEqual(const PlatformThreadRef& a, cons + } + + void SetCurrentThreadName(const char* name) { ++#if !defined(WEBRTC_BSD) + #if defined(WEBRTC_WIN) + // The SetThreadDescription API works even if no debugger is attached. + // The names set with this API also show up in ETW traces. Very handy. +@@ -109,6 +114,7 @@ void SetCurrentThreadName(const char* name) { + prctl(PR_SET_NAME, reinterpret_cast<unsigned long>(name)); // NOLINT + #elif defined(WEBRTC_MAC) || defined(WEBRTC_IOS) + pthread_setname_np(name); ++#endif + #endif + } + diff --git a/devel/electron18/files/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h b/devel/electron18/files/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h new file mode 100644 index 000000000000..91f922fe832c --- /dev/null +++ b/devel/electron18/files/patch-third__party_webrtc_rtc__base_third__party_sigslot_sigslot.h @@ -0,0 +1,23 @@ +--- third_party/webrtc/rtc_base/third_party/sigslot/sigslot.h.orig 2022-05-11 07:06:40 UTC ++++ third_party/webrtc/rtc_base/third_party/sigslot/sigslot.h +@@ -178,6 +178,10 @@ class multi_threaded_local { + #endif // _SIGSLOT_HAS_WIN32_THREADS + + #ifdef _SIGSLOT_HAS_POSIX_THREADS ++#if defined(OS_FREEBSD) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wthread-safety-analysis" ++#endif + // The multi threading policies only get compiled in if they are enabled. + class multi_threaded_global { + public: +@@ -201,6 +205,9 @@ class multi_threaded_local { + private: + pthread_mutex_t m_mutex; + }; ++#if defined(OS_FREEBSD) ++#pragma GCC diagnostic pop ++#endif + #endif // _SIGSLOT_HAS_POSIX_THREADS + + template <class mt_policy> diff --git a/devel/electron18/files/patch-third__party_webrtc_system__wrappers_BUILD.gn b/devel/electron18/files/patch-third__party_webrtc_system__wrappers_BUILD.gn new file mode 100644 index 000000000000..8c66b13b632c --- /dev/null +++ b/devel/electron18/files/patch-third__party_webrtc_system__wrappers_BUILD.gn @@ -0,0 +1,11 @@ +--- third_party/webrtc/system_wrappers/BUILD.gn.orig 2021-04-14 01:15:32 UTC ++++ third_party/webrtc/system_wrappers/BUILD.gn +@@ -61,8 +61,6 @@ rtc_library("system_wrappers") { + if (!build_with_chromium) { + sources += [ "source/cpu_features_linux.cc" ] + } +- +- libs += [ "rt" ] + } + + if (is_win) { diff --git a/devel/electron18/files/patch-third__party_zlib_BUILD.gn b/devel/electron18/files/patch-third__party_zlib_BUILD.gn new file mode 100644 index 000000000000..215c520e877a --- /dev/null +++ b/devel/electron18/files/patch-third__party_zlib_BUILD.gn @@ -0,0 +1,29 @@ +--- third_party/zlib/BUILD.gn.orig 2022-05-13 07:19:54 UTC ++++ third_party/zlib/BUILD.gn +@@ -115,7 +115,7 @@ if (use_arm_neon_optimizations) { + # Disabled for iPhone, as described in DDI0487C_a_armv8_arm: + # "All implementations of the ARMv8.1 architecture are required to + # implement the CRC32* instructions. These are optional in ARMv8.0." +- if (!is_ios) { ++ if (!is_ios && !is_bsd) { + defines = [ "CRC32_ARMV8_CRC32" ] + if (is_android) { + defines += [ "ARMV8_OS_ANDROID" ] +@@ -136,7 +136,7 @@ if (use_arm_neon_optimizations) { + source_set("zlib_arm_crc32") { + visibility = [ ":*" ] + +- if (!is_ios) { ++ if (!is_ios && !is_bsd) { + include_dirs = [ "." ] + + if (!is_win && !is_clang) { +@@ -400,7 +400,7 @@ static_library("minizip") { + ] + } + +- if (is_apple || is_android || is_nacl) { ++ if (is_apple || is_android || is_nacl || is_bsd) { + # Mac, Android and the BSDs don't have fopen64, ftello64, or fseeko64. We + # use fopen, ftell, and fseek instead on these systems. + defines = [ "USE_FILE32API" ] diff --git a/devel/electron18/files/patch-tools_generate__stubs_rules.gni b/devel/electron18/files/patch-tools_generate__stubs_rules.gni new file mode 100644 index 000000000000..cf0f7e353958 --- /dev/null +++ b/devel/electron18/files/patch-tools_generate__stubs_rules.gni @@ -0,0 +1,10 @@ +--- tools/generate_stubs/rules.gni.orig 2022-05-11 07:02:08 UTC ++++ tools/generate_stubs/rules.gni +@@ -96,7 +96,6 @@ template("generate_stubs") { + "${target_gen_dir}/${invoker.output_name}.cc", + "${target_gen_dir}/${invoker.output_name}.h", + ] +- libs = [ "dl" ] + include_dirs = [ target_gen_dir ] + if (defined(invoker.configs)) { + configs += invoker.configs diff --git a/devel/electron18/files/patch-tools_gn_build_build__linux.ninja.template b/devel/electron18/files/patch-tools_gn_build_build__linux.ninja.template new file mode 100644 index 000000000000..7a147b33472d --- /dev/null +++ b/devel/electron18/files/patch-tools_gn_build_build__linux.ninja.template @@ -0,0 +1,11 @@ +--- tools/gn/build/build_linux.ninja.template.orig 2022-02-15 03:23:13 UTC ++++ tools/gn/build/build_linux.ninja.template +@@ -5,7 +5,7 @@ rule cxx + deps = gcc + + rule alink_thin +- command = rm -f $out && $ar rcsT $out $in ++ command = rm -f $out && $ar rcs $out $in + description = AR $out + + rule link diff --git a/devel/electron18/files/patch-tools_gn_build_gen.py b/devel/electron18/files/patch-tools_gn_build_gen.py new file mode 100644 index 000000000000..9a6b239cc98e --- /dev/null +++ b/devel/electron18/files/patch-tools_gn_build_gen.py @@ -0,0 +1,34 @@ +--- tools/gn/build/gen.py.orig 2022-04-15 03:59:20 UTC ++++ tools/gn/build/gen.py +@@ -92,6 +92,12 @@ class Platform(object): + def is_solaris(self): + return self._platform == 'solaris' + ++ def is_openbsd(self): ++ return self._platform == 'openbsd' ++ ++ def is_freebsd(self): ++ return self._platform == 'freebsd' ++ + def is_posix(self): + return self._platform in ['linux', 'freebsd', 'darwin', 'aix', 'openbsd', 'haiku', 'solaris', 'msys', 'netbsd'] + +@@ -276,7 +282,7 @@ def WriteGenericNinja(path, static_libraries, executab + 'linux': 'build_linux.ninja.template', + 'freebsd': 'build_linux.ninja.template', + 'aix': 'build_aix.ninja.template', +- 'openbsd': 'build_openbsd.ninja.template', ++ 'openbsd': 'build_linux.ninja.template', + 'haiku': 'build_haiku.ninja.template', + 'solaris': 'build_linux.ninja.template', + 'netbsd': 'build_linux.ninja.template', +@@ -480,6 +486,9 @@ def WriteGNNinja(path, platform, host, options, args_l + + if platform.is_posix() and not platform.is_haiku(): + ldflags.append('-pthread') ++ ++ if platform.is_openbsd(): ++ libs.append('-lkvm') + + if platform.is_mingw() or platform.is_msys(): + cflags.extend(['-DUNICODE', diff --git a/devel/electron18/files/patch-tools_gn_src_base_files_file__posix.cc b/devel/electron18/files/patch-tools_gn_src_base_files_file__posix.cc new file mode 100644 index 000000000000..b892517b9ad3 --- /dev/null +++ b/devel/electron18/files/patch-tools_gn_src_base_files_file__posix.cc @@ -0,0 +1,11 @@ +--- tools/gn/src/base/files/file_posix.cc.orig 2021-10-08 06:35:51 UTC ++++ tools/gn/src/base/files/file_posix.cc +@@ -369,7 +369,7 @@ void File::DoInitialize(const FilePath& path, uint32_t + bool File::Flush() { + DCHECK(IsValid()); + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + return !HANDLE_EINTR(fdatasync(file_.get())); + #else + return !HANDLE_EINTR(fsync(file_.get())); diff --git a/devel/electron18/files/patch-tools_gn_src_gn_version.h b/devel/electron18/files/patch-tools_gn_src_gn_version.h new file mode 100644 index 000000000000..a3c6f07d4a48 --- /dev/null +++ b/devel/electron18/files/patch-tools_gn_src_gn_version.h @@ -0,0 +1,15 @@ +--- tools/gn/src/gn/version.h.orig 2021-09-14 02:05:25 UTC ++++ tools/gn/src/gn/version.h +@@ -22,9 +22,9 @@ class Version { + + static std::optional<Version> FromString(std::string s); + +- int major() const { return major_; } +- int minor() const { return minor_; } +- int patch() const { return patch_; } ++ int gmajor() const { return major_; } ++ int gminor() const { return minor_; } ++ int gpatch() const { return patch_; } + + bool operator==(const Version& other) const; + bool operator<(const Version& other) const; diff --git a/devel/electron18/files/patch-tools_gn_src_util_exe__path.cc b/devel/electron18/files/patch-tools_gn_src_util_exe__path.cc new file mode 100644 index 000000000000..5ca6d5fe162c --- /dev/null +++ b/devel/electron18/files/patch-tools_gn_src_util_exe__path.cc @@ -0,0 +1,90 @@ +--- tools/gn/src/util/exe_path.cc.orig 2022-02-15 03:23:13 UTC ++++ tools/gn/src/util/exe_path.cc +@@ -15,7 +15,7 @@ + #include <windows.h> + + #include "base/win/win_util.h" +-#elif defined(OS_FREEBSD) || defined(OS_NETBSD) ++#elif defined(OS_FREEBSD) || defined(OS_NETBSD) || defined(OS_OPENBSD) + #include <limits.h> + #include <sys/sysctl.h> + #include <sys/types.h> +@@ -26,6 +26,10 @@ + #include <stdlib.h> + #endif + ++#if defined(OS_OPENBSD) ++#include <kvm.h> ++#endif ++ + #if defined(OS_MACOSX) + + base::FilePath GetExePath() { +@@ -102,6 +106,67 @@ base::FilePath GetExePath() { + return base::FilePath(); + } + return base::FilePath(raw); ++} ++ ++#elif defined(OS_OPENBSD) ++ ++base::FilePath GetExePath() { ++ struct kinfo_file *files; ++ kvm_t *kd = NULL; ++ char errbuf[_POSIX2_LINE_MAX]; ++ char **retvalargs; ++#define MAXTOKENS 2 ++ char *tokens[MAXTOKENS]; ++ static char retval[PATH_MAX]; ++ int cnt; ++ size_t len; ++ struct stat sb; ++ pid_t cpid = getpid(); ++ ++ int mib[] = { CTL_KERN, KERN_PROC_ARGS, cpid, KERN_PROC_ARGV }; ++ ++ if (sysctl(mib, 4, NULL, &len, NULL, 0) != -1) { ++ retvalargs = static_cast<char**>(malloc(len)); ++ if (!retvalargs) ++ goto out; ++ ++ if (sysctl(mib, 4, retvalargs, &len, NULL, 0) < 0) ++ goto out; ++ ++ char *cr = strdup(retvalargs[0]); ++ free(retvalargs); ++ ++ *tokens = strtok(cr, ":"); ++ if (tokens[0] == NULL) ++ goto out; ++ ++ if (realpath(tokens[0], retval) == NULL) ++ goto out; ++ ++ if (stat(retval, &sb) < 0) ++ goto out; ++ ++ if ((kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, errbuf)) == NULL) ++ goto out; ++ ++ if ((files = kvm_getfiles(kd, KERN_FILE_BYPID, cpid, ++ sizeof(struct kinfo_file), &cnt)) == NULL) { ++ kvm_close(kd); ++ goto out; ++ } ++ ++ for (int i = 0; i < cnt; i++) { ++ if (files[i].fd_fd == KERN_FILE_TEXT && ++ files[i].va_fsid == static_cast<uint32_t>(sb.st_dev) && ++ files[i].va_fileid == sb.st_ino) { ++ kvm_close(kd); ++ return base::FilePath(retval); ++ } ++ } ++ } ++ ++out: ++ return base::FilePath(); + } + + #elif defined(OS_ZOS) diff --git a/devel/electron18/files/patch-tools_json__schema__compiler_cpp__bundle__generator.py b/devel/electron18/files/patch-tools_json__schema__compiler_cpp__bundle__generator.py new file mode 100644 index 000000000000..9f96647fa7d5 --- /dev/null +++ b/devel/electron18/files/patch-tools_json__schema__compiler_cpp__bundle__generator.py @@ -0,0 +1,11 @@ +--- tools/json_schema_compiler/cpp_bundle_generator.py.orig 2022-05-19 05:18:01 UTC ++++ tools/json_schema_compiler/cpp_bundle_generator.py +@@ -154,7 +154,7 @@ class CppBundleGenerator(object): + # BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(IS_CHROMEOS_LACROS). + ifdefs.append('BUILDFLAG(IS_CHROMEOS_LACROS)') + elif platform == Platforms.LINUX: +- ifdefs.append('BUILDFLAG(IS_LINUX)') ++ ifdefs.append('BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)') + elif platform == Platforms.MAC: + ifdefs.append('BUILDFLAG(IS_MAC)') + elif platform == Platforms.WIN: diff --git a/devel/electron18/files/patch-tools_json__schema__compiler_feature__compiler.py b/devel/electron18/files/patch-tools_json__schema__compiler_feature__compiler.py new file mode 100644 index 000000000000..5a12f3e65150 --- /dev/null +++ b/devel/electron18/files/patch-tools_json__schema__compiler_feature__compiler.py @@ -0,0 +1,10 @@ +--- tools/json_schema_compiler/feature_compiler.py.orig 2022-05-19 05:18:01 UTC ++++ tools/json_schema_compiler/feature_compiler.py +@@ -267,6 +267,7 @@ FEATURE_GRAMMAR = ({ + 'mac': 'Feature::MACOSX_PLATFORM', + 'win': 'Feature::WIN_PLATFORM', + 'fuchsia': 'Feature::FUCHSIA_PLATFORM', ++ 'openbsd': 'Feature::LINUX_PLATFORM', + } + } + }, diff --git a/devel/electron18/files/patch-tools_perf_chrome__telemetry__build_BUILD.gn b/devel/electron18/files/patch-tools_perf_chrome__telemetry__build_BUILD.gn new file mode 100644 index 000000000000..516bc7dceb90 --- /dev/null +++ b/devel/electron18/files/patch-tools_perf_chrome__telemetry__build_BUILD.gn @@ -0,0 +1,20 @@ +--- tools/perf/chrome_telemetry_build/BUILD.gn.orig 2022-05-11 07:02:08 UTC ++++ tools/perf/chrome_telemetry_build/BUILD.gn +@@ -45,7 +45,7 @@ group("telemetry_chrome_test") { + data_deps += [ "//chrome:reorder_imports" ] + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ] + + # CrOS currently has issues with the locally compiled version of +@@ -212,7 +212,7 @@ group("telemetry_chrome_test_without_chrome") { + ] + + # Cr-Fuchsia doesn't support breakpad. +- if (!is_win && !is_fuchsia) { ++ if (!is_win && !is_fuchsia && !is_bsd) { + data_deps += [ + # This is defined for Windows, but is unused by Telemetry on + # Windows, and including it can have issues when cross-compiling diff --git a/devel/electron18/files/patch-tools_protoc__wrapper_protoc__wrapper.py b/devel/electron18/files/patch-tools_protoc__wrapper_protoc__wrapper.py new file mode 100644 index 000000000000..68b693b21156 --- /dev/null +++ b/devel/electron18/files/patch-tools_protoc__wrapper_protoc__wrapper.py @@ -0,0 +1,15 @@ +--- tools/protoc_wrapper/protoc_wrapper.py.orig 2022-05-11 07:02:09 UTC ++++ tools/protoc_wrapper/protoc_wrapper.py +@@ -190,7 +190,11 @@ def main(argv): + with open(options.descriptor_set_dependency_file, 'rb') as f: + dependency_file_data = f.read().decode('utf-8') + +- ret = subprocess.call(protoc_cmd) ++ nenv = os.environ.copy() ++ nenv["PATH"] = "${WRKOBJDIR}/bin:" + nenv["PATH"] ++ nenv["LD_LIBRARY_PATH"] = "${WRKSRC}/out/Release" ++ ++ ret = subprocess.call(protoc_cmd, env=nenv) + if ret != 0: + if ret <= -100: + # Windows error codes such as 0xC0000005 and 0xC0000409 are much easier to diff --git a/devel/electron18/files/patch-tools_variations_fieldtrial__to__struct.py b/devel/electron18/files/patch-tools_variations_fieldtrial__to__struct.py new file mode 100644 index 000000000000..b94afe5f47a7 --- /dev/null +++ b/devel/electron18/files/patch-tools_variations_fieldtrial__to__struct.py @@ -0,0 +1,11 @@ +--- tools/variations/fieldtrial_to_struct.py.orig 2022-05-11 07:02:09 UTC ++++ tools/variations/fieldtrial_to_struct.py +@@ -41,6 +41,8 @@ _platforms = [ + 'linux', + 'mac', + 'windows', ++ 'openbsd', ++ 'freebsd', + ] + + _form_factors = [ diff --git a/devel/electron18/files/patch-ui_base_clipboard_clipboard__constants.cc b/devel/electron18/files/patch-ui_base_clipboard_clipboard__constants.cc new file mode 100644 index 000000000000..dd62abef8652 --- /dev/null +++ b/devel/electron18/files/patch-ui_base_clipboard_clipboard__constants.cc @@ -0,0 +1,11 @@ +--- ui/base/clipboard/clipboard_constants.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/base/clipboard/clipboard_constants.cc +@@ -24,7 +24,7 @@ const char kMimeTypeOctetStream[] = "application/octet + // Used for window dragging on some platforms. + const char kMimeTypeWindowDrag[] = "chromium/x-window-drag"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + const char kMimeTypeLinuxUtf8String[] = "UTF8_STRING"; + const char kMimeTypeLinuxString[] = "STRING"; + const char kMimeTypeLinuxText[] = "TEXT"; diff --git a/devel/electron18/files/patch-ui_base_clipboard_clipboard__constants.h b/devel/electron18/files/patch-ui_base_clipboard_clipboard__constants.h new file mode 100644 index 000000000000..45b964425b62 --- /dev/null +++ b/devel/electron18/files/patch-ui_base_clipboard_clipboard__constants.h @@ -0,0 +1,11 @@ +--- ui/base/clipboard/clipboard_constants.h.orig 2022-05-19 03:47:20 UTC ++++ ui/base/clipboard/clipboard_constants.h +@@ -46,7 +46,7 @@ extern const char kMimeTypeDataTransferEndpoint[]; + #endif // BUILDFLAG(IS_CHROMEOS) + + // Linux-specific MIME type constants (also used in Fuchsia). +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES) + extern const char kMimeTypeLinuxUtf8String[]; + COMPONENT_EXPORT(UI_BASE_CLIPBOARD_TYPES) diff --git a/devel/electron18/files/patch-ui_base_cursor_cursor__factory.cc b/devel/electron18/files/patch-ui_base_cursor_cursor__factory.cc new file mode 100644 index 000000000000..c971601a688a --- /dev/null +++ b/devel/electron18/files/patch-ui_base_cursor_cursor__factory.cc @@ -0,0 +1,11 @@ +--- ui/base/cursor/cursor_factory.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/base/cursor/cursor_factory.cc +@@ -82,7 +82,7 @@ void CursorFactory::ObserveThemeChanges() { + + void CursorFactory::SetDeviceScaleFactor(float scale) {} + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + + // Returns a cursor name compatible with either X11 or the FreeDesktop.org + // cursor spec ([1] and [2]), followed by fallbacks that can work as diff --git a/devel/electron18/files/patch-ui_base_cursor_cursor__factory.h b/devel/electron18/files/patch-ui_base_cursor_cursor__factory.h new file mode 100644 index 000000000000..877264b57410 --- /dev/null +++ b/devel/electron18/files/patch-ui_base_cursor_cursor__factory.h @@ -0,0 +1,11 @@ +--- ui/base/cursor/cursor_factory.h.orig 2022-05-19 03:47:20 UTC ++++ ui/base/cursor/cursor_factory.h +@@ -81,7 +81,7 @@ class COMPONENT_EXPORT(UI_BASE_CURSOR) CursorFactory { + base::ObserverList<CursorFactoryObserver>::Unchecked observers_; + }; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + COMPONENT_EXPORT(UI_BASE_CURSOR) + std::vector<std::string> CursorNamesFromType(mojom::CursorType type); + #endif diff --git a/devel/electron18/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc b/devel/electron18/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc new file mode 100644 index 000000000000..64ce9a2389c4 --- /dev/null +++ b/devel/electron18/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc @@ -0,0 +1,20 @@ +--- ui/base/dragdrop/os_exchange_data_provider_factory.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/base/dragdrop/os_exchange_data_provider_factory.cc +@@ -7,7 +7,7 @@ + #include "base/notreached.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + #include "ui/base/dragdrop/os_exchange_data_provider_factory_ozone.h" + #include "ui/base/dragdrop/os_exchange_data_provider_non_backed.h" + #elif BUILDFLAG(IS_APPLE) +@@ -21,7 +21,7 @@ namespace ui { + // static + std::unique_ptr<OSExchangeDataProvider> + OSExchangeDataProviderFactory::CreateProvider() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The instance can be nullptr in tests that do not instantiate the platform, + // or on platforms that do not implement specific drag'n'drop. For them, + // falling back to the Aura provider should be fine. diff --git a/devel/electron18/files/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc b/devel/electron18/files/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc new file mode 100644 index 000000000000..12caac58982d --- /dev/null +++ b/devel/electron18/files/patch-ui_base_dragdrop_os__exchange__data__provider__non__backed.cc @@ -0,0 +1,11 @@ +--- ui/base/dragdrop/os_exchange_data_provider_non_backed.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/base/dragdrop/os_exchange_data_provider_non_backed.cc +@@ -94,7 +94,7 @@ void OSExchangeDataProviderNonBacked::SetPickledData( + } + + bool OSExchangeDataProviderNonBacked::GetString(std::u16string* data) const { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (HasFile()) { + // Various Linux file managers both pass a list of file:// URIs and set the + // string representation to the URI. We explicitly don't want to return use diff --git a/devel/electron18/files/patch-ui_base_ime_dummy__text__input__client.cc b/devel/electron18/files/patch-ui_base_ime_dummy__text__input__client.cc new file mode 100644 index 000000000000..427c695c8c13 --- /dev/null +++ b/devel/electron18/files/patch-ui_base_ime_dummy__text__input__client.cc @@ -0,0 +1,11 @@ +--- ui/base/ime/dummy_text_input_client.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/base/ime/dummy_text_input_client.cc +@@ -151,7 +151,7 @@ bool DummyTextInputClient::ShouldDoLearning() { + return false; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool DummyTextInputClient::SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) { diff --git a/devel/electron18/files/patch-ui_base_ime_dummy__text__input__client.h b/devel/electron18/files/patch-ui_base_ime_dummy__text__input__client.h new file mode 100644 index 000000000000..04ab3125b618 --- /dev/null +++ b/devel/electron18/files/patch-ui_base_ime_dummy__text__input__client.h @@ -0,0 +1,11 @@ +--- ui/base/ime/dummy_text_input_client.h.orig 2022-05-19 03:47:20 UTC ++++ ui/base/ime/dummy_text_input_client.h +@@ -63,7 +63,7 @@ class DummyTextInputClient : public TextInputClient { + ukm::SourceId GetClientSourceForMetrics() const override; + bool ShouldDoLearning() override; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override; diff --git a/devel/electron18/files/patch-ui_base_ime_fake__text__input__client.cc b/devel/electron18/files/patch-ui_base_ime_fake__text__input__client.cc new file mode 100644 index 000000000000..6b3f288001e4 --- /dev/null +++ b/devel/electron18/files/patch-ui_base_ime_fake__text__input__client.cc @@ -0,0 +1,11 @@ +--- ui/base/ime/fake_text_input_client.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/base/ime/fake_text_input_client.cc +@@ -161,7 +161,7 @@ bool FakeTextInputClient::ShouldDoLearning() { + return false; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool FakeTextInputClient::SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) { diff --git a/devel/electron18/files/patch-ui_base_ime_fake__text__input__client.h b/devel/electron18/files/patch-ui_base_ime_fake__text__input__client.h new file mode 100644 index 000000000000..ef45fa2bbf9f --- /dev/null +++ b/devel/electron18/files/patch-ui_base_ime_fake__text__input__client.h @@ -0,0 +1,11 @@ +--- ui/base/ime/fake_text_input_client.h.orig 2022-05-19 03:47:20 UTC ++++ ui/base/ime/fake_text_input_client.h +@@ -69,7 +69,7 @@ class FakeTextInputClient : public TextInputClient { + void SetTextEditCommandForNextKeyEvent(TextEditCommand command) override; + ukm::SourceId GetClientSourceForMetrics() const override; + bool ShouldDoLearning() override; +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override; diff --git a/devel/electron18/files/patch-ui_base_ime_init_input__method__initializer.cc b/devel/electron18/files/patch-ui_base_ime_init_input__method__initializer.cc new file mode 100644 index 000000000000..154fba5e7955 --- /dev/null +++ b/devel/electron18/files/patch-ui_base_ime_init_input__method__initializer.cc @@ -0,0 +1,38 @@ +--- ui/base/ime/init/input_method_initializer.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/base/ime/init/input_method_initializer.cc +@@ -10,7 +10,7 @@ + #include "build/chromeos_buildflags.h" + + #if !BUILDFLAG(IS_CHROMEOS_ASH) && defined(USE_AURA) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + #include "base/check.h" + #include "ui/base/ime/linux/fake_input_method_context_factory.h" + #elif BUILDFLAG(IS_WIN) +@@ -20,7 +20,7 @@ + + namespace { + +-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + const ui::LinuxInputMethodContextFactory* + g_linux_input_method_context_factory_for_testing; + #endif +@@ -43,7 +43,7 @@ void ShutdownInputMethod() { + + void InitializeInputMethodForTesting() { + #if !BUILDFLAG(IS_CHROMEOS_ASH) && defined(USE_AURA) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + if (!g_linux_input_method_context_factory_for_testing) + g_linux_input_method_context_factory_for_testing = + new FakeInputMethodContextFactory(); +@@ -61,7 +61,7 @@ void InitializeInputMethodForTesting() { + + void ShutdownInputMethodForTesting() { + #if !BUILDFLAG(IS_CHROMEOS_ASH) && defined(USE_AURA) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + const LinuxInputMethodContextFactory* factory = + LinuxInputMethodContextFactory::instance(); + CHECK(!factory || factory == g_linux_input_method_context_factory_for_testing) diff --git a/devel/electron18/files/patch-ui_base_ime_text__input__client.h b/devel/electron18/files/patch-ui_base_ime_text__input__client.h new file mode 100644 index 000000000000..571e84b94cc4 --- /dev/null +++ b/devel/electron18/files/patch-ui_base_ime_text__input__client.h @@ -0,0 +1,11 @@ +--- ui/base/ime/text_input_client.h.orig 2022-05-19 05:18:01 UTC ++++ ui/base/ime/text_input_client.h +@@ -237,7 +237,7 @@ class COMPONENT_EXPORT(UI_BASE_IME) TextInputClient { + // fields that are considered 'private' (e.g. in incognito tabs). + virtual bool ShouldDoLearning() = 0; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Start composition over a given UTF-16 code range from existing text. This + // should only be used for composition scenario when IME wants to start + // composition on existing text. Returns whether the operation was successful. diff --git a/devel/electron18/files/patch-ui_base_resource_resource__bundle.cc b/devel/electron18/files/patch-ui_base_resource_resource__bundle.cc new file mode 100644 index 000000000000..73aefd0823f1 --- /dev/null +++ b/devel/electron18/files/patch-ui_base_resource_resource__bundle.cc @@ -0,0 +1,11 @@ +--- ui/base/resource/resource_bundle.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/base/resource/resource_bundle.cc +@@ -878,7 +878,7 @@ void ResourceBundle::ReloadFonts() { + } + + ResourceScaleFactor ResourceBundle::GetMaxResourceScaleFactor() const { +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return max_scale_factor_; + #else + return GetSupportedResourceScaleFactors().back(); diff --git a/devel/electron18/files/patch-ui_base_test_skia__gold__pixel__diff.cc b/devel/electron18/files/patch-ui_base_test_skia__gold__pixel__diff.cc new file mode 100644 index 000000000000..dbe6267d96dc --- /dev/null +++ b/devel/electron18/files/patch-ui_base_test_skia__gold__pixel__diff.cc @@ -0,0 +1,11 @@ +--- ui/base/test/skia_gold_pixel_diff.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/base/test/skia_gold_pixel_diff.cc +@@ -150,7 +150,7 @@ std::string SkiaGoldPixelDiff::GetPlatform() { + return "macOS"; + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + return "linux"; + #endif + } diff --git a/devel/electron18/files/patch-ui_base_ui__base__features.cc b/devel/electron18/files/patch-ui_base_ui__base__features.cc new file mode 100644 index 000000000000..33cbd068377c --- /dev/null +++ b/devel/electron18/files/patch-ui_base_ui__base__features.cc @@ -0,0 +1,20 @@ +--- ui/base/ui_base_features.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/base/ui_base_features.cc +@@ -159,7 +159,7 @@ const base::Feature kExperimentalFlingAnimation { + // of lacros-chrome is complete. + #if BUILDFLAG(IS_WIN) || \ + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \ +- !BUILDFLAG(IS_CHROMEOS_LACROS)) ++ !BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT +@@ -255,7 +255,7 @@ bool IsForcedColorsEnabled() { + // milestones. + const base::Feature kEyeDropper { + "EyeDropper", +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + base::FEATURE_ENABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT diff --git a/devel/electron18/files/patch-ui_base_webui_web__ui__util.cc b/devel/electron18/files/patch-ui_base_webui_web__ui__util.cc new file mode 100644 index 000000000000..4bf6da09f9eb --- /dev/null +++ b/devel/electron18/files/patch-ui_base_webui_web__ui__util.cc @@ -0,0 +1,11 @@ +--- ui/base/webui/web_ui_util.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/base/webui/web_ui_util.cc +@@ -221,7 +221,7 @@ std::string GetFontFamily() { + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + std::string font_name = ui::ResourceBundle::GetSharedInstance() + .GetFont(ui::ResourceBundle::BaseFont) + .GetFontName(); diff --git a/devel/electron18/files/patch-ui_base_x_x11__cursor__loader.cc b/devel/electron18/files/patch-ui_base_x_x11__cursor__loader.cc new file mode 100644 index 000000000000..e1e70063b208 --- /dev/null +++ b/devel/electron18/files/patch-ui_base_x_x11__cursor__loader.cc @@ -0,0 +1,14 @@ +--- ui/base/x/x11_cursor_loader.cc.orig 2022-05-11 07:17:06 UTC ++++ ui/base/x/x11_cursor_loader.cc +@@ -138,7 +138,11 @@ std::string CursorPathFromLibXcursor() { + void operator()(void* ptr) const { dlclose(ptr); } + }; + ++#if defined(OS_BSD) ++ std::unique_ptr<void, DlCloser> lib(dlopen("libXcursor.so", RTLD_LAZY)); ++#else + std::unique_ptr<void, DlCloser> lib(dlopen("libXcursor.so.1", RTLD_LAZY)); ++#endif + if (!lib) + return ""; + diff --git a/devel/electron18/files/patch-ui_base_x_x11__shm__image__pool.cc b/devel/electron18/files/patch-ui_base_x_x11__shm__image__pool.cc new file mode 100644 index 000000000000..bbf5af78553e --- /dev/null +++ b/devel/electron18/files/patch-ui_base_x_x11__shm__image__pool.cc @@ -0,0 +1,53 @@ +--- ui/base/x/x11_shm_image_pool.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/base/x/x11_shm_image_pool.cc +@@ -16,6 +16,7 @@ + #include "base/environment.h" + #include "base/location.h" + #include "base/strings/string_util.h" ++#include "base/system/sys_info.h" + #include "base/threading/thread_task_runner_handle.h" + #include "build/build_config.h" + #include "build/chromeos_buildflags.h" +@@ -46,10 +47,14 @@ constexpr float kShmResizeShrinkThreshold = + 1.0f / (kShmResizeThreshold * kShmResizeThreshold); + + std::size_t MaxShmSegmentSizeImpl() { ++#if BUILDFLAG(IS_BSD) ++ return base::SysInfo::MaxSharedMemorySize(); ++#else + struct shminfo info; + if (shmctl(0, IPC_INFO, reinterpret_cast<struct shmid_ds*>(&info)) == -1) + return 0; + return info.shmmax; ++#endif + } + + std::size_t MaxShmSegmentSize() { +@@ -66,6 +71,9 @@ bool IsRemoteHost(const std::string& name) { + } + + bool ShouldUseMitShm(x11::Connection* connection) { ++#if BUILDFLAG(IS_BSD) ++ return false; ++#endif + // MIT-SHM may be available on remote connetions, but it will be unusable. Do + // a best-effort check to see if the host is remote to disable the SHM + // codepath. It may be possible in contrived cases for there to be a +@@ -184,7 +192,7 @@ bool XShmImagePool::Resize(const gfx::Size& pixel_size + shmctl(state.shmid, IPC_RMID, nullptr); + return false; + } +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, a shmid can still be attached after IPC_RMID if otherwise + // kept alive. Detach before XShmAttach to prevent a memory leak in case + // the process dies. +@@ -203,7 +211,7 @@ bool XShmImagePool::Resize(const gfx::Size& pixel_size + return false; + state.shmseg = shmseg; + state.shmem_attached_to_server = true; +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + // The Linux-specific shmctl behavior above may not be portable, so we're + // forced to do IPC_RMID after the server has attached to the segment. + shmctl(state.shmid, IPC_RMID, nullptr); diff --git a/devel/electron18/files/patch-ui_color_color__id.h b/devel/electron18/files/patch-ui_color_color__id.h new file mode 100644 index 000000000000..3bd8c342aff9 --- /dev/null +++ b/devel/electron18/files/patch-ui_color_color__id.h @@ -0,0 +1,11 @@ +--- ui/color/color_id.h.orig 2022-05-20 04:30:53 UTC ++++ ui/color/color_id.h +@@ -196,7 +196,7 @@ + E_CPONLY(kColorNativeColor6) \ + E_CPONLY(kColorNativeBaseColor) \ + E_CPONLY(kColorNativeSecondaryColor) +-#elif BUILDFLAG(IS_LINUX) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #define PLATFORM_SPECIFIC_COLOR_IDS \ + E_CPONLY(kColorNativeButtonBackground) \ + E_CPONLY(kColorNativeButtonBackgroundDisabled) \ diff --git a/devel/electron18/files/patch-ui_color_native__color__mixers.cc b/devel/electron18/files/patch-ui_color_native__color__mixers.cc new file mode 100644 index 000000000000..12c63e701ead --- /dev/null +++ b/devel/electron18/files/patch-ui_color_native__color__mixers.cc @@ -0,0 +1,17 @@ +--- ui/color/native_color_mixers.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/color/native_color_mixers.cc +@@ -10,12 +10,12 @@ + namespace ui { + + #if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC) && \ +- !BUILDFLAG(IS_WIN) ++ !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD) + void AddNativeCoreColorMixer(ColorProvider* provider, + const ColorProviderManager::Key& key) {} + #endif + +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_BSD) + void AddNativeUiColorMixer(ColorProvider* provider, + const ColorProviderManager::Key& key) {} + #endif diff --git a/devel/electron18/files/patch-ui_compositor_compositor.cc b/devel/electron18/files/patch-ui_compositor_compositor.cc new file mode 100644 index 000000000000..f6a3835d1b40 --- /dev/null +++ b/devel/electron18/files/patch-ui_compositor_compositor.cc @@ -0,0 +1,11 @@ +--- ui/compositor/compositor.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/compositor/compositor.cc +@@ -860,7 +860,7 @@ void Compositor::OnResume() { + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + void Compositor::OnCompleteSwapWithNewSize(const gfx::Size& size) { + for (auto& observer : observer_list_) + observer.OnCompositingCompleteSwapWithNewSize(this, size); diff --git a/devel/electron18/files/patch-ui_compositor_compositor.h b/devel/electron18/files/patch-ui_compositor_compositor.h new file mode 100644 index 000000000000..9e84d9f8b02b --- /dev/null +++ b/devel/electron18/files/patch-ui_compositor_compositor.h @@ -0,0 +1,11 @@ +--- ui/compositor/compositor.h.orig 2022-05-20 04:30:53 UTC ++++ ui/compositor/compositor.h +@@ -416,7 +416,7 @@ class COMPOSITOR_EXPORT Compositor : public base::Powe + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + void OnCompleteSwapWithNewSize(const gfx::Size& size); + #endif + diff --git a/devel/electron18/files/patch-ui_compositor_compositor__observer.h b/devel/electron18/files/patch-ui_compositor_compositor__observer.h new file mode 100644 index 000000000000..4c11d38f777e --- /dev/null +++ b/devel/electron18/files/patch-ui_compositor_compositor__observer.h @@ -0,0 +1,11 @@ +--- ui/compositor/compositor_observer.h.orig 2022-05-19 03:47:20 UTC ++++ ui/compositor/compositor_observer.h +@@ -48,7 +48,7 @@ class COMPOSITOR_EXPORT CompositorObserver { + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Called when a swap with new size is completed. + virtual void OnCompositingCompleteSwapWithNewSize(ui::Compositor* compositor, + const gfx::Size& size) {} diff --git a/devel/electron18/files/patch-ui_events_devices_x11_device__data__manager__x11.cc b/devel/electron18/files/patch-ui_events_devices_x11_device__data__manager__x11.cc new file mode 100644 index 000000000000..c376aae01d22 --- /dev/null +++ b/devel/electron18/files/patch-ui_events_devices_x11_device__data__manager__x11.cc @@ -0,0 +1,10 @@ +--- ui/events/devices/x11/device_data_manager_x11.cc.orig 2022-05-11 07:17:07 UTC ++++ ui/events/devices/x11/device_data_manager_x11.cc +@@ -874,6 +874,7 @@ void DeviceDataManagerX11::SetDisabledKeyboardAllowedK + } + + void DeviceDataManagerX11::DisableDevice(x11::Input::DeviceId deviceid) { ++ NOTIMPLEMENTED(); + blocked_devices_.set(static_cast<uint32_t>(deviceid), true); + // TODO(rsadam@): Support blocking touchscreen devices. + std::vector<InputDevice> keyboards = GetKeyboardDevices(); diff --git a/devel/electron18/files/patch-ui_events_event.cc b/devel/electron18/files/patch-ui_events_event.cc new file mode 100644 index 000000000000..64ad33b00fc3 --- /dev/null +++ b/devel/electron18/files/patch-ui_events_event.cc @@ -0,0 +1,20 @@ +--- ui/events/event.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/events/event.cc +@@ -453,7 +453,7 @@ std::string LocatedEvent::ToString() const { + MouseEvent::MouseEvent(const PlatformEvent& native_event) + : LocatedEvent(native_event), + changed_button_flags_(GetChangedMouseButtonFlagsFromNative(native_event)), +-#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + movement_(GetMouseMovementFromNative(native_event)), + #endif + pointer_details_(GetMousePointerDetailsFromNative(native_event)) { +@@ -935,7 +935,7 @@ void KeyEvent::InitializeNative() { + if (synthesize_key_repeat_enabled_ && IsRepeated(GetLastKeyEvent())) + set_flags(flags() | EF_IS_REPEAT); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + NormalizeFlags(); + #elif BUILDFLAG(IS_WIN) + // Only Windows has native character events. diff --git a/devel/electron18/files/patch-ui_events_event__switches.cc b/devel/electron18/files/patch-ui_events_event__switches.cc new file mode 100644 index 000000000000..77c8052b75fd --- /dev/null +++ b/devel/electron18/files/patch-ui_events_event__switches.cc @@ -0,0 +1,11 @@ +--- ui/events/event_switches.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/events/event_switches.cc +@@ -14,7 +14,7 @@ namespace switches { + const char kCompensateForUnstablePinchZoom[] = + "compensate-for-unstable-pinch-zoom"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Tells chrome to interpret events from these devices as touch events. Only + // available with XInput 2 (i.e. X server 1.8 or above). The id's of the + // devices can be retrieved from 'xinput list'. diff --git a/devel/electron18/files/patch-ui_events_event__switches.h b/devel/electron18/files/patch-ui_events_event__switches.h new file mode 100644 index 000000000000..20699965291d --- /dev/null +++ b/devel/electron18/files/patch-ui_events_event__switches.h @@ -0,0 +1,11 @@ +--- ui/events/event_switches.h.orig 2022-05-19 05:18:01 UTC ++++ ui/events/event_switches.h +@@ -12,7 +12,7 @@ namespace switches { + + EVENTS_BASE_EXPORT extern const char kCompensateForUnstablePinchZoom[]; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + EVENTS_BASE_EXPORT extern const char kTouchDevices[]; + EVENTS_BASE_EXPORT extern const char kPenDevices[]; + #endif diff --git a/devel/electron18/files/patch-ui_events_keycodes_dom_keycode__converter.cc b/devel/electron18/files/patch-ui_events_keycodes_dom_keycode__converter.cc new file mode 100644 index 000000000000..eefba61c1a09 --- /dev/null +++ b/devel/electron18/files/patch-ui_events_keycodes_dom_keycode__converter.cc @@ -0,0 +1,38 @@ +--- ui/events/keycodes/dom/keycode_converter.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/events/keycodes/dom/keycode_converter.cc +@@ -11,7 +11,7 @@ + #include "ui/events/keycodes/dom/dom_code.h" + #include "ui/events/keycodes/dom/dom_key.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) + #include <linux/input.h> + #endif + +@@ -24,7 +24,7 @@ namespace { + #if BUILDFLAG(IS_WIN) + #define DOM_CODE(usb, evdev, xkb, win, mac, code, id) \ + { usb, win, code } +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #define DOM_CODE(usb, evdev, xkb, win, mac, code, id) \ + { usb, xkb, code } + #elif BUILDFLAG(IS_APPLE) +@@ -58,7 +58,7 @@ struct DomKeyMapEntry { + #undef DOM_KEY_MAP + #undef DOM_KEY_UNI + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) + + // The offset between XKB Keycode and evdev code. + constexpr int kXkbKeycodeOffset = 8; +@@ -139,7 +139,7 @@ int KeycodeConverter::DomCodeToNativeKeycode(DomCode c + return UsbKeycodeToNativeKeycode(static_cast<uint32_t>(code)); + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) + // static + DomCode KeycodeConverter::XkbKeycodeToDomCode(uint32_t xkb_keycode) { + // Currently XKB keycode is the native keycode. diff --git a/devel/electron18/files/patch-ui_events_keycodes_dom_keycode__converter.h b/devel/electron18/files/patch-ui_events_keycodes_dom_keycode__converter.h new file mode 100644 index 000000000000..a90f29b58c9a --- /dev/null +++ b/devel/electron18/files/patch-ui_events_keycodes_dom_keycode__converter.h @@ -0,0 +1,11 @@ +--- ui/events/keycodes/dom/keycode_converter.h.orig 2022-05-19 03:47:20 UTC ++++ ui/events/keycodes/dom/keycode_converter.h +@@ -63,7 +63,7 @@ class KeycodeConverter { + // Convert a DomCode into a native keycode. + static int DomCodeToNativeKeycode(DomCode code); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD) + // Convert a XKB keycode into a DomCode. + static DomCode XkbKeycodeToDomCode(uint32_t xkb_keycode); + diff --git a/devel/electron18/files/patch-ui_gfx_BUILD.gn b/devel/electron18/files/patch-ui_gfx_BUILD.gn new file mode 100644 index 000000000000..522900ab66ba --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_BUILD.gn @@ -0,0 +1,11 @@ +--- ui/gfx/BUILD.gn.orig 2022-05-11 07:17:07 UTC ++++ ui/gfx/BUILD.gn +@@ -583,7 +583,7 @@ source_set("memory_buffer_sources") { + deps += [ "//build/config/linux/libdrm" ] + } + +- if (is_linux || is_chromeos || is_android) { ++ if ((is_linux || is_chromeos || is_android) && !is_bsd) { + deps += [ "//third_party/libsync" ] + } + diff --git a/devel/electron18/files/patch-ui_gfx_canvas__skia.cc b/devel/electron18/files/patch-ui_gfx_canvas__skia.cc new file mode 100644 index 000000000000..3a87dce26c72 --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_canvas__skia.cc @@ -0,0 +1,11 @@ +--- ui/gfx/canvas_skia.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/canvas_skia.cc +@@ -200,7 +200,7 @@ void Canvas::DrawStringRectWithFlags(const std::u16str + Range range = StripAcceleratorChars(flags, &adjusted_text); + bool elide_text = ((flags & NO_ELLIPSIS) == 0); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, eliding really means fading the end of the string. But only + // for LTR text. RTL text is still elided (on the left) with "...". + if (elide_text) { diff --git a/devel/electron18/files/patch-ui_gfx_codec_png__codec.cc b/devel/electron18/files/patch-ui_gfx_codec_png__codec.cc new file mode 100644 index 000000000000..e3fc0b524a8a --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_codec_png__codec.cc @@ -0,0 +1,11 @@ +--- ui/gfx/codec/png_codec.cc.orig 2022-05-11 07:17:07 UTC ++++ ui/gfx/codec/png_codec.cc +@@ -10,7 +10,7 @@ + #include "base/memory/raw_ptr.h" + #include "base/notreached.h" + #include "base/strings/string_util.h" +-#include "third_party/libpng/png.h" ++#include <png.h> + #include "third_party/skia/include/core/SkBitmap.h" + #include "third_party/skia/include/core/SkColorPriv.h" + #include "third_party/skia/include/core/SkUnPreMultiply.h" diff --git a/devel/electron18/files/patch-ui_gfx_font__fallback__linux.cc b/devel/electron18/files/patch-ui_gfx_font__fallback__linux.cc new file mode 100644 index 000000000000..3a3d8aebd478 --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_font__fallback__linux.cc @@ -0,0 +1,11 @@ +--- ui/gfx/font_fallback_linux.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/font_fallback_linux.cc +@@ -25,6 +25,8 @@ + #include "ui/gfx/linux/fontconfig_util.h" + #include "ui/gfx/platform_font.h" + ++#include <unistd.h> ++ + namespace gfx { + + namespace { diff --git a/devel/electron18/files/patch-ui_gfx_font__list.cc b/devel/electron18/files/patch-ui_gfx_font__list.cc new file mode 100644 index 000000000000..eeb4986c1429 --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_font__list.cc @@ -0,0 +1,11 @@ +--- ui/gfx/font_list.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/font_list.cc +@@ -27,7 +27,7 @@ base::LazyInstance<scoped_refptr<gfx::FontListImpl>>:: + bool g_default_impl_initialized = false; + + bool IsFontFamilyAvailable(const std::string& family, SkFontMgr* fontManager) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return !!fontManager->legacyMakeTypeface(family.c_str(), SkFontStyle()); + #else + sk_sp<SkFontStyleSet> set(fontManager->matchFamily(family.c_str())); diff --git a/devel/electron18/files/patch-ui_gfx_font__render__params.h b/devel/electron18/files/patch-ui_gfx_font__render__params.h new file mode 100644 index 000000000000..0b981084134d --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_font__render__params.h @@ -0,0 +1,20 @@ +--- ui/gfx/font_render_params.h.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/font_render_params.h +@@ -109,7 +109,7 @@ GFX_EXPORT FontRenderParams GetFontRenderParams( + const FontRenderParamsQuery& query, + std::string* family_out); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Clears GetFontRenderParams()'s cache. Intended to be called by tests that are + // changing Fontconfig's configuration. + GFX_EXPORT void ClearFontRenderParamsCacheForTest(); +@@ -119,7 +119,7 @@ GFX_EXPORT void ClearFontRenderParamsCacheForTest(); + GFX_EXPORT float GetFontRenderParamsDeviceScaleFactor(); + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + // Sets the device scale factor for FontRenderParams to decide + // if it should enable subpixel positioning. + GFX_EXPORT void SetFontRenderParamsDeviceScaleFactor( diff --git a/devel/electron18/files/patch-ui_gfx_font__util.cc b/devel/electron18/files/patch-ui_gfx_font__util.cc new file mode 100644 index 000000000000..5907695102d3 --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_font__util.cc @@ -0,0 +1,20 @@ +--- ui/gfx/font_util.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/font_util.cc +@@ -6,7 +6,7 @@ + + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <fontconfig/fontconfig.h> + #include "ui/gfx/linux/fontconfig_util.h" + #endif +@@ -24,7 +24,7 @@ void InitializeFonts() { + // background (resources have not yet been granted to cast) since it prevents + // the long delay the user would have seen on first rendering. + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Ensures the config is created on this thread. + FcConfig* config = GetGlobalFontConfig(); + DCHECK(config); diff --git a/devel/electron18/files/patch-ui_gfx_gpu__memory__buffer.cc b/devel/electron18/files/patch-ui_gfx_gpu__memory__buffer.cc new file mode 100644 index 000000000000..dbb537608840 --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_gpu__memory__buffer.cc @@ -0,0 +1,11 @@ +--- ui/gfx/gpu_memory_buffer.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/gpu_memory_buffer.cc +@@ -54,7 +54,7 @@ GpuMemoryBufferHandle GpuMemoryBufferHandle::Clone() c + handle.region = region.Duplicate(); + handle.offset = offset; + handle.stride = stride; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + handle.native_pixmap_handle = CloneHandleForIPC(native_pixmap_handle); + #elif BUILDFLAG(IS_MAC) + handle.io_surface = io_surface; diff --git a/devel/electron18/files/patch-ui_gfx_gpu__memory__buffer.h b/devel/electron18/files/patch-ui_gfx_gpu__memory__buffer.h new file mode 100644 index 000000000000..7e934877414e --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_gpu__memory__buffer.h @@ -0,0 +1,20 @@ +--- ui/gfx/gpu_memory_buffer.h.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/gpu_memory_buffer.h +@@ -16,7 +16,7 @@ + #include "ui/gfx/gfx_export.h" + #include "ui/gfx/hdr_metadata.h" + +-#if defined(USE_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if defined(USE_OZONE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/gfx/native_pixmap_handle.h" + #elif BUILDFLAG(IS_MAC) + #include "ui/gfx/mac/io_surface.h" +@@ -78,7 +78,7 @@ struct GFX_EXPORT GpuMemoryBufferHandle { + base::UnsafeSharedMemoryRegion region; + uint32_t offset = 0; + int32_t stride = 0; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + NativePixmapHandle native_pixmap_handle; + #elif BUILDFLAG(IS_MAC) + ScopedIOSurface io_surface; diff --git a/devel/electron18/files/patch-ui_gfx_ipc_gfx__param__traits__macros.h b/devel/electron18/files/patch-ui_gfx_ipc_gfx__param__traits__macros.h new file mode 100644 index 000000000000..057a2e8c841c --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_ipc_gfx__param__traits__macros.h @@ -0,0 +1,44 @@ +--- ui/gfx/ipc/gfx_param_traits_macros.h.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/ipc/gfx_param_traits_macros.h +@@ -18,7 +18,7 @@ + #include "ui/gfx/selection_bound.h" + #include "ui/gfx/swap_result.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "ui/gfx/native_pixmap_handle.h" + #endif + +@@ -48,7 +48,7 @@ IPC_STRUCT_TRAITS_BEGIN(gfx::GpuMemoryBufferHandle) + IPC_STRUCT_TRAITS_MEMBER(region) + IPC_STRUCT_TRAITS_MEMBER(offset) + IPC_STRUCT_TRAITS_MEMBER(stride) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + IPC_STRUCT_TRAITS_MEMBER(native_pixmap_handle) + #elif BUILDFLAG(IS_APPLE) + IPC_STRUCT_TRAITS_MEMBER(io_surface) +@@ -63,12 +63,12 @@ IPC_STRUCT_TRAITS_BEGIN(gfx::GpuMemoryBufferId) + IPC_STRUCT_TRAITS_MEMBER(id) + IPC_STRUCT_TRAITS_END() + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + IPC_STRUCT_TRAITS_BEGIN(gfx::NativePixmapPlane) + IPC_STRUCT_TRAITS_MEMBER(stride) + IPC_STRUCT_TRAITS_MEMBER(offset) + IPC_STRUCT_TRAITS_MEMBER(size) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + IPC_STRUCT_TRAITS_MEMBER(fd) + #elif BUILDFLAG(IS_FUCHSIA) + IPC_STRUCT_TRAITS_MEMBER(vmo) +@@ -77,7 +77,7 @@ IPC_STRUCT_TRAITS_END() + + IPC_STRUCT_TRAITS_BEGIN(gfx::NativePixmapHandle) + IPC_STRUCT_TRAITS_MEMBER(planes) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + IPC_STRUCT_TRAITS_MEMBER(modifier) + #endif + #if BUILDFLAG(IS_FUCHSIA) diff --git a/devel/electron18/files/patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc b/devel/electron18/files/patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc new file mode 100644 index 000000000000..21b41c9feff2 --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_linux_client__native__pixmap__dmabuf.cc @@ -0,0 +1,25 @@ +--- ui/gfx/linux/client_native_pixmap_dmabuf.cc.orig 2022-05-11 07:02:11 UTC ++++ ui/gfx/linux/client_native_pixmap_dmabuf.cc +@@ -5,7 +5,9 @@ + #include "ui/gfx/linux/client_native_pixmap_dmabuf.h" + + #include <fcntl.h> ++#if !defined(__OpenBSD__) && !defined(__FreeBSD__) + #include <linux/version.h> ++#endif + #include <stddef.h> + #include <sys/ioctl.h> + #include <sys/mman.h> +@@ -27,11 +29,7 @@ + #include "ui/gfx/buffer_format_util.h" + #include "ui/gfx/switches.h" + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) +-#include <linux/dma-buf.h> +-#else +-#include <linux/types.h> +- ++#if defined(__OpenBSD__) || defined(__FreeBSD__) + struct dma_buf_sync { + __u64 flags; + }; diff --git a/devel/electron18/files/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc b/devel/electron18/files/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc new file mode 100644 index 000000000000..4080ecba19cf --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_mojom_buffer__types__mojom__traits.cc @@ -0,0 +1,20 @@ +--- ui/gfx/mojom/buffer_types_mojom_traits.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/gfx/mojom/buffer_types_mojom_traits.cc +@@ -33,7 +33,7 @@ gfx::mojom::GpuMemoryBufferPlatformHandlePtr StructTra + return gfx::mojom::GpuMemoryBufferPlatformHandle::NewSharedMemoryHandle( + std::move(handle.region)); + case gfx::NATIVE_PIXMAP: +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) || BUILDFLAG(IS_BSD) + return gfx::mojom::GpuMemoryBufferPlatformHandle::NewNativePixmapHandle( + std::move(handle.native_pixmap_handle)); + #else +@@ -115,7 +115,7 @@ bool StructTraits<gfx::mojom::GpuMemoryBufferHandleDat + out->type = gfx::SHARED_MEMORY_BUFFER; + out->region = std::move(platform_handle->get_shared_memory_handle()); + return true; +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) || BUILDFLAG(IS_BSD) + case gfx::mojom::GpuMemoryBufferPlatformHandleDataView::Tag:: + NATIVE_PIXMAP_HANDLE: + out->type = gfx::NATIVE_PIXMAP; diff --git a/devel/electron18/files/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc b/devel/electron18/files/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc new file mode 100644 index 000000000000..f543d234a3c4 --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_mojom_native__handle__types__mojom__traits.cc @@ -0,0 +1,34 @@ +--- ui/gfx/mojom/native_handle_types_mojom_traits.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/mojom/native_handle_types_mojom_traits.cc +@@ -8,11 +8,11 @@ + + namespace mojo { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) || BUILDFLAG(IS_BSD) + mojo::PlatformHandle StructTraits< + gfx::mojom::NativePixmapPlaneDataView, + gfx::NativePixmapPlane>::buffer_handle(gfx::NativePixmapPlane& plane) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return mojo::PlatformHandle(std::move(plane.fd)); + #elif BUILDFLAG(IS_FUCHSIA) + return mojo::PlatformHandle(std::move(plane.vmo)); +@@ -28,7 +28,7 @@ bool StructTraits< + out->size = data.size(); + + mojo::PlatformHandle handle = data.TakeBufferHandle(); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + if (!handle.is_fd()) + return false; + out->fd = handle.TakeFD(); +@@ -45,7 +45,7 @@ bool StructTraits< + gfx::mojom::NativePixmapHandleDataView, + gfx::NativePixmapHandle>::Read(gfx::mojom::NativePixmapHandleDataView data, + gfx::NativePixmapHandle* out) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + out->modifier = data.modifier(); + #endif + diff --git a/devel/electron18/files/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h b/devel/electron18/files/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h new file mode 100644 index 000000000000..064884d1987e --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_mojom_native__handle__types__mojom__traits.h @@ -0,0 +1,29 @@ +--- ui/gfx/mojom/native_handle_types_mojom_traits.h.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/mojom/native_handle_types_mojom_traits.h +@@ -15,7 +15,7 @@ + #include "third_party/abseil-cpp/absl/types/optional.h" + #include "ui/gfx/mojom/native_handle_types.mojom-shared.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) || BUILDFLAG(IS_BSD) + #include "ui/gfx/native_pixmap_handle.h" + #endif + +@@ -25,7 +25,7 @@ + + namespace mojo { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || defined(USE_OZONE) || BUILDFLAG(IS_BSD) + template <> + struct COMPONENT_EXPORT(GFX_NATIVE_HANDLE_TYPES_SHARED_MOJOM_TRAITS) + StructTraits<gfx::mojom::NativePixmapPlaneDataView, +@@ -53,7 +53,7 @@ struct COMPONENT_EXPORT(GFX_NATIVE_HANDLE_TYPES_SHARED + return pixmap_handle.planes; + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static uint64_t modifier(const gfx::NativePixmapHandle& pixmap_handle) { + return pixmap_handle.modifier; + } diff --git a/devel/electron18/files/patch-ui_gfx_native__pixmap__handle.cc b/devel/electron18/files/patch-ui_gfx_native__pixmap__handle.cc new file mode 100644 index 000000000000..f77023039c17 --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_native__pixmap__handle.cc @@ -0,0 +1,62 @@ +--- ui/gfx/native_pixmap_handle.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/gfx/native_pixmap_handle.cc +@@ -9,7 +9,7 @@ + #include "base/logging.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include <drm_fourcc.h> + #include <unistd.h> + +@@ -21,9 +21,13 @@ + #include "base/fuchsia/fuchsia_logging.h" + #endif + ++#if BUILDFLAG(IS_BSD) ++#include <unistd.h> ++#endif ++ + namespace gfx { + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + static_assert(NativePixmapHandle::kNoModifier == DRM_FORMAT_MOD_INVALID, + "gfx::NativePixmapHandle::kNoModifier should be an alias for" + "DRM_FORMAT_MOD_INVALID"); +@@ -34,7 +38,7 @@ NativePixmapPlane::NativePixmapPlane() : stride(0), of + NativePixmapPlane::NativePixmapPlane(int stride, + int offset, + uint64_t size +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + , + base::ScopedFD fd + #elif BUILDFLAG(IS_FUCHSIA) +@@ -45,7 +49,7 @@ NativePixmapPlane::NativePixmapPlane(int stride, + : stride(stride), + offset(offset), + size(size) +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + , + fd(std::move(fd)) + #elif BUILDFLAG(IS_FUCHSIA) +@@ -73,7 +77,7 @@ NativePixmapHandle& NativePixmapHandle::operator=(Nati + NativePixmapHandle CloneHandleForIPC(const NativePixmapHandle& handle) { + NativePixmapHandle clone; + for (auto& plane : handle.planes) { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + DCHECK(plane.fd.is_valid()); + base::ScopedFD fd_dup(HANDLE_EINTR(dup(plane.fd.get()))); + if (!fd_dup.is_valid()) { +@@ -99,7 +103,7 @@ NativePixmapHandle CloneHandleForIPC(const NativePixma + #endif + } + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + clone.modifier = handle.modifier; + #endif + diff --git a/devel/electron18/files/patch-ui_gfx_native__pixmap__handle.h b/devel/electron18/files/patch-ui_gfx_native__pixmap__handle.h new file mode 100644 index 000000000000..ac4f2af65b7f --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_native__pixmap__handle.h @@ -0,0 +1,38 @@ +--- ui/gfx/native_pixmap_handle.h.orig 2022-05-19 05:18:01 UTC ++++ ui/gfx/native_pixmap_handle.h +@@ -15,7 +15,7 @@ + #include "third_party/abseil-cpp/absl/types/optional.h" + #include "ui/gfx/gfx_export.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/files/scoped_file.h" + #endif + +@@ -32,7 +32,7 @@ struct GFX_EXPORT NativePixmapPlane { + NativePixmapPlane(int stride, + int offset, + uint64_t size +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + , + base::ScopedFD fd + #elif BUILDFLAG(IS_FUCHSIA) +@@ -53,7 +53,7 @@ struct GFX_EXPORT NativePixmapPlane { + // This is necessary to map the buffers. + uint64_t size; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // File descriptor for the underlying memory object (usually dmabuf). + base::ScopedFD fd; + #elif BUILDFLAG(IS_FUCHSIA) +@@ -82,7 +82,7 @@ struct GFX_EXPORT NativePixmapHandle { + + std::vector<NativePixmapPlane> planes; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The modifier is retrieved from GBM library and passed to EGL driver. + // Generally it's platform specific, and we don't need to modify it in + // Chromium code. Also one per plane per entry. diff --git a/devel/electron18/files/patch-ui_gfx_native__widget__types.h b/devel/electron18/files/patch-ui_gfx_native__widget__types.h new file mode 100644 index 000000000000..14b851b0939e --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_native__widget__types.h @@ -0,0 +1,20 @@ +--- ui/gfx/native_widget_types.h.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/native_widget_types.h +@@ -106,7 +106,7 @@ class SkBitmap; + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + extern "C" { + struct _AtkObject; + typedef struct _AtkObject AtkObject; +@@ -209,7 +209,7 @@ typedef NSFont* NativeFont; + typedef id NativeViewAccessible; + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Linux doesn't have a native font type. + typedef AtkObject* NativeViewAccessible; + #else diff --git a/devel/electron18/files/patch-ui_gfx_render__text__api__fuzzer.cc b/devel/electron18/files/patch-ui_gfx_render__text__api__fuzzer.cc new file mode 100644 index 000000000000..c6cba493e8c6 --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_render__text__api__fuzzer.cc @@ -0,0 +1,29 @@ +--- ui/gfx/render_text_api_fuzzer.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/render_text_api_fuzzer.cc +@@ -21,7 +21,7 @@ + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if BUILDFLAG(IS_ANDROID) || \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + #include "base/test/test_discardable_memory_allocator.h" + #endif + +@@ -44,7 +44,7 @@ struct Environment { + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if BUILDFLAG(IS_ANDROID) || \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + // Some platforms require discardable memory to use bitmap fonts. + base::DiscardableMemoryAllocator::SetInstance( + &discardable_memory_allocator); +@@ -56,7 +56,7 @@ struct Environment { + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if BUILDFLAG(IS_ANDROID) || \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + base::TestDiscardableMemoryAllocator discardable_memory_allocator; + #endif + diff --git a/devel/electron18/files/patch-ui_gfx_switches.cc b/devel/electron18/files/patch-ui_gfx_switches.cc new file mode 100644 index 000000000000..954b42b9af34 --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_switches.cc @@ -0,0 +1,11 @@ +--- ui/gfx/switches.cc.orig 2022-05-20 04:30:53 UTC ++++ ui/gfx/switches.cc +@@ -28,7 +28,7 @@ const char kForcePrefersReducedMotion[] = "force-prefe + // Run in headless mode, i.e., without a UI or display server dependencies. + const char kHeadless[] = "headless"; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Which X11 display to connect to. Emulates the GTK+ "--display=" command line + // argument. In use only with Ozone/X11. + const char kX11Display[] = "display"; diff --git a/devel/electron18/files/patch-ui_gfx_switches.h b/devel/electron18/files/patch-ui_gfx_switches.h new file mode 100644 index 000000000000..aedd89b98ef4 --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_switches.h @@ -0,0 +1,11 @@ +--- ui/gfx/switches.h.orig 2022-05-20 04:30:53 UTC ++++ ui/gfx/switches.h +@@ -18,7 +18,7 @@ GFX_SWITCHES_EXPORT extern const char kEnableNativeGpu + GFX_SWITCHES_EXPORT extern const char kForcePrefersReducedMotion[]; + GFX_SWITCHES_EXPORT extern const char kHeadless[]; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + GFX_SWITCHES_EXPORT extern const char kX11Display[]; + GFX_SWITCHES_EXPORT extern const char kNoXshm[]; + #endif diff --git a/devel/electron18/files/patch-ui_gfx_x_generated__protos_dri3.cc b/devel/electron18/files/patch-ui_gfx_x_generated__protos_dri3.cc new file mode 100644 index 000000000000..35a0e1644b4e --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_x_generated__protos_dri3.cc @@ -0,0 +1,11 @@ +--- ui/gfx/x/generated_protos/dri3.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/x/generated_protos/dri3.cc +@@ -44,6 +44,8 @@ + #include <xcb/xcb.h> + #include <xcb/xcbext.h> + ++#include <unistd.h> ++ + #include "base/logging.h" + #include "base/posix/eintr_wrapper.h" + #include "ui/gfx/x/xproto_internal.h" diff --git a/devel/electron18/files/patch-ui_gfx_x_generated__protos_shm.cc b/devel/electron18/files/patch-ui_gfx_x_generated__protos_shm.cc new file mode 100644 index 000000000000..abd037c53a2e --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_x_generated__protos_shm.cc @@ -0,0 +1,11 @@ +--- ui/gfx/x/generated_protos/shm.cc.orig 2022-05-19 03:47:20 UTC ++++ ui/gfx/x/generated_protos/shm.cc +@@ -44,6 +44,8 @@ + #include <xcb/xcb.h> + #include <xcb/xcbext.h> + ++#include <unistd.h> ++ + #include "base/logging.h" + #include "base/posix/eintr_wrapper.h" + #include "ui/gfx/x/xproto_internal.h" diff --git a/devel/electron18/files/patch-ui_gfx_x_xlib__support.cc b/devel/electron18/files/patch-ui_gfx_x_xlib__support.cc new file mode 100644 index 000000000000..05305c7ba5c1 --- /dev/null +++ b/devel/electron18/files/patch-ui_gfx_x_xlib__support.cc @@ -0,0 +1,21 @@ +--- ui/gfx/x/xlib_support.cc.orig 2022-05-11 07:02:11 UTC ++++ ui/gfx/x/xlib_support.cc +@@ -38,10 +38,18 @@ void InitXlib() { + if (xlib_loader->loaded()) + return; + ++#if defined(OS_BSD) ++ CHECK(xlib_loader->Load("libX11.so")); ++#else + CHECK(xlib_loader->Load("libX11.so.6")); ++#endif + + auto* xlib_xcb_loader = GetXlibXcbLoader(); ++#if defined(OS_BSD) ++ CHECK(xlib_xcb_loader->Load("libX11-xcb.so")); ++#else + CHECK(xlib_xcb_loader->Load("libX11-xcb.so.1")); ++#endif + + CHECK(xlib_loader->XInitThreads()); + diff --git a/devel/electron18/files/patch-ui_gl_BUILD.gn b/devel/electron18/files/patch-ui_gl_BUILD.gn new file mode 100644 index 000000000000..5bb5ebe4bfd6 --- /dev/null +++ b/devel/electron18/files/patch-ui_gl_BUILD.gn @@ -0,0 +1,35 @@ +--- ui/gl/BUILD.gn.orig 2022-05-19 05:18:01 UTC ++++ ui/gl/BUILD.gn +@@ -162,8 +162,6 @@ component("gl") { + defines += [ "GPU_ENABLE_SERVICE_LOGGING" ] + } + +- include_dirs = [ "//third_party/mesa_headers" ] +- + all_dependent_configs = [ ":gl_config" ] + + public_configs = [ "//third_party/khronos:khronos_headers" ] +@@ -180,7 +178,6 @@ component("gl") { + ] + public_deps = [ + "//base", +- "//third_party/mesa_headers", + "//ui/events/platform", + "//ui/gfx", + "//ui/gfx/geometry", +@@ -409,7 +406,6 @@ component("gl") { + data_deps += [ + "//third_party/angle:libEGL", + "//third_party/angle:libGLESv2", +- "//third_party/mesa_headers", + ] + if (enable_swiftshader) { + data_deps += [ "//third_party/swiftshader" ] +@@ -639,7 +635,6 @@ test("gl_unittests") { + + data_deps = [ + "//testing/buildbot/filters:gl_unittests_filters", +- "//third_party/mesa_headers", + ] + + # TODO(https://crbug.com/789065): this must be moved to Ozone. diff --git a/devel/electron18/files/patch-ui_gl_generate__bindings.py b/devel/electron18/files/patch-ui_gl_generate__bindings.py new file mode 100644 index 000000000000..8f85f265a571 --- /dev/null +++ b/devel/electron18/files/patch-ui_gl_generate__bindings.py @@ -0,0 +1,12 @@ +--- ui/gl/generate_bindings.py.orig 2022-05-11 07:17:07 UTC ++++ ui/gl/generate_bindings.py +@@ -2868,6 +2868,9 @@ GLX_FUNCTIONS = [ + 'arguments': + 'Display* dpy, GLXDrawable drawable, int32_t* numerator, ' + 'int32_t* denominator' }, ++{ 'return_type': '__GLXextFuncPtr', ++ 'names': ['glXGetProcAddressARB'], ++ 'arguments': 'const GLubyte* procName', }, + { 'return_type': 'void', + 'names': ['glXGetSelectedEvent'], + 'arguments': 'Display* dpy, GLXDrawable drawable, unsigned long* mask', }, diff --git a/devel/electron18/files/patch-ui_gl_gl__bindings__api__autogen__glx.h b/devel/electron18/files/patch-ui_gl_gl__bindings__api__autogen__glx.h new file mode 100644 index 000000000000..87d64deb195f --- /dev/null +++ b/devel/electron18/files/patch-ui_gl_gl__bindings__api__autogen__glx.h @@ -0,0 +1,10 @@ +--- ui/gl/gl_bindings_api_autogen_glx.h.orig 2021-01-07 00:37:29 UTC ++++ ui/gl/gl_bindings_api_autogen_glx.h +@@ -88,6 +88,7 @@ bool glXGetMscRateOMLFn(Display* dpy, + GLXDrawable drawable, + int32_t* numerator, + int32_t* denominator) override; ++__GLXextFuncPtr glXGetProcAddressARBFn(const GLubyte* procName) override; + void glXGetSelectedEventFn(Display* dpy, + GLXDrawable drawable, + unsigned long* mask) override; diff --git a/devel/electron18/files/patch-ui_gl_gl__bindings__autogen__glx.cc b/devel/electron18/files/patch-ui_gl_gl__bindings__autogen__glx.cc new file mode 100644 index 000000000000..64d7773c406d --- /dev/null +++ b/devel/electron18/files/patch-ui_gl_gl__bindings__autogen__glx.cc @@ -0,0 +1,61 @@ +--- ui/gl/gl_bindings_autogen_glx.cc.orig 2022-05-11 07:17:07 UTC ++++ ui/gl/gl_bindings_autogen_glx.cc +@@ -115,6 +115,8 @@ void DriverGLX::InitializeExtensionBindings() { + + ext.b_GLX_ARB_create_context = + gfx::HasExtension(extensions, "GLX_ARB_create_context"); ++ ext.b_GLX_ARB_get_proc_address = ++ gfx::HasExtension(extensions, "GLX_ARB_get_proc_address"); + ext.b_GLX_EXT_swap_control = + gfx::HasExtension(extensions, "GLX_EXT_swap_control"); + ext.b_GLX_EXT_texture_from_pixmap = +@@ -156,6 +158,11 @@ void DriverGLX::InitializeExtensionBindings() { + GetGLProcAddress("glXGetMscRateOML")); + } + ++ if (ext.b_GLX_ARB_get_proc_address) { ++ fn.glXGetProcAddressARBFn = reinterpret_cast<glXGetProcAddressARBProc>( ++ GetGLProcAddress("glXGetProcAddressARB")); ++ } ++ + if (ext.b_GLX_OML_sync_control) { + fn.glXGetSyncValuesOMLFn = reinterpret_cast<glXGetSyncValuesOMLProc>( + GetGLProcAddress("glXGetSyncValuesOML")); +@@ -346,6 +353,10 @@ bool GLXApiBase::glXGetMscRateOMLFn(Display* dpy, + return driver_->fn.glXGetMscRateOMLFn(dpy, drawable, numerator, denominator); + } + ++__GLXextFuncPtr GLXApiBase::glXGetProcAddressARBFn(const GLubyte* procName) { ++ return driver_->fn.glXGetProcAddressARBFn(procName); ++} ++ + void GLXApiBase::glXGetSelectedEventFn(Display* dpy, + GLXDrawable drawable, + unsigned long* mask) { +@@ -648,6 +659,11 @@ bool TraceGLXApi::glXGetMscRateOMLFn(Display* dpy, + return glx_api_->glXGetMscRateOMLFn(dpy, drawable, numerator, denominator); + } + ++__GLXextFuncPtr TraceGLXApi::glXGetProcAddressARBFn(const GLubyte* procName) { ++ TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLXAPI::glXGetProcAddressARB") ++ return glx_api_->glXGetProcAddressARBFn(procName); ++} ++ + void TraceGLXApi::glXGetSelectedEventFn(Display* dpy, + GLXDrawable drawable, + unsigned long* mask) { +@@ -1069,6 +1085,14 @@ bool LogGLXApi::glXGetMscRateOMLFn(Display* dpy, + << static_cast<const void*>(denominator) << ")"); + bool result = + glx_api_->glXGetMscRateOMLFn(dpy, drawable, numerator, denominator); ++ GL_SERVICE_LOG("GL_RESULT: " << result); ++ return result; ++} ++ ++__GLXextFuncPtr LogGLXApi::glXGetProcAddressARBFn(const GLubyte* procName) { ++ GL_SERVICE_LOG("glXGetProcAddressARB" ++ << "(" << static_cast<const void*>(procName) << ")"); ++ __GLXextFuncPtr result = glx_api_->glXGetProcAddressARBFn(procName); + GL_SERVICE_LOG("GL_RESULT: " << result); + return result; + } diff --git a/devel/electron18/files/patch-ui_gl_gl__bindings__autogen__glx.h b/devel/electron18/files/patch-ui_gl_gl__bindings__autogen__glx.h new file mode 100644 index 000000000000..e30a72f39e11 --- /dev/null +++ b/devel/electron18/files/patch-ui_gl_gl__bindings__autogen__glx.h @@ -0,0 +1,43 @@ +--- ui/gl/gl_bindings_autogen_glx.h.orig 2021-01-07 00:37:29 UTC ++++ ui/gl/gl_bindings_autogen_glx.h +@@ -104,6 +104,8 @@ typedef bool(GL_BINDING_CALL* glXGetMscRateOMLProc)(Di + GLXDrawable drawable, + int32_t* numerator, + int32_t* denominator); ++typedef __GLXextFuncPtr(GL_BINDING_CALL* glXGetProcAddressARBProc)( ++ const GLubyte* procName); + typedef void(GL_BINDING_CALL* glXGetSelectedEventProc)(Display* dpy, + GLXDrawable drawable, + unsigned long* mask); +@@ -166,6 +168,7 @@ typedef void(GL_BINDING_CALL* glXWaitXProc)(void); + + struct ExtensionsGLX { + bool b_GLX_ARB_create_context; ++ bool b_GLX_ARB_get_proc_address; + bool b_GLX_EXT_swap_control; + bool b_GLX_EXT_texture_from_pixmap; + bool b_GLX_MESA_copy_sub_buffer; +@@ -203,6 +206,7 @@ struct ProcsGLX { + glXGetFBConfigFromVisualSGIXProc glXGetFBConfigFromVisualSGIXFn; + glXGetFBConfigsProc glXGetFBConfigsFn; + glXGetMscRateOMLProc glXGetMscRateOMLFn; ++ glXGetProcAddressARBProc glXGetProcAddressARBFn; + glXGetSelectedEventProc glXGetSelectedEventFn; + glXGetSyncValuesOMLProc glXGetSyncValuesOMLFn; + glXGetVisualFromFBConfigProc glXGetVisualFromFBConfigFn; +@@ -310,6 +314,7 @@ class GL_EXPORT GLXApi { + GLXDrawable drawable, + int32_t* numerator, + int32_t* denominator) = 0; ++ virtual __GLXextFuncPtr glXGetProcAddressARBFn(const GLubyte* procName) = 0; + virtual void glXGetSelectedEventFn(Display* dpy, + GLXDrawable drawable, + unsigned long* mask) = 0; +@@ -394,6 +399,7 @@ class GL_EXPORT GLXApi { + ::gl::g_current_glx_context->glXGetFBConfigFromVisualSGIXFn + #define glXGetFBConfigs ::gl::g_current_glx_context->glXGetFBConfigsFn + #define glXGetMscRateOML ::gl::g_current_glx_context->glXGetMscRateOMLFn ++#define glXGetProcAddressARB ::gl::g_current_glx_context->glXGetProcAddressARBFn + #define glXGetSelectedEvent ::gl::g_current_glx_context->glXGetSelectedEventFn + #define glXGetSyncValuesOML ::gl::g_current_glx_context->glXGetSyncValuesOMLFn + #define glXGetVisualFromFBConfig \ diff --git a/devel/electron18/files/patch-ui_gl_gl__context.cc b/devel/electron18/files/patch-ui_gl_gl__context.cc new file mode 100644 index 000000000000..2a730aa09624 --- /dev/null +++ b/devel/electron18/files/patch-ui_gl_gl__context.cc @@ -0,0 +1,11 @@ +--- ui/gl/gl_context.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/gl/gl_context.cc +@@ -416,7 +416,7 @@ bool GLContext::MakeVirtuallyCurrent( + DCHECK(virtual_context->IsCurrent(surface)); + + if (switched_real_contexts || virtual_context != current_virtual_context_) { +-#if DCHECK_IS_ON() ++#if DCHECK_IS_ON() && !BUILDFLAG(IS_BSD) + GLenum error = glGetError(); + // Accepting a context loss error here enables using debug mode to work on + // context loss handling in virtual context mode. diff --git a/devel/electron18/files/patch-ui_gl_gl__features.cc b/devel/electron18/files/patch-ui_gl_gl__features.cc new file mode 100644 index 000000000000..2ecaaffe5608 --- /dev/null +++ b/devel/electron18/files/patch-ui_gl_gl__features.cc @@ -0,0 +1,11 @@ +--- ui/gl/gl_features.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/gl/gl_features.cc +@@ -76,7 +76,7 @@ bool IsDeviceBlocked(const char* field, const std::str + const base::Feature kDefaultPassthroughCommandDecoder { + "DefaultPassthroughCommandDecoder", + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA) || \ +- ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \ ++ ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) && \ + !defined(CHROMECAST_BUILD)) || \ + BUILDFLAG(IS_MAC) + base::FEATURE_ENABLED_BY_DEFAULT diff --git a/devel/electron18/files/patch-ui_gl_gl__image__glx__native__pixmap.cc b/devel/electron18/files/patch-ui_gl_gl__image__glx__native__pixmap.cc new file mode 100644 index 000000000000..6ef799e7419e --- /dev/null +++ b/devel/electron18/files/patch-ui_gl_gl__image__glx__native__pixmap.cc @@ -0,0 +1,11 @@ +--- ui/gl/gl_image_glx_native_pixmap.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/gl/gl_image_glx_native_pixmap.cc +@@ -16,6 +16,8 @@ + #include "ui/gl/buffer_format_utils.h" + #include "ui/gl/gl_bindings.h" + ++#include <unistd.h> ++ + namespace gl { + + namespace { diff --git a/devel/electron18/files/patch-ui_gl_gl__implementation.cc b/devel/electron18/files/patch-ui_gl_gl__implementation.cc new file mode 100644 index 000000000000..1f8fb7a05b3b --- /dev/null +++ b/devel/electron18/files/patch-ui_gl_gl__implementation.cc @@ -0,0 +1,11 @@ +--- ui/gl/gl_implementation.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/gl/gl_implementation.cc +@@ -294,7 +294,7 @@ GLImplementationParts GetSoftwareGLImplementation() { + + GLImplementationParts GetSoftwareGLImplementationForPlatform() { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_FUCHSIA) ++ BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) + return GetSoftwareGLImplementation(); + #else + return GetLegacySoftwareGLImplementation(); diff --git a/devel/electron18/files/patch-ui_gl_sync__control__vsync__provider.cc b/devel/electron18/files/patch-ui_gl_sync__control__vsync__provider.cc new file mode 100644 index 000000000000..c598703ceaf3 --- /dev/null +++ b/devel/electron18/files/patch-ui_gl_sync__control__vsync__provider.cc @@ -0,0 +1,38 @@ +--- ui/gl/sync_control_vsync_provider.cc.orig 2022-05-19 03:47:21 UTC ++++ ui/gl/sync_control_vsync_provider.cc +@@ -11,7 +11,7 @@ + #include "base/trace_event/trace_event.h" + #include "build/build_config.h" + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // These constants define a reasonable range for a calculated refresh interval. + // Calculating refreshes out of this range will be considered a fatal error. + const int64_t kMinVsyncIntervalUs = base::Time::kMicrosecondsPerSecond / 400; +@@ -26,7 +26,7 @@ const double kRelativeIntervalDifferenceThreshold = 0. + namespace gl { + + SyncControlVSyncProvider::SyncControlVSyncProvider() : gfx::VSyncProvider() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On platforms where we can't get an accurate reading on the refresh + // rate we fall back to the assumption that we're displaying 60 frames + // per second. +@@ -48,7 +48,7 @@ bool SyncControlVSyncProvider::GetVSyncParametersIfAva + base::TimeTicks* timebase_out, + base::TimeDelta* interval_out) { + TRACE_EVENT0("gpu", "SyncControlVSyncProvider::GetVSyncParameters"); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The actual clock used for the system time returned by glXGetSyncValuesOML + // is unspecified. In practice, the clock used is likely to be either + // CLOCK_REALTIME or CLOCK_MONOTONIC, so we compare the returned time to the +@@ -159,7 +159,7 @@ bool SyncControlVSyncProvider::GetVSyncParametersIfAva + } + + bool SyncControlVSyncProvider::SupportGetVSyncParametersIfAvailable() const { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return true; + #else + return false; diff --git a/devel/electron18/files/patch-ui_gl_sync__control__vsync__provider.h b/devel/electron18/files/patch-ui_gl_sync__control__vsync__provider.h new file mode 100644 index 000000000000..2422027407a4 --- /dev/null +++ b/devel/electron18/files/patch-ui_gl_sync__control__vsync__provider.h @@ -0,0 +1,20 @@ +--- ui/gl/sync_control_vsync_provider.h.orig 2022-05-19 05:18:01 UTC ++++ ui/gl/sync_control_vsync_provider.h +@@ -30,7 +30,7 @@ class SyncControlVSyncProvider : public gfx::VSyncProv + bool SupportGetVSyncParametersIfAvailable() const override; + + static constexpr bool IsSupported() { +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return true; + #else + return false; +@@ -45,7 +45,7 @@ class SyncControlVSyncProvider : public gfx::VSyncProv + virtual bool GetMscRate(int32_t* numerator, int32_t* denominator) = 0; + + private: +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + base::TimeTicks last_timebase_; + uint64_t last_media_stream_counter_ = 0; + base::TimeDelta last_good_interval_; diff --git a/devel/electron18/files/patch-ui_gtk_gtk__compat.cc b/devel/electron18/files/patch-ui_gtk_gtk__compat.cc new file mode 100644 index 000000000000..1d46f621a215 --- /dev/null +++ b/devel/electron18/files/patch-ui_gtk_gtk__compat.cc @@ -0,0 +1,50 @@ +--- ui/gtk/gtk_compat.cc.orig 2022-05-11 07:17:07 UTC ++++ ui/gtk/gtk_compat.cc +@@ -62,27 +62,47 @@ auto DlCast(void* symbol) { + } + + void* GetLibGio() { ++#if defined(OS_BSD) ++ static void* libgio = DlOpen("libgio-2.0.so"); ++#else + static void* libgio = DlOpen("libgio-2.0.so.0"); ++#endif + return libgio; + } + + void* GetLibGdkPixbuf() { ++#if defined(OS_BSD) ++ static void* libgdk_pixbuf = DlOpen("libgdk_pixbuf-2.0.so"); ++#else + static void* libgdk_pixbuf = DlOpen("libgdk_pixbuf-2.0.so.0"); ++#endif + return libgdk_pixbuf; + } + + void* GetLibGdk3() { ++#if defined(OS_BSD) ++ static void* libgdk3 = DlOpen("libgdk-3.so"); ++#else + static void* libgdk3 = DlOpen("libgdk-3.so.0"); ++#endif + return libgdk3; + } + + void* GetLibGtk3(bool check = true) { ++#if defined(OS_BSD) ++ static void* libgtk3 = DlOpen("libgtk-3.so", check); ++#else + static void* libgtk3 = DlOpen("libgtk-3.so.0", check); ++#endif + return libgtk3; + } + + void* GetLibGtk4(bool check = true) { ++#if defined(OS_BSD) ++ static void* libgtk4 = DlOpen("libgtk-4.so", check); ++#else + static void* libgtk4 = DlOpen("libgtk-4.so.1", check); ++#endif + return libgtk4; + } + diff --git a/devel/electron18/files/patch-ui_gtk_printing_print__dialog__gtk.cc b/devel/electron18/files/patch-ui_gtk_printing_print__dialog__gtk.cc new file mode 100644 index 000000000000..7ee9b937a082 --- /dev/null +++ b/devel/electron18/files/patch-ui_gtk_printing_print__dialog__gtk.cc @@ -0,0 +1,11 @@ +--- ui/gtk/printing/print_dialog_gtk.cc.orig 2022-05-13 07:19:54 UTC ++++ ui/gtk/printing/print_dialog_gtk.cc +@@ -413,7 +413,7 @@ void PrintDialogGtk::ShowDialog( + GtkPrintCapabilities cap = static_cast<GtkPrintCapabilities>( + GTK_PRINT_CAPABILITY_GENERATE_PDF | GTK_PRINT_CAPABILITY_PAGE_SET | + GTK_PRINT_CAPABILITY_COPIES | GTK_PRINT_CAPABILITY_COLLATE | +- GTK_PRINT_CAPABILITY_REVERSE); ++ GTK_PRINT_CAPABILITY_REVERSE | GTK_PRINT_CAPABILITY_GENERATE_PS); + gtk_print_unix_dialog_set_manual_capabilities(GTK_PRINT_UNIX_DIALOG(dialog_), + cap); + gtk_print_unix_dialog_set_embed_page_setup(GTK_PRINT_UNIX_DIALOG(dialog_), diff --git a/devel/electron18/files/patch-ui_message__center_views_message__popup__view.cc b/devel/electron18/files/patch-ui_message__center_views_message__popup__view.cc new file mode 100644 index 000000000000..2793acba2386 --- /dev/null +++ b/devel/electron18/files/patch-ui_message__center_views_message__popup__view.cc @@ -0,0 +1,11 @@ +--- ui/message_center/views/message_popup_view.cc.orig 2022-05-19 03:47:21 UTC ++++ ui/message_center/views/message_popup_view.cc +@@ -123,7 +123,7 @@ void MessagePopupView::Show() { + params.z_order = ui::ZOrderLevel::kFloatingWindow; + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Make the widget explicitly activatable as TYPE_POPUP is not activatable by + // default but we need focus for the inline reply textarea. + params.activatable = views::Widget::InitParams::Activatable::kYes; diff --git a/devel/electron18/files/patch-ui_native__theme_native__theme.h b/devel/electron18/files/patch-ui_native__theme_native__theme.h new file mode 100644 index 000000000000..01d4e20f673b --- /dev/null +++ b/devel/electron18/files/patch-ui_native__theme_native__theme.h @@ -0,0 +1,11 @@ +--- ui/native_theme/native_theme.h.orig 2022-05-20 04:30:53 UTC ++++ ui/native_theme/native_theme.h +@@ -59,7 +59,7 @@ class NATIVE_THEME_EXPORT NativeTheme { + kCheckbox, + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + kFrameTopArea, + #endif + kInnerSpinButton, diff --git a/devel/electron18/files/patch-ui_native__theme_native__theme__base.cc b/devel/electron18/files/patch-ui_native__theme_native__theme__base.cc new file mode 100644 index 000000000000..c3a5e637f1d7 --- /dev/null +++ b/devel/electron18/files/patch-ui_native__theme_native__theme__base.cc @@ -0,0 +1,11 @@ +--- ui/native_theme/native_theme_base.cc.orig 2022-05-19 03:47:21 UTC ++++ ui/native_theme/native_theme_base.cc +@@ -269,7 +269,7 @@ void NativeThemeBase::Paint(cc::PaintCanvas* canvas, + break; + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + case kFrameTopArea: + PaintFrameTopArea(canvas, state, rect, extra.frame_top_area, + color_scheme); diff --git a/devel/electron18/files/patch-ui_ozone_common_egl__util.cc b/devel/electron18/files/patch-ui_ozone_common_egl__util.cc new file mode 100644 index 000000000000..6e335effd5c6 --- /dev/null +++ b/devel/electron18/files/patch-ui_ozone_common_egl__util.cc @@ -0,0 +1,14 @@ +--- ui/ozone/common/egl_util.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/ozone/common/egl_util.cc +@@ -36,9 +36,9 @@ const base::FilePath::CharType kDefaultGlesSoname[] = + FILE_PATH_LITERAL("libGLESv2.so"); + #else // BUILDFLAG(IS_FUCHSIA) + const base::FilePath::CharType kDefaultEglSoname[] = +- FILE_PATH_LITERAL("libEGL.so.1"); ++ FILE_PATH_LITERAL("libEGL.so"); + const base::FilePath::CharType kDefaultGlesSoname[] = +- FILE_PATH_LITERAL("libGLESv2.so.2"); ++ FILE_PATH_LITERAL("libGLESv2.so"); + #endif + const base::FilePath::CharType kAngleEglSoname[] = + FILE_PATH_LITERAL("libEGL.so"); diff --git a/devel/electron18/files/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc b/devel/electron18/files/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc new file mode 100644 index 000000000000..dba98006d327 --- /dev/null +++ b/devel/electron18/files/patch-ui_ozone_platform_wayland_gpu_vulkan__implementation__wayland.cc @@ -0,0 +1,14 @@ +--- ui/ozone/platform/wayland/gpu/vulkan_implementation_wayland.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/ozone/platform/wayland/gpu/vulkan_implementation_wayland.cc +@@ -38,7 +38,11 @@ bool VulkanImplementationWayland::InitializeVulkanInst + + path = path.Append("libvk_swiftshader.so"); + } else { ++#if BUILDFLAG(IS_BSD) ++ path = base::FilePath("libvulkan.so"); ++#else + path = base::FilePath("libvulkan.so.1"); ++#endif + } + + return vulkan_instance_.Initialize(path, required_extensions, {}); diff --git a/devel/electron18/files/patch-ui_ozone_platform_x11_ozone__platform__x11.cc b/devel/electron18/files/patch-ui_ozone_platform_x11_ozone__platform__x11.cc new file mode 100644 index 000000000000..14d51d0d28ff --- /dev/null +++ b/devel/electron18/files/patch-ui_ozone_platform_x11_ozone__platform__x11.cc @@ -0,0 +1,11 @@ +--- ui/ozone/platform/x11/ozone_platform_x11.cc.orig 2022-05-20 04:30:53 UTC ++++ ui/ozone/platform/x11/ozone_platform_x11.cc +@@ -205,7 +205,7 @@ class OzonePlatformX11 : public OzonePlatform, + properties->supports_global_application_menus = true; + properties->app_modal_dialogs_use_event_blocker = true; + properties->fetch_buffer_formats_for_gmb_on_gpu = true; +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + properties->supports_vaapi = true; + #endif + diff --git a/devel/electron18/files/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc b/devel/electron18/files/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc new file mode 100644 index 000000000000..2bbe681c59f8 --- /dev/null +++ b/devel/electron18/files/patch-ui_ozone_platform_x11_vulkan__implementation__x11.cc @@ -0,0 +1,14 @@ +--- ui/ozone/platform/x11/vulkan_implementation_x11.cc.orig 2022-05-19 05:18:01 UTC ++++ ui/ozone/platform/x11/vulkan_implementation_x11.cc +@@ -58,7 +58,11 @@ bool VulkanImplementationX11::InitializeVulkanInstance + + path = path.Append("libvk_swiftshader.so"); + } else { ++#if BUILDFLAG(IS_BSD) ++ path = base::FilePath("libvulkan.so"); ++#else + path = base::FilePath("libvulkan.so.1"); ++#endif + } + + return vulkan_instance_.Initialize(path, required_extensions, {}); diff --git a/devel/electron18/files/patch-ui_ozone_public_ozone__platform.h b/devel/electron18/files/patch-ui_ozone_public_ozone__platform.h new file mode 100644 index 000000000000..3686fa973df1 --- /dev/null +++ b/devel/electron18/files/patch-ui_ozone_public_ozone__platform.h @@ -0,0 +1,11 @@ +--- ui/ozone/public/ozone_platform.h.orig 2022-05-20 04:30:53 UTC ++++ ui/ozone/public/ozone_platform.h +@@ -155,7 +155,7 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform { + // back via gpu extra info. + bool fetch_buffer_formats_for_gmb_on_gpu = false; + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on + // Linux. At the moment, VA-API Linux implementation supports only X11 + // backend. This implementation must be refactored to support Ozone diff --git a/devel/electron18/files/patch-ui_platform__window_platform__window__init__properties.h b/devel/electron18/files/patch-ui_platform__window_platform__window__init__properties.h new file mode 100644 index 000000000000..41c3745748d9 --- /dev/null +++ b/devel/electron18/files/patch-ui_platform__window_platform__window__init__properties.h @@ -0,0 +1,20 @@ +--- ui/platform_window/platform_window_init_properties.h.orig 2022-05-19 05:18:01 UTC ++++ ui/platform_window/platform_window_init_properties.h +@@ -54,7 +54,7 @@ class WorkspaceExtensionDelegate; + class ScenicWindowDelegate; + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + class X11ExtensionDelegate; + #endif + +@@ -116,7 +116,7 @@ struct COMPONENT_EXPORT(PLATFORM_WINDOW) PlatformWindo + + PlatformWindowShadowType shadow_type = PlatformWindowShadowType::kDefault; + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool prefer_dark_theme = false; + gfx::ImageSkia* icon = nullptr; + absl::optional<int> background_color; diff --git a/devel/electron18/files/patch-ui_strings_app__locale__settings.grd b/devel/electron18/files/patch-ui_strings_app__locale__settings.grd new file mode 100644 index 000000000000..efa54d7b6e9c --- /dev/null +++ b/devel/electron18/files/patch-ui_strings_app__locale__settings.grd @@ -0,0 +1,11 @@ +--- ui/strings/app_locale_settings.grd.orig 2022-05-19 05:18:01 UTC ++++ ui/strings/app_locale_settings.grd +@@ -225,7 +225,7 @@ + 75% + </message> + </if> +- <if expr="(is_linux or is_android or is_bsd or is_fuchsia) and not (chromeos_ash or chromeos_lacros)"> ++ <if expr="(is_posix or is_android or is_bsd or is_fuchsia) and not (chromeos_ash or chromeos_lacros)"> + <!-- The font used in Web UI (e.g. History). Note that these are only + backups. We try to use the system font if possible. --> + <message name="IDS_WEB_FONT_FAMILY" use_name_for_id="true"> diff --git a/devel/electron18/files/patch-ui_views_controls_prefix__selector.cc b/devel/electron18/files/patch-ui_views_controls_prefix__selector.cc new file mode 100644 index 000000000000..c9f743ee3a57 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_controls_prefix__selector.cc @@ -0,0 +1,11 @@ +--- ui/views/controls/prefix_selector.cc.orig 2022-05-19 03:47:21 UTC ++++ ui/views/controls/prefix_selector.cc +@@ -171,7 +171,7 @@ bool PrefixSelector::ShouldDoLearning() { + return false; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool PrefixSelector::SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) { diff --git a/devel/electron18/files/patch-ui_views_controls_prefix__selector.h b/devel/electron18/files/patch-ui_views_controls_prefix__selector.h new file mode 100644 index 000000000000..b8e8984321e8 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_controls_prefix__selector.h @@ -0,0 +1,11 @@ +--- ui/views/controls/prefix_selector.h.orig 2022-05-19 03:47:21 UTC ++++ ui/views/controls/prefix_selector.h +@@ -81,7 +81,7 @@ class VIEWS_EXPORT PrefixSelector : public ui::TextInp + ukm::SourceId GetClientSourceForMetrics() const override; + bool ShouldDoLearning() override; + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override; diff --git a/devel/electron18/files/patch-ui_views_controls_textfield_textfield.cc b/devel/electron18/files/patch-ui_views_controls_textfield_textfield.cc new file mode 100644 index 000000000000..cb58cdc3f341 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_controls_textfield_textfield.cc @@ -0,0 +1,64 @@ +--- ui/views/controls/textfield/textfield.cc.orig 2022-05-19 05:18:02 UTC ++++ ui/views/controls/textfield/textfield.cc +@@ -73,7 +73,7 @@ + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "ui/base/ime/linux/text_edit_command_auralinux.h" + #include "ui/base/ime/linux/text_edit_key_bindings_delegate_auralinux.h" + #endif +@@ -166,7 +166,7 @@ bool IsControlKeyModifier(int flags) { + // Control-modified key combination, but we cannot extend it to other platforms + // as Control has different meanings and behaviors. + // https://crrev.com/2580483002/#msg46 +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + return flags & ui::EF_CONTROL_DOWN; + #else + return false; +@@ -715,7 +715,7 @@ bool Textfield::OnKeyPressed(const ui::KeyEvent& event + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + ui::TextEditKeyBindingsDelegateAuraLinux* delegate = + ui::GetTextEditKeyBindingsDelegate(); + std::vector<ui::TextEditCommandAuraLinux> commands; +@@ -861,7 +861,7 @@ void Textfield::AboutToRequestFocusFromTabTraversal(bo + bool Textfield::SkipDefaultKeyEventProcessing(const ui::KeyEvent& event) { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Skip any accelerator handling that conflicts with custom keybindings. + ui::TextEditKeyBindingsDelegateAuraLinux* delegate = + ui::GetTextEditKeyBindingsDelegate(); +@@ -1721,7 +1721,7 @@ bool Textfield::ShouldDoLearning() { + return false; + } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // TODO(https://crbug.com/952355): Implement this method to support Korean IME + // reconversion feature on native text fields (e.g. find bar). + bool Textfield::SetCompositionFromExistingText( +@@ -2220,14 +2220,14 @@ ui::TextEditCommand Textfield::GetCommandForKeyEvent( + #endif + return ui::TextEditCommand::DELETE_BACKWARD; + } +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Only erase by line break on Linux and ChromeOS. + if (shift) + return ui::TextEditCommand::DELETE_TO_BEGINNING_OF_LINE; + #endif + return ui::TextEditCommand::DELETE_WORD_BACKWARD; + case ui::VKEY_DELETE: +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Only erase by line break on Linux and ChromeOS. + if (shift && control) + return ui::TextEditCommand::DELETE_TO_END_OF_LINE; diff --git a/devel/electron18/files/patch-ui_views_controls_textfield_textfield.h b/devel/electron18/files/patch-ui_views_controls_textfield_textfield.h new file mode 100644 index 000000000000..0b5ca8985323 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_controls_textfield_textfield.h @@ -0,0 +1,11 @@ +--- ui/views/controls/textfield/textfield.h.orig 2022-05-19 05:18:02 UTC ++++ ui/views/controls/textfield/textfield.h +@@ -443,7 +443,7 @@ class VIEWS_EXPORT Textfield : public View, + // Set whether the text should be used to improve typing suggestions. + void SetShouldDoLearning(bool value) { should_do_learning_ = value; } + +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + bool SetCompositionFromExistingText( + const gfx::Range& range, + const std::vector<ui::ImeTextSpan>& ui_ime_text_spans) override; diff --git a/devel/electron18/files/patch-ui_views_corewm_tooltip__aura.cc b/devel/electron18/files/patch-ui_views_corewm_tooltip__aura.cc new file mode 100644 index 000000000000..b3cfa7435a60 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_corewm_tooltip__aura.cc @@ -0,0 +1,11 @@ +--- ui/views/corewm/tooltip_aura.cc.orig 2022-05-19 05:18:02 UTC ++++ ui/views/corewm/tooltip_aura.cc +@@ -50,7 +50,7 @@ constexpr int kVerticalPaddingBottom = 5; + bool CanUseTranslucentTooltipWidget() { + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_WIN) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + return false; + #else + return true; diff --git a/devel/electron18/files/patch-ui_views_examples_widget__example.cc b/devel/electron18/files/patch-ui_views_examples_widget__example.cc new file mode 100644 index 000000000000..e8c3d465f51d --- /dev/null +++ b/devel/electron18/files/patch-ui_views_examples_widget__example.cc @@ -0,0 +1,11 @@ +--- ui/views/examples/widget_example.cc.orig 2022-05-19 05:18:02 UTC ++++ ui/views/examples/widget_example.cc +@@ -49,7 +49,7 @@ void WidgetExample::CreateExampleView(View* container) + modal_button->SetCallback( + base::BindRepeating(&WidgetExample::CreateDialogWidget, + base::Unretained(this), modal_button, true)); +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Windows does not support TYPE_CONTROL top-level widgets. + LabelButton* control_button = BuildButton( + container, GetStringUTF16(IDS_WIDGET_CHILD_WIDGET_BUTTON_LABEL)); diff --git a/devel/electron18/files/patch-ui_views_focus_focus__manager.cc b/devel/electron18/files/patch-ui_views_focus_focus__manager.cc new file mode 100644 index 000000000000..25fb35597b18 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_focus_focus__manager.cc @@ -0,0 +1,20 @@ +--- ui/views/focus/focus_manager.cc.orig 2022-05-19 05:18:02 UTC ++++ ui/views/focus/focus_manager.cc +@@ -634,7 +634,7 @@ bool FocusManager::RedirectAcceleratorToBubbleAnchorWi + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Processing an accelerator can delete things. Because we + // need these objects afterwards on Linux, save widget_ as weak pointer and + // save the close_on_deactivate property value of widget_delegate in a +@@ -651,7 +651,7 @@ bool FocusManager::RedirectAcceleratorToBubbleAnchorWi + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + // Need to manually close the bubble widget on Linux. On Linux when the + // bubble is shown, the main widget remains active. Because of that when + // focus is set to the main widget to process accelerator, the main widget diff --git a/devel/electron18/files/patch-ui_views_linux__ui_linux__ui.cc b/devel/electron18/files/patch-ui_views_linux__ui_linux__ui.cc new file mode 100644 index 000000000000..41c33d1aaa71 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_linux__ui_linux__ui.cc @@ -0,0 +1,11 @@ +--- ui/views/linux_ui/linux_ui.cc.orig 2022-05-19 05:18:02 UTC ++++ ui/views/linux_ui/linux_ui.cc +@@ -21,7 +21,7 @@ void LinuxUI::SetInstance(std::unique_ptr<LinuxUI> ins + g_linux_ui = instance.release(); + + SkiaFontDelegate::SetInstance(g_linux_ui); +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMECAST) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMECAST) + ShellDialogLinux::SetInstance(g_linux_ui); + #endif + ui::SetTextEditKeyBindingsDelegate(g_linux_ui); diff --git a/devel/electron18/files/patch-ui_views_linux__ui_linux__ui.h b/devel/electron18/files/patch-ui_views_linux__ui_linux__ui.h new file mode 100644 index 000000000000..784ae7e547b9 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_linux__ui_linux__ui.h @@ -0,0 +1,20 @@ +--- ui/views/linux_ui/linux_ui.h.orig 2022-05-19 05:18:02 UTC ++++ ui/views/linux_ui/linux_ui.h +@@ -21,7 +21,7 @@ + #include "ui/views/controls/button/button.h" + #include "ui/views/views_export.h" + +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMECAST) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMECAST) + #include "ui/shell_dialogs/shell_dialog_linux.h" + #endif + +@@ -57,7 +57,7 @@ class WindowFrameProvider; + // project that wants to do linux desktop native rendering. + class VIEWS_EXPORT LinuxUI : public ui::LinuxInputMethodContextFactory, + public gfx::SkiaFontDelegate, +-#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMECAST) ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)) && !BUILDFLAG(IS_CHROMECAST) + public ui::ShellDialogLinux, + #endif + public ui::TextEditKeyBindingsDelegateAuraLinux, diff --git a/devel/electron18/files/patch-ui_views_style_platform__style.cc b/devel/electron18/files/patch-ui_views_style_platform__style.cc new file mode 100644 index 000000000000..ff5093f4b733 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_style_platform__style.cc @@ -0,0 +1,20 @@ +--- ui/views/style/platform_style.cc.orig 2022-05-19 05:18:02 UTC ++++ ui/views/style/platform_style.cc +@@ -52,7 +52,7 @@ const View::FocusBehavior PlatformStyle::kDefaultFocus + const bool PlatformStyle::kAdjustBubbleIfOffscreen = + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + false; + #else + true; +@@ -82,7 +82,7 @@ gfx::Range PlatformStyle::RangeToDeleteBackwards(const + #endif // !BUILDFLAG(IS_MAC) + + #if !BUILDFLAG(ENABLE_DESKTOP_AURA) || \ +- (!BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) ++ (!BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD)) + // static + std::unique_ptr<Border> PlatformStyle::CreateThemedLabelButtonBorder( + LabelButton* button) { diff --git a/devel/electron18/files/patch-ui_views_views__delegate.cc b/devel/electron18/files/patch-ui_views_views__delegate.cc new file mode 100644 index 000000000000..71f1a9c8e798 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_views__delegate.cc @@ -0,0 +1,11 @@ +--- ui/views/views_delegate.cc.orig 2022-05-19 03:47:21 UTC ++++ ui/views/views_delegate.cc +@@ -95,7 +95,7 @@ bool ViewsDelegate::IsWindowInMetro(gfx::NativeWindow + return false; + } + #elif BUILDFLAG(ENABLE_DESKTOP_AURA) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + gfx::ImageSkia* ViewsDelegate::GetDefaultWindowIcon() const { + return nullptr; + } diff --git a/devel/electron18/files/patch-ui_views_views__delegate.h b/devel/electron18/files/patch-ui_views_views__delegate.h new file mode 100644 index 000000000000..338c5f2719b2 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_views__delegate.h @@ -0,0 +1,11 @@ +--- ui/views/views_delegate.h.orig 2022-05-19 03:47:21 UTC ++++ ui/views/views_delegate.h +@@ -139,7 +139,7 @@ class VIEWS_EXPORT ViewsDelegate { + // environment. + virtual bool IsWindowInMetro(gfx::NativeWindow window) const; + #elif BUILDFLAG(ENABLE_DESKTOP_AURA) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + virtual gfx::ImageSkia* GetDefaultWindowIcon() const; + #endif + diff --git a/devel/electron18/files/patch-ui_views_widget_desktop__aura_desktop__screen__ozone.cc b/devel/electron18/files/patch-ui_views_widget_desktop__aura_desktop__screen__ozone.cc new file mode 100644 index 000000000000..916ddc65e468 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_widget_desktop__aura_desktop__screen__ozone.cc @@ -0,0 +1,11 @@ +--- ui/views/widget/desktop_aura/desktop_screen_ozone.cc.orig 2022-05-19 05:18:02 UTC ++++ ui/views/widget/desktop_aura/desktop_screen_ozone.cc +@@ -25,7 +25,7 @@ gfx::NativeWindow DesktopScreenOzone::GetNativeWindowF + widget); + } + +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + std::unique_ptr<display::Screen> CreateDesktopScreen() { + auto screen = std::make_unique<aura::ScreenOzone>(); + screen->Initialize(); diff --git a/devel/electron18/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc b/devel/electron18/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc new file mode 100644 index 000000000000..58c5583c8560 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc @@ -0,0 +1,11 @@ +--- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc.orig 2022-05-19 05:18:02 UTC ++++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc +@@ -915,7 +915,7 @@ display::Display DesktopWindowTreeHostPlatform::GetDis + // DesktopWindowTreeHost: + + // Linux subclasses this host and adds some Linux specific bits. +-#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) ++#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) + // static + DesktopWindowTreeHost* DesktopWindowTreeHost::Create( + internal::NativeWidgetDelegate* native_widget_delegate, diff --git a/devel/electron18/files/patch-ui_views_widget_native__widget__aura.cc b/devel/electron18/files/patch-ui_views_widget_native__widget__aura.cc new file mode 100644 index 000000000000..6d6042dfc9c4 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_widget_native__widget__aura.cc @@ -0,0 +1,29 @@ +--- ui/views/widget/native_widget_aura.cc.orig 2022-05-19 05:18:02 UTC ++++ ui/views/widget/native_widget_aura.cc +@@ -69,7 +69,7 @@ + #endif + + #if BUILDFLAG(ENABLE_DESKTOP_AURA) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + #include "ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h" + #endif + +@@ -1151,7 +1151,7 @@ void NativeWidgetAura::SetInitialFocus(ui::WindowShowS + + namespace { + #if BUILDFLAG(ENABLE_DESKTOP_AURA) && \ +- (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++ (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + void CloseWindow(aura::Window* window) { + if (window) { + Widget* widget = Widget::GetWidgetForNativeView(window); +@@ -1182,7 +1182,7 @@ void Widget::CloseAllSecondaryWidgets() { + #endif + + #if BUILDFLAG(ENABLE_DESKTOP_AURA) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) ++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) + DesktopWindowTreeHostLinux::CleanUpWindowList(CloseWindow); + #endif + } diff --git a/devel/electron18/files/patch-ui_views_widget_widget.cc b/devel/electron18/files/patch-ui_views_widget_widget.cc new file mode 100644 index 000000000000..ec65fd60ec97 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_widget_widget.cc @@ -0,0 +1,20 @@ +--- ui/views/widget/widget.cc.orig 2022-05-19 05:18:02 UTC ++++ ui/views/widget/widget.cc +@@ -48,7 +48,7 @@ + #include "ui/views/window/custom_frame_view.h" + #include "ui/views/window/dialog_delegate.h" + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "ui/views/linux_ui/linux_ui.h" + #endif + +@@ -1791,7 +1791,7 @@ const ui::NativeTheme* Widget::GetNativeTheme() const + if (parent_) + return parent_->GetNativeTheme(); + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + if (const views::LinuxUI* linux_ui = views::LinuxUI::instance()) { + if (auto* native_theme = linux_ui->GetNativeTheme(GetNativeWindow())) + return native_theme; diff --git a/devel/electron18/files/patch-ui_views_window_custom__frame__view.cc b/devel/electron18/files/patch-ui_views_window_custom__frame__view.cc new file mode 100644 index 000000000000..11fca637347c --- /dev/null +++ b/devel/electron18/files/patch-ui_views_window_custom__frame__view.cc @@ -0,0 +1,11 @@ +--- ui/views/window/custom_frame_view.cc.orig 2022-05-19 05:18:02 UTC ++++ ui/views/window/custom_frame_view.cc +@@ -265,7 +265,7 @@ int CustomFrameView::CaptionButtonY() const { + // drawn flush with the screen edge, they still obey Fitts' Law. + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + return FrameBorderThickness(); + #else + return frame_->IsMaximized() ? FrameBorderThickness() : kFrameShadowThickness; diff --git a/devel/electron18/files/patch-ui_views_window_dialog__delegate.cc b/devel/electron18/files/patch-ui_views_window_dialog__delegate.cc new file mode 100644 index 000000000000..727b878d1aa0 --- /dev/null +++ b/devel/electron18/files/patch-ui_views_window_dialog__delegate.cc @@ -0,0 +1,11 @@ +--- ui/views/window/dialog_delegate.cc.orig 2022-05-19 05:18:02 UTC ++++ ui/views/window/dialog_delegate.cc +@@ -78,7 +78,7 @@ Widget* DialogDelegate::CreateDialogWidget( + + // static + bool DialogDelegate::CanSupportCustomFrame(gfx::NativeView parent) { +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + BUILDFLAG(ENABLE_DESKTOP_AURA) + // The new style doesn't support unparented dialogs on Linux desktop. + return parent != nullptr; diff --git a/devel/electron18/files/patch-ui_views_window_frame__background.cc b/devel/electron18/files/patch-ui_views_window_frame__background.cc new file mode 100644 index 000000000000..e1b30d9b642b --- /dev/null +++ b/devel/electron18/files/patch-ui_views_window_frame__background.cc @@ -0,0 +1,11 @@ +--- ui/views/window/frame_background.cc.orig 2022-05-19 03:47:21 UTC ++++ ui/views/window/frame_background.cc +@@ -110,7 +110,7 @@ void FrameBackground::PaintMaximized(gfx::Canvas* canv + int width) const { + // Fill the top with the frame color first so we have a constant background + // for areas not covered by the theme image. +-#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \ ++#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)) && \ + BUILDFLAG(ENABLE_DESKTOP_AURA) + ui::NativeTheme::ExtraParams params; + params.frame_top_area.use_custom_frame = use_custom_frame_; diff --git a/devel/electron18/files/patch-ui_webui_resources_js_cr.js b/devel/electron18/files/patch-ui_webui_resources_js_cr.js new file mode 100644 index 000000000000..04b13f3b0fde --- /dev/null +++ b/devel/electron18/files/patch-ui_webui_resources_js_cr.js @@ -0,0 +1,14 @@ +--- ui/webui/resources/js/cr.js.orig 2022-05-11 07:17:08 UTC ++++ ui/webui/resources/js/cr.js +@@ -441,6 +441,11 @@ var cr = cr || function(global) { + return returnValue; + }, + ++ /** Whether this is on *BSD. */ ++ get isBSD() { ++ return /BSD/.test(navigator.userAgent); ++ }, ++ + /** Whether this is on vanilla Linux (not chromeOS). */ + get isLinux() { + return /Linux/.test(navigator.userAgent); diff --git a/devel/electron18/files/patch-v8_BUILD.gn b/devel/electron18/files/patch-v8_BUILD.gn new file mode 100644 index 000000000000..349d4f5a9a30 --- /dev/null +++ b/devel/electron18/files/patch-v8_BUILD.gn @@ -0,0 +1,45 @@ +--- v8/BUILD.gn.orig 2022-05-20 04:30:53 UTC ++++ v8/BUILD.gn +@@ -1221,6 +1221,14 @@ config("toolchain") { + } else if (target_os == "win") { + defines += [ "V8_HAVE_TARGET_OS" ] + defines += [ "V8_TARGET_OS_WIN" ] ++ } else if (target_os == "openbsd") { ++ defines += [ "V8_HAVE_TARGET_OS" ] ++ defines += [ "V8_TARGET_OS_OPENBSD" ] ++ defines += [ "V8_TARGET_OS_BSD" ] ++ } else if (target_os == "freebsd") { ++ defines += [ "V8_HAVE_TARGET_OS" ] ++ defines += [ "V8_TARGET_OS_FREEBSD" ] ++ defines += [ "V8_TARGET_OS_BSD" ] + } + + # TODO(infra): Support v8_enable_prof on Windows. +@@ -5160,7 +5168,7 @@ v8_component("v8_libbase") { + } + } + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources += [ + "src/base/debug/stack_trace_posix.cc", + "src/base/platform/platform-linux.cc", +@@ -5170,6 +5178,18 @@ v8_component("v8_libbase") { + "dl", + "rt", + ] ++ } else if (is_openbsd) { ++ sources += [ ++ "src/base/debug/stack_trace_posix.cc", ++ "src/base/platform/platform-openbsd.cc", ++ ] ++ libs = [ "execinfo" ] ++ } else if (is_freebsd) { ++ sources += [ ++ "src/base/debug/stack_trace_posix.cc", ++ "src/base/platform/platform-freebsd.cc", ++ ] ++ libs = [ "execinfo" ] + } else if (current_os == "aix") { + sources += [ + "src/base/debug/stack_trace_posix.cc", diff --git a/devel/electron18/files/patch-v8_include_v8config.h b/devel/electron18/files/patch-v8_include_v8config.h new file mode 100644 index 000000000000..9bede52e7046 --- /dev/null +++ b/devel/electron18/files/patch-v8_include_v8config.h @@ -0,0 +1,37 @@ +--- v8/include/v8config.h.orig 2022-05-13 07:19:54 UTC ++++ v8/include/v8config.h +@@ -181,6 +181,8 @@ path. Add it with -I<path> to the command line + && !defined(V8_TARGET_OS_FUCHSIA) \ + && !defined(V8_TARGET_OS_IOS) \ + && !defined(V8_TARGET_OS_LINUX) \ ++ && !defined(V8_TARGET_OS_OPENBSD) \ ++ && !defined(V8_TARGET_OS_FREEBSD) \ + && !defined(V8_TARGET_OS_MACOSX) \ + && !defined(V8_TARGET_OS_WIN) + # error No known target OS defined. +@@ -192,6 +194,8 @@ path. Add it with -I<path> to the command line + || defined(V8_TARGET_OS_FUCHSIA) \ + || defined(V8_TARGET_OS_IOS) \ + || defined(V8_TARGET_OS_LINUX) \ ++ || defined(V8_TARGET_OS_OPENBSD) \ ++ || defined(V8_TARGET_OS_FREEBSD) \ + || defined(V8_TARGET_OS_MACOSX) \ + || defined(V8_TARGET_OS_WIN) + # error A target OS is defined but V8_HAVE_TARGET_OS is unset. +@@ -212,6 +216,16 @@ path. Add it with -I<path> to the command line + + #ifdef V8_OS_LINUX + # define V8_TARGET_OS_LINUX ++#endif ++ ++#ifdef V8_OS_OPENBSD ++# define V8_TARGET_OS_OPENBSD ++# define V8_TARGET_OS_BSD ++#endif ++ ++#ifdef V8_OS_FREEBSD ++# define V8_TARGET_OS_OPENBSD ++# define V8_TARGET_OS_BSD + #endif + + #ifdef V8_OS_MACOSX diff --git a/devel/electron18/files/patch-v8_src_api_api.cc b/devel/electron18/files/patch-v8_src_api_api.cc new file mode 100644 index 000000000000..cd0d410dd74f --- /dev/null +++ b/devel/electron18/files/patch-v8_src_api_api.cc @@ -0,0 +1,20 @@ +--- v8/src/api/api.cc.orig 2022-05-20 04:30:53 UTC ++++ v8/src/api/api.cc +@@ -139,7 +139,7 @@ + #include "src/wasm/wasm-serialization.h" + #endif // V8_ENABLE_WEBASSEMBLY + +-#if V8_OS_LINUX || V8_OS_MACOSX || V8_OS_FREEBSD ++#if V8_OS_LINUX || V8_OS_MACOSX || V8_OS_FREEBSD || V8_OS_OPENBSD + #include <signal.h> + #include "include/v8-wasm-trap-handler-posix.h" + #include "src/trap-handler/handler-inside-posix.h" +@@ -6060,7 +6060,7 @@ bool v8::V8::Initialize(const int build_config) { + return true; + } + +-#if V8_OS_LINUX || V8_OS_MACOSX ++#if V8_OS_LINUX || V8_OS_MACOSX || V8_OS_FREEBSD || V8_OS_OPENBSD + bool TryHandleWebAssemblyTrapPosix(int sig_code, siginfo_t* info, + void* context) { + #if V8_ENABLE_WEBASSEMBLY && V8_TRAP_HANDLER_SUPPORTED diff --git a/devel/electron18/files/patch-v8_src_base_atomicops.h b/devel/electron18/files/patch-v8_src_base_atomicops.h new file mode 100644 index 000000000000..184f841ca807 --- /dev/null +++ b/devel/electron18/files/patch-v8_src_base_atomicops.h @@ -0,0 +1,33 @@ +--- v8/src/base/atomicops.h.orig 2022-05-11 07:18:04 UTC ++++ v8/src/base/atomicops.h +@@ -57,10 +57,10 @@ using Atomic64 = SbAtomic64; + using Atomic8 = char; + using Atomic16 = int16_t; + using Atomic32 = int32_t; +-#if defined(V8_HOST_ARCH_64_BIT) ++#if defined(V8_HOST_ARCH_64_BIT) || defined(V8_OS_OPENBSD) + // We need to be able to go between Atomic64 and AtomicWord implicitly. This + // means Atomic64 and AtomicWord should be the same type on 64-bit. +-#if defined(__ILP32__) ++#if defined(__ILP32__) && !defined(V8_OS_OPENBSD) + using Atomic64 = int64_t; + #else + using Atomic64 = intptr_t; +@@ -241,7 +241,7 @@ inline Atomic32 Acquire_Load(volatile const Atomic32* + std::memory_order_acquire); + } + +-#if defined(V8_HOST_ARCH_64_BIT) ++#if defined(V8_HOST_ARCH_64_BIT) || defined(V8_OS_OPENBSD) + + inline Atomic64 Relaxed_CompareAndSwap(volatile Atomic64* ptr, + Atomic64 old_value, Atomic64 new_value) { +@@ -441,7 +441,7 @@ inline int Relaxed_Memcmp(volatile const Atomic8* s1, + + // On some platforms we need additional declarations to make + // AtomicWord compatible with our other Atomic* types. +-#if defined(V8_OS_MACOSX) || defined(V8_OS_OPENBSD) || defined(V8_OS_AIX) ++#if defined(V8_OS_MACOSX) || defined(V8_OS_AIX) + #include "src/base/atomicops_internals_atomicword_compat.h" + #endif + diff --git a/devel/electron18/files/patch-v8_src_base_platform_platform-freebsd.cc b/devel/electron18/files/patch-v8_src_base_platform_platform-freebsd.cc new file mode 100644 index 000000000000..43a6fe33253a --- /dev/null +++ b/devel/electron18/files/patch-v8_src_base_platform_platform-freebsd.cc @@ -0,0 +1,32 @@ +--- v8/src/base/platform/platform-freebsd.cc.orig 2022-05-11 07:09:01 UTC ++++ v8/src/base/platform/platform-freebsd.cc +@@ -43,14 +43,10 @@ TimezoneCache* OS::CreateTimezoneCache() { + return new PosixDefaultTimezoneCache(); + } + +-static unsigned StringToLong(char* buffer) { +- return static_cast<unsigned>(strtol(buffer, nullptr, 16)); +-} +- + std::vector<OS::SharedLibraryAddress> OS::GetSharedLibraryAddresses() { + std::vector<SharedLibraryAddress> result; + int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_VMMAP, getpid()}; +- size_t miblen = sizeof(mib) / sizeof(mib[0]); ++ unsigned int miblen = sizeof(mib) / sizeof(mib[0]); + size_t buffer_size; + if (sysctl(mib, miblen, nullptr, &buffer_size, nullptr, 0) == 0) { + // Overallocate the buffer by 1/3 to account for concurrent +@@ -82,8 +78,13 @@ std::vector<OS::SharedLibraryAddress> OS::GetSharedLib + lib_name = std::string(path); + } + result.push_back(SharedLibraryAddress( ++#if defined(__i386__) || defined(OS_FREEBSD) ++ lib_name, static_cast<uintptr_t>(map->kve_start), ++ static_cast<uintptr_t>(map->kve_end))); ++#else + lib_name, reinterpret_cast<uintptr_t>(map->kve_start), + reinterpret_cast<uintptr_t>(map->kve_end))); ++#endif + } + + start += ssize; diff --git a/devel/electron18/files/patch-v8_src_base_platform_platform-openbsd.cc b/devel/electron18/files/patch-v8_src_base_platform_platform-openbsd.cc new file mode 100644 index 000000000000..6d9d800001c7 --- /dev/null +++ b/devel/electron18/files/patch-v8_src_base_platform_platform-openbsd.cc @@ -0,0 +1,28 @@ +--- v8/src/base/platform/platform-openbsd.cc.orig 2022-05-11 07:18:04 UTC ++++ v8/src/base/platform/platform-openbsd.cc +@@ -6,6 +6,7 @@ + // POSIX-compatible parts, the implementation is in platform-posix.cc. + + #include <pthread.h> ++#include <pthread_np.h> + #include <semaphore.h> + #include <signal.h> + #include <stdlib.h> +@@ -121,6 +122,17 @@ void OS::SignalCodeMovingGC() { + } + + void OS::AdjustSchedulingParams() {} ++ ++// static ++Stack::StackSlot Stack::GetStackStart() { ++ stack_t ss; ++ void *base; ++ if (pthread_stackseg_np(pthread_self(), &ss) != 0) ++ return nullptr; ++ ++ base = (void*)((size_t) ss.ss_sp - ss.ss_size); ++ return reinterpret_cast<uint8_t*>(base) + ss.ss_size; ++} + + std::vector<OS::MemoryRange> OS::GetFreeMemoryRangesWithin( + OS::Address boundary_start, OS::Address boundary_end, size_t minimum_size, diff --git a/devel/electron18/files/patch-v8_src_base_platform_platform-posix.cc b/devel/electron18/files/patch-v8_src_base_platform_platform-posix.cc new file mode 100644 index 000000000000..fff82e9b5a30 --- /dev/null +++ b/devel/electron18/files/patch-v8_src_base_platform_platform-posix.cc @@ -0,0 +1,53 @@ +--- v8/src/base/platform/platform-posix.cc.orig 2022-05-19 05:18:33 UTC ++++ v8/src/base/platform/platform-posix.cc +@@ -65,7 +65,7 @@ + #include <sys/syscall.h> + #endif + +-#if V8_OS_FREEBSD || V8_OS_MACOSX || V8_OS_OPENBSD || V8_OS_SOLARIS ++#if V8_OS_FREEBSD || V8_OS_MACOSX || V8_OS_BSD || V8_OS_SOLARIS + #define MAP_ANONYMOUS MAP_ANON + #endif + +@@ -291,8 +291,15 @@ void OS::SetRandomMmapSeed(int64_t seed) { + } + } + ++#if V8_OS_OPENBSD ++// Allow OpenBSD's mmap to select a random address on OpenBSD + // static + void* OS::GetRandomMmapAddr() { ++ return nullptr; ++} ++#else ++// static ++void* OS::GetRandomMmapAddr() { + uintptr_t raw_addr; + { + MutexGuard guard(rng_mutex.Pointer()); +@@ -383,6 +390,7 @@ void* OS::GetRandomMmapAddr() { + #endif + return reinterpret_cast<void*>(raw_addr); + } ++#endif + + // TODO(bbudge) Move Cygwin and Fuchsia stuff into platform-specific files. + #if !V8_OS_CYGWIN && !V8_OS_FUCHSIA +@@ -598,7 +606,7 @@ void OS::DestroySharedMemoryHandle(PlatformSharedMemor + + // static + bool OS::HasLazyCommits() { +-#if V8_OS_AIX || V8_OS_LINUX || V8_OS_MACOSX ++#if V8_OS_AIX || V8_OS_LINUX || V8_OS_MACOSX || V8_OS_BSD + return true; + #else + // TODO(bbudge) Return true for all POSIX platforms. +@@ -1217,7 +1225,7 @@ void Thread::SetThreadLocal(LocalStorageKey key, void* + // keep this version in POSIX as most Linux-compatible derivatives will + // support it. MacOS and FreeBSD are different here. + #if !defined(V8_OS_FREEBSD) && !defined(V8_OS_MACOSX) && !defined(_AIX) && \ +- !defined(V8_OS_SOLARIS) ++ !defined(V8_OS_SOLARIS) && !defined(V8_OS_OPENBSD) + + // static + Stack::StackSlot Stack::GetStackStart() { diff --git a/devel/electron18/files/patch-v8_src_base_sys-info.cc b/devel/electron18/files/patch-v8_src_base_sys-info.cc new file mode 100644 index 000000000000..81b719c2a493 --- /dev/null +++ b/devel/electron18/files/patch-v8_src_base_sys-info.cc @@ -0,0 +1,11 @@ +--- v8/src/base/sys-info.cc.orig 2022-05-11 07:18:04 UTC ++++ v8/src/base/sys-info.cc +@@ -38,7 +38,7 @@ namespace base { + // static + int SysInfo::NumberOfProcessors() { + #if V8_OS_OPENBSD +- int mib[2] = {CTL_HW, HW_NCPU}; ++ int mib[2] = {CTL_HW, HW_NCPUONLINE}; + int ncpu = 0; + size_t len = sizeof(ncpu); + if (sysctl(mib, arraysize(mib), &ncpu, &len, nullptr, 0) != 0) { diff --git a/devel/electron18/files/patch-v8_src_compiler_backend_ia32_instruction-selector-ia32.cc b/devel/electron18/files/patch-v8_src_compiler_backend_ia32_instruction-selector-ia32.cc new file mode 100644 index 000000000000..9f4f54a78d1d --- /dev/null +++ b/devel/electron18/files/patch-v8_src_compiler_backend_ia32_instruction-selector-ia32.cc @@ -0,0 +1,20 @@ +--- v8/src/compiler/backend/ia32/instruction-selector-ia32.cc.orig 2022-05-11 07:18:04 UTC ++++ v8/src/compiler/backend/ia32/instruction-selector-ia32.cc +@@ -3019,6 +3019,7 @@ void InstructionSelector::VisitI8x16Shuffle(Node* node + Emit(opcode, 1, &dst, input_count, inputs, temp_count, temps); + } + ++#if V8_ENABLE_WEBASSEMBLY + void InstructionSelector::VisitI8x16Swizzle(Node* node) { + InstructionCode op = kIA32I8x16Swizzle; + +@@ -3072,6 +3073,9 @@ void VisitMinOrMax(InstructionSelector* selector, Node + void InstructionSelector::VisitF32x4Pmin(Node* node) { + VisitMinOrMax(this, node, kIA32Minps, true); + } ++#else ++void InstructionSelector::VisitI8x16Swizzle(Node* node) { UNREACHABLE(); } ++#endif // V8_ENABLE_WEBASSEMBLY + + void InstructionSelector::VisitF32x4Pmax(Node* node) { + VisitMinOrMax(this, node, kIA32Maxps, true); diff --git a/devel/electron18/files/patch-v8_src_diagnostics_perf-jit.cc b/devel/electron18/files/patch-v8_src_diagnostics_perf-jit.cc new file mode 100644 index 000000000000..5ad78f28f238 --- /dev/null +++ b/devel/electron18/files/patch-v8_src_diagnostics_perf-jit.cc @@ -0,0 +1,11 @@ +--- v8/src/diagnostics/perf-jit.cc.orig 2022-05-11 07:18:04 UTC ++++ v8/src/diagnostics/perf-jit.cc +@@ -30,7 +30,7 @@ + #include "src/common/assert-scope.h" + + // Only compile the {PerfJitLogger} on Linux. +-#if V8_OS_LINUX ++#if defined(V8_OS_LINUX) || defined(V8_OS_BSD) + + #include <fcntl.h> + #include <sys/mman.h> diff --git a/devel/electron18/files/patch-v8_src_diagnostics_perf-jit.h b/devel/electron18/files/patch-v8_src_diagnostics_perf-jit.h new file mode 100644 index 000000000000..478b6adfd261 --- /dev/null +++ b/devel/electron18/files/patch-v8_src_diagnostics_perf-jit.h @@ -0,0 +1,11 @@ +--- v8/src/diagnostics/perf-jit.h.orig 2022-05-11 07:18:04 UTC ++++ v8/src/diagnostics/perf-jit.h +@@ -31,7 +31,7 @@ + #include "include/v8config.h" + + // {PerfJitLogger} is only implemented on Linux. +-#if V8_OS_LINUX ++#if defined(V8_OS_LINUX) || defined(V8_OS_BSD) + + #include "src/logging/log.h" + diff --git a/devel/electron18/files/patch-v8_src_trap-handler_handler-inside-posix.cc b/devel/electron18/files/patch-v8_src_trap-handler_handler-inside-posix.cc new file mode 100644 index 000000000000..c19815360b56 --- /dev/null +++ b/devel/electron18/files/patch-v8_src_trap-handler_handler-inside-posix.cc @@ -0,0 +1,26 @@ +--- v8/src/trap-handler/handler-inside-posix.cc.orig 2022-05-11 07:18:05 UTC ++++ v8/src/trap-handler/handler-inside-posix.cc +@@ -53,6 +53,8 @@ namespace trap_handler { + #define CONTEXT_REG(reg, REG) &uc->uc_mcontext->__ss.__##reg + #elif V8_OS_FREEBSD + #define CONTEXT_REG(reg, REG) &uc->uc_mcontext.mc_##reg ++#elif V8_OS_OPENBSD ++#define CONTEXT_REG(reg, REG) &uc->sc_##reg + #else + #error "Unsupported platform." + #endif +@@ -62,8 +64,12 @@ bool IsKernelGeneratedSignal(siginfo_t* info) { + // si_code at its default of 0 for signals that don’t originate in hardware. + // The other conditions are only relevant for Linux. + return info->si_code > 0 && info->si_code != SI_USER && +- info->si_code != SI_QUEUE && info->si_code != SI_TIMER && +- info->si_code != SI_ASYNCIO && info->si_code != SI_MESGQ; ++ info->si_code != SI_QUEUE && info->si_code != SI_TIMER ++#ifdef V8_OS_OPENBSD ++ ; ++#else ++ && info->si_code != SI_ASYNCIO && info->si_code != SI_MESGQ; ++#endif + } + + class UnmaskOobSignalScope { diff --git a/devel/electron18/files/patch-v8_src_trap-handler_handler-inside-posix.h b/devel/electron18/files/patch-v8_src_trap-handler_handler-inside-posix.h new file mode 100644 index 000000000000..74da685ab62c --- /dev/null +++ b/devel/electron18/files/patch-v8_src_trap-handler_handler-inside-posix.h @@ -0,0 +1,11 @@ +--- v8/src/trap-handler/handler-inside-posix.h.orig 2022-05-11 07:18:05 UTC ++++ v8/src/trap-handler/handler-inside-posix.h +@@ -13,7 +13,7 @@ namespace v8 { + namespace internal { + namespace trap_handler { + +-#if V8_OS_LINUX || V8_OS_FREEBSD ++#if V8_OS_LINUX || V8_OS_FREEBSD || V8_OS_OPENBSD + constexpr int kOobSignal = SIGSEGV; + #elif V8_OS_MACOSX + constexpr int kOobSignal = SIGBUS; diff --git a/devel/electron18/files/patch-v8_src_trap-handler_trap-handler.h b/devel/electron18/files/patch-v8_src_trap-handler_trap-handler.h new file mode 100644 index 000000000000..7524bdce85a1 --- /dev/null +++ b/devel/electron18/files/patch-v8_src_trap-handler_trap-handler.h @@ -0,0 +1,11 @@ +--- v8/src/trap-handler/trap-handler.h.orig 2022-05-11 07:18:05 UTC ++++ v8/src/trap-handler/trap-handler.h +@@ -20,7 +20,7 @@ namespace trap_handler { + // X64 on Linux, Windows, MacOS, FreeBSD. + #if V8_HOST_ARCH_X64 && V8_TARGET_ARCH_X64 && \ + ((V8_OS_LINUX && !V8_OS_ANDROID) || V8_OS_WIN || V8_OS_MACOSX || \ +- V8_OS_FREEBSD) ++ V8_OS_FREEBSD || V8_OS_OPENBSD) + #define V8_TRAP_HANDLER_SUPPORTED true + // Arm64 (non-simulator) on Mac. + #elif V8_TARGET_ARCH_ARM64 && V8_HOST_ARCH_ARM64 && V8_OS_MACOSX diff --git a/devel/electron18/files/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32.h b/devel/electron18/files/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32.h new file mode 100644 index 000000000000..bda0d42f4523 --- /dev/null +++ b/devel/electron18/files/patch-v8_src_wasm_baseline_ia32_liftoff-assembler-ia32.h @@ -0,0 +1,101 @@ +--- v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h.orig 2022-05-19 05:18:34 UTC ++++ v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h +@@ -434,7 +434,7 @@ void LiftoffAssembler::StoreTaggedPointer(Register dst + } + + void LiftoffAssembler::Load(LiftoffRegister dst, Register src_addr, +- Register offset_reg, uint32_t offset_imm, ++ Register offset_reg, uintptr_t offset_imm, + LoadType type, LiftoffRegList pinned, + uint32_t* protected_load_pc, bool is_load_mem, + bool i64_offset) { +@@ -511,7 +511,7 @@ void LiftoffAssembler::Load(LiftoffRegister dst, Regis + } + + void LiftoffAssembler::Store(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister src, ++ uintptr_t offset_imm, LiftoffRegister src, + StoreType type, LiftoffRegList pinned, + uint32_t* protected_store_pc, bool is_store_mem) { + DCHECK_EQ(type.value_type() == kWasmI64, src.is_gp_pair()); +@@ -579,7 +579,7 @@ void LiftoffAssembler::Store(Register dst_addr, Regist + } + + void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, Register src_addr, +- Register offset_reg, uint32_t offset_imm, ++ Register offset_reg, uintptr_t offset_imm, + LoadType type, LiftoffRegList pinned) { + if (type.value() != LoadType::kI64Load) { + Load(dst, src_addr, offset_reg, offset_imm, type, pinned, nullptr, true); +@@ -598,7 +598,7 @@ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, + } + + void LiftoffAssembler::AtomicStore(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister src, ++ uintptr_t offset_imm, LiftoffRegister src, + StoreType type, LiftoffRegList pinned) { + DCHECK_NE(offset_reg, no_reg); + DCHECK_LE(offset_imm, std::numeric_limits<int32_t>::max()); +@@ -940,7 +940,7 @@ inline void AtomicBinop64(LiftoffAssembler* lasm, Bino + } // namespace liftoff + + void LiftoffAssembler::AtomicAdd(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister value, ++ uintptr_t offset_imm, LiftoffRegister value, + LiftoffRegister result, StoreType type) { + if (type.value() == StoreType::kI64Store) { + liftoff::AtomicBinop64(this, liftoff::kAdd, dst_addr, offset_reg, +@@ -953,7 +953,7 @@ void LiftoffAssembler::AtomicAdd(Register dst_addr, Re + } + + void LiftoffAssembler::AtomicSub(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister value, ++ uintptr_t offset_imm, LiftoffRegister value, + LiftoffRegister result, StoreType type) { + if (type.value() == StoreType::kI64Store) { + liftoff::AtomicBinop64(this, liftoff::kSub, dst_addr, offset_reg, +@@ -965,7 +965,7 @@ void LiftoffAssembler::AtomicSub(Register dst_addr, Re + } + + void LiftoffAssembler::AtomicAnd(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister value, ++ uintptr_t offset_imm, LiftoffRegister value, + LiftoffRegister result, StoreType type) { + if (type.value() == StoreType::kI64Store) { + liftoff::AtomicBinop64(this, liftoff::kAnd, dst_addr, offset_reg, +@@ -978,7 +978,7 @@ void LiftoffAssembler::AtomicAnd(Register dst_addr, Re + } + + void LiftoffAssembler::AtomicOr(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister value, ++ uintptr_t offset_imm, LiftoffRegister value, + LiftoffRegister result, StoreType type) { + if (type.value() == StoreType::kI64Store) { + liftoff::AtomicBinop64(this, liftoff::kOr, dst_addr, offset_reg, offset_imm, +@@ -991,7 +991,7 @@ void LiftoffAssembler::AtomicOr(Register dst_addr, Reg + } + + void LiftoffAssembler::AtomicXor(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, LiftoffRegister value, ++ uintptr_t offset_imm, LiftoffRegister value, + LiftoffRegister result, StoreType type) { + if (type.value() == StoreType::kI64Store) { + liftoff::AtomicBinop64(this, liftoff::kXor, dst_addr, offset_reg, +@@ -1004,7 +1004,7 @@ void LiftoffAssembler::AtomicXor(Register dst_addr, Re + } + + void LiftoffAssembler::AtomicExchange(Register dst_addr, Register offset_reg, +- uint32_t offset_imm, ++ uintptr_t offset_imm, + LiftoffRegister value, + LiftoffRegister result, StoreType type) { + if (type.value() == StoreType::kI64Store) { +@@ -1018,7 +1018,7 @@ void LiftoffAssembler::AtomicExchange(Register dst_add + } + + void LiftoffAssembler::AtomicCompareExchange( +- Register dst_addr, Register offset_reg, uint32_t offset_imm, ++ Register dst_addr, Register offset_reg, uintptr_t offset_imm, + LiftoffRegister expected, LiftoffRegister new_value, LiftoffRegister result, + StoreType type) { + // We expect that the offset has already been added to {dst_addr}, and no diff --git a/devel/electron18/files/patch-v8_tools_run.py b/devel/electron18/files/patch-v8_tools_run.py new file mode 100644 index 000000000000..9b8795273c47 --- /dev/null +++ b/devel/electron18/files/patch-v8_tools_run.py @@ -0,0 +1,11 @@ +--- v8/tools/run.py.orig 2022-05-11 07:18:05 UTC ++++ v8/tools/run.py +@@ -11,7 +11,7 @@ from __future__ import print_function + import subprocess + import sys + +-result = subprocess.call(sys.argv[1:]) ++sys.exit(subprocess.call(sys.argv[1:], env={"LD_LIBRARY_PATH":"${WRKSRC}/out/Release"})) + if result != 0: + # Windows error codes such as 0xC0000005 and 0xC0000409 are much easier + # to recognize and differentiate in hex. diff --git a/devel/electron18/files/patch-weblayer_browser_browser__main__parts__impl.cc b/devel/electron18/files/patch-weblayer_browser_browser__main__parts__impl.cc new file mode 100644 index 000000000000..b72c5090d3e1 --- /dev/null +++ b/devel/electron18/files/patch-weblayer_browser_browser__main__parts__impl.cc @@ -0,0 +1,20 @@ +--- weblayer/browser/browser_main_parts_impl.cc.orig 2022-05-19 05:18:02 UTC ++++ weblayer/browser/browser_main_parts_impl.cc +@@ -78,7 +78,7 @@ + + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. +-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + #include "ui/base/ime/init/input_method_initializer.h" + #endif + +@@ -196,7 +196,7 @@ int BrowserMainPartsImpl::PreEarlyInitialization() { + + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. +-#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if defined(USE_AURA) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD)) + ui::InitializeInputMethodForTesting(); + #endif + #if BUILDFLAG(IS_ANDROID) diff --git a/devel/electron18/files/patch-weblayer_browser_content__browser__client__impl.cc b/devel/electron18/files/patch-weblayer_browser_content__browser__client__impl.cc new file mode 100644 index 000000000000..3c3c0e77ab21 --- /dev/null +++ b/devel/electron18/files/patch-weblayer_browser_content__browser__client__impl.cc @@ -0,0 +1,20 @@ +--- weblayer/browser/content_browser_client_impl.cc.orig 2022-05-19 05:18:02 UTC ++++ weblayer/browser/content_browser_client_impl.cc +@@ -153,7 +153,7 @@ + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + #include "content/public/common/content_descriptors.h" + #endif + +@@ -1000,7 +1000,7 @@ SafeBrowsingService* ContentBrowserClientImpl::GetSafe + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + void ContentBrowserClientImpl::GetAdditionalMappedFilesForChildProcess( + const base::CommandLine& command_line, + int child_process_id, diff --git a/devel/electron18/files/patch-weblayer_browser_content__browser__client__impl.h b/devel/electron18/files/patch-weblayer_browser_content__browser__client__impl.h new file mode 100644 index 000000000000..bd1566c0e761 --- /dev/null +++ b/devel/electron18/files/patch-weblayer_browser_content__browser__client__impl.h @@ -0,0 +1,11 @@ +--- weblayer/browser/content_browser_client_impl.h.orig 2022-05-19 05:18:02 UTC ++++ weblayer/browser/content_browser_client_impl.h +@@ -179,7 +179,7 @@ class ContentBrowserClientImpl : public content::Conte + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || \ +- BUILDFLAG(IS_ANDROID) ++ BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) + void GetAdditionalMappedFilesForChildProcess( + const base::CommandLine& command_line, + int child_process_id, diff --git a/devel/electron18/files/patch-weblayer_browser_system__network__context__manager.cc b/devel/electron18/files/patch-weblayer_browser_system__network__context__manager.cc new file mode 100644 index 000000000000..98910cd60e84 --- /dev/null +++ b/devel/electron18/files/patch-weblayer_browser_system__network__context__manager.cc @@ -0,0 +1,11 @@ +--- weblayer/browser/system_network_context_manager.cc.orig 2022-05-19 03:47:21 UTC ++++ weblayer/browser/system_network_context_manager.cc +@@ -69,7 +69,7 @@ void SystemNetworkContextManager::ConfigureDefaultNetw + network_context_params->user_agent = user_agent; + // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is + // complete. +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // We're not configuring the cookie encryption on these platforms yet. + network_context_params->enable_encrypted_cookies = false; + #endif // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || diff --git a/devel/electron18/files/patch-weblayer_common_weblayer__paths.cc b/devel/electron18/files/patch-weblayer_common_weblayer__paths.cc new file mode 100644 index 000000000000..86f0ca534ecc --- /dev/null +++ b/devel/electron18/files/patch-weblayer_common_weblayer__paths.cc @@ -0,0 +1,20 @@ +--- weblayer/common/weblayer_paths.cc.orig 2022-05-19 03:47:21 UTC ++++ weblayer/common/weblayer_paths.cc +@@ -18,7 +18,7 @@ + + #if BUILDFLAG(IS_WIN) + #include "base/base_paths_win.h" +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + #include "base/nix/xdg_util.h" + #endif + +@@ -36,7 +36,7 @@ bool GetDefaultUserDataDirectory(base::FilePath* resul + return false; + *result = result->AppendASCII("weblayer"); + return true; +-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_BSD) + std::unique_ptr<base::Environment> env(base::Environment::Create()); + base::FilePath config_dir(base::nix::GetXDGDirectory( + env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir)); diff --git a/devel/electron18/files/yarn.lock b/devel/electron18/files/yarn.lock new file mode 100644 index 000000000000..1e4fb68649e1 --- /dev/null +++ b/devel/electron18/files/yarn.lock @@ -0,0 +1,8333 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@azure/abort-controller@^1.0.0": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-1.0.4.tgz#fd3c4d46c8ed67aace42498c8e2270960250eafd" + integrity sha512-lNUmDRVGpanCsiUN3NWxFTdwmdFI53xwhkTFfHDGTYk46ca7Ind3nanJc+U6Zj9Tv+9nTCWRBscWEW1DyKOpTw== + dependencies: + tslib "^2.0.0" + +"@azure/core-asynciterator-polyfill@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.2.tgz#0dd3849fb8d97f062a39db0e5cadc9ffaf861fec" + integrity sha512-3rkP4LnnlWawl0LZptJOdXNrT/fHp2eQMadoasa6afspXdpGrtPZuAQc2PD0cpgyuoXtUWyC3tv7xfntjGS5Dw== + +"@azure/core-auth@^1.3.0": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.3.2.tgz#6a2c248576c26df365f6c7881ca04b7f6d08e3d0" + integrity sha512-7CU6DmCHIZp5ZPiZ9r3J17lTKMmYsm/zGvNkjArQwPkrLlZ1TZ+EUYfGgh2X31OLMVAQCTJZW4cXHJi02EbJnA== + dependencies: + "@azure/abort-controller" "^1.0.0" + tslib "^2.2.0" + +"@azure/core-http@^2.0.0": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@azure/core-http/-/core-http-2.2.4.tgz#df5a5b4138dbbc4299879f2fc6f257d0a5f0401e" + integrity sha512-QmmJmexXKtPyc3/rsZR/YTLDvMatzbzAypJmLzvlfxgz/SkgnqV/D4f6F2LsK6tBj1qhyp8BoXiOebiej0zz3A== + dependencies: + "@azure/abort-controller" "^1.0.0" + "@azure/core-asynciterator-polyfill" "^1.0.0" + "@azure/core-auth" "^1.3.0" + "@azure/core-tracing" "1.0.0-preview.13" + "@azure/logger" "^1.0.0" + "@types/node-fetch" "^2.5.0" + "@types/tunnel" "^0.0.3" + form-data "^4.0.0" + node-fetch "^2.6.7" + process "^0.11.10" + tough-cookie "^4.0.0" + tslib "^2.2.0" + tunnel "^0.0.6" + uuid "^8.3.0" + xml2js "^0.4.19" + +"@azure/core-lro@^2.2.0": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.2.4.tgz#42fbf4ae98093c59005206a4437ddcd057c57ca1" + integrity sha512-e1I2v2CZM0mQo8+RSix0x091Av493e4bnT22ds2fcQGslTHzM2oTbswkB65nP4iEpCxBrFxOSDPKExmTmjCVtQ== + dependencies: + "@azure/abort-controller" "^1.0.0" + "@azure/core-tracing" "1.0.0-preview.13" + "@azure/logger" "^1.0.0" + tslib "^2.2.0" + +"@azure/core-paging@^1.1.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.2.1.tgz#1b884f563b6e49971e9a922da3c7a20931867b54" + integrity sha512-UtH5iMlYsvg+nQYIl4UHlvvSrsBjOlRF4fs0j7mxd3rWdAStrKYrh2durOpHs5C9yZbVhsVDaisoyaf/lL1EVA== + dependencies: + "@azure/core-asynciterator-polyfill" "^1.0.0" + tslib "^2.2.0" + +"@azure/core-tracing@1.0.0-preview.13": + version "1.0.0-preview.13" + resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz#55883d40ae2042f6f1e12b17dd0c0d34c536d644" + integrity sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ== + dependencies: + "@opentelemetry/api" "^1.0.1" + tslib "^2.2.0" + +"@azure/logger@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.3.tgz#6e36704aa51be7d4a1bae24731ea580836293c96" + integrity sha512-aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g== + dependencies: + tslib "^2.2.0" + +"@azure/storage-blob@^12.9.0": + version "12.9.0" + resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.9.0.tgz#4cbd8b4c7a47dd064867430db892f4ef2d8f17ab" + integrity sha512-ank38FdCLfJ+EoeMzCz3hkYJuZAd63ARvDKkxZYRDb+beBYf+/+gx8jNTqkq/hfyUl4dJQ/a7tECU0Y0F98CHg== + dependencies: + "@azure/abort-controller" "^1.0.0" + "@azure/core-http" "^2.0.0" + "@azure/core-lro" "^2.2.0" + "@azure/core-paging" "^1.1.1" + "@azure/core-tracing" "1.0.0-preview.13" + "@azure/logger" "^1.0.0" + events "^3.0.0" + tslib "^2.2.0" + +"@babel/code-frame@^7.0.0": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/highlight@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" + integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@electron/docs-parser@^0.12.3": + version "0.12.3" + resolved "https://registry.yarnpkg.com/@electron/docs-parser/-/docs-parser-0.12.3.tgz#a984c5ebc60348683b2acdbb0ebb73414b6763fd" + integrity sha512-e7OKn/NNAHMZ4Pw1702MHd2VE3Z5NKdXIIDxg9nWsDBUuSCuOKRCb4i0Ev8Eev0V0nKLaH+NMz6yzovpx0PrHg== + dependencies: + "@types/markdown-it" "^10.0.0" + chai "^4.2.0" + chalk "^3.0.0" + fs-extra "^8.1.0" + lodash.camelcase "^4.3.0" + markdown-it "^10.0.0" + minimist "^1.2.0" + ora "^4.0.3" + pretty-ms "^5.1.0" + +"@electron/typescript-definitions@^8.9.5": + version "8.9.5" + resolved "https://registry.yarnpkg.com/@electron/typescript-definitions/-/typescript-definitions-8.9.5.tgz#e6cb08e0e7c9656e178b892eab50866a8a80bf7a" + integrity sha512-xDLFl6joGpA8c9cGSPWC3DFHyIGf9+OWZmDrPbGJW1URt6C1ukdQWKSmjb1Rttb94QQxBrGuUlSyz27IQgLFsw== + dependencies: + "@types/node" "^11.13.7" + chalk "^2.4.2" + colors "^1.1.2" + debug "^4.1.1" + fs-extra "^7.0.1" + lodash "^4.17.11" + minimist "^1.2.0" + mkdirp "^0.5.1" + ora "^3.4.0" + pretty-ms "^5.0.0" + +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + +"@octokit/auth-app@^2.10.0": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-app/-/auth-app-2.10.0.tgz#ad79369fca1cc3035859f797310d5e81cc6e49c4" + integrity sha512-mKFU7O5wI651iWgecs4fmJ2aLqOM3sWD1FJsUTm7nx21I4ePDhS+rGQmS5TZk5yz75Va6wEXesxUNFzuqCbP2A== + dependencies: + "@octokit/request" "^5.3.0" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^5.0.0" + "@types/lru-cache" "^5.1.0" + deprecation "^2.3.1" + lru-cache "^6.0.0" + universal-github-app-jwt "^1.0.1" + universal-user-agent "^6.0.0" + +"@octokit/auth-token@^2.4.0": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" + integrity sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ== + dependencies: + "@octokit/types" "^5.0.0" + +"@octokit/core@^3.0.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.1.1.tgz#1856745aa8fb154cf1544a2a1b82586c809c5e66" + integrity sha512-cQ2HGrtyNJ1IBxpTP1U5m/FkMAJvgw7d2j1q3c9P0XUuYilEgF6e4naTpsgm4iVcQeOnccZlw7XHRIUBy0ymcg== + dependencies: + "@octokit/auth-token" "^2.4.0" + "@octokit/graphql" "^4.3.1" + "@octokit/request" "^5.4.0" + "@octokit/types" "^5.0.0" + before-after-hook "^2.1.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^6.0.1": + version "6.0.5" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.5.tgz#43a6adee813c5ffd2f719e20cfd14a1fee7c193a" + integrity sha512-70K5u6zd45ItOny6aHQAsea8HHQjlQq85yqOMe+Aj8dkhN2qSJ9T+Q3YjUjEYfPRBcuUWNgMn62DQnP/4LAIiQ== + dependencies: + "@octokit/types" "^5.0.0" + is-plain-object "^4.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^4.3.1": + version "4.5.3" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.5.3.tgz#d5ff0d4a8a33e98614a2a7359dac98bc285e062f" + integrity sha512-JyYvi3j2tOb5ofASEpcg1Advs07H+Ag+I+ez7buuZfNVAmh1IYcDTuxd4gnYH8S2PSGu+f5IdDGxMmkK+5zsdA== + dependencies: + "@octokit/request" "^5.3.0" + "@octokit/types" "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/plugin-paginate-rest@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.3.0.tgz#7d1073e56cfd15d3f99dcfe81fa5d2b466f3a6f6" + integrity sha512-Ye2ZJreP0ZlqJQz8fz+hXvrEAEYK4ay7br1eDpWzr6j76VXs/gKqxFcH8qRzkB3fo/2xh4Vy9VtGii4ZDc9qlA== + dependencies: + "@octokit/types" "^5.2.0" + +"@octokit/plugin-request-log@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e" + integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw== + +"@octokit/plugin-rest-endpoint-methods@4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.1.2.tgz#546a8f3e0b514f434a4ad4ef926005f1c81a5a5a" + integrity sha512-PTI7wpbGEZ2IR87TVh+TNWaLcgX/RsZQalFbQCq8XxYUrQ36RHyERrHSNXFy5gkWpspUAOYRSV707JJv6BhqJA== + dependencies: + "@octokit/types" "^5.1.1" + deprecation "^2.3.1" + +"@octokit/request-error@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.2.tgz#0e76b83f5d8fdda1db99027ea5f617c2e6ba9ed0" + integrity sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw== + dependencies: + "@octokit/types" "^5.0.1" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.3.0", "@octokit/request@^5.4.0": + version "5.4.7" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.7.tgz#fd703ee092e0463ceba49ff7a3e61cb4cf8a0fde" + integrity sha512-FN22xUDP0i0uF38YMbOfx6TotpcENP5W8yJM1e/LieGXn6IoRxDMnBf7tx5RKSW4xuUZ/1P04NFZy5iY3Rax1A== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^5.0.0" + deprecation "^2.0.0" + is-plain-object "^4.0.0" + node-fetch "^2.3.0" + once "^1.4.0" + universal-user-agent "^6.0.0" + +"@octokit/rest@^18.0.3": + version "18.0.3" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.0.3.tgz#96a15ddb3a38dca5de9d75121378d6aa4a234fa5" + integrity sha512-GubgemnLvUJlkhouTM2BtX+g/voYT/Mqh0SASGwTnLvSkW1irjt14N911/ABb6m1Hru0TwScOgFgMFggp3igfQ== + dependencies: + "@octokit/core" "^3.0.0" + "@octokit/plugin-paginate-rest" "^2.2.0" + "@octokit/plugin-request-log" "^1.0.0" + "@octokit/plugin-rest-endpoint-methods" "4.1.2" + +"@octokit/types@^5.0.0", "@octokit/types@^5.0.1", "@octokit/types@^5.1.1", "@octokit/types@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.2.0.tgz#d075dc23bf293f540739250b6879e2c1be2fc20c" + integrity sha512-XjOk9y4m8xTLIKPe1NFxNWBdzA2/z3PFFA/bwf4EoH6oS8hM0Y46mEa4Cb+KCyj/tFDznJFahzQ0Aj3o1FYq4A== + dependencies: + "@types/node" ">= 8" + +"@opentelemetry/api@^1.0.1": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.0.4.tgz#a167e46c10d05a07ab299fc518793b0cff8f6924" + integrity sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog== + +"@primer/octicons@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@primer/octicons/-/octicons-10.0.0.tgz#81e94ed32545dfd3472c8625a5b345f3ea4c153d" + integrity sha512-iuQubq62zXZjPmaqrsfsCZUqIJgZhmA6W0tKzIKGRbkoLnff4TFFCL87hfIRATZ5qZPM4m8ioT8/bXI7WVa9WQ== + dependencies: + object-assign "^4.1.1" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@types/anymatch@*": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" + integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== + +"@types/basic-auth@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@types/basic-auth/-/basic-auth-1.1.3.tgz#a787ede8310804174fbbf3d6c623ab1ccedb02cd" + integrity sha512-W3rv6J0IGlxqgE2eQ2pTb0gBjaGtejQpJ6uaCjz3UQ65+TFTPC5/lAE+POfx1YLdjtxvejJzsIAfd3MxWiVmfg== + dependencies: + "@types/node" "*" + +"@types/body-parser@*": + version "1.19.0" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" + integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/busboy@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@types/busboy/-/busboy-0.2.3.tgz#6697ad29873246c530f09a3ff5a40861824230d5" + integrity sha1-ZpetKYcyRsUw8Jo/9aQIYYJCMNU= + dependencies: + "@types/node" "*" + +"@types/chai-as-promised@*": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.1.tgz#004c27a4ac640e9590e25d8b0980cb0a6609bfd8" + integrity sha512-dberBxQW/XWv6BMj0su1lV9/C9AUx5Hqu2pisuS6S4YK/Qt6vurcj/BmcbEsobIWWCQzhesNY8k73kIxx4X7Mg== + dependencies: + "@types/chai" "*" + +"@types/chai-as-promised@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.3.tgz#779166b90fda611963a3adbfd00b339d03b747bd" + integrity sha512-FQnh1ohPXJELpKhzjuDkPLR2BZCAqed+a6xV4MI/T3XzHfd2FlarfUGUdZYgqYe8oxkYn0fchHEeHfHqdZ96sg== + dependencies: + "@types/chai" "*" + +"@types/chai@*": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a" + integrity sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA== + +"@types/chai@^4.2.12": + version "4.2.12" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.12.tgz#6160ae454cd89dae05adc3bb97997f488b608201" + integrity sha512-aN5IAC8QNtSUdQzxu7lGBgYAOuU1tmRU4c9dIq5OKGf/SBVjXo+ffM2wEjudAWbgpOhy60nLoAGH1xm8fpCKFQ== + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/concat-stream@^1.0.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" + integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== + dependencies: + "@types/node" "*" + +"@types/connect@*": + version "3.4.33" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" + integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== + dependencies: + "@types/node" "*" + +"@types/debug@^4.0.0": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" + +"@types/dirty-chai@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/dirty-chai/-/dirty-chai-2.0.2.tgz#eeac4802329a41ed7815ac0c1a6360335bf77d0c" + integrity sha512-BruwIN/UQEU0ePghxEX+OyjngpOfOUKJQh3cmfeq2h2Su/g001iljVi3+Y2y2EFp3IPgjf4sMrRU33Hxv1FUqw== + dependencies: + "@types/chai" "*" + "@types/chai-as-promised" "*" + +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/express-serve-static-core@^4.17.18": + version "4.17.28" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" + integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@^4.17.13": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/fs-extra@^9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz#91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918" + integrity sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg== + dependencies: + "@types/node" "*" + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/highlight.js@^9.7.0": + version "9.12.4" + resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.4.tgz#8c3496bd1b50cc04aeefd691140aa571d4dbfa34" + integrity sha512-t2szdkwmg2JJyuCM20e8kR2X59WCE5Zkl4bzm1u1Oukjm79zpbiAv+QjnwLnuuV0WHEcX2NgUItu0pAMKuOPww== + +"@types/is-empty@^1.0.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/is-empty/-/is-empty-1.2.0.tgz#16bc578060c9b0b6953339eea906c255a375bf86" + integrity sha512-brJKf2boFhUxTDxlpI7cstwiUtA2ovm38UzFTi9aZI6//ARncaV+Q5ALjCaJqXaMtdZk/oPTJnSutugsZR6h8A== + +"@types/js-yaml@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.2.tgz#4117a7a378593a218e9d6f0ef44ce6d5d9edf7fa" + integrity sha512-KbeHS/Y4R+k+5sWXEYzAZKuB1yQlZtEghuhRxrVRLaqhtoG5+26JwQsa4HyS3AWX8v1Uwukma5HheduUDskasA== + +"@types/json-schema@^7.0.3": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636" + integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A== + +"@types/json-schema@^7.0.4": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" + integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/jsonwebtoken@^8.3.3": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-8.5.0.tgz#2531d5e300803aa63279b232c014acf780c981c5" + integrity sha512-9bVao7LvyorRGZCw0VmH/dr7Og+NdjYSsKAxB43OQoComFbBgsEpoR9JW6+qSq/ogwVBg8GI2MfAlk4SYI4OLg== + dependencies: + "@types/node" "*" + +"@types/klaw@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/klaw/-/klaw-3.0.1.tgz#29f90021c0234976aa4eb97efced9cb6db9fa8b3" + integrity sha512-acnF3n9mYOr1aFJKFyvfNX0am9EtPUsYPq22QUCGdJE+MVt6UyAN1jwo+PmOPqXD4K7ZS9MtxDEp/un0lxFccA== + dependencies: + "@types/node" "*" + +"@types/linkify-it@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-2.1.0.tgz#ea3dd64c4805597311790b61e872cbd1ed2cd806" + integrity sha512-Q7DYAOi9O/+cLLhdaSvKdaumWyHbm7HAk/bFwwyTuU0arR5yyCeW5GOoqt4tJTpDRxhpx9Q8kQL6vMpuw9hDSw== + +"@types/lru-cache@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.0.tgz#57f228f2b80c046b4a1bd5cac031f81f207f4f03" + integrity sha512-RaE0B+14ToE4l6UqdarKPnXwVDuigfFv+5j9Dze/Nqr23yyuqdNvzcZi3xB+3Agvi5R4EOgAksfv3lXX4vBt9w== + +"@types/markdown-it@^10.0.0": + version "10.0.3" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-10.0.3.tgz#a9800d14b112c17f1de76ec33eff864a4815eec7" + integrity sha512-daHJk22isOUvNssVGF2zDnnSyxHhFYhtjeX4oQaKD6QzL3ZR1QSgiD1g+Q6/WSWYVogNXYDXODtbgW/WiFCtyw== + dependencies: + "@types/highlight.js" "^9.7.0" + "@types/linkify-it" "*" + "@types/mdurl" "*" + highlight.js "^9.7.0" + +"@types/mdast@^3.0.0": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.7.tgz#cba63d0cc11eb1605cea5c0ad76e02684394166b" + integrity sha512-YwR7OK8aPmaBvMMUi+pZXBNoW2unbVbfok4YRqGMJBe1dpDlzpRkJrYEYmvjxgs5JhuQmKfDexrN98u941Zasg== + dependencies: + "@types/unist" "*" + +"@types/mdurl@*": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" + integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== + +"@types/mime@*": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" + integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/minimist@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" + integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= + +"@types/mocha@^7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-7.0.2.tgz#b17f16cf933597e10d6d78eae3251e692ce8b0ce" + integrity sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w== + +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + +"@types/node-fetch@^2.5.0": + version "2.6.1" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.1.tgz#8f127c50481db65886800ef496f20bbf15518975" + integrity sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + +"@types/node@*": + version "12.6.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.1.tgz#d5544f6de0aae03eefbb63d5120f6c8be0691946" + integrity sha512-rp7La3m845mSESCgsJePNL/JQyhkOJA6G4vcwvVgkDAwHhGdq5GCumxmPjEk1MZf+8p5ZQAUE7tqgQRQTXN7uQ== + +"@types/node@>= 8": + version "14.0.27" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" + integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== + +"@types/node@^11.13.7": + version "11.13.22" + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.13.22.tgz#91ee88ebfa25072433497f6f3150f84fa8c3a91b" + integrity sha512-rOsaPRUGTOXbRBOKToy4cgZXY4Y+QSVhxcLwdEveozbk7yuudhWMpxxcaXqYizLMP3VY7OcWCFtx9lGFh5j5kg== + +"@types/node@^16.0.0": + version "16.4.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.13.tgz#7dfd9c14661edc65cccd43a29eb454174642370d" + integrity sha512-bLL69sKtd25w7p1nvg9pigE4gtKVpGTPojBFLMkGHXuUgap2sLqQt2qUnqmVCDfzGUL0DRNZP+1prIZJbMeAXg== + +"@types/node@^16.11.26": + version "16.11.26" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.26.tgz#63d204d136c9916fb4dcd1b50f9740fe86884e47" + integrity sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/qs@*": + version "6.9.3" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.3.tgz#b755a0934564a200d3efdf88546ec93c369abd03" + integrity sha512-7s9EQWupR1fTc2pSMtXRQ9w9gLOcrJn+h7HOXw4evxyvVqMi4f+q7d2tnFe3ng3SNHjtK+0EzGMGFUQX4/AQRA== + +"@types/range-parser@*": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" + integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== + +"@types/repeat-string@^1.0.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@types/repeat-string/-/repeat-string-1.6.1.tgz#8bb5686e662ce1d962271b0b043623bf51404cdc" + integrity sha512-vdna8kjLGljgtPnYN6MBD2UwX62QE0EFLj9QlLXvg6dEu66NksXB900BNguBCMZZY2D9SSqncUskM23vT3uvWQ== + +"@types/semver@^7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.3.tgz#3ad6ed949e7487e7bda6f886b4a2434a2c3d7b1a" + integrity sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q== + +"@types/send@^0.14.5": + version "0.14.5" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.14.5.tgz#653f7d25b93c3f7f51a8994addaf8a229de022a7" + integrity sha512-0mwoiK3DXXBu0GIfo+jBv4Wo5s1AcsxdpdwNUtflKm99VEMvmBPJ+/NBNRZy2R5JEYfWL/u4nAHuTUTA3wFecQ== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/serve-static@*": + version "1.13.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" + integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/split@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/split/-/split-1.0.0.tgz#24f7c35707450b002f203383228f5a2bc1e6c228" + integrity sha512-pm9S1mkr+av0j7D6pFyqhBxXDbnbO9gqj4nb8DtGtCewvj0XhIv089SSwXrjrIizT1UquO8/h83hCut0pa3u8A== + dependencies: + "@types/node" "*" + "@types/through" "*" + +"@types/stream-chain@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/stream-chain/-/stream-chain-2.0.0.tgz#aed7fc21ac3686bc721aebbbd971f5a857e567e4" + integrity sha512-O3IRJcZi4YddlS8jgasH87l+rdNmad9uPAMmMZCfRVhumbWMX6lkBWnIqr9kokO5sx8LHp8peQ1ELhMZHbR0Gg== + dependencies: + "@types/node" "*" + +"@types/stream-json@^1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@types/stream-json/-/stream-json-1.5.1.tgz#ae8d1133f9f920e18c6e94b233cb57d014a47b8d" + integrity sha512-Blg6GJbKVEB1J/y/2Tv+WrYiMzPTIqyuZ+zWDJtAF8Mo8A2XQh/lkSX4EYiM+qtS+GY8ThdGi6gGA9h4sjvL+g== + dependencies: + "@types/node" "*" + "@types/stream-chain" "*" + +"@types/supports-color@^8.0.0": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-8.1.1.tgz#1b44b1b096479273adf7f93c75fc4ecc40a61ee4" + integrity sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw== + +"@types/tapable@*": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.4.tgz#b4ffc7dc97b498c969b360a41eee247f82616370" + integrity sha512-78AdXtlhpCHT0K3EytMpn4JNxaf5tbqbLcbIRoQIHzpTIyjpxLQKRoxU55ujBXAtg3Nl2h/XWvfDa9dsMOd0pQ== + +"@types/temp@^0.8.34": + version "0.8.34" + resolved "https://registry.yarnpkg.com/@types/temp/-/temp-0.8.34.tgz#03e4b3cb67cbb48c425bbf54b12230fef85540ac" + integrity sha512-oLa9c5LHXgS6UimpEVp08De7QvZ+Dfu5bMQuWyMhf92Z26Q10ubEMOWy9OEfUdzW7Y/sDWVHmUaLFtmnX/2j0w== + dependencies: + "@types/node" "*" + +"@types/text-table@^0.2.0": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@types/text-table/-/text-table-0.2.2.tgz#774c90cfcfbc8b4b0ebb00fecbe861dc8b1e8e26" + integrity sha512-dGoI5Af7To0R2XE8wJuc6vwlavWARsCh3UKJPjWs1YEqGUqfgBI/j/4GX0yf19/DsDPPf0YAXWAp8psNeIehLg== + +"@types/through@*": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.29.tgz#72943aac922e179339c651fa34a4428a4d722f93" + integrity sha512-9a7C5VHh+1BKblaYiq+7Tfc+EOmjMdZaD1MYtkQjSoxgB69tBjW98ry6SKsi4zEIWztLOMRuL87A3bdT/Fc/4w== + dependencies: + "@types/node" "*" + +"@types/tunnel@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@types/tunnel/-/tunnel-0.0.3.tgz#f109e730b072b3136347561fc558c9358bb8c6e9" + integrity sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA== + dependencies: + "@types/node" "*" + +"@types/uglify-js@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.4.tgz#96beae23df6f561862a830b4288a49e86baac082" + integrity sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ== + dependencies: + source-map "^0.6.1" + +"@types/unist@*", "@types/unist@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" + integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== + +"@types/unist@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" + integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== + +"@types/uuid@^3.4.6": + version "3.4.6" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.6.tgz#d2c4c48eb85a757bf2927f75f939942d521e3016" + integrity sha512-cCdlC/1kGEZdEglzOieLDYBxHsvEOIg7kp/2FYyVR9Pxakq+Qf/inL3RKQ+PA8gOlI/NnL+fXmQH12nwcGzsHw== + dependencies: + "@types/node" "*" + +"@types/webpack-env@^1.16.3": + version "1.16.3" + resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.16.3.tgz#b776327a73e561b71e7881d0cd6d34a1424db86a" + integrity sha512-9gtOPPkfyNoEqCQgx4qJKkuNm/x0R2hKR7fdl7zvTJyHnIisuE/LfvXOsYWL0o3qq6uiBnKZNNNzi3l0y/X+xw== + +"@types/webpack-sources@*": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.6.tgz#3d21dfc2ec0ad0c77758e79362426a9ba7d7cbcb" + integrity sha512-FtAWR7wR5ocJ9+nP137DV81tveD/ZgB1sadnJ/axUGM3BUVfRPx8oQNMtv3JNfTeHx3VP7cXiyfR/jmtEsVHsQ== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.6.1" + +"@types/webpack@^4.41.21": + version "4.41.21" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.21.tgz#cc685b332c33f153bb2f5fc1fa3ac8adeb592dee" + integrity sha512-2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA== + dependencies: + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" + +"@typescript-eslint/eslint-plugin@^4.4.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.4.1.tgz#b8acea0373bd2a388ac47df44652f00bf8b368f5" + integrity sha512-O+8Utz8pb4OmcA+Nfi5THQnQpHSD2sDUNw9AxNHpuYOo326HZTtG8gsfT+EAYuVrFNaLyNb2QnUNkmTRDskuRA== + dependencies: + "@typescript-eslint/experimental-utils" "4.4.1" + "@typescript-eslint/scope-manager" "4.4.1" + debug "^4.1.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@4.4.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.4.1.tgz#40613b9757fa0170de3e0043254dbb077cafac0c" + integrity sha512-Nt4EVlb1mqExW9cWhpV6pd1a3DkUbX9DeyYsdoeziKOpIJ04S2KMVDO+SEidsXRH/XHDpbzXykKcMTLdTXH6cQ== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.4.1" + "@typescript-eslint/types" "4.4.1" + "@typescript-eslint/typescript-estree" "4.4.1" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^4.4.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.4.1.tgz#25fde9c080611f303f2f33cedb145d2c59915b80" + integrity sha512-S0fuX5lDku28Au9REYUsV+hdJpW/rNW0gWlc4SXzF/kdrRaAVX9YCxKpziH7djeWT/HFAjLZcnY7NJD8xTeUEg== + dependencies: + "@typescript-eslint/scope-manager" "4.4.1" + "@typescript-eslint/types" "4.4.1" + "@typescript-eslint/typescript-estree" "4.4.1" + debug "^4.1.1" + +"@typescript-eslint/scope-manager@4.4.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.4.1.tgz#d19447e60db2ce9c425898d62fa03b2cce8ea3f9" + integrity sha512-2oD/ZqD4Gj41UdFeWZxegH3cVEEH/Z6Bhr/XvwTtGv66737XkR4C9IqEkebCuqArqBJQSj4AgNHHiN1okzD/wQ== + dependencies: + "@typescript-eslint/types" "4.4.1" + "@typescript-eslint/visitor-keys" "4.4.1" + +"@typescript-eslint/types@4.4.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.4.1.tgz#c507b35cf523bc7ba00aae5f75ee9b810cdabbc1" + integrity sha512-KNDfH2bCyax5db+KKIZT4rfA8rEk5N0EJ8P0T5AJjo5xrV26UAzaiqoJCxeaibqc0c/IvZxp7v2g3difn2Pn3w== + +"@typescript-eslint/typescript-estree@4.4.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.4.1.tgz#598f6de488106c2587d47ca2462c60f6e2797cb8" + integrity sha512-wP/V7ScKzgSdtcY1a0pZYBoCxrCstLrgRQ2O9MmCUZDtmgxCO/TCqOTGRVwpP4/2hVfqMz/Vw1ZYrG8cVxvN3g== + dependencies: + "@typescript-eslint/types" "4.4.1" + "@typescript-eslint/visitor-keys" "4.4.1" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/visitor-keys@4.4.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.4.1.tgz#1769dc7a9e2d7d2cfd3318b77ed8249187aed5c3" + integrity sha512-H2JMWhLaJNeaylSnMSQFEhT/S/FsJbebQALmoJxMPMxLtlVAMy2uJP/Z543n9IizhjRayLSqoInehCeNW9rWcw== + dependencies: + "@typescript-eslint/types" "4.4.1" + eslint-visitor-keys "^2.0.0" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + +acorn@^7.1.1, acorn@^7.2.0: + version "7.3.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" + integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== + +aggregate-error@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + +ajv@^6.1.0: + version "6.10.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.1.tgz#ebf8d3af22552df9dd049bfbe50cc2390e823593" + integrity sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^6.10.0: + version "6.12.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^6.10.2: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^6.12.2: + version "6.12.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-regex@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.0.tgz#ecc7f5933cbe5ac7b33e209a5ff409ab1669c6b2" + integrity sha512-tAaOSrWCHF+1Ear1Z4wnJCXA9GGox4K6Ic85a5qalES2aeEwQGr7UC93mwef49536PkCYjzkp0zIxfFvexJ6zQ== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.0.3.tgz#2fb624fe0e84bccab00afee3d0006ed310f22f09" + integrity sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-includes@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.flat@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asar@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz#70b0509449fe3daccc63beb4d3c7d2e24d3c6473" + integrity sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ== + dependencies: + chromium-pickle-js "^0.2.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + optionalDependencies: + "@types/glob" "^7.1.1" + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +aws-sdk@^2.814.0: + version "2.814.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.814.0.tgz#7a1c36006e0b5826f14bd2511b1d229ef6814bb0" + integrity sha512-empd1m/J/MAkL6d9OeRpmg9thobULu0wk4v8W3JToaxGi2TD7PIdvE6yliZKyOVAdJINhBWEBhxR4OUIHhcGbQ== + dependencies: + buffer "4.9.2" + events "1.1.1" + ieee754 "1.1.13" + jmespath "0.15.0" + querystring "0.2.0" + sax "1.2.1" + url "0.10.3" + uuid "3.3.2" + xml2js "0.4.19" + +bail@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.1.tgz#d676736373a374058a935aec81b94c12ba815771" + integrity sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +before-after-hook@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" + integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + +bluebird@^3.5.5: + version "3.5.5" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" + integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= + +buffer-from@^1.0.0, buffer-from@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@4.9.2, buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +builtins@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-4.0.0.tgz#a8345420de82068fdc4d6559d0456403a8fb1905" + integrity sha512-qC0E2Dxgou1IHhvJSLwGDSTvokbRovU5zZFuDY6oY8Y2lF3nGt5Ad8YZK7GMtqzY84Wu7pXTPeHQeHcXSXsRhw== + dependencies: + semver "^7.0.0" + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +capture-stack-trace@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" + integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + +chai@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +character-entities-legacy@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz#57f4d00974c696e8f74e9f493e7fcb75b44d7ee7" + integrity sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA== + +character-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.0.tgz#508355fcc8c73893e0909efc1a44d28da2b6fdf3" + integrity sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA== + +character-reference-invalid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz#a0bdeb89c051fe7ed5d3158b2f06af06984f2813" + integrity sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +check-for-leaks@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/check-for-leaks/-/check-for-leaks-1.2.1.tgz#4ac108ee3f8e6b99f5ad36f6b98cba1d7f4816d0" + integrity sha512-9OdOSRZY6N0w5JCdJpqsC5MkD6EPGYpHmhtf4l5nl3DRETDZshP6C1EGN/vVhHDTY6AsOK3NhdFfrMe3NWZl7g== + dependencies: + anymatch "^3.0.2" + minimist "^1.2.0" + parse-gitignore "^0.4.0" + walk-sync "^0.3.2" + +checksum@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/checksum/-/checksum-0.1.1.tgz#dc6527d4c90be8560dbd1ed4cecf3297d528e9e9" + integrity sha1-3GUn1MkL6FYNvR7Uzs8yl9Uo6ek= + dependencies: + optimist "~0.3.5" + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.0.0: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chokidar@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" + integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + +chownr@^1.1.1, chownr@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.0.0, cli-spinners@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" + integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== + +cli-truncate@2.1.0, cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +co@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78" + integrity sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +colors@^1.1.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.20.0, commander@^2.9.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + +commander@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^5.0.0, commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@~6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75" + integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + dependencies: + capture-stack-trace "^1.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= + +debug-log@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.0, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +debug@^4.0.1, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + +deep-extend@^0.6.0, deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +deglob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/deglob/-/deglob-4.0.1.tgz#0685c6383992fd6009be10653a2b1116696fad55" + integrity sha512-/g+RDZ7yf2HvoW+E5Cy+K94YhgcFgr6C8LuHZD1O5HoNPkf3KY6RfXJ0DBGlB/NkLi5gml+G9zqRzk9S0mHZCg== + dependencies: + find-root "^1.0.0" + glob "^7.0.5" + ignore "^5.0.0" + pkg-config "^1.1.0" + run-parallel "^1.1.2" + uniq "^1.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +diff@^3.1.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +dotenv-safe@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/dotenv-safe/-/dotenv-safe-4.0.4.tgz#8b0e7ced8e70b1d3c5d874ef9420e406f39425b3" + integrity sha1-iw587Y5wsdPF2HTvlCDkBvOUJbM= + dependencies: + dotenv "^4.0.0" + +dotenv@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" + integrity sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0= + +dugite@^1.103.0: + version "1.103.0" + resolved "https://registry.yarnpkg.com/dugite/-/dugite-1.103.0.tgz#2229c83790782116f96b87763d9ea1a0f2a55842" + integrity sha512-8rKO/jQX2HKfSd5wNG/l3HnUfQPKqyC3+D+3CR5Go4+BJOyCPScQwiAVW+eeKLqHFOvjq/w67+ymMyPGxUqhIA== + dependencies: + checksum "^0.1.1" + got "^9.6.0" + mkdirp "^0.5.1" + progress "^2.0.3" + rimraf "^2.5.4" + tar "^4.4.7" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +elliptic@^6.0.0: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + +enhanced-resolve@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz#5d43bda4a0fd447cb0ebbe71bef8deff8805ad0d" + integrity sha512-S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +ensure-posix-path@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz#3c62bdb19fa4681544289edb2b382adc029179ce" + integrity sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw== + +entities@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: + version "1.17.6" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-regex "^1.1.0" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-abstract@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-keys "^1.0.12" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-object-assign@^1.0.3: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" + integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-config-standard-jsx@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-8.1.0.tgz#314c62a0e6f51f75547f89aade059bec140edfc7" + integrity sha512-ULVC8qH8qCqbU792ZOO6DaiaZyHNS/5CZt3hKqHkEhVlhPEPN3nfBqqxJCyp59XrjIBZPu1chMYe9T2DXZ7TMw== + +eslint-config-standard@14.1.1, eslint-config-standard@^14.1.1: + version "14.1.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" + integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== + +eslint-import-resolver-node@^0.3.2, eslint-import-resolver-node@^0.3.3: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.4.0, eslint-module-utils@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-es@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz#0f5f5da5f18aa21989feebe8a73eadefb3432976" + integrity sha512-f6fceVtg27BR02EYnBhgWLFQfK6bN4Ll0nQFrBHOlCsAyxeZkn0NHns5O0YZOPrV1B3ramd6cgFwaoFLcSkwEQ== + dependencies: + eslint-utils "^1.4.2" + regexpp "^3.0.0" + +eslint-plugin-es@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + +eslint-plugin-import@^2.22.0: + version "2.22.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz#92f7736fe1fde3e2de77623c838dd992ff5ffb7e" + integrity sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg== + dependencies: + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.3" + eslint-module-utils "^2.6.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.1" + read-pkg-up "^2.0.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + +eslint-plugin-import@~2.18.0: + version "2.18.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" + integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== + dependencies: + array-includes "^3.0.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.2" + eslint-module-utils "^2.4.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.0" + read-pkg-up "^2.0.0" + resolve "^1.11.0" + +eslint-plugin-mocha@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-7.0.1.tgz#b2e9e8ebef7836f999a83f8bab25d0e0c05f0d28" + integrity sha512-zkQRW9UigRaayGm/pK9TD5RjccKXSgQksNtpsXbG9b6L5I+jNx7m98VUbZ4w1H1ArlNA+K7IOH+z8TscN6sOYg== + dependencies: + eslint-utils "^2.0.0" + ramda "^0.27.0" + +eslint-plugin-node@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== + dependencies: + eslint-plugin-es "^3.0.0" + eslint-utils "^2.0.0" + ignore "^5.1.1" + minimatch "^3.0.4" + resolve "^1.10.1" + semver "^6.1.0" + +eslint-plugin-node@~10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz#fd1adbc7a300cf7eb6ac55cf4b0b6fc6e577f5a6" + integrity sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ== + dependencies: + eslint-plugin-es "^2.0.0" + eslint-utils "^1.4.2" + ignore "^5.1.1" + minimatch "^3.0.4" + resolve "^1.10.1" + semver "^6.1.0" + +eslint-plugin-promise@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" + integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== + +eslint-plugin-react@~7.14.2: + version "7.14.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz#911030dd7e98ba49e1b2208599571846a66bdf13" + integrity sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA== + dependencies: + array-includes "^3.0.3" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.1.0" + object.entries "^1.1.0" + object.fromentries "^2.0.0" + object.values "^1.1.0" + prop-types "^15.7.2" + resolve "^1.10.1" + +eslint-plugin-standard@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4" + integrity sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ== + +eslint-plugin-standard@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz#f845b45109c99cd90e77796940a344546c8f6b5c" + integrity sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA== + +eslint-plugin-typescript@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-typescript/-/eslint-plugin-typescript-0.14.0.tgz#068549c3f4c7f3f85d88d398c29fa96bf500884c" + integrity sha512-2u1WnnDF2mkWWgU1lFQ2RjypUlmRoBEvQN02y9u+IL12mjWlkKFGEBnVsjs9Y8190bfPQCvWly1c2rYYUSOxWw== + dependencies: + requireindex "~1.1.0" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" + integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.4.2, eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint-visitor-keys@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint@^7.4.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.4.0.tgz#4e35a2697e6c1972f9d6ef2b690ad319f80f206f" + integrity sha512-gU+lxhlPHu45H3JkEGgYhWhkR9wLHHEXC9FbWFnTlEkbKyZKWgWRLgf61E8zWmBuI6g5xKBph9ltg3NtZMVF8g== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.0" + eslint-utils "^2.0.0" + eslint-visitor-keys "^1.2.0" + espree "^7.1.0" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.14" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +eslint@~6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +espree@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.1.0.tgz#a9c7f18a752056735bf1ba14cb1b70adc3a5ce1c" + integrity sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw== + dependencies: + acorn "^7.2.0" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.2.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== + dependencies: + estraverse "^4.0.0" + +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +events-to-array@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/events-to-array/-/events-to-array-1.1.2.tgz#2d41f563e1fe400ed4962fe1a4d5c6a7539df7f6" + integrity sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y= + +events@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= + +events@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" + integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" + integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +express@^4.16.4: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + +fast-glob@^3.1.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastq@^1.6.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" + integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + dependencies: + reusify "^1.0.4" + +fault@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.0.tgz#ad2198a6e28e344dcda76a7b32406b1039f0b707" + integrity sha512-JsDj9LFcoC+4ChII1QpXPA7YIaY8zmqPYw7h9j5n7St7a0BBKfNnwEBAUQRBx70o2q4rs+BeSNHk8Exm6xE7fQ== + dependencies: + format "^0.2.0" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +figures@^3.0.0, figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-root@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +findup-sync@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" + integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +folder-hash@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/folder-hash/-/folder-hash-2.1.2.tgz#7109f9cd0cbca271936d1b5544b156d6571e6cfd" + integrity sha512-PmMwEZyNN96EMshf7sek4OIB7ADNsHOJ7VIw7pO0PBI0BNfEsi7U8U56TBjjqqwQ0WuBv8se0HEfmbw5b/Rk+w== + dependencies: + debug "^3.1.0" + graceful-fs "~4.1.11" + minimatch "~3.0.4" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" + integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^1.0.0" + +fs-minipass@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" + integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== + +get-stdin@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== + +get-stdin@~8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.0, glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globby@^11.0.0, globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +got@^6.3.0: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.9: + version "4.2.0" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" + integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg== + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + +graceful-fs@~4.1.11: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-flag@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-5.0.1.tgz#5483db2ae02a472d1d0691462fc587d1843cd940" + integrity sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA== + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + +has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +highlight.js@^9.7.0: + version "9.18.5" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" + integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +husky@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/husky/-/husky-6.0.0.tgz#810f11869adf51604c32ea577edbc377d7f9319e" + integrity sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ== + +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@1.1.13, ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + dependencies: + minimatch "^3.0.4" + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.0.0, ignore@^5.1.1, ignore@^5.1.4, ignore@~5.1.8: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +import-fresh@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" + integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-fresh@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +import-meta-resolve@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-1.1.1.tgz#244fd542fd1fae73550d4f8b3cde3bba1d7b2b18" + integrity sha512-JiTuIvVyPaUg11eTrNDx5bgQ/yMKMZffc7YSjvQeSMXy58DO2SQ8BtAf3xteZvmzvjYh14wnqNjL8XVeDy2o9A== + dependencies: + builtins "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infer-owner@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + +inquirer@^7.0.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.0.tgz#aa3e7cb0c18a410c3c16cdd2bc9dcbe83c4d333e" + integrity sha512-K+LZp6L/6eE5swqIcVXrxl21aGDU4S50gKH0/d96OMQnSBCyGyZl/oZhbkVmdp5sBoINHd4xZvFSARh2dk6DWA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +interpret@^1.0.0, interpret@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-alphabetical@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.0.tgz#ef6e2caea57c63450fffc7abb6cbdafc5eb96e96" + integrity sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w== + +is-alphanumerical@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz#0fbfeb6a72d21d91143b3d182bf6cf5909ee66f6" + integrity sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + +is-callable@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" + integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== + +is-core-module@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + +is-decimal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.0.tgz#db1140337809fd043a056ae40a9bd1cdc563034c" + integrity sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-empty@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b" + integrity sha1-3pu1snhzigWgsJpX4ftNSjQan2s= + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz#8e1ec9f48fe3eabd90161109856a23e0907a65d5" + integrity sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug== + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-plain-obj@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" + integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-4.1.1.tgz#1a14d6452cbd50790edc7fdaa0aed5a40a35ebb5" + integrity sha512-5Aw8LLVsDlZsETVMhoMXzqsXwQqr/0vlnBYzIXJbYo2F4yYlhLHs+Ez7Bod7IIQKWkJbJfxrWD7pA1Dw1TKrwA== + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" + +is-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" + integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== + dependencies: + has-symbols "^1.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-retry-allowed@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-stream@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +jmespath@0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" + integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1, js-yaml@^3.2.7: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@~3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +jsonc-parser@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342" + integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" + integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== + dependencies: + universalify "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonwebtoken@^8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +jsx-ast-utils@^2.1.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e" + integrity sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w== + dependencies: + array-includes "^3.1.1" + object.assign "^4.1.0" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + +klaw@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" + integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== + dependencies: + graceful-fs "^4.1.9" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +libnpmconfig@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" + integrity sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA== + dependencies: + figgy-pudding "^3.5.1" + find-up "^3.0.0" + ini "^1.3.5" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +linkify-it@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== + dependencies: + uc.micro "^1.0.1" + +linkify-it@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8" + integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ== + dependencies: + uc.micro "^1.0.1" + +lint-staged@^10.2.11: + version "10.2.11" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.11.tgz#713c80877f2dc8b609b05bc59020234e766c9720" + integrity sha512-LRRrSogzbixYaZItE2APaS4l2eJMjjf5MbclRZpLJtcQJShcvUzKXsNeZgsLIZ0H0+fg2tL4B59fU9wHIHtFIA== + dependencies: + chalk "^4.0.0" + cli-truncate "2.1.0" + commander "^5.1.0" + cosmiconfig "^6.0.0" + debug "^4.1.1" + dedent "^0.7.0" + enquirer "^2.3.5" + execa "^4.0.1" + listr2 "^2.1.0" + log-symbols "^4.0.0" + micromatch "^4.0.2" + normalize-path "^3.0.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" + stringify-object "^3.3.0" + +lint@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/lint/-/lint-1.1.2.tgz#35ed064f322547c331358d899868664968ba371f" + integrity sha1-Ne0GTzIlR8MxNY2JmGhmSWi6Nx8= + +listr2@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-2.2.0.tgz#cb88631258abc578c7fb64e590fe5742f28e4aac" + integrity sha512-Q8qbd7rgmEwDo1nSyHaWQeztfGsdL6rb4uh7BA+Q80AZiDET5rVntiU1+13mu2ZTDVaBVbvAD1Db11rnu3l9sg== + dependencies: + chalk "^4.0.0" + cli-truncate "^2.1.0" + figures "^3.2.0" + indent-string "^4.0.0" + log-update "^4.0.0" + p-map "^4.0.0" + rxjs "^6.5.5" + through "^2.3.8" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-json-file@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" + integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== + dependencies: + graceful-fs "^4.1.15" + parse-json "^4.0.0" + pify "^4.0.1" + strip-bom "^3.0.0" + type-fest "^0.3.0" + +load-plugin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-4.0.1.tgz#9a239b0337064c9b8aac82b0c9f89b067db487c5" + integrity sha512-4kMi+mOSn/TR51pDo4tgxROHfBHXsrcyEYSGHcJ1o6TtRaP2PsRM5EwmYbj1uiLDvbfA/ohwuSWZJzqGiai8Dw== + dependencies: + import-meta-resolve "^1.0.0" + libnpmconfig "^1.0.0" + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@^1.0.2, loader-utils@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.differencewith@~4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz#bafafbc918b55154e179176a00bb0aefaac854b7" + integrity sha1-uvr7yRi1UVTheRdqALsK76rIVLc= + +lodash.flatten@^4.4.0, lodash.flatten@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + +lodash.range@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.range/-/lodash.range-3.2.0.tgz#f461e588f66683f7eadeade513e38a69a565a15d" + integrity sha1-9GHliPZmg/fq3q3lE+OKaaVloV0= + +lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +longest-streak@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.0.tgz#f127e2bded83caa6a35ac5f7a2f2b2f94b36f3dc" + integrity sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw== + +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-error@^1.1.1: + version "1.3.5" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +markdown-it@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-11.0.0.tgz#dbfc30363e43d756ebc52c38586b91b90046b876" + integrity sha512-+CvOnmbSubmQFSA9dKz1BRiaSMV7rhexl3sngKqFyXSagoA3fBdJQ8oZWtRy2knXdpDXaBw44euz37DeJQ9asg== + dependencies: + argparse "^1.0.7" + entities "~2.0.0" + linkify-it "^3.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +markdown-it@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc" + integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== + dependencies: + argparse "^1.0.7" + entities "~2.0.0" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +markdownlint-cli@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.25.0.tgz#806b2c234259fa621af27673644506d447bdb6a1" + integrity sha512-pmiXJgPQtAx6YOMXPCCO3AudMWv8Gnhfrprn0raqevofOhO95nJZ6bTEXkUVbzEwvYhvGxE0Yl888aZwuRGMGw== + dependencies: + commander "~6.2.0" + deep-extend "~0.6.0" + get-stdin "~8.0.0" + glob "~7.1.6" + ignore "~5.1.8" + js-yaml "~3.14.0" + jsonc-parser "~2.3.1" + lodash.differencewith "~4.5.0" + lodash.flatten "~4.4.0" + markdownlint "~0.21.1" + markdownlint-rule-helpers "~0.12.0" + minimatch "~3.0.4" + minimist "~1.2.5" + rc "~1.2.8" + +markdownlint-rule-helpers@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.12.0.tgz#c41d9b990c50911572e8eb2fba3e6975a5514b7e" + integrity sha512-Q7qfAk+AJvx82ZY52OByC4yjoQYryOZt6D8TKrZJIwCfhZvcj8vCQNuwDqILushtDBTvGFmUPq+uhOb1KIMi6A== + +markdownlint@^0.21.1, markdownlint@~0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.21.1.tgz#9442afcf12bf65ce9d613212028cf85741677421" + integrity sha512-8kc88w5dyEzlmOWIElp8J17qBgzouOQfJ0LhCcpBFrwgyYK6JTKvILsk4FCEkiNqHkTxwxopT2RS2DYb/10qqg== + dependencies: + markdown-it "11.0.0" + +matcher-collection@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-1.1.2.tgz#1076f506f10ca85897b53d14ef54f90a5c426838" + integrity sha512-YQ/teqaOIIfUHedRam08PB3NK7Mjct6BvzRnJmpGDm8uFXpNr1sbY4yuflI5JcEs6COpYA0FpRQhSDBf1tT95g== + dependencies: + minimatch "^3.0.2" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdast-comment-marker@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.1.1.tgz#9c9c18e1ed57feafc1965d92b028f37c3c8da70d" + integrity sha512-TWZDaUtPLwKX1pzDIY48MkSUQRDwX/HqbTB4m3iYdL/zosi/Z6Xqfdv0C0hNVKvzrPjZENrpWDt4p4odeVO0Iw== + +mdast-util-from-markdown@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.0.tgz#c517313cd999ec2b8f6d447b438c5a9d500b89c9" + integrity sha512-uj2G60sb7z1PNOeElFwCC9b/Se/lFXuLhVKFOAY2EHz/VvgbupTQRNXPoZl7rGpXYL6BNZgcgaybrlSWbo7n/g== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-to-string "^3.0.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + parse-entities "^3.0.0" + unist-util-stringify-position "^3.0.0" + +mdast-util-heading-style@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/mdast-util-heading-style/-/mdast-util-heading-style-1.0.5.tgz#81b2e60d76754198687db0e8f044e42376db0426" + integrity sha512-8zQkb3IUwiwOdUw6jIhnwM6DPyib+mgzQuHAe7j2Hy1rIarU4VUxe472bp9oktqULW3xqZE+Kz6OD4Gi7IA3vw== + +mdast-util-to-markdown@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.1.1.tgz#545ccc4dcc6672614b84fd1064482320dd689b12" + integrity sha512-4puev/CxuxVdlsx5lVmuzgdqfjkkJJLS1Zm/MnejQ8I7BLeeBlbkwp6WOGJypEcN8g56LbVbhNmn84MvvcAvSQ== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-to-string "^3.0.0" + parse-entities "^3.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.6.tgz#7d85421021343b33de1552fc71cb8e5b4ae7536d" + integrity sha512-868pp48gUPmZIhfKrLbaDneuzGiw3OTDjHc5M1kAepR2CWBJ+HpEsm252K4aXdiP5coVZaJPOqGtVU6Po8xnXg== + +mdast-util-to-string@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" + integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memory-fs@^0.4.0, memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromark-core-commonmark@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.0.tgz#b767fa7687c205c224175bf067796360a3830350" + integrity sha512-y9g7zymcKRBHM/aNBekstvs/Grpf+y4OEBULUTYvGZcusnp+JeOxmilJY4GMpo2/xY7iHQL9fjz5pD9pSAud9A== + dependencies: + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + parse-entities "^3.0.0" + +micromark-factory-destination@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz#fef1cb59ad4997c496f887b6977aa3034a5a277e" + integrity sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.0.0.tgz#b316ec479b474232973ff13b49b576f84a6f2cbb" + integrity sha512-XWEucVZb+qBCe2jmlOnWr6sWSY6NHx+wtpgYFsm4G+dufOf6tTQRRo0bdO7XSlGPu5fyjpJenth6Ksnc5Mwfww== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-space@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz#cebff49968f2b9616c0fcb239e96685cb9497633" + integrity sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.0.0.tgz#708f7a8044f34a898c0efdb4f55e4da66b537273" + integrity sha512-flvC7Gx0dWVWorXuBl09Cr3wB5FTuYec8pMGVySIp2ZlqTcIjN/lFohZcP0EG//krTptm34kozHk7aK/CleCfA== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz#e991e043ad376c1ba52f4e49858ce0794678621c" + integrity sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz#d97c54d5742a0d9611a68ca0cd4124331f264d86" + integrity sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz#5b40d83f3d53b84c4c6bce30ed4257e9a4c79d06" + integrity sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz#cbd7b447cb79ee6997dd274a46fc4eb806460a20" + integrity sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz#91418e1e74fb893e3628b8d496085639124ff3d5" + integrity sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz#dcc85f13b5bd93ff8d2868c3dba28039d490b946" + integrity sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz#c409ecf751a28aa9564b599db35640fccec4c068" + integrity sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg== + +micromark-util-html-tag-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz#75737e92fef50af0c6212bd309bc5cb8dbd489ed" + integrity sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g== + +micromark-util-normalize-identifier@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz#4a3539cb8db954bbec5203952bfe8cedadae7828" + integrity sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz#a7c363f49a0162e931960c44f3127ab58f031d88" + integrity sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz#27dc875397cd15102274c6c6da5585d34d4f12b2" + integrity sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.0.tgz#6f006fa719af92776c75a264daaede0fb3943c6a" + integrity sha512-EsnG2qscmcN5XhkqQBZni/4oQbLFjz9yk3ZM/P8a3YUjwV6+6On2wehr1ALx0MxK3+XXXLTzuBKHDFeDFYRdgQ== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-symbol@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz#91cdbcc9b2a827c0129a177d36241bcd3ccaa34d" + integrity sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ== + +micromark-util-types@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.0.tgz#0ebdfaea3fa7c15fc82b1e06ea1ef0152d0fb2f0" + integrity sha512-psf1WAaP1B77WpW4mBGDkTr+3RsPuDAgsvlP47GJzbH1jmjH8xjOx7Z6kp84L8oqHmy5pYO3Ev46odosZV+3AA== + +micromark@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.3.tgz#4c9f76fce8ba68eddf8730bb4fee2041d699d5b7" + integrity sha512-fWuHx+JKV4zA8WfCFor2DWP9XmsZkIiyWRGofr7P7IGfpRIlb7/C5wwusGsNyr1D8HI5arghZDG1Ikc0FBwS5Q== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + micromark-core-commonmark "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + parse-entities "^3.0.0" + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.0, micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.0.0, minimist@^1.2.5, minimist@~1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minimist@^1.2.0, minimist@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minipass@^2.6.0, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +nan@^2.12.1: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +needle@^2.2.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-fetch@^2.3.0, node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + +npm-packlist@^1.1.6: + version "1.4.4" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" + integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +null-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-4.0.0.tgz#8e491b253cd87341d82c0e84b66980d806dfbd04" + integrity sha512-vSoBF6M08/RHwc6r0gvB/xBJBtmbvvEkf6+IiadUCoNYchjxE8lwzCGFg0Qp2D25xPiJxUBh2iNWzlzGMILp7Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^2.6.5" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.entries@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" + integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + has "^1.0.3" + +object.fromentries@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + +optimist@~0.3.5: + version "0.3.7" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9" + integrity sha1-yQlBrVnkJzMokjB00s8ufLxuwNk= + dependencies: + wordwrap "~0.0.2" + +optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +ora@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" + integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== + dependencies: + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-spinners "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + +ora@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.3.tgz#752a1b7b4be4825546a7a3d59256fa523b6b6d05" + integrity sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg== + dependencies: + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" + integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.10" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0: + version "5.1.4" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" + integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-entities@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-3.0.0.tgz#9ed6d6569b6cfc95ade058d683ddef239dad60dc" + integrity sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ== + dependencies: + character-entities "^2.0.0" + character-entities-legacy "^2.0.0" + character-reference-invalid "^2.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + +parse-gitignore@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/parse-gitignore/-/parse-gitignore-0.4.0.tgz#abf702e4b900524fff7902b683862857b63f93fe" + integrity sha1-q/cC5LkAUk//eQK2g4YoV7Y/k/4= + dependencies: + array-unique "^0.3.2" + is-glob "^3.1.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + +parse-ms@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" + integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6, path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pathval@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +picomatch@^2.0.4, picomatch@^2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" + integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== + +picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pkg-conf@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-3.1.0.tgz#d9f9c75ea1bae0e77938cde045b276dac7cc69ae" + integrity sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ== + dependencies: + find-up "^3.0.0" + load-json-file "^5.2.0" + +pkg-config@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" + integrity sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q= + dependencies: + debug-log "^1.0.0" + find-root "^1.0.0" + xtend "^4.0.1" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +pre-flight@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pre-flight/-/pre-flight-1.1.1.tgz#482fb1649fb400616a86b2706b11591f5cc8402d" + integrity sha512-glqyc2Hh3K+sYeSsVs+HhjyUVf8j6xwuFej0yjYjRYfSnOK8P3Na9GznkoPn48fR+9kTOfkocYIWrtWktp4AqA== + dependencies: + colors "^1.1.2" + commander "^2.9.0" + semver "^5.1.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +pretty-ms@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-5.0.0.tgz#6133a8f55804b208e4728f6aa7bf01085e951e24" + integrity sha512-94VRYjL9k33RzfKiGokPBPpsmloBYSf5Ri+Pq19zlsEcUKFob+admeXr5eFDRuPjFmEOcjJvPGdillYOJyvZ7Q== + dependencies: + parse-ms "^2.1.0" + +pretty-ms@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-5.1.0.tgz#b906bdd1ec9e9799995c372e2b1c34f073f95384" + integrity sha512-4gaK1skD2gwscCfkswYQRmddUb2GJZtzDGRjHWadVHtK/DIKFufa12MvES6/xu1tVbUYeia5bmLcwJtZJQUqnw== + dependencies: + parse-ms "^2.1.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10, process@~0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0, progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +psl@^1.1.33: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +ramda@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.0.tgz#915dc29865c0800bf3f69b8fd6c279898b59de43" + integrity sha512-pVzZdDpWwWqEVVLshWUHjNwuVP7SfcmPraYuqocJp1yo2U1R7P+5QAfDhdItkuoGqIBnBYrtPp7rEPqDn9HlZA== + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7, rc@~1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-is@^16.8.1: + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" + integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +"readable-stream@1 || 2", readable-stream@^2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.2: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== + dependencies: + picomatch "^2.2.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpp@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" + integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== + +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +remark-cli@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-10.0.0.tgz#3b0e20f2ad3909f35c7a6fb3f721c82f6ff5beac" + integrity sha512-Yc5kLsJ5vgiQJl6xMLLJHqPac6OSAC5DOqKQrtmzJxSdJby2Jgr+OpIAkWQYwvbNHEspNagyoQnuwK2UCWg73g== + dependencies: + remark "^14.0.0" + unified-args "^9.0.0" + +remark-lint-blockquote-indentation@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-2.0.1.tgz#27347959acf42a6c3e401488d8210e973576b254" + integrity sha512-uJ9az/Ms9AapnkWpLSCJfawBfnBI2Tn1yUsPNqIFv6YM98ymetItUMyP6ng9NFPqDvTQBbiarulkgoEo0wcafQ== + dependencies: + mdast-util-to-string "^1.0.2" + pluralize "^8.0.0" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-code-block-style@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-2.0.1.tgz#448b0f2660acfcdfff2138d125ff5b1c1279c0cb" + integrity sha512-eRhmnColmSxJhO61GHZkvO67SpHDshVxs2j3+Zoc5Y1a4zQT2133ZAij04XKaBFfsVLjhbY/+YOWxgvtjx2nmA== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-definition-case@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-definition-case/-/remark-lint-definition-case-2.0.1.tgz#10340eb2f87acff41140d52ad7e5b40b47e6690a" + integrity sha512-M+XlThtQwEJLQnQb5Gi6xZdkw92rGp7m2ux58WMw/Qlcg02WgHR/O0OcHPe5VO5hMJrtI+cGG5T0svsCgRZd3w== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-definition-spacing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-definition-spacing/-/remark-lint-definition-spacing-2.0.1.tgz#97f01bf9bf77a7bdf8013b124b7157dd90b07c64" + integrity sha512-xK9DOQO5MudITD189VyUiMHBIKltW1oc55L7Fti3i9DedXoBG7Phm+V9Mm7IdWzCVkquZVgVk63xQdqzSQRrSQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-emphasis-marker@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-2.0.1.tgz#1d5ca2070d4798d16c23120726158157796dc317" + integrity sha512-7mpbAUrSnHiWRyGkbXRL5kfSKY9Cs8cdob7Fw+Z02/pufXMF4yRWaegJ5NTUu1RE+SKlF44wtWWjvcIoyY6/aw== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-fenced-code-flag@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-2.0.1.tgz#2cb3ddb1157082c45760c7d01ca08e13376aaf62" + integrity sha512-+COnWHlS/h02FMxoZWxNlZW3Y8M0cQQpmx3aNCbG7xkyMyCKsMLg9EmRvYHHIbxQCuF3JT0WWx5AySqlc7d+NA== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-fenced-code-marker@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-2.0.1.tgz#7bbeb0fb45b0818a3c8a2d232cf0c723ade58ecf" + integrity sha512-lujpjm04enn3ma6lITlttadld6eQ1OWAEcT3qZzvFHp+zPraC0yr0eXlvtDN/0UH8mrln/QmGiZp3i8IdbucZg== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-file-extension@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/remark-lint-file-extension/-/remark-lint-file-extension-1.0.3.tgz#a7fc78fbf041e513c618b2cca0f2160ee37daa13" + integrity sha512-P5gzsxKmuAVPN7Kq1W0f8Ss0cFKfu+OlezYJWXf+5qOa+9Y5GqHEUOobPnsmNFZrVMiM7JoqJN2C9ZjrUx3N6Q== + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-final-definition@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/remark-lint-final-definition/-/remark-lint-final-definition-2.1.0.tgz#b6e654c01ebcb1afc936d7b9cd74db8ec273e0bb" + integrity sha512-83K7n2icOHPfBzbR5Mr1o7cu8gOjD8FwJkFx/ly+rW+8SHfjCj4D3WOFGQ1xVdmHjfomBDXXDSNo2oiacADVXQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-hard-break-spaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-2.0.1.tgz#2149b55cda17604562d040c525a2a0d26aeb0f0f" + integrity sha512-Qfn/BMQFamHhtbfLrL8Co/dbYJFLRL4PGVXZ5wumkUO5f9FkZC2RsV+MD9lisvGTkJK0ZEJrVVeaPbUIFM0OAw== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-heading-increment@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-heading-increment/-/remark-lint-heading-increment-2.0.1.tgz#b578f251508a05d79bc2d1ae941e0620e23bf1d3" + integrity sha512-bYDRmv/lk3nuWXs2VSD1B4FneGT6v7a74FuVmb305hyEMmFSnneJvVgnOJxyKlbNlz12pq1IQ6MhlJBda/SFtQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-heading-style@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-2.0.1.tgz#8216fca67d97bbbeec8a19b6c71bfefc16549f72" + integrity sha512-IrFLNs0M5Vbn9qg51AYhGUfzgLAcDOjh2hFGMz3mx664dV6zLcNZOPSdJBBJq3JQR4gKpoXcNwN1+FFaIATj+A== + dependencies: + mdast-util-heading-style "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-link-title-style@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-link-title-style/-/remark-lint-link-title-style-2.0.1.tgz#51a595c69fcfa73a245a030dfaa3504938a1173a" + integrity sha512-+Q7Ew8qpOQzjqbDF6sUHmn9mKgje+m2Ho8Xz7cEnGIRaKJgtJzkn/dZqQM/az0gn3zaN6rOuwTwqw4EsT5EsIg== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + vfile-location "^3.0.0" + +remark-lint-list-item-content-indent@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-2.0.1.tgz#96387459440dcd61e522ab02bff138b32bfaa63a" + integrity sha512-OzUMqavxyptAdG7vWvBSMc9mLW9ZlTjbW4XGayzczd3KIr6Uwp3NEFXKx6MLtYIM/vwBqMrPQUrObOC7A2uBpQ== + dependencies: + pluralize "^8.0.0" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-list-item-indent@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-2.0.1.tgz#c6472514e17bc02136ca87936260407ada90bf8d" + integrity sha512-4IKbA9GA14Q9PzKSQI6KEHU/UGO36CSQEjaDIhmb9UOhyhuzz4vWhnSIsxyI73n9nl9GGRAMNUSGzr4pQUFwTA== + dependencies: + pluralize "^8.0.0" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-list-item-spacing@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-3.0.0.tgz#14c18fe8c0f19231edb5cf94abda748bb773110b" + integrity sha512-SRUVonwdN3GOSFb6oIYs4IfJxIVR+rD0nynkX66qEO49/qDDT1PPvkndis6Nyew5+t+2V/Db9vqllL6SWbnEtw== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-maximum-heading-length@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-2.0.1.tgz#56f240707a75b59bce3384ccc9da94548affa98f" + integrity sha512-1CjJ71YDqEpoOjUnc4wrwZV8ZGXWUIYRYeGoarAy3QKHepJL9M+zkdbOxZDfhc3tjVoDW/LWcgsW+DEpczgiMA== + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-maximum-line-length@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-2.0.3.tgz#d0d15410637d61b031a83d7c78022ec46d6c858a" + integrity sha512-zyWHBFh1oPAy+gkaVFXiTHYP2WwriIeBtaarDqkweytw0+qmuikjVMJTWbQ3+XfYBreD7KKDM9SI79nkp0/IZQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-no-auto-link-without-protocol@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-2.0.1.tgz#f75e5c24adb42385593e0d75ca39987edb70b6c4" + integrity sha512-TFcXxzucsfBb/5uMqGF1rQA+WJJqm1ZlYQXyvJEXigEZ8EAxsxZGPb/gOQARHl/y0vymAuYxMTaChavPKaBqpQ== + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-no-blockquote-without-marker@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-4.0.0.tgz#856fb64dd038fa8fc27928163caa24a30ff4d790" + integrity sha512-Y59fMqdygRVFLk1gpx2Qhhaw5IKOR9T38Wf7pjR07bEFBGUNfcoNVIFMd1TCJfCPQxUyJzzSqfZz/KT7KdUuiQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + vfile-location "^3.0.0" + +remark-lint-no-consecutive-blank-lines@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-3.0.0.tgz#c8fe11095b8f031a1406da273722bd4a9174bf41" + integrity sha512-kmzLlOLrapBKEngwYFTdCZDmeOaze6adFPB7G0EdymD9V1mpAlnneINuOshRLEDKK5fAhXKiZXxdGIaMPkiXrA== + dependencies: + pluralize "^8.0.0" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-no-duplicate-headings@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-2.0.1.tgz#4a4b70e029155ebcfc03d8b2358c427b69a87576" + integrity sha512-F6AP0FJcHIlkmq0pHX0J5EGvLA9LfhuYTvnNO8y3kvflHeRjFkDyt2foz/taXR8OcLQR51n/jIJiwrrSMbiauw== + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-stringify-position "^2.0.0" + unist-util-visit "^2.0.0" + +remark-lint-no-emphasis-as-heading@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-2.0.1.tgz#fcc064133fe00745943c334080fed822f72711ea" + integrity sha512-z86+yWtVivtuGIxIC4g9RuATbgZgOgyLcnaleonJ7/HdGTYssjJNyqCJweaWSLoaI0akBQdDwmtJahW5iuX3/g== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-no-file-name-articles@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-1.0.3.tgz#c712d06a24e24b0c4c3666cf3084a0052a2c2c17" + integrity sha512-YZDJDKUWZEmhrO6tHB0u0K0K2qJKxyg/kryr14OaRMvWLS62RgMn97sXPZ38XOSN7mOcCnl0k7/bClghJXx0sg== + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-no-file-name-consecutive-dashes@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-1.0.3.tgz#6a96ddf60e18dcdb004533733f3ccbfd8ab076ae" + integrity sha512-7f4vyXn/ca5lAguWWC3eu5hi8oZ7etX7aQlnTSgQZeslnJCbVJm6V6prFJKAzrqbBzMicUXr5pZLBDoXyTvHHw== + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-no-file-name-irregular-characters@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-1.0.3.tgz#6dcd8b51e00e10094585918cb8e7fc999df776c3" + integrity sha512-b4xIy1Yi8qZpM2vnMN+6gEujagPGxUBAs1judv6xJQngkl5d5zT8VQZsYsTGHku4NWHjjh3b7vK5mr0/yp4JSg== + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-no-file-name-mixed-case@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-1.0.3.tgz#0ebe5eedd0191507d27ad6ac5eed1778cb33c2de" + integrity sha512-d7rJ4c8CzDbEbGafw2lllOY8k7pvnsO77t8cV4PHFylwQ3hmCdTHLuDvK87G3DaWCeKclp0PMyamfOgJWKMkPA== + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-no-file-name-outer-dashes@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-1.0.4.tgz#c6e22a5cc64df4e12fc31712a927e8039854a666" + integrity sha512-+bZvvme2Bm3Vp5L2iKuvGHYVmHKrTkkRt8JqJPGepuhvBvT4Q7+CgfKyMtC/hIjyl+IcuJQ2H0qPRzdicjy1wQ== + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-no-heading-punctuation@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-2.0.1.tgz#face59f9a95c8aa278a8ee0c728bc44cd53ea9ed" + integrity sha512-lY/eF6GbMeGu4cSuxfGHyvaQQBIq/6T/o+HvAR5UfxSTxmxZFwbZneAI2lbeR1zPcqOU87NsZ5ZZzWVwdLpPBw== + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-no-inline-padding@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-3.0.0.tgz#14c2722bcddc648297a54298107a922171faf6eb" + integrity sha512-3s9uW3Yux9RFC0xV81MQX3bsYs+UY7nPnRuMxeIxgcVwxQ4E/mTJd9QjXUwBhU9kdPtJ5AalngdmOW2Tgar8Cg== + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-no-literal-urls@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-2.0.1.tgz#731908f9866c1880e6024dcee1269fb0f40335d6" + integrity sha512-IDdKtWOMuKVQIlb1CnsgBoyoTcXU3LppelDFAIZePbRPySVHklTtuK57kacgU5grc7gPM04bZV96eliGrRU7Iw== + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-no-multiple-toplevel-headings@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-2.0.1.tgz#3ff2b505adf720f4ff2ad2b1021f8cfd50ad8635" + integrity sha512-VKSItR6c+u3OsE5pUiSmNusERNyQS9Nnji26ezoQ1uvy06k3RypIjmzQqJ/hCkSiF+hoyC3ibtrrGT8gorzCmQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-stringify-position "^2.0.0" + unist-util-visit "^2.0.0" + +remark-lint-no-shell-dollars@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-2.0.2.tgz#b2c6c3ed95e5615f8e5f031c7d271a18dc17618e" + integrity sha512-zhkHZOuyaD3r/TUUkkVqW0OxsR9fnSrAnHIF63nfJoAAUezPOu8D1NBsni6rX8H2DqGbPYkoeWrNsTwiKP0yow== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-no-shortcut-reference-image@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-2.0.1.tgz#d174d12a57e8307caf6232f61a795bc1d64afeaa" + integrity sha512-2jcZBdnN6ecP7u87gkOVFrvICLXIU5OsdWbo160FvS/2v3qqqwF2e/n/e7D9Jd+KTq1mR1gEVVuTqkWWuh3cig== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-no-shortcut-reference-link@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-2.0.1.tgz#8f963f81036e45cfb7061b3639e9c6952308bc94" + integrity sha512-pTZbslG412rrwwGQkIboA8wpBvcjmGFmvugIA+UQR+GfFysKtJ5OZMPGJ98/9CYWjw9Z5m0/EktplZ5TjFjqwA== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^2.0.0" + +remark-lint-no-table-indentation@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-3.0.0.tgz#f3c3fc24375069ec8e510f43050600fb22436731" + integrity sha512-+l7GovI6T+3LhnTtz/SmSRyOb6Fxy6tmaObKHrwb/GAebI/4MhFS1LVo3vbiP/RpPYtyQoFbbuXI55hqBG4ibQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + vfile-location "^3.0.0" + +remark-lint-ordered-list-marker-style@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-2.0.1.tgz#183c31967e6f2ae8ef00effad03633f7fd00ffaa" + integrity sha512-Cnpw1Dn9CHn+wBjlyf4qhPciiJroFOEGmyfX008sQ8uGoPZsoBVIJx76usnHklojSONbpjEDcJCjnOvfAcWW1A== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-ordered-list-marker-value@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-2.0.1.tgz#0de343de2efb41f01eae9f0f7e7d30fe43db5595" + integrity sha512-blt9rS7OKxZ2NW8tqojELeyNEwPhhTJGVa+YpUkdEH+KnrdcD7Nzhnj6zfLWOx6jFNZk3jpq5nvLFAPteHaNKg== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-rule-style@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-2.0.1.tgz#f59bd82e75d3eaabd0eee1c8c0f5513372eb553c" + integrity sha512-hz4Ff9UdlYmtO6Czz99WJavCjqCer7Cav4VopXt+yVIikObw96G5bAuLYcVS7hvMUGqC9ZuM02/Y/iq9n8pkAg== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-strong-marker@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-2.0.1.tgz#1ad8f190c6ac0f8138b638965ccf3bcd18f6d4e4" + integrity sha512-8X2IsW1jZ5FmW9PLfQjkL0OVy/J3xdXLcZrG1GTeQKQ91BrPFyEZqUM2oM6Y4S6LGtxWer+neZkPZNroZoRPBQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-table-cell-padding@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-3.0.0.tgz#a769ba1999984ff5f90294fb6ccb8aead7e8a12f" + integrity sha512-sEKrbyFZPZpxI39R8/r+CwUrin9YtyRwVn0SQkNQEZWZcIpylK+bvoKIldvLIXQPob+ZxklL0GPVRzotQMwuWQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-table-pipe-alignment@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-2.0.1.tgz#12b7e4c54473d69c9866cb33439c718d09cffcc5" + integrity sha512-O89U7bp0ja6uQkT2uQrNB76GaPvFabrHiUGhqEUnld21yEdyj7rgS57kn84lZNSuuvN1Oor6bDyCwWQGzzpoOQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-table-pipes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-3.0.0.tgz#b30b055d594cae782667eec91c6c5b35928ab259" + integrity sha512-QPokSazEdl0Y8ayUV9UB0Ggn3Jos/RAQwIo0z1KDGnJlGDiF80Jc6iU9RgDNUOjlpQffSLIfSVxH5VVYF/K3uQ== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint-unordered-list-marker-style@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-2.0.1.tgz#e64692aa9594dbe7e945ae76ab2218949cd92477" + integrity sha512-8KIDJNDtgbymEvl3LkrXgdxPMTOndcux3BHhNGB2lU4UnxSpYeHsxcDgirbgU6dqCAfQfvMjPvfYk19QTF9WZA== + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +remark-lint@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-8.0.0.tgz#6e40894f4a39eaea31fc4dd45abfaba948bf9a09" + integrity sha512-ESI8qJQ/TIRjABDnqoFsTiZntu+FRifZ5fJ77yX63eIDijl/arvmDvT+tAf75/Nm5BFL4R2JFUtkHRGVjzYUsg== + dependencies: + remark-message-control "^6.0.0" + +remark-message-control@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/remark-message-control/-/remark-message-control-6.0.0.tgz#955b054b38c197c9f2e35b1d88a4912949db7fc5" + integrity sha512-k9bt7BYc3G7YBdmeAhvd3VavrPa/XlKWR3CyHjr4sLO9xJyly8WHHT3Sp+8HPR8lEUv+/sZaffL7IjMLV0f6BA== + dependencies: + mdast-comment-marker "^1.0.0" + unified-message-control "^3.0.0" + +remark-parse@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.0.tgz#65e2b2b34d8581d36b97f12a2926bb2126961cb4" + integrity sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + +remark-preset-lint-markdown-style-guide@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-4.0.0.tgz#976b6ffd7f37aa90868e081a69241fcde3a297d4" + integrity sha512-gczDlfZ28Fz0IN/oddy0AH4CiTu9S8d3pJWUsrnwFiafjhJjPGobGE1OD3bksi53md1Bp4K0fzo99YYfvB4Sjw== + dependencies: + remark-lint "^8.0.0" + remark-lint-blockquote-indentation "^2.0.0" + remark-lint-code-block-style "^2.0.0" + remark-lint-definition-case "^2.0.0" + remark-lint-definition-spacing "^2.0.0" + remark-lint-emphasis-marker "^2.0.0" + remark-lint-fenced-code-flag "^2.0.0" + remark-lint-fenced-code-marker "^2.0.0" + remark-lint-file-extension "^1.0.0" + remark-lint-final-definition "^2.0.0" + remark-lint-hard-break-spaces "^2.0.0" + remark-lint-heading-increment "^2.0.0" + remark-lint-heading-style "^2.0.0" + remark-lint-link-title-style "^2.0.0" + remark-lint-list-item-content-indent "^2.0.0" + remark-lint-list-item-indent "^2.0.0" + remark-lint-list-item-spacing "^3.0.0" + remark-lint-maximum-heading-length "^2.0.0" + remark-lint-maximum-line-length "^2.0.0" + remark-lint-no-auto-link-without-protocol "^2.0.0" + remark-lint-no-blockquote-without-marker "^4.0.0" + remark-lint-no-consecutive-blank-lines "^3.0.0" + remark-lint-no-duplicate-headings "^2.0.0" + remark-lint-no-emphasis-as-heading "^2.0.0" + remark-lint-no-file-name-articles "^1.0.0" + remark-lint-no-file-name-consecutive-dashes "^1.0.0" + remark-lint-no-file-name-irregular-characters "^1.0.0" + remark-lint-no-file-name-mixed-case "^1.0.0" + remark-lint-no-file-name-outer-dashes "^1.0.0" + remark-lint-no-heading-punctuation "^2.0.0" + remark-lint-no-inline-padding "^3.0.0" + remark-lint-no-literal-urls "^2.0.0" + remark-lint-no-multiple-toplevel-headings "^2.0.0" + remark-lint-no-shell-dollars "^2.0.0" + remark-lint-no-shortcut-reference-image "^2.0.0" + remark-lint-no-shortcut-reference-link "^2.0.0" + remark-lint-no-table-indentation "^3.0.0" + remark-lint-ordered-list-marker-style "^2.0.0" + remark-lint-ordered-list-marker-value "^2.0.0" + remark-lint-rule-style "^2.0.0" + remark-lint-strong-marker "^2.0.0" + remark-lint-table-cell-padding "^3.0.0" + remark-lint-table-pipe-alignment "^2.0.0" + remark-lint-table-pipes "^3.0.0" + remark-lint-unordered-list-marker-style "^2.0.0" + +remark-stringify@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.0.tgz#7f23659d92b2d5da489e3c858656d7bbe045f161" + integrity sha512-3LAQqJ/qiUxkWc7fUcVuB7RtIT38rvmxfmJG8z1TiE/D8zi3JGQ2tTcTJu9Tptdpb7gFwU0whRi5q1FbFOb9yA== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.0.0" + unified "^10.0.0" + +remark@^14.0.0: + version "14.0.1" + resolved "https://registry.yarnpkg.com/remark/-/remark-14.0.1.tgz#a97280d4f2a3010a7d81e6c292a310dcd5554d80" + integrity sha512-7zLG3u8EUjOGuaAS9gUNJPD2j+SqDqAFHv2g6WMpE5CU9rZ6e3IKDM12KHZ3x+YNje+NMAuN55yx8S5msGSx7Q== + dependencies: + "@types/mdast" "^3.0.0" + remark-parse "^10.0.0" + remark-stringify "^10.0.0" + unified "^10.0.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.0.0, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requireindex@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.1.0.tgz#e5404b81557ef75db6e49c5a72004893fe03e162" + integrity sha1-5UBLgVV+91225JxacgBIk/4D4WI= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.1.6: + version "1.21.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" + integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== + dependencies: + is-core-module "^2.8.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^1.10.0: + version "1.11.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" + integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== + dependencies: + path-parse "^1.0.6" + +resolve@^1.10.1, resolve@^1.11.0, resolve@^1.13.1, resolve@^1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@~2.2.6: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI= + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.2, run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rxjs@^6.5.5, rxjs@^6.6.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz#af2901eedf02e3a83ffa7f886240ff9018bbec84" + integrity sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= + +sax@>=0.6.0, sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.5: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.6.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== + +semver@^5.1.0, semver@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.2.0.tgz#4d813d9590aaf8a9192693d6c85b9344de5901db" + integrity sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A== + +semver@^6.1.0, semver@^6.1.2: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.0.0: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +semver@^7.2.1, semver@^7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shelljs@^0.8.1: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shx@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/shx/-/shx-0.3.2.tgz#40501ce14eb5e0cbcac7ddbd4b325563aad8c123" + integrity sha512-aS0mWtW3T2sHAenrSrip2XGv39O9dXIFUqxAEWHEOS1ePtGIBavdPJY1kE2IHl14V/4iCbUiNDPGdyYTtmhSoA== + dependencies: + es6-object-assign "^1.0.3" + minimist "^1.2.0" + shelljs "^0.8.1" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +sliced@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" + integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E= + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.6: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@~0.5.12: + version "0.5.12" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" + integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +ssri@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== + dependencies: + figgy-pudding "^3.5.1" + +standard-engine@^12.0.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-12.1.0.tgz#b13dbae583de54c06805207b991ef48a582c0e62" + integrity sha512-DVJnWM1CGkag4ucFLGdiYWa5/kJURPONmMmk17p8FT5NE4UnPZB1vxWnXnRo2sPSL78pWJG8xEM+1Tu19z0deg== + dependencies: + deglob "^4.0.1" + get-stdin "^7.0.0" + minimist "^1.2.5" + pkg-conf "^3.1.0" + +standard-markdown@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/standard-markdown/-/standard-markdown-6.0.0.tgz#bb7519a86275900eaa7a951d98937723c7010ed6" + integrity sha512-9lQs4ZfGukyalFVputnN4IxfbMIAECjf+BqC4gvY8eBUvYcotYIWj4MZyMiXBkN/OJwmMi5jVSnzIexKZQqQYA== + dependencies: + commander "^4.1.0" + globby "^11.0.0" + lodash.flatten "^4.4.0" + lodash.range "^3.2.0" + ora "^4.0.3" + standard "^14.3.1" + +standard@^14.3.1: + version "14.3.4" + resolved "https://registry.yarnpkg.com/standard/-/standard-14.3.4.tgz#748e80e8cd7b535844a85a12f337755a7e3a0f6e" + integrity sha512-+lpOkFssMkljJ6eaILmqxHQ2n4csuEABmcubLTb9almFi1ElDzXb1819fjf/5ygSyePCq4kU2wMdb2fBfb9P9Q== + dependencies: + eslint "~6.8.0" + eslint-config-standard "14.1.1" + eslint-config-standard-jsx "8.1.0" + eslint-plugin-import "~2.18.0" + eslint-plugin-node "~10.0.0" + eslint-plugin-promise "~4.2.1" + eslint-plugin-react "~7.14.2" + eslint-plugin-standard "~4.0.0" + standard-engine "^12.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-chain@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.3.tgz#44cfa21ab673e53a3f1691b3d1665c3aceb1983b" + integrity sha512-w+WgmCZ6BItPAD3/4HD1eDiDHRLhjSSyIV+F0kcmmRyz8Uv9hvQF22KyaiAUmOlmX3pJ6F95h+C191UbS8Oe/g== + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-json@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.7.1.tgz#ec7e414c2eba456c89a4b4e5223794eabc3860c4" + integrity sha512-I7g0IDqvdJXbJ279/D3ZoTx0VMhmKnEF7u38CffeWdF8bfpMPsLo+5fWnkNjO2GU/JjWaRjdH+zmH03q+XGXFw== + dependencies: + stream-chain "^2.2.3" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + +string-argv@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string-width@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.0.0.tgz#19191f152f937b96f4ec54ba0986a5656660c5a2" + integrity sha512-zwXcRmLUdiWhMPrHz6EXITuyTgcEnUqDzspTkCLhQovxywWz6NP9VHgqfVg20V/1mUg0B95AKbXxNT+ALRmqCw== + dependencies: + emoji-regex "^9.2.2" + is-fullwidth-code-point "^4.0.0" + strip-ansi "^7.0.0" + +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string_decoder@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== + dependencies: + safe-buffer "~5.1.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.0.tgz#1dc49b980c3a4100366617adac59327eefdefcb0" + integrity sha512-UhDTSnGF1dc0DRbUqr1aXwNoY3RgVkSWG8BrpnuFIxhP57IqbS7IRta2Gfiavds4yCxc5+fEAVVOgBZWnYkvzg== + dependencies: + ansi-regex "^6.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.0.1, strip-json-comments@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" + integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +supports-color@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.0.2.tgz#50f082888e4b0a4e2ccd2d0b4f9ef4efcd332485" + integrity sha512-ii6tc8ImGFrgMPYq7RVAMKkhPo9vk8uA+D3oKbJq/3Pk2YSMv1+9dUAesa9UxMbxBTvxwKTQffBahNVNxEvM8Q== + dependencies: + has-flag "^5.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tap-parser@~1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-1.2.2.tgz#5e2f6970611f079c7cf857de1dc7aa1b480de7a5" + integrity sha1-Xi9pcGEfB5x8+FfeHceqG0gN56U= + dependencies: + events-to-array "^1.0.1" + inherits "~2.0.1" + js-yaml "^3.2.7" + optionalDependencies: + readable-stream "^2" + +tap-xunit@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tap-xunit/-/tap-xunit-2.4.1.tgz#9823797b676ae5017f4e380bd70abb893b8e120e" + integrity sha512-qcZStDtjjYjMKAo7QNiCtOW256g3tuSyCSe5kNJniG1Q2oeOExJq4vm8CwboHZURpkXAHvtqMl4TVL7mcbMVVA== + dependencies: + duplexer "~0.1.1" + minimist "~1.2.0" + tap-parser "~1.2.2" + through2 "~2.0.0" + xmlbuilder "~4.2.0" + xtend "~4.0.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar@^4, tar@^4.4.7: + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + dependencies: + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" + +temp@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" + integrity sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k= + dependencies: + os-tmpdir "^1.0.0" + rimraf "~2.2.6" + +terser-webpack-plugin@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" + integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^2.1.2" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2: + version "4.6.7" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.7.tgz#478d7f9394ec1907f0e488c5f6a6a9a2bad55e72" + integrity sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +through2@^2.0.0, through2@~2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timers-browserify@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= + dependencies: + process "~0.11.0" + +timers-browserify@^2.0.4: + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== + dependencies: + setimmediate "^1.0.4" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +to-vfile@^7.0.0: + version "7.2.1" + resolved "https://registry.yarnpkg.com/to-vfile/-/to-vfile-7.2.1.tgz#fe42892024f724177ba81076f98ee74b0888c293" + integrity sha512-biljADNq2n+AZn/zX+/87zStnIqctKr/q5OaOD8+qSKINokUGPbWBShvxa1iLUgHz6dGGjVnQPNoFRtVBzMkVg== + dependencies: + is-buffer "^2.0.0" + vfile "^5.0.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + +trough@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.0.2.tgz#94a3aa9d5ce379fc561f6244905b3f36b7458d96" + integrity sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w== + +ts-loader@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.0.2.tgz#ee73ca9350f745799396fff8578ba29b1e95616b" + integrity sha512-oYT7wOTUawYXQ8XIDsRhziyW0KUEV38jISYlE+9adP6tDtG+O5GkRe4QKQXrHVH4mJJ88DysvEtvGP65wMLlhg== + dependencies: + chalk "^2.3.0" + enhanced-resolve "^4.0.0" + loader-utils "^1.0.2" + micromatch "^4.0.0" + semver "^6.0.0" + +ts-node@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-6.2.0.tgz#65a0ae2acce319ea4fd7ac8d7c9f1f90c5da6baf" + integrity sha512-ZNT+OEGfUNVMGkpIaDJJ44Zq3Yr0bkU/ugN1PHbU+/01Z7UV1fsELRiTx1KuQNvQ1A3pGh3y25iYF6jXgxV21A== + dependencies: + arrify "^1.0.0" + buffer-from "^1.1.0" + diff "^3.1.0" + make-error "^1.1.1" + minimist "^1.2.0" + mkdirp "^0.5.1" + source-map-support "^0.5.6" + yn "^2.0.0" + +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@^1.8.1, tslib@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tslib@^2.0.0, tslib@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@^4.5.5: + version "4.5.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" + integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +unified-args@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/unified-args/-/unified-args-9.0.2.tgz#0c14f555e73ee29c23f9a567942e29069f56e5a2" + integrity sha512-qSqryjoqfJSII4E4Z2Jx7MhXX2MuUIn6DsrlmL8UnWFdGtrWvEtvm7Rx5fKT5TPUz7q/Fb4oxwIHLCttvAuRLQ== + dependencies: + "@types/text-table" "^0.2.0" + camelcase "^6.0.0" + chalk "^4.0.0" + chokidar "^3.0.0" + fault "^2.0.0" + json5 "^2.0.0" + minimist "^1.0.0" + text-table "^0.2.0" + unified-engine "^9.0.0" + +unified-engine@^9.0.0: + version "9.0.3" + resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-9.0.3.tgz#c1d57e67d94f234296cbfa9364f43e0696dae016" + integrity sha512-SgzREcCM2IpUy3JMFUcPRZQ2Py6IwvJ2KIrg2AiI7LnGge6E6OPFWpcabHrEXG0IvO2OI3afiD9DOcQvvZfXDQ== + dependencies: + "@types/concat-stream" "^1.0.0" + "@types/debug" "^4.0.0" + "@types/is-empty" "^1.0.0" + "@types/js-yaml" "^4.0.0" + "@types/node" "^16.0.0" + "@types/unist" "^2.0.0" + concat-stream "^2.0.0" + debug "^4.0.0" + fault "^2.0.0" + glob "^7.0.0" + ignore "^5.0.0" + is-buffer "^2.0.0" + is-empty "^1.0.0" + is-plain-obj "^4.0.0" + js-yaml "^4.0.0" + load-plugin "^4.0.0" + parse-json "^5.0.0" + to-vfile "^7.0.0" + trough "^2.0.0" + unist-util-inspect "^7.0.0" + vfile-message "^3.0.0" + vfile-reporter "^7.0.0" + vfile-statistics "^2.0.0" + +unified-lint-rule@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-1.0.4.tgz#be432d316db7ad801166041727b023ba18963e24" + integrity sha512-q9wY6S+d38xRAuWQVOMjBQYi7zGyKkY23ciNafB8JFVmDroyKjtytXHCg94JnhBCXrNqpfojo3+8D+gmF4zxJQ== + dependencies: + wrapped "^1.0.1" + +unified-message-control@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unified-message-control/-/unified-message-control-3.0.3.tgz#d08c4564092a507668de71451a33c0d80e734bbd" + integrity sha512-oY5z2n8ugjpNHXOmcgrw0pQeJzavHS0VjPBP21tOcm7rc2C+5Q+kW9j5+gqtf8vfW/8sabbsK5+P+9QPwwEHDA== + dependencies: + unist-util-visit "^2.0.0" + vfile-location "^3.0.0" + +unified@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.0.tgz#4e65eb38fc2448b1c5ee573a472340f52b9346fe" + integrity sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unist-util-generated@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" + integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + +unist-util-generated@^1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.4.tgz#2261c033d9fc23fae41872cdb7663746e972c1a7" + integrity sha512-SA7Sys3h3X4AlVnxHdvN/qYdr4R38HzihoEVY2Q2BZu8NHWDnw5OGcC/tXWjQfd4iG+M6qRFNIRGqJmp2ez4Ww== + +unist-util-inspect@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/unist-util-inspect/-/unist-util-inspect-7.0.0.tgz#98426f0219e24d011a27e32539be0693d9eb973e" + integrity sha512-2Utgv78I7PUu461Y9cdo+IUiiKSKpDV5CE/XD6vTj849a3xlpDAScvSJ6cQmtFBGgAmCn2wR7jLuXhpg1XLlJw== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.0.3.tgz#fff942b879538b242096c148153826664b1ca373" + integrity sha512-28EpCBYFvnMeq9y/4w6pbnFmCUfzlsc41NJui5c51hOFjBA1fejcwc+5W4z2+0ECVbScG3dURS3JTVqwenzqZw== + +unist-util-stringify-position@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.1.tgz#de2a2bc8d3febfa606652673a91455b6a36fb9f3" + integrity sha512-Zqlf6+FRI39Bah8Q6ZnNGrEHUhwJOkHde2MHVk96lLyftfJJckaPslKgzhVcviXj8KcE9UJM9F+a4JEiBUTYgA== + dependencies: + "@types/unist" "^2.0.2" + +unist-util-stringify-position@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz#d517d2883d74d0daa0b565adc3d10a02b4a8cde9" + integrity sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" + integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + +universal-github-app-jwt@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/universal-github-app-jwt/-/universal-github-app-jwt-1.1.0.tgz#0abaa876101cdf1d3e4c546be2768841c0c1b514" + integrity sha512-3b+ocAjjz4JTyqaOT+NNBd5BtTuvJTxWElIoeHSVelUV9J3Jp7avmQTdLKCaoqi/5Ox2o/q+VK19TJ233rVXVQ== + dependencies: + "@types/jsonwebtoken" "^8.3.3" + jsonwebtoken "^8.5.1" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + +universalify@^0.1.0, universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= + +upath@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" + integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + integrity sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vfile-location@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" + integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== + +vfile-message@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.0.1.tgz#b9bcf87cb5525e61777e0c6df07e816a577588a3" + integrity sha512-gYmSHcZZUEtYpTmaWaFJwsuUD70/rTY4v09COp8TGtOkix6gGxb/a8iTQByIY9ciTk9GwAwIXd/J9OPfM4Bvaw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + +vfile-reporter@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-7.0.1.tgz#759bfebb995f3dc8c644284cb88ac4b310ebd168" + integrity sha512-pof+cQSJCUNmHG6zoBOJfErb6syIWHWM14CwKjsugCixxl4CZdrgzgxwLBW8lIB6czkzX0Agnnhj33YpKyLvmA== + dependencies: + "@types/repeat-string" "^1.0.0" + "@types/supports-color" "^8.0.0" + repeat-string "^1.0.0" + string-width "^5.0.0" + supports-color "^9.0.0" + unist-util-stringify-position "^3.0.0" + vfile-sort "^3.0.0" + vfile-statistics "^2.0.0" + +vfile-sort@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-3.0.0.tgz#ee13d3eaac0446200a2047a3b45d78fad6b106e6" + integrity sha512-fJNctnuMi3l4ikTVcKpxTbzHeCgvDhnI44amA3NVDvA6rTC6oKCFpCVyT5n2fFMr3ebfr+WVQZedOCd73rzSxg== + dependencies: + vfile-message "^3.0.0" + +vfile-statistics@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-2.0.0.tgz#f04ee3e3c666809a3c10c06021becd41ea9c8037" + integrity sha512-foOWtcnJhKN9M2+20AOTlWi2dxNfAoeNIoxD5GXcO182UJyId4QrXa41fWrgcfV3FWTjdEDy3I4cpLVcQscIMA== + dependencies: + vfile-message "^3.0.0" + +vfile@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.0.2.tgz#57773d1d91478b027632c23afab58ec3590344f0" + integrity sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + +vm-browserify@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== + +walk-sync@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.3.4.tgz#cf78486cc567d3a96b5b2237c6108017a5ffb9a4" + integrity sha512-ttGcuHA/OBnN2pcM6johpYlEms7XpO5/fyKIr48541xXedan4roO8cS1Q2S/zbbjGH/BarYDAMeS2Mi9HE5Tig== + dependencies: + ensure-posix-path "^1.0.0" + matcher-collection "^1.0.0" + +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.6.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" + integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.0" + watchpack-chokidar2 "^2.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +webpack-cli@^3.3.12: + version "3.3.12" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" + integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== + dependencies: + chalk "^2.4.2" + cross-spawn "^6.0.5" + enhanced-resolve "^4.1.1" + findup-sync "^3.0.0" + global-modules "^2.0.0" + import-local "^2.0.0" + interpret "^1.4.0" + loader-utils "^1.4.0" + supports-color "^6.1.0" + v8-compile-cache "^2.1.1" + yargs "^13.3.2" + +webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^4.43.0: + version "4.43.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" + integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.6.1" + webpack-sources "^1.4.1" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.14, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrapped@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wrapped/-/wrapped-1.0.1.tgz#c783d9d807b273e9b01e851680a938c87c907242" + integrity sha1-x4PZ2Aeyc+mwHoUWgKk4yHyQckI= + dependencies: + co "3.1.0" + sliced "^1.0.1" + +wrapper-webpack-plugin@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrapper-webpack-plugin/-/wrapper-webpack-plugin-2.1.0.tgz#2b5d80f46af84c9eeb707d08796a115e233adeac" + integrity sha512-e+2FhSYGCxhDq3PcUw5mRhH+8vcYa+9d9AuLChJUZ9ZbUPhQOHZ/O2dnN98iTqeUuvrzSSOv13+x/NhrAm5JEg== + dependencies: + webpack-sources "^1.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +xml2js@0.4.19: + version "0.4.19" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== + dependencies: + sax ">=0.6.0" + xmlbuilder "~9.0.1" + +xml2js@^0.4.19: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xmlbuilder@~4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" + integrity sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU= + dependencies: + lodash "^4.0.0" + +xmlbuilder@~9.0.1: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.7.2: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" + integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= + +zwitch@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.2.tgz#91f8d0e901ffa3d66599756dde7f57b17c95dce1" + integrity sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA== |