git: 8f270dd4b529 - main - games/retroarch: Fix build if multimedia/pipewire installed

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Mon, 15 Sep 2025 20:37:43 UTC
The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8f270dd4b52979124c89a3bacb137c69d93d2255

commit 8f270dd4b52979124c89a3bacb137c69d93d2255
Author:     Vladimir Druzenko <vvd@FreeBSD.org>
AuthorDate: 2025-09-15 20:33:55 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-09-15 20:37:19 +0000

    games/retroarch: Fix build if multimedia/pipewire installed
    
    This does not affect clean builds (as with Poudriere).
    
    PR:             289429
    Approved by:    Daniel Menelkir <dmenelkir@gmail.com> (maintainer, implicit - fix build)
    MFH:            2025Q3
---
 games/retroarch/Makefile                             |  4 +++-
 games/retroarch/files/patch-audio_drivers_pipewire.c | 20 ++++++++++++++++++++
 .../retroarch/files/patch-camera_drivers_pipewire.c  | 20 ++++++++++++++++++++
 games/retroarch/files/patch-qb_config.libs.sh        | 13 +++++++++++++
 4 files changed, 56 insertions(+), 1 deletion(-)

diff --git a/games/retroarch/Makefile b/games/retroarch/Makefile
index e4691797e633..4b817bddc1e8 100644
--- a/games/retroarch/Makefile
+++ b/games/retroarch/Makefile
@@ -40,7 +40,7 @@ DOCSDIR=	${PREFIX}/share/doc/${PORTNAME:tl}
 SUB_FILES=	pkg-message
 
 OPTIONS_DEFINE=		ALSA CACA DOCS FFMPEG FREETYPE JACK OPENAL OPENGL OSS \
-			PULSEAUDIO QT SDL UDEV V4L X11
+			PIPEWIRE PULSEAUDIO QT SDL UDEV V4L X11
 OPTIONS_DEFINE_amd64=	WAYLAND # svgalib is x86 only
 OPTIONS_DEFINE_i386=	WAYLAND
 OPTIONS_DEFAULT=	FFMPEG FREETYPE OPENAL OPENGL OSS QT SDL UDEV V4L X11
@@ -68,6 +68,8 @@ OPENGL_USES=			gl
 OPENGL_USE=			GL=egl,gbm,gl
 OPENGL_CONFIGURE_ENABLE=	opengl
 OSS_CONFIGURE_ENABLE=		oss
+PIPEWIRE_LIB_DEPENDS=		libpipewire-0.3.so:multimedia/pipewire
+PIPEWIRE_CONFIGURE_ENABLE=	pipewire
 PULSEAUDIO_LIB_DEPENDS=		libpulse.so:audio/pulseaudio
 PULSEAUDIO_CONFIGURE_ENABLE=	pulse
 QT_USES=			qt:6
diff --git a/games/retroarch/files/patch-audio_drivers_pipewire.c b/games/retroarch/files/patch-audio_drivers_pipewire.c
new file mode 100644
index 000000000000..dee89af57e77
--- /dev/null
+++ b/games/retroarch/files/patch-audio_drivers_pipewire.c
@@ -0,0 +1,20 @@
+--- audio/drivers/pipewire.c.orig	2025-05-01 00:17:50 UTC
++++ audio/drivers/pipewire.c
+@@ -157,7 +157,7 @@ static const struct pw_registry_events registry_events
+       .global = registry_event_global,
+ };
+ 
+-static void *pipewire_init(const char *device, unsigned rate,
++static void *_pipewire_init(const char *device, unsigned rate,
+       unsigned latency,
+       unsigned block_frames,
+       unsigned *new_rate)
+@@ -443,7 +443,7 @@ audio_driver_t audio_pipewire = {
+ }
+ 
+ audio_driver_t audio_pipewire = {
+-      pipewire_init,
++      _pipewire_init,
+       pipewire_write,
+       pipewire_stop,
+       pipewire_start,
diff --git a/games/retroarch/files/patch-camera_drivers_pipewire.c b/games/retroarch/files/patch-camera_drivers_pipewire.c
new file mode 100644
index 000000000000..9deea4bbdc3a
--- /dev/null
+++ b/games/retroarch/files/patch-camera_drivers_pipewire.c
@@ -0,0 +1,20 @@
+--- camera/drivers/pipewire.c.orig	2025-05-01 00:17:50 UTC
++++ camera/drivers/pipewire.c
+@@ -364,7 +364,7 @@ static void pipewire_free(void *data)
+    free(camera);
+ }
+ 
+-static void *pipewire_init(const char *device, uint64_t caps,
++static void *_pipewire_init(const char *device, uint64_t caps,
+       unsigned width, unsigned height)
+ {
+    int               res, n_params;
+@@ -457,7 +457,7 @@ camera_driver_t camera_pipewire = {
+ }
+ 
+ camera_driver_t camera_pipewire = {
+-      pipewire_init,
++      _pipewire_init,
+       pipewire_free,
+       pipewire_start,
+       pipewire_stop,
diff --git a/games/retroarch/files/patch-qb_config.libs.sh b/games/retroarch/files/patch-qb_config.libs.sh
new file mode 100644
index 000000000000..732a8e228973
--- /dev/null
+++ b/games/retroarch/files/patch-qb_config.libs.sh
@@ -0,0 +1,13 @@
+--- qb/config.libs.sh.orig	2025-05-01 00:17:50 UTC
++++ qb/config.libs.sh
+@@ -269,8 +269,10 @@ check_val '' PULSE -lpulse '' libpulse '' '' false
+ check_pkgconf ROAR libroar 1.0.12
+ check_val '' JACK -ljack '' jack 0.120.1 '' false
+ check_val '' PULSE -lpulse '' libpulse '' '' false
++if [ "$HAVE_PIPEWIRE" != 'no' ]; then
+ check_val '' PIPEWIRE -lpipewire-0.3 '' libpipewire-0.3 '' '' false
+ check_val '' PIPEWIRE_STABLE -lpipewire-0.3 '' libpipewire-0.3 1.0.0 '' false
++fi
+ check_val '' SDL -lSDL SDL sdl 1.2.10 '' false
+ check_val '' SDL2 -lSDL2 SDL2 sdl2 2.0.0 '' false
+