git: 1232b7bcfbb2 - main - audio/baresip: Add new modules and improve option consistency

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Sun, 19 Oct 2025 20:46:29 UTC
The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1232b7bcfbb2af1fa26d229c6c67153365abb09e

commit 1232b7bcfbb2af1fa26d229c6c67153365abb09e
Author:     Marek Zarychta <zarychtam@plan-b.pwste.edu.pl>
AuthorDate: 2025-10-19 20:45:14 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-10-19 20:45:14 +0000

    audio/baresip: Add new modules and improve option consistency
    
    - Add modules for:
      * Codec2 - low-bitrate speech codec;
      * evdev input support;
      * PipeWire and sndio sound backends;
      * in_band_dtmf and augain audio filters;
      * WebRTC Acoustic Echo Cancellation.
    - Unbreak D-Bus module.
    - Build opus_multistream along with opus module.
    - Standardize option names and remove redundant descriptions of common
      options for better sanitization.
    
    PR:     290367
---
 audio/baresip/Makefile                             | 97 ++++++++++++----------
 .../files/patch-modules_sndio_CMakeLists.txt       | 10 +++
 audio/baresip/pkg-plist                            | 15 +++-
 3 files changed, 72 insertions(+), 50 deletions(-)

diff --git a/audio/baresip/Makefile b/audio/baresip/Makefile
index ef9b896de476..bf13347ee040 100644
--- a/audio/baresip/Makefile
+++ b/audio/baresip/Makefile
@@ -1,6 +1,7 @@
 PORTNAME=	baresip
 DISTVERSIONPREFIX=	v
 DISTVERSION=	4.2.0
+PORTREVISION=	1
 CATEGORIES=	audio
 
 MAINTAINER=	zarychtam@plan-b.pwste.edu.pl
@@ -17,52 +18,46 @@ default_CONFLICTS_INSTALL=	barsip-nox11
 nox11_PKGNAMESUFFIX=		-nox11
 nox11_CONFLICTS_INSTALL=	baresip
 
-USES=		cmake pkgconfig ssl
+USES=		cmake localbase:ldflags pkgconfig ssl
 USE_GITHUB=	yes
 GH_ACCOUNT=	baresip
 PORTDOCS=	CONTRIBUTING.md ChangeLog THANKS
 
-OPTIONS_DEFINE=		ALSA AV1 AVCODEC AVFILTER AVFORMAT CTRL_DBUS DOCS \
-			EXAMPLES G711 G722 G726 GST GTK3 JACK MQTT OPUS OPUS_MS \
-			PLC PORTAUDIO PULSEAUDIO SDL SNAPSHOT SNDFILE SWSCALE \
-			V4L2 VPX X11
-OPTIONS_DEFAULT=	ALSA AV1 AVCODEC AVFILTER AVFORMAT CTRL_DBUS G711 G722 \
-			G726 GST GTK3 OPUS PLC PORTAUDIO SDL SNAPSHOT SNDFILE \
-			SWSCALE V4L2 VPX X11
+OPTIONS_DEFINE=		ALSA AV1 AVCODEC AVFILTER AVFORMAT CODEC2 DBUS DOCS \
+			EVDEV EXAMPLES G711 G722 G726 GSTREAMER GTK3 JACK MQTT \
+			OPUS PIPEWIRE PLC PORTAUDIO PULSEAUDIO SDL SNAPSHOT \
+			SNDFILE SNDIO SWSCALE V4L VPX WEBRTC_AEC X11
+OPTIONS_DEFAULT=	ALSA AV1 AVCODEC AVFILTER AVFORMAT CODEC2 DBUS EVDEV \
+			G711 G722 G726 GSTREAMER GTK3 OPUS PLC PORTAUDIO SDL \
+			SNAPSHOT SNDFILE SWSCALE V4L VPX WEBRTC_AEC X11
 .if ${FLAVOR:U} == nox11
 COMMENT+=		(without X11 and video calls)
-OPTIONS_EXCLUDE=	AV1 AVCODEC AVFILTER AVFORMAT CTRL_DBUS GST GTK3 SDL \
-			SNAPSHOT SWSCALE V4L2 VPX X11
+OPTIONS_EXCLUDE=	AV1 AVCODEC AVFILTER AVFORMAT CODEC2 DBUS EVDEV \
+			GSTREAMER GTK3 SDL SNAPSHOT SWSCALE V4L VPX WEBRTC_AEC \
+			X11
 .endif
 OPTIONS_SUB=		yes
 
