[arch-commits] Commit in electron13/trunk (2 files)
Nicola Squartini
tensor5 at gemini.archlinux.org
Sun Mar 20 18:35:06 UTC 2022
Date: Sunday, March 20, 2022 @ 18:35:06
Author: tensor5
Revision: 1164766
upgpkg: electron13 13.6.9-2
Fix FS#73544.
Added:
electron13/trunk/wayland-mmap-keymaps-as-read-only-memory.patch
Modified:
electron13/trunk/PKGBUILD
------------------------------------------------+
PKGBUILD | 13 +++--
wayland-mmap-keymaps-as-read-only-memory.patch | 59 +++++++++++++++++++++++
2 files changed, 68 insertions(+), 4 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2022-03-20 18:35:01 UTC (rev 1164765)
+++ PKGBUILD 2022-03-20 18:35:06 UTC (rev 1164766)
@@ -5,7 +5,7 @@
_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 @@
'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 @@
'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 @@
'574785a21168c3e9b7aa82630713ceb6ced12f699133db66b10fc84b7bb2c631'
'dd317f85e5abfdcfc89c6f23f4c8edbcdebdd5e083dcec770e5da49ee647d150'
'59a59a60a08b335fe8647fdf0f9d2288d236ebf2cc9626396d0c4d032fd2b25d'
- '4f32b815349357ef1f17b36059cee588c994472b9754a194fff41ec21a93826b')
+ '4f32b815349357ef1f17b36059cee588c994472b9754a194fff41ec21a93826b'
+ '88f0fa78de1805e57e70b46caf946544bbfad205f95f723eddf7fc7aad58af40'
+ )
_system_libs=('ffmpeg'
'flac'
@@ -110,7 +114,7 @@
},
]" > .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 @@
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
Added: wayland-mmap-keymaps-as-read-only-memory.patch
===================================================================
--- wayland-mmap-keymaps-as-read-only-memory.patch (rev 0)
+++ wayland-mmap-keymaps-as-read-only-memory.patch 2022-03-20 18:35:06 UTC (rev 1164766)
@@ -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,
More information about the arch-commits
mailing list