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.
