aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Popov <arrowd@FreeBSD.org>2021-11-20 16:47:48 +0000
committerGleb Popov <arrowd@FreeBSD.org>2021-11-20 16:49:30 +0000
commit8691df3a5142ab9381d6f1c9af2377dd4696e084 (patch)
treeb9deaabf1d03f520ee075468ae3529ba91f4db66
parente96d989c1370e9e7ecbbdf802fa484a4ee08641d (diff)
downloadports-8691df3a5142ab9381d6f1c9af2377dd4696e084.tar.gz
ports-8691df3a5142ab9381d6f1c9af2377dd4696e084.zip
multimedia/pipewire: Add a patch to fix ambguous function name issue.
PR: 259621
-rw-r--r--multimedia/pipewire/Makefile1
-rw-r--r--multimedia/pipewire/files/patch-src_pipewire_pipewire_init67
2 files changed, 68 insertions, 0 deletions
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);