summaryrefslogtreecommitdiff
path: root/nonsystemd/pipewire/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'nonsystemd/pipewire/PKGBUILD')
-rw-r--r--nonsystemd/pipewire/PKGBUILD442
1 files changed, 384 insertions, 58 deletions
diff --git a/nonsystemd/pipewire/PKGBUILD b/nonsystemd/pipewire/PKGBUILD
index f48fff2aa..756885621 100644
--- a/nonsystemd/pipewire/PKGBUILD
+++ b/nonsystemd/pipewire/PKGBUILD
@@ -1,46 +1,114 @@
# 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>
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
+pkgname=(
+ pipewire
+ libpipewire
+ alsa-card-profiles
+ pipewire-docs
+ pipewire-audio
+ pipewire-alsa
+ pipewire-ffado
+ pipewire-jack-client
+ pipewire-jack
+ pipewire-pulse
+ pipewire-roc
+ gst-plugin-pipewire
+ pipewire-zeroconf
+ pipewire-v4l2
+ pipewire-x11-bell
+ pipewire-session-manager
+ pulse-native-provider
+)
+_commit=f2874ad1c2f7f0b9a1da05cc4f402b3ea3761ee6 # tags/1.0.4
+pkgver=1.0.4
+_so_ver=0.3
+pkgrel=3
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')
+license=(MIT)
+makedepends=(
+ alsa-lib
+ avahi
+ bluez-libs
+ dbus
+ doxygen
+ git
+ glib2
+ graphviz
+ gst-plugins-base
+ jack2
+ libcamera
+ libcanberra
+ libfdk-aac
+ libffado
+ libfreeaptx
+ liblc3
+ libldac
+ libmysofa
+ libpulse
+ libsndfile
+ libusb
+ libx11
+ libxfixes
+ lilv
+ meson
+ ncurses
+ opus
+ python-docutils
+ python-packaging
+ readline
+ roc-toolkit
+ rtkit
+ sbc
+ sdl2
+ valgrind
+ webrtc-audio-processing-1
+)
+checkdepends=(
+ desktop-file-utils
+ openal
+)
+source=(
+ "git+https://gitlab.freedesktop.org/pipewire/pipewire.git#commit=$_commit"
+)
+b2sums=('a1a9905ec4b09fe7d24bdf08164d96a1b2ee285576b53b941b6c245bf4c63991295398cb14e22555e4ba2bdff8d16523ef27fa05f81a336df3991f2ac9d911e1')
pkgver() {
cd pipewire
- git describe --tags | sed 's/-/+/g'
+ git describe --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
cd pipewire
+
+ # Gst plugin fixes
+ git cherry-pick -n \
+ f1b75fc6f803f866d2ed0f7d1366f56ef96f0610 \
+ 8a271a87b77e4508bb698f9b9e9fe3624884bfa6 \
+ 1a6bb994a502d95434e326a35a83a1fb5f4ebad8 \
+ 8848c7e7920618b97016243912bcb20c69a71960
}
build() {
local meson_options=(
+ -D bluez5-codec-lc3plus=disabled
-D docs=enabled
- -D jack=disabled
- -D libcamera=disabled
+ -D jack-devel=true
+ -D libjack-path=/usr/lib
+ -D man=enabled
+ -D rlimits-install=false
+ -D selinux=disabled
+ -D session-managers=[]
-D udevrulesdir=/usr/lib/udev/rules.d
-D systemd=disabled
- -D roc=disabled
- -D session-managers=[]
)
arch-meson pipewire build "${meson_options[@]}"
@@ -61,58 +129,146 @@ _pick() {
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)
+ license+=(LGPL-2.1-or-later) # libspa-alsa
+ depends=(
+ gcc-libs
+ glibc
+ "libpipewire=$epoch:$pkgver-$pkgrel"
+ libcamera-base.so
+ libcamera.so
+ libdbus-1.so
+ libglib-2.0.so
+ libncursesw.so
+ libpipewire-$_so_ver.so
+ libreadline.so
+ libudev.so
+ )
+ optdepends=(
+ 'gst-plugin-pipewire: GStreamer plugin'
+ 'pipewire-alsa: ALSA configuration'
+ 'pipewire-audio: Audio support'
+ 'pipewire-docs: Documentation'
+ 'pipewire-ffado: FireWire support'
+ 'pipewire-jack-client: PipeWire as JACK client'
+ 'pipewire-jack: JACK replacement'
+ 'pipewire-pulse: PulseAudio replacement'
+ 'pipewire-roc: ROC streaming'
+ 'pipewire-session-manager: Session manager'
+ 'pipewire-v4l2: V4L2 interceptor'
+ 'pipewire-x11-bell: X11 bell'
+ 'pipewire-zeroconf: Zeroconf support'
+ 'realtime-privileges: realtime privileges with rt module'
+ 'rtkit: realtime privileges with rtkit module'
+ )
meson install -C build --destdir "$pkgdir"
- ( cd "$pkgdir"
+ (
+ cd "$pkgdir"
+
+ # Replace copies with symlinks
+ for _f in pipewire-{aes67,avb,pulse}; do
+ cmp usr/bin/pipewire usr/bin/$_f
+ ln -sf pipewire usr/bin/$_f
+ done
+
+ _pick lib usr/include/{pipewire-$_so_ver,spa-0.2}
+ _pick lib usr/lib/libpipewire-$_so_ver.so*
+ _pick lib usr/lib/pkgconfig/lib{pipewire-$_so_ver,spa-0.2}.pc
_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 audio usr/bin/pipewire-{aes67,avb}
+ _pick audio usr/bin/pw-{cat,{,enc}play,record,midi{play,record},dsdplay}
+ _pick audio usr/bin/pw-{loopback,mididump}
+ _pick audio usr/bin/spa-{acp-tool,resample}
+ _pick audio usr/lib/alsa-lib
+ _pick audio usr/lib/pipewire-$_so_ver/libpipewire-module-avb.so
+ _pick audio usr/lib/pipewire-$_so_ver/libpipewire-module-echo-cancel.so
+ _pick audio usr/lib/pipewire-$_so_ver/libpipewire-module-fallback-sink.so
+ _pick audio usr/lib/pipewire-$_so_ver/libpipewire-module-filter-chain*.so
+ _pick audio usr/lib/pipewire-$_so_ver/libpipewire-module-loopback.so
+ _pick audio usr/lib/pipewire-$_so_ver/libpipewire-module-netjack2*.so
+ _pick audio usr/lib/pipewire-$_so_ver/libpipewire-module-pipe-tunnel.so
+ _pick audio usr/lib/pipewire-$_so_ver/libpipewire-module-protocol-simple.so
+ _pick audio usr/lib/pipewire-$_so_ver/libpipewire-module-rtp-{sap,sink,source}.so
+ _pick audio usr/lib/pipewire-$_so_ver/libpipewire-module-vban*.so
+ _pick audio usr/lib/spa-0.2/{aec,alsa,audio*,avb,bluez5}
+ _pick audio usr/share/alsa
+ _pick audio usr/share/man/man1/pw-{cat,loopback,mididump}.1
+ _pick audio usr/share/man/man1/spa-{acp-tool,resample}.1
+ _pick audio usr/share/man/man5/pipewire-filter-chain.conf.5
+ _pick audio usr/share/man/man7/libpipewire-module-{avb,echo-cancel,fallback-sink,filter-chain*,loopback,netjack2*,pipe-tunnel,protocol-simple,rtp-{sap,sink,source},vban*}.7
+ _pick audio usr/share/pipewire/filter-chain*
+ _pick audio usr/share/pipewire/pipewire-{aes67,avb}.conf
+ _pick audio usr/share/spa-0.2/bluez5
+
+ _pick ffado usr/lib/pipewire-$_so_ver/libpipewire-module-ffado*.so
+ _pick ffado usr/share/man/man7/libpipewire-module-ffado-driver.7
+
+ _pick jack-client usr/lib/pipewire-$_so_ver/libpipewire-module-jack{-tunnel,dbus-detect}.so
+ _pick jack-client usr/lib/spa-0.2/jack
+ _pick jack-client usr/share/man/man7/libpipewire-module-jack{-tunnel,dbus-detect}.7
+
+ _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/man/man5/pipewire-jack.conf.5
_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 pulse usr/lib/pipewire-$_so_ver/libpipewire-module-protocol-pulse.so
+ _pick pulse usr/lib/pipewire-$_so_ver/libpipewire-module-pulse-tunnel.so
+ _pick pulse usr/share/man/man1/pipewire-pulse.1
+ _pick pulse usr/share/man/man5/pipewire-pulse.conf.5
+ _pick pulse usr/share/man/man7/pipewire-pulse*.7
+ _pick pulse usr/share/man/man7/libpipewire-module-{protocol-pulse,pulse-tunnel}.7
+ _pick pulse usr/share/pipewire/pipewire-pulse.conf
+
+ _pick roc usr/lib/pipewire-$_so_ver/libpipewire-module-roc*.so
+ _pick roc usr/share/man/man7/libpipewire-module-roc-{sink,source}.7
_pick gst usr/lib/gstreamer-1.0
- _pick zeroconf usr/lib/pipewire-$_ver/libpipewire-module-zeroconf-discover.so
+ _pick zeroconf usr/lib/pipewire-$_so_ver/libpipewire-module-{raop,zeroconf}-*.so
+ _pick zeroconf usr/lib/pipewire-$_so_ver/libpipewire-module-rtp-session.so
+ _pick zeroconf usr/share/man/man7/libpipewire-module-{raop-*,rtp-session,zeroconf*}.7
+
+ _pick v4l2 usr/bin/pw-v4l2 usr/lib/pipewire-$_so_ver/v4l2
+ _pick v4l2 usr/share/man/man1/pw-v4l2.1
- _pick v4l2 usr/bin/pw-v4l2 usr/lib/pipewire-$_ver/v4l2
+ _pick x11-bell usr/lib/pipewire-$_so_ver/libpipewire-module-x11-bell.so
+ _pick x11-bell usr/share/man/man7/libpipewire-module-x11-bell.7
+
+ # directories for overrides
+ mkdir -p etc/pipewire/{client-rt,client,minimal,pipewire}.conf.d
)
- 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_libpipewire() {
+ pkgdesc+=" - client library"
+ depends=(
+ glibc
+ gcc-libs
+ )
+ provides=(libpipewire-$_so_ver.so)
+
+ mv lib/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
package_alsa-card-profiles() {
pkgdesc+=" - ALSA card profiles"
- license=(LGPL)
+ license=(LGPL-2.1-or-later)
mv acp/* "$pkgdir"
}
@@ -125,9 +281,48 @@ package_pipewire-docs() {
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
+package_pipewire-audio() {
+ pkgdesc+=" - Audio support"
+ depends=(
+ alsa-card-profiles
+ dbus
+ gcc-libs
+ glib2
+ glibc
+ libasound.so
+ libbluetooth.so
+ libfdk-aac.so
+ libfreeaptx.so
+ liblc3.so
+ libldacBT_enc.so
+ liblilv-0.so
+ libmysofa.so
+ libopus.so
+ libpipewire-$_so_ver.so
+ libsbc.so
+ libsndfile.so
+ libusb-1.0.so
+ libwebrtc-audio-processing-1.so
+ pipewire
+ )
+
+ mv audio/* "$pkgdir"
+
+ 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_pipewire-alsa() {
pkgdesc+=" - ALSA configuration"
- depends=(pipewire-session-manager)
+ depends=(
+ pipewire
+ pipewire-audio
+ pipewire-session-manager
+ )
+ conflicts=(pulseaudio-alsa)
provides=(pulseaudio-alsa)
mkdir -p "$pkgdir/etc/alsa/conf.d"
@@ -140,37 +335,126 @@ package_pipewire-alsa() {
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
+package_pipewire-ffado() {
+ pkgdesc+=" - FireWire support"
+ depends=(
+ glibc
+ libffado.so
+ libpipewire-$_so_ver.so
+ pipewire
+ pipewire-audio
+ )
+
+ mv ffado/* "$pkgdir"
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+}
+
+package_pipewire-jack-client() {
+ pkgdesc+=" - PipeWire as JACK client"
+ depends=(
+ glibc
+ libdbus-1.so
+ libjack.so
+ libpipewire-$_so_ver.so
+ pipewire
+ pipewire-audio
+ )
+ conflicts=(pipewire-jack)
+
+ mv jack-client/* "$pkgdir"
+
+ 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)
+ pkgdesc+=" - JACK replacement"
+ license+=(LGPL-2.1-or-later GPL-2.0-only) # libjackserver
+ depends=(
+ glibc
+ libpipewire-$_so_ver.so
+ pipewire
+ pipewire-audio
+ pipewire-session-manager
+ sh
+ )
+ optdepends=('jack-example-tools: for official JACK example-clients and tools')
+ conflicts=(jack jack2 pipewire-jack-client)
+ 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
}
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)
+ depends=(
+ dbus
+ gcc-libs
+ glibc
+ libavahi-{client,common}.so
+ libglib-2.0.so
+ libpipewire-$_so_ver.so
+ libpulse.so
+ pipewire
+ pipewire-audio
+ pipewire-session-manager
+ )
+ provides=(
+ pulse-native-provider
+ pulseaudio
+ pulseaudio-bluetooth
+ )
+ conflicts=(
+ pulseaudio
+ pulseaudio-bluetooth
+ )
mv pulse/* "$pkgdir"
+ # directory for overrides
+ mkdir -p "$pkgdir/etc/pipewire/pipewire-pulse.conf.d"
+
install -Dm644 /dev/null \
"$pkgdir/usr/share/pipewire/media-session.d/with-pulseaudio"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
+package_pipewire-roc() {
+ pkgdesc+=" - ROC streaming support"
+ depends=(
+ glibc
+ libpipewire-$_so_ver.so
+ libroc.so
+ pipewire
+ pipewire-audio
+ roc-toolkit
+ )
+
+ mv roc/* "$pkgdir"
+
+ 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)
+ depends=(
+ glib2
+ glibc
+ gst-plugins-base-libs
+ gstreamer
+ libpipewire-$_so_ver.so
+ pipewire
+ pipewire-session-manager
+ )
mv gst/* "$pkgdir"
@@ -179,7 +463,16 @@ package_gst-plugin-pipewire() {
package_pipewire-zeroconf() {
pkgdesc+=" - Zeroconf support"
- depends=(pipewire libpipewire-$_ver.so libavahi-{client,common}.so)
+ depends=(
+ gcc-libs
+ glibc
+ libavahi-{client,common}.so
+ libpipewire-$_so_ver.so
+ openssl
+ opus
+ pipewire
+ pipewire-audio
+ )
mv zeroconf/* "$pkgdir"
@@ -188,11 +481,44 @@ package_pipewire-zeroconf() {
package_pipewire-v4l2() {
pkgdesc+=" - V4L2 interceptor"
- depends=(pipewire-session-manager libpipewire-$_ver.so)
+ depends=(
+ glibc
+ libpipewire-$_so_ver.so
+ pipewire
+ pipewire-session-manager
+ sh
+ )
mv v4l2/* "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
}
-# vim:set sw=2 et:
+package_pipewire-x11-bell() {
+ pkgdesc+=" - X11 bell"
+ depends=(
+ glibc
+ libcanberra.so
+ libpipewire-$_so_ver.so
+ libx11
+ libxfixes
+ pipewire
+ pipewire-audio
+ )
+
+ mv x11-bell/* "$pkgdir"
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+}
+
+package_pipewire-session-manager() {
+ pkgdesc="Session manager for PipeWire (default provider)"
+ depends=(wireplumber)
+}
+
+package_pulse-native-provider() {
+ pkgdesc="PulseAudio sound server (default provider)"
+ depends=(pipewire-pulse)
+}
+
+# vim:set sw=2 sts=-1 et: