public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: media-video/pipewire/, media-video/pipewire/files/, ...
@ 2025-01-03  2:40 Sam James
  0 siblings, 0 replies; only message in thread
From: Sam James @ 2025-01-03  2:40 UTC (permalink / raw
  To: gentoo-commits

commit:     7a30cbda0565db11a3641e62f973e1fc7de3a58f
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jan  3 02:39:10 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jan  3 02:39:10 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a30cbda

media-video/pipewire: drop 1.0.7-r1, 1.2.3, 1.2.4, 1.2.5

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

 media-video/pipewire/Manifest                      |   5 -
 ...fix-required-state-for-async-driver-nodes.patch |  82 ----
 ...odule-raop-only-set-softVolume-when-valid.patch |  30 --
 ...-node-collect-with-groups-and-sync-enable.patch | 149 ------
 ...-impl-node-disable-async-for-driver-nodes.patch | 112 -----
 ...05-impl-node-set-INACTIVE-state-on-server.patch |  30 --
 .../files/pipewire-1.0.7-automagic-gsettings.patch |  80 ----
 ...e-1.0.7-automagic-webrtc-audio-processing.patch |  95 ----
 media-video/pipewire/pipewire-1.0.7-r1.ebuild      | 507 --------------------
 media-video/pipewire/pipewire-1.2.3.ebuild         | 515 --------------------
 media-video/pipewire/pipewire-1.2.4.ebuild         | 515 --------------------
 media-video/pipewire/pipewire-1.2.5.ebuild         | 527 ---------------------
 12 files changed, 2647 deletions(-)

diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest
index 98623fb45c3f..f4939d2c0a16 100644
--- a/media-video/pipewire/Manifest
+++ b/media-video/pipewire/Manifest
@@ -1,8 +1,3 @@
-DIST pipewire-1.0.0-docs.tar.xz 33632 BLAKE2B be06aa7242f7d2f8627b3bf2a2ae491dbda456a24811a767218eb89b1fd5961a461697e5d8ae2782323fdb927985fa4fd5dd40c21268b1c7939f4cd3c9e1a9ab SHA512 14f794c4152d7d9a4a7d9d4d5c2ff381c2a8262deaff034f993c4d28629fca8cc3d71d3a7c02982703e449fae5f58257fea0c20db02bf95b5aed88a4d99d2c58
-DIST pipewire-1.0.7.tar.bz2 1698775 BLAKE2B be075eb82fe516116de0a6a4d390dd99d7ea3b41e53c9079219978649845df4e9c16cb8e2dcfe594c2ace65fe63976ec432e9ce97eb048df5103d17f3e8ff353 SHA512 3fb46376cdf061b3ea7be55249399d0036c2728bb4deeb6f5c6d708141234e75f563e6a3dc749fbd40dadba72ad2db5fda358b368a480479157731cc67f3303d
 DIST pipewire-1.2.0-docs.tar.xz 58528 BLAKE2B b7abdfecd46239050ab80695c8f3d1a4e6a2aded3f9d64c435c64c7dc54a4e6ae32c3526da0fb4f6e2a22a6dbc8c768450ac2c0824b685022284eb1e1990c038 SHA512 25792090f258acc6cd52231be3918f0edaefeeb6c757acc748710a2e6f40ff7861a44e376dc9651742173c40153d3f848c9532257036ab874940270559d9c7f3
-DIST pipewire-1.2.3.tar.bz2 1813639 BLAKE2B 42bd8a08125e79a67a4adec30541ae7fef3c1e8279d8f84365636f8691a237fc7d6b392ed2576b681a9b9418804978e5a8493d7062567ed89035286fb49977f5 SHA512 8a06ef3a9079b334b0d3248431fe6a09f330ad8078dc378ac465e253d3601c3e4552e2e07f7cf492ff6fbc218e686b30941ea153ccaaf826b5f0ff231f6b214e
-DIST pipewire-1.2.4.tar.bz2 1813941 BLAKE2B 07819879ccd4122ea543fa7dffb45701741520577f09dd6a6fff9931fc571e0a2f1b3d1a023effd57e13148b6d1fb988fbd6444519b5e7c30b2c10fe30aa1cae SHA512 844c3c95b61aa78c21e5e471648f9c4c03839a64ca365ef39cfba6e4b9cc86a72dbfd725cdbbf00db22d3b82ae6faa20911b2bfcb0bc06a87984bfcb73fc4481
-DIST pipewire-1.2.5.tar.bz2 1814091 BLAKE2B 734fc6e70eab6d7c145a6d6614d6a0a49941b00b51d072f8ba318264d8cb0ec9937da63cf0c1725e90c8a2e6730ae0d590d530cd171aba325611cd916170d902 SHA512 c6b3c59882fe9261c14fb28d3ac3887566c56aeb98b3ec3ad965a007a51519c9597ca88ef76432872220bdd8c802fa1abe1dc043523410f4186321bbd353dc67
 DIST pipewire-1.2.6.tar.bz2 1818268 BLAKE2B 8b70af60a77436ed14119d0e57eef663b98e7e18841b61302b76e31befabaf9a63b4d01b9d5d3d582f598adb1d92f9c5e3aa3fdc9bec26f6aa1d0916fbdc6cf9 SHA512 6bb2e0a89fbbb1fc23cad18c2f34cf539a8414626a80174512833545a28493f9aaad96db8db8715dcf2f036cbd5133680d01188a38f58a8bd01af8deb4c343e0
 DIST pipewire-1.2.7.tar.bz2 1823442 BLAKE2B e81a897d4ee23e0048a8b7fbac8b397f74b8f68add71e228e9bbfffffda1a71d0dc7ebbb3a4878fab27c57ec392840fed2fdf9e677c313ea0c0cab3166d6f2d3 SHA512 f353761e612f5703fe2a55000af958c663f0648331242297f9c18d5ab6cadc5468e92b663bf811c37c4736e6564aa4e2466903593c4d621ea0686a966e30d63d

diff --git a/media-video/pipewire/files/1.2.0/0001-impl-node-fix-required-state-for-async-driver-nodes.patch b/media-video/pipewire/files/1.2.0/0001-impl-node-fix-required-state-for-async-driver-nodes.patch
deleted file mode 100644
index 105c8dd1676a..000000000000
--- a/media-video/pipewire/files/1.2.0/0001-impl-node-fix-required-state-for-async-driver-nodes.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From b8d07e40d66f12ac28aab710cfeb181bf25bc59a Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Mon, 1 Jul 2024 10:36:09 +0200
-Subject: [PATCH 1/5] impl-node: fix required state for async driver nodes
-
-When the node activation.required was incremented because it was a
-driver, only decrement it in that case, regardless of the current driver
-state of the node.
-
-This fixes the case of KODI where the required field gets out of sync
-and things become unschedulable.
-
-Fixes #4087
----
- src/pipewire/impl-node.c | 22 ++++++++++++++--------
- src/pipewire/private.h   |  1 +
- 2 files changed, 15 insertions(+), 8 deletions(-)
-
-diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c
-index 12629ee64..4def52897 100644
---- a/src/pipewire/impl-node.c
-+++ b/src/pipewire/impl-node.c
-@@ -112,13 +112,17 @@ static inline void activate_target(struct pw_impl_node *node, struct pw_node_tar
- {
- 	struct pw_node_activation_state *state = &t->activation->state[0];
- 	if (!t->active) {
--		if ((!node->async || node->driving) && !node->exported) {
--			SPA_ATOMIC_INC(state->required);
--			SPA_ATOMIC_INC(state->pending);
-+		if (!node->async || node->driving) {
-+			if (!node->exported) {
-+				SPA_ATOMIC_INC(state->required);
-+				SPA_ATOMIC_INC(state->pending);
-+			}
- 		}
-+		t->active_driving = node->driving;
- 		t->active = true;
--		pw_log_debug("%p: target state:%p id:%d pending:%d/%d",
--				node, state, t->id, state->pending, state->required);
-+		pw_log_debug("%p: target state:%p id:%d pending:%d/%d %d:%d:%d",
-+				node, state, t->id, state->pending, state->required,
-+				node->async, node->driving, node->exported);
- 	}
- }
- 
-@@ -126,7 +130,7 @@ static inline void deactivate_target(struct pw_impl_node *node, struct pw_node_t
- {
- 	if (t->active) {
- 		struct pw_node_activation_state *state = &t->activation->state[0];
--		if (!node->async || node->driving) {
-+		if (!node->async || t->active_driving) {
- 			/* the driver copies the required to the pending state
- 			 * so first try to resume the node and then decrement the
- 			 * required state. This way we either resume with the old value
-@@ -137,8 +141,10 @@ static inline void deactivate_target(struct pw_impl_node *node, struct pw_node_t
- 				SPA_ATOMIC_DEC(state->required);
- 		}
- 		t->active = false;
--		pw_log_debug("%p: target state:%p id:%d pending:%d/%d trigger:%"PRIu64,
--				node, state, t->id, state->pending, state->required, trigger);
-+		t->active_driving = false;
-+		pw_log_debug("%p: target state:%p id:%d pending:%d/%d %d:%d:%d trigger:%"PRIu64,
-+				node, state, t->id, state->pending, state->required,
-+				node->async, node->driving, node->exported, trigger);
- 	}
- }
- 
-diff --git a/src/pipewire/private.h b/src/pipewire/private.h
-index 8c01fe8d5..25af677ac 100644
---- a/src/pipewire/private.h
-+++ b/src/pipewire/private.h
-@@ -541,6 +541,7 @@ struct pw_node_target {
- 	int fd;
- 	void (*trigger)(struct pw_node_target *t, uint64_t nsec);
- 	unsigned int active:1;
-+	unsigned int active_driving:1;
- 	unsigned int added:1;
- };
- 
--- 
-2.45.2
-

diff --git a/media-video/pipewire/files/1.2.0/0002-module-raop-only-set-softVolume-when-valid.patch b/media-video/pipewire/files/1.2.0/0002-module-raop-only-set-softVolume-when-valid.patch
deleted file mode 100644
index 343b42dfdc8a..000000000000
--- a/media-video/pipewire/files/1.2.0/0002-module-raop-only-set-softVolume-when-valid.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 82b9fa118f2fa009b5eb2891378fe003e2573bbe Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Mon, 1 Jul 2024 11:27:17 +0200
-Subject: [PATCH 2/5] module-raop: only set softVolume when valid
-
----
- src/modules/module-raop-sink.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/modules/module-raop-sink.c b/src/modules/module-raop-sink.c
-index 05e467d24..8ad28693f 100644
---- a/src/modules/module-raop-sink.c
-+++ b/src/modules/module-raop-sink.c
-@@ -1643,10 +1643,10 @@ static void stream_props_changed(struct impl *impl, uint32_t id, const struct sp
- 				impl->volume = volume;
- 
- 				rtsp_send_volume(impl);
-+				spa_pod_builder_prop(&b, SPA_PROP_softVolumes, 0);
-+				spa_pod_builder_array(&b, sizeof(float), SPA_TYPE_Float,
-+						n_vols, soft_vols);
- 			}
--			spa_pod_builder_prop(&b, SPA_PROP_softVolumes, 0);
--			spa_pod_builder_array(&b, sizeof(float), SPA_TYPE_Float,
--					n_vols, soft_vols);
- 			spa_pod_builder_raw_padded(&b, prop, SPA_POD_PROP_SIZE(prop));
- 			break;
- 		}
--- 
-2.45.2
-

diff --git a/media-video/pipewire/files/1.2.0/0003-context-Fix-node-collect-with-groups-and-sync-enable.patch b/media-video/pipewire/files/1.2.0/0003-context-Fix-node-collect-with-groups-and-sync-enable.patch
deleted file mode 100644
index 5e18550bf193..000000000000
--- a/media-video/pipewire/files/1.2.0/0003-context-Fix-node-collect-with-groups-and-sync-enable.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From e6c0014f94e995e49b72bea7ae56b960416e6b29 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Mon, 1 Jul 2024 14:50:34 +0200
-Subject: [PATCH 3/5] context: Fix node collect with groups and sync enabled
-
-Keep track of the sync nodes we added to a driver and bring in the other
-nodes from the same sync group, group or link groups. This makes it
-possible to have disjoint sync groups each with their own driver.
-
-Fixes export in ardour8
-
-Fixes #4083
----
- src/pipewire/context.c | 49 +++++++++++++++++++++---------------------
- 1 file changed, 25 insertions(+), 24 deletions(-)
-
-diff --git a/src/pipewire/context.c b/src/pipewire/context.c
-index 686dd5eee..f3e1b4d76 100644
---- a/src/pipewire/context.c
-+++ b/src/pipewire/context.c
-@@ -1163,13 +1163,14 @@ static inline int run_nodes(struct pw_context *context, struct pw_impl_node *nod
-  * This ensures that we only activate the paths from the runnable nodes to the
-  * driver nodes and leave the other nodes idle.
-  */
--static int collect_nodes(struct pw_context *context, struct pw_impl_node *node, struct spa_list *collect,
--		char **sync)
-+static int collect_nodes(struct pw_context *context, struct pw_impl_node *node, struct spa_list *collect)
- {
- 	struct spa_list queue;
- 	struct pw_impl_node *n, *t;
- 	struct pw_impl_port *p;
- 	struct pw_impl_link *l;
-+	uint32_t n_sync;
-+	char *sync[MAX_SYNC+1];
- 
- 	pw_log_debug("node %p: '%s'", node, node->name);
- 
-@@ -1178,20 +1179,30 @@ static int collect_nodes(struct pw_context *context, struct pw_impl_node *node,
- 	spa_list_append(&queue, &node->sort_link);
- 	node->visited = true;
- 
-+	n_sync = 0;
-+	sync[0] = NULL;
-+
- 	/* now follow all the links from the nodes in the queue
- 	 * and add the peers to the queue. */
- 	spa_list_consume(n, &queue, sort_link) {
- 		spa_list_remove(&n->sort_link);
- 		spa_list_append(collect, &n->sort_link);
- 
--		pw_log_debug(" next node %p: '%s' runnable:%u", n, n->name, n->runnable);
-+		pw_log_debug(" next node %p: '%s' runnable:%u active:%d",
-+				n, n->name, n->runnable, n->active);
- 
- 		if (!n->active)
- 			continue;
- 
--		if (sync[0] != NULL) {
--			if (pw_strv_find_common(n->sync_groups, sync) < 0)
--				continue;
-+		if (n->sync) {
-+			for (uint32_t i = 0; n->sync_groups[i]; i++) {
-+				if (n_sync >= MAX_SYNC)
-+					break;
-+				if (pw_strv_find(sync, n->sync_groups[i]) >= 0)
-+					continue;
-+				sync[n_sync++] = n->sync_groups[i];
-+				sync[n_sync] = NULL;
-+			}
- 		}
- 
- 		spa_list_for_each(p, &n->input_ports, link) {
-@@ -1242,6 +1253,8 @@ static int collect_nodes(struct pw_context *context, struct pw_impl_node *node,
- 			spa_list_for_each(t, &context->node_list, link) {
- 				if (t->exported || !t->active || t->visited)
- 					continue;
-+				/* the other node will be scheduled with this one if it's in
-+				 * the same group or link group */
- 				if (pw_strv_find_common(t->groups, n->groups) < 0 &&
- 				    pw_strv_find_common(t->link_groups, n->link_groups) < 0 &&
- 				    pw_strv_find_common(t->sync_groups, sync) < 0)
-@@ -1253,7 +1266,8 @@ static int collect_nodes(struct pw_context *context, struct pw_impl_node *node,
- 				spa_list_append(&queue, &t->sort_link);
- 			}
- 		}
--		pw_log_debug(" next node %p: '%s' runnable:%u", n, n->name, n->runnable);
-+		pw_log_debug(" next node %p: '%s' runnable:%u %p %p %p", n, n->name, n->runnable,
-+				n->groups, n->link_groups, sync);
- 	}
- 	spa_list_for_each(n, collect, sort_link)
- 		if (!n->driving && n->runnable) {
-@@ -1497,10 +1511,9 @@ int pw_context_recalc_graph(struct pw_context *context, const char *reason)
- 	struct pw_impl_node *n, *s, *target, *fallback;
- 	const uint32_t *rates;
- 	uint32_t max_quantum, min_quantum, def_quantum, rate_quantum, floor_quantum, ceil_quantum;
--	uint32_t n_rates, def_rate, n_sync;
-+	uint32_t n_rates, def_rate;
- 	bool freewheel, global_force_rate, global_force_quantum, transport_start;
- 	struct spa_list collect;
--	char *sync[MAX_SYNC+1];
- 
- 	pw_log_info("%p: busy:%d reason:%s", context, impl->recalc, reason);
- 
-@@ -1514,23 +1527,11 @@ again:
- 	freewheel = false;
- 	transport_start = false;
- 
--	/* clean up the flags first and collect sync */
--	n_sync = 0;
--	sync[0] = NULL;
-+	/* clean up the flags first */
- 	spa_list_for_each(n, &context->node_list, link) {
- 		n->visited = false;
- 		n->checked = 0;
- 		n->runnable = n->always_process && n->active;
--		if (n->sync) {
--			for (uint32_t i = 0; n->sync_groups[i]; i++) {
--				if (n_sync >= MAX_SYNC)
--					break;
--				if (pw_strv_find(sync, n->sync_groups[i]) >= 0)
--					continue;
--				sync[n_sync++] = n->sync_groups[i];
--				sync[n_sync] = NULL;
--			}
--		}
- 	}
- 
- 	get_quantums(context, &def_quantum, &min_quantum, &max_quantum, &rate_quantum,
-@@ -1551,7 +1552,7 @@ again:
- 
- 		if (!n->visited) {
- 			spa_list_init(&collect);
--			collect_nodes(context, n, &collect, sync);
-+			collect_nodes(context, n, &collect);
- 			move_to_driver(context, &collect, n);
- 		}
- 		/* from now on we are only interested in active driving nodes
-@@ -1605,7 +1606,7 @@ again:
- 
- 		/* collect all nodes in this group */
- 		spa_list_init(&collect);
--		collect_nodes(context, n, &collect, sync);
-+		collect_nodes(context, n, &collect);
- 
- 		driver = NULL;
- 		spa_list_for_each(t, &collect, sort_link) {
--- 
-2.45.2
-

diff --git a/media-video/pipewire/files/1.2.0/0004-impl-node-disable-async-for-driver-nodes.patch b/media-video/pipewire/files/1.2.0/0004-impl-node-disable-async-for-driver-nodes.patch
deleted file mode 100644
index a7528249f1e3..000000000000
--- a/media-video/pipewire/files/1.2.0/0004-impl-node-disable-async-for-driver-nodes.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 525360d70ab1698afaaaf20f7e58002b8756353f Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Wed, 3 Jul 2024 13:31:24 +0200
-Subject: [PATCH 4/5] impl-node: disable async for driver nodes
-
-Make it so that a driver node can never be scheduled async. It could
-possibly make sense when the driver node is not currently driving the
-graph but when it drives the graph it always needs to be sync. This
-also simplifies the target activation because we can simply check the
-async state and ignore if the node is driving or not.
-
-Also make sure that we never make an async link with a driver output port.
-This does not make sense because the driver node will always be
-triggered sync first and before the async node so we can simply make
-a sync link.
-
-This fixes the modified (only generate 1 buffer) video-src -> video-play
-case where the buffer never arrives in video-play because of the
-useless async link.
-
-Fixes #4092
----
- src/pipewire/impl-link.c | 8 +++++---
- src/pipewire/impl-node.c | 7 +++----
- src/pipewire/private.h   | 1 -
- 3 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/src/pipewire/impl-link.c b/src/pipewire/impl-link.c
-index 39e9bd17d..6dc2e1a59 100644
---- a/src/pipewire/impl-link.c
-+++ b/src/pipewire/impl-link.c
-@@ -1321,7 +1321,8 @@ struct pw_impl_link *pw_context_create_link(struct pw_context *context,
- 	if (this->passive && str == NULL)
- 		 pw_properties_set(properties, PW_KEY_LINK_PASSIVE, "true");
- 
--	impl->async = (output_node->async || input_node->async) &&
-+	impl->async = !output_node->driver &&
-+		(output_node->async || input_node->async) &&
- 		SPA_FLAG_IS_SET(output->flags, PW_IMPL_PORT_FLAG_ASYNC) &&
- 		SPA_FLAG_IS_SET(input->flags, PW_IMPL_PORT_FLAG_ASYNC);
- 
-@@ -1375,8 +1376,9 @@ struct pw_impl_link *pw_context_create_link(struct pw_context *context,
- 	this->name = spa_aprintf("%d.%d.%d -> %d.%d.%d",
- 			output_node->info.id, output->port_id, this->rt.out_mix.port.port_id,
- 			input_node->info.id, input->port_id, this->rt.in_mix.port.port_id);
--	pw_log_info("(%s) (%s) -> (%s) async:%04x:%04x:%d", this->name, output_node->name,
--			input_node->name, output->flags, input->flags, impl->async);
-+	pw_log_info("(%s) (%s) -> (%s) async:%d:%04x:%04x:%d", this->name, output_node->name,
-+			input_node->name, output_node->driving,
-+			output->flags, input->flags, impl->async);
- 
- 	pw_impl_port_emit_link_added(output, this);
- 	pw_impl_port_emit_link_added(input, this);
-diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c
-index 4def52897..c75e5793e 100644
---- a/src/pipewire/impl-node.c
-+++ b/src/pipewire/impl-node.c
-@@ -112,13 +112,12 @@ static inline void activate_target(struct pw_impl_node *node, struct pw_node_tar
- {
- 	struct pw_node_activation_state *state = &t->activation->state[0];
- 	if (!t->active) {
--		if (!node->async || node->driving) {
-+		if (!node->async) {
- 			if (!node->exported) {
- 				SPA_ATOMIC_INC(state->required);
- 				SPA_ATOMIC_INC(state->pending);
- 			}
- 		}
--		t->active_driving = node->driving;
- 		t->active = true;
- 		pw_log_debug("%p: target state:%p id:%d pending:%d/%d %d:%d:%d",
- 				node, state, t->id, state->pending, state->required,
-@@ -130,7 +129,7 @@ static inline void deactivate_target(struct pw_impl_node *node, struct pw_node_t
- {
- 	if (t->active) {
- 		struct pw_node_activation_state *state = &t->activation->state[0];
--		if (!node->async || t->active_driving) {
-+		if (!node->async) {
- 			/* the driver copies the required to the pending state
- 			 * so first try to resume the node and then decrement the
- 			 * required state. This way we either resume with the old value
-@@ -141,7 +140,6 @@ static inline void deactivate_target(struct pw_impl_node *node, struct pw_node_t
- 				SPA_ATOMIC_DEC(state->required);
- 		}
- 		t->active = false;
--		t->active_driving = false;
- 		pw_log_debug("%p: target state:%p id:%d pending:%d/%d %d:%d:%d trigger:%"PRIu64,
- 				node, state, t->id, state->pending, state->required,
- 				node->async, node->driving, node->exported, trigger);
-@@ -1202,6 +1200,7 @@ static void check_properties(struct pw_impl_node *node)
- 		recalc_reason = "transport changed";
- 	}
- 	async = pw_properties_get_bool(node->properties, PW_KEY_NODE_ASYNC, false);
-+	async &= !node->driver;
- 	if (async != node->async) {
- 		pw_log_info("%p: async %d -> %d", node, node->async, async);
- 		node->async = async;
-diff --git a/src/pipewire/private.h b/src/pipewire/private.h
-index 25af677ac..8c01fe8d5 100644
---- a/src/pipewire/private.h
-+++ b/src/pipewire/private.h
-@@ -541,7 +541,6 @@ struct pw_node_target {
- 	int fd;
- 	void (*trigger)(struct pw_node_target *t, uint64_t nsec);
- 	unsigned int active:1;
--	unsigned int active_driving:1;
- 	unsigned int added:1;
- };
- 
--- 
-2.45.2
-

diff --git a/media-video/pipewire/files/1.2.0/0005-impl-node-set-INACTIVE-state-on-server.patch b/media-video/pipewire/files/1.2.0/0005-impl-node-set-INACTIVE-state-on-server.patch
deleted file mode 100644
index 9821c151c97b..000000000000
--- a/media-video/pipewire/files/1.2.0/0005-impl-node-set-INACTIVE-state-on-server.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From d08df293a95ce976df1cc8c3ec367a8d5d84db35 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Wed, 3 Jul 2024 17:42:39 +0200
-Subject: [PATCH 5/5] impl-node: set INACTIVE state on server
-
-Don't wait for the client to set the INACTIVE state, do it on the
-server. We already decremented the target required so we don't want to
-schedule the node anymore.
-
-Fixes some xruns when removing nodes in a stress test.
----
- src/pipewire/impl-node.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c
-index c75e5793e..be25aa83e 100644
---- a/src/pipewire/impl-node.c
-+++ b/src/pipewire/impl-node.c
-@@ -221,7 +221,7 @@ do_node_unprepare(struct spa_loop *loop, bool async, uint32_t seq,
- 	if (!this->rt.prepared)
- 		return 0;
- 
--	if (!this->remote || this->rt.target.activation->client_version < 1) {
-+	if (!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
--- 
-2.45.2
-

diff --git a/media-video/pipewire/files/pipewire-1.0.7-automagic-gsettings.patch b/media-video/pipewire/files/pipewire-1.0.7-automagic-gsettings.patch
deleted file mode 100644
index bde229b80b24..000000000000
--- a/media-video/pipewire/files/pipewire-1.0.7-automagic-gsettings.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From acc75b21f653873ec1da68bfa08f2945a8dd09d2 Mon Sep 17 00:00:00 2001
-From: Eli Schwartz <eschwartz93@gmail.com>
-Date: Sun, 30 Jun 2024 13:44:06 -0400
-Subject: [PATCH] meson: fix conflicting use of feature-based dependency
- lookups
-
-When spa-plugins is enabled, the gio-2.0 global dependency is
-overwritten.
-
-When bluez support is enabled, OR when gsettings is enabled, the gio-2.0
-dependency is then detected as found. This means that
-pipewire-module-protocol-pulse can end up enabling gsettings support
-even if it has been forcibly turned off.
-
-Rename the meson variables to ensure they are looked up separately.
-
-(cherry picked from commit b5f031bc15524bbfde577290ad9bbadeab77ae8b)
-Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
----
- meson.build             | 4 ++--
- spa/meson.build         | 6 +++---
- src/modules/meson.build | 4 ++--
- 3 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 0ea256e9b..3353a2aec 100644
---- a/meson.build
-+++ b/meson.build
-@@ -343,8 +343,8 @@ summary({'GLib-2.0 (Flatpak support)': glib2_dep.found()}, bool_yn: true, sectio
- flatpak_support = glib2_dep.found()
- cdata.set('HAVE_GLIB2', flatpak_support)
- 
--gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : get_option('gsettings'))
--summary({'GIO (GSettings)': gio_dep.found()}, bool_yn: true, section: 'Misc dependencies')
-+gsettings_gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : get_option('gsettings'))
-+summary({'GIO (GSettings)': gsettings_gio_dep.found()}, bool_yn: true, section: 'Misc dependencies')
- 
- gst_option = get_option('gstreamer')
- gst_deps_def = {
-diff --git a/spa/meson.build b/spa/meson.build
-index db0a84425..e37744b08 100644
---- a/spa/meson.build
-+++ b/spa/meson.build
-@@ -43,12 +43,12 @@ if get_option('spa-plugins').allowed()
-   summary({'ALSA': alsa_dep.found()}, bool_yn: true, section: 'Backend')
- 
-   bluez_dep = dependency('bluez', version : '>= 4.101', required: get_option('bluez5'))
--  gio_dep = dependency('gio-2.0', required : get_option('bluez5'))
--  gio_unix_dep = dependency('gio-unix-2.0', required : get_option('bluez5'))
-+  bluez_gio_dep = dependency('gio-2.0', required : get_option('bluez5'))
-+  bluez_gio_unix_dep = dependency('gio-unix-2.0', required : get_option('bluez5'))
-   bluez_glib2_dep = dependency('glib-2.0', required : get_option('bluez5'))
-   sbc_dep = dependency('sbc', required: get_option('bluez5'))
-   summary({'SBC': sbc_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
--  bluez5_deps = [ mathlib, dbus_dep, sbc_dep, bluez_dep, bluez_glib2_dep, gio_dep, gio_unix_dep ]
-+  bluez5_deps = [ mathlib, dbus_dep, sbc_dep, bluez_dep, bluez_glib2_dep, bluez_gio_dep, bluez_gio_unix_dep ]
-   bluez_deps_found = get_option('bluez5').allowed()
-   foreach dep: bluez5_deps
-       if get_option('bluez5').enabled() and not dep.found()
-diff --git a/src/modules/meson.build b/src/modules/meson.build
-index 1b434b7f6..52660253e 100644
---- a/src/modules/meson.build
-+++ b/src/modules/meson.build
-@@ -409,11 +409,11 @@ if avahi_dep.found()
-   cdata.set('HAVE_AVAHI', true)
- endif
- 
--if gio_dep.found()
-+if gsettings_gio_dep.found()
-   pipewire_module_protocol_pulse_sources += [
-     'module-protocol-pulse/modules/module-gsettings.c',
-   ]
--  pipewire_module_protocol_pulse_deps += gio_dep
-+  pipewire_module_protocol_pulse_deps += gsettings_gio_dep
-   cdata.set('HAVE_GIO', true)
- endif
- 
--- 
-2.44.2
-

diff --git a/media-video/pipewire/files/pipewire-1.0.7-automagic-webrtc-audio-processing.patch b/media-video/pipewire/files/pipewire-1.0.7-automagic-webrtc-audio-processing.patch
deleted file mode 100644
index ac245dd7cc15..000000000000
--- a/media-video/pipewire/files/pipewire-1.0.7-automagic-webrtc-audio-processing.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From acd5bf60b9d4a35d00c90bfdca7f89e4ff4a4ff7 Mon Sep 17 00:00:00 2001
-From: Eli Schwartz <eschwartz93@gmail.com>
-Date: Thu, 30 May 2024 19:44:38 -0400
-Subject: [PATCH] meson: fix webrtc-audio-processing dependency ignoring
- configure args
-
-Most dependencies use meson "feature" options for optional
-functionality. This allows people to disable them, if they don't want
-them, through the power of tristate decision-making.
-
-This particular dependency does something a bit more complicated than
-can be described by simply passing feature options to the required
-kwarg. It:
-
-- tries to look for two different names of the dependency
-- selects different version ranges, depending on the dependency name
-- has a hole in the middle of the versions
-
-Unfortunately, `required: false` for the first dependency isn't
-equivalent to a tristate decision-making process. We have to manually
-code the logic ourselves.
-
-The problem is that when we look up the first name, we cannot pass the
-feature option in because if the option is force enabled, then the
-dependency lookup fails and configuration never tries to find the older
-version instead.
-
-But also, we can't just say it *isn't* required, because if the option
-is force *disabled* but it is installed on the system, we still find it
-and build against it.
-
-One solution would be using meson 0.60's support for multiple dependency
-names:
-
-```
-dependency('webrtc-audio-processing-1', 'webrtc-audio-processing',
-    version : ['>= 0.2'],
-    required: get_option('echo-cancel-webrtc'),
-)
-```
-
-Unfortunately, this too doesn't work since we could end up detecting 1.1
-(the hole in the middle) which is invalid.
-
-Instead, we do a bit of checking for tristate values before deciding to
-invoke `dependency()`. This lets us guarantee that disabled dependencies
-are well and truly disabled.
-
-Bug: https://bugs.gentoo.org/933218
-Fixes: #3678
----
- meson.build | 25 +++++++++++++++----------
- 1 file changed, 15 insertions(+), 10 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index cda60112f..72d275086 100644
---- a/meson.build
-+++ b/meson.build
-@@ -393,18 +393,23 @@ cdata.set('HAVE_GSTREAMER_DEVICE_PROVIDER', get_option('gstreamer-device-provide
- summary({'gstreamer DMA_DRM support': gst_dma_drm_found}, bool_yn: true, section: 'Backend')
- cdata.set('HAVE_GSTREAMER_DMA_DRM', gst_dma_drm_found)
- 
--webrtc_dep = dependency('webrtc-audio-processing-1',
--  version : ['>= 1.2' ],
--  required : false)
--cdata.set('HAVE_WEBRTC1', webrtc_dep.found())
--if webrtc_dep.found()
-+if get_option('echo-cancel-webrtc').disabled()
-+  webrtc_dep = dependency('', required: false)
-   summary({'WebRTC Echo Canceling >= 1.2': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies')
- else
--  webrtc_dep = dependency('webrtc-audio-processing',
--    version : ['>= 0.2', '< 1.0'],
--    required : get_option('echo-cancel-webrtc'))
--  cdata.set('HAVE_WEBRTC', webrtc_dep.found())
--  summary({'WebRTC Echo Canceling < 1.0': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies')
-+  webrtc_dep = dependency('webrtc-audio-processing-1',
-+    version : ['>= 1.2' ],
-+    required : false)
-+  cdata.set('HAVE_WEBRTC1', webrtc_dep.found())
-+  if webrtc_dep.found()
-+    summary({'WebRTC Echo Canceling >= 1.2': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies')
-+  else
-+    webrtc_dep = dependency('webrtc-audio-processing',
-+      version : ['>= 0.2', '< 1.0'],
-+      required : get_option('echo-cancel-webrtc'))
-+    cdata.set('HAVE_WEBRTC', webrtc_dep.found())
-+    summary({'WebRTC Echo Canceling < 1.0': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies')
-+  endif
- endif
- 
- # On FreeBSD and MidnightBSD, epoll-shim library is required for eventfd() and timerfd()
--- 
-GitLab
-

diff --git a/media-video/pipewire/pipewire-1.0.7-r1.ebuild b/media-video/pipewire/pipewire-1.0.7-r1.ebuild
deleted file mode 100644
index fa900f161e78..000000000000
--- a/media-video/pipewire/pipewire-1.0.7-r1.ebuild
+++ /dev/null
@@ -1,507 +0,0 @@
-# Copyright 1999-2024 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_{10..12} )
-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
-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
-
-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 dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
-IUSE+=" 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.
-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 )
-	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 legacy webrtc-audio-processing:0 and new webrtc-audio-processing:1.
-# We depend on :1 as it prefers that, it's not legacy, and to avoid automagic.
-#
-# * 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
-	)
-	dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
-	echo-cancel? ( media-libs/webrtc-audio-processing:1 )
-	extra? ( >=media-libs/libsndfile-1.0.20 )
-	ffmpeg? ( media-video/ffmpeg:= )
-	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 )
-	lv2? ( media-libs/lilv )
-	modemmanager? ( >=net-misc/modemmanager-1.10.0 )
-	pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
-	sound-server? ( !media-sound/pulseaudio-daemon )
-	roc? ( >=media-libs/roc-toolkit-0.3.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
-	# https://bugs.gentoo.org/933218
-	# https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/2028
-	"${FILESDIR}"/${P}-automagic-webrtc-audio-processing.patch
-	# https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/2061
-	"${FILESDIR}"/${P}-automagic-gsettings.patch
-)
-
-pkg_setup() {
-	if use doc || use man ; then
-		python-any-r1_pkg_setup
-	fi
-}
-
-src_prepare() {
-	default
-
-	# Used for upstream backports
-	[[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV}
-}
-
-multilib_src_configure() {
-	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)
-
-		$(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 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_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_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
-
-	# Enable required wireplumber alsa and bluez monitors
-	if use sound-server; then
-		# 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-r3 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.2.3.ebuild b/media-video/pipewire/pipewire-1.2.3.ebuild
deleted file mode 100644
index 2f8576568666..000000000000
--- a/media-video/pipewire/pipewire-1.2.3.ebuild
+++ /dev/null
@@ -1,515 +0,0 @@
-# Copyright 1999-2024 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_{10..12} )
-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
-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
-
-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 dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
-IUSE+=" 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.
-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 )
-	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 legacy webrtc-audio-processing:0 and new webrtc-audio-processing:1.
-# We depend on :1 as it prefers that, it's not legacy, and to avoid automagic.
-#
-# * 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
-	)
-	dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
-	echo-cancel? ( >=media-libs/webrtc-audio-processing-1.2:1 )
-	extra? ( >=media-libs/libsndfile-1.0.20 )
-	ffmpeg? ( media-video/ffmpeg:= )
-	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 )
-	lv2? ( media-libs/lilv )
-	modemmanager? ( >=net-misc/modemmanager-1.10.0 )
-	pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
-	sound-server? ( !media-sound/pulseaudio-daemon )
-	roc? ( >=media-libs/roc-toolkit-0.3.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
-)
-
-pkg_setup() {
-	if use doc || use man ; then
-		python-any-r1_pkg_setup
-	fi
-}
-
-src_prepare() {
-	default
-
-	# Used for upstream backports
-	[[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV}
-}
-
-multilib_src_configure() {
-	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)
-
-		$(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 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_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)
-
-		# 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
-
-	# Enable required wireplumber alsa and bluez monitors
-	if use sound-server; then
-		# 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-r3 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.2.4.ebuild b/media-video/pipewire/pipewire-1.2.4.ebuild
deleted file mode 100644
index 408bee308b53..000000000000
--- a/media-video/pipewire/pipewire-1.2.4.ebuild
+++ /dev/null
@@ -1,515 +0,0 @@
-# Copyright 1999-2024 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_{10..12} )
-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
-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
-
-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 dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
-IUSE+=" 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.
-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 )
-	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 legacy webrtc-audio-processing:0 and new webrtc-audio-processing:1.
-# We depend on :1 as it prefers that, it's not legacy, and to avoid automagic.
-#
-# * 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
-	)
-	dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
-	echo-cancel? ( >=media-libs/webrtc-audio-processing-1.2:1 )
-	extra? ( >=media-libs/libsndfile-1.0.20 )
-	ffmpeg? ( media-video/ffmpeg:= )
-	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 )
-	lv2? ( media-libs/lilv )
-	modemmanager? ( >=net-misc/modemmanager-1.10.0 )
-	pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
-	sound-server? ( !media-sound/pulseaudio-daemon )
-	roc? ( >=media-libs/roc-toolkit-0.3.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
-)
-
-pkg_setup() {
-	if use doc || use man ; then
-		python-any-r1_pkg_setup
-	fi
-}
-
-src_prepare() {
-	default
-
-	# Used for upstream backports
-	[[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV}
-}
-
-multilib_src_configure() {
-	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)
-
-		$(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 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_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)
-
-		# 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
-
-	# Enable required wireplumber alsa and bluez monitors
-	if use sound-server; then
-		# 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-r3 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.2.5.ebuild b/media-video/pipewire/pipewire-1.2.5.ebuild
deleted file mode 100644
index bad144148611..000000000000
--- a/media-video/pipewire/pipewire-1.2.5.ebuild
+++ /dev/null
@@ -1,527 +0,0 @@
-# Copyright 1999-2024 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_{10..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
-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
-
-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 flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2"
-IUSE+=" 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.
-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 )
-	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 legacy webrtc-audio-processing:0 and new webrtc-audio-processing:1.
-# We depend on :1 as it prefers that, it's not legacy, and to avoid automagic.
-#
-# * 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-1.2:1 )
-	extra? ( >=media-libs/libsndfile-1.0.20 )
-	ffmpeg? ( media-video/ffmpeg:= )
-	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 )
-	lv2? ( media-libs/lilv )
-	modemmanager? ( >=net-misc/modemmanager-1.10.0 )
-	pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] )
-	sound-server? ( !media-sound/pulseaudio-daemon )
-	roc? ( >=media-libs/roc-toolkit-0.3.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
-)
-
-pkg_setup() {
-	if use doc || use man ; then
-		python-any-r1_pkg_setup
-	fi
-}
-
-src_prepare() {
-	default
-
-	# Used for upstream backports
-	[[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV}
-}
-
-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 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_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)
-
-		# 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
-
-	# Enable required wireplumber alsa and bluez monitors
-	if use sound-server; then
-		# 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-r3 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
-}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2025-01-03  2:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-03  2:40 [gentoo-commits] repo/gentoo:master commit in: media-video/pipewire/, media-video/pipewire/files/, Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox