summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nonsystemd/pipewire/PKGBUILD79
-rw-r--r--nonsystemd/pipewire/pipewire-launcher32
-rw-r--r--nonsystemd/pipewire/pipewire.desktop12
3 files changed, 104 insertions, 19 deletions
diff --git a/nonsystemd/pipewire/PKGBUILD b/nonsystemd/pipewire/PKGBUILD
index f48fff2aa..79d824e53 100644
--- a/nonsystemd/pipewire/PKGBUILD
+++ b/nonsystemd/pipewire/PKGBUILD
@@ -1,41 +1,55 @@
# Maintainer: David P. <megver83@parabola.nu>
-# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# Maintainer (Arch): David Runge <dvzrv@archlinux.org>
+# Maintainer (Arch): Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Contributor (Arch): Jan de Groot <jgc@archlinux.org>
+
+# differences with the Artix package:
+# - install an XDG autostart script to launch pipewire-pulse, like Gentoo
pkgbase=pipewire
pkgname=(pipewire alsa-card-profiles pipewire-docs pipewire-alsa pipewire-jack
- pipewire-pulse gst-plugin-pipewire pipewire-zeroconf pipewire-v4l2)
-pkgver=0.3.40
+ pipewire-pulse gst-plugin-pipewire pipewire-zeroconf pipewire-v4l2
+ pipewire-x11-bell)
+_commit=ebc775674a0cf254cebd6d4694944006405807e3 # tags/0.3.51
+pkgver=0.3.51
pkgrel=1
pkgrel+=.nonsystemd1
epoch=1
pkgdesc="Low-latency audio/video router and processor"
url="https://pipewire.org"
-license=(MIT)
arch=(x86_64)
arch+=(i686 armv7h)
+license=(MIT)
makedepends=(git meson doxygen graphviz python-docutils valgrind libpulse
- alsa-lib libusb gst-plugins-base rtkit dbus sdl2 ncurses libsndfile
- bluez-libs sbc libldac libfreeaptx libfdk-aac avahi
- webrtc-audio-processing)
+ alsa-lib libusb gst-plugins-base rtkit dbus sdl2 ncurses
+ libcanberra libsndfile bluez-libs sbc libldac libfreeaptx
+ libfdk-aac avahi lilv webrtc-audio-processing libx11 libxfixes)
checkdepends=(desktop-file-utils)
-_commit=7afd80052b7c49754a13c9ab49c368f95b60e0a7 # tags/0.3.40
-source=("git+https://gitlab.freedesktop.org/pipewire/pipewire.git#commit=$_commit")
-sha256sums=('SKIP')
+options=(debug)
+source=("git+https://gitlab.freedesktop.org/pipewire/pipewire.git#commit=$_commit"
+ pipewire.desktop pipewire-launcher)
+sha256sums=('SKIP'
+ 'b5b68d711ff070b6217c4da5de0c5488b36a012b7e5484bf1d89d1969a778026'
+ '47f4d64dd4583963ce493828c171b608949dcc9f6e20d5dc2cdcb3a2f3ba6bac')
pkgver() {
cd pipewire
- git describe --tags | sed 's/-/+/g'
+ git describe --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
cd pipewire
+
+ # remove export of LD_LIBRARY_PATH for pw-jack as it would add /usr/lib
+ sed -i '/LD_LIBRARY_PATH/d' pipewire-jack/src/pw-jack.in
}
build() {
local meson_options=(
-D docs=enabled
-D jack=disabled
+ -D jack-devel=true
+ -D libjack-path=/usr/lib
-D libcamera=disabled
-D udevrulesdir=/usr/lib/udev/rules.d
-D systemd=disabled
@@ -65,9 +79,9 @@ _ver=${pkgver:0:3}
package_pipewire() {
license+=(LGPL) # libspa-alsa
- depends=(rtkit alsa-card-profiles libdbus-1.so libncursesw.so libsndfile.so
+ depends=(alsa-card-profiles libdbus-1.so libncursesw.so libsndfile.so
libudev.so libusb-1.0.so libasound.so libbluetooth.so
- libsbc.so libldacBT_enc.so libfreeaptx.so libfdk-aac.so
+ libsbc.so libldacBT_enc.so libfreeaptx.so libfdk-aac.so liblilv-0.so
libwebrtc_audio_processing.so)
optdepends=('pipewire-docs: Documentation'
'pipewire-session-manager: Session manager'
@@ -76,7 +90,10 @@ package_pipewire() {
'pipewire-pulse: PulseAudio replacement'
'gst-plugin-pipewire: GStreamer plugin'
'pipewire-zeroconf: Zeroconf support'
- 'pipewire-v4l2: V4L2 interceptor')
+ 'pipewire-v4l2: V4L2 interceptor'
+ 'pipewire-x11-bell: X11 bell'
+ 'realtime-privileges: realtime privileges with rt module'
+ 'rtkit: realtime privileges with rtkit module')
provides=(libpipewire-$_ver.so)
meson install -C build --destdir "$pkgdir"
@@ -88,7 +105,10 @@ package_pipewire() {
_pick docs usr/share/doc
- _pick jack usr/bin/pw-jack usr/lib/pipewire-$_ver/jack
+ _pick jack usr/bin/pw-jack
+ _pick jack usr/include/jack
+ _pick jack usr/lib/libjack*
+ _pick jack usr/lib/pkgconfig/jack.pc
_pick jack usr/share/man/man1/pw-jack.1
_pick jack usr/share/pipewire/jack.conf
@@ -98,9 +118,10 @@ package_pipewire() {
_pick gst usr/lib/gstreamer-1.0
- _pick zeroconf usr/lib/pipewire-$_ver/libpipewire-module-zeroconf-discover.so
+ _pick zeroconf usr/lib/pipewire-$_ver/libpipewire-module-{raop,zeroconf}-discover.so
_pick v4l2 usr/bin/pw-v4l2 usr/lib/pipewire-$_ver/v4l2
+ _pick x11-bell usr/lib/pipewire-$_ver/libpipewire-module-x11-bell.so
)
mkdir -p "$pkgdir/etc/alsa/conf.d"
@@ -143,13 +164,19 @@ package_pipewire-alsa() {
package_pipewire-jack() {
pkgdesc+=" - JACK support"
license+=(GPL2) # libjackserver
- depends=(pipewire-session-manager libpipewire-$_ver.so)
+ depends=(pipewire-session-manager libpipewire-$_ver.so sh)
+ optdepends=('jack-example-tools: for official JACK example-clients and tools')
+ conflicts=(jack jack2)
+ provides=(jack libjack.so libjackserver.so libjacknet.so)
mv jack/* "$pkgdir"
install -Dm644 /dev/null \
"$pkgdir/usr/share/pipewire/media-session.d/with-jack"
+ # directories for overrides
+ mkdir -p "$pkgdir/etc/pipewire/jack.conf.d"
+
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
@@ -166,6 +193,11 @@ package_pipewire-pulse() {
"$pkgdir/usr/share/pipewire/media-session.d/with-pulseaudio"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+
+ # borrowed from Gentoo's media-video/pipewire, with pipewire-media-session support
+ mkdir -p "$pkgdir/etc/xdg/autostart"
+ install -m644 pipewire.desktop "$pkgdir/etc/xdg/autostart/pipewire.desktop"
+ install -m755 pipewire-launcher "$pkgdir/usr/bin/pipewire-launcher"
}
package_gst-plugin-pipewire() {
@@ -188,11 +220,20 @@ package_pipewire-zeroconf() {
package_pipewire-v4l2() {
pkgdesc+=" - V4L2 interceptor"
- depends=(pipewire-session-manager libpipewire-$_ver.so)
+ depends=(pipewire-session-manager libpipewire-$_ver.so sh)
mv v4l2/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
+
+package_pipewire-x11-bell() {
+ pkgdesc+=" - X11 bell"
+ depends=(pipewire libpipewire-$_ver.so libx11 libxfixes libcanberra.so)
+
+ mv x11-bell/* "$pkgdir"
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+}
# vim:set sw=2 et:
diff --git a/nonsystemd/pipewire/pipewire-launcher b/nonsystemd/pipewire/pipewire-launcher
new file mode 100644
index 000000000..d220684d0
--- /dev/null
+++ b/nonsystemd/pipewire/pipewire-launcher
@@ -0,0 +1,32 @@
+#!/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!
+
+# Best to reap any existing daemons and only then try to start a new set.
+pkill -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1
+
+# The core daemon which by itself does probably nothing.
+/usr/bin/pipewire &
+
+# 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).
+/usr/bin/pipewire -c pipewire-pulse.conf &
+
+# Hack for bug #822498 (Gentoo's Bugzilla)
+sleep 1
+
+# Finally a session manager is required for PipeWire to do anything.
+for session_manager in wireplumber pipewire-media-session; do
+ command -v "$session_manager" &>/dev/null && break
+done
+exec "$session_manager"
diff --git a/nonsystemd/pipewire/pipewire.desktop b/nonsystemd/pipewire/pipewire.desktop
new file mode 100644
index 000000000..f7998a678
--- /dev/null
+++ b/nonsystemd/pipewire/pipewire.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Version=1.0
+Name[de]=PipeWire Mediensystem
+Name=PipeWire Media System
+Comment[de]=Das PipeWire Mediensystem starten
+Comment=Start the PipeWire Media System
+Exec=/usr/bin/pipewire-launcher
+Terminal=false
+Type=Application
+X-GNOME-HiddenUnderSystemd=true
+X-KDE-HiddenUnderSystemd=true
+X-systemd-skip=true