commit:     348f247b9c82ea32935715256e7e5f51dcdeadc4
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 16 00:38:00 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jan 16 00:38:00 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=348f247b

media-video/pipewire: drop 1.4.7-r4, 1.4.8-r4

Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-video/pipewire/Manifest                      |   2 -
 .../files/1.4.8/0001-systemd-unit-sandbox.patch    |  41 --
 .../0002-alsa-dont-fail-if-3-periods_min.patch     |  42 --
 .../files/1.4.8/0003-adapter-fix-Start.patch       |  54 --
 .../1.4.8/0004-alsa-use-minimum-period-size.patch  | 119 -----
 .../1.4.8/0005-avahi-fd-allocation-errors.patch    |  45 --
 .../files/1.4.8/0006-revert-impl-node.patch        |  46 --
 .../1.4.8/0007-impl-node-unprepare-once.patch      |  51 --
 .../1.4.8/0008-control-fix-event-compare.patch     |  48 --
 media-video/pipewire/pipewire-1.4.7-r4.ebuild      | 557 ---------------------
 media-video/pipewire/pipewire-1.4.8-r4.ebuild      | 557 ---------------------
 11 files changed, 1562 deletions(-)

diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest
index 9b57e801ae50..dfb888e2d472 100644
--- a/media-video/pipewire/Manifest
+++ b/media-video/pipewire/Manifest
@@ -1,5 +1,3 @@
 DIST pipewire-1.4.0-docs.tar.xz 67012 BLAKE2B 
5d9f7432e33c86a5172ea310742a8e50312870eabab7f4357a1234580b8258c9bb83daa73fdcc1228c61629eb8555c00b961704671e55c6ed030f6c95b043397
 SHA512 
33791b64a577ead6975e0a615b1e4382ecafcc6f3dd6409ebd360c533312cab5f55f92a394bc42629ec4f53f17790ddedfb26a2b35cb4aa06ea07fd30bfce3d6
 DIST 
pipewire-1.4.7-0001-don-t-include-standard-C-headers-inside-of-extern-C.patch.xz
 16180 BLAKE2B 
96bde7ab04f6f7b6fc08f3f39d5a4202563df214440d24c24c0367ff2eb51d0d31307f9b982a8fbd9e88dd7ab1d0ad204123abe90e10ccf1479856687593a752
 SHA512 
fbd9644a5df81ee4bc9687f6a8b69a0bf12deef43d749c9c5cbb976f461771deeae4bd13340a6acaffae4b0187221cf734be2b3b62408a4ce79d70575a7e664b
-DIST pipewire-1.4.7.tar.bz2 1928174 BLAKE2B 
2c581516e6044c4d8ad874cea4c171ced9e6c67658932dba365ccb8c82b8e896b353d415dc5cc83f437338c92499a0a1c2957e6c390429a7c8f966645d1df8c5
 SHA512 
f63b3b6fb2e3c75f12f2ddd5c67961b7f5ac83da78af7dd7074ccc9b021752d68b5f1831bf661b56df676519f24aa065fda2bed37622e1a3763b0dc221a34226
-DIST pipewire-1.4.8.tar.bz2 1928742 BLAKE2B 
8b8e780a7ae096bce241229bdd391be7609f289bdd21008768954ed3ec1cf6e507c086b6ab95eedb0e6e6d33ee6cf60103137493927f43a82309ff4a59e5a4a1
 SHA512 
abc6c558b94d6b2a78a6655ebe982a319d0e36cd3c086603bd250a4067bf51ede6c071fbafb37227758dcdd392afecfd32eaef4641cd765507659c03abf30e10
 DIST pipewire-1.4.9.tar.bz2 1931548 BLAKE2B 
5f690a37697cdb67c68efe13edf323f0d1322c4c0760ae958dad3f33d8f4096ac13dc5e43826a8b986bd72e7fce3a60baa6f0ea3c1d3ffe65aa5759e33edde56
 SHA512 
369054d920133904a8df709b1be05f9ef0e7e99e1ae10e1d200315ce1200e20d5e20a91f40dd17dd3177eef59de7d47dfdd6161ec6f057b78140690fcfcc1c2e

diff --git a/media-video/pipewire/files/1.4.8/0001-systemd-unit-sandbox.patch 
b/media-video/pipewire/files/1.4.8/0001-systemd-unit-sandbox.patch
deleted file mode 100644
index 8c7014f7e9f4..000000000000
--- a/media-video/pipewire/files/1.4.8/0001-systemd-unit-sandbox.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/8f35e18d18b18b8db959793fe73fc594e5da8cd5
-
-From 8f35e18d18b18b8db959793fe73fc594e5da8cd5 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <[email protected]>
-Date: Wed, 17 Sep 2025 10:21:10 +0200
-Subject: [PATCH] systemd: remove RestrictNamespaces from service file
-
-Wireplumber loads the libcamera nodes into the pipewire server.
-We need to remove the RestrictNamespaces option from the service file
-to allow libcamera to load sandboxed IPA modules.
----
- src/daemon/systemd/system/pipewire.service.in | 1 -
- src/daemon/systemd/user/pipewire.service.in   | 1 -
- 2 files changed, 2 deletions(-)
-
-diff --git a/src/daemon/systemd/system/pipewire.service.in 
b/src/daemon/systemd/system/pipewire.service.in
-index dc8db3f8f0..aeddea3008 100644
---- a/src/daemon/systemd/system/pipewire.service.in
-+++ b/src/daemon/systemd/system/pipewire.service.in
-@@ -18,7 +18,6 @@ Requires=pipewire.socket
- LockPersonality=yes
- MemoryDenyWriteExecute=yes
- NoNewPrivileges=yes
--RestrictNamespaces=yes
- SystemCallArchitectures=native
- SystemCallFilter=@system-service
- Type=simple
-diff --git a/src/daemon/systemd/user/pipewire.service.in 
b/src/daemon/systemd/user/pipewire.service.in
-index 27818b4b94..c2621e421d 100644
---- a/src/daemon/systemd/user/pipewire.service.in
-+++ b/src/daemon/systemd/user/pipewire.service.in
-@@ -20,7 +20,6 @@ ConditionUser=!root
- LockPersonality=yes
- MemoryDenyWriteExecute=yes
- NoNewPrivileges=yes
--RestrictNamespaces=yes
- SystemCallArchitectures=native
- SystemCallFilter=@system-service mincore
- Type=simple
--- 
-GitLab

diff --git 
a/media-video/pipewire/files/1.4.8/0002-alsa-dont-fail-if-3-periods_min.patch 
b/media-video/pipewire/files/1.4.8/0002-alsa-dont-fail-if-3-periods_min.patch
deleted file mode 100644
index 43544962886e..000000000000
--- 
a/media-video/pipewire/files/1.4.8/0002-alsa-dont-fail-if-3-periods_min.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4912
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/dd3798487c2ffae9a6b294eb475c72fe1684d3ea
-
-From dd3798487c2ffae9a6b294eb475c72fe1684d3ea Mon Sep 17 00:00:00 2001
-From: Pauli Virtanen <[email protected]>
-Date: Mon, 22 Sep 2025 20:27:19 +0300
-Subject: [PATCH] alsa: don't fail if 3 periods_min fails
-
-Some drivers (emu10k1) appear to not necessarily support more than 2
-periods.
-
-Don't fail start if snd_pcm_hw_params_set_periods_min() fails, then we
-just set nearest possible periods and buffer sizes.
----
- spa/plugins/alsa/alsa-pcm.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/spa/plugins/alsa/alsa-pcm.c b/spa/plugins/alsa/alsa-pcm.c
-index cea6d3e44d..509e187423 100644
---- a/spa/plugins/alsa/alsa-pcm.c
-+++ b/spa/plugins/alsa/alsa-pcm.c
-@@ -2358,10 +2358,14 @@ int spa_alsa_set_format(struct state *state, struct 
spa_audio_info *fmt, uint32_
-               snd_pcm_uframes_t period_size_max;
-               unsigned int periods_min = (periods == UINT_MAX) ? 3 : periods;
- 
--              CHECK(snd_pcm_hw_params_set_periods_min(hndl, params, 
&periods_min, &dir), "set_periods_min");
--              CHECK(snd_pcm_hw_params_get_period_size_max(params, 
&period_size_max, &dir), "get_period_size_max");
--              if (period_size > period_size_max)
--                      period_size = SPA_MIN(period_size, 
flp2(period_size_max));
-+              err = snd_pcm_hw_params_set_periods_min(hndl, params, 
&periods_min, &dir);
-+              if (!err) {
-+                      CHECK(snd_pcm_hw_params_get_period_size_max(params, 
&period_size_max, &dir), "get_period_size_max");
-+                      if (period_size > period_size_max)
-+                              period_size = SPA_MIN(period_size, 
flp2(period_size_max));
-+              } else {
-+                      spa_log_debug(state->log, "set_periods_min: %s", 
snd_strerror(err));
-+              }
-       }
- 
-       CHECK(snd_pcm_hw_params_set_period_size_near(hndl, params, 
&period_size, &dir), "set_period_size_near");
--- 
-GitLab

