diff options
Diffstat (limited to 'nonsystemd')
-rw-r--r-- | nonsystemd/pipewire/PKGBUILD | 198 |
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: |