From 819fec7195b941aaeb6038db86c537a4505f6ce0 Mon Sep 17 00:00:00 2001
From: Daniel Danzberger
Date: Fri, 8 Nov 2024 11:40:59 +0100
Subject: [PATCH] baresip: Bump to version 3.16.0
The previous version 1.1.0 is about 7 years old now and a lot has
changed. Various fixes, improvements and features have been added.
The build system has moved to cmake and pkg-config is used,
which makes it a lot easier to build from the openwrt buildroot.
Therefore a lot of the extra code is removed from it's Makefile.
The librem dependency has been removed, since newer versions of libre
contain all the librem features.
The parallel build patch is no longer required.
Signed-off-by: Daniel Danzberger
---
net/baresip/Makefile | 303 ++++++++----------
.../patches/010-fix-parallel-build.patch | 23 --
2 files changed, 139 insertions(+), 187 deletions(-)
delete mode 100644 net/baresip/patches/010-fix-parallel-build.patch
diff --git a/net/baresip/Makefile b/net/baresip/Makefile
index 097627a..0002883 100644
--- a/net/baresip/Makefile
+++ b/net/baresip/Makefile
@@ -5,16 +5,15 @@
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
-
include $(TOPDIR)/rules.mk
PKG_NAME:=baresip
-PKG_VERSION:=1.1.0
-PKG_RELEASE:=6
+PKG_VERSION:=3.16.0
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/baresip/baresip/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=f9230b27c4a62f31223847bc485c51f3d960f8a09f36998dedb73358e1784b4e
+PKG_HASH:=95338c4e4dd6931c94d425d69089b66d32c173e48cb992344e856ead7ba9393b
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=docs/COPYING
@@ -24,136 +23,121 @@ PKG_BUILD_DEPENDS:=glib2/host
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/baresip/Default
+ SECTION:=net
+ CATEGORY:=Network
+ SUBMENU:=Telephony
+ URL:=https://github.com/baresip/baresip
+endef
+
+define Package/baresip
+$(call Package/baresip/Default)
+ TITLE:=Portable and modular SIP User-Agent with A/V support
+ DEPENDS:=+libre
+ USERID:=$(PKG_NAME)=374:$(PKG_NAME)=374
+ MENU:=1
+ FILE_MODES:= \
+ /etc/baresip:baresip:baresip:0750 \
+ /etc/baresip/accounts:baresip:baresip:0640 \
+ /etc/baresip/config:baresip:baresip:0640 \
+ /etc/baresip/contacts:baresip:baresip:0640
+endef
+
baresip-mods:= \
aac \
alsa \
- amr \
+ aubridge \
+ auconv \
+ aufile \
+ auresamp \
+ ausine \
avcodec \
avfilter \
avformat \
cons \
- ctrl-dbus \
+ ctrl_dbus \
+ ctrl_tcp \
+ debug_cmd \
+ dtls_srtp \
+ ebuacip \
+ echo \
evdev \
+ fakevideo \
g711 \
g722 \
g726 \
gst \
- gst-video \
+ httpd \
httpreq \
+ in_band_dtmf \
l16 \
+ mixausrc \
+ mixminus \
mqtt \
+ mwi \
+ natpmp \
+ netroam \
opus \
opus_multistream \
- oss \
+ pcp \
plc \
portaudio \
+ presence \
pulse \
+ rtcpsummary \
+ selfview \
+ serreg \
snapshot \
sndfile \
- speex-pp \
srtp \
stdio \
+ swscale \
syslog \
+ uuid \
v4l2 \
+ vidbridge \
+ vidinfo \
vp8 \
- vp9
+ vp9 \
+ vumeter
-PKG_CONFIG_DEPENDS:= \
- $(patsubst %,CONFIG_PACKAGE_baresip-mod-%,$(subst _,-,$(baresip-mods)))
+empty:=
+space:= $(empty) $(empty)
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/nls.mk
+MODULES:=stun;turn;menu;ice;contact;account
+MODULES+=$(foreach m,$(baresip-mods),$(if $(CONFIG_PACKAGE_baresip-mod-$(m)),$(m)))
+MODULES:=$(strip $(MODULES))
+MODULES:=$(subst $(space),;,$(MODULES))
-define Package/baresip/Default
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=Telephony
- URL:=https://github.com/baresip/baresip
-endef
+CMAKE_OPTIONS += -DMODULES="$(MODULES)" \
+ -DGST_INCLUDE_DIRS="$(STAGING_DIR)/usr/include/gstreamer-1.0" \
+ -DGL_INCLUDE_DIRS="$(STAGING_DIR)/usr/include/glib-2.0"
-define Package/baresip
-$(call Package/baresip/Default)
- TITLE:=Portable and modular SIP User-Agent with A/V support
- DEPENDS:=+libre +librem
- USERID:=$(PKG_NAME)=374:$(PKG_NAME)=374
- MENU:=1
- FILE_MODES:= \
- /etc/baresip:baresip:baresip:0750 \
- /etc/baresip/accounts:baresip:baresip:0640 \
- /etc/baresip/config:baresip:baresip:0640 \
- /etc/baresip/contacts:baresip:baresip:0640
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr
+ $(CP) $(PKG_INSTALL_DIR)/usr/* $(1)/usr
endef
-baresip-mod-aac := USE_AAC
-baresip-mod-alsa := USE_ALSA
-baresip-mod-amr := USE_AMR
-baresip-mod-avcodec := USE_AVCODEC
-baresip-mod-avfilter := USE_AVFILTER
-baresip-mod-avformat := USE_AVFORMAT
-baresip-mod-cons := USE_CONS
-baresip-mod-ctrl-dbus := HAVE_GLIB USE_DBUS
-baresip-mod-evdev := USE_EVDEV
-baresip-mod-g711 := USE_G711
-baresip-mod-g722 := USE_G722
-baresip-mod-g726 := USE_G726
-baresip-mod-gst := USE_GST
-baresip-mod-gst-video := USE_GST_VIDEO
-baresip-mod-httpreq := USE_HTTPREQ
-baresip-mod-l16 := USE_L16
-baresip-mod-mqtt := USE_MQTT
-baresip-mod-opus := USE_OPUS
-baresip-mod-opus_multistream := USE_OPUS_MS
-baresip-mod-oss := USE_OSS
-baresip-mod-plc := USE_PLC
-baresip-mod-portaudio := USE_PORTAUDIO
-baresip-mod-pulse := USE_PULSE
-baresip-mod-snapshot := USE_SNAPSHOT
-baresip-mod-sndfile := USE_SNDFILE
-baresip-mod-speex-pp := USE_SPEEX_PP
-baresip-mod-srtp := USE_SRTP
-baresip-mod-stdio := USE_STDIO
-baresip-mod-syslog := USE_SYSLOG
-baresip-mod-vp8 := USE_VPX
-baresip-mod-vp9 := USE_VPX
-baresip-mod-v4l2 := USE_V4L2
-
-BARESIP_MOD_OPTIONS:= \
- MOD_AUTODETECT= \
- $(foreach m,$(baresip-mods),$(foreach v,$(baresip-mod-$(m)),$(v)=$(if $(CONFIG_PACKAGE_baresip-mod-$(subst _,-,$(m))),1)))
-
-MAKE_FLAGS+= \
- CROSS_COMPILE="$(TARGET_CROSS)" \
- DESTDIR="$(PKG_INSTALL_DIR)" \
- EXTRA_LFLAGS="$(TARGET_LDFLAGS)" \
- LD="$(TARGET_CC)" \
- LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \
- LIBRE_INC="$(STAGING_DIR)/usr/include/re" \
- LIBRE_SO="$(STAGING_DIR)/usr/lib" \
- LIBREM_PATH="$(STAGING_DIR)/usr" \
- OS=linux \
- RELEASE=1 \
- SYSROOT="$(shell $(FIND) $(TOOLCHAIN_DIR) -path '*/include/pthread.h' | sed -ne '1s|/include/pthread.h||p')" \
- SYSROOT_ALT="$(STAGING_DIR)/usr" \
- $(BARESIP_MOD_OPTIONS)
-
-TARGET_CFLAGS+=-D_GNU_SOURCE
-
define Package/baresip/install
- $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_DIR) $(1)/usr/bin \
+ $(1)/usr/lib/baresip/modules \
+ $(1)/usr/share/baresip \
+ $(1)/etc/baresip \
+ $(1)/etc/init.d \
+ $(1)/etc/default
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/baresip $(1)/usr/bin
- $(INSTALL_DIR) $(1)/usr/lib/baresip/modules
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libbaresip.so* $(1)/usr/lib
$(INSTALL_DATA) \
- $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/{account,auloop,contact,ice,menu,stun,turn}.so \
+ $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/{account,contact,ice,menu,stun,turn}.so \
$(1)/usr/lib/baresip/modules
- $(INSTALL_DIR) $(1)/usr/share/baresip
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/baresip/* $(1)/usr/share/baresip
- $(INSTALL_DIR) $(1)/etc/baresip
$(SED) '/^#/!s/^/#/' $(PKG_BUILD_DIR)/docs/examples/accounts
$(SED) '/^#module_path/s|^#||;s|/local||' $(PKG_BUILD_DIR)/docs/examples/config
$(INSTALL_DATA) $(PKG_BUILD_DIR)/docs/examples/{accounts,config,contacts} $(1)/etc/baresip
- $(INSTALL_DIR) $(1)/etc/default
$(INSTALL_CONF) ./files/baresip.default $(1)/etc/default/baresip
- $(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/baresip.init $(1)/etc/init.d/baresip
endef
@@ -162,92 +146,83 @@ define Package/baresip/conffiles
/etc/baresip/config
/etc/baresip/contacts
/etc/default/baresip
-/etc/init.d/baresip
endef
##################
# bareSIP modules
# 1. Name
# 2. Title
-# 3. Files
-# 4. Dependencies
+# 3. Dependencies
##################
define BuildPlugin
-
- define Package/baresip-mod-$(subst _,-,$(1))
+ define Package/baresip-mod-$(1)
$$(call Package/baresip/Default)
TITLE:=$(2)
- DEPENDS:=baresip $(patsubst +%,+PACKAGE_$(PKG_NAME)-mod-$(subst _,-,$(1)):%,$(4))
+ DEPENDS:=baresip $(patsubst +%,+PACKAGE_$(PKG_NAME)-mod-$(1):%,$(3))
endef
-
- define Package/baresip-mod-$(subst _,-,$(1))/install
- [ -z "$(3)" ] || $(INSTALL_DIR) $$(1)/usr/lib/baresip/modules
- for f in $(3); do \
- $(INSTALL_DATA) \
- $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/$$$$$$$${f}.so \
- $$(1)/usr/lib/baresip/modules; \
- done
+ define Package/baresip-mod-$(1)/install
+ $(INSTALL_DIR) $$(1)/usr/lib/baresip/modules
+ $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/$(1).so \
+ $$(1)/usr/lib/baresip/modules
endef
-
- $$(eval $$(call BuildPackage,baresip-mod-$(subst _,-,$(1))))
+ $$(eval $$(call BuildPackage,baresip-mod-$(1)))
endef
$(eval $(call BuildPackage,baresip))
-$(eval $(call BuildPlugin,aac,MPEG-4 AAC Audio Codec,aac,+fdk-aac))
-$(eval $(call BuildPlugin,alsa,ALSA audio driver,alsa,+alsa-lib))
-$(eval $(call BuildPlugin,amr,Adaptive Multi-Rate [AMR] audio codec,amr,))
-$(eval $(call BuildPlugin,aubridge,Audio bridge module,aubridge,))
-$(eval $(call BuildPlugin,aufile,Audio module for using a WAV-file as audio input,aufile,))
-$(eval $(call BuildPlugin,ausine,Sine Audio Source,ausine,))
-$(eval $(call BuildPlugin,avcodec,Video codec using FFmpeg,avcodec,+libffmpeg-full))
-$(eval $(call BuildPlugin,avformat,Video source using FFmpeg,avformat,baresip-mod-avcodec))
-$(eval $(call BuildPlugin,b2bua,Back-to-Back User-Agent module,b2bua,))
-$(eval $(call BuildPlugin,cons,UDP/TCP console UI driver,cons,))
-$(eval $(call BuildPlugin,ctrl_dbus,DBus control interface,ctrl_dbus,+glib2))
-$(eval $(call BuildPlugin,ctrl_tcp,TCP control interface,ctrl_tcp,))
-$(eval $(call BuildPlugin,debug_cmd,Debug commands,debug_cmd,))
-$(eval $(call BuildPlugin,dtls_srtp,DTLS-SRTP end-to-end encryption,dtls_srtp,))
-$(eval $(call BuildPlugin,ebuacip,EBU ACIP [Audio Contribution over IP] Profile,ebuacip,))
-$(eval $(call BuildPlugin,echo,Echo server module,echo,))
-$(eval $(call BuildPlugin,evdev,Linux input driver,evdev,))
-$(eval $(call BuildPlugin,fakevideo,Fake video input/output driver,fakevideo,))
-$(eval $(call BuildPlugin,g711,G.711 audio codec,g711,))
-$(eval $(call BuildPlugin,g722,G.722 audio codec,g722,+libspandsp))
-$(eval $(call BuildPlugin,g726,G.726 audio codec,g726,+libspandsp))
-$(eval $(call BuildPlugin,gst,Gstreamer 1.0 playbin pipeline,gst,@AUDIO_SUPPORT +glib2 +libgstreamer1))
-$(eval $(call BuildPlugin,gst_video,Video codecs using Gstreamer 1.0,gst_video,@AUDIO_SUPPORT +glib2 +libgst1app +libgstreamer1))
-$(eval $(call BuildPlugin,httpd,HTTP webserver UI-module,httpd,))
-$(eval $(call BuildPlugin,httpreq,HTTP request module,httpreq,))
-$(eval $(call BuildPlugin,l16,16-bit linear codec,l16,))
-$(eval $(call BuildPlugin,mixausrc,Mixes another audio source into audio stream,mixausrc,))
-$(eval $(call BuildPlugin,mqtt,Message Queue Telemetry Transport [MQTT] client,mqtt,+libmosquitto))
-$(eval $(call BuildPlugin,multicast,Multicast support,multicast,))
-$(eval $(call BuildPlugin,mwi,Message Waiting Indication,mwi,))
-$(eval $(call BuildPlugin,natpmp,NAT Port Mapping Protocol module,natpmp,))
-$(eval $(call BuildPlugin,opus,OPUS Interactive audio codec,opus,+libopus))
-$(eval $(call BuildPlugin,opus_multistream,Opus Multistream Audio Codec,opus_multistream,+libopus))
-$(eval $(call BuildPlugin,oss,OSS audio driver,oss,))
-$(eval $(call BuildPlugin,plc,Packet Loss Concealment,plc,+libspandsp))
-$(eval $(call BuildPlugin,portaudio,Portaudio audio driver,portaudio,+portaudio))
-$(eval $(call BuildPlugin,presence,Presence module,presence,))
-$(eval $(call BuildPlugin,pulse,Pulseaudio audio driver,pulse,PACKAGE_$(PKG_NAME)-mod-pulse:pulseaudio))
-$(eval $(call BuildPlugin,rtcpsummary,RTCP summary module,rtcpsummary,))
-$(eval $(call BuildPlugin,selfview,Video selfview module,selfview,))
-$(eval $(call BuildPlugin,serreg,Serial registration mode,serreg,))
-$(eval $(call BuildPlugin,snapshot,Snapshot video module,snapshot,+libpng))
-$(eval $(call BuildPlugin,sndfile,Audio dumper using libsndfile,sndfile,+libsndfile))
-$(eval $(call BuildPlugin,speex_pp,Speex Pre-processor,speex_pp,+libspeexdsp))
-$(eval $(call BuildPlugin,srtp,Secure RTP module using libre,srtp,))
-$(eval $(call BuildPlugin,stdio,Standard input/output UI driver,stdio,))
-$(eval $(call BuildPlugin,syslog,Syslog module,syslog,))
-$(eval $(call BuildPlugin,uuid,UUID generator and loader,uuid,))
-$(eval $(call BuildPlugin,v4l2,Video4Linux2 video source,v4l2,+libv4l))
-$(eval $(call BuildPlugin,v4l2_codec,Video4Linux2 video codec module,v4l2_codec,))
-$(eval $(call BuildPlugin,vidbridge,Video bridge module,vidbridge,))
-$(eval $(call BuildPlugin,vidinfo,Video-info filter,vidinfo,))
-$(eval $(call BuildPlugin,vidloop,Video-loop test module,vidloop,))
-$(eval $(call BuildPlugin,vumeter,Display audio levels in console,vumeter,))
-$(eval $(call BuildPlugin,vp8,VP8 video codec,vp8,+libvpx))
-$(eval $(call BuildPlugin,vp9,VP9 video codec,vp9,+libvpx))
+$(eval $(call BuildPlugin,aac,MPEG-4 AAC Audio Codec,+fdk-aac))
+$(eval $(call BuildPlugin,alsa,ALSA audio driver,+alsa-lib))
+$(eval $(call BuildPlugin,aubridge,Audio bridge module,))
+$(eval $(call BuildPlugin,aufile,Audio module for using a WAV-file as audio input,))
+$(eval $(call BuildPlugin,ausine,Sine Audio Source,))
+$(eval $(call BuildPlugin,auconv,Audio format conversion,))
+$(eval $(call BuildPlugin,auresamp,Audio resampler,))
+$(eval $(call BuildPlugin,avcodec,Video codec using FFmpeg,+libffmpeg-full))
+$(eval $(call BuildPlugin,avfilter,Video filter using FFmpeg,+libffmpeg-full))
+$(eval $(call BuildPlugin,avformat,Video source using FFmpeg,+baresip-mod-avcodec))
+$(eval $(call BuildPlugin,cons,UDP/TCP console UI driver,))
+$(eval $(call BuildPlugin,ctrl_dbus,DBus control interface,+glib2))
+$(eval $(call BuildPlugin,ctrl_tcp,TCP control interface,))
+$(eval $(call BuildPlugin,debug_cmd,Debug commands,))
+$(eval $(call BuildPlugin,dtls_srtp,DTLS-SRTP end-to-end encryption,))
+$(eval $(call BuildPlugin,ebuacip,EBU ACIP [Audio Contribution over IP] Profile,))
+$(eval $(call BuildPlugin,echo,Echo server module,))
+$(eval $(call BuildPlugin,evdev,Linux input driver,))
+$(eval $(call BuildPlugin,fakevideo,Fake video input/output driver,))
+$(eval $(call BuildPlugin,g711,G.711 audio codec,))
+$(eval $(call BuildPlugin,g722,G.722 audio codec,+libspandsp))
+$(eval $(call BuildPlugin,g726,G.726 audio codec,+libspandsp))
+$(eval $(call BuildPlugin,gst,Gstreamer 1.0 playbin pipeline,@AUDIO_SUPPORT +glib2 +libgstreamer1))
+$(eval $(call BuildPlugin,httpd,HTTP webserver UI-module,))
+$(eval $(call BuildPlugin,httpreq,HTTP request module,))
+$(eval $(call BuildPlugin,l16,16-bit linear codec,))
+$(eval $(call BuildPlugin,mixausrc,Mixes another audio source into audio stream,))
+$(eval $(call BuildPlugin,mixminus,Mixes N-1 audio streams for conferencing,))
+$(eval $(call BuildPlugin,mqtt,Message Queue Telemetry Transport [MQTT] client,+libmosquitto))
+$(eval $(call BuildPlugin,mwi,Message Waiting Indication,))
+$(eval $(call BuildPlugin,natpmp,NAT Port Mapping Protocol module,))
+$(eval $(call BuildPlugin,netroam,Network roaming module,))
+$(eval $(call BuildPlugin,opus,OPUS Interactive audio codec,+libopus))
+$(eval $(call BuildPlugin,opus_multistream,Opus Multistream Audio Codec,+libopus))
+$(eval $(call BuildPlugin,plc,Packet Loss Concealment,+libspandsp))
+$(eval $(call BuildPlugin,pcp,Port Control Protocol for Media NAT-traversal,))
+$(eval $(call BuildPlugin,portaudio,Portaudio audio driver,+portaudio))
+$(eval $(call BuildPlugin,presence,Presence module,))
+$(eval $(call BuildPlugin,pulse,Pulseaudio audio driver,PACKAGE_$(PKG_NAME)-mod-pulse:pulseaudio))
+$(eval $(call BuildPlugin,rtcpsummary,RTCP summary module,))
+$(eval $(call BuildPlugin,selfview,Video selfview module,))
+$(eval $(call BuildPlugin,serreg,Serial registration mode,))
+$(eval $(call BuildPlugin,snapshot,Snapshot video module,+libpng))
+$(eval $(call BuildPlugin,sndfile,Audio dumper using libsndfile,+libsndfile))
+$(eval $(call BuildPlugin,srtp,Secure RTP module using libre,))
+$(eval $(call BuildPlugin,stdio,Standard input/output UI driver,))
+$(eval $(call BuildPlugin,syslog,Syslog module,))
+$(eval $(call BuildPlugin,swscale,Video filter for scaling by FFmpeg,+libffmpeg-full))
+$(eval $(call BuildPlugin,uuid,UUID generator and loader,))
+$(eval $(call BuildPlugin,v4l2,Video4Linux2 video source,+libv4l))
+$(eval $(call BuildPlugin,vidbridge,Video bridge module,))
+$(eval $(call BuildPlugin,vidinfo,Video-info filter,))
+$(eval $(call BuildPlugin,vumeter,Display audio levels in console,))
+$(eval $(call BuildPlugin,vp8,VP8 video codec,+libvpx))
+$(eval $(call BuildPlugin,vp9,VP9 video codec,+libvpx))
diff --git a/net/baresip/patches/010-fix-parallel-build.patch b/net/baresip/patches/010-fix-parallel-build.patch
deleted file mode 100644
index 25f9013..0000000
--- a/net/baresip/patches/010-fix-parallel-build.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From d7aeb9393876af3746dacdbacd70c4a5d6dfcf39 Mon Sep 17 00:00:00 2001
-From: Christian Spielberger
-Date: Sun, 23 May 2021 10:01:04 +0200
-Subject: [PATCH] ctrl_dbus: add dependency to baresipbus.h (#1447) (#1457)
-
----
- modules/ctrl_dbus/module.mk | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
---- a/modules/ctrl_dbus/module.mk
-+++ b/modules/ctrl_dbus/module.mk
-@@ -16,7 +16,10 @@ $(MOD)_CFLAGS += -Wno-unused-parameter -
-
- $(MOD)_CCHECK_OPT = -e baresipbus.h -e baresipbus.c
-
--modules/ctrl_dbus/baresipbus.h modules/ctrl_dbus/baresipbus.c: \
-+modules/$(MOD)/baresipbus.o : modules/$(MOD)/baresipbus.h
-+modules/$(MOD)/ctrl_dbus.o : modules/$(MOD)/baresipbus.h
-+
-+modules/$(MOD)/baresipbus.h modules/$(MOD)/baresipbus.c: \
- modules/ctrl_dbus/com.github.Baresip.xml
- @cd $(dir $@) && ./gen.sh
-
--
2.30.2