diff --git a/media-video/pipewire/files/1.4.8/0003-adapter-fix-Start.patch 
b/media-video/pipewire/files/1.4.8/0003-adapter-fix-Start.patch
deleted file mode 100644
index 8eefaa8f5257..000000000000
--- a/media-video/pipewire/files/1.4.8/0003-adapter-fix-Start.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/78937ee0ece9dc5f35c7bc6fa9fad3abe9b3eb9f
-
-From 78937ee0ece9dc5f35c7bc6fa9fad3abe9b3eb9f Mon Sep 17 00:00:00 2001
-From: Wim Taymans <[email protected]>
-Date: Wed, 24 Sep 2025 12:36:13 +0200
-Subject: [PATCH] adapter: fix Start of adapter
-
-Commit cbbf37c3b8b6c77e111ab229c3315aadb9690bf9 changed the logic of the
-Start command. Before this commit, when there was no converter, the
-follower would always get the Start command. After the commit, the
-follower would only get Start when previously Paused.
-
-This however breaks when we set a format or buffers on the follower
-without a converter because those actions might change the state of the
-follower to Paused implicitly.
-
-We should simply remove the started check here and always call Start on
-the converter and follower, the implementations themselves will keep track
-if anything needs to be done.
-
-Fixes #4911
----
- spa/plugins/audioconvert/audioadapter.c | 2 --
- spa/plugins/videoconvert/videoadapter.c | 2 --
- 2 files changed, 4 deletions(-)
-
-diff --git a/spa/plugins/audioconvert/audioadapter.c 
b/spa/plugins/audioconvert/audioadapter.c
-index 2e42b6f432..b4535dd765 100644
---- a/spa/plugins/audioconvert/audioadapter.c
-+++ b/spa/plugins/audioconvert/audioadapter.c
-@@ -1013,8 +1013,6 @@ static int impl_node_send_command(void *object, const 
struct spa_command *comman
-       switch (SPA_NODE_COMMAND_ID(command)) {
-       case SPA_NODE_COMMAND_Start:
-               spa_log_debug(this->log, "%p: starting %d", this, 
this->started);
--              if (this->started)
--                      return 0;
-               if ((res = negotiate_format(this)) < 0)
-                       return res;
-               this->ready = true;
-diff --git a/spa/plugins/videoconvert/videoadapter.c 
b/spa/plugins/videoconvert/videoadapter.c
-index 5b101ff3d9..c901b99e6c 100644
---- a/spa/plugins/videoconvert/videoadapter.c
-+++ b/spa/plugins/videoconvert/videoadapter.c
-@@ -980,8 +980,6 @@ static int impl_node_send_command(void *object, const 
struct spa_command *comman
-       switch (SPA_NODE_COMMAND_ID(command)) {
-       case SPA_NODE_COMMAND_Start:
-               spa_log_debug(this->log, "%p: starting %d", this, 
this->started);
--              if (this->started)
--                      return 0;
-               if ((res = negotiate_format(this)) < 0)
-                       return res;
-               this->ready = true;
--- 
-GitLab

diff --git 
a/media-video/pipewire/files/1.4.8/0004-alsa-use-minimum-period-size.patch 
b/media-video/pipewire/files/1.4.8/0004-alsa-use-minimum-period-size.patch
deleted file mode 100644
index 12f1dddb574b..000000000000
--- a/media-video/pipewire/files/1.4.8/0004-alsa-use-minimum-period-size.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/ba7790123c345002b08712babc7bf252f39e4485
-
-From ba7790123c345002b08712babc7bf252f39e4485 Mon Sep 17 00:00:00 2001
-From: Peter Ujfalusi <[email protected]>
-Date: Tue, 23 Sep 2025 13:20:12 +0300
-Subject: [PATCH] alsa: Use the minimum period size as headroom for SOF cards
-
-Configure the headroom to be equal of the minimum allowed period size for
-the configuration.
-
-This is desirable when the ALSA driver's hw_ptr is 'jumpy' due to
-underplaying hardware architecture, like SOF.
-In case of SOF the DSP firmware will burst read at stream start to fill
-it's host facing buffer and later settles to a constant pace. The minimal
-period size is constrained by the driver to cover the initial burst and
-settling time of the hw_ptr.
-
-Guard this mode of working with a new boolean flag, which is only enabled
-for SOF cards, kept it disabled for other cards to avoid any unforeseen
-side effects.
-
-Even if the use-period-size-min-as-headroom is set to true, the manual
-headroom configuration will take precedence to allow experimentation.
-
-Link: https://github.com/thesofproject/linux/issues/5284
-Link: https://github.com/thesofproject/sof/issues/9695#issuecomment-2569033847
-Link: https://github.com/thesofproject/sof/issues/10172
-Link: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4489
-Signed-off-by: Peter Ujfalusi <[email protected]>
----
- spa/plugins/alsa/alsa-pcm.c | 26 ++++++++++++++++++++++----
- spa/plugins/alsa/alsa-pcm.h |  2 ++
- 2 files changed, 24 insertions(+), 4 deletions(-)
-
-diff --git a/spa/plugins/alsa/alsa-pcm.c b/spa/plugins/alsa/alsa-pcm.c
-index 509e187423..1bb31e7a32 100644
---- a/spa/plugins/alsa/alsa-pcm.c
-+++ b/spa/plugins/alsa/alsa-pcm.c
-@@ -969,6 +969,13 @@ int spa_alsa_init(struct state *state, const struct 
spa_dict *info)
-       if ((str = spa_dict_lookup(info, "device.profile.pro")) != NULL)
-               state->is_pro = spa_atob(str);
- 
-+      if (info && spa_strstartswith(spa_dict_lookup(info, 
SPA_KEY_API_ALSA_CARD_NAME), "sof-") &&
-+          state->stream == SND_PCM_STREAM_PLAYBACK) {
-+              state->use_period_size_min_as_headroom = true;
-+              spa_log_info(state->log,
-+                           "ALSA SOF driver detected: default 
api.alsa.use-period-size-min-as-headroom=true");
-+      }
-+
-       state->multi_rate = true;
-       state->htimestamp = false;
-       state->htimestamp_max_errors = MAX_HTIMESTAMP_ERROR;
-@@ -2032,7 +2039,12 @@ static void recalc_headroom(struct state *state)
-       if (state->position != NULL)
-               rate = state->position->clock.target_rate.denom;
- 
--      state->headroom = state->default_headroom;
-+      if (state->use_period_size_min_as_headroom)
-+              state->headroom = state->default_headroom ?
-+                                state->default_headroom : 
state->period_size_min;
-+      else
-+              state->headroom = state->default_headroom;
-+
-       if (!state->disable_tsched || state->resample) {
-               /* When using timers, we might miss the pointer update for batch
-                * devices so add some extra headroom. With IRQ, we know the 
pointers
-@@ -2349,6 +2361,12 @@ int spa_alsa_set_format(struct state *state, struct 
spa_audio_info *fmt, uint32_
-               periods = UINT_MAX;
-       }
- 
-+      /* Query the minimum period size for this configuration
-+       * This information is used as headroom if 
use_period_size_min_as_headroom is
-+       * set and default_headroom is 0 (not forced by user)
-+       */
-+      CHECK(snd_pcm_hw_params_get_period_size_min(params, 
&state->period_size_min, &dir), "snd_pcm_hw_params_get_period_size_min");
-+
-       if (state->default_period_size == 0) {
-               /* Some devices (FireWire) don't produce audio if period number 
is too
-                * small, so force a minimum. This will restrict possible 
period sizes if
-@@ -2408,14 +2426,14 @@ int spa_alsa_set_format(struct state *state, struct 
spa_audio_info *fmt, uint32_
-       recalc_headroom(state);
- 
-       spa_log_info(state->log, "%s: format:%s access:%s-%s rate:%d 
channels:%d "
--                      "buffer frames %lu, period frames %lu, periods %u, 
frame_size %zd "
-+                      "buffer frames %lu, period frames %lu (min:%lu), 
periods %u, frame_size %zd "
-                       "headroom %u start-delay:%u batch:%u tsched:%u 
resample:%u",
-                       state->name, snd_pcm_format_name(state->format),
-                       state->use_mmap ? "mmap" : "rw",
-                       planar ? "planar" : "interleaved",
-                       state->rate, state->channels, state->buffer_frames, 
state->period_frames,
--                      periods, state->frame_size, state->headroom, 
state->start_delay,
--                      state->is_batch, !state->disable_tsched, 
state->resample);
-+                      state->period_size_min, periods, state->frame_size, 
state->headroom,
-+                      state->start_delay, state->is_batch, 
!state->disable_tsched, state->resample);
- 
-       /* write the parameters to device */
-       CHECK(snd_pcm_hw_params(hndl, params), "set_hw_params");
-diff --git a/spa/plugins/alsa/alsa-pcm.h b/spa/plugins/alsa/alsa-pcm.h
-index 576144bfeb..6f2876fbc3 100644
---- a/spa/plugins/alsa/alsa-pcm.h
-+++ b/spa/plugins/alsa/alsa-pcm.h
-@@ -203,6 +203,7 @@ struct state {
-       int n_fds;
-       uint32_t threshold;
-       uint32_t last_threshold;
-+      snd_pcm_uframes_t period_size_min;
-       uint32_t headroom;
-       uint32_t start_delay;
-       uint32_t min_delay;
-@@ -233,6 +234,7 @@ struct state {
-       unsigned int linked:1;
-       unsigned int is_batch:1;
-       unsigned int force_rate:1;
-+      unsigned int use_period_size_min_as_headroom:1;
- 
-       uint64_t iec958_codecs;
- 
--- 
-GitLab

diff --git 
a/media-video/pipewire/files/1.4.8/0005-avahi-fd-allocation-errors.patch 
b/media-video/pipewire/files/1.4.8/0005-avahi-fd-allocation-errors.patch
deleted file mode 100644
index 5167061a91ef..000000000000
--- a/media-video/pipewire/files/1.4.8/0005-avahi-fd-allocation-errors.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/636cbae9b6cebc4ba55903e2a686f4c4a2bd4193
-
-From 636cbae9b6cebc4ba55903e2a686f4c4a2bd4193 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <[email protected]>
-Date: Fri, 26 Sep 2025 10:52:40 +0200
-Subject: [PATCH] avahi: handle fd allocation errors
-
-When we fail to allocate an io source or a timerfd, return NULL instead
-of crashing later on.
-
-See #4913
----
- src/modules/module-zeroconf-discover/avahi-poll.c | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/src/modules/module-zeroconf-discover/avahi-poll.c 
b/src/modules/module-zeroconf-discover/avahi-poll.c
-index ab54888f65..65b64736af 100644
---- a/src/modules/module-zeroconf-discover/avahi-poll.c
-+++ b/src/modules/module-zeroconf-discover/avahi-poll.c
-@@ -72,7 +72,10 @@ static AvahiWatch* watch_new(const AvahiPoll *api, int fd, 
AvahiWatchEvent event
-       w->userdata = userdata;
-       w->source = pw_loop_add_io(impl->loop, fd, to_pw_events(event),
-                       false, watch_callback, w);
--
-+      if (w->source == NULL) {
-+              free(w);
-+              return NULL;
-+      }
-       return w;
- }
- 
-@@ -117,7 +120,10 @@ static AvahiTimeout* timeout_new(const AvahiPoll *api, 
const struct timeval *tv,
-       w->callback = callback;
-       w->userdata = userdata;
-       w->source = pw_loop_add_timer(impl->loop, timeout_callback, w);
--
-+      if (w->source == NULL) {
-+              free(w);
-+              return NULL;
-+      }
-       if (tv != NULL) {
-               value.tv_sec = tv->tv_sec;
-               value.tv_nsec = tv->tv_usec * 1000UL;
--- 
-GitLab

diff --git a/media-video/pipewire/files/1.4.8/0006-revert-impl-node.patch 
b/media-video/pipewire/files/1.4.8/0006-revert-impl-node.patch
deleted file mode 100644
index 6021bda3fb8e..000000000000
--- a/media-video/pipewire/files/1.4.8/0006-revert-impl-node.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/3e574b314a7d73801fe3aac012cf6671bb1f5575
-
-From 3e574b314a7d73801fe3aac012cf6671bb1f5575 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <[email protected]>
-Date: Mon, 15 Sep 2025 10:32:56 +0200
-Subject: [PATCH] Revert "impl-node: improve the node unprepare function"
-
-This reverts commit 839383d0dde8016f64c6b596917b971b4d1c37b0.
----
- src/pipewire/impl-node.c | 16 ++++++----------
- 1 file changed, 6 insertions(+), 10 deletions(-)
-
-diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c
-index 89bb036861..e5636d5613 100644
---- a/src/pipewire/impl-node.c
-+++ b/src/pipewire/impl-node.c
-@@ -219,21 +219,17 @@ do_node_unprepare(struct spa_loop *loop, bool async, 
uint32_t seq,
- {
-       struct pw_impl_node *this = user_data;
-       struct pw_node_target *t;
--      int old_state, new_state;
-+      int old_state;
-       uint64_t trigger = 0;
- 
-       pw_log_trace("%p: unprepare %d remote:%d exported:%d", this, 
this->rt.prepared,
-                       this->remote, this->exported);
- 
--      /* The remote client will INACTIVE itself and remove itself from the 
loop to avoid
--       * being scheduled.
--       * The server will mark remote nodes as FINISHED. This will make sure 
the node will not
--       * trigger the peers anymore when it will stop because we do that on 
the server side
--       * because the client might simply be dead and not able to resume 
anything.
--       */
--      new_state = this->remote ? PW_NODE_ACTIVATION_FINISHED : 
PW_NODE_ACTIVATION_INACTIVE;
--
--      old_state = SPA_ATOMIC_XCHG(this->rt.target.activation->status, 
new_state);
-+      /* We mark ourself as finished now, this will avoid going further into 
the process loop
-+       * in case our fd was ready (removing ourselfs from the loop should 
avoid that as well).
-+       * If we were supposed to be scheduled make sure we continue the graph 
for the peers we
-+       * were supposed to trigger */
-+      old_state = SPA_ATOMIC_XCHG(this->rt.target.activation->status, 
PW_NODE_ACTIVATION_INACTIVE);
-       if (PW_NODE_ACTIVATION_PENDING_TRIGGER(old_state))
-               trigger = get_time_ns(this->rt.target.system);
- 
--- 
-GitLab

diff --git 
a/media-video/pipewire/files/1.4.8/0007-impl-node-unprepare-once.patch 
b/media-video/pipewire/files/1.4.8/0007-impl-node-unprepare-once.patch
deleted file mode 100644
index 10a14a0f83dd..000000000000
--- a/media-video/pipewire/files/1.4.8/0007-impl-node-unprepare-once.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/24ab601201223e05950bb8133be5d77526de1997
-
-From 24ab601201223e05950bb8133be5d77526de1997 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <[email protected]>
-Date: Mon, 15 Sep 2025 10:22:16 +0200
-Subject: [PATCH] impl-node: only do unprepare once
-
-There is not reason to do the unprepare logic twice and it might
-actually interfere with the actions of the client.
-
-See #4840
-Fixes #4893
----
- src/pipewire/impl-node.c | 18 +++++++++++-------
- 1 file changed, 11 insertions(+), 7 deletions(-)
-
-diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c
-index e5636d5613..59a34475c1 100644
---- a/src/pipewire/impl-node.c
-+++ b/src/pipewire/impl-node.c
-@@ -225,17 +225,21 @@ do_node_unprepare(struct spa_loop *loop, bool async, 
uint32_t seq,
-       pw_log_trace("%p: unprepare %d remote:%d exported:%d", this, 
this->rt.prepared,
-                       this->remote, this->exported);
- 
--      /* We mark ourself as finished now, this will avoid going further into 
the process loop
--       * in case our fd was ready (removing ourselfs from the loop should 
avoid that as well).
--       * If we were supposed to be scheduled make sure we continue the graph 
for the peers we
--       * were supposed to trigger */
-+      if (!this->rt.prepared)
-+              return 0;
-+
-+      /* The remote client will INACTIVE itself and remove itself from the 
loop to avoid
-+       * being scheduled.
-+       * The server will mark remote nodes as FINISHED and trigger the peers. 
This will
-+       * make sure the remote node will not trigger the peers anymore when it 
will
-+       * stop (it only triggers peers when it has PENDING_TRIGGER (<= 
AWAKE)). We have
-+       * to trigger the peers on the server because the client might simply 
be dead and
-+       * not able to trigger anything.
-+       */
-       old_state = SPA_ATOMIC_XCHG(this->rt.target.activation->status, 
PW_NODE_ACTIVATION_INACTIVE);
-       if (PW_NODE_ACTIVATION_PENDING_TRIGGER(old_state))
-               trigger = get_time_ns(this->rt.target.system);
- 
--      if (!this->rt.prepared)
--              return 0;
--
-       if (!this->remote)
-               spa_loop_remove_source(loop, &this->source);
- 
--- 
-GitLab

diff --git 
a/media-video/pipewire/files/1.4.8/0008-control-fix-event-compare.patch 
b/media-video/pipewire/files/1.4.8/0008-control-fix-event-compare.patch
deleted file mode 100644
index 88455e959a82..000000000000
--- a/media-video/pipewire/files/1.4.8/0008-control-fix-event-compare.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/5212649ee1b9e494ff2a3eb16922a3ef5c6987a5
-
-From 5212649ee1b9e494ff2a3eb16922a3ef5c6987a5 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <[email protected]>
-Date: Tue, 16 Sep 2025 10:47:12 +0200
-Subject: [PATCH] control: fix event compare function
-
-We can only compare UMP when both types are 2 or 4, so it must be
-different from 2 *and* 4 to be rejected.
-
-Fixes #4899
----
- pipewire-jack/src/pipewire-jack.c | 4 ++--
- spa/plugins/control/mixer.c       | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/pipewire-jack/src/pipewire-jack.c 
b/pipewire-jack/src/pipewire-jack.c
-index 2b9d21948a..1867aebae0 100644
---- a/pipewire-jack/src/pipewire-jack.c
-+++ b/pipewire-jack/src/pipewire-jack.c
-@@ -1513,8 +1513,8 @@ static inline int event_sort(struct spa_pod_control *a, 
struct spa_pod_control *
-               uint32_t *sa = SPA_POD_BODY(&a->value), *sb = 
SPA_POD_BODY(&b->value);
-               if (SPA_POD_BODY_SIZE(&a->value) < 4 || 
SPA_POD_BODY_SIZE(&b->value) < 4)
-                       return 0;
--              if ((sa[0] >> 28) != 2 || (sa[0] >> 28) != 4 ||
--                  (sb[0] >> 28) != 2 || (sb[0] >> 28) != 4)
-+              if (((sa[0] >> 28) != 2 && (sa[0] >> 28) != 4) ||
-+                  ((sb[0] >> 28) != 2 && (sb[0] >> 28) != 4))
-                       return 0;
-               return event_compare(sa[0] >> 16, sb[0] >> 16);
-       }
-diff --git a/spa/plugins/control/mixer.c b/spa/plugins/control/mixer.c
-index cfe3c394b2..feb622435a 100644
---- a/spa/plugins/control/mixer.c
-+++ b/spa/plugins/control/mixer.c
-@@ -662,8 +662,8 @@ static inline int event_sort(struct spa_pod_control *a, 
struct spa_pod_control *
-               uint32_t *da = SPA_POD_BODY(&a->value), *db = 
SPA_POD_BODY(&b->value);
-               if (SPA_POD_BODY_SIZE(&a->value) < 4 || 
SPA_POD_BODY_SIZE(&b->value) < 4)
-                       return 0;
--              if ((da[0] >> 28) != 2 || (da[0] >> 28) != 4 ||
--                  (db[0] >> 28) != 2 || (db[0] >> 28) != 4)
-+              if (((da[0] >> 28) != 2 && (da[0] >> 28) != 4) ||
-+                  ((db[0] >> 28) != 2 && (db[0] >> 28) != 4))
-                       return 0;
-               return event_compare(da[0] >> 16, db[0] >> 16);
-       }
--- 
-GitLab

diff --git a/media-video/pipewire/pipewire-1.4.7-r4.ebuild 
b/media-video/pipewire/pipewire-1.4.7-r4.ebuild
deleted file mode 100644
index df2424651510..000000000000
--- a/media-video/pipewire/pipewire-1.4.7-r4.ebuild
+++ /dev/null
@@ -1,557 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# 1. Please regularly check (even at the point of bumping) Fedora's packaging
-# for needed backports at 
https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
-#
-# 2. Upstream also sometimes amend release notes for the previous release to 
mention
-# needed patches, e.g. 
https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
-#
-# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
-# continue to move quickly. It's not uncommon for fixes to be made shortly
-# after releases.
-
-# TODO: Maybe get upstream to produce `meson dist` tarballs:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788
-#
-# Generate using 
https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs
-# Set to 1 if prebuilt, 0 if not
-# (the construct below is to allow overriding from env for script)
-: ${PIPEWIRE_DOCS_PREBUILT:=1}
-
-PIPEWIRE_DOCS_PREBUILT_DEV=sam
-PIPEWIRE_DOCS_VERSION="$(ver_cut 1-2).0"
-# Default to generating docs (inc. man pages) if no prebuilt; overridden later
-PIPEWIRE_DOCS_USEFLAG="+man"
-PYTHON_COMPAT=( python3_{11..13} )
-inherit meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
-
-if [[ ${PV} == 9999 ]] ; then
-       PIPEWIRE_DOCS_PREBUILT=0
-       EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git";
-       inherit git-r3
-elif [[ ${PV} == *.9999 ]] ; then
-       PIPEWIRE_DOCS_PREBUILT=0
-       EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git";
-       EGIT_BRANCH="${PV%.*}"
-       inherit git-r3
-else
-       if [[ ${PV} == *_p* ]] ; then
-               MY_COMMIT=""
-               
SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2
 -> ${P}.tar.bz2"
-               S="${WORKDIR}"/${PN}-${MY_COMMIT}
-       else
-               
SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2";
-       fi
-
-       if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
-               SRC_URI+=" !man? ( 
https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz
 )"
-               PIPEWIRE_DOCS_USEFLAG="man"
-       fi
-
-       KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
-fi
-
-SRC_URI+=" 
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-1.4.7-0001-don-t-include-standard-C-headers-inside-of-extern-C.patch.xz";
-
-DESCRIPTION="Multimedia processing graphs"
-HOMEPAGE="https://pipewire.org/";
-
-LICENSE="MIT LGPL-2.1+ GPL-2"
-# ABI was broken in 0.3.42 for 
https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
-SLOT="0/0.4"
-IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth elogind dbus doc echo-cancel extra 
ffmpeg fftw flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 
loudness lv2"
-IUSE+=" pulseaudio modemmanager pipewire-alsa readline roc selinux 
sound-server ssl system-service systemd test v4l X zeroconf"
-
-# Once replacing system JACK libraries is possible, it's likely that
-# jack-client IUSE will need blocking to avoid users accidentally
-# configuring their systems to send PW sink output to the emulated
-# JACK's sink - doing so is likely to yield no audio, cause a CPU
-# cycles consuming loop (and may even cause GUI crashes)!
-
-# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but 
ALSA is always enabled
-# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server 
connection will work
-#   which provides adequate guarantee that alsa-lib will be able to provide 
audio services.
-#   If that works, pulseaudio defaults are loaded into alsa-lib runtime 
replacing default PCM and CTL.
-#   When pipewire-alsa will be able to perform similar check, pipewire-alsa 
can be enabled unconditionally.
-# - ffmpeg is only used for pw-cat. We don't build the spa plugin which 
receives barely any activity.
-# TODO: should we add "pulseaudio? ( sound-server)"? is 
libpipewire-module-pulse-tunnel.so useful without sound-server?
-REQUIRED_USE="
-       ffmpeg? ( extra )
-       bluetooth? ( dbus )
-       jack-sdk? ( !jack-client )
-       modemmanager? ( bluetooth )
-       system-service? ( systemd )
-       !sound-server? ( !pipewire-alsa )
-       jack-client? ( dbus )
-"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="
-       >=dev-build/meson-0.59
-       virtual/pkgconfig
-       dbus? ( >=dev-util/gdbus-codegen-2.80.5-r1 )
-       doc? (
-               ${PYTHON_DEPS}
-               >=app-text/doxygen-1.9.8
-               media-gfx/graphviz
-       )
-       man? (
-               ${PYTHON_DEPS}
-               >=app-text/doxygen-1.9.8
-       )
-"
-# * While udev could technically be optional, it's needed for a number of 
options,
-# and not really worth it, bug #877769.
-#
-# * Supports both new webrtc-audio-processing:2 and legacy 
webrtc-audio-processing:1.
-#
-# * Older Doxygen (<1.9.8) may work but inferior output is created:
-#   - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778
-#   - https://github.com/doxygen/doxygen/issues/9254
-RDEPEND="
-       acct-group/audio
-       acct-group/pipewire
-       media-libs/alsa-lib[${MULTILIB_USEDEP}]
-       sys-libs/ncurses:=[unicode(+)]
-       virtual/libintl[${MULTILIB_USEDEP}]
-       virtual/libudev[${MULTILIB_USEDEP}]
-       bluetooth? (
-               dev-libs/glib
-               media-libs/fdk-aac
-               media-libs/libldac
-               media-libs/libfreeaptx
-               media-libs/opus
-               media-libs/sbc
-               >=net-wireless/bluez-4.101:=
-               virtual/libusb:1
-       )
-       elogind? ( sys-auth/elogind )
-       dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
-       echo-cancel? (
-               media-libs/webrtc-audio-processing:=
-               || (
-                       >=media-libs/webrtc-audio-processing-2.0:2
-                       >=media-libs/webrtc-audio-processing-1.2:1
-               )
-       )
-       extra? ( >=media-libs/libsndfile-1.0.20 )
-       ffmpeg? ( media-video/ffmpeg:= )
-       fftw? ( sci-libs/fftw:3.0=[${MULTILIB_USEDEP}] )
-       flatpak? ( dev-libs/glib )
-       gstreamer? (
-               >=dev-libs/glib-2.32.0:2
-               >=media-libs/gstreamer-1.10.0:1.0
-               media-libs/gst-plugins-base:1.0
-       )
-       gsettings? ( >=dev-libs/glib-2.26.0:2 )
-       ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
-       jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
-       jack-sdk? (
-               !media-sound/jack-audio-connection-kit
-               !media-sound/jack2
-       )
-       liblc3? ( media-sound/liblc3 )
-       loudness? ( media-libs/libebur128:=[${MULTILIB_USEDEP}] )
-       lv2? ( media-libs/lilv )
-       modemmanager? ( >=net-misc/modemmanager-1.10.0 )
-       pipewire-alsa? ( >=media-libs/alsa-lib-1.2.10[${MULTILIB_USEDEP}] )
-       pulseaudio? ( media-libs/libpulse )
-       sound-server? ( !media-sound/pulseaudio-daemon )
-       roc? ( >=media-libs/roc-toolkit-0.4.0:= )
-       readline? ( sys-libs/readline:= )
-       selinux? ( sys-libs/libselinux )
-       ssl? ( dev-libs/openssl:= )
-       systemd? ( sys-apps/systemd )
-       system-service? ( acct-user/pipewire )
-       v4l? ( media-libs/libv4l )
-       X? (
-               media-libs/libcanberra
-               x11-libs/libX11
-               x11-libs/libXfixes
-       )
-       zeroconf? ( net-dns/avahi )
-"
-
-DEPEND="${RDEPEND}"
-
-PDEPEND=">=media-video/wireplumber-0.5.2"
-
-# Present RDEPEND that are currently always disabled due to the PW
-# code using them being required to be disabled by Gentoo guidelines
-# (i.e. developer binaries not meant for users) and unready code
-#      media-libs/libsdl2
-#      >=media-libs/vulkan-loader-1.1.69
-#
-# Ditto for DEPEND
-#      >=dev-util/vulkan-headers-1.1.69
-
-PATCHES=(
-       "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
-       "${FILESDIR}"/${PN}-1.4.6-no-automagic-ebur128.patch
-       "${FILESDIR}"/${PN}-1.4.6-no-automagic-fftw.patch
-       
"${WORKDIR}"/${PN}-1.4.7-0001-don-t-include-standard-C-headers-inside-of-extern-C.patch
-)
-
-pkg_setup() {
-       if use doc || use man ; then
-               python-any-r1_pkg_setup
-       fi
-}
-
-src_prepare() {
-       default
-
-       # Used for upstream backports
-       if [[ ${PV} != *9999 && -d "${FILESDIR}"/${PV} ]] ; then
-               eapply "${FILESDIR}"/${PV}
-       fi
-}
-
-multilib_src_configure() {
-       local logind=disabled
-       if multilib_is_native_abi ; then
-               if use systemd ; then
-                       logind=enabled
-               elif use elogind ; then
-                       logind=enabled
-               fi
-       fi
-
-       local emesonargs=(
-               -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
-
-               $(meson_feature dbus)
-               $(meson_native_use_feature zeroconf avahi)
-               $(meson_native_use_feature doc docs)
-               $(meson_native_use_feature man)
-               $(meson_native_enabled examples) # TODO: Figure out if this is 
still important now that media-session gone
-               $(meson_feature test tests)
-               -Dinstalled_tests=disabled # Matches upstream; Gentoo never 
installs tests
-               $(meson_feature ieee1394 libffado)
-               $(meson_native_use_feature gstreamer)
-               $(meson_native_use_feature gstreamer gstreamer-device-provider)
-               $(meson_native_use_feature gsettings)
-               $(meson_native_use_feature systemd)
-               -Dlogind=${logind}
-               -Dlogind-provider=$(usex systemd 'libsystemd' 'libelogind')
-
-               $(meson_native_use_feature system-service 
systemd-system-service)
-               -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
-               -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
-
-               $(meson_native_use_feature systemd systemd-user-service)
-               $(meson_feature pipewire-alsa) # Allows integrating ALSA apps 
into PW graph
-               $(meson_feature selinux)
-               -Dspa-plugins=enabled
-               -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: 
media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible)
-               -Dcompress-offload=disabled # TODO: tinycompress unpackaged
-               -Daudiomixer=enabled # Matches upstream
-               -Daudioconvert=enabled # Matches upstream
-               $(meson_native_use_feature bluetooth bluez5)
-               $(meson_native_use_feature bluetooth bluez5-backend-hsp-native)
-               $(meson_native_use_feature bluetooth bluez5-backend-hfp-native)
-               # 
https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
-               $(meson_native_use_feature modemmanager 
bluez5-backend-native-mm)
-               $(meson_native_use_feature bluetooth bluez5-backend-ofono)
-               $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd)
-               $(meson_native_use_feature bluetooth bluez5-codec-aac)
-               $(meson_native_use_feature bluetooth bluez5-codec-aptx)
-               $(meson_native_use_feature bluetooth bluez5-codec-ldac)
-               $(meson_native_use_feature bluetooth bluez5-codec-g722)
-               $(meson_native_use_feature bluetooth opus)
-               $(meson_native_use_feature bluetooth bluez5-codec-opus)
-               $(meson_native_use_feature bluetooth libusb) # At least for now 
only used by bluez5 native (quirk detection of adapters)
-               $(meson_native_use_feature echo-cancel echo-cancel-webrtc) 
#807889
-               -Dcontrol=enabled # Matches upstream
-               -Daudiotestsrc=enabled # Matches upstream
-               -Dffmpeg=disabled # Disabled by upstream and no major 
developments to spa/plugins/ffmpeg/ since May 2020
-               $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
-               $(meson_native_use_feature flatpak)
-               -Dpipewire-jack=enabled # Allows integrating JACK apps into PW 
graph
-               $(meson_native_use_feature jack-client jack) # Allows PW to act 
as a JACK client
-               $(meson_use jack-sdk jack-devel)
-               $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" 
'')
-               -Dsupport=enabled # Miscellaneous/common plugins, such as null 
sink
-               -Devl=disabled # Matches upstream
-               -Dtest=disabled # fakesink and fakesource plugins
-               -Dbluez5-codec-lc3plus=disabled # unpackaged
-               $(meson_native_use_feature liblc3 bluez5-codec-lc3)
-               $(meson_feature loudness ebur128)
-               $(meson_feature fftw)
-               $(meson_native_use_feature lv2)
-               $(meson_native_use_feature v4l v4l2)
-               -Dlibcamera=disabled # libcamera is not in Portage tree
-               $(meson_native_use_feature roc)
-               $(meson_native_use_feature readline)
-               $(meson_native_use_feature ssl raop)
-               -Dvideoconvert=enabled # Matches upstream
-               -Dvideotestsrc=enabled # Matches upstream
-               -Dvolume=enabled # Matches upstream
-               -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to 
provide a CGI video source (dev thing; disabled by upstream)
-               $(meson_native_use_feature extra pw-cat)
-               -Dudev=enabled
-               -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
-               -Dsdl2=disabled # Controls SDL2 dependent code (currently only 
examples when -Dinstalled_tests=enabled which we never install)
-               -Dlibmysofa=disabled # libmysofa is unpackaged
-               $(meson_native_use_feature extra sndfile) # Enables libsndfile 
dependent code (currently only pw-cat)
-               -Dsession-managers="[]" # All available session managers are 
now their own projects, so there's nothing to build
-
-               # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) 
only
-               # just became stable, with 5.15 being the previous LTS. Many 
people
-               # are still on it.
-               -Dpam-defaults-install=true
-
-               # Just for bell sounds in X11 right now.
-               $(meson_native_use_feature X x11)
-               $(meson_native_use_feature X x11-xfixes)
-               $(meson_native_use_feature X libcanberra)
-
-               $(meson_native_use_feature pulseaudio libpulse)
-
-               # TODO
-               -Dsnap=disabled
-       )
-
-       # This installs the schema file for pulseaudio-daemon, iff we are 
replacing
-       # the official sound-server
-       if use !sound-server; then
-               emesonargs+=( '-Dgsettings-pulse-schema=disabled' )
-       else
-               emesonargs+=(
-                       $(meson_native_use_feature gsettings 
gsettings-pulse-schema)
-               )
-       fi
-
-       meson_src_configure
-}
-
-multilib_src_test() {
-       meson_src_test --timeout-multiplier 10
-}
-
-multilib_src_install() {
-       # Our custom DOCS do not exist in multilib source directory
-       DOCS= meson_src_install
-}
-
-multilib_src_install_all() {
-       einstalldocs
-
-       if ! use man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
-               doman 
"${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8]
-       fi
-
-       if use pipewire-alsa; then
-               dodir /etc/alsa/conf.d
-
-               # Install pipewire conf loader hook
-               insinto /usr/share/alsa/alsa.conf.d
-               doins "${FILESDIR}"/99-pipewire-default-hook.conf
-               eprefixify 
"${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
-
-               # These will break if someone has /etc that is a symbolic link 
to a subfolder! See #724222
-               # And the current dosym8 -r implementation is likely affected 
by the same issue, too.
-               dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf 
/etc/alsa/conf.d/50-pipewire.conf
-               dosym 
../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf 
/etc/alsa/conf.d/99-pipewire-default-hook.conf
-       fi
-
-       exeinto /etc/user/init.d
-       newexe "${FILESDIR}"/pipewire.initd pipewire
-       # Enable required wireplumber alsa and bluez monitors
-       if use sound-server; then
-               newexe "${FILESDIR}"/pipewire-pulse.initd pipewire-pulse
-
-               # Install sound-server enabler for wireplumber 0.5.0+ conf 
syntax
-               insinto /etc/wireplumber/wireplumber.conf.d
-               doins 
"${FILESDIR}"/gentoo-sound-server-enable-audio-bluetooth.conf
-       fi
-
-       if use system-service; then
-               newtmpfiles - pipewire.conf <<-EOF || die
-                       d /run/pipewire 0755 pipewire pipewire - -
-               EOF
-       fi
-
-       if ! use systemd; then
-               insinto /etc/xdg/autostart
-               newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
-
-               exeinto /usr/bin
-               newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r4 
gentoo-pipewire-launcher
-
-               doman "${FILESDIR}"/gentoo-pipewire-launcher.1
-
-               # Disable pipewire-pulse if sound-server is disabled.
-               if ! use sound-server ; then
-                       sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' 
"${ED}"/usr/bin/gentoo-pipewire-launcher || die
-               fi
-
-               eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
-       fi
-}
-
-pkg_postrm() {
-       udev_reload
-}
-
-pkg_preinst() {
-       HAD_SOUND_SERVER=0
-       HAD_SYSTEM_SERVICE=0
-
-       if has_version "media-video/pipewire[sound-server(-)]" ; then
-               HAD_SOUND_SERVER=1
-       fi
-
-       if has_version "media-video/pipewire[system-service(-)]" ; then
-               HAD_SYSTEM_SERVICE=1
-       fi
-}
-
-pkg_postinst() {
-       udev_reload
-
-       use system-service && tmpfiles_process pipewire.conf
-
-       local ver
-       for ver in ${REPLACING_VERSIONS} ; do
-               if has_version kde-plasma/kwin[screencast] || has_version 
x11-wm/mutter[screencast] ; then
-                       # https://bugs.gentoo.org/908490
-                       # 
https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
-                       ewarn "Please restart KWin/Mutter after upgrading 
PipeWire."
-                       ewarn "Screencasting may not work until you do."
-               fi
-
-               if ver_test ${ver} -le 0.3.66-r1 ; then
-                       elog ">=pipewire-0.3.66 uses the 'pipewire' group to 
manage permissions"
-                       elog "and limits needed to function smoothly:"
-                       elog
-                       elog "1. Please make sure your user is in the 
'pipewire' group for"
-                       elog "the best experience with realtime scheduling (PAM 
limits behavior)!"
-                       elog "You can add your account with:"
-                       elog " usermod -aG pipewire <youruser>"
-                       elog
-                       elog "2. For the best experience with fast user 
switching, it is recommended"
-                       elog "that you remove your user from the 'audio' group 
unless you rely on the"
-                       elog "audio group for device access control or ACLs.:"
-                       elog " usermod -rG audio <youruser>"
-                       elog
-
-                       if ! use jack-sdk ; then
-                               elog
-                               elog "JACK emulation is incomplete and not all 
programs will work. PipeWire's"
-                               elog "alternative libraries have been installed 
to a non-default location."
-                               elog "To use them, put pw-jack <application> 
before every JACK application."
-                               elog "When using pw-jack, do not run 
jackd/jackdbus. However, a virtual/jack"
-                               elog "provider is still needed to compile the 
JACK applications themselves."
-                               elog
-                       fi
-
-                       if use systemd ; then
-                               ewarn
-                               ewarn "PipeWire daemon startup has been moved 
to a launcher script!"
-                               ewarn "Make sure that 
${EROOT}/etc/pipewire/pipewire.conf either does not exist or no"
-                               ewarn "longer is set to start a session manager 
or PulseAudio compatibility daemon (all"
-                               ewarn "lines similar to '{ path = 
/usr/bin/pipewire*' should be commented out)"
-                               ewarn
-                               ewarn "Those manually starting 
/usr/bin/pipewire via .xinitrc or similar _must_ from"
-                               ewarn "now on start 
${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly"
-                               ewarn "advised that a D-Bus user session is set 
up before starting the script."
-                               ewarn
-                       fi
-
-                       if use sound-server && ( has_version 
'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' 
) ; then
-                               elog
-                               elog "This ebuild auto-enables PulseAudio 
replacement. Because of that, users"
-                               elog "are recommended to edit pulseaudio client 
configuration files:"
-                               elog "${EROOT}/etc/pulse/client.conf and 
${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
-                               elog "if it exists, and disable autospawning of 
the original daemon by setting:"
-                               elog
-                               elog "  autospawn = no"
-                               elog
-                               elog "Please note that the semicolon (;) must 
_NOT_ be at the beginning of the line!"
-                               elog
-                               elog "Alternatively, if replacing PulseAudio 
daemon is not desired, edit"
-                               elog "${EROOT}/usr/bin/gentoo-pipewire-launcher 
by commenting out the relevant"
-                               elog "command:"
-                               elog
-                               elog "#${EROOT}/usr/bin/pipewire -c 
pipewire-pulse.conf &"
-                               elog
-                       fi
-
-                       if has_version 'net-misc/ofono' ; then
-                               ewarn "Native backend has become default. 
Please disable oFono via:"
-                               if systemd_is_booted ; then
-                                       ewarn "systemctl disable ofono"
-                               else
-                                       ewarn "rc-update delete ofono"
-                               fi
-                       fi
-               fi
-       done
-
-       if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
-               # TODO: We could drop most of this if we set up systemd presets?
-               # They're worth looking into because right now, the 
out-of-the-box experience
-               # is automatic on OpenRC, while it needs manual intervention on 
systemd.
-               if use sound-server && use systemd ; then
-                       elog
-                       elog "When switching from PulseAudio, you may need to 
disable PulseAudio:"
-                       elog
-                       elog "  systemctl --user disable pulseaudio.service 
pulseaudio.socket"
-                       elog
-                       elog "To use PipeWire, the user units must be manually 
enabled"
-                       elog "by running this command as each user you use for 
desktop activities:"
-                       elog
-                       elog "  systemctl --user enable pipewire.socket 
pipewire-pulse.socket"
-                       elog
-                       elog "A reboot is recommended to avoid interferences 
from still running"
-                       elog "PulseAudio daemon."
-                       elog
-                       elog "Both new users and those upgrading need to enable 
WirePlumber"
-                       elog "for relevant users:"
-                       elog
-                       elog "  systemctl --user disable 
pipewire-media-session.service"
-                       elog "  systemctl --user --force enable 
wireplumber.service"
-                       elog
-                       elog "Root user may replace --user with --global to 
change system default"
-                       elog "configuration for all of the above commands."
-                       elog
-               fi
-
-               if ! use sound-server ; then
-                       ewarn
-                       ewarn "USE=sound-server is disabled! If you want 
PipeWire to provide"
-                       ewarn "your sound, please enable it. See the wiki at"
-                       ewarn 
"https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio";
-                       ewarn "for more details."
-                       ewarn
-               fi
-       fi
-
-       if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z 
${REPLACING_VERSIONS} ]] ; then
-               ewarn
-               ewarn "You have enabled the system-service USE flag, which 
installs"
-               ewarn "the system-wide systemd units that enable PipeWire to 
run as a system"
-               ewarn "service. This is more than likely NOT what you want. You 
are strongly"
-               ewarn "advised not to enable this mode and instead stick with 
systemd user"
-               ewarn "units. The default configuration files will likely not 
work out of the"
-               ewarn "box, and you are on your own with configuration."
-               ewarn
-       fi
-
-       elog "For latest tips and tricks, troubleshooting information, and 
documentation"
-       elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire";
-       elog
-
-       optfeature_header "The following can be installed for optional runtime 
features:"
-       optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit
-
-       if use sound-server && ! use pipewire-alsa; then
-               optfeature "ALSA plugin to use PulseAudio interface for output" 
"media-plugins/alsa-plugins[pulseaudio]"
-       fi
-}

diff --git a/media-video/pipewire/pipewire-1.4.8-r4.ebuild 
b/media-video/pipewire/pipewire-1.4.8-r4.ebuild
deleted file mode 100644
index e1f14de8959c..000000000000
--- a/media-video/pipewire/pipewire-1.4.8-r4.ebuild
+++ /dev/null
@@ -1,557 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# 1. Please regularly check (even at the point of bumping) Fedora's packaging
-# for needed backports at 
https://src.fedoraproject.org/rpms/pipewire/tree/rawhide.
-#
-# 2. Upstream also sometimes amend release notes for the previous release to 
mention
-# needed patches, e.g. 
https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros
-#
-# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things
-# continue to move quickly. It's not uncommon for fixes to be made shortly
-# after releases.
-
-# TODO: Maybe get upstream to produce `meson dist` tarballs:
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663
-# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788
-#
-# Generate using 
https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs
-# Set to 1 if prebuilt, 0 if not
-# (the construct below is to allow overriding from env for script)
-: ${PIPEWIRE_DOCS_PREBUILT:=1}
-
-PIPEWIRE_DOCS_PREBUILT_DEV=sam
-PIPEWIRE_DOCS_VERSION="$(ver_cut 1-2).0"
-# Default to generating docs (inc. man pages) if no prebuilt; overridden later
-PIPEWIRE_DOCS_USEFLAG="+man"
-PYTHON_COMPAT=( python3_{11..14} )
-inherit meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev
-
-if [[ ${PV} == 9999 ]] ; then
-       PIPEWIRE_DOCS_PREBUILT=0
-       EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git";
-       inherit git-r3
-elif [[ ${PV} == *.9999 ]] ; then
-       PIPEWIRE_DOCS_PREBUILT=0
-       EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git";
-       EGIT_BRANCH="${PV%.*}"
-       inherit git-r3
-else
-       if [[ ${PV} == *_p* ]] ; then
-               MY_COMMIT=""
-               
SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2
 -> ${P}.tar.bz2"
-               S="${WORKDIR}"/${PN}-${MY_COMMIT}
-       else
-               
SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2";
-       fi
-
-       if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
-               SRC_URI+=" !man? ( 
https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz
 )"
-               PIPEWIRE_DOCS_USEFLAG="man"
-       fi
-
-       KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
-fi
-
-SRC_URI+=" 
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-1.4.7-0001-don-t-include-standard-C-headers-inside-of-extern-C.patch.xz";
-
-DESCRIPTION="Multimedia processing graphs"
-HOMEPAGE="https://pipewire.org/";
-
-LICENSE="MIT LGPL-2.1+ GPL-2"
-# ABI was broken in 0.3.42 for 
https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
-SLOT="0/0.4"
-IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth elogind dbus doc echo-cancel extra 
ffmpeg fftw flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 
loudness lv2"
-IUSE+=" pulseaudio modemmanager pipewire-alsa readline roc selinux 
sound-server ssl system-service systemd test v4l X zeroconf"
-
-# Once replacing system JACK libraries is possible, it's likely that
-# jack-client IUSE will need blocking to avoid users accidentally
-# configuring their systems to send PW sink output to the emulated
-# JACK's sink - doing so is likely to yield no audio, cause a CPU
-# cycles consuming loop (and may even cause GUI crashes)!
-
-# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but 
ALSA is always enabled
-# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server 
connection will work
-#   which provides adequate guarantee that alsa-lib will be able to provide 
audio services.
-#   If that works, pulseaudio defaults are loaded into alsa-lib runtime 
replacing default PCM and CTL.
-#   When pipewire-alsa will be able to perform similar check, pipewire-alsa 
can be enabled unconditionally.
-# - ffmpeg is only used for pw-cat. We don't build the spa plugin which 
receives barely any activity.
-# TODO: should we add "pulseaudio? ( sound-server)"? is 
libpipewire-module-pulse-tunnel.so useful without sound-server?
-REQUIRED_USE="
-       ffmpeg? ( extra )
-       bluetooth? ( dbus )
-       jack-sdk? ( !jack-client )
-       modemmanager? ( bluetooth )
-       system-service? ( systemd )
-       !sound-server? ( !pipewire-alsa )
-       jack-client? ( dbus )
-"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="
-       >=dev-build/meson-0.59
-       virtual/pkgconfig
-       dbus? ( >=dev-util/gdbus-codegen-2.80.5-r1 )
-       doc? (
-               ${PYTHON_DEPS}
-               >=app-text/doxygen-1.9.8
-               media-gfx/graphviz
-       )
-       man? (
-               ${PYTHON_DEPS}
-               >=app-text/doxygen-1.9.8
-       )
-"
-# * While udev could technically be optional, it's needed for a number of 
options,
-# and not really worth it, bug #877769.
-#
-# * Supports both new webrtc-audio-processing:2 and legacy 
webrtc-audio-processing:1.
-#
-# * Older Doxygen (<1.9.8) may work but inferior output is created:
-#   - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778
-#   - https://github.com/doxygen/doxygen/issues/9254
-RDEPEND="
-       acct-group/audio
-       acct-group/pipewire
-       media-libs/alsa-lib[${MULTILIB_USEDEP}]
-       sys-libs/ncurses:=[unicode(+)]
-       virtual/libintl[${MULTILIB_USEDEP}]
-       virtual/libudev[${MULTILIB_USEDEP}]
-       bluetooth? (
-               dev-libs/glib
-               media-libs/fdk-aac
-               media-libs/libldac
-               media-libs/libfreeaptx
-               media-libs/opus
-               media-libs/sbc
-               >=net-wireless/bluez-4.101:=
-               virtual/libusb:1
-       )
-       elogind? ( sys-auth/elogind )
-       dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
-       echo-cancel? (
-               media-libs/webrtc-audio-processing:=
-               || (
-                       >=media-libs/webrtc-audio-processing-2.0:2
-                       >=media-libs/webrtc-audio-processing-1.2:1
-               )
-       )
-       extra? ( >=media-libs/libsndfile-1.0.20 )
-       ffmpeg? ( media-video/ffmpeg:= )
-       fftw? ( sci-libs/fftw:3.0=[${MULTILIB_USEDEP}] )
-       flatpak? ( dev-libs/glib )
-       gstreamer? (
-               >=dev-libs/glib-2.32.0:2
-               >=media-libs/gstreamer-1.10.0:1.0
-               media-libs/gst-plugins-base:1.0
-       )
-       gsettings? ( >=dev-libs/glib-2.26.0:2 )
-       ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] )
-       jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
-       jack-sdk? (
-               !media-sound/jack-audio-connection-kit
-               !media-sound/jack2
-       )
-       liblc3? ( media-sound/liblc3 )
-       loudness? ( media-libs/libebur128:=[${MULTILIB_USEDEP}] )
-       lv2? ( media-libs/lilv )
-       modemmanager? ( >=net-misc/modemmanager-1.10.0 )
-       pipewire-alsa? ( >=media-libs/alsa-lib-1.2.10[${MULTILIB_USEDEP}] )
-       pulseaudio? ( media-libs/libpulse )
-       sound-server? ( !media-sound/pulseaudio-daemon )
-       roc? ( >=media-libs/roc-toolkit-0.4.0:= )
-       readline? ( sys-libs/readline:= )
-       selinux? ( sys-libs/libselinux )
-       ssl? ( dev-libs/openssl:= )
-       systemd? ( sys-apps/systemd )
-       system-service? ( acct-user/pipewire )
-       v4l? ( media-libs/libv4l )
-       X? (
-               media-libs/libcanberra
-               x11-libs/libX11
-               x11-libs/libXfixes
-       )
-       zeroconf? ( net-dns/avahi )
-"
-
-DEPEND="${RDEPEND}"
-
-PDEPEND=">=media-video/wireplumber-0.5.2"
-
-# Present RDEPEND that are currently always disabled due to the PW
-# code using them being required to be disabled by Gentoo guidelines
-# (i.e. developer binaries not meant for users) and unready code
-#      media-libs/libsdl2
-#      >=media-libs/vulkan-loader-1.1.69
-#
-# Ditto for DEPEND
-#      >=dev-util/vulkan-headers-1.1.69
-
-PATCHES=(
-       "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
-       "${FILESDIR}"/${PN}-1.4.6-no-automagic-ebur128.patch
-       "${FILESDIR}"/${PN}-1.4.6-no-automagic-fftw.patch
-       
"${WORKDIR}"/${PN}-1.4.7-0001-don-t-include-standard-C-headers-inside-of-extern-C.patch
-)
-
-pkg_setup() {
-       if use doc || use man ; then
-               python-any-r1_pkg_setup
-       fi
-}
-
-src_prepare() {
-       default
-
-       # Used for upstream backports
-       if [[ ${PV} != *9999 && -d "${FILESDIR}"/${PV} ]] ; then
-               eapply "${FILESDIR}"/${PV}
-       fi
-}
-
-multilib_src_configure() {
-       local logind=disabled
-       if multilib_is_native_abi ; then
-               if use systemd ; then
-                       logind=enabled
-               elif use elogind ; then
-                       logind=enabled
-               fi
-       fi
-
-       local emesonargs=(
-               -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
-
-               $(meson_feature dbus)
-               $(meson_native_use_feature zeroconf avahi)
-               $(meson_native_use_feature doc docs)
-               $(meson_native_use_feature man)
-               $(meson_native_enabled examples) # TODO: Figure out if this is 
still important now that media-session gone
-               $(meson_feature test tests)
-               -Dinstalled_tests=disabled # Matches upstream; Gentoo never 
installs tests
-               $(meson_feature ieee1394 libffado)
-               $(meson_native_use_feature gstreamer)
-               $(meson_native_use_feature gstreamer gstreamer-device-provider)
-               $(meson_native_use_feature gsettings)
-               $(meson_native_use_feature systemd)
-               -Dlogind=${logind}
-               -Dlogind-provider=$(usex systemd 'libsystemd' 'libelogind')
-
-               $(meson_native_use_feature system-service 
systemd-system-service)
-               -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)"
-               -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)"
-
-               $(meson_native_use_feature systemd systemd-user-service)
-               $(meson_feature pipewire-alsa) # Allows integrating ALSA apps 
into PW graph
-               $(meson_feature selinux)
-               -Dspa-plugins=enabled
-               -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: 
media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible)
-               -Dcompress-offload=disabled # TODO: tinycompress unpackaged
-               -Daudiomixer=enabled # Matches upstream
-               -Daudioconvert=enabled # Matches upstream
-               $(meson_native_use_feature bluetooth bluez5)
-               $(meson_native_use_feature bluetooth bluez5-backend-hsp-native)
-               $(meson_native_use_feature bluetooth bluez5-backend-hfp-native)
-               # 
https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379
-               $(meson_native_use_feature modemmanager 
bluez5-backend-native-mm)
-               $(meson_native_use_feature bluetooth bluez5-backend-ofono)
-               $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd)
-               $(meson_native_use_feature bluetooth bluez5-codec-aac)
-               $(meson_native_use_feature bluetooth bluez5-codec-aptx)
-               $(meson_native_use_feature bluetooth bluez5-codec-ldac)
-               $(meson_native_use_feature bluetooth bluez5-codec-g722)
-               $(meson_native_use_feature bluetooth opus)
-               $(meson_native_use_feature bluetooth bluez5-codec-opus)
-               $(meson_native_use_feature bluetooth libusb) # At least for now 
only used by bluez5 native (quirk detection of adapters)
-               $(meson_native_use_feature echo-cancel echo-cancel-webrtc) 
#807889
-               -Dcontrol=enabled # Matches upstream
-               -Daudiotestsrc=enabled # Matches upstream
-               -Dffmpeg=disabled # Disabled by upstream and no major 
developments to spa/plugins/ffmpeg/ since May 2020
-               $(meson_native_use_feature ffmpeg pw-cat-ffmpeg)
-               $(meson_native_use_feature flatpak)
-               -Dpipewire-jack=enabled # Allows integrating JACK apps into PW 
graph
-               $(meson_native_use_feature jack-client jack) # Allows PW to act 
as a JACK client
-               $(meson_use jack-sdk jack-devel)
-               $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" 
'')
-               -Dsupport=enabled # Miscellaneous/common plugins, such as null 
sink
-               -Devl=disabled # Matches upstream
-               -Dtest=disabled # fakesink and fakesource plugins
-               -Dbluez5-codec-lc3plus=disabled # unpackaged
-               $(meson_native_use_feature liblc3 bluez5-codec-lc3)
-               $(meson_feature loudness ebur128)
-               $(meson_feature fftw)
-               $(meson_native_use_feature lv2)
-               $(meson_native_use_feature v4l v4l2)
-               -Dlibcamera=disabled # libcamera is not in Portage tree
-               $(meson_native_use_feature roc)
-               $(meson_native_use_feature readline)
-               $(meson_native_use_feature ssl raop)
-               -Dvideoconvert=enabled # Matches upstream
-               -Dvideotestsrc=enabled # Matches upstream
-               -Dvolume=enabled # Matches upstream
-               -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to 
provide a CGI video source (dev thing; disabled by upstream)
-               $(meson_native_use_feature extra pw-cat)
-               -Dudev=enabled
-               -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
-               -Dsdl2=disabled # Controls SDL2 dependent code (currently only 
examples when -Dinstalled_tests=enabled which we never install)
-               -Dlibmysofa=disabled # libmysofa is unpackaged
-               $(meson_native_use_feature extra sndfile) # Enables libsndfile 
dependent code (currently only pw-cat)
-               -Dsession-managers="[]" # All available session managers are 
now their own projects, so there's nothing to build
-
-               # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) 
only
-               # just became stable, with 5.15 being the previous LTS. Many 
people
-               # are still on it.
-               -Dpam-defaults-install=true
-
-               # Just for bell sounds in X11 right now.
-               $(meson_native_use_feature X x11)
-               $(meson_native_use_feature X x11-xfixes)
-               $(meson_native_use_feature X libcanberra)
-
-               $(meson_native_use_feature pulseaudio libpulse)
-
-               # TODO
-               -Dsnap=disabled
-       )
-
-       # This installs the schema file for pulseaudio-daemon, iff we are 
replacing
-       # the official sound-server
-       if use !sound-server; then
-               emesonargs+=( '-Dgsettings-pulse-schema=disabled' )
-       else
-               emesonargs+=(
-                       $(meson_native_use_feature gsettings 
gsettings-pulse-schema)
-               )
-       fi
-
-       meson_src_configure
-}
-
-multilib_src_test() {
-       meson_src_test --timeout-multiplier 10
-}
-
-multilib_src_install() {
-       # Our custom DOCS do not exist in multilib source directory
-       DOCS= meson_src_install
-}
-
-multilib_src_install_all() {
-       einstalldocs
-
-       if ! use man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then
-               doman 
"${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8]
-       fi
-
-       if use pipewire-alsa; then
-               dodir /etc/alsa/conf.d
-
-               # Install pipewire conf loader hook
-               insinto /usr/share/alsa/alsa.conf.d
-               doins "${FILESDIR}"/99-pipewire-default-hook.conf
-               eprefixify 
"${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf
-
-               # These will break if someone has /etc that is a symbolic link 
to a subfolder! See #724222
-               # And the current dosym8 -r implementation is likely affected 
by the same issue, too.
-               dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf 
/etc/alsa/conf.d/50-pipewire.conf
-               dosym 
../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf 
/etc/alsa/conf.d/99-pipewire-default-hook.conf
-       fi
-
-       exeinto /etc/user/init.d
-       newexe "${FILESDIR}"/pipewire.initd pipewire
-       # Enable required wireplumber alsa and bluez monitors
-       if use sound-server; then
-               newexe "${FILESDIR}"/pipewire-pulse.initd pipewire-pulse
-
-               # Install sound-server enabler for wireplumber 0.5.0+ conf 
syntax
-               insinto /etc/wireplumber/wireplumber.conf.d
-               doins 
"${FILESDIR}"/gentoo-sound-server-enable-audio-bluetooth.conf
-       fi
-
-       if use system-service; then
-               newtmpfiles - pipewire.conf <<-EOF || die
-                       d /run/pipewire 0755 pipewire pipewire - -
-               EOF
-       fi
-
-       if ! use systemd; then
-               insinto /etc/xdg/autostart
-               newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop
-
-               exeinto /usr/bin
-               newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r4 
gentoo-pipewire-launcher
-
-               doman "${FILESDIR}"/gentoo-pipewire-launcher.1
-
-               # Disable pipewire-pulse if sound-server is disabled.
-               if ! use sound-server ; then
-                       sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' 
"${ED}"/usr/bin/gentoo-pipewire-launcher || die
-               fi
-
-               eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
-       fi
-}
-
-pkg_postrm() {
-       udev_reload
-}
-
-pkg_preinst() {
-       HAD_SOUND_SERVER=0
-       HAD_SYSTEM_SERVICE=0
-
-       if has_version "media-video/pipewire[sound-server(-)]" ; then
-               HAD_SOUND_SERVER=1
-       fi
-
-       if has_version "media-video/pipewire[system-service(-)]" ; then
-               HAD_SYSTEM_SERVICE=1
-       fi
-}
-
-pkg_postinst() {
-       udev_reload
-
-       use system-service && tmpfiles_process pipewire.conf
-
-       local ver
-       for ver in ${REPLACING_VERSIONS} ; do
-               if has_version kde-plasma/kwin[screencast] || has_version 
x11-wm/mutter[screencast] ; then
-                       # https://bugs.gentoo.org/908490
-                       # 
https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243
-                       ewarn "Please restart KWin/Mutter after upgrading 
PipeWire."
-                       ewarn "Screencasting may not work until you do."
-               fi
-
-               if ver_test ${ver} -le 0.3.66-r1 ; then
-                       elog ">=pipewire-0.3.66 uses the 'pipewire' group to 
manage permissions"
-                       elog "and limits needed to function smoothly:"
-                       elog
-                       elog "1. Please make sure your user is in the 
'pipewire' group for"
-                       elog "the best experience with realtime scheduling (PAM 
limits behavior)!"
-                       elog "You can add your account with:"
-                       elog " usermod -aG pipewire <youruser>"
-                       elog
-                       elog "2. For the best experience with fast user 
switching, it is recommended"
-                       elog "that you remove your user from the 'audio' group 
unless you rely on the"
-                       elog "audio group for device access control or ACLs.:"
-                       elog " usermod -rG audio <youruser>"
-                       elog
-
-                       if ! use jack-sdk ; then
-                               elog
-                               elog "JACK emulation is incomplete and not all 
programs will work. PipeWire's"
-                               elog "alternative libraries have been installed 
to a non-default location."
-                               elog "To use them, put pw-jack <application> 
before every JACK application."
-                               elog "When using pw-jack, do not run 
jackd/jackdbus. However, a virtual/jack"
-                               elog "provider is still needed to compile the 
JACK applications themselves."
-                               elog
-                       fi
-
-                       if use systemd ; then
-                               ewarn
-                               ewarn "PipeWire daemon startup has been moved 
to a launcher script!"
-                               ewarn "Make sure that 
${EROOT}/etc/pipewire/pipewire.conf either does not exist or no"
-                               ewarn "longer is set to start a session manager 
or PulseAudio compatibility daemon (all"
-                               ewarn "lines similar to '{ path = 
/usr/bin/pipewire*' should be commented out)"
-                               ewarn
-                               ewarn "Those manually starting 
/usr/bin/pipewire via .xinitrc or similar _must_ from"
-                               ewarn "now on start 
${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly"
-                               ewarn "advised that a D-Bus user session is set 
up before starting the script."
-                               ewarn
-                       fi
-
-                       if use sound-server && ( has_version 
'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' 
) ; then
-                               elog
-                               elog "This ebuild auto-enables PulseAudio 
replacement. Because of that, users"
-                               elog "are recommended to edit pulseaudio client 
configuration files:"
-                               elog "${EROOT}/etc/pulse/client.conf and 
${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"
-                               elog "if it exists, and disable autospawning of 
the original daemon by setting:"
-                               elog
-                               elog "  autospawn = no"
-                               elog
-                               elog "Please note that the semicolon (;) must 
_NOT_ be at the beginning of the line!"
-                               elog
-                               elog "Alternatively, if replacing PulseAudio 
daemon is not desired, edit"
-                               elog "${EROOT}/usr/bin/gentoo-pipewire-launcher 
by commenting out the relevant"
-                               elog "command:"
-                               elog
-                               elog "#${EROOT}/usr/bin/pipewire -c 
pipewire-pulse.conf &"
-                               elog
-                       fi
-
-                       if has_version 'net-misc/ofono' ; then
-                               ewarn "Native backend has become default. 
Please disable oFono via:"
-                               if systemd_is_booted ; then
-                                       ewarn "systemctl disable ofono"
-                               else
-                                       ewarn "rc-update delete ofono"
-                               fi
-                       fi
-               fi
-       done
-
-       if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then
-               # TODO: We could drop most of this if we set up systemd presets?
-               # They're worth looking into because right now, the 
out-of-the-box experience
-               # is automatic on OpenRC, while it needs manual intervention on 
systemd.
-               if use sound-server && use systemd ; then
-                       elog
-                       elog "When switching from PulseAudio, you may need to 
disable PulseAudio:"
-                       elog
-                       elog "  systemctl --user disable pulseaudio.service 
pulseaudio.socket"
-                       elog
-                       elog "To use PipeWire, the user units must be manually 
enabled"
-                       elog "by running this command as each user you use for 
desktop activities:"
-                       elog
-                       elog "  systemctl --user enable pipewire.socket 
pipewire-pulse.socket"
-                       elog
-                       elog "A reboot is recommended to avoid interferences 
from still running"
-                       elog "PulseAudio daemon."
-                       elog
-                       elog "Both new users and those upgrading need to enable 
WirePlumber"
-                       elog "for relevant users:"
-                       elog
-                       elog "  systemctl --user disable 
pipewire-media-session.service"
-                       elog "  systemctl --user --force enable 
wireplumber.service"
-                       elog
-                       elog "Root user may replace --user with --global to 
change system default"
-                       elog "configuration for all of the above commands."
-                       elog
-               fi
-
-               if ! use sound-server ; then
-                       ewarn
-                       ewarn "USE=sound-server is disabled! If you want 
PipeWire to provide"
-                       ewarn "your sound, please enable it. See the wiki at"
-                       ewarn 
"https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio";
-                       ewarn "for more details."
-                       ewarn
-               fi
-       fi
-
-       if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z 
${REPLACING_VERSIONS} ]] ; then
-               ewarn
-               ewarn "You have enabled the system-service USE flag, which 
installs"
-               ewarn "the system-wide systemd units that enable PipeWire to 
run as a system"
-               ewarn "service. This is more than likely NOT what you want. You 
are strongly"
-               ewarn "advised not to enable this mode and instead stick with 
systemd user"
-               ewarn "units. The default configuration files will likely not 
work out of the"
-               ewarn "box, and you are on your own with configuration."
-               ewarn
-       fi
-
-       elog "For latest tips and tricks, troubleshooting information, and 
documentation"
-       elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire";
-       elog
-
-       optfeature_header "The following can be installed for optional runtime 
features:"
-       optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit
-
-       if use sound-server && ! use pipewire-alsa; then
-               optfeature "ALSA plugin to use PulseAudio interface for output" 
"media-plugins/alsa-plugins[pulseaudio]"
-       fi
-}

Reply via email to