From cabfc6705942d40d220ddafecc7f5ae125aa47f4 Mon Sep 17 00:00:00 2001 From: lemmi Date: Thu, 20 Jul 2023 08:58:13 +0200 Subject: [PATCH 1/2] btdu: update to 0.5.1. --- srcpkgs/btdu/template | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/srcpkgs/btdu/template b/srcpkgs/btdu/template index 3e08d8262b4ce..ad42c058289e5 100644 --- a/srcpkgs/btdu/template +++ b/srcpkgs/btdu/template @@ -1,10 +1,10 @@ # Template file for 'btdu' pkgname=btdu -version=0.5.0 +version=0.5.1 revision=1 # fails to build on musl due to different argument types for ioctl # struct packing seems to differ on i686 archs and therefore d-btrfs fails -archs="x86_64" +archs="x86_64*" hostmakedepends="ldc dub" makedepends="zlib-devel ncurses-devel" short_desc="Sampling disk usage profiler for btrfs" @@ -12,7 +12,7 @@ maintainer="Siddhartha Menon " license="GPL-2.0-only" homepage="https://github.com/CyberShadow/btdu" distfiles="https://github.com/CyberShadow/btdu/archive/v${version}.tar.gz" -checksum=90ba4d8997575993e9d39a503779fb32b37bb62b8d9386776e95743bfc859606 +checksum=566269f365811f6db53280fc5476a7fcf34791396ee4e090c150af4280b35ba5 nocross="dmd compilation fails on cross" do_build() { From 755937f2a9bfc81150fa7650af2aa4a2434a0f99 Mon Sep 17 00:00:00 2001 From: lemmi Date: Sun, 23 Jul 2023 09:38:47 +0200 Subject: [PATCH 2/2] mpv: fix pipewire native client for pipewire-0.3.75_1 --- srcpkgs/mpv/patches/pipewire-native.patch | 78 +++++++++++++++++++++++ srcpkgs/mpv/template | 2 +- 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/mpv/patches/pipewire-native.patch diff --git a/srcpkgs/mpv/patches/pipewire-native.patch b/srcpkgs/mpv/patches/pipewire-native.patch new file mode 100644 index 0000000000000..8b2fe79530c5a --- /dev/null +++ b/srcpkgs/mpv/patches/pipewire-native.patch @@ -0,0 +1,78 @@ +From ac6bb48728af60c706a6a92573ea13651adb6d7d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= +Date: Sun, 23 Jul 2023 09:10:55 +0200 +Subject: [PATCH] ao_pipewire: for_each_sink: properly check termination + condition + +Doing a pw_thread_loop_wait() without checking conditions is invalid. +The thread loop could be signalled for other reasons and in this case +the wait needs to continue. + +PipeWire added such additional signaling in +commit 33be898130f0 ("thread-loop: signal when started"). + +This meant that for_each_sink would return before the callbacks have +fired and session_has_sink() would incorrectly return "false", failing +the initialization of ao_pipewire. + +Fixes #11995 +--- + audio/out/ao_pipewire.c | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +diff --git a/audio/out/ao_pipewire.c b/audio/out/ao_pipewire.c +index 8e93dc5341b..0a39e4e1a59 100644 +--- a/audio/out/ao_pipewire.c ++++ b/audio/out/ao_pipewire.c +@@ -354,6 +354,11 @@ static void for_each_sink_registry_event_global(void *data, uint32_t id, + } + + ++struct for_each_done_ctx { ++ struct pw_thread_loop *loop; ++ bool done; ++}; ++ + static const struct pw_registry_events for_each_sink_registry_events = { + .version = PW_VERSION_REGISTRY_EVENTS, + .global = for_each_sink_registry_event_global, +@@ -361,8 +366,9 @@ static const struct pw_registry_events for_each_sink_registry_events = { + + static void for_each_sink_done(void *data, uint32_t it, int seq) + { +- struct pw_thread_loop *loop = data; +- pw_thread_loop_signal(loop, false); ++ struct for_each_done_ctx *ctx = data; ++ ctx->done = true; ++ pw_thread_loop_signal(ctx->loop, false); + } + + static const struct pw_core_events for_each_sink_core_events = { +@@ -376,12 +382,16 @@ static int for_each_sink(struct ao *ao, void (cb) (struct ao *ao, uint32_t id, + struct priv *priv = ao->priv; + struct pw_registry *registry; + struct spa_hook core_listener; ++ struct for_each_done_ctx done_ctx = { ++ .loop = priv->loop, ++ .done = false, ++ }; + int ret = -1; + + pw_thread_loop_lock(priv->loop); + + spa_zero(core_listener); +- if (pw_core_add_listener(priv->core, &core_listener, &for_each_sink_core_events, priv->loop) < 0) ++ if (pw_core_add_listener(priv->core, &core_listener, &for_each_sink_core_events, &done_ctx) < 0) + goto unlock_loop; + + registry = pw_core_get_registry(priv->core, PW_VERSION_REGISTRY, 0); +@@ -400,7 +410,8 @@ static int for_each_sink(struct ao *ao, void (cb) (struct ao *ao, uint32_t id, + if (pw_registry_add_listener(registry, ®istry_listener, &for_each_sink_registry_events, &revents_ctx) < 0) + goto destroy_registry; + +- pw_thread_loop_wait(priv->loop); ++ while (!done_ctx.done) ++ pw_thread_loop_wait(priv->loop); + + spa_hook_remove(®istry_listener); + diff --git a/srcpkgs/mpv/template b/srcpkgs/mpv/template index e163c496c6ebb..d4fefbf5e3c7c 100644 --- a/srcpkgs/mpv/template +++ b/srcpkgs/mpv/template @@ -1,7 +1,7 @@ # Template file for 'mpv' pkgname=mpv version=0.35.1 -revision=2 +revision=3 build_style=meson configure_args="-Dcdda=enabled -Ddvbin=enabled -Ddvdnav=enabled -Dlibmpv=true -Dcplugins=enabled