aboutsummaryrefslogtreecommitdiffstats
path: root/community/pipewire/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/pipewire/APKBUILD')
-rw-r--r--community/pipewire/APKBUILD141
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
"