diff options
-rw-r--r-- | .SRCINFO | 277 | ||||
-rw-r--r-- | PKGBUILD | 552 | ||||
-rw-r--r-- | pipewire.install | 6 |
3 files changed, 683 insertions, 152 deletions
@@ -1,134 +1,277 @@ pkgbase = pipewire-full-git pkgdesc = Low-latency audio/video router and processor - pkgver = 0.3.25.r0.gc3241072 + pkgver = 1.0.0.r591.gaf310523 pkgrel = 1 url = https://pipewire.org arch = x86_64 license = MIT - makedepends = git - makedepends = meson + checkdepends = openal + makedepends = alsa-lib + makedepends = avahi + makedepends = bluez-libs + makedepends = dbus makedepends = doxygen + makedepends = git + makedepends = glib2 makedepends = graphviz - makedepends = xmltoman - makedepends = jack2 - makedepends = alsa-lib - makedepends = gst-plugins-base-libs - makedepends = sbc + makedepends = gst-plugins-base + makedepends = jack + makedepends = libcamera + makedepends = libcanberra + makedepends = libfdk-aac + makedepends = libffado + makedepends = libfreeaptx + makedepends = liblc3 + makedepends = libldac + makedepends = libmysofa + makedepends = libpulse + makedepends = libsndfile + makedepends = libusb + makedepends = libx11 + makedepends = libxfixes + makedepends = lilv + makedepends = meson + makedepends = ncurses + makedepends = opus + makedepends = python + makedepends = python-packaging + makedepends = readline + makedepends = roc-toolkit makedepends = rtkit - makedepends = vulkan-icd-loader - makedepends = dbus + makedepends = sbc makedepends = sdl2 - makedepends = ncurses - makedepends = libsndfile - makedepends = bluez-libs + makedepends = systemd + makedepends = valgrind + makedepends = webrtc-audio-processing-1 + makedepends = abseil-cpp makedepends = vulkan-headers - makedepends = libldac - makedepends = libopenaptx - makedepends = libfdk-aac + makedepends = vulkan-icd-loader makedepends = ffmpeg + makedepends = modemmanager source = git+https://gitlab.freedesktop.org/pipewire/pipewire.git - sha256sums = SKIP + b2sums = SKIP pkgname = pipewire-full-git install = pipewire.install - depends = rtkit + license = MIT + license = LGPL-2.1-or-later + depends = gcc-libs + depends = glibc + depends = libpipewire-full-git=1.0.0.r591.gaf310523-1 + depends = libcamera-base.so + depends = libcamera.so depends = libdbus-1.so + depends = libglib-2.0.so depends = libncursesw.so - depends = libsndfile.so - depends = libudev.so - depends = libasound.so + depends = libpipewire-0.3.so + depends = libreadline.so depends = libsystemd.so - depends = libbluetooth.so - depends = libsbc.so - depends = libldacBT_enc.so - depends = libopenaptx.so - depends = libfdk-aac.so - optdepends = pipewire-full-docs-git: Documentation + depends = libudev.so + optdepends = gst-plugin-pipewire-full-git: GStreamer plugin optdepends = pipewire-full-alsa-git: ALSA configuration - optdepends = pipewire-full-jack-git: JACK support - optdepends = pipewire-full-jack-client-git: JACK device/client + optdepends = pipewire-full-audio-git: Audio support + optdepends = pipewire-full-docs-git: Documentation + optdepends = pipewire-full-ffado-git: FireWire support + optdepends = pipewire-full-jack-client-git: PipeWire as JACK client + optdepends = pipewire-full-jack-git: JACK replacement optdepends = pipewire-full-pulse-git: PulseAudio replacement - optdepends = gst-plugin-pipewire-full-git: GStreamer support - optdepends = ofono: ofono Bluetooth HFP support - optdepends = hsphfpd: hsphfpd Bluetooth HSP/HFP support - provides = pipewire - provides = pipewire-media-session - provides = alsa-card-profiles - provides = libpipewire-0.3.so + optdepends = pipewire-full-roc-git: ROC streaming + optdepends = pipewire-session-manager: Session manager + optdepends = pipewire-full-v4l2-git: V4L2 interceptor + optdepends = pipewire-full-x11-bell-git: X11 bell + optdepends = pipewire-full-zeroconf-git: Zeroconf support + optdepends = realtime-privileges: realtime privileges with rt module + optdepends = rtkit: realtime privileges with rtkit module + provides = pipewire=1.0.0 conflicts = pipewire - conflicts = pipewire-media-session - conflicts = alsa-card-profiles - backup = etc/pipewire/pipewire.conf - backup = etc/pipewire/pipewire-pulse.conf - backup = etc/pipewire/client.conf - backup = etc/pipewire/client-rt.conf - backup = etc/pipewire/media-session.d/media-session.conf - backup = etc/pipewire/media-session.d/alsa-monitor.conf - backup = etc/pipewire/media-session.d/bluez-monitor.conf - backup = etc/pipewire/media-session.d/v4l2-monitor.conf + +pkgname = libpipewire-full-git + pkgdesc = Low-latency audio/video router and processor - client library + depends = glibc + depends = gcc-libs + provides = libpipewire=1.0.0 + provides = libpipewire-0.3.so + conflicts = libpipewire pkgname = pipewire-full-docs-git pkgdesc = Low-latency audio/video router and processor - documentation - arch = any provides = pipewire-docs conflicts = pipewire-docs options = !strip +pkgname = pipewire-full-audio-git + pkgdesc = Low-latency audio/video router and processor - Audio support + depends = dbus + depends = gcc-libs + depends = glib2 + depends = glibc + depends = libasound.so + depends = libbluetooth.so + depends = libfdk-aac.so + depends = libfreeaptx.so + depends = liblc3.so + depends = libldacBT_enc.so + depends = liblilv-0.so + depends = libmysofa.so + depends = libopus.so + depends = libpipewire-0.3.so + depends = libsbc.so + depends = libsndfile.so + depends = libusb-1.0.so + depends = libwebrtc-audio-processing-1.so + depends = pipewire + depends = systemd-libs + depends = libpipewire-full-git + depends = libavcodec.so + depends = libavformat.so + depends = libavutil.so + provides = pipewire-audio + provides = alsa-card-profiles + conflicts = pipewire-audio + conflicts = alsa-card-profiles + pkgname = pipewire-full-alsa-git - pkgdesc = - ALSA configuration + pkgdesc = Low-latency audio/video router and processor - ALSA configuration depends = pipewire-full-git - provides = pipewire-alsa + depends = pipewire-full-audio-git + depends = pipewire-session-manager provides = pulseaudio-alsa + provides = pipewire-alsa + conflicts = pulseaudio-alsa conflicts = pipewire-alsa -pkgname = pipewire-full-jack-git - pkgdesc = Low-latency audio/video router and processor - JACK support +pkgname = pipewire-full-ffado-git + pkgdesc = Low-latency audio/video router and processor - FireWire support + depends = glibc + depends = libffado.so + depends = libpipewire-0.3.so + depends = pipewire-full-git + depends = pipewire-full-audio-git + provides = pipewire-ffado + conflicts = pipewire-ffado + +pkgname = pipewire-full-jack-client-git + pkgdesc = Low-latency audio/video router and processor - PipeWire as JACK client + depends = glibc + depends = libdbus-1.so + depends = libjack.so + depends = libpipewire-0.3.so depends = pipewire-full-git + depends = pipewire-full-audio-git + provides = pipewire-jack-client + conflicts = pipewire-jack-client + +pkgname = pipewire-full-jack-git + pkgdesc = Low-latency audio/video router and processor - JACK replacement + license = MIT + license = LGPL-2.1-or-later + license = GPL-2.0-only + depends = glibc depends = libpipewire-0.3.so - depends = bash + depends = pipewire-full-git + depends = pipewire-full-audio-git + depends = pipewire-session-manager + depends = sh + optdepends = jack-example-tools: for official JACK example-clients and tools + provides = jack + provides = libjack.so + provides = libjackserver.so + provides = libjacknet.so provides = pipewire-jack + conflicts = jack + conflicts = jack2 conflicts = pipewire-jack - backup = etc/pipewire/jack.conf pkgname = pipewire-full-pulse-git pkgdesc = Low-latency audio/video router and processor - PulseAudio replacement install = pipewire-pulse.install + depends = dbus + depends = gcc-libs + depends = glibc + depends = libavahi-client.so + depends = libavahi-common.so + depends = libglib-2.0.so + depends = libpipewire-0.3.so + depends = libpulse.so depends = pipewire-full-git - depends = libpulse - provides = pipewire-pulse + depends = pipewire-full-audio-git + depends = pipewire-session-manager + depends = systemd-libs + provides = pulse-native-provider provides = pulseaudio provides = pulseaudio-bluetooth - conflicts = pipewire-pulse + provides = pipewire-pulse conflicts = pulseaudio conflicts = pulseaudio-bluetooth + conflicts = pipewire-pulse + +pkgname = pipewire-full-roc-git + pkgdesc = Low-latency audio/video router and processor - ROC streaming support + depends = glibc + depends = libpipewire-0.3.so + depends = libroc.so + depends = pipewire-full-git + depends = pipewire-full-audio-git + depends = roc-toolkit + provides = pipewire-roc + conflicts = pipewire-roc pkgname = gst-plugin-pipewire-full-git pkgdesc = Multimedia graph framework - pipewire plugin - depends = pipewire-full-git - depends = libpipewire-0.3.so + depends = glib2 + depends = glibc depends = gst-plugins-base-libs + depends = gstreamer + depends = libpipewire-0.3.so + depends = pipewire-full-git + depends = pipewire-session-manager provides = gst-plugin-pipewire conflicts = gst-plugin-pipewire -pkgname = pipewire-full-jack-client-git - pkgdesc = JACK client SPA plugin +pkgname = pipewire-full-zeroconf-git + pkgdesc = Low-latency audio/video router and processor - Zeroconf support + depends = gcc-libs + depends = glibc + depends = libavahi-client.so + depends = libavahi-common.so + depends = libpipewire-0.3.so + depends = openssl + depends = opus depends = pipewire-full-git - depends = libjack.so - provides = pipewire-jack-client - conflicts = pipewire-jack-client + depends = pipewire-full-audio-git + provides = pipewire-zeroconf + conflicts = pipewire-zeroconf + +pkgname = pipewire-full-v4l2-git + pkgdesc = Low-latency audio/video router and processor - V4L2 interceptor + depends = glibc + depends = libpipewire-0.3.so + depends = pipewire-full-git + depends = pipewire-session-manager + depends = sh + provides = pipewire-v4l2 + conflicts = pipewire-v4l2 + +pkgname = pipewire-full-x11-bell-git + pkgdesc = Low-latency audio/video router and processor - X11 bell + depends = glibc + depends = libcanberra.so + depends = libpipewire-0.3.so + depends = libx11 + depends = libxfixes + depends = pipewire-full-git + depends = pipewire-full-audio-git + provides = pipewire-x11-bell + conflicts = pipewire-x11-bell pkgname = pipewire-full-vulkan-git pkgdesc = Vulkan SPA plugin - depends = pipewire-full-git depends = vulkan-icd-loader provides = pipewire-vulkan conflicts = pipewire-vulkan pkgname = pipewire-full-ffmpeg-git pkgdesc = FFmpeg SPA plugin - depends = pipewire-full-git depends = libavcodec.so - depends = libavformat.so provides = pipewire-ffmpeg conflicts = pipewire-ffmpeg - @@ -1,46 +1,119 @@ # Maintainer: Huang-Huang Bao <eh5@sokka.cn> +# Contributor: David Runge <dvzrv@archlinux.org> # Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org> # Contributor: Jan de Groot <jgc@archlinux.org> -_pkgbase=pipewire pkgbase=pipewire-full-git -pkgname=(pipewire-full-git pipewire-full-docs-git pipewire-full-alsa-git - pipewire-full-jack-git pipewire-full-pulse-git - gst-plugin-pipewire-full-git - pipewire-full-jack-client-git - pipewire-full-vulkan-git pipewire-full-ffmpeg-git) -pkgver=0.3.25.r0.gc3241072 +pkgname=( + pipewire-full-git + libpipewire-full-git + pipewire-full-docs-git + pipewire-full-audio-git + pipewire-full-alsa-git + pipewire-full-ffado-git + pipewire-full-jack-client-git + pipewire-full-jack-git + pipewire-full-pulse-git + pipewire-full-roc-git + gst-plugin-pipewire-full-git + pipewire-full-zeroconf-git + pipewire-full-v4l2-git + pipewire-full-x11-bell-git + pipewire-full-vulkan-git + pipewire-full-ffmpeg-git +) +pkgver=1.0.0.r591.gaf310523 +_so_ver=0.3 +_short_pkgver=${pkgver%%.r*} pkgrel=1 pkgdesc="Low-latency audio/video router and processor" url="https://pipewire.org" -license=(MIT) arch=(x86_64) -makedepends=(git meson doxygen graphviz xmltoman jack2 - alsa-lib gst-plugins-base-libs sbc rtkit vulkan-icd-loader dbus - sdl2 ncurses libsndfile bluez-libs vulkan-headers libldac - libopenaptx libfdk-aac ffmpeg) -source=("git+https://gitlab.freedesktop.org/pipewire/pipewire.git") -sha256sums=('SKIP') +license=(MIT) +makedepends=( + alsa-lib + avahi + bluez-libs + dbus + doxygen + git + glib2 + graphviz + gst-plugins-base + jack # jack2 or pipewire-jack + libcamera + libcanberra + libfdk-aac + libffado + libfreeaptx + liblc3 + libldac + libmysofa + libpulse + libsndfile + libusb + libx11 + libxfixes + lilv + meson + ncurses + opus + python + python-packaging + readline + roc-toolkit + rtkit + sbc + sdl2 + systemd + valgrind + webrtc-audio-processing-1 + abseil-cpp # header required by webrtc-audio-processing-1 + vulkan-headers vulkan-icd-loader + ffmpeg + modemmanager +) +checkdepends=( + openal +) +source=( + "git+https://gitlab.freedesktop.org/pipewire/pipewire.git" +) +b2sums=( + 'SKIP' +) pkgver() { - cd $_pkgbase - git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g' + cd pipewire + git describe --long --tags --abbrev=8 | sed 's/\([^-]*-g\)/r\1/;s/-/./g' } prepare() { - cd $_pkgbase + cd pipewire } build() { # make AUR helper happy rm -rf build || true - arch-meson $_pkgbase build \ - -D docs=enabled \ - -D ffmpeg=enabled \ - -D test=enabled \ - -D libcamera=disabled \ - -D vulkan=enabled \ + + local meson_options=( + -D bluez5-codec-lc3plus=disabled + -D docs=enabled + -D man=enabled + -D jack-devel=true + -D libjack-path=/usr/lib + -D rlimits-install=false + -D session-managers=[] -D udevrulesdir=/usr/lib/udev/rules.d + -D selinux=disabled + -D snap=disabled + -D vulkan=enabled + -D pw-cat-ffmpeg=enabled + -D ffmpeg=enabled + -D bluez5-backend-native-mm=enabled + ) + + arch-meson pipewire build "${meson_options[@]}" meson compile -C build } @@ -58,118 +131,439 @@ _pick() { done } -_ver=${pkgver:0:3} - package_pipewire-full-git() { - depends=(rtkit libdbus-1.so libncursesw.so libsndfile.so - libudev.so libasound.so libsystemd.so libbluetooth.so - libsbc.so libldacBT_enc.so libopenaptx.so libfdk-aac.so) - optdepends=('pipewire-full-docs-git: Documentation' - 'pipewire-full-alsa-git: ALSA configuration' - 'pipewire-full-jack-git: JACK support' - 'pipewire-full-jack-client-git: JACK device/client' - 'pipewire-full-pulse-git: PulseAudio replacement' - 'gst-plugin-pipewire-full-git: GStreamer support' - 'ofono: ofono Bluetooth HFP support' - 'hsphfpd: hsphfpd Bluetooth HSP/HFP support') - provides=(pipewire pipewire-media-session alsa-card-profiles libpipewire-$_ver.so) - conflicts=(pipewire pipewire-media-session alsa-card-profiles) - backup=(etc/pipewire/{pipewire{,-pulse},client{,-rt}}.conf - etc/pipewire/media-session.d/media-session.conf - etc/pipewire/media-session.d/{alsa,bluez,v4l2}-monitor.conf) + license+=(LGPL-2.1-or-later) # libspa-alsa + provides=("pipewire=$_short_pkgver") + conflicts=(pipewire) + depends=( + gcc-libs + glibc + "libpipewire-full-git=$pkgver-$pkgrel" + libcamera-base.so + libcamera.so + libdbus-1.so + libglib-2.0.so + libncursesw.so + libpipewire-$_so_ver.so + libreadline.so + libsystemd.so + libudev.so + ) + optdepends=( + 'gst-plugin-pipewire-full-git: GStreamer plugin' + 'pipewire-full-alsa-git: ALSA configuration' + 'pipewire-full-audio-git: Audio support' + 'pipewire-full-docs-git: Documentation' + 'pipewire-full-ffado-git: FireWire support' + 'pipewire-full-jack-client-git: PipeWire as JACK client' + 'pipewire-full-jack-git: JACK replacement' + 'pipewire-full-pulse-git: PulseAudio replacement' + 'pipewire-full-roc-git: ROC streaming' + 'pipewire-session-manager: Session manager' + 'pipewire-full-v4l2-git: V4L2 interceptor' + 'pipewire-full-x11-bell-git: X11 bell' + 'pipewire-full-zeroconf-git: Zeroconf support' + 'realtime-privileges: realtime privileges with rt module' + 'rtkit: realtime privileges with rtkit module' + ) install=pipewire.install - DESTDIR="$pkgdir" meson install -C build + meson install -C build --destdir "$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 + + # ACP + _pick audio usr/lib/udev + _pick audio usr/share/alsa-card-profile + + _pick docs usr/share/doc - install -Dm644 "$_pkgbase/LICENSE" "$pkgdir/usr/share/licenses/$_pkgbase/LICENSE" - install -Dm644 "$_pkgbase/COPYING" "$pkgdir/usr/share/licenses/$_pkgbase/COPYING" + _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/lib/systemd/user/filter-chain.service + _pick audio usr/share/alsa + _pick audio usr/share/man/man1/pw-{cat,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 - cd "$pkgdir" + _pick ffado usr/lib/pipewire-$_so_ver/libpipewire-module-ffado*.so + _pick ffado usr/share/man/man7/libpipewire-module-ffado-driver.7 - _pick docs usr/share/doc + _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 etc/pipewire/{jack.conf,media-session.d/with-jack} - _pick jack usr/bin/pw-jack usr/lib/pipewire-$_ver/jack - _pick jack usr/share/man/man1/pw-jack.1 + _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 etc/pipewire/media-session.d/with-pulseaudio + _pick pulse usr/bin/pipewire-pulse + _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/lib/systemd/user/pipewire-pulse.* + _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 gst usr/lib/gstreamer-1.0 + _pick roc usr/lib/pipewire-$_so_ver/libpipewire-module-roc*.so - _pick jack-client usr/lib/spa-0.2/jack + _pick gst usr/lib/gstreamer-1.0 - _pick vulkan usr/lib/spa-0.2/vulkan + _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 ffmpeg usr/lib/spa-0.2/ffmpeg + _pick v4l2 usr/bin/pw-v4l2 usr/lib/pipewire-$_so_ver/v4l2 + _pick v4l2 usr/share/man/man1/pw-v4l2.1 + + _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 + + _pick vulkan usr/lib/spa-0.2/vulkan + + _pick ffmpeg usr/lib/spa-0.2/ffmpeg + + # directories for overrides + mkdir -p etc/pipewire/{client-rt,client,minimal,pipewire}.conf.d + ) + + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING +} + +package_libpipewire-full-git() { + pkgdesc+=" - client library" + depends=( + glibc + gcc-libs + ) + provides=( + "libpipewire=$_short_pkgver" + libpipewire-$_so_ver.so + ) + conflicts=(libpipewire) + + mv lib/* "$pkgdir" + + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING } package_pipewire-full-docs-git() { - arch=(any) options=(!strip) + pkgdesc+=" - documentation" provides=(pipewire-docs) conflicts=(pipewire-docs) - pkgdesc+=" - documentation" + mv docs/* "$pkgdir" + + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING +} + +package_pipewire-full-audio-git() { + pkgdesc+=" - Audio support" + provides=(pipewire-audio alsa-card-profiles) + conflicts=(pipewire-audio alsa-card-profiles) + depends=( + 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 + systemd-libs + libpipewire-full-git + libavcodec.so libavformat.so libavutil.so + ) + + 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-full-alsa-git() { - pkgdesc=" - ALSA configuration" - depends=(pipewire-full-git) - provides=(pipewire-alsa pulseaudio-alsa) - conflicts=(pipewire-alsa) + pkgdesc+=" - ALSA configuration" + depends=( + pipewire-full-git + pipewire-full-audio-git + pipewire-session-manager + ) + conflicts=(pulseaudio-alsa pipewire-alsa) + provides=(pulseaudio-alsa pipewire-alsa) mkdir -p "$pkgdir/etc/alsa/conf.d" ln -st "$pkgdir/etc/alsa/conf.d" \ - /usr/share/alsa/alsa.conf.d/{50-pipewire,99-pipewire-default}.conf - install -Dm644 /dev/null "$pkgdir/etc/pipewire/media-session.d/with-alsa" + /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-full-ffado-git() { + pkgdesc+=" - FireWire support" + depends=( + glibc + libffado.so + libpipewire-$_so_ver.so + pipewire-full-git + pipewire-full-audio-git + ) + provides=(pipewire-ffado) + conflicts=(pipewire-ffado) + + mv ffado/* "$pkgdir" + + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING +} + +package_pipewire-full-jack-client-git() { + pkgdesc+=" - PipeWire as JACK client" + depends=( + glibc + libdbus-1.so + libjack.so + libpipewire-$_so_ver.so + pipewire-full-git + pipewire-full-audio-git + ) + provides=(pipewire-jack-client) + conflicts=(pipewire-jack-client) + + mv jack-client/* "${pkgdir}" + + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING } package_pipewire-full-jack-git() { - pkgdesc+=" - JACK support" - depends=(pipewire-full-git libpipewire-$_ver.so bash) - provides=(pipewire-jack) - conflicts=(pipewire-jack) - backup=(etc/pipewire/jack.conf) + pkgdesc+=" - JACK replacement" + license+=(LGPL-2.1-or-later GPL-2.0-only) # libjackserver + depends=( + glibc + libpipewire-$_so_ver.so + pipewire-full-git + pipewire-full-audio-git + pipewire-session-manager + sh + ) + optdepends=('jack-example-tools: for official JACK example-clients and tools') + conflicts=(jack jack2 pipewire-jack) + provides=(jack libjack.so libjackserver.so libjacknet.so pipewire-jack) + 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-full-pulse-git() { pkgdesc+=" - PulseAudio replacement" - depends=(pipewire-full-git libpulse) - provides=(pipewire-pulse pulseaudio pulseaudio-bluetooth) - conflicts=(pipewire-pulse pulseaudio pulseaudio-bluetooth) + depends=( + dbus + gcc-libs + glibc + libavahi-{client,common}.so + libglib-2.0.so + libpipewire-$_so_ver.so + libpulse.so + pipewire-full-git + pipewire-full-audio-git + pipewire-session-manager + systemd-libs + ) + provides=( + pulse-native-provider + pulseaudio + pulseaudio-bluetooth + pipewire-pulse + ) + conflicts=( + pulseaudio + pulseaudio-bluetooth + pipewire-pulse + ) install=pipewire-pulse.install + 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-full-roc-git() { + pkgdesc+=" - ROC streaming support" + provides=(pipewire-roc) + conflicts=(pipewire-roc) + depends=( + glibc + libpipewire-$_so_ver.so + libroc.so + pipewire-full-git + pipewire-full-audio-git + roc-toolkit + ) + + mv roc/* "$pkgdir" + + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING } package_gst-plugin-pipewire-full-git() { pkgdesc="Multimedia graph framework - pipewire plugin" - depends=(pipewire-full-git libpipewire-$_ver.so gst-plugins-base-libs) provides=(gst-plugin-pipewire) conflicts=(gst-plugin-pipewire) + depends=( + glib2 + glibc + gst-plugins-base-libs + gstreamer + libpipewire-$_so_ver.so + pipewire-full-git + pipewire-session-manager + ) + mv gst/* "$pkgdir" + + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING } -package_pipewire-full-jack-client-git() { - pkgdesc="JACK client SPA plugin" - depends=(pipewire-full-git libjack.so) - provides=(pipewire-jack-client) - conflicts=(pipewire-jack-client) - mv jack-client/* "${pkgdir}" +package_pipewire-full-zeroconf-git() { + pkgdesc+=" - Zeroconf support" + provides=(pipewire-zeroconf) + conflicts=(pipewire-zeroconf) + depends=( + gcc-libs + glibc + libavahi-{client,common}.so + libpipewire-$_so_ver.so + openssl + opus + pipewire-full-git + pipewire-full-audio-git + ) + + mv zeroconf/* "$pkgdir" + + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING +} + +package_pipewire-full-v4l2-git() { + pkgdesc+=" - V4L2 interceptor" + provides=(pipewire-v4l2) + conflicts=(pipewire-v4l2) + depends=( + glibc + libpipewire-$_so_ver.so + pipewire-full-git + pipewire-session-manager + sh + ) + + mv v4l2/* "$pkgdir" + + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING +} + +package_pipewire-full-x11-bell-git() { + pkgdesc+=" - X11 bell" + depends=( + glibc + libcanberra.so + libpipewire-$_so_ver.so + libx11 + libxfixes + pipewire-full-git + pipewire-full-audio-git + ) + provides=(pipewire-x11-bell) + conflicts=(pipewire-x11-bell) + + mv x11-bell/* "$pkgdir" + + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING } package_pipewire-full-vulkan-git() { pkgdesc="Vulkan SPA plugin" - depends=(pipewire-full-git vulkan-icd-loader) + depends=(vulkan-icd-loader) provides=(pipewire-vulkan) conflicts=(pipewire-vulkan) + mv vulkan/* "${pkgdir}" + + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING } package_pipewire-full-ffmpeg-git() { pkgdesc="FFmpeg SPA plugin" - depends=(pipewire-full-git libavcodec.so libavformat.so) + depends=(libavcodec.so) provides=(pipewire-ffmpeg) conflicts=(pipewire-ffmpeg) + mv ffmpeg/* "${pkgdir}" + + install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING } + +# vim:set sw=2 sts=-1 et: diff --git a/pipewire.install b/pipewire.install index 10d28ad19d15..416e5ed97a1d 100644 --- a/pipewire.install +++ b/pipewire.install @@ -1,20 +1,14 @@ post_install() { # Enable socket by default systemctl --global enable pipewire.socket - systemctl --global enable pipewire-media-session.service } post_upgrade() { if (( $(vercmp $2 0.1.6-2) < 0)); then systemctl --global enable pipewire.socket fi - - if (( $(vercmp $2 0.3.22.r46.ge340a44a-2) < 0)); then - systemctl --global enable pipewire-media-session.service - fi } pre_remove() { systemctl --global disable pipewire.socket - systemctl --global disable pipewire-media-session.service } |