summaryrefslogtreecommitdiff
path: root/media-video/wireplumber
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-03-20 00:40:44 +0000
committerV3n3RiX <venerix@koprulu.sector>2022-03-20 00:40:44 +0000
commit4cbcc855382a06088e2f016f62cafdbcb7e40665 (patch)
tree356496503d52354aa6d9f2d36126302fed5f3a73 /media-video/wireplumber
parentfcc5224904648a8e6eb528d7603154160a20022f (diff)
gentoo resync : 20.03.2022
Diffstat (limited to 'media-video/wireplumber')
-rw-r--r--media-video/wireplumber/Manifest29
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.5-access-config-add-restricted-access-permissions.patch36
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.5-alsa-handle-the-release-requested-signal.patch33
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.5-default-routes.lua-reevaluate-current-profile-only-f.patch81
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.5-lib-don-t-read-hidden-files-from-the-config-director.patch27
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.5-m-reserve-device-replace-the-hash-table-key-on-new-i.patch47
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch34
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.6-policy-node-find-best-linkable-if-default-one-cannot.patch48
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.6-policy-node-fix-typo-when-finding-best-target.patch27
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.6-policy-node-schedule-a-rescan-without-timeout-if-def.patch50
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.6-spa-pod-fix-different-architecture-errors-for-boolea.patch40
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.8-policy-bluetooth-fix-string.find-crash-with-nil-stri.patch28
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.8-restore-stream-do-not-crash-if-config.properties-is-.patch27
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.8-si-audio-adapter-relax-format-parsing.patch44
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.8-spa-json-fix-va-list-APIs-for-different-architecture.patch214
-rw-r--r--media-video/wireplumber/metadata.xml3
-rw-r--r--media-video/wireplumber/wireplumber-0.4.5-r2.ebuild101
-rw-r--r--media-video/wireplumber/wireplumber-0.4.7-r2.ebuild (renamed from media-video/wireplumber/wireplumber-0.4.7-r1.ebuild)34
-rw-r--r--media-video/wireplumber/wireplumber-0.4.8-r2.ebuild (renamed from media-video/wireplumber/wireplumber-0.4.6-r1.ebuild)43
-rw-r--r--media-video/wireplumber/wireplumber-0.4.8-r3.ebuild (renamed from media-video/wireplumber/wireplumber-0.4.5-r4.ebuild)53
-rw-r--r--media-video/wireplumber/wireplumber-9999.ebuild36
21 files changed, 457 insertions, 578 deletions
diff --git a/media-video/wireplumber/Manifest b/media-video/wireplumber/Manifest
index 52da3bcbd778..48f340fc8837 100644
--- a/media-video/wireplumber/Manifest
+++ b/media-video/wireplumber/Manifest
@@ -1,21 +1,12 @@
-AUX wireplumber-0.4.5-access-config-add-restricted-access-permissions.patch 1103 BLAKE2B 6015043a5baa391be05c11387fcab418d9cb9fe050f2c1f88fe08d209fc2c813e6b5b8d99a14159d56d2e89db994c13e55e2af6b60001d6d64a0527a33be2319 SHA512 291c6833685e0b8e96b4187dadd1496c747493fd385f572d8f211177d278fc82cf4dd9466da3e1a359e9e2217dee1150cdad394ba0c54019f859fd571f6ea630
-AUX wireplumber-0.4.5-alsa-handle-the-release-requested-signal.patch 1009 BLAKE2B 32d9e359a705db1b60d0ed8c53a6e7c7bab85c73b0e8bce02fac5ee76e090393969a4abe041e585f0b32724f7946540677dd85b5ebdc380e6982823352ecfc75 SHA512 1b9a8aba86969dfb3a0372147596181e34088b42eacd4725df99ec627fa70cbe23d55c56d46f4f1780cb396e40c39720de96ce7fa4893af8e5acf697709614f6
-AUX wireplumber-0.4.5-default-routes.lua-reevaluate-current-profile-only-f.patch 3138 BLAKE2B aa0f7a0bbf121b8582c4afa31711f95724b374dc590bde1bd802b3966c38d4fb2bff7bde1796d6049953836b1985f648c4de7ac10ffcf05d2bda803f4b0c13ba SHA512 7e9efe4d5c11889c7834ab29734ff52171bf3e63e2273ce285b46a0997078d32644a0bfd1c66fd9cc4d09a7e566705e21803f21afeea60dba24f72f1bac4b2a8
-AUX wireplumber-0.4.5-lib-don-t-read-hidden-files-from-the-config-director.patch 742 BLAKE2B 480dfc48954a13323bc171e3b4672cedad27fdde05d8f28e263eddffd80c51ecdaa5046c30f57cd1a28a08270e59a38a3202fe496e4af84494d3b52614858880 SHA512 5400a2d4d1e61abe8d6c22c6540a83fafb25b6f4555156b66de9ad8350ce176faed00099c7a40b5286c82644ee09b5890da2521078f91e51d5a66fce7ed82a2a
-AUX wireplumber-0.4.5-m-reserve-device-replace-the-hash-table-key-on-new-i.patch 1672 BLAKE2B a5d8911754670c9303e35d15df45ecdd5bb4b2d837dea2000ff5e102bfb789ea678ace39356579f0fc86273ec58a7c5cc6eea701c3b7a274d742cddfaa3575d3 SHA512 8605622ed43fef37e1ca49edaae4812618e5ad83904b682b2b903e9de92060fd9b4a0a025d5716cd16339b94ae67b1ee9622949fae73153df0bbc5b9b3c2ebd9
-AUX wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch 1203 BLAKE2B 12e07a42d99187cba61d5428c235aba9207bd708e9346d53618b92c0ed06893e6295dbb49b9529e198f53c7ce4b573b897c349de8bb688273656de237ab3bca1 SHA512 4a5bb0a79c507945652a5600304fae1c9bf6fe028053a890c1633be2c82491ada487c9943ac29c6ed26f9e86a5d7f76140ec78bbaa394e41e1f082d50a7b56ef
-AUX wireplumber-0.4.6-policy-node-find-best-linkable-if-default-one-cannot.patch 1612 BLAKE2B a207499560853e4c5c98e721a4e56abf4b6784b1d21eafc1c2c9021c6e103c4a111d8cc98b4699a50c412a9f5cdc5103df0ae7502c640dde75a31f08d01cf509 SHA512 43e4554a666c4c3af904707bb05f8d2449d73c70b98aa3da874429d7264fa33dcc3e666cd2beb596f95f88a03f15f901aa31b45bd4f49cc6759b15dd07c4a067
-AUX wireplumber-0.4.6-policy-node-fix-typo-when-finding-best-target.patch 810 BLAKE2B 2a93b30ad454ec57c12d658b9ad5341df1d7f9ffafb8b31b81d9beb803587ec604f5664c2d4414fba8f9f84e11a9d0d107de4be76498a0070e8b9da808594c1f SHA512 123b344aac418132de49a46928e2ecb242124a6a3e2df787050cd2d9f6d5a9dda72583445daaf39d0a35d1519a95e3cb33175b517333432849ed95141db3ab6b
-AUX wireplumber-0.4.6-policy-node-schedule-a-rescan-without-timeout-if-def.patch 1743 BLAKE2B 60955b67413f59ad7d9bbf962d9d226458416f39a45200f75602913a5d59038ad2bd65f12af461261b7ad76efffab9e9ebb11279e9a7a5a5b3e1360369ee1f84 SHA512 0916b4b7851b9303ef404c4026f39bb15a4f8cf433da5c96f32d510f8654997ba5e3f8b6b3891f7eab5ac5722096eed6fbbe2998cd2f9e72ae090efefb064420
-AUX wireplumber-0.4.6-spa-pod-fix-different-architecture-errors-for-boolea.patch 1253 BLAKE2B 933f5d49c34a4fd024b866c839b429ab6c0a0f13ac6864d03f91a05a87a8b724fca9faa8302ae6a3852738bdee8f2c5e4dff364b46dcbe3377939f0b3856f93a SHA512 e568ec08b9948a774fcc48024476582bc3b93d4db467ce1d4797c7e4e04b91c863c57aae1faa17686e8f07e780f8b25dceb40695033a181814452c895dba75d3
AUX wireplumber-0.4.7-default-nodes-handle-nodes-without-Routes.patch 1837 BLAKE2B 7a621e0903283c9856c02844763d7091930ef122e3bee0577a556390cf7a0051d3cf26ca2af92b07ed055d4e9c925129a43e0cbf4830c0e4a8f9a06a8b36fe56 SHA512 6b3b3304a30f6b5c8f4fc2e2249596bc1f283b76962b529cdd16e534ada2e0e04f4620dedf85a9c974fab199878badc7d79e37b046f8381096d1a0957ead7a11
-DIST wireplumber-0.4.5-endianness-fixes.patch.bz2 2341 BLAKE2B 225b164a4624128b50fe8691e3577de9aea35e85ed0527c605a617227d96ad49646b658da120d118ab45fd1ed82ed188ad1073b0a8954632ec6501535d533009 SHA512 d5b64612aad6d462ffbc78a24cf50ebde83b29e183a6d169976f5d8fdb0ec3c72984135ee75d52f7d7e8261716482ca277c49cf5824028bfaf33e596857de97f
-DIST wireplumber-0.4.5.tar.gz 345035 BLAKE2B 177984901790228d8ddeb8ee2a548eb53db07c8077734590c3f964df36cfa47a4099e049ae9a19a136f4147c75b7122359a73b8387a641768f71484b9c4ab119 SHA512 b0d5962e7a83709cc3115fbf0a04b63660085aeea2ebda6d78d692065ccb193cea8b44bb506fa440cf0b88bfae71a4f69a192cd6cba885ebf3c9270bea50c67a
-DIST wireplumber-0.4.6.tar.gz 357392 BLAKE2B 03942930b1eafb37071c0f38071567fb6117a9a64b91f064982eafa34a8662e1cba26b634db9c74a4e0bd0a8765d9b827ab2afd5e364c6377fa7ecbc7e32c5d1 SHA512 4b4b9aff6e0e6d7c567e20e4df533cfd16287f2e7498ae8533a9a4251066e6d0a9cd99e3da48f525bb2010053f7c9918fe09a5ade39c8830ec08c24292527684
+AUX wireplumber-0.4.8-policy-bluetooth-fix-string.find-crash-with-nil-stri.patch 929 BLAKE2B 6583ffd0e7ba37e4832962cc49f9b39021625e5d8bdc064da3065b9172d95ea8510507e0e6b545e43a842e2a679a2188188ebae8f4ebb892318abcf548963428 SHA512 d4879729e1240551060a2d0f8458ffc881d851121e86805670bd9a699daffd9f97e14f6a486f7ff8da92ae88d910b5cb1a3a97664fdba9994f9ca5e2f72d20c4
+AUX wireplumber-0.4.8-restore-stream-do-not-crash-if-config.properties-is-.patch 903 BLAKE2B c8e78c5697599cdc988d0a30f4b56d739cde5a0312f0cb21d2a38561dc6e39e6304124d34c15d9eed2afca04db2ed40ca8430d6635a422b684eb1b072d4e4bbe SHA512 395728669c1422a6f2891da0650f7d92d4929eaa2ffc0949bc9b6a730195d1ce07972f16816e25bd19576fdedbd4c0af818951d75adf93edd78f2332dbe0aa4e
+AUX wireplumber-0.4.8-si-audio-adapter-relax-format-parsing.patch 1965 BLAKE2B 8c3e168372d36ee887418fbf6cd490c5047cfbeca989e8482f78a23a85460f5f708476579af84cff0ec8181e4ccea5b210b485fc8558cae6fc4f49dc4bf18d8b SHA512 df9532f437f2c7773961c0dbeb8fab5e40c1c30bc1d74551313961792f9816cf47d38cead0c5528a95a462131aeac994d202ee628db3d1bb7484a491553af054
+AUX wireplumber-0.4.8-spa-json-fix-va-list-APIs-for-different-architecture.patch 9630 BLAKE2B 5255aa33fd37af8c89db86c9f686d93612f0d84ac6a19a3d30ccf53ef94c8867ab14fa460be7b3976c7e78b98f31cf836b121123041689648629d2a2042a6646 SHA512 96e5d6d197f26ad1e3c9a6c5b56eb6e4e8d9eeca9b60d55ba8d3355aa79954dc9bbf88c57797f8131128631de3037f5b12359b4e86c8468394d6f431db1ec1c9
DIST wireplumber-0.4.7.tar.gz 358718 BLAKE2B a7e708ccfb9e95b3f3e2ddc5dfc1dc437ac8a2831a7cdaf03f33af65fcce8fc27dd91b2a6f346e60f68873724c2d165616005b485189604863213b5d5565f894 SHA512 8b472e1b3c7a29045326b30989d24224e510f93021c1b5b6aee59859daf594e91a738b8ad9d46d24736b7de29624d9faff40e1061bd3eddc559c95e325bfbf19
-EBUILD wireplumber-0.4.5-r2.ebuild 3056 BLAKE2B 2485dea8d7a93b14231de12023ed023483abe1135a9dfed26779d4e4b14b514c01d0aa8fed279156be9165c60a5907ce01bc621a4f188e572246cba96d1c3a5b SHA512 a10e4d07bf89f035d4b81d6f1162d5dc584a4981dbb106451f6c7d45fbe8b1f71311cbafc2cdaea2d953ede18bb1f7743911ad06d99dd5a1a3b8d5577c027817
-EBUILD wireplumber-0.4.5-r4.ebuild 3271 BLAKE2B f69305218c798f6f34aa3e3716d8abfe2f32795286d46aa5412bad3d5d1fc717bbb92249e1c2ae3449a5f93e50b0d0ef942f02835140ca764c768ecfbf16435e SHA512 8f00d21c53f7911bf325133c4aedcc2b215630e2e7736e4f8f06557becd2d394f8006cc83fd4d0f2e26a3c40dd0b372e94520119e9a59902c46940ec574fef7f
-EBUILD wireplumber-0.4.6-r1.ebuild 2885 BLAKE2B 9c1d9494281187560add126aef3642133220f7032118863e9ff3e7eec1e9f5e665907960accc089ba325040a3390147887a95532d6c04a59afa01f4c325cc2d7 SHA512 119aec5c069a3766725829e3db98340e281982d13502ba7759d9a4be345074d2b889ef0e3f14112c68368eb2e4154cff54536288914391cc7c994c81e0192c96
-EBUILD wireplumber-0.4.7-r1.ebuild 2644 BLAKE2B 68ddc0730654f5f112d388aca3ee40d5770b5e3c55944c09a5a3a3503e15b752fc0e05856e72a683718106ab83932240fbb59235af860981cbf78058bd86fade SHA512 8e8bcda79de1d7ca4b044049ac2cbb6e5b596f6f8a351b8f67d4dc237252e6ca31f894c069966213c1c85ec85a76643a5a8da268768e69faa696c6b4cd6cf45c
-EBUILD wireplumber-9999.ebuild 2563 BLAKE2B cb53fa8c1fe7b0dadd01ae5b703b10d1b3202104039bff37a06e22777e822fe3178a89f42a3172acccb575c0c9dda14c420095587b66ee2baa530a41fe2a5235 SHA512 6558a682dfff705adf1aa10c2e3e2b6cc2efed6330b0b57a9744e6e620bd264f4c1cf236770f1178f668a7931c5fa710b51cb195a5b6911200ae8fb404fa5a05
-MISC metadata.xml 674 BLAKE2B 8e33f665afefd33f81db16c58e39297a772c0abb035f7a7ef1d7bbac4a4d4cf96b6526d2d7757054bb04e03991199688317c8899b62153408c2aab3c9ac21834 SHA512 fa32a4e5023716b6792481df78f1541d46974b934f43e9ed5d8b67a79ad8eb553cda041db546e747328bc8d0935eb6fddfbe73731fa0d68555b5149a69e680bb
+DIST wireplumber-0.4.8.tar.gz 374824 BLAKE2B 7b5c8492d58be8b40c4c98bc807d031c453904a7df51c9b0d96c353c93018ba8cbd699b2c3c885defe7b5360df4256ad5e175015dc0102e5007853f6e0132cb7 SHA512 cb96b1d55be7e9d1433fc4a4fb4accce63f5f318a9a2b5cffc51a9f052765df777a0ba4ac73579771084295a73e6f05ed3a16a5fb9d0f5da4e183cfd74483c2c
+EBUILD wireplumber-0.4.7-r2.ebuild 3599 BLAKE2B f26870c8f99bbd77c423a1d3e76a8111a3eb1537bc66da6435263a230d23933a36190f7bdfd974e65eb19c39ac0d1675f505e4b755cfae87c27fe25e82128219 SHA512 2033157b0cfcb61e5644899ab8954a9ec6f01391afe347b5b3850c8ac496f5801983a0ac5d1fd3726b475cb55a7816174df353afa71a9d880e6d2691f414d4bf
+EBUILD wireplumber-0.4.8-r2.ebuild 3768 BLAKE2B 631d7f8587ac270b5753a64c7a0836be51cd14e41a9909ffab651fb5357775a5fa5443a9785a7d26caee9fe3d6e832d8a2d7e74838c6cb5380de776cacbac937 SHA512 aab5a562f4d45cab757dbab197287169f5bcb377b79029aee72f97a7f8c407bfc15c78de8a437c132321e9138080c4c9661444fbeee561a5a54d22eb164bf395
+EBUILD wireplumber-0.4.8-r3.ebuild 3832 BLAKE2B 9ae35b177ad87113e0ebdbbe5c22f3eb5704cb6f917d5a2f26d52c04a02a6a70be1b625948ea010ece704fa90d25d7f591bd726475092694c81e03f3ffbe88b3 SHA512 0317a54de35494bb09ee011ecb15dd5ce062b9a0aeb0dce2078c5e31b2500383fb619e26e921120ebe6477bebae47f9d80b5a6e7d8e3f566003a9a81e9159b53
+EBUILD wireplumber-9999.ebuild 3518 BLAKE2B 23a038f529999f541365e117265392b366ba467e9880a5d5b738a7fcac08d00a59923bee22589577f740e3eeda8d6f0e1b01b954b417e0d15f0b8e6114760749 SHA512 5e96363b6d98f45eb38665840c159a3d3c130738f93374ac62e0de0941cc9d715d46d6b57f5c5b02aa032eb4da44b3d0732daff67f1c64c1a56f2936539b0349
+MISC metadata.xml 803 BLAKE2B d05f76db401a8f71c5c1504d17dd8c0a87686f4b0ab2da450a47f71b1a15eeee2aef17107a3a987af70a097c3004c582fdda4c46e37c89466bfb470d032446dd SHA512 cfa42b1862175344b23fe65fb97d86783ded19352988790aefc6a062da212423dd81d8147525e4256025cdcfc6850909ca61d77d6b4243add0a3339b2eb319ee
diff --git a/media-video/wireplumber/files/wireplumber-0.4.5-access-config-add-restricted-access-permissions.patch b/media-video/wireplumber/files/wireplumber-0.4.5-access-config-add-restricted-access-permissions.patch
deleted file mode 100644
index 213283131e0b..000000000000
--- a/media-video/wireplumber/files/wireplumber-0.4.5-access-config-add-restricted-access-permissions.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/703c35cfd44265e81595db29eed081c8785cda87
-
-From 703c35cfd44265e81595db29eed081c8785cda87 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Mon, 29 Nov 2021 09:25:18 +0100
-Subject: [PATCH] access-config: add restricted access permissions
-
-When a pulse client connects with TCP, it is given the 'restricted'
-access policy. Assign 'rx' permissions for those clients instead of
-blocking forever.
-
-See pipewire#1863
----
- src/config/main.lua.d/50-default-access-config.lua | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/src/config/main.lua.d/50-default-access-config.lua b/src/config/main.lua.d/50-default-access-config.lua
-index 0282d4aa..6cf18bed 100644
---- a/src/config/main.lua.d/50-default-access-config.lua
-+++ b/src/config/main.lua.d/50-default-access-config.lua
-@@ -20,4 +20,12 @@ default_access.rules = {
- },
- default_permissions = "rx",
- },
-+ {
-+ matches = {
-+ {
-+ { "pipewire.access", "=", "restricted" },
-+ },
-+ },
-+ default_permissions = "rx",
-+ },
- }
---
-GitLab
-
diff --git a/media-video/wireplumber/files/wireplumber-0.4.5-alsa-handle-the-release-requested-signal.patch b/media-video/wireplumber/files/wireplumber-0.4.5-alsa-handle-the-release-requested-signal.patch
deleted file mode 100644
index 511dc6df377e..000000000000
--- a/media-video/wireplumber/files/wireplumber-0.4.5-alsa-handle-the-release-requested-signal.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From efd24584182903bf5ee4660a3b3360cc47ad895b Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Tue, 23 Nov 2021 13:17:29 +0100
-Subject: [PATCH] alsa: handle the release-requested signal
-
-Handle the release-requested signal by destroying the device and
-then calling release.
-
-Fixes pipewire/pipewire#1846
----
- src/scripts/monitors/alsa.lua | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/src/scripts/monitors/alsa.lua b/src/scripts/monitors/alsa.lua
-index 68c39d8..be4648e 100644
---- a/src/scripts/monitors/alsa.lua
-+++ b/src/scripts/monitors/alsa.lua
-@@ -287,6 +287,12 @@ function prepareDevice(parent, id, type, factory, properties)
- end
- end)
-
-+ rd:connect("release-requested", function (rd)
-+ Log.info("release requested")
-+ parent:store_managed_object(id, nil)
-+ rd:call("release")
-+ end)
-+
- if jack_device then
- rd:connect("notify::owner-name-changed", function (rd, pspec)
- if rd["state"] == "busy" and
---
-2.34.1
-
diff --git a/media-video/wireplumber/files/wireplumber-0.4.5-default-routes.lua-reevaluate-current-profile-only-f.patch b/media-video/wireplumber/files/wireplumber-0.4.5-default-routes.lua-reevaluate-current-profile-only-f.patch
deleted file mode 100644
index 423a1fcb6139..000000000000
--- a/media-video/wireplumber/files/wireplumber-0.4.5-default-routes.lua-reevaluate-current-profile-only-f.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/22fd4292ab35786b09561508778ab49cc6488dc6
-
-From 22fd4292ab35786b09561508778ab49cc6488dc6 Mon Sep 17 00:00:00 2001
-From: Julian Bouzas <julian.bouzas@collabora.com>
-Date: Tue, 7 Dec 2021 14:10:32 -0500
-Subject: [PATCH] default-routes.lua: reevaluate current profile only for its
- own routes
-
-Only check the current active profile when some routes changed that are part of
-the profile. If some other route changed, just ignore it.
----
- src/scripts/default-routes.lua | 39 +++++++++++++++++++---------------
- 1 file changed, 22 insertions(+), 17 deletions(-)
-
-diff --git a/src/scripts/default-routes.lua b/src/scripts/default-routes.lua
-index 1840989f..953cba33 100644
---- a/src/scripts/default-routes.lua
-+++ b/src/scripts/default-routes.lua
-@@ -352,6 +352,12 @@ function handleDevice(device)
- local dev_info = dev_infos[device["bound-id"]]
- local new_route_infos = {}
- local avail_routes_changed = false
-+ local profile = nil
-+
-+ -- get current profile
-+ for p in device:iterate_params("Profile") do
-+ profile = parseParam(p, "Profile")
-+ end
-
- -- look at all the routes and update/reset cached information
- for p in device:iterate_params("EnumRoute") do
-@@ -370,7 +376,9 @@ function handleDevice(device)
- Log.info(device, "route " .. route.name .. " available changed " ..
- route_info.available .. " -> " .. route.available)
- route_info.available = route.available
-- avail_routes_changed = true
-+ if profile and arrayContains(route.profiles, profile.index) then
-+ avail_routes_changed = true
-+ end
- end
- route_info.prev_active = route_info.active
- route_info.active = false
-@@ -419,23 +427,20 @@ function handleDevice(device)
- ::skip_route::
- end
-
-- -- now get the profile and restore routes for it
-- for p in device:iterate_params("Profile") do
-- local profile = parseParam(p, "Profile")
-- if profile then
-- local profile_changed = (dev_info.active_profile ~= profile.index)
--
-- -- if the profile changed, restore routes for that profile
-- -- if any of the routes of the current profile changed in availability,
-- -- then try to select a new "best" route for each device and ignore
-- -- what was stored
-- if profile_changed or avail_routes_changed then
-- dev_info.active_profile = profile.index
-- restoreProfileRoutes(device, dev_info, profile, profile_changed)
-- end
--
-- saveProfile(dev_info, profile.name)
-+ -- restore routes for profile
-+ if profile then
-+ local profile_changed = (dev_info.active_profile ~= profile.index)
-+
-+ -- if the profile changed, restore routes for that profile
-+ -- if any of the routes of the current profile changed in availability,
-+ -- then try to select a new "best" route for each device and ignore
-+ -- what was stored
-+ if profile_changed or avail_routes_changed then
-+ dev_info.active_profile = profile.index
-+ restoreProfileRoutes(device, dev_info, profile, profile_changed)
- end
-+
-+ saveProfile(dev_info, profile.name)
- end
- end
-
---
-GitLab
diff --git a/media-video/wireplumber/files/wireplumber-0.4.5-lib-don-t-read-hidden-files-from-the-config-director.patch b/media-video/wireplumber/files/wireplumber-0.4.5-lib-don-t-read-hidden-files-from-the-config-director.patch
deleted file mode 100644
index 1554c65e27da..000000000000
--- a/media-video/wireplumber/files/wireplumber-0.4.5-lib-don-t-read-hidden-files-from-the-config-director.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From ee5f3f2f195b01fd89ee148da5799b02f99ebb6e Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Sun, 14 Nov 2021 19:44:30 +1000
-Subject: [PATCH 3/3] lib: don't read hidden files from the config directory
-
-Fixes #104
----
- lib/wp/wp.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/lib/wp/wp.c b/lib/wp/wp.c
-index ffdff1a..c356133 100644
---- a/lib/wp/wp.c
-+++ b/lib/wp/wp.c
-@@ -315,6 +315,9 @@ wp_new_files_iterator (WpLookupDirs dirs, const gchar *subdir,
- if (dir) {
- const gchar *filename;
- while ((filename = g_dir_read_name (dir))) {
-+ if (filename[0] == '.')
-+ continue;
-+
- if (suffix && !g_str_has_suffix (filename, suffix))
- continue;
-
---
-2.34.0
-
diff --git a/media-video/wireplumber/files/wireplumber-0.4.5-m-reserve-device-replace-the-hash-table-key-on-new-i.patch b/media-video/wireplumber/files/wireplumber-0.4.5-m-reserve-device-replace-the-hash-table-key-on-new-i.patch
deleted file mode 100644
index 70d69093d082..000000000000
--- a/media-video/wireplumber/files/wireplumber-0.4.5-m-reserve-device-replace-the-hash-table-key-on-new-i.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From f4546a18e871537be698916178b40091a4a0b377 Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Fri, 12 Nov 2021 11:19:54 +1000
-Subject: [PATCH 3/3] m-reserve-device: replace the hash table key on new
- insert
-
-We're using the WpReserveDevice's name as key in the hash table, so we
-must update the key as well when we replace an item in the hashtable -
-the old device (and its name) will be released.
-
-The side-effect of this is that the *third* device with an identical
-name will no longer replace the previous device. This results in the
-following sequence:
-
-- dev1 added: name Audio0
- - dev1 requests name owner Audio0
-- dev2 added: name Audio0
- - replace dev1 in the hashtable
- - dev1 emits "release" signal
- - dev1 unowns the Audio0 name
- - dev2 requests name owner Audio0
-- dev3 added: name Audio0
- - adds to the hashtable because the existing key is now undefined
- - dev3 requests name owner Audio0
- - error, you cannot request ownership for the same name twice
-
-Fixes #93
----
- modules/module-reserve-device/plugin.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/modules/module-reserve-device/plugin.c b/modules/module-reserve-device/plugin.c
-index d8e4e09..68df6ee 100644
---- a/modules/module-reserve-device/plugin.c
-+++ b/modules/module-reserve-device/plugin.c
-@@ -221,7 +221,7 @@ wp_reserve_device_plugin_create_reservation (WpReserveDevicePlugin *self,
- NULL);
-
- /* use rd->name to avoid copying @em name again */
-- g_hash_table_insert (self->reserve_devices, rd->name, rd);
-+ g_hash_table_replace (self->reserve_devices, rd->name, rd);
-
- return g_object_ref (rd);
- }
---
-2.34.0
-
diff --git a/media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch b/media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch
deleted file mode 100644
index 0ce16a647697..000000000000
--- a/media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 83041b0ce277c95afaf1824f525ea0bec516f03f Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Thu, 18 Nov 2021 15:23:23 +0100
-Subject: [PATCH 2/3] policy-node: wait for nodes when we become unlinked
-
-If we were linked before but our node is removed, wait until a new node
-becomes available instead of failing.
-
-This fixes an issue where there is only 1 sink available and the card
-profile is toggeled between pro and stereo. After the profile is
-toggled, the sink is removed and the node would be killed with an error
-because there is no fallback sink. The fix is similar to the
-pipewire-media-session logic.
----
- src/scripts/policy-node.lua | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/scripts/policy-node.lua b/src/scripts/policy-node.lua
-index 5029d1b..445b1a7 100644
---- a/src/scripts/policy-node.lua
-+++ b/src/scripts/policy-node.lua
-@@ -493,6 +493,9 @@ function handleLinkable (si)
- if not reconnect then
- Log.info (si, "... destroy node")
- node:request_destroy()
-+ elseif si_flags[si.id].was_handled then
-+ Log.info (si, "... waiting reconnect")
-+ return
- end
-
- local client_id = node.properties["client.id"]
---
-2.34.0
-
diff --git a/media-video/wireplumber/files/wireplumber-0.4.6-policy-node-find-best-linkable-if-default-one-cannot.patch b/media-video/wireplumber/files/wireplumber-0.4.6-policy-node-find-best-linkable-if-default-one-cannot.patch
deleted file mode 100644
index 0cedea4ac6be..000000000000
--- a/media-video/wireplumber/files/wireplumber-0.4.6-policy-node-find-best-linkable-if-default-one-cannot.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/bee9827ae376b75feceea926b0afc727fecca51b
-
-From bee9827ae376b75feceea926b0afc727fecca51b Mon Sep 17 00:00:00 2001
-From: Julian Bouzas <julian.bouzas@collabora.com>
-Date: Fri, 7 Jan 2022 15:35:10 -0500
-Subject: [PATCH] policy-node: find best linkable if default one cannot be
- linked
-
-Fixes issue with echo cancellation pipewire module.
----
- src/scripts/policy-node.lua | 19 ++++++++++++++-----
- 1 file changed, 14 insertions(+), 5 deletions(-)
-
-diff --git a/src/scripts/policy-node.lua b/src/scripts/policy-node.lua
-index c273c1fe..9df50072 100644
---- a/src/scripts/policy-node.lua
-+++ b/src/scripts/policy-node.lua
-@@ -477,13 +477,22 @@ function findBestLinkable (si)
- end
-
- function findUndefinedTarget (si)
-- -- Find the default linkable if the default nodes module is loaded, otherwise
-- -- just find the best linkable based on priority and routes
-- if default_nodes ~= nil then
-- return findDefaultlinkable (si)
-- else
-+ -- Just find the best linkable if default nodes module is not loaded
-+ if default_nodes == nil then
- return findBestLinkable (si)
- end
-+
-+ -- Otherwise find the default linkable. If the default linkabke cannot link,
-+ -- we find the best one instead. We return nil if default does not exist.
-+ local si_target, can_passthrough = findDefaultlinkable (si)
-+ if si_target then
-+ if canLink (si.properties, si_target) then
-+ return si_target, can_passthrough
-+ else
-+ return findBestLinkable (si)
-+ end
-+ end
-+ return nil, nil
- end
-
- function lookupLink (si_id, si_target_id)
---
-GitLab
-
diff --git a/media-video/wireplumber/files/wireplumber-0.4.6-policy-node-fix-typo-when-finding-best-target.patch b/media-video/wireplumber/files/wireplumber-0.4.6-policy-node-fix-typo-when-finding-best-target.patch
deleted file mode 100644
index f18920c475a8..000000000000
--- a/media-video/wireplumber/files/wireplumber-0.4.6-policy-node-fix-typo-when-finding-best-target.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/23fc4d21a9cfad492f8d3a367e438115197dff4a
-
-From 23fc4d21a9cfad492f8d3a367e438115197dff4a Mon Sep 17 00:00:00 2001
-From: Julian Bouzas <julian.bouzas@collabora.com>
-Date: Fri, 7 Jan 2022 10:12:04 -0500
-Subject: [PATCH] policy-node: fix typo when finding best target
-
----
- src/scripts/policy-node.lua | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/scripts/policy-node.lua b/src/scripts/policy-node.lua
-index 0d716c1c..8ca5a695 100644
---- a/src/scripts/policy-node.lua
-+++ b/src/scripts/policy-node.lua
-@@ -482,7 +482,7 @@ function findUndefinedTarget (si)
- if default_nodes ~= nil then
- return findDefaultlinkable (si)
- else
-- return findBestlinkable (si)
-+ return findBestLinkable (si)
- end
- end
-
---
-GitLab
-
diff --git a/media-video/wireplumber/files/wireplumber-0.4.6-policy-node-schedule-a-rescan-without-timeout-if-def.patch b/media-video/wireplumber/files/wireplumber-0.4.6-policy-node-schedule-a-rescan-without-timeout-if-def.patch
deleted file mode 100644
index 28b5a5ea22a4..000000000000
--- a/media-video/wireplumber/files/wireplumber-0.4.6-policy-node-schedule-a-rescan-without-timeout-if-def.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/afe71d7e48c28b0ae5cbd9327433e3c55c103fcb
-
-From afe71d7e48c28b0ae5cbd9327433e3c55c103fcb Mon Sep 17 00:00:00 2001
-From: Julian Bouzas <julian.bouzas@collabora.com>
-Date: Thu, 6 Jan 2022 10:53:38 -0500
-Subject: [PATCH] policy-node: schedule a rescan without timeout if defined
- target is not found
-
-Fixes #146
----
- src/scripts/policy-node.lua | 17 ++++-------------
- 1 file changed, 4 insertions(+), 13 deletions(-)
-
-diff --git a/src/scripts/policy-node.lua b/src/scripts/policy-node.lua
-index 8ca5a695..c273c1fe 100644
---- a/src/scripts/policy-node.lua
-+++ b/src/scripts/policy-node.lua
-@@ -552,25 +552,16 @@ function handleLinkable (si)
- si_target = nil
- end
-
-- -- wait up to 2 seconds for the requested target to become available
-- -- this is because the client may have already "seen" a target that we haven't
-- -- yet prepared, which leads to a race condition
-+ -- if the client has seen a target that we haven't yet prepared, schedule
-+ -- a rescan one more time and hope for the best
- local si_id = si.id
- if si_props["node.target"] and si_props["node.target"] ~= "-1"
- and not si_target
- and not si_flags[si_id].was_handled
- and not si_flags[si_id].done_waiting then
-- if not si_flags[si_id].timeout_source then
-- si_flags[si_id].timeout_source = Core.timeout_add(2000, function()
-- if si_flags[si_id] then
-- si_flags[si_id].done_waiting = true
-- si_flags[si_id].timeout_source = nil
-- scheduleRescan()
-- end
-- return false
-- end)
-- end
- Log.info (si, "... waiting for target")
-+ si_flags[si_id].done_waiting = true
-+ scheduleRescan()
- return
- end
-
---
-GitLab
-
diff --git a/media-video/wireplumber/files/wireplumber-0.4.6-spa-pod-fix-different-architecture-errors-for-boolea.patch b/media-video/wireplumber/files/wireplumber-0.4.6-spa-pod-fix-different-architecture-errors-for-boolea.patch
deleted file mode 100644
index b11a2f6f70f6..000000000000
--- a/media-video/wireplumber/files/wireplumber-0.4.6-spa-pod-fix-different-architecture-errors-for-boolea.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-https://gitlab.freedesktop.org/julian/wireplumber/-/commit/5afd176698aee835c8812eb7944ba12da53ffeab
-
-From 5afd176698aee835c8812eb7944ba12da53ffeab Mon Sep 17 00:00:00 2001
-From: Julian Bouzas <julian.bouzas@collabora.com>
-Date: Mon, 13 Dec 2021 12:01:52 -0500
-Subject: [PATCH] spa-pod: fix different architecture errors for boolean values
-
----
- lib/wp/spa-pod.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/lib/wp/spa-pod.c b/lib/wp/spa-pod.c
-index c1c22572..bd7b8876 100644
---- a/lib/wp/spa-pod.c
-+++ b/lib/wp/spa-pod.c
-@@ -2332,6 +2332,10 @@ wp_spa_pod_builder_add_valist (WpSpaPodBuilder *self, va_list args)
- }
- break;
- }
-+ case 'b':
-+ spa_pod_builder_bool(&self->builder,
-+ va_arg(args, gboolean) ? true : false);
-+ break;
- default:
- SPA_POD_BUILDER_COLLECT(&self->builder, *format, args);
- break;
-@@ -2778,6 +2782,10 @@ wp_spa_pod_parser_get_valist (WpSpaPodParser *self, va_list args)
- }
- break;
- }
-+ case 'b':
-+ *va_arg(args, gboolean*) =
-+ SPA_POD_VALUE(struct spa_pod_bool, pod) ? TRUE : FALSE;
-+ break;
- default:
- SPA_POD_PARSER_COLLECT (pod, *format, args);
- break;
---
-GitLab
-
diff --git a/media-video/wireplumber/files/wireplumber-0.4.8-policy-bluetooth-fix-string.find-crash-with-nil-stri.patch b/media-video/wireplumber/files/wireplumber-0.4.8-policy-bluetooth-fix-string.find-crash-with-nil-stri.patch
new file mode 100644
index 000000000000..364f8df195cf
--- /dev/null
+++ b/media-video/wireplumber/files/wireplumber-0.4.8-policy-bluetooth-fix-string.find-crash-with-nil-stri.patch
@@ -0,0 +1,28 @@
+https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/c4c5ca8e2215e5fc295b39af4504c43ed3fe176f
+
+From c4c5ca8e2215e5fc295b39af4504c43ed3fe176f Mon Sep 17 00:00:00 2001
+From: George Kiagiadakis <george.kiagiadakis@collabora.com>
+Date: Mon, 14 Feb 2022 10:38:51 +0200
+Subject: [PATCH] policy-bluetooth: fix string.find crash with nil string
+
+Fixes #193
+---
+ src/scripts/policy-bluetooth.lua | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/scripts/policy-bluetooth.lua b/src/scripts/policy-bluetooth.lua
+index 24fbffbb..f8f69a14 100644
+--- a/src/scripts/policy-bluetooth.lua
++++ b/src/scripts/policy-bluetooth.lua
+@@ -118,7 +118,7 @@ local function isSwitched(device)
+ end
+
+ local function isBluez5AudioSink(sink_name)
+- if string.find(sink_name, "bluez_output.") ~= nil then
++ if sink_name and string.find(sink_name, "bluez_output.") ~= nil then
+ return true
+ end
+ return false
+--
+GitLab
+
diff --git a/media-video/wireplumber/files/wireplumber-0.4.8-restore-stream-do-not-crash-if-config.properties-is-.patch b/media-video/wireplumber/files/wireplumber-0.4.8-restore-stream-do-not-crash-if-config.properties-is-.patch
new file mode 100644
index 000000000000..5f4a838c36a6
--- /dev/null
+++ b/media-video/wireplumber/files/wireplumber-0.4.8-restore-stream-do-not-crash-if-config.properties-is-.patch
@@ -0,0 +1,27 @@
+https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/5f96f69218273573e625475846269b3914cfcecf
+
+From 5f96f69218273573e625475846269b3914cfcecf Mon Sep 17 00:00:00 2001
+From: George Kiagiadakis <george.kiagiadakis@collabora.com>
+Date: Wed, 9 Feb 2022 13:35:13 +0200
+Subject: [PATCH] restore-stream: do not crash if config.properties is nil
+
+Fixes #190
+---
+ src/scripts/restore-stream.lua | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/scripts/restore-stream.lua b/src/scripts/restore-stream.lua
+index 404eede5..0c17bdd7 100644
+--- a/src/scripts/restore-stream.lua
++++ b/src/scripts/restore-stream.lua
+@@ -10,6 +10,7 @@
+
+ -- Receive script arguments from config.lua
+ local config = ... or {}
++config.properties = config.properties or {}
+ config_restore_props = config.properties["restore-props"] or false
+ config_restore_target = config.properties["restore-target"] or false
+
+--
+GitLab
+
diff --git a/media-video/wireplumber/files/wireplumber-0.4.8-si-audio-adapter-relax-format-parsing.patch b/media-video/wireplumber/files/wireplumber-0.4.8-si-audio-adapter-relax-format-parsing.patch
new file mode 100644
index 000000000000..93225b02d88b
--- /dev/null
+++ b/media-video/wireplumber/files/wireplumber-0.4.8-si-audio-adapter-relax-format-parsing.patch
@@ -0,0 +1,44 @@
+https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/afbc0ce57aac7aee8dc1651de4620f15c73dbace
+
+From afbc0ce57aac7aee8dc1651de4620f15c73dbace Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans@redhat.com>
+Date: Mon, 21 Feb 2022 15:21:36 +0100
+Subject: [PATCH] si-audio-adapter: relax format parsing
+
+Some nodes can omit the format/rate/channels to indicate that they can
+deal with all possibilities and adapt to what they are linked to.
+
+See pipewire#876
+---
+ modules/module-si-audio-adapter.c | 11 ++---------
+ 1 file changed, 2 insertions(+), 9 deletions(-)
+
+diff --git a/modules/module-si-audio-adapter.c b/modules/module-si-audio-adapter.c
+index f1f6218..84e393f 100644
+--- a/modules/module-si-audio-adapter.c
++++ b/modules/module-si-audio-adapter.c
+@@ -158,19 +158,12 @@ si_audio_adapter_find_format (WpSiAudioAdapter * self, WpNode * node)
+ struct spa_pod *position = NULL;
+ wp_spa_pod_fixate (pod);
+
+- /* defaults */
+ spa_zero(raw_format);
+- raw_format.format = SPA_AUDIO_FORMAT_F32;
+- raw_format.rate = si_audio_adapter_get_default_clock_rate (self);
+- raw_format.channels = 2;
+- raw_format.position[0] = SPA_AUDIO_CHANNEL_FL;
+- raw_format.position[1] = SPA_AUDIO_CHANNEL_FR;
+-
+ if (spa_pod_parse_object(wp_spa_pod_get_spa_pod (pod),
+ SPA_TYPE_OBJECT_Format, NULL,
+- SPA_FORMAT_AUDIO_format, SPA_POD_Id(&raw_format.format),
++ SPA_FORMAT_AUDIO_format, SPA_POD_OPT_Id(&raw_format.format),
+ SPA_FORMAT_AUDIO_rate, SPA_POD_OPT_Int(&raw_format.rate),
+- SPA_FORMAT_AUDIO_channels, SPA_POD_Int(&raw_format.channels),
++ SPA_FORMAT_AUDIO_channels, SPA_POD_OPT_Int(&raw_format.channels),
+ SPA_FORMAT_AUDIO_position, SPA_POD_OPT_Pod(&position)) < 0)
+ continue;
+
+--
+2.35.1
+
diff --git a/media-video/wireplumber/files/wireplumber-0.4.8-spa-json-fix-va-list-APIs-for-different-architecture.patch b/media-video/wireplumber/files/wireplumber-0.4.8-spa-json-fix-va-list-APIs-for-different-architecture.patch
new file mode 100644
index 000000000000..b77cfa3c3c6f
--- /dev/null
+++ b/media-video/wireplumber/files/wireplumber-0.4.8-spa-json-fix-va-list-APIs-for-different-architecture.patch
@@ -0,0 +1,214 @@
+https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/e429db7e8c266045aee25e153fb2308bd61fe233
+
+From e429db7e8c266045aee25e153fb2308bd61fe233 Mon Sep 17 00:00:00 2001
+From: Julian Bouzas <julian.bouzas@collabora.com>
+Date: Wed, 9 Feb 2022 07:59:59 -0500
+Subject: [PATCH] spa-json: fix va_list APIs for different architectures
+
+The va_list type might not always be a pointer in some architectures, so we
+cannot guarantee it will be modified after using it for a second time in another
+function. This fixes the issue by using macros so args does not get copied, and
+always gets modified when using it more than once.
+---
+ lib/wp/spa-json.c | 156 ++++++++++++++++++++++++----------------------
+ 1 file changed, 80 insertions(+), 76 deletions(-)
+
+diff --git a/lib/wp/spa-json.c b/lib/wp/spa-json.c
+index f14f395d..c5e59a3e 100644
+--- a/lib/wp/spa-json.c
++++ b/lib/wp/spa-json.c
+@@ -363,33 +363,33 @@ wp_spa_json_new_string (const gchar *value)
+ wp_spa_json_builder_new_formatted ("\"%s\"", value));
+ }
+
+-static void
+-wp_spa_json_builder_add_value (WpSpaJsonBuilder *self, const gchar *fmt,
+- va_list args)
+-{
+- switch (*fmt) {
+- case 'n':
+- wp_spa_json_builder_add_null (self);
+- break;
+- case 'b':
+- wp_spa_json_builder_add_boolean (self, va_arg(args, gboolean));
+- break;
+- case 'i':
+- wp_spa_json_builder_add_int (self, va_arg(args, gint));
+- break;
+- case 'f':
+- wp_spa_json_builder_add_float (self, (float)va_arg(args, double));
+- break;
+- case 's':
+- wp_spa_json_builder_add_string (self, va_arg(args, const gchar *));
+- break;
+- case 'J':
+- wp_spa_json_builder_add_json (self, va_arg(args, WpSpaJson *));
+- break;
+- default:
+- return;
+- }
+-}
++/* Args is not a pointer in some architectures, so this needs to be a macro to
++ * avoid args being copied */
++#define wp_spa_json_builder_add_value(self,fmt,args) \
++do { \
++ switch (*fmt) { \
++ case 'n': \
++ wp_spa_json_builder_add_null (self); \
++ break; \
++ case 'b': \
++ wp_spa_json_builder_add_boolean (self, va_arg(args, gboolean)); \
++ break; \
++ case 'i': \
++ wp_spa_json_builder_add_int (self, va_arg(args, gint)); \
++ break; \
++ case 'f': \
++ wp_spa_json_builder_add_float (self, (float)va_arg(args, double)); \
++ break; \
++ case 's': \
++ wp_spa_json_builder_add_string (self, va_arg(args, const gchar *)); \
++ break; \
++ case 'J': \
++ wp_spa_json_builder_add_json (self, va_arg(args, WpSpaJson *)); \
++ break; \
++ default: \
++ break; \
++ } \
++} while(false)
+
+ /*!
+ * \brief Creates a spa json of type array
+@@ -724,48 +724,46 @@ wp_spa_json_parse_object_valist (WpSpaJson *self, va_list args)
+ return res;
+ }
+
+-static gboolean
+-wp_spa_json_parse_value (const gchar *data, int len, const gchar *fmt,
+- va_list args)
+-{
+- switch (*fmt) {
+- case 'n':
+- if (!spa_json_is_null (data, len))
+- return FALSE;
+- break;
+- case 'b':
+- if (!wp_spa_json_parse_boolean_internal (data, len,
+- va_arg(args, gboolean *)))
+- return FALSE;
+- break;
+- case 'i':
+- if (spa_json_parse_int (data, len, va_arg(args, gint *)) < 0)
+- return FALSE;
+- break;
+- case 'f':
+- if (spa_json_parse_float (data, len,
+- (float *)va_arg(args, double *)) < 0)
+- return FALSE;
+- break;
+- case 's': {
+- gchar *str = wp_spa_json_parse_string_internal (data, len);
+- if (!str)
+- return FALSE;
+- *va_arg(args, gchar **) = str;
+- break;
+- }
+- case 'J': {
+- WpSpaJson *j = wp_spa_json_new (data, len);
+- if (!j)
+- return FALSE;
+- *va_arg(args, WpSpaJson **) = j;
+- break;
+- }
+- default:
+- return FALSE;
+- }
+- return TRUE;
+-}
++/* Args is not a pointer in some architectures, so this needs to be a macro to
++ * avoid args being copied */
++#define wp_spa_json_parse_value(data,len,fmt,args) \
++do { \
++ switch (*fmt) { \
++ case 'n': \
++ if (!spa_json_is_null (data, len)) \
++ return FALSE; \
++ break; \
++ case 'b': \
++ if (!wp_spa_json_parse_boolean_internal (data, len, \
++ va_arg(args, gboolean *))) \
++ return FALSE; \
++ break; \
++ case 'i': \
++ if (spa_json_parse_int (data, len, va_arg(args, gint *)) < 0) \
++ return FALSE; \
++ break; \
++ case 'f': \
++ if (spa_json_parse_float (data, len, va_arg(args, float *)) < 0) \
++ return FALSE; \
++ break; \
++ case 's': { \
++ gchar *str = wp_spa_json_parse_string_internal (data, len); \
++ if (!str) \
++ return FALSE; \
++ *va_arg(args, gchar **) = str; \
++ break; \
++ } \
++ case 'J': { \
++ WpSpaJson *j = wp_spa_json_new (data, len); \
++ if (!j) \
++ return FALSE; \
++ *va_arg(args, WpSpaJson **) = j; \
++ break; \
++ } \
++ default: \
++ return FALSE; \
++ } \
++} while(false)
+
+ /*!
+ * \brief Parses the object property values of a spa json object
+@@ -827,8 +825,7 @@ wp_spa_json_object_get_valist (WpSpaJson *self, va_list args)
+ value = g_value_get_boxed (&item);
+
+ if (g_strcmp0 (key_str, lookup_key) == 0) {
+- if (!wp_spa_json_parse_value (value->data, value->size, lookup_fmt, args))
+- return FALSE;
++ wp_spa_json_parse_value (value->data, value->size, lookup_fmt, args);
+ lookup_key = va_arg(args, const gchar *);
+ if (!lookup_key)
+ return TRUE;
+@@ -1366,9 +1363,12 @@ gboolean
+ wp_spa_json_parser_get_value (WpSpaJsonParser *self, const gchar *fmt,
+ va_list args)
+ {
+- return wp_spa_json_parser_advance (self) &&
+- wp_spa_json_parse_value (self->curr.cur,
+- self->curr.end - self->curr.cur, fmt, args);
++ if (wp_spa_json_parser_advance (self)) {
++ wp_spa_json_parse_value (self->curr.cur, self->curr.end - self->curr.cur,
++ fmt, args);
++ return TRUE;
++ }
++ return FALSE;
+ }
+
+ /*!
+@@ -1419,9 +1419,13 @@ wp_spa_json_parser_get_valist (WpSpaJsonParser *self, va_list args)
+ if (!format)
+ return TRUE;
+
+- /* parse value */
+- if (!wp_spa_json_parser_get_value (self, format, args))
++ /* advance */
++ if (!wp_spa_json_parser_advance (self))
+ return FALSE;
++
++ /* parse value */
++ wp_spa_json_parse_value (self->curr.cur, self->curr.end - self->curr.cur,
++ format, args);
+ } while (TRUE);
+
+ return FALSE;
+--
+GitLab
+
diff --git a/media-video/wireplumber/metadata.xml b/media-video/wireplumber/metadata.xml
index 6c8e29d33878..d0319b1689c5 100644
--- a/media-video/wireplumber/metadata.xml
+++ b/media-video/wireplumber/metadata.xml
@@ -14,4 +14,7 @@
<changelog>https://gitlab.freedesktop.org/pipewire/wireplumber/-/releases</changelog>
<!--doc>https://gitlab.freedesktop.org/pipewire/wireplumber/-/wikis/home</doc-->
</upstream>
+ <use>
+ <flag name="system-service">Install systemd unit files for running as a system service. Not recommended.</flag>
+ </use>
</pkgmetadata>
diff --git a/media-video/wireplumber/wireplumber-0.4.5-r2.ebuild b/media-video/wireplumber/wireplumber-0.4.5-r2.ebuild
deleted file mode 100644
index 8e8a9b7ebc8e..000000000000
--- a/media-video/wireplumber/wireplumber-0.4.5-r2.ebuild
+++ /dev/null
@@ -1,101 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-LUA_COMPAT=( lua5-{3,4} )
-
-inherit lua-single meson systemd
-
-if [[ ${PV} == 9999 ]]; then
- EGIT_REPO_URI="https://gitlab.freedesktop.org/pipewire/${PN}.git"
- EGIT_BRANCH="master"
- inherit git-r3
-else
- SRC_URI="https://gitlab.freedesktop.org/pipewire/${PN}/-/archive/${PV}/${P}.tar.gz"
-
- # One commit is in git, the rest are in a PR which should be merged soon
- # bug #817881
- SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-0.4.5-endianness-fixes.patch.bz2"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
-fi
-
-DESCRIPTION="Replacement for pipewire-media-session"
-HOMEPAGE="https://gitlab.freedesktop.org/pipewire/wireplumber"
-
-LICENSE="MIT"
-SLOT="0/0.4"
-IUSE="elogind systemd test"
-
-REQUIRED_USE="
- ${LUA_REQUIRED_USE}
- ?? ( elogind systemd )
-"
-
-RESTRICT="!test? ( test )"
-
-# introspection? ( dev-libs/gobject-introspection ) is valid but likely only used for doc building
-BDEPEND="
- dev-libs/glib
- dev-util/gdbus-codegen
- dev-util/glib-utils
-"
-
-DEPEND="
- ${LUA_DEPS}
- >=dev-libs/glib-2.62
- >=media-video/pipewire-0.3.42:=
- virtual/libc
- elogind? ( sys-auth/elogind )
- systemd? ( sys-apps/systemd )
-"
-
-# Any dev-lua/* deps get declared like this inside RDEPEND:
-# $(lua_gen_cond_dep '
-# dev-lua/<NAME>[${LUA_USEDEP}]
-# ')
-RDEPEND="${DEPEND}"
-
-DOCS=( {NEWS,README}.rst )
-
-PATCHES=(
- "${FILESDIR}"/${P}-m-reserve-device-replace-the-hash-table-key-on-new-i.patch
- "${FILESDIR}"/${P}-policy-node-wait-for-nodes-when-we-become-unlinked.patch
- "${FILESDIR}"/${P}-lib-don-t-read-hidden-files-from-the-config-director.patch
- "${FILESDIR}"/${P}-alsa-handle-the-release-requested-signal.patch
- "${WORKDIR}"/${P}-endianness-fixes.patch
-)
-
-src_configure() {
- local emesonargs=(
- -Dintrospection=disabled # Only used for Sphinx doc generation
- -Dsystem-lua=true # We always unbundle everything we can
- -Dsystem-lua-version=$(ver_cut 1-2 $(lua_get_version))
- $(meson_feature elogind)
- $(meson_feature systemd)
- -Dsystemd-system-service=false # Matches upstream
- $(meson_use systemd systemd-user-service)
- -Dsystemd-system-unit-dir=$(systemd_get_systemunitdir)
- -Dsystemd-user-unit-dir=$(systemd_get_userunitdir)
- $(meson_use test tests)
- )
-
- meson_src_configure
-}
-
-pkg_postinst() {
- if systemd_is_booted ; then
- ewarn "pipewire-media-session.service is no longer installed. You must switch"
- ewarn "to wireplumber.service user unit before your next logout/reboot:"
- ewarn "systemctl --user disable pipewire-media-session.service"
- ewarn "systemctl --user --force enable wireplumber.service"
- else
- ewarn "Switch to WirePlumber will happen the next time gentoo-pipewire-launcher"
- ewarn "is started (a replacement for directly calling pipewire binary)."
- ewarn
- ewarn "Please ensure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist"
- ewarn "or, if it does exist, that any reference to"
- ewarn "${EROOT}/usr/bin/pipewire-media-session is commented out (begins with a #)."
- fi
- ewarn
-}
diff --git a/media-video/wireplumber/wireplumber-0.4.7-r1.ebuild b/media-video/wireplumber/wireplumber-0.4.7-r2.ebuild
index a071b5b2b18f..03a62724a829 100644
--- a/media-video/wireplumber/wireplumber-0.4.7-r1.ebuild
+++ b/media-video/wireplumber/wireplumber-0.4.7-r2.ebuild
@@ -21,11 +21,12 @@ HOMEPAGE="https://gitlab.freedesktop.org/pipewire/wireplumber"
LICENSE="MIT"
SLOT="0/0.4"
-IUSE="elogind systemd test"
+IUSE="elogind system-service systemd test"
REQUIRED_USE="
${LUA_REQUIRED_USE}
?? ( elogind systemd )
+ system-service? ( systemd )
"
RESTRICT="!test? ( test )"
@@ -50,7 +51,12 @@ DEPEND="
# $(lua_gen_cond_dep '
# dev-lua/<NAME>[${LUA_USEDEP}]
# ')
-RDEPEND="${DEPEND}"
+RDEPEND="${DEPEND}
+ system-service? (
+ acct-user/pipewire
+ acct-group/pipewire
+ )
+"
DOCS=( {NEWS,README}.rst )
@@ -66,7 +72,7 @@ src_configure() {
-Dsystem-lua-version=$(ver_cut 1-2 $(lua_get_version))
$(meson_feature elogind)
$(meson_feature systemd)
- -Dsystemd-system-service=false # Matches upstream
+ $(meson_use system-service systemd-system-service)
$(meson_use systemd systemd-user-service)
-Dsystemd-system-unit-dir=$(systemd_get_systemunitdir)
-Dsystemd-user-unit-dir=$(systemd_get_userunitdir)
@@ -76,6 +82,17 @@ src_configure() {
meson_src_configure
}
+src_install() {
+ meson_src_install
+
+ # We copy the default config, so that Gentoo tools can pick up on any
+ # updates and /etc does not end up with stale overrides.
+ # If a reflinking CoW filesystem is used (e.g. Btrfs), then the files
+ # will not actually get stored twice until modified.
+ insinto /etc
+ doins -r ${ED}/usr/share/wireplumber
+}
+
pkg_postinst() {
if systemd_is_booted ; then
ewarn "pipewire-media-session.service is no longer installed. You must switch"
@@ -90,5 +107,14 @@ pkg_postinst() {
ewarn "or, if it does exist, that any reference to"
ewarn "${EROOT}/usr/bin/pipewire-media-session is commented out (begins with a #)."
fi
- ewarn
+ if use system-service; then
+ ewarn
+ ewarn "WARNING: you have enabled the system-service USE flag, which installs"
+ ewarn "the system-wide systemd units that enable WirePlumber 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"
+ ewarn "box, and you are on your own with configuration."
+ ewarn
+ fi
}
diff --git a/media-video/wireplumber/wireplumber-0.4.6-r1.ebuild b/media-video/wireplumber/wireplumber-0.4.8-r2.ebuild
index 16b0e2144871..5e77689f2572 100644
--- a/media-video/wireplumber/wireplumber-0.4.6-r1.ebuild
+++ b/media-video/wireplumber/wireplumber-0.4.8-r2.ebuild
@@ -21,11 +21,12 @@ HOMEPAGE="https://gitlab.freedesktop.org/pipewire/wireplumber"
LICENSE="MIT"
SLOT="0/0.4"
-IUSE="elogind systemd test"
+IUSE="elogind system-service systemd test"
REQUIRED_USE="
${LUA_REQUIRED_USE}
?? ( elogind systemd )
+ system-service? ( systemd )
"
RESTRICT="!test? ( test )"
@@ -40,7 +41,7 @@ BDEPEND="
DEPEND="
${LUA_DEPS}
>=dev-libs/glib-2.62
- >=media-video/pipewire-0.3.43:=
+ >=media-video/pipewire-0.3.45:=
virtual/libc
elogind? ( sys-auth/elogind )
systemd? ( sys-apps/systemd )
@@ -50,15 +51,19 @@ DEPEND="
# $(lua_gen_cond_dep '
# dev-lua/<NAME>[${LUA_USEDEP}]
# ')
-RDEPEND="${DEPEND}"
+RDEPEND="${DEPEND}
+ system-service? (
+ acct-user/pipewire
+ acct-group/pipewire
+ )
+"
DOCS=( {NEWS,README}.rst )
PATCHES=(
- "${FILESDIR}"/${P}-policy-node-fix-typo-when-finding-best-target.patch
- "${FILESDIR}"/${P}-policy-node-schedule-a-rescan-without-timeout-if-def.patch
- "${FILESDIR}"/${P}-policy-node-find-best-linkable-if-default-one-cannot.patch
- "${FILESDIR}"/${P}-spa-pod-fix-different-architecture-errors-for-boolea.patch
+ "${FILESDIR}"/${P}-restore-stream-do-not-crash-if-config.properties-is-.patch
+ "${FILESDIR}"/${P}-spa-json-fix-va-list-APIs-for-different-architecture.patch
+ "${FILESDIR}"/${P}-policy-bluetooth-fix-string.find-crash-with-nil-stri.patch
)
src_configure() {
@@ -69,7 +74,7 @@ src_configure() {
-Dsystem-lua-version=$(ver_cut 1-2 $(lua_get_version))
$(meson_feature elogind)
$(meson_feature systemd)
- -Dsystemd-system-service=false # Matches upstream
+ $(meson_use system-service systemd-system-service)
$(meson_use systemd systemd-user-service)
-Dsystemd-system-unit-dir=$(systemd_get_systemunitdir)
-Dsystemd-user-unit-dir=$(systemd_get_userunitdir)
@@ -79,6 +84,17 @@ src_configure() {
meson_src_configure
}
+src_install() {
+ meson_src_install
+
+ # We copy the default config, so that Gentoo tools can pick up on any
+ # updates and /etc does not end up with stale overrides.
+ # If a reflinking CoW filesystem is used (e.g. Btrfs), then the files
+ # will not actually get stored twice until modified.
+ insinto /etc
+ doins -r ${ED}/usr/share/wireplumber
+}
+
pkg_postinst() {
if systemd_is_booted ; then
ewarn "pipewire-media-session.service is no longer installed. You must switch"
@@ -93,5 +109,14 @@ pkg_postinst() {
ewarn "or, if it does exist, that any reference to"
ewarn "${EROOT}/usr/bin/pipewire-media-session is commented out (begins with a #)."
fi
- ewarn
+ if use system-service; then
+ ewarn
+ ewarn "WARNING: you have enabled the system-service USE flag, which installs"
+ ewarn "the system-wide systemd units that enable WirePlumber 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"
+ ewarn "box, and you are on your own with configuration."
+ ewarn
+ fi
}
diff --git a/media-video/wireplumber/wireplumber-0.4.5-r4.ebuild b/media-video/wireplumber/wireplumber-0.4.8-r3.ebuild
index faf7c563e19f..5bd6d87c04e8 100644
--- a/media-video/wireplumber/wireplumber-0.4.5-r4.ebuild
+++ b/media-video/wireplumber/wireplumber-0.4.8-r3.ebuild
@@ -1,7 +1,7 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
LUA_COMPAT=( lua5-{3,4} )
@@ -13,10 +13,6 @@ if [[ ${PV} == 9999 ]]; then
inherit git-r3
else
SRC_URI="https://gitlab.freedesktop.org/pipewire/${PN}/-/archive/${PV}/${P}.tar.gz"
-
- # One commit is in git, the rest are in a PR which should be merged soon
- # bug #817881
- SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-0.4.5-endianness-fixes.patch.bz2"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
@@ -25,11 +21,12 @@ HOMEPAGE="https://gitlab.freedesktop.org/pipewire/wireplumber"
LICENSE="MIT"
SLOT="0/0.4"
-IUSE="elogind systemd test"
+IUSE="elogind system-service systemd test"
REQUIRED_USE="
${LUA_REQUIRED_USE}
?? ( elogind systemd )
+ system-service? ( systemd )
"
RESTRICT="!test? ( test )"
@@ -44,7 +41,7 @@ BDEPEND="
DEPEND="
${LUA_DEPS}
>=dev-libs/glib-2.62
- >=media-video/pipewire-0.3.42:=
+ >=media-video/pipewire-0.3.45:=
virtual/libc
elogind? ( sys-auth/elogind )
systemd? ( sys-apps/systemd )
@@ -54,18 +51,20 @@ DEPEND="
# $(lua_gen_cond_dep '
# dev-lua/<NAME>[${LUA_USEDEP}]
# ')
-RDEPEND="${DEPEND}"
+RDEPEND="${DEPEND}
+ system-service? (
+ acct-user/pipewire
+ acct-group/pipewire
+ )
+"
DOCS=( {NEWS,README}.rst )
PATCHES=(
- "${FILESDIR}"/${P}-m-reserve-device-replace-the-hash-table-key-on-new-i.patch
- "${FILESDIR}"/${P}-policy-node-wait-for-nodes-when-we-become-unlinked.patch
- "${FILESDIR}"/${P}-lib-don-t-read-hidden-files-from-the-config-director.patch
- "${FILESDIR}"/${P}-alsa-handle-the-release-requested-signal.patch
- "${FILESDIR}"/${P}-access-config-add-restricted-access-permissions.patch
- "${FILESDIR}"/${P}-default-routes.lua-reevaluate-current-profile-only-f.patch
- "${WORKDIR}"/${P}-endianness-fixes.patch
+ "${FILESDIR}"/${P}-restore-stream-do-not-crash-if-config.properties-is-.patch
+ "${FILESDIR}"/${P}-spa-json-fix-va-list-APIs-for-different-architecture.patch
+ "${FILESDIR}"/${P}-policy-bluetooth-fix-string.find-crash-with-nil-stri.patch
+ "${FILESDIR}"/${P}-si-audio-adapter-relax-format-parsing.patch
)
src_configure() {
@@ -76,7 +75,7 @@ src_configure() {
-Dsystem-lua-version=$(ver_cut 1-2 $(lua_get_version))
$(meson_feature elogind)
$(meson_feature systemd)
- -Dsystemd-system-service=false # Matches upstream
+ $(meson_use system-service systemd-system-service)
$(meson_use systemd systemd-user-service)
-Dsystemd-system-unit-dir=$(systemd_get_systemunitdir)
-Dsystemd-user-unit-dir=$(systemd_get_userunitdir)
@@ -86,6 +85,17 @@ src_configure() {
meson_src_configure
}
+src_install() {
+ meson_src_install
+
+ # We copy the default config, so that Gentoo tools can pick up on any
+ # updates and /etc does not end up with stale overrides.
+ # If a reflinking CoW filesystem is used (e.g. Btrfs), then the files
+ # will not actually get stored twice until modified.
+ insinto /etc
+ doins -r ${ED}/usr/share/wireplumber
+}
+
pkg_postinst() {
if systemd_is_booted ; then
ewarn "pipewire-media-session.service is no longer installed. You must switch"
@@ -100,5 +110,14 @@ pkg_postinst() {
ewarn "or, if it does exist, that any reference to"
ewarn "${EROOT}/usr/bin/pipewire-media-session is commented out (begins with a #)."
fi
- ewarn
+ if use system-service; then
+ ewarn
+ ewarn "WARNING: you have enabled the system-service USE flag, which installs"
+ ewarn "the system-wide systemd units that enable WirePlumber 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"
+ ewarn "box, and you are on your own with configuration."
+ ewarn
+ fi
}
diff --git a/media-video/wireplumber/wireplumber-9999.ebuild b/media-video/wireplumber/wireplumber-9999.ebuild
index 2e6c068b1ee9..2e425ab4a17e 100644
--- a/media-video/wireplumber/wireplumber-9999.ebuild
+++ b/media-video/wireplumber/wireplumber-9999.ebuild
@@ -21,11 +21,12 @@ HOMEPAGE="https://gitlab.freedesktop.org/pipewire/wireplumber"
LICENSE="MIT"
SLOT="0/0.4"
-IUSE="elogind systemd test"
+IUSE="elogind system-service systemd test"
REQUIRED_USE="
${LUA_REQUIRED_USE}
?? ( elogind systemd )
+ system-service? ( systemd )
"
RESTRICT="!test? ( test )"
@@ -40,7 +41,7 @@ BDEPEND="
DEPEND="
${LUA_DEPS}
>=dev-libs/glib-2.62
- >=media-video/pipewire-0.3.43:=
+ >=media-video/pipewire-0.3.45:=
virtual/libc
elogind? ( sys-auth/elogind )
systemd? ( sys-apps/systemd )
@@ -50,7 +51,12 @@ DEPEND="
# $(lua_gen_cond_dep '
# dev-lua/<NAME>[${LUA_USEDEP}]
# ')
-RDEPEND="${DEPEND}"
+RDEPEND="${DEPEND}
+ system-service? (
+ acct-user/pipewire
+ acct-group/pipewire
+ )
+"
DOCS=( {NEWS,README}.rst )
@@ -62,7 +68,7 @@ src_configure() {
-Dsystem-lua-version=$(ver_cut 1-2 $(lua_get_version))
$(meson_feature elogind)
$(meson_feature systemd)
- -Dsystemd-system-service=false # Matches upstream
+ $(meson_use system-service systemd-system-service)
$(meson_use systemd systemd-user-service)
-Dsystemd-system-unit-dir=$(systemd_get_systemunitdir)
-Dsystemd-user-unit-dir=$(systemd_get_userunitdir)
@@ -72,6 +78,17 @@ src_configure() {
meson_src_configure
}
+src_install() {
+ meson_src_install
+
+ # We copy the default config, so that Gentoo tools can pick up on any
+ # updates and /etc does not end up with stale overrides.
+ # If a reflinking CoW filesystem is used (e.g. Btrfs), then the files
+ # will not actually get stored twice until modified.
+ insinto /etc
+ doins -r ${ED}/usr/share/wireplumber
+}
+
pkg_postinst() {
if systemd_is_booted ; then
ewarn "pipewire-media-session.service is no longer installed. You must switch"
@@ -86,5 +103,14 @@ pkg_postinst() {
ewarn "or, if it does exist, that any reference to"
ewarn "${EROOT}/usr/bin/pipewire-media-session is commented out (begins with a #)."
fi
- ewarn
+ if use system-service; then
+ ewarn
+ ewarn "WARNING: you have enabled the system-service USE flag, which installs"
+ ewarn "the system-wide systemd units that enable WirePlumber 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"
+ ewarn "box, and you are on your own with configuration."
+ ewarn
+ fi
}