After a fresh installation of Parabola/OpenRC on x86_64,
you won't be able to install pipewire due to dependency
"libcamera-base.so=0.0.5-64" and "libcamera.so=0.0.5-64".

This patch updates nonsystemd/pipewire to the latest
stable version according to PKGBUILD from Artix [1]
[1] https://gitea.artixlinux.org/packages/pipewire/src/branch/master/PKGBUILD
From 1abe3423dab7c2ff9403454251e7c3569efc0926 Mon Sep 17 00:00:00 2001
From: SolveFinder <[email protected]>
Date: Tue, 8 Aug 2023 10:29:44 +0300
Subject: [PATCH] [UPDPKG] nonsystemd/pipewire: 1:0.3.77

---
 ...sable-LD_LIBRARY_PATH-when-libjack-i.patch | 51 +++++++++++++
 PKGBUILD                                      | 71 ++++++++++++++++---
 2 files changed, 111 insertions(+), 11 deletions(-)
 create mode 100644 0001-pipewire-jack-Disable-LD_LIBRARY_PATH-when-libjack-i.patch

diff --git a/0001-pipewire-jack-Disable-LD_LIBRARY_PATH-when-libjack-i.patch b/0001-pipewire-jack-Disable-LD_LIBRARY_PATH-when-libjack-i.patch
new file mode 100644
index 0000000..650d2a0
--- /dev/null
+++ b/0001-pipewire-jack-Disable-LD_LIBRARY_PATH-when-libjack-i.patch
@@ -0,0 +1,51 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <[email protected]>
+Date: Thu, 3 Aug 2023 20:53:49 +0200
+Subject: [PATCH] pipewire-jack: Disable LD_LIBRARY_PATH when libjack is in
+ libdir
+
+This avoids prepending /usr/lib to the LD_LIBRARY_PATH, which supersedes
+DT_RUNPATH and can cause library confusion.
+---
+ pipewire-jack/src/meson.build | 7 +++++++
+ pipewire-jack/src/pw-jack.in  | 4 ++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/pipewire-jack/src/meson.build b/pipewire-jack/src/meson.build
+index daa4bcdef1ae..def7746afe20 100644
+--- a/pipewire-jack/src/meson.build
++++ b/pipewire-jack/src/meson.build
+@@ -21,12 +21,19 @@ libjack_path = get_option('libjack-path')
+ if libjack_path == ''
+   libjack_path = modules_install_dir / 'jack'
+   libjack_path_dlopen = modules_install_dir_dlopen / 'jack'
++  libjack_path_enable = ''
++elif libjack_path == get_option('libdir') or libjack_path == pipewire_libdir
++  libjack_path = pipewire_libdir
++  libjack_path_dlopen = libjack_path
++  libjack_path_enable = '#'
+ else
+   libjack_path_dlopen = libjack_path
++  libjack_path_enable = ''
+ endif
+ 
+ tools_config = configuration_data()
+ tools_config.set('LIBJACK_PATH', libjack_path_dlopen)
++tools_config.set('LIBJACK_PATH_ENABLE', libjack_path_enable)
+ 
+ configure_file(input : 'pw-jack.in',
+                output : 'pw-jack',
+diff --git a/pipewire-jack/src/pw-jack.in b/pipewire-jack/src/pw-jack.in
+index 2f232f6253b0..e9714284878a 100755
+--- a/pipewire-jack/src/pw-jack.in
++++ b/pipewire-jack/src/pw-jack.in
+@@ -52,7 +52,7 @@ if [ -n "$PERIOD" ]; then
+ 	fi
+ 	export PIPEWIRE_QUANTUM
+ fi
+-LD_LIBRARY_PATH='@LIBJACK_PATH@'"${LD_LIBRARY_PATH+":$LD_LIBRARY_PATH"}"
+-export LD_LIBRARY_PATH
++@LIBJACK_PATH_ENABLE@LD_LIBRARY_PATH='@LIBJACK_PATH@'"${LD_LIBRARY_PATH+":$LD_LIBRARY_PATH"}"
++@LIBJACK_PATH_ENABLE@export LD_LIBRARY_PATH
+ 
+ exec "$@"
diff --git a/PKGBUILD b/PKGBUILD
index 1a18a81..191b272 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -15,6 +15,7 @@ pkgname=(
   pipewire-docs
   pipewire-audio
   pipewire-alsa
+  pipewire-ffado
   pipewire-jack
   pipewire-pulse
   pipewire-roc
@@ -23,9 +24,9 @@ pkgname=(
   pipewire-v4l2
   pipewire-x11-bell
 )
-_commit=9f7d60c1e84cc0481afc3f6ccf76e127567943a8  # tags/0.3.70
-pkgver=0.3.70
-pkgrel=2
+_commit=31cd694602cc37ada3a6d02a5a381f4e3933ecef  # tags/0.3.77
+pkgver=0.3.77
+pkgrel=3
 pkgrel+=.nonsystemd1
 epoch=1
 pkgdesc="Low-latency audio/video router and processor"
@@ -46,6 +47,7 @@ makedepends=(
   libcamera
   libcanberra
   libfdk-aac
+  libffado
   libfreeaptx
   liblc3
   libldac
@@ -65,16 +67,24 @@ makedepends=(
   rtkit
   sbc
   sdl2
-  tinycompress
   valgrind
   webrtc-audio-processing
 )
-checkdepends=(desktop-file-utils)
-source=("git+https://gitlab.freedesktop.org/pipewire/pipewire.git#commit=$_commit";
-        pipewire.desktop  pipewire-launcher)
+checkdepends=(
+  desktop-file-utils
+  openal
+)
+source=(
+  "git+https://gitlab.freedesktop.org/pipewire/pipewire.git#commit=$_commit";
+  pipewire-launcher
+  pipewire.desktop
+  0001-pipewire-jack-Disable-LD_LIBRARY_PATH-when-libjack-i.patch
+)
 b2sums=('SKIP'
+        '3a9e120f3b7d0d33cd0e231c063dd7533bd20d146550e05d7da8b2a59153498cb080a78b9fca03a661363e8d0aca461b8127dc2f180e035039ccfd0da0281dde'
         'b26aea0758d4f747bbcf44f53db59dc89a7c947aba2d49e6468ced91173a8b3ea54858d71b6c6eb7bfbe9b1a0a0653c78c76480dcd6142978f7fde15bc989a01'
-        '3a9e120f3b7d0d33cd0e231c063dd7533bd20d146550e05d7da8b2a59153498cb080a78b9fca03a661363e8d0aca461b8127dc2f180e035039ccfd0da0281dde')
+        '17de92c7209e4b927f1de7cf11aa5b7b92fbdd41cea26850ecd2159c393ee8a30a93b178681ab05b408fb2fffac111c29b5eebf41119d7ad8f5bbed7122fc3f3')
+
 
 pkgver() {
   cd pipewire
@@ -85,7 +95,7 @@ prepare() {
   cd pipewire
 
   # remove export of LD_LIBRARY_PATH for pw-jack as it would add /usr/lib
-  sed -i '/LD_LIBRARY_PATH/d' pipewire-jack/src/pw-jack.in
+  git apply -3 ../0001-pipewire-jack-Disable-LD_LIBRARY_PATH-when-libjack-i.patch
 }
 
 build() {
@@ -126,6 +136,8 @@ _ver=${pkgver:0:3}
 package_pipewire() {
   license+=(LGPL)  # libspa-alsa
   depends=(
+    gcc-libs
+    glibc
     "libpipewire=$epoch:$pkgver-$pkgrel"
     libcamera-base.so
     libcamera.so
@@ -141,6 +153,7 @@ package_pipewire() {
     'pipewire-alsa: ALSA configuration'
     'pipewire-audio: Audio support'
     'pipewire-docs: Documentation'
+    'pipewire-ffado: FireWire support'
     'pipewire-jack: JACK support'
     'pipewire-pulse: PulseAudio replacement'
     'pipewire-roc: ROC streaming'
@@ -182,9 +195,10 @@ package_pipewire() {
     _pick audio usr/lib/pipewire-$_ver/libpipewire-module-fallback-sink.so
     _pick audio usr/lib/pipewire-$_ver/libpipewire-module-filter-chain.so
     _pick audio usr/lib/pipewire-$_ver/libpipewire-module-loopback.so
+    _pick audio usr/lib/pipewire-$_ver/libpipewire-module-netjack2-*.so
     _pick audio usr/lib/pipewire-$_ver/libpipewire-module-pipe-tunnel.so
     _pick audio usr/lib/pipewire-$_ver/libpipewire-module-protocol-simple.so
-    _pick audio usr/lib/pipewire-$_ver/libpipewire-module-rtp-*.so
+    _pick audio usr/lib/pipewire-$_ver/libpipewire-module-rtp-{sap,sink,source}.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,mididump}.1
@@ -192,6 +206,8 @@ package_pipewire() {
     _pick audio usr/share/pipewire/pipewire-{aes67,avb}.conf
     _pick audio usr/share/spa-0.2/bluez5
 
+    _pick ffado usr/lib/pipewire-$_ver/libpipewire-module-ffado*.so
+
     _pick jack usr/bin/pw-jack
     _pick jack usr/include/jack
     _pick jack usr/lib/libjack*
@@ -210,6 +226,7 @@ package_pipewire() {
     _pick gst usr/lib/gstreamer-1.0
 
     _pick zeroconf usr/lib/pipewire-$_ver/libpipewire-module-{raop,zeroconf}-*.so
+    _pick zeroconf usr/lib/pipewire-$_ver/libpipewire-module-rtp-session.so
 
     _pick v4l2 usr/bin/pw-v4l2 usr/lib/pipewire-$_ver/v4l2
 
@@ -253,6 +270,10 @@ package_pipewire-audio() {
   pkgdesc+=" - Audio support"
   depends=(
     alsa-card-profiles
+    dbus
+    gcc-libs
+    glib2
+    glibc
     libasound.so
     libbluetooth.so
     libfdk-aac.so
@@ -265,7 +286,6 @@ package_pipewire-audio() {
     libpipewire-$_ver.so
     libsbc.so
     libsndfile.so
-    libtinycompress.so
     libusb-1.0.so
     libwebrtc_audio_processing.so
     pipewire
@@ -300,10 +320,26 @@ package_pipewire-alsa() {
   install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
 }
 
+package_pipewire-ffado() {
+  pkgdesc+=" - FireWire support"
+  depends=(
+    glibc
+    libffado.so
+    libpipewire-$_ver.so
+    pipewire
+    pipewire-audio
+  )
+
+  mv ffado/* "$pkgdir"
+
+  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
+}
+
 package_pipewire-jack() {
   pkgdesc+=" - JACK support"
   license+=(GPL2)  # libjackserver
   depends=(
+    glibc
     libpipewire-$_ver.so
     pipewire
     pipewire-audio
@@ -328,6 +364,9 @@ package_pipewire-jack() {
 package_pipewire-pulse() {
   pkgdesc+=" - PulseAudio replacement"
   depends=(
+    dbus
+    gcc-libs
+    glibc
     libavahi-{client,common}.so
     libglib-2.0.so
     libpipewire-$_ver.so
@@ -358,6 +397,7 @@ package_pipewire-pulse() {
 package_pipewire-roc() {
   pkgdesc+=" - ROC streaming support"
   depends=(
+    glibc
     libpipewire-$_ver.so
     libroc.so
     pipewire
@@ -373,7 +413,10 @@ package_pipewire-roc() {
 package_gst-plugin-pipewire() {
   pkgdesc="Multimedia graph framework - pipewire plugin"
   depends=(
+    glib2
+    glibc
     gst-plugins-base-libs
+    gstreamer
     libpipewire-$_ver.so
     pipewire
     pipewire-session-manager
@@ -387,10 +430,14 @@ package_gst-plugin-pipewire() {
 package_pipewire-zeroconf() {
   pkgdesc+=" - Zeroconf support"
   depends=(
+    gcc-libs
+    glibc
     libavahi-{client,common}.so
     libpipewire-$_ver.so
     openssl
+    opus
     pipewire
+    pipewire-audio
   )
 
   mv zeroconf/* "$pkgdir"
@@ -401,6 +448,7 @@ package_pipewire-zeroconf() {
 package_pipewire-v4l2() {
   pkgdesc+=" - V4L2 interceptor"
   depends=(
+    glibc
     libpipewire-$_ver.so
     pipewire
     pipewire-session-manager
@@ -415,6 +463,7 @@ package_pipewire-v4l2() {
 package_pipewire-x11-bell() {
   pkgdesc+=" - X11 bell"
   depends=(
+    glibc
     libcanberra.so
     libpipewire-$_ver.so
     libx11
-- 
2.41.0

_______________________________________________
Dev mailing list
[email protected]
https://lists.parabola.nu/mailman/listinfo/dev

Reply via email to