-ALSA_DESC=	ALSA audio driver
-AV1_DESC=	AV1 Video Codec
-AVCODEC_DESC=	Video codecs using libavcodec
-AVFILTER_DESC=	Video filter using libavfilter
-AVFORMAT_DESC=	libavformat media-source
-CTRL_DBUS_DESC=	[broken] DBUS interface for baresip
-G711_DESC=	G.711 audio codec
-G722_DESC=	G.722 audio codec
-G726_DESC=	G.726 audio codec
-GST_DESC=	Gstreamer audio module
-JACK_DESC=	JACK audio module
-MQTT_DESC=	Message Queue Telemetry Transport (MQTT) client
-OPUS_MS_DESC=	Opus Multistream audio codec
-PLC_DESC=	Packet Loss Concealment
-SDL_DESC=	libSDL2 video output
-SNAPSHOT_DESC=	Snapshot video module
-SNDFILE_DESC=	sndfile wav dumper
-SWSCALE_DESC=	Video filter for scaling and pixel conversion
-V4L2_DESC=	Video4Linux2 module
-VPX_DESC=	VP8/VP9 video codecs
-X11_DESC=	X11 video output
+AV1_DESC=		AV1 Video Codec
+AVCODEC_DESC=		Video codecs using libavcodec
+AVFILTER_DESC=		Video filter using libavfilter
+AVFORMAT_DESC=		libavformat media-source
+CODEC2_DESC=		Codec2 low-bitrate speech codec
+EVDEV_DESC=		evdev input support
+G711_DESC=		G.711 audio codec
+G722_DESC=		G.722 audio codec
+G726_DESC=		G.726 audio codec
+MQTT_DESC=		Message Queue Telemetry Transport (MQTT) client
+PLC_DESC=		Packet Loss Concealment
+SNAPSHOT_DESC=		Snapshot video module
+SWSCALE_DESC=		Video filter for scaling and pixel conversion
+WEBRTC_AEC_DESC=	WebRTC Acoustic Echo Cancellation
 
-_MODULES_LIST=	account aubridge auconv aufile auresamp ausine cons contact \
-		ctrl_tcp debug_cmd dtls_srtp echo fakevideo httpd httpreq ice \
-		l16 menu mixausrc mixminus mwi natpmp netroam pcp presence \
-		rtcpsummary selfview serreg srtp stdio stun syslog turn uuid \
-		vidbridge vidinfo vumeter
+_MODULES_LIST=	account aubridge auconv aufile augain auresamp ausine cons \
+		contact ctrl_tcp debug_cmd dtls_srtp echo fakevideo httpd \
+		httpreq ice in_band_dtmf l16 menu mixausrc mixminus mwi natpmp \
+		netroam pcp presence rtcpsummary selfview serreg srtp stdio \
+		stun syslog turn uuid vidbridge vidinfo vumeter
 
 ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
 ALSA_VARS=		_MODULES_LIST+=alsa
@@ -75,14 +70,21 @@ AVFILTER_LIB_DEPENDS=	libavfilter.so:multimedia/ffmpeg
 AVFILTER_VARS=		_MODULES_LIST+=avfilter
 AVFORMAT_LIB_DEPENDS=	libavformat.so:multimedia/ffmpeg
 AVFORMAT_VARS=		_MODULES_LIST+=avformat
+CODEC2_LIB_DEPENDS=	libcodec2.so:audio/codec2
+CODEC2_VARS=		_MODULES_LIST+=codec2
+DBUS_USES=		gnome
+DBUS_VARS=		_MODULES_LIST+=ctrl_dbus \
+			USE_GNOME+=glib20
+EVDEV_BUILD_DEPENDS=	evdev-proto>0:devel/evdev-proto
+EVDEV_VARS=		_MODULES_LIST+=evdev
 G711_LIB_DEPENDS=	libspandsp.so:comms/spandsp
 G711_VARS=		_MODULES_LIST+=g711
 G722_LIB_DEPENDS=	libspandsp.so:comms/spandsp
 G722_VARS=		_MODULES_LIST+=g722
 G726_LIB_DEPENDS=	libspandsp.so:comms/spandsp
 G726_VARS=		_MODULES_LIST+=g726
