Robin Candau pushed to branch main at Arch Linux / Packaging / Packages / mpv


Commits:
4ec95049 by Robin Candau at 2025-04-04T09:31:48+02:00
upgpkg: 1:0.40.0-2: Backport patch to fix high CPU usage with Wayland clipboard

Closes https://gitlab.archlinux.org/archlinux/packaging/packages/mpv/-/issues/17

- - - - -


3 changed files:

- .SRCINFO
- PKGBUILD
- + fix_wayland_clipboard_high_cpu_usage.patch


Changes:

=====================================
.SRCINFO
=====================================
@@ -1,7 +1,7 @@
 pkgbase = mpv
        pkgdesc = a free, open source, and cross-platform media player
        pkgver = 0.40.0
-       pkgrel = 1
+       pkgrel = 2
        epoch = 1
        url = https://mpv.io/
        arch = x86_64
@@ -60,8 +60,10 @@ pkgbase = mpv
        provides = libmpv.so
        options = !emptydirs
        source = git+https://github.com/mpv-player/mpv.git#tag=v0.40.0?signed
+       source = fix_wayland_clipboard_high_cpu_usage.patch
        validpgpkeys = 145077D82501AA20152CACCE8D769208D5E31419
        sha256sums = 
754d045dba7143b51dd6eb2d32ab3a9a483e6a337e685b581a876bc2e20eddf1
+       sha256sums = 
610227f044853fe88888d2317ead0e29c84ccffbdb7f712c3671187778b5b60e
 
 pkgname = mpv
        depends = alsa-lib


=====================================
PKGBUILD
=====================================
@@ -6,7 +6,7 @@
 pkgname=mpv
 epoch=1
 pkgver=0.40.0
-pkgrel=1
+pkgrel=2
 pkgdesc='a free, open source, and cross-platform media player'
 arch=('x86_64')
 license=('GPL-2.0-or-later AND LGPL-2.1-or-later')
@@ -24,8 +24,19 @@ optdepends=('yt-dlp: for video-sharing websites playback')
 provides=('libmpv.so')
 options=('!emptydirs')
 validpgpkeys=('145077D82501AA20152CACCE8D769208D5E31419') # sfan5 
<[email protected]>
-source=("git+https://github.com/mpv-player/mpv.git#tag=v${pkgver}?signed";)
-sha256sums=('754d045dba7143b51dd6eb2d32ab3a9a483e6a337e685b581a876bc2e20eddf1')
+source=("git+https://github.com/mpv-player/mpv.git#tag=v${pkgver}?signed";
+        'fix_wayland_clipboard_high_cpu_usage.patch')
+sha256sums=('754d045dba7143b51dd6eb2d32ab3a9a483e6a337e685b581a876bc2e20eddf1'
+            '610227f044853fe88888d2317ead0e29c84ccffbdb7f712c3671187778b5b60e')
+
+prepare() {
+  cd "${pkgname}"
+
+  # Fix high CPU usage with Wayland clipboard
+  # See https://github.com/mpv-player/mpv/issues/16139
+  # and 
https://github.com/mpv-player/mpv/commit/d20ded876d27497d3fe6a9494add8106b507a45c
+  patch -Np1 -i "${srcdir}/fix_wayland_clipboard_high_cpu_usage.patch"
+}
 
 build() {
   local _meson_options=(


=====================================
fix_wayland_clipboard_high_cpu_usage.patch
=====================================
@@ -0,0 +1,30 @@
+From d20ded876d27497d3fe6a9494add8106b507a45c Mon Sep 17 00:00:00 2001
+From: llyyr <[email protected]>
+Date: Fri, 28 Mar 2025 15:34:33 +0530
+Subject: [PATCH] clipboard-wayland: prevent reading from hung up fd
+
+This causes mpv to use up 100% of a core if there's an offer for a
+mime_type that mpv doesn't accept with ext_data_control clipboard
+backend.
+---
+ player/clipboard/clipboard-wayland.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/player/clipboard/clipboard-wayland.c 
b/player/clipboard/clipboard-wayland.c
+index c4a5e504724f0..bd8ac35af2da5 100644
+--- a/player/clipboard/clipboard-wayland.c
++++ b/player/clipboard/clipboard-wayland.c
+@@ -348,6 +348,12 @@ static bool clipboard_wayland_dispatch_events(struct 
clipboard_wayland_priv *wl,
+     if (fds[1].revents & POLLIN)
+         return false;
+ 
++    if (fds[2].revents & (POLLERR | POLLHUP | POLLNVAL))
++        destroy_offer(wl->selection_offer);
++
++    if (fds[3].revents & (POLLERR | POLLHUP | POLLNVAL))
++        destroy_offer(wl->primary_selection_offer);
++
+     if (fds[2].revents & POLLIN)
+         get_selection_data(wl, wl->selection_offer, false);
+ 
+



View it on GitLab: 
https://gitlab.archlinux.org/archlinux/packaging/packages/mpv/-/commit/4ec95049c298b036e6ee4a99e640301371028e23

-- 
View it on GitLab: 
https://gitlab.archlinux.org/archlinux/packaging/packages/mpv/-/commit/4ec95049c298b036e6ee4a99e640301371028e23
You're receiving this email because of your account on gitlab.archlinux.org.


Reply via email to