summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authortensor52022-03-20 18:35:06 +0000
committersvntogit2022-03-20 18:35:06 +0000
commit2e573358731b615c515ab1ac887e0f3045fd061f (patch)
treed1968c6ed7074ae4f5f4f1ae39a358a1c6bf2c05
parentc9bb0367fef0bd5c7e6d1a7bc7c0b24970081bde (diff)
downloadaur-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--.SRCINFO8
-rw-r--r--PKGBUILD13
-rw-r--r--wayland-mmap-keymaps-as-read-only-memory.patch59
3 files changed, 75 insertions, 5 deletions
diff --git a/.SRCINFO b/.SRCINFO
index fceb4ce13b85..ae1330bf0f84 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index a0aada92497e..6ff6c6e88b5a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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,