summaryrefslogtreecommitdiff
path: root/media-video/pipewire
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-02-02 01:39:05 +0000
committerV3n3RiX <venerix@koprulu.sector>2022-02-02 01:39:05 +0000
commitfcc5224904648a8e6eb528d7603154160a20022f (patch)
tree3bfce096b38a9cea8eed13fc70c1526c456e9abd /media-video/pipewire
parent2fd57282f0262ca084e05b0f2c63fbada395d02b (diff)
gentoo resync : 02.02.2022
Diffstat (limited to 'media-video/pipewire')
-rw-r--r--media-video/pipewire/Manifest7
-rw-r--r--media-video/pipewire/files/pipewire-0.3.44-musl-build.patch33
-rw-r--r--media-video/pipewire/metadata.xml1
-rw-r--r--media-video/pipewire/pipewire-0.3.44-r1.ebuild321
-rw-r--r--media-video/pipewire/pipewire-9999.ebuild11
5 files changed, 370 insertions, 3 deletions
diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest
index 843b4bf5ec8a..ea82d1c0ba25 100644
--- a/media-video/pipewire/Manifest
+++ b/media-video/pipewire/Manifest
@@ -8,6 +8,7 @@ AUX pipewire-0.3.36-fix-version.patch 716 BLAKE2B c447bd11291f809b7607f4094f2d5e
AUX pipewire-0.3.36-missing-limits-include.patch 452 BLAKE2B b498e4ec11ab3d5bc4cebdd0975802b68594678aa928dc85b5a7031276af9ec12edb1423714e3e96c7d658e574c679efa9c18afbee1b47b15f3ce582bc021fff SHA512 decd44a59152e4fdc64b79c2e330a09ca9b8f776e72ef7a0150dfe43d9c25f4e501d41c86a445a979137c412dc85e1ffa38fed91f976596500d2a28010d78407
AUX pipewire-0.3.36-non-systemd-integration.patch 911 BLAKE2B 6c6df1080821cefa1786da4db762a78011672226836525413d10fed3a18d43457277b6b868dfe0ee8e189143f76c971dd9c53809794864bcc642c804bf962ab8 SHA512 08b4998a3129f824c68310d2fc87245311e1d4b85a09a57f1d9bab76f990aa5d95686f22f3835a1072b7e6c0b6eb0246cc9c81884588f0146d26f9c215d9c565
AUX pipewire-0.3.43-systemd-user-unit-dir.patch 1310 BLAKE2B 7068220b1581b73c2c63adc698d09cf9da16d084d189cb9d3d8ecb7d7d79fa4c55548688e2e3718ca48e38388688ae96d340316df850b506bf079fe6c466c24e SHA512 033d1c54447466c18a921060d62f1b8e21221d324862cbf643a777fa2f7386543a51aaf7fdbeb2d698779d7a342eceda069f05d5cc07d8d8813b96ce35a1fdef
+AUX pipewire-0.3.44-musl-build.patch 802 BLAKE2B 906313a422d477f28e69bec2fb2e931999e9875dd595c7c040bccdd2a34223fffbc303861d215f618053b899a386af32dc7192271d3e3b8d4751ac16e0088eef SHA512 9290ae00017df0eec1c41e4528bc4f4fb53df5779e83086e4f1fdfaef5aaf27a20a5cedf92382a22304c9266b6c40997af811212d54fb65ddc188acc0d34d792
AUX pipewire-launcher.sh 149 BLAKE2B 42a9fd174e8216f9941ec72bc50581d539453dd0430ac61712582039f1cfe17cafa050bd87fcb90b9c16ffd891fd9f9c5dfec99b2be8c66eaed0128af180508e SHA512 7f50287565fa44e2296a7b294e8fd3dd64938d2de15c6ff5674d85a6e7bbccbc334c0fb9e28321104aff5335894b3c5a21171f385465e37b422ef53988dbfe4b
AUX pipewire.desktop 322 BLAKE2B 0299b9054cf881a5cbbdb128a5e8a51308cf0b5a98260dca756e704504ef057e403b2fb4aa2d58f52dde4be59e416c95d8fce21bc3ca6b6447ecab58263a3f21 SHA512 c13ea531cfdd3798f8d6cd20f5fa8c0a5040c27a6ef3850fdd41102a3bf0bcb73176e3300845af77804a98842fb736841223bc9ac1c92eb2034e9d46e41fc344
AUX pipewire.desktop-r1 325 BLAKE2B 7d823a264e5147bf8669127df22f468518fd54375ed57910f0143821894b33cfee8925b1cf8b9c5b1d219453a5c62fffa50d111b78bc5e151e23aed84d0a577e SHA512 e51ba049484daba3e4cdc5890748267f0c23ea6e57f31f3bb8a49c011e1a61b47b68eea742e5e7bcd58bfeddb96dd4064079fd9787cb66c78bd5eff10799a7bf
@@ -15,9 +16,11 @@ DIST pipewire-0.3.30.tar.gz 1540950 BLAKE2B 69b35743e3ad9a8caf68d9bb16cf395203ef
DIST pipewire-0.3.36.tar.gz 1708209 BLAKE2B 20fce0d7f88347fe594491d4fae7b6a8edee67ff7749f1a40b807a5d5094d792e61e3efd05dca2221f781c263e34ff0a50ad3c162231911d4b1d87704df6c775 SHA512 f0fc68ea005018b420a4f65a24dc9c85eb6263c24e66852a7ce2b03f966990d62487b388c7d73ff5adfc10c80c439b1200ae876e41d78f91db190036a1799a14
DIST pipewire-0.3.42.tar.gz 1705295 BLAKE2B afd397e75be4f776b9d3042258e8091d6e1722f374e62417274238e5017e268c986ac7624e1b91ec8a97fc9078e8aa6d46a22f30c0834f99e5cd3112a096aded SHA512 bbf00ad5cee8ac872d8c2ef6b9499233100dba04c127b435894cf16c349188ae11edf918479a58039becc1b493c6f53a318d8fb483043dde074dc21ec32984c1
DIST pipewire-0.3.43.tar.gz 1713131 BLAKE2B 3fa167d74e6104685760a9eac721bc359f1245897e1a5f9b09b4b9591fc459d19549e209990ca478a10ad6c2a4dfaecc3546d996ab7f7d64fe880fb0c1c1dfca SHA512 d3804cdb1d94977bb4e2757e46829e1e51fca52b018007afa3bbfabff4dc33538cedad015c91154e28b879fc2edeb4e1fadf633b0af9a0d3bfd930c53b1bc2c0
+DIST pipewire-0.3.44.tar.gz 1731260 BLAKE2B 5dd4fbffa21c34984836d097028e48654e2c9005e2f167b964bba2a8a2b9a7aad658853f03acce2f7967f884cfbea740ca427e9d373f00bcea2f122337835e02 SHA512 9a356b1d63e996e3725b6d126d7f0a972f83d0db0a95e923d9a7ec5432ff04688d51332f5c83826069e593e021bf514937ae5daf9cc6ad7307fe8baab964a244
EBUILD pipewire-0.3.30-r2.ebuild 9675 BLAKE2B df43c7f1ef0622d96741266e53dc343d9697903571c723c73f5267a8083539fde110ea8f6420f2c86e296d275ab45e4b9abacbd6f0310825a6121336cf11215b SHA512 47cdcbd48311cee24b45c05b3283c4bbe1231c44f6d55136966f887aa43ad69b789bf642e003b17aa6f1a3b59963e68047e4f8c396431cb05f6dd4d3161f8c14
EBUILD pipewire-0.3.36.ebuild 10263 BLAKE2B 033b26477ad91c843e9307504ce8eddcad7977a386925a1960409767946a88ac539954c7647075bb48ac373b4e36fecf0bbdb5d50351213b51465ea298cad336 SHA512 38d6225ab02d31d1fe33723f7c14a385648853b5f4f84cfd13fcf7f91489dffc2c5fbac5f649bdf80bdd9a4bd1b19977bae59eba83beca9c3d9e34030f6f332b
EBUILD pipewire-0.3.42-r1.ebuild 11066 BLAKE2B d61bdc505e7fd86172392d0e1e7f3fe3166883fd0c76260d92c4ef832de67ce9d1e8c12d2a66874153e8c255801d9c852084a297204cbf6939acbe969e9b920a SHA512 878f82b0046e3a92881e313083f2e245f9833c0b1852ed87b54c60b0eb5a1927c3f1f6d534f2d257176ecd685fde7c3c67a4e3caa95810b7ed58cf688f0a94a0
EBUILD pipewire-0.3.43-r3.ebuild 11620 BLAKE2B 64ff8aaaec2894008dfb32bbbcd6f8e6f9c0480089d3f19b5b1b2dec57b2ddf5880a11f9b4e383efd0ce05e1a4480671042947586deae5a849404dc7d9de17b7 SHA512 86e838d0792b78b46186e1645acc241e0bce35bae2ff58e3bf41c41f491cbf24e9cb82fa68f18adb1016d5df51659963e74c66578bdefe599f6f7c0f6ceade98
-EBUILD pipewire-9999.ebuild 11541 BLAKE2B c4b222450ce0612d7d03e03f75153564da47df72578b1e5f9d4659f2cfbe45805591845cefa5c5ec69355d4ccbed8ba9479dc6ce2428977d8ba7f87c8e4d36a5 SHA512 8520448226ede358041382373ab113f035ed224f7133a1ebf2744a5ae3de16cb70406e7e180de63aa06fb4afc7093f7a2cc55459f895ea3e2394f27c85de1fb4
-MISC metadata.xml 1451 BLAKE2B 2d30343eb8d6e5911491a2814287666a371adb1be2069f2afb30d69031b5ab19865a92fde4f478b78914a4c9e5cd15f59ad7ef6487ed94b0f0838ab29bedfe40 SHA512 68fdbacf47f006ee4a20bec6fe2bfc35d0a6509344bd410f0236d68f695401083f932e30769a1a61055b62b7626f3ca3065df352677af469c6ed83d3ca3b855b
+EBUILD pipewire-0.3.44-r1.ebuild 11766 BLAKE2B bbd2c2da083e950bc17440871c8d5120e6b375f5111d3b23387472b46769511958132c57aa7ff389c62f40dd7e925dc704c9f0df0a24f0476d27739246c606a6 SHA512 c93720c87b01a6fe777a5fbb88ec2f8c11dad853522a4d0cb3e2c27f8c6c00eb73d40231099350ebfc73a9c1c62db54df3b1e73d452aea34b6109bbb83aa5bbf
+EBUILD pipewire-9999.ebuild 11720 BLAKE2B 3c911f74804d2a954c871e3a38a1f0bf07026b788a23f47f73466dd1b2b4dccf8fb9d1f64d3c869a79d7af08db9336c1200f633877060501a3538e514e17b27c SHA512 103bf28f0b552a1b82a1d6612f123448f2f82279a20b6734b4c404d570fe359d9bdec8452e1c96ae6da182c178943204a5f41a5e399b9342364247f0b20ba2cc
+MISC metadata.xml 1503 BLAKE2B 83f04aa01f7843a0fc6173caab89e413f12ff93d28d21b30e8748ae4c08bd2df5040597fffb1b85c5cb5f9708c29f9da005e6a31070ae194f1a4d69f05f8dfe9 SHA512 65883678c5b762e0f998cbcd58532b441e5f092aa0ac560886851c4f3dd9d89cdec2f9bbecae35c2a4d03a8a8b7dd4413e14e0182d3da8ef41705436814cdfe2
diff --git a/media-video/pipewire/files/pipewire-0.3.44-musl-build.patch b/media-video/pipewire/files/pipewire-0.3.44-musl-build.patch
new file mode 100644
index 000000000000..6ebcc5db8feb
--- /dev/null
+++ b/media-video/pipewire/files/pipewire-0.3.44-musl-build.patch
@@ -0,0 +1,33 @@
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/3256c6e5e7e2cef1f765dc05a001114359cc3134
+
+From: Wim Taymans <wtaymans@redhat.com>
+Date: Thu, 27 Jan 2022 14:59:11 +0100
+Subject: [PATCH] tools: fix compilation with musl
+
+--- a/src/tools/pw-cli.c
++++ b/src/tools/pw-cli.c
+@@ -36,6 +36,10 @@
+ #include <readline/readline.h>
+ #include <readline/history.h>
+
++#if !defined(FNM_EXTMATCH)
++#define FNM_EXTMATCH 0
++#endif
++
+ #define spa_debug(...) fprintf(stdout,__VA_ARGS__);fputc('\n', stdout)
+
+ #include <spa/utils/result.h>
+--- a/src/tools/pw-dump.c
++++ b/src/tools/pw-dump.c
+@@ -32,6 +32,10 @@
+ #include <math.h>
+ #include <fnmatch.h>
+
++#if !defined(FNM_EXTMATCH)
++#define FNM_EXTMATCH 0
++#endif
++
+ #include <spa/utils/result.h>
+ #include <spa/utils/string.h>
+ #include <spa/pod/iter.h>
+GitLab
diff --git a/media-video/pipewire/metadata.xml b/media-video/pipewire/metadata.xml
index ca29532fdfbe..a61d898b80e4 100644
--- a/media-video/pipewire/metadata.xml
+++ b/media-video/pipewire/metadata.xml
@@ -30,5 +30,6 @@
<flag name="lv2">Allow loading LV2 plugins via <pkg>media-libs/lv2</pkg></flag>
<flag name="pipewire-alsa">Replace PulseAudio's ALSA plugin with PipeWire's plugin</flag>
<flag name="ssl">Enable raop-sink support (needs <pkg>dev-libs/openssl</pkg>)</flag>
+ <flag name="X">Enable audible bell for X11</flag>
</use>
</pkgmetadata>
diff --git a/media-video/pipewire/pipewire-0.3.44-r1.ebuild b/media-video/pipewire/pipewire-0.3.44-r1.ebuild
new file mode 100644
index 000000000000..14762acb4998
--- /dev/null
+++ b/media-video/pipewire/pipewire-0.3.44-r1.ebuild
@@ -0,0 +1,321 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit meson-multilib optfeature prefix python-any-r1 systemd udev
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~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="bluetooth doc echo-cancel extra gstreamer jack-client jack-sdk lv2 pipewire-alsa ssl 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)!
+
+REQUIRED_USE="jack-sdk? ( !jack-client )"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=dev-util/meson-0.59
+ virtual/pkgconfig
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]')
+ doc? (
+ app-doc/doxygen
+ media-gfx/graphviz
+ )
+"
+RDEPEND="
+ acct-group/audio
+ media-libs/alsa-lib
+ sys-apps/dbus[${MULTILIB_USEDEP}]
+ sys-libs/readline:=
+ sys-libs/ncurses:=[unicode(+)]
+ virtual/libintl[${MULTILIB_USEDEP}]
+ virtual/libudev[${MULTILIB_USEDEP}]
+ bluetooth? (
+ media-libs/fdk-aac
+ media-libs/libldac
+ media-libs/libfreeaptx
+ media-libs/sbc
+ >=net-wireless/bluez-4.101:=
+ virtual/libusb:1
+ )
+ echo-cancel? ( media-libs/webrtc-audio-processing:0 )
+ extra? (
+ >=media-libs/libsndfile-1.0.20
+ )
+ gstreamer? (
+ >=dev-libs/glib-2.32.0:2
+ >=media-libs/gstreamer-1.10.0:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+ jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] )
+ jack-sdk? (
+ !media-sound/jack-audio-connection-kit
+ !media-sound/jack2
+ )
+ lv2? ( media-libs/lilv )
+ pipewire-alsa? (
+ >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}]
+ !media-plugins/alsa-plugins[${MULTILIB_USEDEP},pulseaudio]
+ )
+ !pipewire-alsa? ( media-plugins/alsa-plugins[${MULTILIB_USEDEP},pulseaudio] )
+ ssl? ( dev-libs/openssl:= )
+ systemd? ( sys-apps/systemd )
+ v4l? ( media-libs/libv4l )
+ X? (
+ media-libs/libcanberra
+ x11-libs/libX11
+ )
+ zeroconf? ( net-dns/avahi )
+"
+
+DEPEND="${RDEPEND}"
+
+# TODO: Consider use cases where pipewire is not used for driving audio
+# Doing so with WirePlumber currently involves editing Lua scripts
+PDEPEND="media-video/wireplumber"
+
+# 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-video/ffmpeg:=
+# media-libs/libsdl2
+# >=media-libs/vulkan-loader-1.1.69
+#
+# Ditto for DEPEND
+# >=dev-util/vulkan-headers-1.1.69
+
+DOCS=( {README,INSTALL}.md NEWS )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch
+
+ "${FILESDIR}"/${PN}-0.3.44-musl-build.patch
+)
+
+# limitsdfile related code taken from =sys-auth/realtime-base-0.1
+# with changes as necessary.
+limitsdfile=40-${PN}.conf
+
+python_check_deps() {
+ has_version -b "dev-python/docutils[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ default
+
+ einfo "Generating ${limitsdfile}"
+ cat > ${limitsdfile} <<- EOF || die
+ # Start of ${limitsdfile} from ${P}
+
+ @audio - memlock 256
+
+ # End of ${limitsdfile} from ${P}
+ EOF
+}
+
+multilib_src_configure() {
+ local emesonargs=(
+ -Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
+
+ $(meson_native_use_feature zeroconf avahi)
+ $(meson_native_use_feature doc docs)
+ $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone
+ $(meson_native_enabled man)
+ $(meson_feature test tests)
+ -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests
+ $(meson_native_use_feature gstreamer)
+ $(meson_native_use_feature gstreamer gstreamer-device-provider)
+ $(meson_native_use_feature systemd)
+
+ -Dsystemd-system-service=disabled # Matches upstream
+ -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
+ -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)
+ -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)
+ $(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 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
+ -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
+ $(meson_native_use_feature lv2)
+ $(meson_native_use_feature v4l v4l2)
+ -Dlibcamera=disabled # libcamera is not in Portage tree
+ $(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)
+ $(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
+
+ # Just for bell sounds in X11 right now.
+ $(meson_native_use_feature X x11)
+ $(meson_native_use_feature X libcanberra)
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install() {
+ # Our custom DOCS do not exist in multilib source directory
+ DOCS= meson_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ insinto /etc/security/limits.d
+ doins ${limitsdfile}
+
+ if use pipewire-alsa; then
+ dodir /etc/alsa/conf.d
+ # 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.conf /etc/alsa/conf.d/99-pipewire-default.conf
+ fi
+
+ if ! use systemd; then
+ insinto /etc/xdg/autostart
+ newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop
+
+ exeinto /usr/bin
+ newexe "${FILESDIR}"/gentoo-pipewire-launcher.in gentoo-pipewire-launcher
+ eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
+ fi
+}
+
+pkg_postinst() {
+ elog "It is recommended to raise RLIMIT_MEMLOCK to 256 for users"
+ elog "using PipeWire. Do it either manually or add yourself"
+ elog "to the 'audio' group:"
+ elog
+ elog " usermod -aG audio <youruser>"
+ elog
+
+ if ! use jack-sdk; then
+ 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
+ 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."
+ else
+ 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
+ if has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon'; then
+ elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
+ elog "are recommended to edit: ${EROOT}/etc/pulse/client.conf and disable"
+ elog "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
+ elog "NOTE:"
+ elog "Starting with PipeWire-0.3.30, this package is no longer installing its config"
+ elog "into ${EROOT}/etc/pipewire by default. In case you need to change"
+ elog "its config, please start by copying default config from ${EROOT}/usr/share/pipewire"
+ elog "and just override the sections you want to change."
+ fi
+ elog
+
+ 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 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
+ ewarn
+ fi
+}
diff --git a/media-video/pipewire/pipewire-9999.ebuild b/media-video/pipewire/pipewire-9999.ebuild
index de92d3ebfb8e..033d3614a241 100644
--- a/media-video/pipewire/pipewire-9999.ebuild
+++ b/media-video/pipewire/pipewire-9999.ebuild
@@ -21,7 +21,7 @@ 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="bluetooth doc echo-cancel extra gstreamer jack-client jack-sdk lv2 pipewire-alsa ssl systemd test v4l zeroconf"
+IUSE="bluetooth doc echo-cancel extra gstreamer jack-client jack-sdk lv2 pipewire-alsa ssl 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
@@ -82,6 +82,10 @@ RDEPEND="
ssl? ( dev-libs/openssl:= )
systemd? ( sys-apps/systemd )
v4l? ( media-libs/libv4l )
+ X? (
+ media-libs/libcanberra
+ x11-libs/libX11
+ )
zeroconf? ( net-dns/avahi )
"
@@ -131,6 +135,7 @@ src_prepare() {
multilib_src_configure() {
local emesonargs=(
-Ddocdir="${EPREFIX}"/usr/share/doc/${PF}
+
$(meson_native_use_feature zeroconf avahi)
$(meson_native_use_feature doc docs)
$(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone
@@ -185,6 +190,10 @@ multilib_src_configure() {
-Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install)
$(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
+
+ # Just for bell sounds in X11 right now.
+ $(meson_native_use_feature X x11)
+ $(meson_native_use_feature X libcanberra)
)
meson_src_configure