ports/contrib (3.6): [notify] pipewire: exchanged default dependency from alsa-lib to alsa-utils; added a more informative README in markdown format
commit f8f7781a9433748c203598b063a898a3e556e535 Author: Tim Biermann <tbier@posteo.de> Date: Sun Feb 21 16:16:23 2021 +0000 [notify] pipewire: exchanged default dependency from alsa-lib to alsa-utils; added a more informative README in markdown format diff --git a/pipewire/.signature b/pipewire/.signature index 9b51523ce..2a439198b 100644 --- a/pipewire/.signature +++ b/pipewire/.signature @@ -1,5 +1,5 @@ untrusted comment: verify with /etc/ports/contrib.pub -RWSagIOpLGJF30BOlCw3Q95AZcV9eSU18LiS9ch+0U1ujUzIg49fWoEvTPEmnQVSpglfnXeGlMkG21HBzQAVTjlBH35fhC2ZtgM= -SHA256 (Pkgfile) = f00e738790b81d6af6358acef87c0874e5d84d07acbe59382a9085c019df4bae +RWSagIOpLGJF38k2F9E2wrdxdTcKERCMA0eN390WIYqaXseWjqqGjv+HePvjlujaSd0D2lvivf5+DUphI20Cc/6H3GJAQDOqSQ0= +SHA256 (Pkgfile) = e90ceba4565434dc812c1c86ba6deb186a0703821f368e7befb15c7be540a735 SHA256 (.footprint) = 7e74c211d0bec1a4c4157a1e1b0ea8d1ef37a17ed4c00eaebd01114c9bff6800 SHA256 (pipewire-0.3.22.tar.gz) = 5db2caf41af79cd9e343d07a3804c63b8b243c1d74e926181058e29771d4b691 diff --git a/pipewire/Pkgfile b/pipewire/Pkgfile index 446f76f30..73729b12f 100644 --- a/pipewire/Pkgfile +++ b/pipewire/Pkgfile @@ -1,7 +1,7 @@ # Description: Server and user space API to deal with multimedia pipelines # URL: https://pipewire.org # Maintainer: Tim Biermann, tbier at posteo dot de -# Depends on: alsa-lib dbus fdk-aac ffmpeg glib gnutls lame libva libvpx libwebp x264 x265 +# Depends on: alsa-utils dbus fdk-aac ffmpeg glib gnutls lame libva libvpx libwebp x264 x265 # Optional: alsa-ucm-conf bluez gst-plugins-base jack pulseaudio libldac libopenaptx v4l2 vulkan-loader name=pipewire diff --git a/pipewire/README b/pipewire/README index 91b9e3db8..2adfdf924 100644 --- a/pipewire/README +++ b/pipewire/README @@ -1,2 +1,60 @@ -pipewire needs pulseaudio to be built with xorg-libxtst around to have the -pulseaudio portal available +contrib/pipewire how to +==================== + +# Intro +`pipewire` is a modern multimedia server. Quoting gentoo wiki, it's strenghts are: +> - Minimal latency capture/playback of audio and video +> - Real-time multimedia processing +> - Multi-process architecture allowing multimedia content sharing between applications +> - Seamless support for PulseAudio, JACK, ALSA, and GStreamer +> - applications sandboxing support with Flatpak + +Getting `pipewire` to run is relatively easy on `CRUX`. This is a simple guide and relies on further reading upon official and unofficial resources. + +This might also be considered a WIP entry. You can help by sharing your experiences and thoughts. + +# Prerequisites + - working kernel with alsa audio + - `opt/alsa-utils` will be installed by default as a dependency and needs to be configured by the user + - currently, pipewires default config makes use of `opt/alsa-ucm-conf`, consider installing that alongside the default dependency `opt/alsa-utils` + +## Optional prerequisites: + - pipewire needs pulseaudio to be built with xorg-libxtst around to have the pulseaudio portal available + - `prt-get depinst xorg-libxtst && prt-get update -fr pulseaudio` + - please look at `contrib/pipewire/Pkgfile` for further optional dependencies listed and rebuild the package after installing new optional dependencies + +# Running pipewire +`pipewire` will always leverage `alsa`, so you should configure that first. Use `alsactl store` to store those settings, and configure `/etc/rc.conf` to start `/etc/rc.d/alsa` by default. While you are in `rc.conf`, make sure you start `/etc/rc.d/dbus` too, if you haven't already. + +Resources: + - [Official ALSA wiki](https://alsa-project.org/wiki/Main_Page) + - [Gentoo wiki](https://wiki.gentoo.org/wiki/ALSA) + - [Arch wiki](https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture) + +Currently, pipewires default config format might always change, so it is advised to keep an eye on `rejmerge` to keep your configs updated. +The default config can be modified in directly `/etc/pipewire`. The configuration of `/etc/pipewire` can be copied over to `$XDG_CONFIG_HOME/pipewire-media-session`, which should most likely point you to `$HOME/config/pipewire-media-session`. + +Normally, you wouldn't need to change anything to run `pipewire` as an a/v-server, so in the simplest setup it should suffice to run `/usr/bin/pipewire` from a users shell or script (for example I have this in my `i3` config: `exec "/usr/bin/pipewire"`), just make sure that whatever session you are running will be executed as a `dbus-user-session` too (for example from my `~/.xinitrc`: `exec dbus-run-session -- i3`) + +## Running pipewire-pulse as a pulseaudio-server +If you are a `pulseaudio`-user, make sure it won't autostart with your session. For `pipewire` to handle `pulse-clients`, you will need to run `/usr/bin/pipewire-pulse` as well. Verify that it is working with `pactl info` which should now report: `Server Name: PulseAudio (on PipeWire 0.3.22)`. Now you can use tools like `contrib/pavucontrol` or `contrib/ncpamixer` to control your typical sources and sink settings, ports like `opt/firefox-bin` and whatever else uses `pulseaudio` should work ootb for you too. + +## Running jack applications through pipewire +to be expanded + +# Further configuration and fine-tuning +To help configuring, consider reading through the following resources alongside the extensive comments in the default config: + - [Official pipewire wiki](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home) + - [Advanced Configuration notes by jasker5183 (pipewire dev)](https://gitlab.freedesktop.org/jasker5183/test/-/blob/master/Advanced%20Conf...) + - [Arch wiki](https://wiki.archlinux.org/index.php/PipeWire) + - [Gentoo wiki](https://wiki.gentoo.org/wiki/PipeWire) + +# tl;dr +"I don't have any time to read up on stuff myself, tell me what I need to do right now to get this hot mess!" -some user + - install `prt-get depinst pipewire` + - optional: `prt-get depinst xorg-libxtst pulseaudio` et al + - execute while executing your X11/Wayland-Session: `/usr/bin/pipewire` + - optional: execute in addition to have pulseaudio-server support: `/usr/bin/pipewire-pulse` + +// vim:filetype=markdown +// End of file
participants (1)
-
crux@crux.nu