+++ /dev/null
-From 5068aa54bde4e40d6faa8de43d93216bc3001a3e Mon Sep 17 00:00:00 2001
-From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-Date: Fri, 21 May 2021 07:47:46 +0200
-Subject: [PATCH] fix linking with -latomic
-
-Linking with -latomic has been added to pipewire-jack since
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/b8c58c74d835ee2918f9e391abd65f9e0132bdb4
-
-However, this is not the right place to add this dependency, atomic_dep
-should be added to pipewire_dep to avoid the following build failure:
-
-/home/giuliobenetti/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/9.3.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: src/pipewire/libpipewire-0.3.so.0.326.0.p/filter.c.o: in function `impl_node_process':
-filter.c:(.text+0xf28): undefined reference to `__atomic_fetch_add_4'
-
-Indeed, atomic operation such as __atomic_fetch_add is used in libcamera
-as well as in ./spa/plugins/libcamera/libcamera_wrapper.cpp,
-./spa/include/spa/utils/ringbuffer.h and ./spa/include/spa/graph/graph.h
-
-Fixes:
- - http://autobuild.buildroot.org/results/b5305e8e7dd1a5e8bfaba72b06251056ba7d1af1
-
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-[Upstream status:
-https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/689]
----
- meson.build | 11 +++++------
- pipewire-jack/src/meson.build | 4 ++--
- src/pipewire/meson.build | 4 ++--
- 3 files changed, 9 insertions(+), 10 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index b6b4553b..1308373a 100644
---- a/meson.build
-+++ b/meson.build
-@@ -157,7 +157,7 @@ test_8_byte_atomic = '''
- int main(void)
- {
- int64_t eight;
-- __atomic_store_n(&eight, 123, __ATOMIC_SEQ_CST);
-+ __atomic_fetch_add(&eight, 123, __ATOMIC_SEQ_CST);
- return 0;
- }
- '''
-@@ -166,16 +166,15 @@ int main(void)
- # operations on any reasonable architecture.
- if cc.links(
- test_8_byte_atomic,
-- name : '8-byte __atomic_store_n without libatomic')
-+ name : '8-byte __atomic_fetch_add without libatomic')
- atomic_dep = dependency('', required: false)
- elif cc.links(
- test_8_byte_atomic,
- dependencies : libatomic,
-- name : '8-byte __atomic_store_n with libatomic')
-+ name : '8-byte __atomic_fetch_add with libatomic')
- atomic_dep = libatomic
--elif get_option('pipewire-jack').enabled()
-- # Currently only required for the JACK backend
-- error('8-byte atomic operations are required for pipewire-jack')
-+else
-+ error('8-byte atomic operations are required')
- endif
-
- cdata = configuration_data()
-diff --git a/pipewire-jack/src/meson.build b/pipewire-jack/src/meson.build
-index 83e340ba..386abc7f 100644
---- a/pipewire-jack/src/meson.build
-+++ b/pipewire-jack/src/meson.build
-@@ -42,7 +42,7 @@ pipewire_jack = shared_library('jack',
- version : libversion,
- c_args : pipewire_jack_c_args,
- include_directories : [configinc, jack_inc],
-- dependencies : [pipewire_dep, atomic_dep, mathlib],
-+ dependencies : [pipewire_dep, mathlib],
- install : true,
- install_dir : libjack_path,
- )
-@@ -53,7 +53,7 @@ pipewire_jackserver = shared_library('jackserver',
- version : libversion,
- c_args : pipewire_jack_c_args,
- include_directories : [configinc, jack_inc],
-- dependencies : [pipewire_dep, atomic_dep, mathlib],
-+ dependencies : [pipewire_dep, mathlib],
- install : true,
- install_dir : libjack_path,
- )
-diff --git a/src/pipewire/meson.build b/src/pipewire/meson.build
-index e80f3633..0fa6643a 100644
---- a/src/pipewire/meson.build
-+++ b/src/pipewire/meson.build
-@@ -102,12 +102,12 @@ libpipewire = shared_library(pipewire_name, pipewire_sources,
- c_args : libpipewire_c_args,
- include_directories : [pipewire_inc, configinc, spa_inc],
- install : true,
-- dependencies : [dl_lib, mathlib, pthread_lib, libintl_dep, ],
-+ dependencies : [dl_lib, mathlib, pthread_lib, libintl_dep, atomic_dep, ],
- )
-
- pipewire_dep = declare_dependency(link_with : libpipewire,
- include_directories : [pipewire_inc, configinc, spa_inc],
-- dependencies : [pthread_lib, ],
-+ dependencies : [pthread_lib, atomic_dep, ],
- )
-
- pkgconfig.generate(filebase : 'lib@0@'.format(pipewire_name),
---
-2.30.2
-
--- /dev/null
+From 9160a127b5069ee1ca3bdf11857a04f75099041d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=89rico=20Nogueira?= <erico.erc@gmail.com>
+Date: Tue, 20 Jul 2021 12:01:21 -0300
+Subject: [PATCH] modules: fix typo in module-rtkit
+
+Was using the gettid() function directly instead of the _gettid()
+wrapper.
+
+[Retrieved from:
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/9160a127b5069ee1ca3bdf11857a04f75099041d]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ src/modules/module-rtkit.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/modules/module-rtkit.c b/src/modules/module-rtkit.c
+index de30f4123..419e4be81 100644
+--- a/src/modules/module-rtkit.c
++++ b/src/modules/module-rtkit.c
+@@ -518,7 +518,7 @@ static void *custom_start(void *data)
+ struct impl *impl = this->impl;
+
+ pthread_mutex_lock(&impl->lock);
+- this->pid = gettid();
++ this->pid = _gettid();
+ pthread_cond_broadcast(&impl->cond);
+ pthread_mutex_unlock(&impl->lock);
+
+--
+GitLab
+
--- /dev/null
+From a4b8bd6d5292c13c0e14db54d4b5819a2bbf066d Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans@redhat.com>
+Date: Tue, 20 Jul 2021 17:13:26 +0200
+Subject: [PATCH] rtkit: use _gettid() instead of getpid() in fallback
+
+[Retrieved from:
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/a4b8bd6d5292c13c0e14db54d4b5819a2bbf066d]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ src/modules/module-rtkit.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/modules/module-rtkit.c b/src/modules/module-rtkit.c
+index 419e4be81..1f13aa371 100644
+--- a/src/modules/module-rtkit.c
++++ b/src/modules/module-rtkit.c
+@@ -592,7 +592,7 @@ static pid_t impl_gettid(struct impl *impl, pthread_t pt)
+ if ((thr = find_thread_by_pt(impl, pt)) != NULL)
+ pid = thr->pid;
+ else
+- pid = getpid();
++ pid = _gettid();
+ pthread_mutex_unlock(&impl->lock);
+
+ return pid;
+--
+GitLab
+
--- /dev/null
+From 4c166709d06571b889a89812c962a91ba4d0a071 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=89rico=20Nogueira?= <erico.erc@gmail.com>
+Date: Tue, 20 Jul 2021 12:10:40 -0300
+Subject: [PATCH] modules: improve _gettid wrapper
+
+- use meson to check for gettid() function, always use if available
+- use syscall fallback on linux, if not
+- restrict thr_self() fallback to *only* FreeBSD
+- error out if there isn't any gettid impl
+
+[Retrieved from:
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/4c166709d06571b889a89812c962a91ba4d0a071]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ meson.build | 3 +++
+ src/modules/module-rtkit.c | 8 ++++++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 838fb66be..977ce9ba1 100644
+--- a/meson.build
++++ b/meson.build
+@@ -254,6 +254,9 @@ endif
+ if cc.has_function('getpagesize', prefix : '#include<unistd.h>')
+ cdata.set('HAVE_GETPAGESIZE', 1)
+ endif
++if cc.has_function('gettid', prefix : '#include<unistd.h>', args: [ '-D_GNU_SOURCE' ])
++ cdata.set('HAVE_GETTID', 1)
++endif
+ if cc.has_function('clock_gettime', prefix : '#include <time.h>')
+ cdata.set('HAVE_CLOCK_GETTIME', 1)
+ endif
+diff --git a/src/modules/module-rtkit.c b/src/modules/module-rtkit.c
+index 1f13aa371..7d55fb758 100644
+--- a/src/modules/module-rtkit.c
++++ b/src/modules/module-rtkit.c
+@@ -182,12 +182,16 @@ void pw_rtkit_bus_free(struct pw_rtkit_bus *system_bus)
+
+ static pid_t _gettid(void)
+ {
+-#ifndef __FreeBSD__
++#if defined(HAVE_GETTID)
+ return (pid_t) gettid();
+-#else
++#elif defined(__linux__)
++ return syscall(SYS_gettid);
++#elif defined(__FreeBSD__)
+ long pid;
+ thr_self(&pid);
+ return (pid_t)pid;
++#else
++#error "No gettid impl"
+ #endif
+ }
+
+--
+GitLab
+
# Locally calculated
-sha256 657db1b9a29ae17a9f1d9782a45bda2ba5a893fef55e1ca26453e8f7f2d4e64e pipewire-0.3.27.tar.gz
+sha256 8b2af6138529fd9214dd148f2a6304f13c16e0b0d3a4a98c1afa87b7e65c574f pipewire-0.3.32.tar.gz
sha256 8909c319a7e27dbb33a15b9035f89ab3b7b2f6a12f8bcddc755206a8db1ada44 COPYING
-sha256 7db6138b0385e260ae8f09f050ea66c4e4fe775a11060d7f6ca2beb47f192d6f LICENSE
+sha256 be4be5d77424833edf31f53fc1f1cecb6996b9e2d747d9e6fb8f878362ebc92b LICENSE
#
################################################################################
-PIPEWIRE_VERSION = 0.3.27
+PIPEWIRE_VERSION = 0.3.32
PIPEWIRE_SITE = $(call github,PipeWire,pipewire,$(PIPEWIRE_VERSION))
-PIPEWIRE_LICENSE = MIT
+PIPEWIRE_LICENSE = MIT, LGPL-2.1+ (libspa-alsa), GPL-2.0 (libjackserver)
PIPEWIRE_LICENSE_FILES = COPYING LICENSE
PIPEWIRE_INSTALL_STAGING = YES
PIPEWIRE_DEPENDENCIES = host-pkgconf dbus $(TARGET_NLS_DEPENDENCIES)
PIPEWIRE_CONF_OPTS += -Dalsa=disabled -Dpipewire-alsa=disabled
endif
+ifeq ($(BR2_PACKAGE_AVAHI),y)
+PIPEWIRE_CONF_OPTS += -Davahi=enabled
+PIPEWIRE_DEPENDENCIES += avahi
+else
+PIPEWIRE_CONF_OPTS += -Davahi=disabled
+endif
+
ifeq ($(BR2_PACKAGE_JACK2),y)
PIPEWIRE_CONF_OPTS += -Dpipewire-jack=enabled -Djack=enabled
PIPEWIRE_DEPENDENCIES += jack2
PIPEWIRE_CONF_OPTS += -Dlibcamera=disabled
endif
+ifeq ($(BR2_PACKAGE_LIBUSB),y)
+PIPEWIRE_CONF_OPTS += -Dlibusb=enabled
+PIPEWIRE_DEPENDENCIES += libusb
+else
+PIPEWIRE_CONF_OPTS += -Dlibusb=disabled
+endif
+
ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),y)
PIPEWIRE_CONF_OPTS += -Dvulkan=enabled
PIPEWIRE_DEPENDENCIES += mesa3d
PIPEWIRE_CONF_OPTS += -Dpw-cat=disabled -Dsndfile=disabled
endif
+ifeq ($(BR2_PACKAGE_PULSEAUDIO),y)
+PIPEWIRE_CONF_OPTS += -Dlibpulse=enabled
+PIPEWIRE_DEPENDENCIES += pulseaudio
+else
+PIPEWIRE_CONF_OPTS += -Dlibpulse=disabled
+endif
+
ifeq ($(BR2_PACKAGE_SDL2),y)
PIPEWIRE_DEPENDENCIES += sdl2
PIPEWIRE_CONF_OPTS += -Dsdl2=enabled
PIPEWIRE_CONF_OPTS += -Dsdl2=disabled
endif
+ifeq ($(WEBRTC_AUDIO_PROCESSING),y)
+PIPEWIRE_CONF_OPTS += -Decho-cancel-webrtc=enabled
+PIPEWIRE_DEPENDENCIES += webrtc-audio-processing
+else
+PIPEWIRE_CONF_OPTS += -Decho-cancel-webrtc=disabled
+endif
+
$(eval $(meson-package))