diff options
Diffstat (limited to 'media-video')
-rw-r--r-- | media-video/Manifest.gz | bin | 23864 -> 23875 bytes | |||
-rw-r--r-- | media-video/ffmpeg-chromium/Manifest | 2 | ||||
-rw-r--r-- | media-video/ffmpeg-chromium/ffmpeg-chromium-125.ebuild | 2 | ||||
-rw-r--r-- | media-video/ffmpeg/Manifest | 2 | ||||
-rw-r--r-- | media-video/ffmpeg/ffmpeg-6.1.1-r5.ebuild | 2 | ||||
-rw-r--r-- | media-video/mkvtoolnix/Manifest | 7 | ||||
-rw-r--r-- | media-video/mkvtoolnix/mkvtoolnix-84.0.ebuild (renamed from media-video/mkvtoolnix/mkvtoolnix-77.0.ebuild) | 67 | ||||
-rw-r--r-- | media-video/mkvtoolnix/mkvtoolnix-9999.ebuild | 8 | ||||
-rw-r--r-- | media-video/pipewire/Manifest | 2 | ||||
-rw-r--r-- | media-video/pipewire/pipewire-1.0.7.ebuild | 502 |
10 files changed, 553 insertions, 41 deletions
diff --git a/media-video/Manifest.gz b/media-video/Manifest.gz Binary files differindex ce5c5c0840b9..d615460a90d7 100644 --- a/media-video/Manifest.gz +++ b/media-video/Manifest.gz diff --git a/media-video/ffmpeg-chromium/Manifest b/media-video/ffmpeg-chromium/Manifest index 30537c8a6e98..d99cc89a543d 100644 --- a/media-video/ffmpeg-chromium/Manifest +++ b/media-video/ffmpeg-chromium/Manifest @@ -10,6 +10,6 @@ EBUILD ffmpeg-chromium-120.ebuild 6692 BLAKE2B db110de522d1885bcf2f5d3c45ca3b343 EBUILD ffmpeg-chromium-121.ebuild 6692 BLAKE2B 36aafbff5f4c4a7bf81d9fe1293a1962a8632f9df49012f08e7130e6050a2a026ee3b4394eca6456200ba30a2661a7fe7d1b4a3c5c95602d7865802d65587247 SHA512 a47296b03217d345a6465321ed51ae11a0a61991ea6b8790571e7c0754d1a0c9d91f7944f255dd6a05e255d863523b4637e0e9c21cc644541c04fd5abbd3a43d EBUILD ffmpeg-chromium-123.ebuild 6629 BLAKE2B ccf9f2604c0440214a1a3670208d192b237be824bfb70294aaf594c0a3f7241c16b1443806b0aa5e78e184c24ad6978f2d588b0953fcd1478f7699d279e7922c SHA512 aa35b07def61daa2b1c4ac575e8c7b9db019dc2be1dd284b20f43e76cb2dd72e8d47d7e5429f9e703de46439a310de4a20d2973fe219de8af1142ec5178430c7 EBUILD ffmpeg-chromium-124.ebuild 6631 BLAKE2B 5f190273d57e0a20c90d042a231bff16dae975c6153145c74218245b5cd4207fc56033620590fd5e79370ca0e295d1e1075e6113b896e2b43b7af8b6b699977a SHA512 2f69214111249dda6e01535d402d8fc457bcb220e5ae8360f08b686ec2a96a4c78a36e2dd7205b6fffe5b3f9aa0282154c844dae0d59a2edb2e6f183fce5687d -EBUILD ffmpeg-chromium-125.ebuild 6658 BLAKE2B d5f23d2e656733d3b56264eafede9f985e1b37d0c88a68196e44df4c373249222417f6ffd99fb9b54aa249baabe873eaa58edf6ada170582947b1e7c682e9e61 SHA512 e999d9d27e35976fcc1110c4ba45f3f7266f7be5b622a89a66f0f73eb359fe6c888b2a63b19169f7a4a3b1890303a02c58c36dfaed8351f7aa6ccad952a2fafe +EBUILD ffmpeg-chromium-125.ebuild 6657 BLAKE2B db9582314b61909de311d3287577cad8d087a96eb9fd2ac1c9fd8ba0f89622ec8cfbb5790069af68e1f6b42efe0b4be5aea5d6f99425bfa4f99e8ace553ba4d2 SHA512 ec6d625c3d5d6007a3f0f5bea98cf684ddde7087db030e7dacaa93a673a279edf74d62c475c3112927e4a7ab68d3f80621378ad0db77ac7ff3e5b56cc5d6e88d EBUILD ffmpeg-chromium-126.ebuild 6659 BLAKE2B 75ca109e9e966b86635a2227e2322548c84c05c665a5c9247797cd87c118c6068eb9477bde71c1ef6522ec304d6a43726c4cad58658208b13720db5807b24d44 SHA512 a4ee20256d01e025e702a406b5e4c697c3fc3a256825c5ad2e0da57043085ce73343eb079d5fddf935ca463cbdcad3f7361f5cd99426e47d1ef55cd98d995020 MISC metadata.xml 820 BLAKE2B 666416ef717f7990f3e90e644b82c2833adb4942676f74eac6f15841d0f2a3a841b72906a7079321fb2101ffd672308892f90f536fcefa3837fb49344aeff3e9 SHA512 ffd36a905e6891f5d2134f159e6cb6707d4b37b2c5398474983ffa314fa9c5c140a5b8297de43827dd8108b7b4bcda7859158d2947e5b48730b820660a06962e diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-125.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-125.ebuild index 543ca726ce56..3186f0ec2b6a 100644 --- a/media-video/ffmpeg-chromium/ffmpeg-chromium-125.ebuild +++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-125.ebuild @@ -16,7 +16,7 @@ LICENSE=" " SLOT="${PV}" -KEYWORDS="~amd64 ~arm arm64 ~loong ~ppc64" +KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64" # Options to use as use_enable in the foo[:bar] form. # This will feed configure with $(use_enable foo bar) diff --git a/media-video/ffmpeg/Manifest b/media-video/ffmpeg/Manifest index 1c58550008f9..aee07db06d86 100644 --- a/media-video/ffmpeg/Manifest +++ b/media-video/ffmpeg/Manifest @@ -38,7 +38,7 @@ DIST ffmpeg-rpi-6.1-r3.patch.asc 833 BLAKE2B 31fd5823c06d5884f7b0980de9072c35bbf EBUILD ffmpeg-4.4.4-r9.ebuild 20312 BLAKE2B 50dd3e95cf6277261dc983dc3d807a4a5ed1a06c046fff5d6cb53ab7e17088e04fb62fd5bd45ffdf034a0bd7c419e69afef490145d1da4ac1c89d07d89a44db2 SHA512 9a7da74b1ef83289b697681e4e7f0e699865e156af24617dfabc88934b3374bf8aa8416759d120a016debfded168d3e9c0d4ef07e712e70f778a10d0af872c44 EBUILD ffmpeg-6.0-r12.ebuild 20022 BLAKE2B 1d27958625368f9748d5a2a4a06bad7042795fd7cc0080285ee07ec98bef187ede3f0a327ce442a2c61d2f60adf84de014a916acd405ae4455ab2acfcf25cb6b SHA512 9469da9701053831748314d4a3ef750e260106113197384ecabca51cdfbacab79018e26096b3b5ea96080f849de9ec032462f093bd41eb57e73064185e40df06 EBUILD ffmpeg-6.0.1-r4.ebuild 20020 BLAKE2B c19d2af1c04d2c202fc84efda51da246f265b472ab414a3f613542cbc845e8d6e3e78d02ea4ef448866d6a711534ef181c4850bb75fc04c6c499755c0c4046ca SHA512 2f7e5866ce0f1d47332a1d8233b436a6d3680a75e5e406519387f177e3574cb9b7181169d8eb51273cf5fc5695f410ad12e1062ed3fc2d05fbdfa80c37d0a15e -EBUILD ffmpeg-6.1.1-r5.ebuild 20314 BLAKE2B 7f7024133e2855fe5686d6d8c45374cd1fb2caebfe5eb0b89bab75d46c78d86c793a639df2b5bfd9749897263ccfc9fbf1285df002f09dd31e8d183da8450ae1 SHA512 b87fa32674fec46d064f7e5a191d9b68bb1ef9ebcc3da62e185b43398520dc3a3c864fd112e10ee521858f0a981c6dc514129b27802448fc59720cba3875a47a +EBUILD ffmpeg-6.1.1-r5.ebuild 20309 BLAKE2B 724f6222ac5999f1aa80296dcb90390fd854688d76acf9981eaed04652e41dbe6c982907f26d8d02b1240d220ac0c43c365ec0eda2bc8f52d50641762d2d7f7b SHA512 8dc0b5537bb702bf08a71103c5a38a004790432b6865f8f4e657d6f7d1b32152532fbd0bc717a4a2b237a48f80805b26f11674f2bd533f23110194ffde906140 EBUILD ffmpeg-6.1.1-r6.ebuild 20359 BLAKE2B 8df188ef17fd791580f8b99260d9df5d5292756a3a1391d6f856c3ead1e0005d4a6db3522a144720aec1ee4f0034255fe6bebe4334727ee07be2ce79879ec19d SHA512 242dbdda98204543379bf6bf3786b3143330a33010389cc4758a30b33f5821c0669ab577e80b72a56d286d5e0437fe6676b16d51c9c62adf2ff84133da9ac96b EBUILD ffmpeg-9999.ebuild 20059 BLAKE2B 10591fc6ed5448828a2208c6e3950aecd007c901844fd7b6b7894c51ec301adcd07935617eba3f975dc9397d226303ccd761b1a0c40edf068cf8729ed10c5981 SHA512 44694bb25edc1fa33657d3da3affa04e682a5336d399d93585c27ae63ac33c26dc0f102e29151621de07727478b836667b8b12e4921ffc4a53a2cc65e141623a MISC metadata.xml 7897 BLAKE2B 3ca144eac26a80cd6bd85c51c72e65a879e50ef810bcfc926dabacbcf1e1b217973934488c75f32b9e2a872f3a9f2a1c5e075d01fe048d1076997792fab383a9 SHA512 aa06791277e42ada2f1c3af3f360939f289012f7a1283471b4490c584f88f3f82eb6552218c4bead5d3c85b4514536dd63860fff57f635b189bc78d22a84c43a diff --git a/media-video/ffmpeg/ffmpeg-6.1.1-r5.ebuild b/media-video/ffmpeg/ffmpeg-6.1.1-r5.ebuild index 94fe73865b5b..29d671d9c23a 100644 --- a/media-video/ffmpeg/ffmpeg-6.1.1-r5.ebuild +++ b/media-video/ffmpeg/ffmpeg-6.1.1-r5.ebuild @@ -85,7 +85,7 @@ LICENSE=" samba? ( GPL-3 ) " if [ "${PV#9999}" = "${PV}" ] ; then - KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" fi # Options to use as use_enable in the foo[:bar] form. diff --git a/media-video/mkvtoolnix/Manifest b/media-video/mkvtoolnix/Manifest index 52639666a835..5cb555986204 100644 --- a/media-video/mkvtoolnix/Manifest +++ b/media-video/mkvtoolnix/Manifest @@ -4,13 +4,14 @@ AUX mkvtoolnix-80.0.0-fix-qtmultimedia.patch 808 BLAKE2B 560d85d4ef07677adb63053 AUX mkvtoolnix-80.0.0-no-uic-qtwidgets.patch 1035 BLAKE2B ff38fb84285d2f496ebe56325dbb3c0059c41ec32bfbf31c2f45659ee17a2b4d29391d5f7b258b2c8c7d2ffcd25644c32ba4f4c0261e51a83bd518cb967c99a1 SHA512 d0b8ebbb246049ec8749dc1dc14575e41f091c758d323a4b7597475eb6422a0886eb9e4408084d4e386467760903e5fc444685d490216cae6642634318a6eef2 AUX mkvtoolnix-80.0.0-optional-qtdbus.patch 2501 BLAKE2B 9372aee680a4b20adef6e0b9fe444548b40573ee50a9d9ac7593407d1b9e69670fe3c16ecd2dc3d752154a5414f714f201d00a5a1b4a96065265bd553219c1ba SHA512 75eb5344605ef9c461df7e8d92ce5422d241efe01aa49d148cbb337ac29f589ce83e4e258918dd62246c84fead8d971770ca577d7ead47246b5a74b023503fd1 AUX mkvtoolnix-83.0.0-fix-disable-gui.patch 4772 BLAKE2B 9f1244cd93e1292cc91903846af71dac9bf0a81f2eedebe8166cd3516208a815d7054bec4ad77fb51f4adfc71a6ae5d84eb2096f5dc2d2895adde93d900a5f93 SHA512 f8939d53940fe2cd4a3b4e80b2af111934a5cacb9f87e7d17be9c3a34ce4205ec02ac4a2003c1b55ba97d0c5da132cdd8e123105db02cdcf7dfc289fdbc97314 -DIST mkvtoolnix-77.0.tar.xz 11044004 BLAKE2B 5aa43e155c1318dc6c3fd4418fb59ec498ad488a8459cf0aefa0bc0660ff93dd51f2699642ea633695fbf76ae1b4b6cfddddfca1b0e72e16357b579ce8dbee42 SHA512 b310077cfaddef3163c732943f1aaf7e63fb9f7efb19fdb27a35e2d0ad92dfc4536ea29366b44745f3f918703b02e2d52edb63369c23540df1312f3d54c06bb0 DIST mkvtoolnix-81.0.tar.xz 11067288 BLAKE2B 64bf3cd1872e3b67c6932ed29527e1dff2f913d257464cdca2d54a62bd2154a820d86bce857f55345aba1bcd5701872dbddcb5a029845d0079159358cb154fb0 SHA512 d23f6d1819437ba77576852141256698997e49066158903e1cea4086b9c05302d6661780e911fc258c028a84f2ac95140f6ba15d2ffd11c23cb92e422febf7c7 DIST mkvtoolnix-81.0.tar.xz.sig 833 BLAKE2B 37e63e92628d3dcb6e9c9129e09dbef1d1d4e80515a05a9a5684d5d542ef54b024e76f1fac50b242e32172ef24493123b6103ae79fa411eefea7704cd63070d5 SHA512 3975c0b217318fdd9eeed23694c0e25536c694fa6cef63560b48ed79db7827be41cbe9a2cd8d8c1d2555beb436a5191a5ad21f0e5e73f93f2ca1c09be13826cb DIST mkvtoolnix-83.0.tar.xz 11278152 BLAKE2B f57b398c747d90021f2a13e58df23655e898a0bb68ad7f050f7a3fe0018866570fb81780f2d68a8c9ed06b66882578b5a9144c3be1bb9b79bc5f79e13f06bde5 SHA512 e70236249f9f72c4ffeab8222c03cdf373a25643f1b106a1abb695184152be8bb22e3fb5dc67b48e6193d9ac37d0b9b2ea317a31214b92648ac75a82c99f9b5d DIST mkvtoolnix-83.0.tar.xz.sig 833 BLAKE2B 3eddaa4941d84937a7b771bea66be52979437abb54cd178eb6d24b30628db3ee0ad72f23bea7419a7bc13cfd4f84d6d004b46ad63bad0eeeef8fd05f37bcaf4f SHA512 6d3ac46a40139fff67da61c77a802df243764d8c26c55e3b951d407fd3147bcf985f8a62c21b18c12fabe0afdc535a3449a6bfff3f15a5779b2aed1f94fe0ab7 -EBUILD mkvtoolnix-77.0.ebuild 2981 BLAKE2B eaee5dd08153c3efd23fe7006e9c5980df1e6f62fed5d2303ed65918bfe036efdb450340b48f34492b747f0c5c0e2c4b622e529ee29d4458e26dca8935fec3bd SHA512 57dd6092f75d4fb1d794e59029da33e9c318a2e8f9ba0ca1f436ea8ead67ace12125eda560fbabad1c06390c3f3699202ce35e45120cdf02ad8d3d5b0c43f001 +DIST mkvtoolnix-84.0.tar.xz 11325260 BLAKE2B 147878e796c3ce9b3dc03e026eaeb45c21946d0a80ff76d090a8a11a22e1e02fddfe158192df264c5a006ad9007a73d68ddd5c79f0ccd1d103e827e4d0123974 SHA512 3a73bb2497a227fd2e0a65d58e72bf479662828a7b4201b37b7bfdd7f88d294a6690aee024661d8b5615036f64a4ce1c2ba64d7b24ebd352f8f5ce3ffdac543a +DIST mkvtoolnix-84.0.tar.xz.sig 833 BLAKE2B 903530d5968d9409a9b0fe1f236c254386a33ce1224b36d4e6f33d603851eec2ed27aac2923d59a3f2e729a48bd7724d8b697cbdff5213bec338417f1632ef29 SHA512 2338a226e0df776e1b3c78f93793900e62c391fd7fd4e56c317840f3d00fccc20d6ede3118ad47266b6772459d1959a221f2e475a4b96bd9c2d58caab3dae184 EBUILD mkvtoolnix-81.0.ebuild 3617 BLAKE2B 68232e3bc6f600d7c33c8d9263193457d1eaa21c42c192c7c02749b0cf8db06b02fa7947b33319af7515af7822f4ddfa2d1adfe8a87c868a5e7c0b7d05d94de1 SHA512 f224a17d42ce74aae9ac6d8a9b7b1c8f38f34656707503d0c6f304fb67ca3ba3ce15d511f6fcab7a9a3038b7a156a6956c10a02e9d66b4fc1ba32fc30400028d EBUILD mkvtoolnix-83.0.ebuild 3142 BLAKE2B 0729c1fb0b60510c22c4f49f7ca6de33eacbdaaf0159c477a72ee66a0a509cfa78f8794188c92ca39523145aa4f3a1d3fefae9f36794594da0191128a3806512 SHA512 0a9ab9519b11e9feb4c0f954ecc2188f4ba0b3ad32f851ec6de6d3ca5917a9952ff86c1acc02591300d7f359792c25ac25fd0faaa37accbf3c8c3efa74a5eaca -EBUILD mkvtoolnix-9999.ebuild 3040 BLAKE2B d4501f0109ba20046cd9d85745f3961d956fb80f7e0ca6cf185f4098306c694a59d9e99f7f6833dc49eba04c2820e249601bd679762958632de949b6475c07f4 SHA512 591f3488f22f9b892882ce4a618e4a7d357852436bad128a33b53a0ab6896b3d76e1c299c31125b6ba5256c21e8a1ec479e556c40ec2c2d70d795ba0e90f030f +EBUILD mkvtoolnix-84.0.ebuild 3122 BLAKE2B 08bd971c6a8eac6d5c328e864692176097b8c10fe00da64d2985626b2fa5eab4dc239f7042ebe152a8c566e047b217924935e2ec0d31a8ac3f6fe60beacd0649 SHA512 3adf6b36985c95a0112274021bb80419ac51a652aa6a6004e46357488bf34e3367849bc35e7ead16e78012b36632d4cfc6aaa0daff7456451628cc72f04fa68c +EBUILD mkvtoolnix-9999.ebuild 3122 BLAKE2B 08bd971c6a8eac6d5c328e864692176097b8c10fe00da64d2985626b2fa5eab4dc239f7042ebe152a8c566e047b217924935e2ec0d31a8ac3f6fe60beacd0649 SHA512 3adf6b36985c95a0112274021bb80419ac51a652aa6a6004e46357488bf34e3367849bc35e7ead16e78012b36632d4cfc6aaa0daff7456451628cc72f04fa68c MISC metadata.xml 343 BLAKE2B b13d9c252a7ad2f27c772c43d3476eee87d9a173c8fcc04a3be28ca9cfb826e6f1de6eade1211b4ff5f4a379b20a0961667fc99eee91495589e0632ad94b4c0a SHA512 cb7fd77f65779de841da03890fd1d0031cea8a95153f116f01f1be7d8ef5b87bb760933fc74f64a1d49ce94bc897cde94fdd4f6b45c016c3c20b842097692dc0 diff --git a/media-video/mkvtoolnix/mkvtoolnix-77.0.ebuild b/media-video/mkvtoolnix/mkvtoolnix-84.0.ebuild index 19b76609dc6a..6731cce63b2d 100644 --- a/media-video/mkvtoolnix/mkvtoolnix-77.0.ebuild +++ b/media-video/mkvtoolnix/mkvtoolnix-84.0.ebuild @@ -1,17 +1,25 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit autotools flag-o-matic multiprocessing qmake-utils xdg +inherit autotools flag-o-matic multiprocessing prefix qmake-utils xdg if [[ ${PV} == *9999 ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/mbunkus/mkvtoolnix.git" EGIT_SUBMODULES=() - inherit git-r3 else - SRC_URI="https://mkvtoolnix.download/sources/${P}.tar.xz" - KEYWORDS="amd64 ppc ppc64 x86" + inherit verify-sig + + SRC_URI=" + https://mkvtoolnix.download/sources/${P}.tar.xz + verify-sig? ( https://mkvtoolnix.download/sources/${P}.tar.xz.sig ) + " + KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" + + VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/mkvtoolnix.asc" fi DESCRIPTION="Tools to create, alter, and inspect Matroska files" @@ -19,7 +27,7 @@ HOMEPAGE="https://mkvtoolnix.download/ https://gitlab.com/mbunkus/mkvtoolnix" LICENSE="GPL-2" SLOT="0" -IUSE="dbus debug dvd gui nls pch test" +IUSE="debug dvd gui nls pch test" RESTRICT="!test? ( test )" # check NEWS.md for build system changes entries for boost/libebml/libmatroska @@ -27,26 +35,23 @@ RESTRICT="!test? ( test )" RDEPEND=" dev-libs/boost:= dev-libs/gmp:= - >=dev-libs/libebml-1.4.4:= + >=dev-libs/libebml-1.4.5:= >=dev-libs/libfmt-8.0.1:= - >=dev-libs/pugixml-1.11:= + >=dev-libs/pugixml-1.11 + >=dev-qt/qtbase-6.2:6[dbus] media-libs/flac:= >=media-libs/libmatroska-1.7.1:= - media-libs/libogg:= - media-libs/libvorbis:= + media-libs/libogg + media-libs/libvorbis sys-libs/zlib dvd? ( media-libs/libdvdread:= ) - dev-qt/qtcore:5 gui? ( - dev-qt/qtsvg:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtwidgets:5 - dev-qt/qtconcurrent:5 - dev-qt/qtmultimedia:5 + app-text/cmark:0= + >=dev-qt/qtbase-6.2:6[concurrent,gui,network,widgets] + >=dev-qt/qtmultimedia-6.2:6 + >=dev-qt/qtsvg-6.2:6 + media-libs/libglvnd ) - app-text/cmark:0= - dbus? ( dev-qt/qtdbus:5 ) " DEPEND="${RDEPEND} >=dev-cpp/nlohmann_json-3.9.1 @@ -64,10 +69,9 @@ BDEPEND=" ) " -PATCHES=( - "${FILESDIR}"/mkvtoolnix-58.0.0-qt5dbus.patch - "${FILESDIR}"/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch -) +if [[ ${PV} != *9999 ]] ; then + BDEPEND+="verify-sig? ( sec-keys/openpgp-keys-mkvtoolnix )" +fi src_prepare() { default @@ -79,6 +83,9 @@ src_prepare() { # bug #692018 sed -i -e 's/pandoc/diSaBlEd/' ac/pandoc.m4 || die + # bug #928463 + hprefixify "${S}/ac/ax_docbook.m4" + eautoreconf # remove bundled libs @@ -92,16 +99,7 @@ src_configure() { local myeconfargs=( $(use_enable debug) $(usex pch "" --disable-precompiled-headers) - $(use_enable dbus) - - # Qt (of some version) is always needed, even for non-GUI builds, - # to do e.g. MIME detection. See e.g. bug #844097. - # But most of the Qt deps are conditional on a GUI build. - --disable-qt6 - --enable-qt5 $(use_enable gui) - --with-qmake="$(qt5_get_bindir)"/qmake - $(use_with dvd dvdread) $(use_with nls gettext) #$(use_with nls po4a) @@ -109,6 +107,11 @@ src_configure() { --disable-optimization --with-boost="${ESYSROOT}"/usr --with-boost-libdir="${ESYSROOT}"/usr/$(get_libdir) + + # Qt (of some version) is always needed, even for non-GUI builds, + # to do e.g. MIME detection. See e.g. bug #844097. + # But most of the Qt deps are conditional on a GUI build. + --with-qmake6="$(qt6_get_bindir)"/qmake ) # Work around bug #904710. diff --git a/media-video/mkvtoolnix/mkvtoolnix-9999.ebuild b/media-video/mkvtoolnix/mkvtoolnix-9999.ebuild index de1b5ed169c7..6731cce63b2d 100644 --- a/media-video/mkvtoolnix/mkvtoolnix-9999.ebuild +++ b/media-video/mkvtoolnix/mkvtoolnix-9999.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit autotools flag-o-matic multiprocessing qmake-utils xdg +inherit autotools flag-o-matic multiprocessing prefix qmake-utils xdg if [[ ${PV} == *9999 ]] ; then inherit git-r3 @@ -33,7 +33,6 @@ RESTRICT="!test? ( test )" # check NEWS.md for build system changes entries for boost/libebml/libmatroska # version requirement updates and other packaging info RDEPEND=" - app-text/cmark:0= dev-libs/boost:= dev-libs/gmp:= >=dev-libs/libebml-1.4.5:= @@ -47,9 +46,11 @@ RDEPEND=" sys-libs/zlib dvd? ( media-libs/libdvdread:= ) gui? ( + app-text/cmark:0= >=dev-qt/qtbase-6.2:6[concurrent,gui,network,widgets] >=dev-qt/qtmultimedia-6.2:6 >=dev-qt/qtsvg-6.2:6 + media-libs/libglvnd ) " DEPEND="${RDEPEND} @@ -82,6 +83,9 @@ src_prepare() { # bug #692018 sed -i -e 's/pandoc/diSaBlEd/' ac/pandoc.m4 || die + # bug #928463 + hprefixify "${S}/ac/ax_docbook.m4" + eautoreconf # remove bundled libs diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest index ce03bf496e28..e54ada95fbaa 100644 --- a/media-video/pipewire/Manifest +++ b/media-video/pipewire/Manifest @@ -8,9 +8,11 @@ DIST pipewire-1.0.0-docs.tar.xz 33632 BLAKE2B be06aa7242f7d2f8627b3bf2a2ae491dbd DIST pipewire-1.0.4.tar.bz2 1698660 BLAKE2B 0842a5fca65c8a91eadd9f0594864ae0f0d428b3c03d2c5fecc3b7f62ff6f5d24fc1190eb351279c002e26596148b23b4b576551502be21beb2eeaa0d2ad4dac SHA512 42e8e28b1fd497f5329b5966abd5cfb7d7976fb0ca9f8f39bccf44195dd11f227cdec2448ba7db4559e866ea2dccf64b8172a2ae069c5204cd8f66c0f8a9e2d9 DIST pipewire-1.0.5.tar.bz2 1698291 BLAKE2B 0f919a01b5f84060fb2ce560a7790a0d59374671f52a941492930fe21ac39178688f27f00cad649d239901f88b392e16895648efae2ec2785c394c1f6d186ddf SHA512 18fbbe36c8752eb0f1df5ee3f3fffee279addcec9825281bd165ad8316f17af7e91bb5759f63c16139c074b03e5a77ef9d596a87f584d1580bbb754101b70a0f DIST pipewire-1.0.6.tar.bz2 1698889 BLAKE2B f782efa2aa8fa0976fd3025f58041f450505c63acd9028c3d79368d0c41465a51b4472059a1c13092aa72dc6110fc12589b03de653d7eac3c93bc5498cc17154 SHA512 09e5c951c835dcc2654ec284aaaad6be4254744e943f95556c494cd22a4fc67bdc481982856f2aa439e33ec84e7fbdb6df45a1d4b9ced261b01cd91b0ee4d2ed +DIST pipewire-1.0.7.tar.bz2 1698775 BLAKE2B be075eb82fe516116de0a6a4d390dd99d7ea3b41e53c9079219978649845df4e9c16cb8e2dcfe594c2ace65fe63976ec432e9ce97eb048df5103d17f3e8ff353 SHA512 3fb46376cdf061b3ea7be55249399d0036c2728bb4deeb6f5c6d708141234e75f563e6a3dc749fbd40dadba72ad2db5fda358b368a480479157731cc67f3303d EBUILD pipewire-1.0.4.ebuild 19988 BLAKE2B 49df8fcf2e136537401ebab8673c0815a275c2deb29a2779306a77536d2db0688c81e69bbf768061a2ee3e94888da5e77e12055594bf84b14951fd28f12e248c SHA512 5d6506afa393f6286ba33a88cdf17f739a265e2f09baf1b7f9ff5fb239a7b4d87b32ce553d366bfaf6ba36f4384982cf73a521488118d2e5f33d87b4cc9467e3 EBUILD pipewire-1.0.5-r1.ebuild 19283 BLAKE2B c873436b2f3cad35aa2d6797085823cc215d621b275634c25c3b79e00a56121a97824f3092df74b13809a9ea7639b669710fb9ae7476441209c9f7aff1496827 SHA512 f290058849e339a64bb897e831618b9f886b9c6b7754a0f3b4301fc94be929c0531ffd6c98754228c30bc308371e508021fa907252028d6a5a57d14314d4b5b6 EBUILD pipewire-1.0.5.ebuild 19988 BLAKE2B 49df8fcf2e136537401ebab8673c0815a275c2deb29a2779306a77536d2db0688c81e69bbf768061a2ee3e94888da5e77e12055594bf84b14951fd28f12e248c SHA512 5d6506afa393f6286ba33a88cdf17f739a265e2f09baf1b7f9ff5fb239a7b4d87b32ce553d366bfaf6ba36f4384982cf73a521488118d2e5f33d87b4cc9467e3 EBUILD pipewire-1.0.6.ebuild 19283 BLAKE2B c873436b2f3cad35aa2d6797085823cc215d621b275634c25c3b79e00a56121a97824f3092df74b13809a9ea7639b669710fb9ae7476441209c9f7aff1496827 SHA512 f290058849e339a64bb897e831618b9f886b9c6b7754a0f3b4301fc94be929c0531ffd6c98754228c30bc308371e508021fa907252028d6a5a57d14314d4b5b6 +EBUILD pipewire-1.0.7.ebuild 19283 BLAKE2B c873436b2f3cad35aa2d6797085823cc215d621b275634c25c3b79e00a56121a97824f3092df74b13809a9ea7639b669710fb9ae7476441209c9f7aff1496827 SHA512 f290058849e339a64bb897e831618b9f886b9c6b7754a0f3b4301fc94be929c0531ffd6c98754228c30bc308371e508021fa907252028d6a5a57d14314d4b5b6 EBUILD pipewire-9999.ebuild 19274 BLAKE2B 86ec3c9efdaa0fd53839c261ae7e23a570d534df6670fd78cab1f0c31b5065017b4c483f9249407a32a928df9b127586fa523fe27e1dabe359c1e247c7bbcc94 SHA512 bdc4d9a357dd5839614aca7b2fbe52ea27a818bc660db55b08e1d696b648e2801ab2f2b1078123e4bf084479918eaf6ec39a9e7f4a6dfe89b54188989956070d MISC metadata.xml 2156 BLAKE2B 974459115e0f3cf4e4c3ac15159740b42e01a093da37d8a27f80e122c9ab2a3fe9194443eaf08f9b66d613db90a14465abbe1b76816bce90e11a46c8409c7513 SHA512 cfe0fdb86c993f167507e22635878d6d7d5dcd48f4c23323231263551ceff986fc454700428ecb7d2ee2abe82093c35d8e7bd491020fd6dd3f3889c09e9020bb diff --git a/media-video/pipewire/pipewire-1.0.7.ebuild b/media-video/pipewire/pipewire-1.0.7.ebuild new file mode 100644 index 000000000000..1373789d2b11 --- /dev/null +++ b/media-video/pipewire/pipewire-1.0.7.ebuild @@ -0,0 +1,502 @@ +# 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 +) + +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 +} |