Date: Wednesday, May 26, 2021 @ 02:15:35 Author: tensor5 Revision: 946431
archrelease: copy trunk to community-x86_64 Added: electron/repos/community-x86_64/PKGBUILD (from rev 946430, electron/trunk/PKGBUILD) electron/repos/community-x86_64/add-dependency-on-opus-in-webcodecs.patch (from rev 946430, electron/trunk/add-dependency-on-opus-in-webcodecs.patch) electron/repos/community-x86_64/chromium-fix-libva-redef.patch (from rev 946430, electron/trunk/chromium-fix-libva-redef.patch) electron/repos/community-x86_64/chromium-glibc-2.33.patch (from rev 946430, electron/trunk/chromium-glibc-2.33.patch) electron/repos/community-x86_64/default_app-icon.patch (from rev 946430, electron/trunk/default_app-icon.patch) electron/repos/community-x86_64/electron-launcher.sh (from rev 946430, electron/trunk/electron-launcher.sh) electron/repos/community-x86_64/electron.desktop (from rev 946430, electron/trunk/electron.desktop) electron/repos/community-x86_64/sql-make-VirtualCursor-standard-layout-type.patch (from rev 946430, electron/trunk/sql-make-VirtualCursor-standard-layout-type.patch) electron/repos/community-x86_64/use-system-libraries-in-node.patch (from rev 946430, electron/trunk/use-system-libraries-in-node.patch) Deleted: electron/repos/community-x86_64/PKGBUILD electron/repos/community-x86_64/add-dependency-on-opus-in-webcodecs.patch electron/repos/community-x86_64/chromium-fix-libva-redef.patch electron/repos/community-x86_64/chromium-glibc-2.33.patch electron/repos/community-x86_64/default_app-icon.patch electron/repos/community-x86_64/electron-launcher.sh electron/repos/community-x86_64/electron.desktop electron/repos/community-x86_64/use-system-libraries-in-node.patch ---------------------------------------------------+ PKGBUILD | 441 ++++++++++---------- add-dependency-on-opus-in-webcodecs.patch | 86 +-- chromium-fix-libva-redef.patch | 172 +++---- chromium-glibc-2.33.patch | 288 ++++++------- default_app-icon.patch | 42 - electron-launcher.sh | 40 - electron.desktop | 14 sql-make-VirtualCursor-standard-layout-type.patch | 238 ++++++++++ use-system-libraries-in-node.patch | 104 ++-- 9 files changed, 833 insertions(+), 592 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2021-05-26 02:14:26 UTC (rev 946430) +++ PKGBUILD 2021-05-26 02:15:35 UTC (rev 946431) @@ -1,219 +0,0 @@ -# Maintainer: Nicola Squartini <tens...@gmail.com> - -pkgname=electron -pkgver=12.0.7 -_commit=8d55658bfa8b5983e1a90ad079c2e2ac91ee7af0 -_chromiumver=89.0.4389.128 -_gcc_patchset=7 -pkgrel=1 -pkgdesc='Build cross platform desktop apps with web technologies' -arch=('x86_64') -url='https://electronjs.org/' -license=('MIT' 'custom') -depends=('c-ares' 'ffmpeg' 'gtk3' 'libevent' 'libnghttp2' 'libxslt' 'minizip' - 'nss' 're2' 'snappy') -makedepends=('clang' 'git' 'gn-m87' 'gperf' 'harfbuzz-icu' 'http-parser' - 'java-runtime-headless' 'jsoncpp' 'libnotify' 'lld' 'llvm' 'ninja' - 'npm' 'pciutils' 'pipewire' 'python2' 'wget' 'yarn') -optdepends=('kde-cli-tools: file deletion support (kioclient5)' - 'libappindicator-gtk3: StatusNotifierItem support' - 'pipewire: WebRTC desktop sharing under Wayland' - 'trash-cli: file deletion support (trash-put)' - "xdg-utils: open URLs with desktop's default (xdg-email, xdg-open)") -source=('git+https://github.com/electron/electron.git' - 'git+https://chromium.googlesource.com/chromium/tools/depot_tools.git' - "https://github.com/stha09/chromium-patches/releases/download/chromium-${_chromiumver%%.*}-patchset-${_gcc_patchset}/chromium-${_chromiumver%%.*}-patchset-${_gcc_patchset}.tar.xz" - "${pkgname}-launcher.sh" - "${pkgname}.desktop" - 'default_app-icon.patch' - 'use-system-libraries-in-node.patch' - 'add-dependency-on-opus-in-webcodecs.patch' - 'chromium-fix-libva-redef.patch' - 'chromium-glibc-2.33.patch' - ) -sha256sums=('SKIP' - 'SKIP' - 'f8b1558f6c87b33423da854d42f0f69d47885a96d6bf6ce7f26373e93d47442f' - '20c50e217fcb20f72fd2b465ad19659abe51feff4814515767a3065a009d58a5' - '5270db01f3f8aaa5137dec275a02caa832b7f2e37942e068cba8d28b3a29df39' - 'dd2d248831dd4944d385ebf008426e66efe61d6fdf66f8932c963a12167947b4' - 'f16103daf05713dea632b5f01e45db20ff12d1770a6539b4e8d3957a0242dd54' - 'b86b11de8db438c47f0a84c7956740f648d21035f4ee46bfbd50c3348d369121' - 'de9eb3612d44616a500c2eccdffac814eb90ad9a868cc1030d17fc6783d544e2' - '2fccecdcd4509d4c36af873988ca9dbcba7fdb95122894a9fdf502c33a1d7a4b' - ) - -_system_libs=('ffmpeg' - 'flac' - 'fontconfig' - 'freetype' - 'harfbuzz-ng' - 'icu' - 'libdrm' - 'libevent' - 'libjpeg' - 'libpng' -# 'libvpx' - 'libwebp' - 'libxml' - 'libxslt' -# 'openh264' - 'opus' - 're2' - 'snappy' - 'zlib' - ) - -prepare() { - mkdir -p "${srcdir}"/python2-path - ln -sf /usr/bin/python2 "${srcdir}/python2-path/python" - export PATH="${srcdir}/python2-path:${PATH}:${srcdir}/depot_tools" - - echo "Fetching chromium..." - git clone --branch=${_chromiumver} --depth=1 \ - https://chromium.googlesource.com/chromium/src.git - - echo "solutions = [ - { - \"name\": \"src/electron\", - \"url\": \"file://${srcdir}/electron@${_commit}\", - \"deps_file\": \"DEPS\", - \"managed\": False, - \"custom_deps\": { - \"src\": None, - }, - \"custom_vars\": {}, - }, -]" > .gclient - - python2 "${srcdir}/depot_tools/gclient.py" sync \ - --with_branch_heads \ - --with_tags \ - --nohooks - - sed -e "s/'am'/'apply'/" -i src/electron/script/lib/git.py - - echo "Running hooks..." - # python2 "${srcdir}/depot_tools/gclient.py" runhooks - python2 src/build/landmines.py - python2 src/build/util/lastchange.py -o src/build/util/LASTCHANGE - python2 src/build/util/lastchange.py -m GPU_LISTS_VERSION \ - --revision-id-only --header src/gpu/config/gpu_lists_version.h - python2 src/build/util/lastchange.py -m SKIA_COMMIT_HASH \ - -s src/third_party/skia --header src/skia/ext/skia_commit_hash.h - # Create sysmlink to system clang-format - ln -s /usr/bin/clang-format src/buildtools/linux64 - # Create sysmlink to system Node.js - mkdir -p src/third_party/node/linux/node-linux-x64/bin - ln -sf /usr/bin/node src/third_party/node/linux/node-linux-x64/bin - #python2 src/third_party/depot_tools/download_from_google_storage.py \ - # --no_resume --extract --no_auth --bucket chromium-nodejs \ - # -s src/third_party/node/node_modules.tar.gz.sha1 - cd src/third_party/node - npm ci - cd ../../.. - vpython src/tools/download_optimization_profile.py \ - --newest_state=src/chrome/android/profiles/newest.txt \ - --local_state=src/chrome/android/profiles/local.txt \ - --output_name=src/chrome/android/profiles/afdo.prof \ - --gs_url_base=chromeos-prebuilt/afdo-job/llvm - #vpython src/tools/update_pgo_profiles.py \ - # --target=linux \ - # update \ - # --gs-url-base=chromium-optimization-profiles/pgo_profiles - python2 src/electron/script/apply_all_patches.py \ - src/electron/patches/config.json - cd src/electron - yarn install --frozen-lockfile - cd .. - - echo "Applying local patches..." - # Fixes for building with libstdc++ instead of libc++ - patch -Np1 -i ../patches/chromium-89-quiche-dcheck.patch - patch -Np1 -i ../patches/chromium-89-AXTreeSerializer-include.patch - - patch -Np1 -i ../add-dependency-on-opus-in-webcodecs.patch - patch -Np1 -i ../chromium-fix-libva-redef.patch - patch -Np1 -i ../chromium-glibc-2.33.patch - patch -Np1 -i ../use-system-libraries-in-node.patch - patch -Np1 -i ../default_app-icon.patch # Icon from .desktop file - - echo "Patching Chromium for using system libraries..." - sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ - tools/generate_shim_headers/generate_shim_headers.py - for lib in $(printf "%s\n" "${_system_libs[@]}" | sed 's/^libjpeg$/&_turbo/'); do - third_party_dir="third_party/${lib}" - if [ ! -d ${third_party_dir} ]; then - third_party_dir="base/${third_party_dir}" - fi - find ${third_party_dir} -type f \ - \! -path "${third_party_dir}/chromium/*" \ - \! -path "${third_party_dir}/google/*" \ - \! -path 'third_party/harfbuzz-ng/utils/hb_scoped.h' \ - \! -regex '.*\.\(gn\|gni\|isolate\)' \ - -delete - done - python2 build/linux/unbundle/replace_gn_files.py \ - --system-libraries \ - "${_system_libs[@]}" -} - -build() { - export CC=clang - export CXX=clang++ - export AR=ar - export NM=nm - - # Do not warn about unknown warning options - CFLAGS+=' -Wno-unknown-warning-option' - CXXFLAGS+=' -Wno-unknown-warning-option' - - cd src - export CHROMIUM_BUILDTOOLS_PATH="${PWD}/buildtools" - GN_EXTRA_ARGS=' - blink_symbol_level = 0 - chrome_pgo_phase = 0 - clang_use_chrome_plugins = false - custom_toolchain = "//build/toolchain/linux/unbundle:default" - host_toolchain = "//build/toolchain/linux/unbundle:default" - icu_use_data_file = false - is_component_ffmpeg = false - link_pulseaudio = true - rtc_pipewire_version = "0.3" - rtc_use_pipewire = true - treat_warnings_as_errors = false - use_custom_libcxx = false - use_gnome_keyring = false - use_sysroot = false - ' - gn-m87 gen out/Release \ - --args="import(\"//electron/build/args/release.gn\") ${GN_EXTRA_ARGS}" - ninja -C out/Release electron - # Strip before zip to avoid - # zipfile.LargeZipFile: Filesize would require ZIP64 extensions - strip -s out/Release/electron - ninja -C out/Release electron_dist_zip - # ninja -C out/Release third_party/electron_node:headers -} - -package() { - install -dm755 "${pkgdir}/usr/lib/${pkgname}" - bsdtar -xf src/out/Release/dist.zip -C "${pkgdir}/usr/lib/${pkgname}" - - chmod u+s "${pkgdir}/usr/lib/${pkgname}/chrome-sandbox" - - install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}" - for l in "${pkgdir}/usr/lib/${pkgname}"/{LICENSE,LICENSES.chromium.html}; do - ln -s \ - "$(realpath --relative-to="${pkgdir}/usr/share/licenses/${pkgname}" "${l}")" \ - "${pkgdir}/usr/share/licenses/${pkgname}" - done - - install -Dm755 "${srcdir}/${pkgname}-launcher.sh" \ - "${pkgdir}/usr/bin/${pkgname}" - - # Install .desktop and icon file (see default_app-icon.patch) - install -Dm644 -t "${pkgdir}/usr/share/applications" "${pkgname}.desktop" - install -Dm644 src/electron/default_app/icon.png \ - "${pkgdir}/usr/share/pixmaps/${pkgname}.png" # hicolor has no 1024x1024 -} Copied: electron/repos/community-x86_64/PKGBUILD (from rev 946430, electron/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2021-05-26 02:15:35 UTC (rev 946431) @@ -0,0 +1,222 @@ +# Maintainer: Nicola Squartini <tens...@gmail.com> + +pkgname=electron +pkgver=12.0.9 +_commit=30f82dd1cb8140ccb5c6a4960eef8e3b8c15eeba +_chromiumver=89.0.4389.128 +_gcc_patchset=7 +pkgrel=1 +pkgdesc='Build cross platform desktop apps with web technologies' +arch=('x86_64') +url='https://electronjs.org/' +license=('MIT' 'custom') +depends=('c-ares' 'ffmpeg' 'gtk3' 'libevent' 'libnghttp2' 'libxslt' 'minizip' + 'nss' 're2' 'snappy') +makedepends=('clang' 'git' 'gn-m87' 'gperf' 'harfbuzz-icu' 'http-parser' + 'java-runtime-headless' 'jsoncpp' 'libnotify' 'lld' 'llvm' 'ninja' + 'npm' 'pciutils' 'pipewire' 'python2' 'wget' 'yarn') +optdepends=('kde-cli-tools: file deletion support (kioclient5)' + 'libappindicator-gtk3: StatusNotifierItem support' + 'pipewire: WebRTC desktop sharing under Wayland' + 'trash-cli: file deletion support (trash-put)' + "xdg-utils: open URLs with desktop's default (xdg-email, xdg-open)") +source=('git+https://github.com/electron/electron.git' + 'git+https://chromium.googlesource.com/chromium/tools/depot_tools.git' + "https://github.com/stha09/chromium-patches/releases/download/chromium-${_chromiumver%%.*}-patchset-${_gcc_patchset}/chromium-${_chromiumver%%.*}-patchset-${_gcc_patchset}.tar.xz" + "${pkgname}-launcher.sh" + "${pkgname}.desktop" + 'default_app-icon.patch' + 'use-system-libraries-in-node.patch' + 'add-dependency-on-opus-in-webcodecs.patch' + 'chromium-fix-libva-redef.patch' + 'chromium-glibc-2.33.patch' + 'sql-make-VirtualCursor-standard-layout-type.patch' + ) +sha256sums=('SKIP' + 'SKIP' + 'f8b1558f6c87b33423da854d42f0f69d47885a96d6bf6ce7f26373e93d47442f' + '20c50e217fcb20f72fd2b465ad19659abe51feff4814515767a3065a009d58a5' + '5270db01f3f8aaa5137dec275a02caa832b7f2e37942e068cba8d28b3a29df39' + 'dd2d248831dd4944d385ebf008426e66efe61d6fdf66f8932c963a12167947b4' + 'f16103daf05713dea632b5f01e45db20ff12d1770a6539b4e8d3957a0242dd54' + 'b86b11de8db438c47f0a84c7956740f648d21035f4ee46bfbd50c3348d369121' + 'de9eb3612d44616a500c2eccdffac814eb90ad9a868cc1030d17fc6783d544e2' + '2fccecdcd4509d4c36af873988ca9dbcba7fdb95122894a9fdf502c33a1d7a4b' + 'dd317f85e5abfdcfc89c6f23f4c8edbcdebdd5e083dcec770e5da49ee647d150' + ) + +_system_libs=('ffmpeg' + 'flac' + 'fontconfig' + 'freetype' + 'harfbuzz-ng' + 'icu' + 'libdrm' + 'libevent' + 'libjpeg' + 'libpng' +# 'libvpx' + 'libwebp' + 'libxml' + 'libxslt' +# 'openh264' + 'opus' + 're2' + 'snappy' + 'zlib' + ) + +prepare() { + mkdir -p "${srcdir}"/python2-path + ln -sf /usr/bin/python2 "${srcdir}/python2-path/python" + export PATH="${srcdir}/python2-path:${PATH}:${srcdir}/depot_tools" + + echo "Fetching chromium..." + git clone --branch=${_chromiumver} --depth=1 \ + https://chromium.googlesource.com/chromium/src.git + + echo "solutions = [ + { + \"name\": \"src/electron\", + \"url\": \"file://${srcdir}/electron@${_commit}\", + \"deps_file\": \"DEPS\", + \"managed\": False, + \"custom_deps\": { + \"src\": None, + }, + \"custom_vars\": {}, + }, +]" > .gclient + + python2 "${srcdir}/depot_tools/gclient.py" sync \ + --with_branch_heads \ + --with_tags \ + --nohooks + + sed -e "s/'am'/'apply'/" -i src/electron/script/lib/git.py + + echo "Running hooks..." + # python2 "${srcdir}/depot_tools/gclient.py" runhooks + python2 src/build/landmines.py + python2 src/build/util/lastchange.py -o src/build/util/LASTCHANGE + python2 src/build/util/lastchange.py -m GPU_LISTS_VERSION \ + --revision-id-only --header src/gpu/config/gpu_lists_version.h + python2 src/build/util/lastchange.py -m SKIA_COMMIT_HASH \ + -s src/third_party/skia --header src/skia/ext/skia_commit_hash.h + # Create sysmlink to system clang-format + ln -s /usr/bin/clang-format src/buildtools/linux64 + # Create sysmlink to system Node.js + mkdir -p src/third_party/node/linux/node-linux-x64/bin + ln -sf /usr/bin/node src/third_party/node/linux/node-linux-x64/bin + #python2 src/third_party/depot_tools/download_from_google_storage.py \ + # --no_resume --extract --no_auth --bucket chromium-nodejs \ + # -s src/third_party/node/node_modules.tar.gz.sha1 + cd src/third_party/node + npm ci + cd ../../.. + vpython src/tools/download_optimization_profile.py \ + --newest_state=src/chrome/android/profiles/newest.txt \ + --local_state=src/chrome/android/profiles/local.txt \ + --output_name=src/chrome/android/profiles/afdo.prof \ + --gs_url_base=chromeos-prebuilt/afdo-job/llvm + #vpython src/tools/update_pgo_profiles.py \ + # --target=linux \ + # update \ + # --gs-url-base=chromium-optimization-profiles/pgo_profiles + python2 src/electron/script/apply_all_patches.py \ + src/electron/patches/config.json + cd src/electron + yarn install --frozen-lockfile + cd .. + + echo "Applying local patches..." + # Fixes for building with libstdc++ instead of libc++ + patch -Np1 -i ../patches/chromium-89-quiche-dcheck.patch + patch -Np1 -i ../patches/chromium-89-AXTreeSerializer-include.patch + + patch -Np1 -i ../add-dependency-on-opus-in-webcodecs.patch + patch -Np1 -i ../chromium-fix-libva-redef.patch + patch -Np1 -i ../chromium-glibc-2.33.patch + patch -Np1 -i ../sql-make-VirtualCursor-standard-layout-type.patch + patch -Np1 -i ../use-system-libraries-in-node.patch + patch -Np1 -i ../default_app-icon.patch # Icon from .desktop file + + echo "Patching Chromium for using system libraries..." + sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ + tools/generate_shim_headers/generate_shim_headers.py + for lib in $(printf "%s\n" "${_system_libs[@]}" | sed 's/^libjpeg$/&_turbo/'); do + third_party_dir="third_party/${lib}" + if [ ! -d ${third_party_dir} ]; then + third_party_dir="base/${third_party_dir}" + fi + find ${third_party_dir} -type f \ + \! -path "${third_party_dir}/chromium/*" \ + \! -path "${third_party_dir}/google/*" \ + \! -path 'third_party/harfbuzz-ng/utils/hb_scoped.h' \ + \! -regex '.*\.\(gn\|gni\|isolate\)' \ + -delete + done + python2 build/linux/unbundle/replace_gn_files.py \ + --system-libraries \ + "${_system_libs[@]}" +} + +build() { + export CC=clang + export CXX=clang++ + export AR=ar + export NM=nm + + # Do not warn about unknown warning options + CFLAGS+=' -Wno-unknown-warning-option' + CXXFLAGS+=' -Wno-unknown-warning-option' + + cd src + export CHROMIUM_BUILDTOOLS_PATH="${PWD}/buildtools" + GN_EXTRA_ARGS=' + blink_symbol_level = 0 + chrome_pgo_phase = 0 + clang_use_chrome_plugins = false + custom_toolchain = "//build/toolchain/linux/unbundle:default" + host_toolchain = "//build/toolchain/linux/unbundle:default" + icu_use_data_file = false + is_component_ffmpeg = false + link_pulseaudio = true + rtc_pipewire_version = "0.3" + rtc_use_pipewire = true + treat_warnings_as_errors = false + use_custom_libcxx = false + use_gnome_keyring = false + use_sysroot = false + ' + gn-m87 gen out/Release \ + --args="import(\"//electron/build/args/release.gn\") ${GN_EXTRA_ARGS}" + ninja -C out/Release electron + # Strip before zip to avoid + # zipfile.LargeZipFile: Filesize would require ZIP64 extensions + strip -s out/Release/electron + ninja -C out/Release electron_dist_zip + # ninja -C out/Release third_party/electron_node:headers +} + +package() { + install -dm755 "${pkgdir}/usr/lib/${pkgname}" + bsdtar -xf src/out/Release/dist.zip -C "${pkgdir}/usr/lib/${pkgname}" + + chmod u+s "${pkgdir}/usr/lib/${pkgname}/chrome-sandbox" + + install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}" + for l in "${pkgdir}/usr/lib/${pkgname}"/{LICENSE,LICENSES.chromium.html}; do + ln -s \ + "$(realpath --relative-to="${pkgdir}/usr/share/licenses/${pkgname}" "${l}")" \ + "${pkgdir}/usr/share/licenses/${pkgname}" + done + + install -Dm755 "${srcdir}/${pkgname}-launcher.sh" \ + "${pkgdir}/usr/bin/${pkgname}" + + # Install .desktop and icon file (see default_app-icon.patch) + install -Dm644 -t "${pkgdir}/usr/share/applications" "${pkgname}.desktop" + install -Dm644 src/electron/default_app/icon.png \ + "${pkgdir}/usr/share/pixmaps/${pkgname}.png" # hicolor has no 1024x1024 +} Deleted: add-dependency-on-opus-in-webcodecs.patch =================================================================== --- add-dependency-on-opus-in-webcodecs.patch 2021-05-26 02:14:26 UTC (rev 946430) +++ add-dependency-on-opus-in-webcodecs.patch 2021-05-26 02:15:35 UTC (rev 946431) @@ -1,43 +0,0 @@ -From b5b80df7dafba8cafa4c6c0ba2153dfda467dfc9 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann <sth...@googlemail.com> -Date: Wed, 27 Jan 2021 20:31:51 +0000 -Subject: [PATCH] add dependency on opus in webcodecs - -webcodecs uses opus, but dependency is missing. With unbundled -opus library build fails, because include path is incomplete. - -Bug: 1169758 -Change-Id: I01369364327461196a81002479636cf45017669a -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2644623 -Reviewed-by: Dale Curtis <dalecur...@chromium.org> -Commit-Queue: Dale Curtis <dalecur...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#847754} ---- - third_party/blink/renderer/modules/webcodecs/BUILD.gn | 1 + - third_party/blink/renderer/modules/webcodecs/DEPS | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/third_party/blink/renderer/modules/webcodecs/BUILD.gn b/third_party/blink/renderer/modules/webcodecs/BUILD.gn -index fdf4ca0fafc72..01a7bf809ffca 100644 ---- a/third_party/blink/renderer/modules/webcodecs/BUILD.gn -+++ b/third_party/blink/renderer/modules/webcodecs/BUILD.gn -@@ -65,6 +65,7 @@ blink_modules_sources("webcodecs") { - "//media/mojo/clients", - "//media/mojo/mojom", - "//third_party/libyuv:libyuv", -+ "//third_party/opus", - ] - if (media_use_openh264) { - deps += [ "//third_party/openh264:encoder" ] -diff --git a/third_party/blink/renderer/modules/webcodecs/DEPS b/third_party/blink/renderer/modules/webcodecs/DEPS -index b8dd596da8caf..ea1919d12205a 100644 ---- a/third_party/blink/renderer/modules/webcodecs/DEPS -+++ b/third_party/blink/renderer/modules/webcodecs/DEPS -@@ -19,6 +19,7 @@ include_rules = [ - - "+third_party/libyuv", - "+third_party/openh264", -+ "+third_party/opus", - - "+ui/gfx/color_space.h", - "+ui/gfx/geometry/rect.h", Copied: electron/repos/community-x86_64/add-dependency-on-opus-in-webcodecs.patch (from rev 946430, electron/trunk/add-dependency-on-opus-in-webcodecs.patch) =================================================================== --- add-dependency-on-opus-in-webcodecs.patch (rev 0) +++ add-dependency-on-opus-in-webcodecs.patch 2021-05-26 02:15:35 UTC (rev 946431) @@ -0,0 +1,43 @@ +From b5b80df7dafba8cafa4c6c0ba2153dfda467dfc9 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <sth...@googlemail.com> +Date: Wed, 27 Jan 2021 20:31:51 +0000 +Subject: [PATCH] add dependency on opus in webcodecs + +webcodecs uses opus, but dependency is missing. With unbundled +opus library build fails, because include path is incomplete. + +Bug: 1169758 +Change-Id: I01369364327461196a81002479636cf45017669a +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2644623 +Reviewed-by: Dale Curtis <dalecur...@chromium.org> +Commit-Queue: Dale Curtis <dalecur...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#847754} +--- + third_party/blink/renderer/modules/webcodecs/BUILD.gn | 1 + + third_party/blink/renderer/modules/webcodecs/DEPS | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/third_party/blink/renderer/modules/webcodecs/BUILD.gn b/third_party/blink/renderer/modules/webcodecs/BUILD.gn +index fdf4ca0fafc72..01a7bf809ffca 100644 +--- a/third_party/blink/renderer/modules/webcodecs/BUILD.gn ++++ b/third_party/blink/renderer/modules/webcodecs/BUILD.gn +@@ -65,6 +65,7 @@ blink_modules_sources("webcodecs") { + "//media/mojo/clients", + "//media/mojo/mojom", + "//third_party/libyuv:libyuv", ++ "//third_party/opus", + ] + if (media_use_openh264) { + deps += [ "//third_party/openh264:encoder" ] +diff --git a/third_party/blink/renderer/modules/webcodecs/DEPS b/third_party/blink/renderer/modules/webcodecs/DEPS +index b8dd596da8caf..ea1919d12205a 100644 +--- a/third_party/blink/renderer/modules/webcodecs/DEPS ++++ b/third_party/blink/renderer/modules/webcodecs/DEPS +@@ -19,6 +19,7 @@ include_rules = [ + + "+third_party/libyuv", + "+third_party/openh264", ++ "+third_party/opus", + + "+ui/gfx/color_space.h", + "+ui/gfx/geometry/rect.h", Deleted: chromium-fix-libva-redef.patch =================================================================== --- chromium-fix-libva-redef.patch 2021-05-26 02:14:26 UTC (rev 946430) +++ chromium-fix-libva-redef.patch 2021-05-26 02:15:35 UTC (rev 946431) @@ -1,86 +0,0 @@ ---- a/third_party/libva_protected_content/va_protected_content.h -+++ b/third_party/libva_protected_content/va_protected_content.h -@@ -132,19 +132,6 @@ - #define VA_PC_SAMPLE_TYPE_FULLSAMPLE 0x00000001 - #define VA_PC_SAMPLE_TYPE_SUBSAMPLE 0x00000002 - --/** \brief TeeExec Function Codes. */ --typedef enum _VA_TEE_EXEC_FUNCTION_ID { -- VA_TEE_EXEC_TEE_FUNCID_PASS_THROUGH_NONE = 0x0, -- -- // 0x40000000~0x400000FFF reserved for TEE Exec GPU function -- VA_TEE_EXEC_GPU_FUNCID_ENCRYPTION_BLT = 0x40000000, -- VA_TEE_EXEC_GPU_FUNCID_DECRYPTION_BLT = 0x40000001, -- -- // 0x40001000~0x400001FFF reserved for TEE Exec TEE function -- VA_TEE_EXEC_TEE_FUNCID_PASS_THROUGH = 0x40001000, -- --} VA_TEE_EXEC_FUNCTION_ID; -- - /** \brief values for the encryption return status. */ - typedef enum { - /** \brief Indicate encryption operation is successful.*/ -@@ -159,63 +146,6 @@ - VA_ENCRYPTION_STATUS_UNSUPPORT - } VAEncryptionStatus; - --/** \brief structure for encrypted segment info. */ --typedef struct _VAEncryptionSegmentInfo { -- /** \brief The offset relative to the start of the bitstream input in -- * bytes of the start of the segment*/ -- uint32_t segment_start_offset; -- /** \brief The length of the segments in bytes*/ -- uint32_t segment_length; -- /** \brief The length in bytes of the remainder of an incomplete block -- * from a previous segment*/ -- uint32_t partial_aes_block_size; -- /** \brief The length in bytes of the initial clear data */ -- uint32_t init_byte_length; -- /** \brief This will be AES 128 counter for secure decode and secure -- * encode when numSegments equals 1 */ -- uint8_t aes_cbc_iv_or_ctr[16]; -- /** \brief Reserved bytes for future use, must be zero */ -- uint32_t va_reserved[VA_PADDING_MEDIUM]; --} VAEncryptionSegmentInfo; -- --/** \brief encryption parameters, corresponding to -- * #VAEncryptionParameterBufferType*/ --typedef struct _VAEncryptionParameters { -- /** \brief Encryption type, attribute values. */ -- uint32_t encryption_type; -- /** \brief The number of sengments */ -- uint32_t num_segments; -- /** \brief Pointer of segments */ -- VAEncryptionSegmentInfo* segment_info; -- /** \brief The status report index for CENC workload. -- * The value is to indicate CENC workload and needs to be -- * different for each CENC workload */ -- uint32_t status_report_index; -- /** \brief CENC counter length */ -- uint32_t size_of_length; -- /** \brief Wrapped decrypt blob (Snd)kb */ -- uint8_t wrapped_decrypt_blob[16]; -- /** \brief Wrapped Key blob info (Sne)kb */ -- uint8_t wrapped_encrypt_blob[16]; -- /** \brief Indicates the number of 16-byte BLOCKS that are encrypted in any -- * given encrypted region of segments. -- * If this value is zero: -- * 1. All bytes in encrypted region of segments are encrypted, i.e. the -- * CENC or CBC1 scheme is being used -- * 2. blocks_stripe_clear must also be zero. -- * If this value is non-zero, blocks_stripe_clear must also be non-zero. */ -- uint32_t blocks_stripe_encrypted; -- /** \brief Indicates the number of 16-byte BLOCKS that are clear in any given -- * encrypted region of segments, as defined by the CENS and CBCS schemes in -- * the common encryption spec. -- * If this value is zero, all bytes in encrypted region of segments are -- * encrypted, i.e. the CENC or CBC1 scheme is being used. -- */ -- uint32_t blocks_stripe_clear; -- /** \brief Reserved bytes for future use, must be zero */ -- uint32_t va_reserved[VA_PADDING_MEDIUM]; --} VAEncryptionParameters; -- - /** \brief structure for VA_TEE_EXEC_GPU_FUNCID_ENCRYPTION_BLT */ - typedef struct _VA_PROTECTED_BLT_PARAMS { - uint8_t* src_resource; // The source resource which contains the clear data. Copied: electron/repos/community-x86_64/chromium-fix-libva-redef.patch (from rev 946430, electron/trunk/chromium-fix-libva-redef.patch) =================================================================== --- chromium-fix-libva-redef.patch (rev 0) +++ chromium-fix-libva-redef.patch 2021-05-26 02:15:35 UTC (rev 946431) @@ -0,0 +1,86 @@ +--- a/third_party/libva_protected_content/va_protected_content.h ++++ b/third_party/libva_protected_content/va_protected_content.h +@@ -132,19 +132,6 @@ + #define VA_PC_SAMPLE_TYPE_FULLSAMPLE 0x00000001 + #define VA_PC_SAMPLE_TYPE_SUBSAMPLE 0x00000002 + +-/** \brief TeeExec Function Codes. */ +-typedef enum _VA_TEE_EXEC_FUNCTION_ID { +- VA_TEE_EXEC_TEE_FUNCID_PASS_THROUGH_NONE = 0x0, +- +- // 0x40000000~0x400000FFF reserved for TEE Exec GPU function +- VA_TEE_EXEC_GPU_FUNCID_ENCRYPTION_BLT = 0x40000000, +- VA_TEE_EXEC_GPU_FUNCID_DECRYPTION_BLT = 0x40000001, +- +- // 0x40001000~0x400001FFF reserved for TEE Exec TEE function +- VA_TEE_EXEC_TEE_FUNCID_PASS_THROUGH = 0x40001000, +- +-} VA_TEE_EXEC_FUNCTION_ID; +- + /** \brief values for the encryption return status. */ + typedef enum { + /** \brief Indicate encryption operation is successful.*/ +@@ -159,63 +146,6 @@ + VA_ENCRYPTION_STATUS_UNSUPPORT + } VAEncryptionStatus; + +-/** \brief structure for encrypted segment info. */ +-typedef struct _VAEncryptionSegmentInfo { +- /** \brief The offset relative to the start of the bitstream input in +- * bytes of the start of the segment*/ +- uint32_t segment_start_offset; +- /** \brief The length of the segments in bytes*/ +- uint32_t segment_length; +- /** \brief The length in bytes of the remainder of an incomplete block +- * from a previous segment*/ +- uint32_t partial_aes_block_size; +- /** \brief The length in bytes of the initial clear data */ +- uint32_t init_byte_length; +- /** \brief This will be AES 128 counter for secure decode and secure +- * encode when numSegments equals 1 */ +- uint8_t aes_cbc_iv_or_ctr[16]; +- /** \brief Reserved bytes for future use, must be zero */ +- uint32_t va_reserved[VA_PADDING_MEDIUM]; +-} VAEncryptionSegmentInfo; +- +-/** \brief encryption parameters, corresponding to +- * #VAEncryptionParameterBufferType*/ +-typedef struct _VAEncryptionParameters { +- /** \brief Encryption type, attribute values. */ +- uint32_t encryption_type; +- /** \brief The number of sengments */ +- uint32_t num_segments; +- /** \brief Pointer of segments */ +- VAEncryptionSegmentInfo* segment_info; +- /** \brief The status report index for CENC workload. +- * The value is to indicate CENC workload and needs to be +- * different for each CENC workload */ +- uint32_t status_report_index; +- /** \brief CENC counter length */ +- uint32_t size_of_length; +- /** \brief Wrapped decrypt blob (Snd)kb */ +- uint8_t wrapped_decrypt_blob[16]; +- /** \brief Wrapped Key blob info (Sne)kb */ +- uint8_t wrapped_encrypt_blob[16]; +- /** \brief Indicates the number of 16-byte BLOCKS that are encrypted in any +- * given encrypted region of segments. +- * If this value is zero: +- * 1. All bytes in encrypted region of segments are encrypted, i.e. the +- * CENC or CBC1 scheme is being used +- * 2. blocks_stripe_clear must also be zero. +- * If this value is non-zero, blocks_stripe_clear must also be non-zero. */ +- uint32_t blocks_stripe_encrypted; +- /** \brief Indicates the number of 16-byte BLOCKS that are clear in any given +- * encrypted region of segments, as defined by the CENS and CBCS schemes in +- * the common encryption spec. +- * If this value is zero, all bytes in encrypted region of segments are +- * encrypted, i.e. the CENC or CBC1 scheme is being used. +- */ +- uint32_t blocks_stripe_clear; +- /** \brief Reserved bytes for future use, must be zero */ +- uint32_t va_reserved[VA_PADDING_MEDIUM]; +-} VAEncryptionParameters; +- + /** \brief structure for VA_TEE_EXEC_GPU_FUNCID_ENCRYPTION_BLT */ + typedef struct _VA_PROTECTED_BLT_PARAMS { + uint8_t* src_resource; // The source resource which contains the clear data. Deleted: chromium-glibc-2.33.patch =================================================================== --- chromium-glibc-2.33.patch 2021-05-26 02:14:26 UTC (rev 946430) +++ chromium-glibc-2.33.patch 2021-05-26 02:15:35 UTC (rev 946431) @@ -1,144 +0,0 @@ -# Patch made by Kevin Kofler <ke...@tigcc.ticalc.org> -# https://bugzilla.redhat.com/show_bug.cgi?id=1904652 - -diff -up chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.fstatfix chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc ---- chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.fstatfix 2021-01-25 10:11:45.427436398 -0500 -+++ chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2021-01-25 10:12:51.337699003 -0500 -@@ -257,6 +257,18 @@ ResultExpr EvaluateSyscallImpl(int fs_de - return RestrictKillTarget(current_pid, sysno); - } - -+#if defined(__NR_newfstatat) -+ if (sysno == __NR_newfstatat) { -+ return RewriteFstatatSIGSYS(); -+ } -+#endif -+ -+#if defined(__NR_fstatat64) -+ if (sysno == __NR_fstatat64) { -+ return RewriteFstatatSIGSYS(); -+ } -+#endif -+ - if (SyscallSets::IsFileSystem(sysno) || - SyscallSets::IsCurrentDirectory(sysno)) { - return Error(fs_denied_errno); -diff -up chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc.fstatfix chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc ---- chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc.fstatfix 2021-01-25 10:13:10.179774081 -0500 -+++ chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc 2021-01-25 10:16:18.790525746 -0500 -@@ -6,6 +6,8 @@ - - #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h" - -+#include <errno.h> -+#include <fcntl.h> - #include <stddef.h> - #include <stdint.h> - #include <string.h> -@@ -355,6 +357,35 @@ intptr_t SIGSYSSchedHandler(const struct - return -ENOSYS; - } - -+intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, -+ void* aux) { -+ switch (args.nr) { -+#if defined(__NR_newfstatat) -+ case __NR_newfstatat: -+#endif -+#if defined(__NR_fstatat64) -+ case __NR_fstatat64: -+#endif -+#if defined(__NR_newfstatat) || defined(__NR_fstatat64) -+ if (*reinterpret_cast<const char *>(args.args[1]) == '\0' -+ && args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) { -+ return sandbox::sys_fstat64(static_cast<int>(args.args[0]), -+ reinterpret_cast<struct stat64 *>(args.args[2])); -+ } else { -+ errno = EACCES; -+ return -1; -+ } -+ break; -+#endif -+ } -+ -+ CrashSIGSYS_Handler(args, aux); -+ -+ // Should never be reached. -+ RAW_CHECK(false); -+ return -ENOSYS; -+} -+ - bpf_dsl::ResultExpr CrashSIGSYS() { - return bpf_dsl::Trap(CrashSIGSYS_Handler, NULL); - } -@@ -387,6 +418,10 @@ bpf_dsl::ResultExpr RewriteSchedSIGSYS() - return bpf_dsl::Trap(SIGSYSSchedHandler, NULL); - } - -+bpf_dsl::ResultExpr RewriteFstatatSIGSYS() { -+ return bpf_dsl::Trap(SIGSYSFstatatHandler, NULL); -+} -+ - void AllocateCrashKeys() { - #if !defined(OS_NACL_NONSFI) - if (seccomp_crash_key) -diff -up chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h.fstatfix chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h ---- chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h.fstatfix 2021-01-25 10:16:36.982598236 -0500 -+++ chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h 2021-01-25 10:18:45.705111027 -0500 -@@ -62,6 +62,10 @@ SANDBOX_EXPORT intptr_t SIGSYSPtraceFail - // sched_setparam(), sched_setscheduler() - SANDBOX_EXPORT intptr_t SIGSYSSchedHandler(const arch_seccomp_data& args, - void* aux); -+// If the fstatat syscall is actually a disguised fstat, calls the regular fstat -+// syscall, otherwise, crashes in the same way as CrashSIGSYS_Handler. -+SANDBOX_EXPORT intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, -+ void* aux); - - // Variants of the above functions for use with bpf_dsl. - SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYS(); -@@ -72,6 +76,7 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr Crash - SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSFutex(); - SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSPtrace(); - SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteSchedSIGSYS(); -+SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteFstatatSIGSYS(); - - // Allocates a crash key so that Seccomp information can be recorded. - void AllocateCrashKeys(); -diff -up chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc.fstatfix chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc ---- chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc.fstatfix 2021-01-25 10:18:53.307141311 -0500 -+++ chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc 2021-01-25 10:19:46.982355293 -0500 -@@ -261,4 +261,13 @@ int sys_sigaction(int signum, - - #endif // defined(MEMORY_SANITIZER) - -+SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf) -+{ -+#if defined(__NR_fstat64) -+ return syscall(__NR_fstat64, fd, buf); -+#else -+ return syscall(__NR_fstat, fd, buf); -+#endif -+} -+ - } // namespace sandbox -diff -up chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h.fstatfix chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h ---- chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h.fstatfix 2021-01-25 10:19:53.115379741 -0500 -+++ chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h 2021-01-25 10:20:45.485588421 -0500 -@@ -17,6 +17,7 @@ struct sock_fprog; - struct rlimit64; - struct cap_hdr; - struct cap_data; -+struct stat64; - - namespace sandbox { - -@@ -84,6 +85,9 @@ SANDBOX_EXPORT int sys_sigaction(int sig - const struct sigaction* act, - struct sigaction* oldact); - -+// Recent glibc rewrites fstat to fstatat. -+SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf); -+ - } // namespace sandbox - - #endif // SANDBOX_LINUX_SERVICES_SYSCALL_WRAPPERS_H_ Copied: electron/repos/community-x86_64/chromium-glibc-2.33.patch (from rev 946430, electron/trunk/chromium-glibc-2.33.patch) =================================================================== --- chromium-glibc-2.33.patch (rev 0) +++ chromium-glibc-2.33.patch 2021-05-26 02:15:35 UTC (rev 946431) @@ -0,0 +1,144 @@ +# Patch made by Kevin Kofler <ke...@tigcc.ticalc.org> +# https://bugzilla.redhat.com/show_bug.cgi?id=1904652 + +diff -up chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.fstatfix chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +--- chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.fstatfix 2021-01-25 10:11:45.427436398 -0500 ++++ chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2021-01-25 10:12:51.337699003 -0500 +@@ -257,6 +257,18 @@ ResultExpr EvaluateSyscallImpl(int fs_de + return RestrictKillTarget(current_pid, sysno); + } + ++#if defined(__NR_newfstatat) ++ if (sysno == __NR_newfstatat) { ++ return RewriteFstatatSIGSYS(); ++ } ++#endif ++ ++#if defined(__NR_fstatat64) ++ if (sysno == __NR_fstatat64) { ++ return RewriteFstatatSIGSYS(); ++ } ++#endif ++ + if (SyscallSets::IsFileSystem(sysno) || + SyscallSets::IsCurrentDirectory(sysno)) { + return Error(fs_denied_errno); +diff -up chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc.fstatfix chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc +--- chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc.fstatfix 2021-01-25 10:13:10.179774081 -0500 ++++ chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc 2021-01-25 10:16:18.790525746 -0500 +@@ -6,6 +6,8 @@ + + #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h" + ++#include <errno.h> ++#include <fcntl.h> + #include <stddef.h> + #include <stdint.h> + #include <string.h> +@@ -355,6 +357,35 @@ intptr_t SIGSYSSchedHandler(const struct + return -ENOSYS; + } + ++intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, ++ void* aux) { ++ switch (args.nr) { ++#if defined(__NR_newfstatat) ++ case __NR_newfstatat: ++#endif ++#if defined(__NR_fstatat64) ++ case __NR_fstatat64: ++#endif ++#if defined(__NR_newfstatat) || defined(__NR_fstatat64) ++ if (*reinterpret_cast<const char *>(args.args[1]) == '\0' ++ && args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) { ++ return sandbox::sys_fstat64(static_cast<int>(args.args[0]), ++ reinterpret_cast<struct stat64 *>(args.args[2])); ++ } else { ++ errno = EACCES; ++ return -1; ++ } ++ break; ++#endif ++ } ++ ++ CrashSIGSYS_Handler(args, aux); ++ ++ // Should never be reached. ++ RAW_CHECK(false); ++ return -ENOSYS; ++} ++ + bpf_dsl::ResultExpr CrashSIGSYS() { + return bpf_dsl::Trap(CrashSIGSYS_Handler, NULL); + } +@@ -387,6 +418,10 @@ bpf_dsl::ResultExpr RewriteSchedSIGSYS() + return bpf_dsl::Trap(SIGSYSSchedHandler, NULL); + } + ++bpf_dsl::ResultExpr RewriteFstatatSIGSYS() { ++ return bpf_dsl::Trap(SIGSYSFstatatHandler, NULL); ++} ++ + void AllocateCrashKeys() { + #if !defined(OS_NACL_NONSFI) + if (seccomp_crash_key) +diff -up chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h.fstatfix chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h +--- chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h.fstatfix 2021-01-25 10:16:36.982598236 -0500 ++++ chromium-88.0.4324.96/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h 2021-01-25 10:18:45.705111027 -0500 +@@ -62,6 +62,10 @@ SANDBOX_EXPORT intptr_t SIGSYSPtraceFail + // sched_setparam(), sched_setscheduler() + SANDBOX_EXPORT intptr_t SIGSYSSchedHandler(const arch_seccomp_data& args, + void* aux); ++// If the fstatat syscall is actually a disguised fstat, calls the regular fstat ++// syscall, otherwise, crashes in the same way as CrashSIGSYS_Handler. ++SANDBOX_EXPORT intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, ++ void* aux); + + // Variants of the above functions for use with bpf_dsl. + SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYS(); +@@ -72,6 +76,7 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr Crash + SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSFutex(); + SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSPtrace(); + SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteSchedSIGSYS(); ++SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteFstatatSIGSYS(); + + // Allocates a crash key so that Seccomp information can be recorded. + void AllocateCrashKeys(); +diff -up chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc.fstatfix chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc +--- chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc.fstatfix 2021-01-25 10:18:53.307141311 -0500 ++++ chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.cc 2021-01-25 10:19:46.982355293 -0500 +@@ -261,4 +261,13 @@ int sys_sigaction(int signum, + + #endif // defined(MEMORY_SANITIZER) + ++SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf) ++{ ++#if defined(__NR_fstat64) ++ return syscall(__NR_fstat64, fd, buf); ++#else ++ return syscall(__NR_fstat, fd, buf); ++#endif ++} ++ + } // namespace sandbox +diff -up chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h.fstatfix chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h +--- chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h.fstatfix 2021-01-25 10:19:53.115379741 -0500 ++++ chromium-88.0.4324.96/sandbox/linux/services/syscall_wrappers.h 2021-01-25 10:20:45.485588421 -0500 +@@ -17,6 +17,7 @@ struct sock_fprog; + struct rlimit64; + struct cap_hdr; + struct cap_data; ++struct stat64; + + namespace sandbox { + +@@ -84,6 +85,9 @@ SANDBOX_EXPORT int sys_sigaction(int sig + const struct sigaction* act, + struct sigaction* oldact); + ++// Recent glibc rewrites fstat to fstatat. ++SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf); ++ + } // namespace sandbox + + #endif // SANDBOX_LINUX_SERVICES_SYSCALL_WRAPPERS_H_ Deleted: default_app-icon.patch =================================================================== --- default_app-icon.patch 2021-05-26 02:14:26 UTC (rev 946430) +++ default_app-icon.patch 2021-05-26 02:15:35 UTC (rev 946431) @@ -1,21 +0,0 @@ ---- a/electron/default_app/default_app.ts -+++ b/electron/default_app/default_app.ts -@@ -60,7 +60,7 @@ - }; - - if (process.platform === 'linux') { -- options.icon = path.join(__dirname, 'icon.png'); -+ options.icon = '/usr/share/pixmaps/electron.png'; - } - - mainWindow = new BrowserWindow(options); ---- a/electron/filenames.gni -+++ b/electron/filenames.gni -@@ -6,7 +6,6 @@ - ] - - default_app_static_sources = [ -- "default_app/icon.png", - "default_app/index.html", - "default_app/package.json", - "default_app/styles.css", Copied: electron/repos/community-x86_64/default_app-icon.patch (from rev 946430, electron/trunk/default_app-icon.patch) =================================================================== --- default_app-icon.patch (rev 0) +++ default_app-icon.patch 2021-05-26 02:15:35 UTC (rev 946431) @@ -0,0 +1,21 @@ +--- a/electron/default_app/default_app.ts ++++ b/electron/default_app/default_app.ts +@@ -60,7 +60,7 @@ + }; + + if (process.platform === 'linux') { +- options.icon = path.join(__dirname, 'icon.png'); ++ options.icon = '/usr/share/pixmaps/electron.png'; + } + + mainWindow = new BrowserWindow(options); +--- a/electron/filenames.gni ++++ b/electron/filenames.gni +@@ -6,7 +6,6 @@ + ] + + default_app_static_sources = [ +- "default_app/icon.png", + "default_app/index.html", + "default_app/package.json", + "default_app/styles.css", Deleted: electron-launcher.sh =================================================================== --- electron-launcher.sh 2021-05-26 02:14:26 UTC (rev 946430) +++ electron-launcher.sh 2021-05-26 02:15:35 UTC (rev 946431) @@ -1,20 +0,0 @@ -#!/usr/bin/bash - -set -euo pipefail - -name=electron -flags_file="${XDG_CONFIG_HOME:-$HOME/.config}/${name}-flags.conf" - -declare -a flags - -if [[ -f "${flags_file}" ]]; then - mapfile -t < "${flags_file}" -fi - -for line in "${MAPFILE[@]}"; do - if [[ ! "${line}" =~ ^[[:space:]]*#.* ]]; then - flags+=("${line}") - fi -done - -exec /usr/lib/${name}/electron "$@" "${flags[@]}" Copied: electron/repos/community-x86_64/electron-launcher.sh (from rev 946430, electron/trunk/electron-launcher.sh) =================================================================== --- electron-launcher.sh (rev 0) +++ electron-launcher.sh 2021-05-26 02:15:35 UTC (rev 946431) @@ -0,0 +1,20 @@ +#!/usr/bin/bash + +set -euo pipefail + +name=electron +flags_file="${XDG_CONFIG_HOME:-$HOME/.config}/${name}-flags.conf" + +declare -a flags + +if [[ -f "${flags_file}" ]]; then + mapfile -t < "${flags_file}" +fi + +for line in "${MAPFILE[@]}"; do + if [[ ! "${line}" =~ ^[[:space:]]*#.* ]]; then + flags+=("${line}") + fi +done + +exec /usr/lib/${name}/electron "$@" "${flags[@]}" Deleted: electron.desktop =================================================================== --- electron.desktop 2021-05-26 02:14:26 UTC (rev 946430) +++ electron.desktop 2021-05-26 02:15:35 UTC (rev 946431) @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Electron -Icon=electron -Exec=electron %u -Categories=Development;GTK; -StartupNotify=true Copied: electron/repos/community-x86_64/electron.desktop (from rev 946430, electron/trunk/electron.desktop) =================================================================== --- electron.desktop (rev 0) +++ electron.desktop 2021-05-26 02:15:35 UTC (rev 946431) @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Application +Name=Electron +Icon=electron +Exec=electron %u +Categories=Development;GTK; +StartupNotify=true Copied: electron/repos/community-x86_64/sql-make-VirtualCursor-standard-layout-type.patch (from rev 946430, electron/trunk/sql-make-VirtualCursor-standard-layout-type.patch) =================================================================== --- sql-make-VirtualCursor-standard-layout-type.patch (rev 0) +++ sql-make-VirtualCursor-standard-layout-type.patch 2021-05-26 02:15:35 UTC (rev 946431) @@ -0,0 +1,238 @@ +From 80368f8ba7a8bab13440463a254888311efe3986 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <sth...@googlemail.com> +Date: Tue, 4 May 2021 15:00:19 +0000 +Subject: [PATCH] sql: make VirtualCursor standard layout type + +sql::recover::VirtualCursor needs to be a standard layout type, but +has members of type std::unique_ptr. However, std::unique_ptr is not +guaranteed to be standard layout. Compiling with clang combined with +gcc-11 libstdc++ fails because of this. Replace std::unique_ptr with +raw pointers. + +Bug: 1189788 +Change-Id: Ia6dc388cc5ef1c0f2afc75f8ca45b9f12687ca9c +--- + sql/recover_module/btree.cc | 21 +++++++++++++++------ + sql/recover_module/btree.h | 17 +++++++++++++---- + sql/recover_module/cursor.cc | 24 ++++++++++++------------ + sql/recover_module/cursor.h | 2 +- + sql/recover_module/pager.cc | 7 +++---- + sql/recover_module/pager.h | 5 +++-- + 6 files changed, 47 insertions(+), 29 deletions(-) + +diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc +index 9ecaafe8a3..839318abf9 100644 +--- a/sql/recover_module/btree.cc ++++ b/sql/recover_module/btree.cc +@@ -135,16 +135,25 @@ static_assert(std::is_trivially_destructible<LeafPageDecoder>::value, + "Move the destructor to the .cc file if it's non-trival"); + #endif // !DCHECK_IS_ON() + +-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept +- : page_id_(db_reader->page_id()), +- db_reader_(db_reader), +- cell_count_(ComputeCellCount(db_reader)), +- next_read_index_(0), +- last_record_size_(0) { ++void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) { ++ DCHECK(db_reader); + DCHECK(IsOnValidPage(db_reader)); ++ page_id_ = db_reader->page_id(); ++ db_reader_ = db_reader; ++ cell_count_ = ComputeCellCount(db_reader); ++ next_read_index_ = 0; ++ last_record_size_ = 0; + DCHECK(DatabasePageReader::IsValidPageId(page_id_)); + } + ++void LeafPageDecoder::Reset() { ++ db_reader_ = nullptr; ++ page_id_ = 0; ++ cell_count_ = 0; ++ next_read_index_ = 0; ++ last_record_size_ = 0; ++} ++ + bool LeafPageDecoder::TryAdvance() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(CanAdvance()); +diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h +index d76d076bf6..33114b01fa 100644 +--- a/sql/recover_module/btree.h ++++ b/sql/recover_module/btree.h +@@ -102,7 +102,7 @@ class LeafPageDecoder { + // + // |db_reader| must have been used to read an inner page of a table B-tree. + // |db_reader| must outlive this instance. +- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept; ++ explicit LeafPageDecoder() noexcept = default; + ~LeafPageDecoder() noexcept = default; + + LeafPageDecoder(const LeafPageDecoder&) = delete; +@@ -150,6 +150,15 @@ class LeafPageDecoder { + // read as long as CanAdvance() returns true. + bool TryAdvance(); + ++ // Initialize with DatabasePageReader ++ void Initialize(DatabasePageReader* db_reader); ++ ++ // Reset internal DatabasePageReader ++ void Reset(); ++ ++ // True if DatabasePageReader is valid ++ bool IsValid() { return (db_reader_ != nullptr); } ++ + // True if the given reader may point to an inner page in a table B-tree. + // + // The last ReadPage() call on |db_reader| must have succeeded. +@@ -163,14 +172,14 @@ class LeafPageDecoder { + static int ComputeCellCount(DatabasePageReader* db_reader); + + // The number of the B-tree page this reader is reading. +- const int64_t page_id_; ++ int64_t page_id_; + // Used to read the tree page. + // + // Raw pointer usage is acceptable because this instance's owner is expected + // to ensure that the DatabasePageReader outlives this. +- DatabasePageReader* const db_reader_; ++ DatabasePageReader* db_reader_; + // Caches the ComputeCellCount() value for this reader's page. +- const int cell_count_ = ComputeCellCount(db_reader_); ++ int cell_count_; + + // The reader's cursor state. + // +diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc +index 0029ff9295..42548bc4b5 100644 +--- a/sql/recover_module/cursor.cc ++++ b/sql/recover_module/cursor.cc +@@ -26,7 +26,7 @@ VirtualCursor::~VirtualCursor() { + int VirtualCursor::First() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + inner_decoders_.clear(); +- leaf_decoder_ = nullptr; ++ leaf_decoder_.Reset(); + + AppendPageDecoder(table_->root_page_id()); + return Next(); +@@ -36,18 +36,18 @@ int VirtualCursor::Next() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + record_reader_.Reset(); + +- while (!inner_decoders_.empty() || leaf_decoder_.get()) { +- if (leaf_decoder_.get()) { +- if (!leaf_decoder_->CanAdvance()) { ++ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) { ++ if (leaf_decoder_.IsValid()) { ++ if (!leaf_decoder_.CanAdvance()) { + // The leaf has been exhausted. Remove it from the DFS stack. +- leaf_decoder_ = nullptr; ++ leaf_decoder_.Reset(); + continue; + } +- if (!leaf_decoder_->TryAdvance()) ++ if (!leaf_decoder_.TryAdvance()) + continue; + +- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(), +- leaf_decoder_->last_record_offset())) { ++ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(), ++ leaf_decoder_.last_record_offset())) { + continue; + } + if (!record_reader_.Initialize()) +@@ -99,13 +99,13 @@ int VirtualCursor::ReadColumn(int column_index, + int64_t VirtualCursor::RowId() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(record_reader_.IsInitialized()); +- DCHECK(leaf_decoder_.get()); +- return leaf_decoder_->last_record_rowid(); ++ DCHECK(leaf_decoder_.IsValid()); ++ return leaf_decoder_.last_record_rowid(); + } + + void VirtualCursor::AppendPageDecoder(int page_id) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- DCHECK(leaf_decoder_.get() == nullptr) ++ DCHECK(!leaf_decoder_.IsValid()) + << __func__ + << " must only be called when the current path has no leaf decoder"; + +@@ -113,7 +113,7 @@ void VirtualCursor::AppendPageDecoder(int page_id) { + return; + + if (LeafPageDecoder::IsOnValidPage(&db_reader_)) { +- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_); ++ leaf_decoder_.Initialize(&db_reader_); + return; + } + +diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h +index afcd6900e1..b15c31d425 100644 +--- a/sql/recover_module/cursor.h ++++ b/sql/recover_module/cursor.h +@@ -129,7 +129,7 @@ class VirtualCursor { + std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_; + + // Decodes the leaf page containing records. +- std::unique_ptr<LeafPageDecoder> leaf_decoder_; ++ LeafPageDecoder leaf_decoder_; + + SEQUENCE_CHECKER(sequence_checker_); + }; +diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc +index 58e75de270..5fe96204e5 100644 +--- a/sql/recover_module/pager.cc ++++ b/sql/recover_module/pager.cc +@@ -23,8 +23,7 @@ static_assert(DatabasePageReader::kMaxPageId <= std::numeric_limits<int>::max(), + "ints are not appropriate for representing page IDs"); + + DatabasePageReader::DatabasePageReader(VirtualTable* table) +- : page_data_(std::make_unique<uint8_t[]>(table->page_size())), +- table_(table) { ++ : page_data_(), table_(table) { + DCHECK(table != nullptr); + DCHECK(IsValidPageSize(table->page_size())); + } +@@ -57,8 +56,8 @@ int DatabasePageReader::ReadPage(int page_id) { + std::numeric_limits<int64_t>::max(), + "The |read_offset| computation above may overflow"); + +- int sqlite_status = +- RawRead(sqlite_file, read_size, read_offset, page_data_.get()); ++ int sqlite_status = RawRead(sqlite_file, read_size, read_offset, ++ const_cast<uint8_t*>(page_data_.data())); + + // |page_id_| needs to be set to kInvalidPageId if the read failed. + // Otherwise, future ReadPage() calls with the previous |page_id_| value +diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h +index 0e388ddc3b..99314e30ff 100644 +--- a/sql/recover_module/pager.h ++++ b/sql/recover_module/pager.h +@@ -5,6 +5,7 @@ + #ifndef SQL_RECOVER_MODULE_PAGER_H_ + #define SQL_RECOVER_MODULE_PAGER_H_ + ++#include <array> + #include <cstdint> + #include <memory> + +@@ -70,7 +71,7 @@ class DatabasePageReader { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK_NE(page_id_, kInvalidPageId) + << "Successful ReadPage() required before accessing pager state"; +- return page_data_.get(); ++ return page_data_.data(); + } + + // The number of bytes in the page read by the last ReadPage() call. +@@ -137,7 +138,7 @@ class DatabasePageReader { + int page_id_ = kInvalidPageId; + // Stores the bytes of the last page successfully read by ReadPage(). + // The content is undefined if the last call to ReadPage() did not succeed. +- const std::unique_ptr<uint8_t[]> page_data_; ++ const std::array<uint8_t, kMaxPageSize> page_data_; + // Raw pointer usage is acceptable because this instance's owner is expected + // to ensure that the VirtualTable outlives this. + VirtualTable* const table_; Deleted: use-system-libraries-in-node.patch =================================================================== --- use-system-libraries-in-node.patch 2021-05-26 02:14:26 UTC (rev 946430) +++ use-system-libraries-in-node.patch 2021-05-26 02:15:35 UTC (rev 946431) @@ -1,52 +0,0 @@ ---- a/third_party/electron_node/BUILD.gn -+++ b/third_party/electron_node/BUILD.gn -@@ -42,6 +42,18 @@ - node_module_version = "" - } - -+if (is_linux) { -+ import("//build/config/linux/pkg_config.gni") -+ -+ pkg_config("cares") { -+ packages = [ "libcares" ] -+ } -+ -+ pkg_config("nghttp2") { -+ packages = [ "libnghttp2" ] -+ } -+} -+ - assert(!node_use_dtrace, "node_use_dtrace not supported in GN") - assert(!node_use_etw, "node_use_etw not supported in GN") - -@@ -190,10 +202,8 @@ - component("node_lib") { - deps = [ - ":node_js2c", -- "deps/cares", - "deps/histogram", - "deps/llhttp", -- "deps/nghttp2", - "deps/uvwasi", - "//third_party/zlib", - "//third_party/brotli:dec", -@@ -209,6 +219,19 @@ - public_configs = [ ":node_lib_config" ] - include_dirs = [ "src" ] - libs = [] -+ if (is_linux) { -+ configs += [ -+ ":cares", -+ ":nghttp2", -+ ] -+ libs += [ "http_parser" ] -+ } else { -+ deps += [ -+ "deps/cares", -+ "deps/http_parser", -+ "deps/nghttp2", -+ ] -+ } - frameworks = [] - cflags_cc = [ - "-Wno-deprecated-declarations", Copied: electron/repos/community-x86_64/use-system-libraries-in-node.patch (from rev 946430, electron/trunk/use-system-libraries-in-node.patch) =================================================================== --- use-system-libraries-in-node.patch (rev 0) +++ use-system-libraries-in-node.patch 2021-05-26 02:15:35 UTC (rev 946431) @@ -0,0 +1,52 @@ +--- a/third_party/electron_node/BUILD.gn ++++ b/third_party/electron_node/BUILD.gn +@@ -42,6 +42,18 @@ + node_module_version = "" + } + ++if (is_linux) { ++ import("//build/config/linux/pkg_config.gni") ++ ++ pkg_config("cares") { ++ packages = [ "libcares" ] ++ } ++ ++ pkg_config("nghttp2") { ++ packages = [ "libnghttp2" ] ++ } ++} ++ + assert(!node_use_dtrace, "node_use_dtrace not supported in GN") + assert(!node_use_etw, "node_use_etw not supported in GN") + +@@ -190,10 +202,8 @@ + component("node_lib") { + deps = [ + ":node_js2c", +- "deps/cares", + "deps/histogram", + "deps/llhttp", +- "deps/nghttp2", + "deps/uvwasi", + "//third_party/zlib", + "//third_party/brotli:dec", +@@ -209,6 +219,19 @@ + public_configs = [ ":node_lib_config" ] + include_dirs = [ "src" ] + libs = [] ++ if (is_linux) { ++ configs += [ ++ ":cares", ++ ":nghttp2", ++ ] ++ libs += [ "http_parser" ] ++ } else { ++ deps += [ ++ "deps/cares", ++ "deps/http_parser", ++ "deps/nghttp2", ++ ] ++ } + frameworks = [] + cflags_cc = [ + "-Wno-deprecated-declarations",