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 <dd@embedd.com>
This commit is contained in:
Daniel Danzberger 2024-11-08 11:40:59 +01:00
parent e578742207
commit 819fec7195
2 changed files with 147 additions and 195 deletions

View File

@ -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,45 +23,8 @@ PKG_BUILD_DEPENDS:=glib2/host
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
baresip-mods:= \
aac \
alsa \
amr \
avcodec \
avfilter \
avformat \
cons \
ctrl-dbus \
evdev \
g711 \
g722 \
g726 \
gst \
gst-video \
httpreq \
l16 \
mqtt \
opus \
opus_multistream \
oss \
plc \
portaudio \
pulse \
snapshot \
sndfile \
speex-pp \
srtp \
stdio \
syslog \
v4l2 \
vp8 \
vp9
PKG_CONFIG_DEPENDS:= \
$(patsubst %,CONFIG_PACKAGE_baresip-mod-%,$(subst _,-,$(baresip-mods)))
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/baresip/Default
SECTION:=net
@ -74,7 +36,7 @@ endef
define Package/baresip
$(call Package/baresip/Default)
TITLE:=Portable and modular SIP User-Agent with A/V support
DEPENDS:=+libre +librem
DEPENDS:=+libre
USERID:=$(PKG_NAME)=374:$(PKG_NAME)=374
MENU:=1
FILE_MODES:= \
@ -84,76 +46,98 @@ $(call Package/baresip/Default)
/etc/baresip/contacts:baresip:baresip:0640
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-mods:= \
aac \
alsa \
aubridge \
auconv \
aufile \
auresamp \
ausine \
avcodec \
avfilter \
avformat \
cons \
ctrl_dbus \
ctrl_tcp \
debug_cmd \
dtls_srtp \
ebuacip \
echo \
evdev \
fakevideo \
g711 \
g722 \
g726 \
gst \
httpd \
httpreq \
in_band_dtmf \
l16 \
mixausrc \
mixminus \
mqtt \
mwi \
natpmp \
netroam \
opus \
opus_multistream \
pcp \
plc \
portaudio \
presence \
pulse \
rtcpsummary \
selfview \
serreg \
snapshot \
sndfile \
srtp \
stdio \
swscale \
syslog \
uuid \
v4l2 \
vidbridge \
vidinfo \
vp8 \
vp9 \
vumeter
BARESIP_MOD_OPTIONS:= \
MOD_AUTODETECT= \
$(foreach m,$(baresip-mods),$(foreach v,$(baresip-mod-$(m)),$(v)=$(if $(CONFIG_PACKAGE_baresip-mod-$(subst _,-,$(m))),1)))
empty:=
space:= $(empty) $(empty)
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)
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))
TARGET_CFLAGS+=-D_GNU_SOURCE
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 Build/InstallDev
$(INSTALL_DIR) $(1)/usr
$(CP) $(PKG_INSTALL_DIR)/usr/* $(1)/usr
endef
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))

View File

@ -1,23 +0,0 @@
From d7aeb9393876af3746dacdbacd70c4a5d6dfcf39 Mon Sep 17 00:00:00 2001
From: Christian Spielberger <c.spielberger@commend.com>
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