summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nonsystemd/pipewire/PKGBUILD198
1 files changed, 198 insertions, 0 deletions
diff --git a/nonsystemd/pipewire/PKGBUILD b/nonsystemd/pipewire/PKGBUILD
new file mode 100644
index 000000000..f48fff2aa
--- /dev/null
+++ b/nonsystemd/pipewire/PKGBUILD
@@ -0,0 +1,198 @@
+# Maintainer: David P. <megver83@parabola.nu>
+# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+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
+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)
+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)
+checkdepends=(desktop-file-utils)
+_commit=7afd80052b7c49754a13c9ab49c368f95b60e0a7 # tags/0.3.40
+source=("git+https://gitlab.freedesktop.org/pipewire/pipewire.git#commit=$_commit")
+sha256sums=('SKIP')
+
+pkgver() {
+ cd pipewire
+ git describe --tags | sed 's/-/+/g'
+}
+
+prepare() {
+ cd pipewire
+}
+
+build() {
+ local meson_options=(
+ -D docs=enabled
+ -D jack=disabled
+ -D libcamera=disabled
+ -D udevrulesdir=/usr/lib/udev/rules.d
+ -D systemd=disabled
+ -D roc=disabled
+ -D session-managers=[]
+ )
+
+ arch-meson pipewire build "${meson_options[@]}"
+ meson compile -C build
+}
+
+check() {
+ meson test -C build --print-errorlogs
+}
+
+_pick() {
+ local p="$1" f d; shift
+ for f; do
+ d="$srcdir/$p/${f#$pkgdir/}"
+ mkdir -p "$(dirname "$d")"
+ mv "$f" "$d"
+ rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
+ done
+}
+
+_ver=${pkgver:0:3}
+
+package_pipewire() {
+ license+=(LGPL) # libspa-alsa
+ depends=(rtkit 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
+ libwebrtc_audio_processing.so)
+ optdepends=('pipewire-docs: Documentation'
+ 'pipewire-session-manager: Session manager'
+ 'pipewire-alsa: ALSA configuration'
+ 'pipewire-jack: JACK support'
+ 'pipewire-pulse: PulseAudio replacement'
+ 'gst-plugin-pipewire: GStreamer plugin'
+ 'pipewire-zeroconf: Zeroconf support'
+ 'pipewire-v4l2: V4L2 interceptor')
+ provides=(libpipewire-$_ver.so)
+
+ meson install -C build --destdir "$pkgdir"
+
+ ( cd "$pkgdir"
+
+ _pick acp usr/lib/udev
+ _pick acp usr/share/alsa-card-profile
+
+ _pick docs usr/share/doc
+
+ _pick jack usr/bin/pw-jack usr/lib/pipewire-$_ver/jack
+ _pick jack usr/share/man/man1/pw-jack.1
+ _pick jack usr/share/pipewire/jack.conf
+
+ _pick pulse usr/bin/pipewire-pulse
+ _pick pulse usr/lib/pipewire-$_ver/libpipewire-module-protocol-pulse.so
+ _pick pulse usr/lib/pipewire-$_ver/libpipewire-module-pulse-tunnel.so
+
+ _pick gst usr/lib/gstreamer-1.0
+
+ _pick zeroconf usr/lib/pipewire-$_ver/libpipewire-module-zeroconf-discover.so
+
+ _pick v4l2 usr/bin/pw-v4l2 usr/lib/pipewire-$_ver/v4l2
+ )
+
+ mkdir -p "$pkgdir/etc/alsa/conf.d"
+ ln -st "$pkgdir/etc/alsa/conf.d" \
+ /usr/share/alsa/alsa.conf.d/50-pipewire.conf
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+}
+
+package_alsa-card-profiles() {
+ pkgdesc+=" - ALSA card profiles"
+ license=(LGPL)
+
+ mv acp/* "$pkgdir"
+}
+
+package_pipewire-docs() {
+ pkgdesc+=" - documentation"
+
+ mv docs/* "$pkgdir"
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+}
+
+package_pipewire-alsa() {
+ pkgdesc+=" - ALSA configuration"
+ depends=(pipewire-session-manager)
+ provides=(pulseaudio-alsa)
+
+ mkdir -p "$pkgdir/etc/alsa/conf.d"
+ ln -st "$pkgdir/etc/alsa/conf.d" \
+ /usr/share/alsa/alsa.conf.d/99-pipewire-default.conf
+
+ install -Dm644 /dev/null \
+ "$pkgdir/usr/share/pipewire/media-session.d/with-alsa"
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+}
+
+package_pipewire-jack() {
+ pkgdesc+=" - JACK support"
+ license+=(GPL2) # libjackserver
+ depends=(pipewire-session-manager libpipewire-$_ver.so)
+
+ mv jack/* "$pkgdir"
+
+ install -Dm644 /dev/null \
+ "$pkgdir/usr/share/pipewire/media-session.d/with-jack"
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+}
+
+package_pipewire-pulse() {
+ pkgdesc+=" - PulseAudio replacement"
+ depends=(pipewire-session-manager libpipewire-$_ver.so libpulse.so
+ libavahi-{client,common}.so)
+ provides=(pulseaudio pulseaudio-bluetooth)
+ conflicts=(pulseaudio pulseaudio-bluetooth)
+
+ mv pulse/* "$pkgdir"
+
+ install -Dm644 /dev/null \
+ "$pkgdir/usr/share/pipewire/media-session.d/with-pulseaudio"
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+}
+
+package_gst-plugin-pipewire() {
+ pkgdesc="Multimedia graph framework - pipewire plugin"
+ depends=(pipewire-session-manager libpipewire-$_ver.so gst-plugins-base-libs)
+
+ mv gst/* "$pkgdir"
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+}
+
+package_pipewire-zeroconf() {
+ pkgdesc+=" - Zeroconf support"
+ depends=(pipewire libpipewire-$_ver.so libavahi-{client,common}.so)
+
+ mv zeroconf/* "$pkgdir"
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+}
+
+package_pipewire-v4l2() {
+ pkgdesc+=" - V4L2 interceptor"
+ depends=(pipewire-session-manager libpipewire-$_ver.so)
+
+ mv v4l2/* "$pkgdir"
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+}
+
+# vim:set sw=2 et: