run pipewire as system service & remove libpulse daemons
This commit is contained in:
1 parent
4c2c5a8bcb
commit
597cf65d79
5 files changed
+64
-21
No files matched your search
@@ -32,5 +32,9 @@ build(){
|
|||||||
|
|
||||||
package(){
|
package(){
|
||||||
ninja -C build install
|
ninja -C build install
|
||||||
|
# remove pulseaudio service and binaries (We uses pipewire-pulse)
|
||||||
|
rm -f $DESTDIR/usr/bin/start-pulseaudio-x11
|
||||||
|
rm -f $DESTDIR/usr/bin/pulseaudio
|
||||||
|
rm -rf $DESTDIR/etc/xdg
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
export PIPEWIRE_RUNTIME_DIR=/run/pipewire
|
||||||
# we must exit if cinnamon desktop detected
|
export XDG_RUNTIME_DIR=/run/pipewire
|
||||||
if [ "$XDG_CURRENT_DESKTOP" == "X-Cinnamon" ]; then
|
export PULSE_RUNTIME_PATH=/run/pipewire/pulse
|
||||||
exit 0
|
umask 002
|
||||||
fi
|
|
||||||
|
|
||||||
# We need to kill any existing pipewire instance to restore sound
|
# We need to kill any existing pipewire instance to restore sound
|
||||||
pkill -u "${USER}" -fx /usr/bin/pipewire-pulse 1>/dev/null 2>&1
|
pkill -u "${USER}" -fx /usr/bin/pipewire-pulse 1>/dev/null 2>&1
|
||||||
@@ -23,5 +22,23 @@ if [ -x /usr/bin/wireplumber ]; then
|
|||||||
elif [ -x /usr/bin/pipewire-media-session ]; then
|
elif [ -x /usr/bin/pipewire-media-session ]; then
|
||||||
exec /usr/bin/pipewire-media-session &
|
exec /usr/bin/pipewire-media-session &
|
||||||
fi
|
fi
|
||||||
|
# wait until start pipewire
|
||||||
[ -f "/usr/share/pipewire/pipewire-pulse.conf" ] && exec /usr/bin/pipewire-pulse &
|
while ! [ -e /run/pipewire/pipewire-0 ] ; do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
chgrp audio -R /run/pipewire/
|
||||||
|
# start pipewire-pulse
|
||||||
|
if [ -f "/usr/share/pipewire/pipewire-pulse.conf" ] ; then
|
||||||
|
dbus=''
|
||||||
|
if [ -f /usr/bin/dbus-run-session ] ; then
|
||||||
|
dbus='/usr/bin/dbus-run-session'
|
||||||
|
fi
|
||||||
|
exec $dus /usr/bin/pipewire-pulse &
|
||||||
|
# wait until start pipewire-pulse
|
||||||
|
while ! [ -e /run/pipewire/pulse/native ] ; do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
chgrp audio -R /run/pipewire/pulse
|
||||||
|
chmod 775 /run/pipewire/pulse
|
||||||
|
fi
|
||||||
|
wait
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Version=1.0
|
|
||||||
Name=Pipewire
|
|
||||||
Comment=Start Pipewire
|
|
||||||
Exec=/usr/libexec/pipewire-launcher
|
|
||||||
Terminal=false
|
|
||||||
Type=Application
|
|
||||||
X-KDE-autostart-phase=1
|
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
#!/sbin/openrc-run
|
||||||
|
|
||||||
|
name="pipewire"
|
||||||
|
description="PipeWire multimedia server"
|
||||||
|
pidfile="/run/${name}.pid"
|
||||||
|
command="/usr/libexec/pipewire-launcher"
|
||||||
|
command_background=true
|
||||||
|
supervisor=supervise-daemon
|
||||||
|
command_user="pipewire:audio"
|
||||||
|
|
||||||
|
|
||||||
|
user="audio"
|
||||||
|
group="audio"
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
need dbus
|
||||||
|
}
|
||||||
|
|
||||||
|
start_pre() {
|
||||||
|
checkpath --directory --mode 0755 --owner=pipewire:audio /run/${name}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ email='bayramk@gmail.com'
|
|||||||
maintainer='bk'
|
maintainer='bk'
|
||||||
license=('GPLv3')
|
license=('GPLv3')
|
||||||
source=("https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/$version/pipewire-$version.tar.gz"
|
source=("https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/$version/pipewire-$version.tar.gz"
|
||||||
"pipewire.desktop"
|
"pipewire.initd"
|
||||||
"pipewire-launcher.sh")
|
"pipewire-launcher.sh")
|
||||||
depends=(lilv libpulse alsa-lib dbus)
|
depends=(lilv libpulse alsa-lib dbus)
|
||||||
makedepends=()
|
makedepends=()
|
||||||
@@ -45,10 +45,18 @@ build(){
|
|||||||
|
|
||||||
package(){
|
package(){
|
||||||
ninja -C build install
|
ninja -C build install
|
||||||
mkdir -p ${DESTDIR}/usr/libexec ${DESTDIR}/etc/xdg/autostart/
|
mkdir -p ${DESTDIR}/usr/libexec \
|
||||||
# pipewire launcher from alpine linux
|
${DESTDIR}/etc/init.d \
|
||||||
|
${DESTDIR}/etc/profile.d \
|
||||||
|
${DESTDIR}/etc/passwd.d
|
||||||
|
# pipewire launcher from alpine linux (with same modifications)
|
||||||
install ../pipewire-launcher.sh ${DESTDIR}/usr/libexec/pipewire-launcher
|
install ../pipewire-launcher.sh ${DESTDIR}/usr/libexec/pipewire-launcher
|
||||||
install ../pipewire.desktop ${DESTDIR}/etc/xdg/autostart/
|
# pipewire system service
|
||||||
|
install ../pipewire.initd ${DESTDIR}/etc/init.d/pipewire
|
||||||
|
# environment variable
|
||||||
|
echo "export PIPEWIRE_RUNTOME_DIR=/run/pipewire" > ${DESTDIR}/etc/profile.d/pipewire.sh
|
||||||
|
echo "export PULSE_SERVER=unix:/run/pipewire/pulse/native" >> ${DESTDIR}/etc/profile.d/pipewire.sh
|
||||||
|
# pipewire user (uid same with audio group)
|
||||||
|
echo "pipewire:x:29:29::/run/pipewire:/bin/false" > "$DESTDIR"/etc/passwd.d/pipewire
|
||||||
}
|
}
|
||||||
|
|
||||||
Reference in new issue
Block a user