diff options
Diffstat (limited to 'media-video')
-rw-r--r-- | media-video/pipewire/files/gentoo-pipewire-launcher.in-r2 | 77 | ||||
-rw-r--r-- | media-video/pipewire/pipewire-0.3.71-r2.ebuild | 2 | ||||
-rw-r--r-- | media-video/pipewire/pipewire-9999.ebuild | 2 |
3 files changed, 79 insertions, 2 deletions
diff --git a/media-video/pipewire/files/gentoo-pipewire-launcher.in-r2 b/media-video/pipewire/files/gentoo-pipewire-launcher.in-r2 new file mode 100644 index 000000000000..ea2032b74b42 --- /dev/null +++ b/media-video/pipewire/files/gentoo-pipewire-launcher.in-r2 @@ -0,0 +1,77 @@ +#!/bin/sh + +# PipeWire launcher script for XDG compliant desktops on OpenRC. +# +# systemd users are very _STRONGLY_ advised to use the much +# more reliable and predictable user units instead. + +# WARNING: This script assumes being run inside XDG compliant session, +# which means D-Bus session instance is expected to be correctly set up +# prior to this script starting. If that is not true, things may break! + +DATE_FORMAT='+%Y-%m-%dT%H:%M:%S%Z' + +CONF="${XDG_CONFIG_HOME}/gentoo-pipewire-launcher.conf" +if [ -f "${CONF}" ] +then + . "${CONF}" +else + GENTOO_PIPEWIRE_LOG='/dev/null' + GENTOO_PIPEWIRE_PULSE_LOG='/dev/null' + GENTOO_WIREPLUMBER_LOG='/dev/null' +fi +for L in \ + "${GENTOO_PIPEWIRE_LOG}" \ + "${GENTOO_PIPEWIRE_PULSE_LOG}" \ + "${GENTOO_WIREPLUMBER_LOG}" +do + if [ ! -e "${L}" ] + then + touch "${L}" + fi +done + +restart () { + echo "Terminating PipeWire processes ..." + pkill -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1 + pwait -u "${USER}" -x pipewire\|wireplumber + echo "PipeWire terminated." +} + +if [ "${#}" -gt 0 ] +then + if [ "${1}" = 'restart' ] + then + restart + else + echo "Unrecognised argument." >&2 + echo "Usage: gentoo-pipewire-launcher [restart]" >&2 + exit 1 + fi +fi + +if pgrep -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1 +then + echo "PipeWire already running, exiting." >&2 + echo "(Use 'gentoo-pipewire-launcher restart' to restart PipeWire and WirePlumber.)" >&2 + exit 1 +fi + +# The core daemon which by itself does probably nothing. +echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting PipeWire." 1>>"${GENTOO_PIPEWIRE_LOG}" +@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire 1>>"${GENTOO_PIPEWIRE_LOG}" 2>&1 & + +# The so called pipewire-pulse daemon used for PulseAudio compatibility. +# Commenting this out will stop the PA proxying daemon from starting, +# however ALSA (with pipewire-alsa), JACK (with jack-sdk) and PW API using +# clients will still have access to audio and may end up clashing with +# non-PW apps over HW control (most notably, /usr/bin/pulseaudio daemon). +echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting PipeWire-Pulse." 1>>"${GENTOO_PIPEWIRE_PULSE_LOG}" +@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire -c pipewire-pulse.conf 1>>"${GENTOO_PIPEWIRE_PULSE_LOG}" 2>&1 & + +# Hack for bug #822498 +sleep 1 + +# Finally a session manager is required for PipeWire to do anything. +echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting WirePlumber." 1>>"${GENTOO_WIREPLUMBER_LOG}" +exec @GENTOO_PORTAGE_EPREFIX@/usr/bin/wireplumber 1>>"${GENTOO_WIREPLUMBER_LOG}" 2>&1 diff --git a/media-video/pipewire/pipewire-0.3.71-r2.ebuild b/media-video/pipewire/pipewire-0.3.71-r2.ebuild index f8791a4a2601..39e2c38af13b 100644 --- a/media-video/pipewire/pipewire-0.3.71-r2.ebuild +++ b/media-video/pipewire/pipewire-0.3.71-r2.ebuild @@ -297,7 +297,7 @@ multilib_src_install_all() { newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop exeinto /usr/bin - newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r1 gentoo-pipewire-launcher + newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r2 gentoo-pipewire-launcher # Disable pipewire-pulse if sound-server is disabled. if ! use sound-server ; then diff --git a/media-video/pipewire/pipewire-9999.ebuild b/media-video/pipewire/pipewire-9999.ebuild index f8791a4a2601..39e2c38af13b 100644 --- a/media-video/pipewire/pipewire-9999.ebuild +++ b/media-video/pipewire/pipewire-9999.ebuild @@ -297,7 +297,7 @@ multilib_src_install_all() { newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop exeinto /usr/bin - newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r1 gentoo-pipewire-launcher + newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r2 gentoo-pipewire-launcher # Disable pipewire-pulse if sound-server is disabled. if ! use sound-server ; then |