-GST_USES=		gnome gstreamer:1
-GST_VARS=		_MODULES_LIST+=gst \
+GSTREAMER_USES=		gnome gstreamer:1
+GSTREAMER_VARS=		_MODULES_LIST+=gst \
 			USE_GNOME+=glib20
 GTK3_USES=		gnome
 GTK3_VARS=		_MODULES_LIST+=gtk \
@@ -92,9 +94,9 @@ JACK_VARS=		_MODULES_LIST+=jack
 MQTT_LIB_DEPENDS=	libmosquitto.so:net/mosquitto
 MQTT_VARS=		_MODULES_LIST+=mqtt
 OPUS_LIB_DEPENDS=	libopus.so:audio/opus
-OPUS_VARS=		_MODULES_LIST+=opus
-OPUS_MS_LIB_DEPENDS=	libopus.so:audio/opus
-OPUS_MS_VARS=		_MODULES_LIST+=opus_multistream
+OPUS_VARS=		_MODULES_LIST+="opus opus_multistream"
+PIPEWIRE_LIB_DEPENDS=	libpipewire-0.3.so:multimedia/pipewire
+PIPEWIRE_VARS=		_MODULES_LIST+=pipewire
 PLC_LIB_DEPENDS=	libspandsp.so:comms/spandsp
 PLC_VARS=		_MODULES_LIST+=plc
 PORTAUDIO_LIB_DEPENDS=	libportaudio.so:audio/portaudio
@@ -109,13 +111,17 @@ SNAPSHOT_LIB_DEPENDS=	libpng16.so:graphics/png
 SNAPSHOT_VARS=		_MODULES_LIST+=snapshot
 SNDFILE_LIB_DEPENDS=	libsndfile.so:audio/libsndfile
 SNDFILE_VARS=		_MODULES_LIST+=sndfile
+SNDIO_LIB_DEPENDS=	libsndio.so:audio/sndio
+SNDIO_VARS=		_MODULES_LIST+=sndio
 SWSCALE_LIB_DEPENDS=	libswscale.so:multimedia/ffmpeg
 SWSCALE_VARS=		_MODULES_LIST+=swscale
-V4L2_BUILD_DEPENDS=	v4l_compat>0:multimedia/v4l_compat
-V4L2_LIB_DEPENDS=	libv4l1.so:multimedia/libv4l
-V4L2_VARS=		_MODULES_LIST+=v4l2
+V4L_BUILD_DEPENDS=	v4l_compat>0:multimedia/v4l_compat
+V4L_LIB_DEPENDS=	libv4l1.so:multimedia/libv4l
+V4L_VARS=		_MODULES_LIST+=v4l2
 VPX_LIB_DEPENDS=	libvpx.so:multimedia/libvpx
 VPX_VARS=		_MODULES_LIST+="vp8 vp9"
+WEBRTC_AEC_LIB_DEPENDS=	libwebrtc-audio-processing-1.so:audio/webrtc-audio-processing
+WEBRTC_AEC_VARS=	_MODULES_LIST+=webrtc_aec
 X11_USES=		xorg
 X11_VARS=		_MODULES_LIST+=x11 \
 			USE_XORG="x11 ice sm xext"
@@ -123,8 +129,7 @@ X11_VARS=		_MODULES_LIST+=x11 \
 .include <bsd.port.options.mk>
 
 CMAKE_ARGS+=	-DMODULES="$(_MODULES_LIST:ts;)" \
