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