aboutsummaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorOliver Epper <oliver.epper@gmail.com>2024-06-06 12:54:26 +0000
committerDaniel Engberg <diizzy@FreeBSD.org>2024-06-06 19:05:48 +0000
commitc83600fb2acbd09b013eaea21e57924a687f1352 (patch)
tree73754c379c0ac51e8c306cbe5ff8309130e6eadd /net
parentcc08b15200a1c93845acb2d0d6fd4a01e6c7a6be (diff)
downloadports-c83600fb2acbd09b013eaea21e57924a687f1352.tar.gz
ports-c83600fb2acbd09b013eaea21e57924a687f1352.zip
net/pjsip: Update to 2.14.1 and adopt port
Major rework of port for better compliance with Porters Handbook and general guidelines. Pass maintainership to submitter Changelog: https://github.com/pjsip/pjproject/releases/tag/2.14.1 PR: 277445
Diffstat (limited to 'net')
-rw-r--r--net/pjsip/Makefile235
-rw-r--r--net/pjsip/distinfo6
-rw-r--r--net/pjsip/files/config_site.h39
-rw-r--r--net/pjsip/files/patch-aconfigure13
-rw-r--r--net/pjsip/files/patch-pjmedia_build_os-auto.mak.in52
-rw-r--r--net/pjsip/files/patch-pjsip-apps_build_Samples.mak11
-rw-r--r--net/pjsip/files/patch-pkgconfig.py2
-rw-r--r--net/pjsip/files/patch-third__party_build_os-auto.mak.in4
-rw-r--r--net/pjsip/files/patch-third__party_webrtc_src_webrtc_modules_audio__processing_aec_aec__core.c11
-rw-r--r--net/pjsip/files/patch-third__party_webrtc_src_webrtc_modules_audio__processing_aec_aec__rdft.c11
-rw-r--r--net/pjsip/files/patch-third__party_webrtc_src_webrtc_typedefs.h23
-rw-r--r--net/pjsip/pkg-plist87
12 files changed, 233 insertions, 261 deletions
diff --git a/net/pjsip/Makefile b/net/pjsip/Makefile
index 49f20c30d76c..fc5199ba1bbd 100644
--- a/net/pjsip/Makefile
+++ b/net/pjsip/Makefile
@@ -1,101 +1,151 @@
PORTNAME= pjsip
-DISTVERSION= 2.13.1
-PORTREVISION= 1
+DISTVERSION= 2.14.1
CATEGORIES= net
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= oliver.epper@gmail.com
COMMENT= Multimedia communication library written in C language
WWW= https://www.pjsip.org/
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
-LIB_DEPENDS= libportaudio.so:audio/portaudio \
- libuuid.so:misc/e2fsprogs-libuuid
-
-USES= cpe gmake localbase pathfix ssl tar:bz2
+USES= cpe gmake localbase ssl pkgconfig
+CPE_VENDOR= teluu
USE_LDCONFIG= yes
USE_GITHUB= yes
GH_PROJECT= pjproject
-CPE_VENDOR= teluu
-
GNU_CONFIGURE= yes
-CONFIGURE_ARGS= --with-external-pa \
- --disable-silk
-PATHFIX_MAKEFILEIN= Makefile
-PLIST_SUB= CONFIGURE_TARGET="${CONFIGURE_TARGET}"
-OPTIONS_DEFINE= AMR DEBUG EXTSRTP FFMPEG G711 G722 G7221 GSM ILBC IPV6 \
- L16 OPENH264 OPUS PJSUA PJSUA2 RESAMPLE RESAMPLEDLL \
- SAMPLERATE SDL SHARED SOUND SPEEX SPEEXAEC V4L VIDEO VPX WEBRTC
-OPTIONS_DEFAULT=G711 G722 G7221 GSM ILBC L16 OPUS PJSUA2 SHARED SPEEX SPEEXAEC \
- VIDEO VPX WEBRTC
-
-EXTSRTP_DESC= Use libsrtp port (needed to get SRTP support in asterisk pjsip backend)
-G711_DESC= G.711 codec support
-G722_DESC= G.722 codec support
-G7221_DESC= G.722.1 codec support
-ILBC_DESC= iLBC codec support
-L16_DESC= Linear/L16 codec support
-OPENH264_DESC= OpenH264 support
-PJSUA_DESC= Command line SIP agent
-PJSUA2_DESC= SIP User agent 2 library
-RESAMPLE_DESC= Enable resampling implementations
-RESAMPLEDLL_DESC= Build libresample as shared library
-SHARED_DESC= Build shared libraries (other ports may depend on this)
-SPEEXAEC_DESC= Speex Acoustic Echo Canceller/AEC
-WEBRTC_DESC= Build libwebrtc
+PLIST_SUB= CONFIGURE_TARGET="${CONFIGURE_TARGET}"
+OPTIONS_DEFINE= APPS DEBUG FFMPEG KQUEUE PA PJSUA2 RESAMPLEDLL SHARED SOUND \
+ SRTP UPNP VIDEO WEBRTC YUV
+OPTIONS_DEFAULT=G711 G722 KQUEUE OPUS PA PJSUA2 RESAMPLE SHARED SOUND SPEEX \
+ SRTP VIDEO WEBRTC YUV
+OPTIONS_GROUP= CODECS
+OPTIONS_GROUP_CODECS= AMR BCG729 G711 G722 G7221 GSM ILBC L16 OPUS SILK \
+ SPEEX SPEEXAEC
+OPTIONS_SINGLE= RESAMPLEIMP
+OPTIONS_SINGLE_RESAMPLEIMP= RESAMPLE SAMPLERATE SPEEXRESAMPLE NONE
OPTIONS_SUB= yes
-AMR_CONFIGURE_WITH= opencore-amr
-AMR_LIB_DEPENDS= libopencore-amrwb.so:audio/opencore-amr \
- libvo-amrwbenc.so:audio/vo-amrwbenc
-DEBUG_CFLAGS= -DNDEBUG=0
-DEBUG_CFLAGS_OFF= -DNDEBUG=1
-EXTSRTP_CONFIGURE_WITH= external-srtp
-EXTSRTP_CONFLICTS_OFF= libsrtp libsrtp2
-EXTSRTP_LIB_DEPENDS= libsrtp2.so:net/libsrtp2
-FFMPEG_CONFIGURE_ENABLE= ffmpeg
-FFMPEG_LIB_DEPENDS= libswresample.so:multimedia/ffmpeg
-G711_CONFIGURE_ENABLE= g711-codec
-G722_CONFIGURE_ENABLE= g722-codec
-G7221_CONFIGURE_ENABLE= g7221-codec
-GSM_CONFIGURE_ENABLE= gsm-codec
-GSM_CONFIGURE_ON= --with-external-gsm
-GSM_LIB_DEPENDS= libgsm.so:audio/gsm
-ILBC_CONFIGURE_ENABLE= ilbc-codec
-IPV6_CFLAGS= -DPJ_HAS_IPV6=1
-IPV6_CFLAGS_OFF= -DPJ_HAS_IPV6=0
-L16_CONFIGURE_ENABLE= l16-codec
-OPENH264_CONFIGURE_ENABLE= openh264
-OPENH264_LIB_DEPENDS= libopenh264.so:multimedia/openh264
-OPUS_CONFIGURE_ENABLE= opus
-OPUS_LIB_DEPENDS= libopus.so:audio/opus
-PJSUA2_CONFIGURE_ENABLE= pjsua2
+BCG729_DESC= bcg729 codec support
+CODECS_DESC= Codecs & Echo Cancellation
+G711_DESC= G.711 codec support
+G7221_DESC= G.722.1 codec support
+G722_DESC= G.722 codec support
+ILBC_DESC= iLBC codec support
+KQUEUE_DESC= Use kqueue ioqueue on macos/BSD (experimental)
+L16_DESC= Linear/L16 codec support
+PA_DESC= Use external PortAudio development files
+PJSUA2_DESC= Enable pjsua2 library
+PJSUA_DESC= Command line SIP agent
+RESAMPLEDLL_DESC= Build libresample as a shared library
+RESAMPLE_DESC= Enable resampling implementations
+APPS_DESC= Install apps & samples from the pjsip-apps directory
+SHARED_DESC= Build shared libraries (other ports may depend on this)
+SILK_DESC= Enable SILK support
+SOUND_DESC= Include sound in the build
+SPEEXAEC_DESC= Speex Acoustic Echo Canceller/AEC
+SPEEXRESAMPLE_DESC= Enable Speex resample
+SRTP_DESC= Secure Real-Time Transport Protocol – SRTP support
+WEBRTC_DESC= Include libwebrtc in the build
+YUV_DESC= Include libyuv in the build
+RESAMPLEIMP_DESC= Resample Implementations
+NONE_DESC= Disable resampling implementations
+
+# general options
+
+DEBUG_CFLAGS= -DNDEBUG=0
+DEBUG_CFLAGS_OFF= -DNDEBUG=1
+
+FFMPEG_LIB_DEPENDS= libswresample.so:multimedia/ffmpeg
+FFMPEG_CONFIGURE_OFF= --disable-ffmpeg
+
+# This can become KQUEUE_CONFIGURE_ENABLE once
+# https://github.com/pjsip/pjproject/commit/c36802585ddefb3ca477d1f6d773d179510c5412
+# is included in the next release (> 2.14.1).
+KQUEUE_CONFIGURE_ON= --enable-kqueue
+
+PA_LIB_DEPENDS= libportaudio.so:audio/portaudio
+PA_CONFIGURE_ON= --with-external-pa
+
+PJSUA2_CONFIGURE_OFF= --disable-pjsua2
+
RESAMPLE_CONFIGURE_ENABLE= resample
+
RESAMPLEDLL_CONFIGURE_ENABLE= resample-dll
-SAMPLERATE_CONFIGURE_ENABLE= libsamplerate
+RESAMPLEDLL_IMPLIES= RESAMPLE
+
SAMPLERATE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate
-SDL_CONFIGURE_ENABLE= sdl
-SDL_USES= sdl
-SDL_USE= SDL=sdl
+SAMPLERATE_CONFIGURE_ENABLE= libsamplerate
+SAMPLERATE_PREVENTS= RESAMPLE RESAMPLEDLL
+SAMPLERATE_PREVENTS_MSG= SAMPLERATE will prevent RESAMPLE that is\
+ implied by RESAMPLEDLL
+
SHARED_CONFIGURE_ENABLE= shared
-SOUND_CONFIGURE_ENABLE= sound
+SHARED_PREVENTS= RESAMPLEDLL
+SHARED_PREVENTS_MSG= When building shared libraries RESAMPLEDLL\
+ has no effect.
+
+SOUND_CONFIGURE_ENABLE= sound
+
+SRTP_LIB_DEPENDS= libsrtp2.so:net/libsrtp2
+SRTP_CONFIGURE_ENABLE= libsrtp
+SRTP_CONFIGURE_ON= --with-external-srtp
+
+UPNP_LIB_DEPENDS= libupnp.so:devel/upnp
+UPNP_CONFIGURE_OFF= --disable-upnp
+
+VIDEO_CONFIGURE_ENABLE= video
+
+WEBRTC_CONFIGURE_OFF= --disable-libwebrtc
+
+YUV_CONFIGURE_ENABLE= libyuv
+YUV_IMPLIES= VIDEO
+
+# Codecs
+AMR_LIB_DEPENDS= libopencore-amrwb.so:audio/opencore-amr \
+ libvo-amrwbenc.so:audio/vo-amrwbenc
+AMR_CONFIGURE_WITH= opencore-amr
+
+BCG729_CONFIGURE_ENABLE=bcg729
+
+G711_CONFIGURE_ENABLE= g711-codec
+
+G7221_CONFIGURE_ENABLE= g7221-codec
+
+G722_CONFIGURE_ENABLE= g722-codec
+
+GSM_LIB_DEPENDS= libgsm.so:audio/gsm
+GSM_CONFIGURE_ENABLE= gsm-codec
+GSM_CONFIGURE_ON= --with-external-gsm
+
+ILBC_CONFIGURE_ENABLE= ilbc-codec
+
+L16_CONFIGURE_ENABLE= l16-codec
+
+OPUS_LIB_DEPENDS= libopus.so:audio/opus
+OPUS_CONFIGURE_OFF= --disable-opus
+
+SILK_CONFIGURE_ENABLE= silk
+
+SPEEX_LIB_DEPENDS= libspeex.so:audio/speex \
+ libspeexdsp.so:audio/speexdsp
+SPEEX_CONFIGURE_ENABLE= speex-codec
+SPEEX_CONFIGURE_ON= --with-external-speex
+
+# Speex Echo Cancellation & Resampling
SPEEXAEC_CONFIGURE_ENABLE= speex-aec
-SPEEX_CONFIGURE_ENABLE= speex-codec
-SPEEX_CONFIGURE_ON= --with-external-speex
-SPEEX_LIB_DEPENDS= libspeex.so:audio/speex \
- libspeexdsp.so:audio/speexdsp
-V4L_BUILD_DEPENDS= v4l_compat>=0:multimedia/v4l_compat
-V4L_CONFIGURE_ENABLE= v4l2
-V4L_LIB_DEPENDS= libv4l2.so:multimedia/libv4l
-VIDEO_CONFIGURE_ENABLE= video
-VPX_CONFIGURE_ENABLE= vpx
-VPX_LIB_DEPENDS= libvpx.so:multimedia/libvpx
-WEBRTC_CONFIGURE_OFF= --disable-libwebrtc
+SPEEXAEC_IMPLIES= SPEEX
+
+SPEEXRESAMPLE_CONFIGURE_ENABLE= speex-resample
+SPEEXRESAMPLE_IMPLIES= SPEEX
+SPEEXRESAMPLE_PREVENTS= RESAMPLE RESAMPLEDLL
+SPEEXRESAMPLE_PREVENTS_MSG= SPEEXRESAMPLE will prevent RESAMPLE that is\
+ implied by RESAMPLEDLL
post-patch:
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
@@ -103,15 +153,40 @@ post-patch:
@${CP} ${FILESDIR}/config_site.h \
${WRKSRC}/pjlib/include/pj/config_site.h
+pre-build:
+ @${MAKE_CMD} -C ${WRKSRC} dep
+ @${MAKE_CMD} -C ${WRKSRC} clean
+
post-install-SHARED-on:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so
-post-install-PJSUA-on:
+post-install-APPS-on:
+ ${INSTALL_PROGRAM} \
+ ${WRKSRC}/pjsip-apps/bin/pjsua-${ARCH}-portbld-${OPSYS:tl}${OSREL} \
+ ${STAGEDIR}${PREFIX}/bin/pjsua
${INSTALL_PROGRAM} \
- ${WRKSRC}/pjsip-apps/bin/pjsua-${ARCH}-portbld-${OPSYS:tl}${OSREL} \
- ${STAGEDIR}${PREFIX}/bin/pjsua
+ ${WRKSRC}/pjsip-apps/bin/pjsystest-${ARCH}-portbld-${OPSYS:tl}${OSREL} \
+ ${STAGEDIR}${PREFIX}/bin/pjsystest
+ ${MKDIR} ${STAGEDIR}${PREFIX}/libexec/pjsip-apps/samples
${INSTALL_PROGRAM} \
- ${WRKSRC}/pjsip-apps/bin/pjsystest-${ARCH}-portbld-${OPSYS:tl}${OSREL} \
- ${STAGEDIR}${PREFIX}/bin/pjsystest
+ ${WRKSRC}/pjsip-apps/bin/samples/${ARCH}-portbld-${OPSYS:tl}${OSREL}/* \
+ ${STAGEDIR}${PREFIX}/libexec/pjsip-apps/samples/
+
+.include <bsd.port.pre.mk>
+
+# resample dso needs to be installed when either the dso is
+# explicitely requested via RESAMPLEDLL which implies RESAMPLE,
+# or when RESAMPLE is selected together with SHARED
+RESAMPLE_DLL_OR_SHARED="@comment "
+
+.if ${PORT_OPTIONS:MRESAMPLEDLL}
+RESAMPLE_DLL_OR_SHARED=""
+.endif
+
+.if ${PORT_OPTIONS:MRESAMPLE} && ${PORT_OPTIONS:MSHARED}
+RESAMPLE_DLL_OR_SHARED=""
+.endif
+
+PLIST_SUB+= RESAMPLE_DLL_OR_SHARED=${RESAMPLE_DLL_OR_SHARED}
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/net/pjsip/distinfo b/net/pjsip/distinfo
index bb2fe1cbc309..53d4520930f9 100644
--- a/net/pjsip/distinfo
+++ b/net/pjsip/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1688848530
-SHA256 (pjsip-pjproject-2.13.1_GH0.tar.gz) = 32a5ab5bfbb9752cb6a46627e4c410e61939c8dbbd833ac858473cfbd9fb9d7d
-SIZE (pjsip-pjproject-2.13.1_GH0.tar.gz) = 9746437
+TIMESTAMP = 1711489150
+SHA256 (pjsip-pjproject-2.14.1_GH0.tar.gz) = 6140f7a97e318caa89c17e8d5468599671c6eed12d64a7c160dac879ba004c68
+SIZE (pjsip-pjproject-2.14.1_GH0.tar.gz) = 10322231
diff --git a/net/pjsip/files/config_site.h b/net/pjsip/files/config_site.h
index a712075f513f..8e6369f3f061 100644
--- a/net/pjsip/files/config_site.h
+++ b/net/pjsip/files/config_site.h
@@ -1,38 +1 @@
-/*
- * Custom options imported from asterisk provided customizations.
- */
-
-#include <sys/select.h>
-
-#define PJ_MAX_HOSTNAME (256)
-#define PJSIP_MAX_URL_SIZE (512)
-#define PJ_IOQUEUE_MAX_HANDLES (FD_SETSIZE)
-
-#define PJ_SCANNER_USE_BITWISE 0
-
-#define PJ_LOG_MAX_LEVEL 6
-
-#define PJSIP_MAX_TSX_COUNT ((64*1024)-1)
-#define PJSIP_MAX_DIALOG_COUNT ((64*1024)-1)
-#define PJSIP_UDP_SO_SNDBUF_SIZE (512*1024)
-#define PJSIP_UDP_SO_RCVBUF_SIZE (512*1024)
-
-#define PJSIP_MAX_PKT_LEN 32000
-
-/* Defaults too low for WebRTC */
-#define PJ_ICE_MAX_CAND 32
-#define PJ_ICE_MAX_CHECKS (PJ_ICE_MAX_CAND * PJ_ICE_MAX_CAND)
-
-/* Increase limits to allow more formats */
-#define PJMEDIA_MAX_SDP_FMT 64
-#define PJMEDIA_MAX_SDP_BANDW 4
-#define PJMEDIA_MAX_SDP_ATTR (PJMEDIA_MAX_SDP_FMT*2 + 4)
-#define PJMEDIA_MAX_SDP_MEDIA 16
-
-/*
- * Turn off the periodic sending of CRLNCRLN. Default is on (90 seconds),
- * which conflicts with the global section's keep_alive_interval option in
- * pjsip.conf in asterisk.
- */
-#define PJSIP_TCP_KEEP_ALIVE_INTERVAL 0
-#define PJSIP_TLS_KEEP_ALIVE_INTERVAL 0
+#include <pj/config_site_sample.h>
diff --git a/net/pjsip/files/patch-aconfigure b/net/pjsip/files/patch-aconfigure
index 06240c90982d..d2e6f97a8dca 100644
--- a/net/pjsip/files/patch-aconfigure
+++ b/net/pjsip/files/patch-aconfigure
@@ -1,15 +1,6 @@
---- aconfigure.orig 2022-11-24 05:24:24 UTC
+--- aconfigure.orig 2023-11-01 09:37:28 UTC
+++ aconfigure
-@@ -8059,7 +8059,7 @@ else $as_nop
- FFMPEG_PREFIX=$with_ffmpeg
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Using ffmpeg prefix... $FFMPEG_PREFIX" >&5
- printf "%s\n" "Using ffmpeg prefix... $FFMPEG_PREFIX" >&6; }
-- export PKG_CONFIG_PATH=$FFMPEG_PREFIX/lib/pkgconfig
-+ export PKG_CONFIG_PATH=$FFMPEG_PREFIX/libdata/pkgconfig
- fi
-
- for ac_prog in pkg-config "python pkgconfig.py"
-@@ -10129,7 +10129,7 @@ printf "%s\n" "Checking if libwebrtc is disabled...no"
+@@ -10177,7 +10177,7 @@ printf "%s\n" "Checking if libwebrtc is disabled...no"
ac_webrtc_instset=sse2
ac_webrtc_cflags="-msse2"
;;
diff --git a/net/pjsip/files/patch-pjmedia_build_os-auto.mak.in b/net/pjsip/files/patch-pjmedia_build_os-auto.mak.in
index 371f9b5a8d48..e69de29bb2d1 100644
--- a/net/pjsip/files/patch-pjmedia_build_os-auto.mak.in
+++ b/net/pjsip/files/patch-pjmedia_build_os-auto.mak.in
@@ -1,52 +0,0 @@
---- pjmedia/build/os-auto.mak.in.orig 2022-11-24 05:24:24 UTC
-+++ pjmedia/build/os-auto.mak.in
-@@ -242,49 +242,7 @@ endif
- endif
-
-
--#
--# MacOSX specific
--#
--ifneq ($(findstring coreaudio,$(AC_PJMEDIA_SND)),)
--export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_COREAUDIO=1 \
-- -DPJMEDIA_AUDIO_DEV_HAS_PORTAUDIO=0 \
-- -DPJMEDIA_AUDIO_DEV_HAS_WMME=0
--endif
--
--#
--# Unix specific
--#
--ifneq ($(findstring alsa,$(AC_PJMEDIA_SND)),)
--export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_ALSA=1 \
-- -DPJMEDIA_AUDIO_DEV_HAS_PORTAUDIO=0 \
-- -DPJMEDIA_AUDIO_DEV_HAS_WMME=0
--endif
--
--#
--# Windows specific
--#
--ifneq ($(findstring win32,$(AC_PJMEDIA_SND)),)
--export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_WMME=1 \
-- -DPJMEDIA_AUDIO_DEV_HAS_PORTAUDIO=0
--else
- export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_WMME=0
--endif
--
--#
--# Null sound device
--#
--ifeq ($(AC_PJMEDIA_SND),null)
--export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_PORTAUDIO=0 \
-- -DPJMEDIA_AUDIO_DEV_HAS_WMME=0
--endif
--
--#
--# External sound device
--#
--ifeq ($(AC_PJMEDIA_SND),external)
--export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_PORTAUDIO=0 \
-- -DPJMEDIA_AUDIO_DEV_HAS_WMME=0
--endif
-
- #
- # QT video device
diff --git a/net/pjsip/files/patch-pjsip-apps_build_Samples.mak b/net/pjsip/files/patch-pjsip-apps_build_Samples.mak
new file mode 100644
index 000000000000..eaa634e2c9e6
--- /dev/null
+++ b/net/pjsip/files/patch-pjsip-apps_build_Samples.mak
@@ -0,0 +1,11 @@
+--- pjsip-apps/build/Samples.mak.orig 2024-06-06 12:41:28 UTC
++++ pjsip-apps/build/Samples.mak
+@@ -63,7 +63,7 @@ endif
+ .PHONY: $(EXES)
+ .PHONY: $(PJSUA2_EXES)
+
+-all: $(EXES) $(PJSUA2_EXES)
++all: $(EXES)
+
+ $(EXES):
+ $(MAKE) --no-print-directory -f $(RULES_MAK) SAMPLE_SRCDIR=$(SRCDIR) SAMPLE_OBJS=$@.o SAMPLE_CFLAGS="$(_CFLAGS)" SAMPLE_CXXFLAGS="$(_CXXFLAGS)" SAMPLE_LDFLAGS="$(_LDFLAGS)" SAMPLE_EXE=$@ APP=SAMPLE app=sample $(subst /,$(HOST_PSEP),$(BINDIR)/$@)
diff --git a/net/pjsip/files/patch-pkgconfig.py b/net/pjsip/files/patch-pkgconfig.py
index 257688db2391..df4412c2b2db 100644
--- a/net/pjsip/files/patch-pkgconfig.py
+++ b/net/pjsip/files/patch-pkgconfig.py
@@ -1,4 +1,4 @@
---- pkgconfig.py.orig 2012-10-04 07:36:39 UTC
+--- pkgconfig.py.orig 2024-03-04 22:10:19 UTC
+++ pkgconfig.py
@@ -117,7 +117,7 @@ if __name__ == "__main__":
# Fix search path
diff --git a/net/pjsip/files/patch-third__party_build_os-auto.mak.in b/net/pjsip/files/patch-third__party_build_os-auto.mak.in
index 6db8ff765d52..1264143fe321 100644
--- a/net/pjsip/files/patch-third__party_build_os-auto.mak.in
+++ b/net/pjsip/files/patch-third__party_build_os-auto.mak.in
@@ -1,6 +1,6 @@
---- third_party/build/os-auto.mak.in.orig 2017-09-22 02:42:22 UTC
+--- third_party/build/os-auto.mak.in.orig 2024-03-08 17:33:31 UTC
+++ third_party/build/os-auto.mak.in
-@@ -112,8 +112,7 @@ else ifneq ($(findstring mips,@ac_webrtc_instset@),)
+@@ -118,8 +118,7 @@ else # Generic fixed point
else # Generic fixed point
WEBRTC_SRC = \
modules/audio_processing/aecm/aecm_core_c.o \
diff --git a/net/pjsip/files/patch-third__party_webrtc_src_webrtc_modules_audio__processing_aec_aec__core.c b/net/pjsip/files/patch-third__party_webrtc_src_webrtc_modules_audio__processing_aec_aec__core.c
index bf7210a54510..e69de29bb2d1 100644
--- a/net/pjsip/files/patch-third__party_webrtc_src_webrtc_modules_audio__processing_aec_aec__core.c
+++ b/net/pjsip/files/patch-third__party_webrtc_src_webrtc_modules_audio__processing_aec_aec__core.c
@@ -1,11 +0,0 @@
---- third_party/webrtc/src/webrtc/modules/audio_processing/aec/aec_core.c.orig 2016-08-29 08:44:54 UTC
-+++ third_party/webrtc/src/webrtc/modules/audio_processing/aec/aec_core.c
-@@ -1478,7 +1478,7 @@ AecCore* WebRtcAec_CreateAec() {
- WebRtcAec_ComfortNoise = ComfortNoise;
- WebRtcAec_SubbandCoherence = SubbandCoherence;
-
--#if defined(WEBRTC_ARCH_X86_FAMILY)
-+#if defined(WEBRTC_ARCH_X86_FAMILY) && defined(__SSE2__)
- if (WebRtc_GetCPUInfo(kSSE2)) {
- WebRtcAec_InitAec_SSE2();
- }
diff --git a/net/pjsip/files/patch-third__party_webrtc_src_webrtc_modules_audio__processing_aec_aec__rdft.c b/net/pjsip/files/patch-third__party_webrtc_src_webrtc_modules_audio__processing_aec_aec__rdft.c
index 1a3fd3e56331..e69de29bb2d1 100644
--- a/net/pjsip/files/patch-third__party_webrtc_src_webrtc_modules_audio__processing_aec_aec__rdft.c
+++ b/net/pjsip/files/patch-third__party_webrtc_src_webrtc_modules_audio__processing_aec_aec__rdft.c
@@ -1,11 +0,0 @@
---- third_party/webrtc/src/webrtc/modules/audio_processing/aec/aec_rdft.c.orig 2016-08-25 01:36:33 UTC
-+++ third_party/webrtc/src/webrtc/modules/audio_processing/aec/aec_rdft.c
-@@ -571,7 +571,7 @@ void aec_rdft_init(void) {
- cftfsub_128 = cftfsub_128_C;
- cftbsub_128 = cftbsub_128_C;
- bitrv2_128 = bitrv2_128_C;
--#if defined(WEBRTC_ARCH_X86_FAMILY)
-+#if defined(WEBRTC_ARCH_X86_FAMILY) && defined(__SSE2__)
- if (WebRtc_GetCPUInfo(kSSE2)) {
- aec_rdft_init_sse2();
- }
diff --git a/net/pjsip/files/patch-third__party_webrtc_src_webrtc_typedefs.h b/net/pjsip/files/patch-third__party_webrtc_src_webrtc_typedefs.h
index 03e4a7fa921f..e69de29bb2d1 100644
--- a/net/pjsip/files/patch-third__party_webrtc_src_webrtc_typedefs.h
+++ b/net/pjsip/files/patch-third__party_webrtc_src_webrtc_typedefs.h
@@ -1,23 +0,0 @@
---- third_party/webrtc/src/webrtc/typedefs.h.orig 2017-01-07 23:05:15 UTC
-+++ third_party/webrtc/src/webrtc/typedefs.h
-@@ -48,7 +48,19 @@
- #define WEBRTC_ARCH_32_BITS
- #define WEBRTC_ARCH_LITTLE_ENDIAN
- #else
--#error Please add support for your architecture in typedefs.h
-+/* instead of failing, use typical unix defines... */
-+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
-+#define WEBRTC_ARCH_LITTLE_ENDIAN
-+#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
-+#define WEBRTC_ARCH_BIG_ENDIAN
-+#else
-+#error __BYTE_ORDER__ is not defined
-+#endif
-+#if defined(__LP64__)
-+#define WEBRTC_ARCH_64_BITS
-+#else
-+#define WEBRTC_ARCH_32_BITS
-+#endif
- #endif
-
- #if !(defined(WEBRTC_ARCH_LITTLE_ENDIAN) ^ defined(WEBRTC_ARCH_BIG_ENDIAN))
diff --git a/net/pjsip/pkg-plist b/net/pjsip/pkg-plist
index b52c395da3b4..cc4676c6f72a 100644
--- a/net/pjsip/pkg-plist
+++ b/net/pjsip/pkg-plist
@@ -1,5 +1,5 @@
-%%PJSUA%%bin/pjsua
-%%PJSUA%%bin/pjsystest
+%%APPS%%bin/pjsua
+%%APPS%%bin/pjsystest
include/pj++/file.hpp
include/pj++/hash.hpp
include/pj++/list.hpp
@@ -19,6 +19,7 @@ include/pj/array.h
include/pj/assert.h
include/pj/compat/assert.h
include/pj/compat/cc_armcc.h
+include/pj/compat/cc_clang.h
include/pj/compat/cc_codew.h
include/pj/compat/cc_gcc.h
include/pj/compat/cc_gcce.h
@@ -152,13 +153,13 @@ include/pjmedia-codec/ipp_codecs.h
include/pjmedia-codec/l16.h
include/pjmedia-codec/opencore_amr.h
include/pjmedia-codec/openh264.h
-%%OPUS%%include/pjmedia-codec/opus.h
+include/pjmedia-codec/opus.h
include/pjmedia-codec/passthrough.h
include/pjmedia-codec/silk.h
include/pjmedia-codec/speex.h
include/pjmedia-codec/types.h
include/pjmedia-codec/vid_toolbox.h
-%%VPX%%include/pjmedia-codec/vpx.h
+include/pjmedia-codec/vpx.h
include/pjmedia-codec/vpx_packetizer.h
include/pjmedia-videodev/avi_dev.h
include/pjmedia-videodev/config.h
@@ -303,18 +304,18 @@ include/pjsip_ua.h
include/pjsua-lib/pjsua.h
include/pjsua-lib/pjsua_internal.h
include/pjsua.h
-%%PJSUA2%%include/pjsua2.hpp
-%%PJSUA2%%include/pjsua2/account.hpp
-%%PJSUA2%%include/pjsua2/call.hpp
-%%PJSUA2%%include/pjsua2/config.hpp
-%%PJSUA2%%include/pjsua2/doxygen.hpp
-%%PJSUA2%%include/pjsua2/endpoint.hpp
-%%PJSUA2%%include/pjsua2/json.hpp
-%%PJSUA2%%include/pjsua2/media.hpp
-%%PJSUA2%%include/pjsua2/persistent.hpp
-%%PJSUA2%%include/pjsua2/presence.hpp
-%%PJSUA2%%include/pjsua2/siptypes.hpp
-%%PJSUA2%%include/pjsua2/types.hpp
+include/pjsua2.hpp
+include/pjsua2/account.hpp
+include/pjsua2/call.hpp
+include/pjsua2/config.hpp
+include/pjsua2/doxygen.hpp
+include/pjsua2/endpoint.hpp
+include/pjsua2/json.hpp
+include/pjsua2/media.hpp
+include/pjsua2/persistent.hpp
+include/pjsua2/presence.hpp
+include/pjsua2/siptypes.hpp
+include/pjsua2/types.hpp
%%G7221%%lib/libg7221codec-%%CONFIGURE_TARGET%%.a
%%SHARED%%%%G7221%%lib/libg7221codec.so
%%SHARED%%%%G7221%%lib/libg7221codec.so.2
@@ -355,18 +356,46 @@ lib/libpjsua-%%CONFIGURE_TARGET%%.a
%%SHARED%%lib/libpjsua.so
%%SHARED%%lib/libpjsua.so.2
%%PJSUA2%%lib/libpjsua2-%%CONFIGURE_TARGET%%.a
-%%PJSUA2%%%%SHARED%%lib/libpjsua2.so
-%%PJSUA2%%%%SHARED%%lib/libpjsua2.so.2
-%%NO_SAMPLERATE%%%%RESAMPLE%%lib/libresample-%%CONFIGURE_TARGET%%.a
-%%NO_SAMPLERATE%%%%RESAMPLE%%%%RESAMPLEDLL%%lib/libresample.so
-%%NO_SAMPLERATE%%%%RESAMPLE%%%%RESAMPLEDLL%%lib/libresample.so.2
-%%NO_EXTSRTP%%lib/libsrtp-%%CONFIGURE_TARGET%%.a
-%%NO_EXTSRTP%%%%SHARED%%lib/libsrtp.so
-%%NO_EXTSRTP%%%%SHARED%%lib/libsrtp.so.2
+%%SHARED%%%%PJSUA2%%lib/libpjsua2.so
+%%SHARED%%%%PJSUA2%%lib/libpjsua2.so.2
+%%RESAMPLE%%lib/libresample-%%CONFIGURE_TARGET%%.a
+%%RESAMPLE_DLL_OR_SHARED%%lib/libresample.so
+%%RESAMPLE_DLL_OR_SHARED%%lib/libresample.so.2
%%WEBRTC%%lib/libwebrtc-%%CONFIGURE_TARGET%%.a
-%%WEBRTC%%%%SHARED%%lib/libwebrtc.so
-%%WEBRTC%%%%SHARED%%lib/libwebrtc.so.2
-%%SHARED%%%%VIDEO%%lib/libyuv.so
-%%SHARED%%%%VIDEO%%lib/libyuv.so.2
-%%VIDEO%%lib/libyuv-%%CONFIGURE_TARGET%%.a
+%%SHARED%%%%WEBRTC%%lib/libwebrtc.so
+%%SHARED%%%%WEBRTC%%lib/libwebrtc.so.2
+%%YUV%%lib/libyuv-%%CONFIGURE_TARGET%%.a
+%%SHARED%%%%YUV%%lib/libyuv.so
+%%SHARED%%%%YUV%%lib/libyuv.so.2
libdata/pkgconfig/libpjproject.pc
+%%APPS%%libexec/pjsip-apps/samples/aectest
+%%APPS%%libexec/pjsip-apps/samples/auddemo
+%%APPS%%libexec/pjsip-apps/samples/aviplay
+%%APPS%%libexec/pjsip-apps/samples/clidemo
+%%APPS%%libexec/pjsip-apps/samples/confsample
+%%APPS%%libexec/pjsip-apps/samples/encdec
+%%APPS%%libexec/pjsip-apps/samples/httpdemo
+%%APPS%%libexec/pjsip-apps/samples/icedemo
+%%APPS%%libexec/pjsip-apps/samples/jbsim
+%%APPS%%libexec/pjsip-apps/samples/latency
+%%APPS%%libexec/pjsip-apps/samples/level
+%%APPS%%libexec/pjsip-apps/samples/mix
+%%APPS%%libexec/pjsip-apps/samples/pcaputil
+%%APPS%%libexec/pjsip-apps/samples/pjsip-perf
+%%APPS%%libexec/pjsip-apps/samples/playfile
+%%APPS%%libexec/pjsip-apps/samples/playsine
+%%APPS%%libexec/pjsip-apps/samples/recfile
+%%APPS%%libexec/pjsip-apps/samples/resampleplay
+%%APPS%%libexec/pjsip-apps/samples/simple_pjsua
+%%APPS%%libexec/pjsip-apps/samples/simpleua
+%%APPS%%libexec/pjsip-apps/samples/sipecho
+%%APPS%%libexec/pjsip-apps/samples/siprtp
+%%APPS%%libexec/pjsip-apps/samples/sipstateless
+%%APPS%%libexec/pjsip-apps/samples/stateful_proxy
+%%APPS%%libexec/pjsip-apps/samples/stateless_proxy
+%%APPS%%libexec/pjsip-apps/samples/stereotest
+%%APPS%%libexec/pjsip-apps/samples/streamutil
+%%APPS%%libexec/pjsip-apps/samples/strerror
+%%APPS%%libexec/pjsip-apps/samples/tonegen
+%%APPS%%libexec/pjsip-apps/samples/vid_codec_test
+%%APPS%%libexec/pjsip-apps/samples/vid_streamutil