-		-DRE_INCLUDE_DIR:STRING="${LOCALBASE}/include/re" \
-		-DREM_INCLUDE_DIR:STRING="${LOCALBASE}/include/rem"
+		-DWEBRTC_AEC_INCLUDE_DIRS:STRING="${LOCALBASE}/include/webrtc-audio-processing-1"
 
 post-patch:
 	${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' \
diff --git a/audio/baresip/files/patch-modules_sndio_CMakeLists.txt b/audio/baresip/files/patch-modules_sndio_CMakeLists.txt
new file mode 100644
index 000000000000..bdb88a88422e
--- /dev/null
+++ b/audio/baresip/files/patch-modules_sndio_CMakeLists.txt
@@ -0,0 +1,10 @@
+--- modules/sndio/CMakeLists.txt.orig	2025-10-14 10:55:26 UTC
++++ modules/sndio/CMakeLists.txt
+@@ -1,6 +1,6 @@ project(sndio)
+ project(sndio)
+ 
+-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
++if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD|FreeBSD")
+   return()
+ endif()
+ 
diff --git a/audio/baresip/pkg-plist b/audio/baresip/pkg-plist
index 23c8bc72fd46..26b768540a56 100644
--- a/audio/baresip/pkg-plist
+++ b/audio/baresip/pkg-plist
@@ -5,28 +5,32 @@ lib/baresip/modules/account.so
 lib/baresip/modules/aubridge.so
 lib/baresip/modules/auconv.so
 lib/baresip/modules/aufile.so
+lib/baresip/modules/augain.so
 lib/baresip/modules/auresamp.so
 lib/baresip/modules/ausine.so
 %%AV1%%lib/baresip/modules/av1.so
 %%AVCODEC%%lib/baresip/modules/avcodec.so
 %%AVFILTER%%lib/baresip/modules/avfilter.so
 %%AVFORMAT%%lib/baresip/modules/avformat.so
+%%CODEC2%%lib/baresip/modules/codec2.so
 lib/baresip/modules/cons.so
 lib/baresip/modules/contact.so
-@comment %%CTRL_DBUS%%lib/baresip/modules/ctrl_dbus.so
+%%DBUS%%lib/baresip/modules/ctrl_dbus.so
 lib/baresip/modules/ctrl_tcp.so
 lib/baresip/modules/debug_cmd.so
 lib/baresip/modules/dtls_srtp.so
 lib/baresip/modules/echo.so
+%%EVDEV%%lib/baresip/modules/evdev.so
 lib/baresip/modules/fakevideo.so
 %%G711%%lib/baresip/modules/g711.so
 %%G722%%lib/baresip/modules/g722.so
 %%G726%%lib/baresip/modules/g726.so
-%%GST%%lib/baresip/modules/gst.so
+%%GSTREAMER%%lib/baresip/modules/gst.so
 %%GTK3%%lib/baresip/modules/gtk.so
 lib/baresip/modules/httpd.so
 lib/baresip/modules/httpreq.so
 lib/baresip/modules/ice.so
+lib/baresip/modules/in_band_dtmf.so
 %%JACK%%lib/baresip/modules/jack.so
 lib/baresip/modules/l16.so
 lib/baresip/modules/menu.so
@@ -37,7 +41,8 @@ lib/baresip/modules/mwi.so
 lib/baresip/modules/natpmp.so
 lib/baresip/modules/netroam.so
 %%OPUS%%lib/baresip/modules/opus.so
-%%OPUS_MS%%lib/baresip/modules/opus_multistream.so
+%%OPUS%%lib/baresip/modules/opus_multistream.so
+%%PIPEWIRE%%lib/baresip/modules/pipewire.so
 lib/baresip/modules/pcp.so
 %%PLC%%lib/baresip/modules/plc.so
 %%PORTAUDIO%%lib/baresip/modules/portaudio.so
@@ -49,6 +54,7 @@ lib/baresip/modules/selfview.so
 lib/baresip/modules/serreg.so
 %%SNAPSHOT%%lib/baresip/modules/snapshot.so
 %%SNDFILE%%lib/baresip/modules/sndfile.so
+%%SNDIO%%lib/baresip/modules/sndio.so
 lib/baresip/modules/srtp.so
 lib/baresip/modules/stdio.so
 lib/baresip/modules/stun.so
@@ -56,12 +62,13 @@ lib/baresip/modules/stun.so
 lib/baresip/modules/syslog.so
 lib/baresip/modules/turn.so
 lib/baresip/modules/uuid.so
-%%V4L2%%lib/baresip/modules/v4l2.so
+%%V4L%%lib/baresip/modules/v4l2.so
 lib/baresip/modules/vidbridge.so
 lib/baresip/modules/vidinfo.so
 %%VPX%%lib/baresip/modules/vp8.so
 %%VPX%%lib/baresip/modules/vp9.so
 lib/baresip/modules/vumeter.so
+%%WEBRTC_AEC%%lib/baresip/modules/webrtc_aec.so
 %%X11%%lib/baresip/modules/x11.so
 lib/libbaresip.so
 lib/libbaresip.so.22