Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Nov 2021 16:50:28 GMT
From:      Gleb Popov <arrowd@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 8691df3a5142 - main - multimedia/pipewire: Add a patch to fix ambguous function name issue.
Message-ID:  <202111201650.1AKGoSsO038238@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by arrowd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8691df3a5142ab9381d6f1c9af2377dd4696e084

commit 8691df3a5142ab9381d6f1c9af2377dd4696e084
Author:     Gleb Popov <arrowd@FreeBSD.org>
AuthorDate: 2021-11-20 16:47:48 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2021-11-20 16:49:30 +0000

    multimedia/pipewire: Add a patch to fix ambguous function name issue.
    
    PR:             259621
---
 multimedia/pipewire/Makefile                       |  1 +
 .../files/patch-src_pipewire_pipewire_init         | 67 ++++++++++++++++++++++
 2 files changed, 68 insertions(+)

diff --git a/multimedia/pipewire/Makefile b/multimedia/pipewire/Makefile
index bcfd2e6556bf..e0b9dd101729 100644
--- a/multimedia/pipewire/Makefile
+++ b/multimedia/pipewire/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	pipewire
 DISTVERSION=	0.3.40
+PORTREVISION=	1
 CATEGORIES=	multimedia
 MASTER_SITES=	https://gitlab.freedesktop.org/pipewire/media-session/-/archive/${MEDIA_SESSION_VERSION}/:media_session
 DISTFILES=	media-session-${MEDIA_SESSION_VERSION}${EXTRACT_SUFX}:media_session
diff --git a/multimedia/pipewire/files/patch-src_pipewire_pipewire_init b/multimedia/pipewire/files/patch-src_pipewire_pipewire_init
new file mode 100644
index 000000000000..3f94963d19c0
--- /dev/null
+++ b/multimedia/pipewire/files/patch-src_pipewire_pipewire_init
@@ -0,0 +1,67 @@
+PipeWire exports a function named "pw_init". FreeBSD also has the libutil.so
+library, which exports a function with the same name. To workaround the
+conflict, rename the PipeWire init function into "pipewire_init".
+
+Upstream issue: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1819
+
+--- src/pipewire/pipewire.c.orig	2021-11-11 12:21:29 UTC
++++ src/pipewire/pipewire.c
+@@ -583,7 +583,7 @@ out:
+  *
+  */
+ SPA_EXPORT
+-void pw_init(int *argc, char **argv[])
++void pipewire_init(int *argc, char **argv[])
+ {
+ 	const char *str;
+ 	struct spa_dict_item items[6];
+@@ -672,8 +672,9 @@ done:
+ 	pthread_mutex_unlock(&init_lock);
+ }
+ 
++
+ SPA_EXPORT
+-void pw_deinit(void)
++void pipewire_deinit(void)
+ {
+ 	struct support *support = &global_support;
+ 	struct registry *registry = &support->registry;
+@@ -696,6 +697,21 @@ void pw_deinit(void)
+ 	pthread_mutex_unlock(&init_lock);
+ 
+ }
++
++#if !defined(__FreeBSD__)
++#undef pw_init
++SPA_EXPORT
++void pw_init(int *argc, char **argv[])
++{
++	pipewire_init(argc, argv);
++}
++#undef pw_deinit
++SPA_EXPORT
++void pw_deinit(void)
++{
++	pipewire_deinit();
++}
++#endif
+ 
+ /** Check if a debug category is enabled
+  *
+--- src/pipewire/pipewire.h.orig	2021-11-11 12:21:29 UTC
++++ src/pipewire/pipewire.h
+@@ -69,9 +69,12 @@ extern "C" {
+  * \{
+  */
+ void
+-pw_init(int *argc, char **argv[]);
++pipewire_init(int *argc, char **argv[]);
++void pipewire_deinit(void);
+ 
+-void pw_deinit(void);
++/* BSD has pw_init already */
++#define pw_init pipewire_init
++#define pw_deinit pipewire_deinit
+ 
+ bool
+ pw_debug_is_category_enabled(const char *name);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202111201650.1AKGoSsO038238>