diff options
Diffstat (limited to 'community/pipewire/APKBUILD')
-rw-r--r-- | community/pipewire/APKBUILD | 141 |
1 files changed, 93 insertions, 48 deletions
diff --git a/community/pipewire/APKBUILD b/community/pipewire/APKBUILD index 0371500cf54..b80fca3d918 100644 --- a/community/pipewire/APKBUILD +++ b/community/pipewire/APKBUILD @@ -1,15 +1,14 @@ # Contributor: Rasmus Thomsen <oss@cogitri.dev> -# Maintainer: Bart Ribbers <bribbers@disroot.org> +# Maintainer: team/alpine-desktop <bribbers@disroot.org> pkgname=pipewire -pkgver=0.3.38 -pkgrel=3 +pkgver=1.0.5 +pkgrel=0 +_so_ver=0.3 pkgdesc="Multimedia processing graphs" url="https://pipewire.org/" -arch="all !s390x !mips64" # unit tests fail on big-endian +arch="all" license="LGPL-2.1-or-later" -# The launch script /usr/libexec/pipewire-launcher uses an argument that is unsupported by Busybox's pkill -# So we use pkill provided by procps instead -depends="procps" +pkggroups="pipewire" makedepends=" alsa-lib-dev avahi-dev @@ -24,26 +23,31 @@ makedepends=" gst-plugins-base-dev gstreamer-dev jack-dev + libcamera-dev libfreeaptx-dev - libldac-dev + liblc3-dev libusb-dev libx11-dev + lilv-dev meson ncurses-dev pulseaudio-dev py3-docutils + readline-dev + roc-toolkit-dev sbc-dev vulkan-loader-dev xmltoman " +# move regular -dev after -jackdev, to steal files subpackages=" - $pkgname-dev + $pkgname-dbg $pkgname-doc - $pkgname-libs $pkgname-alsa $pkgname-pulse $pkgname-jack - $pkgname-media-session:media_session + $pkgname-jack-dev:jackdev + $pkgname-dev gst-plugin-pipewire:gst_plugin $pkgname-zeroconf $pkgname-spa-bluez @@ -52,44 +56,67 @@ subpackages=" $pkgname-spa-tools:spa_tools $pkgname-lang " -install="$pkgname.post-upgrade" +install="$pkgname.post-upgrade $pkgname.post-install" source="https://gitlab.freedesktop.org/PipeWire/pipewire/-/archive/$pkgver/pipewire-$pkgver.tar.gz - 0001-cpu-fix-compilation-on-ARM.patch pipewire.desktop pipewire-launcher.sh " case "$CARCH" in - # Limited by webrtc-audio-processing-dev - x86 | x86_64 | aarch64) - makedepends="$makedepends webrtc-audio-processing-dev" + s390x) + # libldac not available for big endian + ;; + *) + makedepends="$makedepends libldac-dev" + ;; +esac + +case "$CARCH" in + ppc64le|s390x|riscv64) + # no webrtc-audio-processing + ;; + *) + makedepends="$makedepends webrtc-audio-processing-1-dev" subpackages="$subpackages $pkgname-echo-cancel:echo_cancel" - ;; + ;; esac +# put libs last to steal residual files taken by some prior extras +subpackages="$subpackages $pkgname-libs" + build() { + CFLAGS="$CFLAGS -O2" \ + CXXFLAGS="$CXXFLAGS -O2" \ + CPPFLAGS="$CPPFLAGS -O2" \ abuild-meson \ + -Db_lto=true \ + -Dlibjack-path=/usr/lib \ + -Dlibv4l2-path=/usr/lib \ -Ddocs=disabled \ -Dman=enabled \ -Dgstreamer=enabled \ -Dexamples=enabled \ -Dffmpeg=disabled \ + -Djack-devel=true \ -Dsystemd=disabled \ -Dvulkan=enabled \ -Dsdl2=disabled \ + -Dlv2=enabled \ + -Dlibcamera=enabled \ + -Droc=enabled \ + -Dbluez5-codec-lc3=enabled \ + -Dsession-managers=[] \ . output - meson compile ${JOBS:+-j ${JOBS}} -C output + meson compile -C output } check() { - meson test --no-rebuild -v -C output + meson test --no-rebuild --print-errorlogs -C output } package() { DESTDIR="$pkgdir" meson install --no-rebuild -C output - touch "$pkgdir"/usr/share/pipewire/media-session.d/with-alsa - install -Dm644 "$srcdir"/pipewire.desktop -t "$pkgdir"/etc/xdg/autostart/ install -Dm755 "$srcdir"/pipewire-launcher.sh "$pkgdir"/usr/libexec/pipewire-launcher } @@ -100,50 +127,46 @@ alsa() { amove usr/lib/alsa-lib amove usr/share/alsa/alsa.conf.d - amove usr/share/pipewire/media-session.d/with-alsa - cd "$subpkgdir" - - mkdir -p etc/alsa - cp -r usr/share/alsa/alsa.conf.d etc/alsa/ + install -d "$subpkgdir"/etc/alsa/conf.d + for i in "$subpkgdir"/usr/share/alsa/alsa.conf.d/*.conf; do + ln -s -- "${i#"$subpkgdir"}" "$subpkgdir"/etc/alsa/conf.d/ + done } pulse() { pkgdesc="Pulseaudio support for pipewire" - depends="$pkgname-media-session" - provides="pulseaudio=$pkgver-r$pkgrel pulseaudio-bluez=$pkgver-r$pkgrel pulseaudio-alsa=$pkgver-r$pkgrel" + depends=" + pipewire-session-manager + pulseaudio-utils + " + provides="pulseaudio=$pkgver-r$pkgrel pulseaudio-bluez=$pkgver-r$pkgrel" provider_priority=1 amove usr/bin/pipewire-pulse - amove usr/lib/pipewire-${pkgver%.*}/libpipewire-module-protocol-pulse.so - amove usr/lib/pipewire-${pkgver%.*}/libpipewire-module-pulse-tunnel.so - amove usr/share/pipewire/media-session.d/with-pulseaudio + amove usr/lib/pipewire-$_so_ver/libpipewire-module-protocol-pulse.so + amove usr/lib/pipewire-$_so_ver/libpipewire-module-pulse-tunnel.so + amove usr/lib/pipewire-$_so_ver/libpipewire-module-filter-chain-lv2.so amove usr/share/pipewire/pipewire-pulse.conf + amove usr/share/pipewire/pipewire-pulse.conf.avail } jack() { pkgdesc="JACK support for pipewire" - depends="" + depends="pipewire-session-manager" + provides="jack=$pkgver-r$pkgrel" + replaces="jack" - amove usr/lib/pipewire-*/jack + amove usr/lib/libjack*.so.* amove usr/bin/pw-jack amove usr/lib/spa-*/jack/libspa-jack.so - amove usr/share/pipewire/media-session.d/with-jack amove usr/share/pipewire/jack.conf } -media_session() { - pkgdesc="$pkgdesc - Session manager" - depends="" - - amove usr/bin/pipewire-media-session - amove usr/share/pipewire/media-session.d -} - gst_plugin() { pkgdesc="Multimedia graph framework - PipeWire plugin" - depends="$pkgname-media-session gst-plugins-base" + depends="pipewire-session-manager gst-plugins-base" amove usr/lib/gstreamer-1.0 } @@ -152,7 +175,7 @@ echo_cancel() { pkgdesc="WebRTC-based echo canceller module for PipeWire" depends="$pkgname=$pkgver-r$pkgrel" - amove usr/lib/pipewire-${pkgver%.*}/libpipewire-module-echo-cancel.so + amove usr/lib/pipewire-$_so_ver/libpipewire-module-echo-cancel.so } zeroconf() { @@ -161,7 +184,8 @@ zeroconf() { provides="pulseaudio-zeroconf=$pkgver-r$pkgrel" provider_priority=1 - amove usr/lib/pipewire-${pkgver%.*}/libpipewire-module-zeroconf-discover.so + amove usr/lib/pipewire-$_so_ver/libpipewire-module-zeroconf-discover.so + amove usr/lib/pipewire-$_so_ver/libpipewire-module-raop-*.so } bluez() { @@ -195,9 +219,30 @@ spa_tools() { amove usr/bin/spa-* } +jackdev() { + pkgdesc="JACK development files (from pipewire)" + provides="jack-dev=$pkgver-r$pkgrel" + + amove usr/lib/libjack*.so + amove usr/include/jack + amove usr/lib/pkgconfig/jack.pc +} + +libs() { + default_libs + + # the libraries must be paired with the client config and the plugins, + # see: + # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3296 + # https://bugs.archlinux.org/task/78813 + amove \ + usr/share/pipewire/client*.conf* \ + usr/lib/pipewire-*/ \ + usr/lib/spa-*/ +} + sha512sums=" -c3c6c822bf4e5e77fed8d6ef09059d3e43195957692ab7baddc349af3d759d892a9af0e7802d389e2a9a15e5fece4c08ec963ac42df931233eec6057bad67eb6 pipewire-0.3.38.tar.gz -b1c499b2eea6c73a00bb5b8a372a6e052b9132101ad523ea0579e0bf0f7603fe2fbb1f6005afd9c8c76f71100d232b14df2bcff487ea2076db17056f76aa3b31 0001-cpu-fix-compilation-on-ARM.patch +ed561154b2b5182c94142e03b1147a90a98e788cb5f455a5202ee8c79c1f41e19c2235b3e06ca7af68f2c76320f7c2f8c71db147c9f15f82bef50fccb8ef985f pipewire-1.0.5.tar.gz d5d8bc64e42715aa94296e3e26e740142bff7f638c7eb4fecc0301e46d55636d889bdc0c0399c1eb523271b20f7c48cc03f6ce3c072e0e8576c821ed1ea0e3dd pipewire.desktop -51a1733571a09f73f30a4e98424dfdf96b2f73036843738f9579bb3fff08019d9136ee0e434124e46b6e1066a7f7aa1cd9580aedd7ec17573031be435ae1201b pipewire-launcher.sh +e46939b8f903fe6b7421cd42d0746e669402d76afe3326401c186fefeb725e3c126a00ba9f315067d2535991134a24afd855752d757e9e52c20191b5d388f99b pipewire-launcher.sh " |