diff options
author | tensor5 | 2022-03-20 18:35:06 +0000 |
---|---|---|
committer | svntogit | 2022-03-20 18:35:06 +0000 |
commit | 2e573358731b615c515ab1ac887e0f3045fd061f (patch) | |
tree | d1968c6ed7074ae4f5f4f1ae39a358a1c6bf2c05 | |
parent | c9bb0367fef0bd5c7e6d1a7bc7c0b24970081bde (diff) | |
download | aur-2e573358731b615c515ab1ac887e0f3045fd061f.tar.gz |
upgpkg: electron13 13.6.9-2
Fix FS#73544.
git-svn-id: file:///srv/repos/svn-community/svn@1164766 9fca08f4-af9d-4005-b8df-a31f2cc04f65
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | PKGBUILD | 13 | ||||
-rw-r--r-- | wayland-mmap-keymaps-as-read-only-memory.patch | 59 |
3 files changed, 75 insertions, 5 deletions
@@ -1,7 +1,7 @@ pkgbase = electron13 pkgdesc = Build cross platform desktop apps with web technologies pkgver = 13.6.9 - pkgrel = 1 + pkgrel = 2 url = https://electronjs.org/ arch = x86_64 license = MIT @@ -22,6 +22,10 @@ pkgbase = electron13 makedepends = pciutils makedepends = pipewire makedepends = python2 + makedepends = python + makedepends = python-httplib2 + makedepends = python-pyparsing + makedepends = python-six makedepends = wget makedepends = yarn depends = c-ares @@ -61,6 +65,7 @@ pkgbase = electron13 source = sql-make-VirtualCursor-standard-layout-type.patch source = unbundle-use-char16_t-as-UCHAR_TYPE.patch source = ffmpeg5.patch + source = wayland-mmap-keymaps-as-read-only-memory.patch sha256sums = SKIP sha256sums = SKIP sha256sums = 171525009003a9ed1182cfcb6f407d7169d9a731a474304e263029376719f55a @@ -83,5 +88,6 @@ pkgbase = electron13 sha256sums = dd317f85e5abfdcfc89c6f23f4c8edbcdebdd5e083dcec770e5da49ee647d150 sha256sums = 59a59a60a08b335fe8647fdf0f9d2288d236ebf2cc9626396d0c4d032fd2b25d sha256sums = 4f32b815349357ef1f17b36059cee588c994472b9754a194fff41ec21a93826b + sha256sums = 88f0fa78de1805e57e70b46caf946544bbfad205f95f723eddf7fc7aad58af40 pkgname = electron13 @@ -5,7 +5,7 @@ pkgver=13.6.9 _commit=5c5b2835b64e6a2b86b8467288908467e8228890 _chromiumver=91.0.4472.164 _gcc_patchset=5 -pkgrel=1 +pkgrel=2 pkgdesc='Build cross platform desktop apps with web technologies' arch=('x86_64') url='https://electronjs.org/' @@ -14,7 +14,8 @@ depends=('c-ares' 'ffmpeg' 'gtk3' 'libevent' 'libxslt' 'minizip' 'nss' 're2' 'snappy') makedepends=('clang' 'git' 'gn' 'gperf' 'harfbuzz-icu' 'http-parser' 'java-runtime-headless' 'jsoncpp' 'libnotify' 'lld' 'llvm' 'ninja' - 'npm' 'pciutils' 'pipewire' 'python2' 'wget' 'yarn') + 'npm' 'pciutils' 'pipewire' 'python2' 'python' 'python-httplib2' + 'python-pyparsing' 'python-six' 'wget' 'yarn') optdepends=('kde-cli-tools: file deletion support (kioclient5)' 'libappindicator-gtk3: StatusNotifierItem support' 'pipewire: WebRTC desktop sharing under Wayland' @@ -43,6 +44,7 @@ source=('git+https://github.com/electron/electron.git' 'sql-make-VirtualCursor-standard-layout-type.patch' 'unbundle-use-char16_t-as-UCHAR_TYPE.patch' 'ffmpeg5.patch' + 'wayland-mmap-keymaps-as-read-only-memory.patch' ) sha256sums=('SKIP' 'SKIP' @@ -65,7 +67,9 @@ sha256sums=('SKIP' '574785a21168c3e9b7aa82630713ceb6ced12f699133db66b10fc84b7bb2c631' 'dd317f85e5abfdcfc89c6f23f4c8edbcdebdd5e083dcec770e5da49ee647d150' '59a59a60a08b335fe8647fdf0f9d2288d236ebf2cc9626396d0c4d032fd2b25d' - '4f32b815349357ef1f17b36059cee588c994472b9754a194fff41ec21a93826b') + '4f32b815349357ef1f17b36059cee588c994472b9754a194fff41ec21a93826b' + '88f0fa78de1805e57e70b46caf946544bbfad205f95f723eddf7fc7aad58af40' + ) _system_libs=('ffmpeg' 'flac' @@ -110,7 +114,7 @@ prepare() { }, ]" > .gclient - python2 "${srcdir}/depot_tools/gclient.py" sync \ + python3 "${srcdir}/depot_tools/gclient.py" sync \ --with_branch_heads \ --with_tags \ --nohooks @@ -170,6 +174,7 @@ prepare() { patch -Np1 -i ../sql-make-VirtualCursor-standard-layout-type.patch patch -Np1 -i ../std-max-fix.patch patch -Np1 -i ../unbundle-use-char16_t-as-UCHAR_TYPE.patch + patch -Np1 -i ../wayland-mmap-keymaps-as-read-only-memory.patch patch -Np1 -i ../use-system-libraries-in-node.patch patch -Np1 -i ../default_app-icon.patch # Icon from .desktop file diff --git a/wayland-mmap-keymaps-as-read-only-memory.patch b/wayland-mmap-keymaps-as-read-only-memory.patch new file mode 100644 index 000000000000..a9a5dd02bb88 --- /dev/null +++ b/wayland-mmap-keymaps-as-read-only-memory.patch @@ -0,0 +1,59 @@ +--- a/ui/ozone/platform/wayland/host/wayland_keyboard.cc ++++ b/ui/ozone/platform/wayland/host/wayland_keyboard.cc +@@ -4,10 +4,14 @@ + + #include "ui/ozone/platform/wayland/host/wayland_keyboard.h" + ++#include <sys/mman.h> ++ ++#include <cstddef> ++#include <cstring> + #include <utility> + +-#include "base/files/scoped_file.h" +-#include "base/memory/read_only_shared_memory_region.h" ++#include "base/logging.h" ++#include "base/memory/ref_counted_memory.h" + #include "base/unguessable_token.h" + #include "ui/base/buildflags.h" + #include "ui/events/base_event_utils.h" +@@ -111,26 +115,26 @@ + void WaylandKeyboard::Keymap(void* data, + wl_keyboard* obj, + uint32_t format, +- int32_t keymap_fd, ++ int32_t fd, + uint32_t size) { + WaylandKeyboard* keyboard = static_cast<WaylandKeyboard*>(data); + DCHECK(keyboard); + +- base::ScopedFD fd(keymap_fd); +- auto length = size - 1; +- auto shmen = base::subtle::PlatformSharedMemoryRegion::Take( +- std::move(fd), base::subtle::PlatformSharedMemoryRegion::Mode::kReadOnly, +- length, base::UnguessableToken::Create()); +- auto mapped_memory = +- base::ReadOnlySharedMemoryRegion::Deserialize(std::move(shmen)).Map(); +- const char* keymap = mapped_memory.GetMemoryAs<char>(); ++ if (!data || format != WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1) ++ return; + +- if (!keymap || format != WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1) ++ void* keymap = mmap(nullptr, size, PROT_READ, MAP_SHARED, fd, 0); ++ if (keymap == MAP_FAILED) { ++ DPLOG(ERROR) << "Failed to map XKB keymap."; + return; ++ } + +- bool success = keyboard->layout_engine_->SetCurrentLayoutFromBuffer( +- keymap, mapped_memory.size()); +- DCHECK(success) << "Failed to set the XKB keyboard mapping."; ++ const char* keymap_string = static_cast<const char*>(keymap); ++ if (!keyboard->layout_engine_->SetCurrentLayoutFromBuffer( ++ keymap_string, strnlen(keymap_string, size))) { ++ DLOG(ERROR) << "Failed to set XKB keymap."; ++ } ++ munmap(keymap, size); + } + + void WaylandKeyboard::Enter(void* data, |