Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 05 Aug 2026 09:11:34 +0000
From:      Yusuf Yaman <nxjoseph@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Cc:        Chris Hutchinson <portmaster@bsdforge.com>
Subject:   git: 87d11fd7305c - main - net/turnserver: Update 4.14.0 => 4.16.0
Message-ID:  <6a72fe46.3e8fc.14efb5fc@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by nxjoseph:

URL: https://cgit.FreeBSD.org/ports/commit/?id=87d11fd7305cb245dff284e34be3a5c0c423aa60

commit 87d11fd7305cb245dff284e34be3a5c0c423aa60
Author:     Chris Hutchinson <portmaster@bsdforge.com>
AuthorDate: 2026-08-04 19:04:49 +0000
Commit:     Yusuf Yaman <nxjoseph@FreeBSD.org>
CommitDate: 2026-08-05 09:10:05 +0000

    net/turnserver: Update 4.14.0 => 4.16.0
    
    Port changes:
    - Run turnserver as non-root by default.
    - Pet port(lint|fmt|clippy).
    
    PR:             297251, 296810
    Reported by:    Frank Wall <freebsd@moov.de>
    Reported by     Zixu Wu <zx@bv3.dev>
    Approved by:    Chris Hutchinson <portmaster@bsdforge.com> (maintainer)
    Approved by:    osa, vvd (Mentors, implicit)
    Co-authored-by: Frank Wall <freebsd@moov.de>
    Co-authored-by: Zixu Wu <zx@bv3.dev>
    Security:       GHSA-5538-7cxj-5jcc
    MFH:            2026Q3
---
 GIDs                                |   2 +-
 UIDs                                |   2 +-
 net/turnserver/Makefile             | 106 ++++++++++++++++++++----------------
 net/turnserver/distinfo             |   4 +-
 net/turnserver/files/pkg-message.in |   4 ++
 net/turnserver/files/turnserver.in  |   8 ++-
 6 files changed, 74 insertions(+), 52 deletions(-)

diff --git a/GIDs b/GIDs
index 54526684dc95..f035f3924909 100644
--- a/GIDs
+++ b/GIDs
@@ -333,7 +333,7 @@ autopulse:*:388:
 ldap:*:389:
 bunkerweb:*:390:
 dirsrv:*:391:
-# free: 392
+_turnserver:*:392:
 # free: 393
 # free: 394
 # free: 395
diff --git a/UIDs b/UIDs
index 9ccae2d4f048..f460c3b88c80 100644
--- a/UIDs
+++ b/UIDs
@@ -338,7 +338,7 @@ autopulse:*:388:388::0:0:Autopulse Daemon:/nonexistent:/usr/sbin/nologin
 ldap:*:389:389::0:0:OpenLDAP Server:/nonexistent:/usr/sbin/nologin
 bunkerweb:*:390:390::0:0:Bunkerweb Service:/nonexistent:/usr/sbin/nologin
 dirsrv:*:391:391::0:0:389 Directory Server:/usr/local/share/dirsrv:/usr/sbin/nologin
-# free: 392
+_turnserver:*:392:392::0:0:Coturn Turnserver Daemon:/nonexistent:/usr/sbin/nologin
 # free: 393
 # free: 394
 # free: 395
diff --git a/net/turnserver/Makefile b/net/turnserver/Makefile
index 573fe66f066a..a0e2e5be976d 100644
--- a/net/turnserver/Makefile
+++ b/net/turnserver/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	turnserver
-DISTVERSION=	4.14.0
+DISTVERSION=	4.16.0
 CATEGORIES=	net
 MASTER_SITES=	https://coturn.net/turnserver/extradocs/:xdocs
 DISTFILES=	turn.extra.docs-2.0.0.1.tar.gz:xdocs
@@ -22,75 +22,89 @@ USE_RC_SUBR=	turnserver
 SHEBANG_FILES=	examples/scripts/restapi/shared_secret_maintainer.pl
 
 HAS_CONFIGURE=	yes
-CONFIGURE_ENV+=	PTHREAD_LIBS=-pthread TURN_DISABLE_RPATH=1
+CONFIGURE_ENV+=	PTHREAD_LIBS=-pthread \
+		TURN_DISABLE_RPATH=1
 # MongoDB support is disabled until devel/mongo-c-driver is updated
 CONFIGURE_ENV+=	TURN_NO_MONGO=1
 
 TEST_TARGET=	test
 
 SUB_FILES=	pkg-message
+SUB_LIST=	GROUP=${GROUPS} \
+		USER=${USERS}
+
+USERS=		_turnserver
+GROUPS=		_turnserver
 
 MANPAGES=	turnserver.1 turnadmin.1 turnutils.1 turnutils_peer.1 \
 		turnutils_stunclient.1 turnutils_uclient.1 coturn.1 \
 		turnutils_oauth.1 turnutils_natdiscovery.1
 
-DOCS=	html TurnNetworks.pdf
-PORTREADMEDOCS=	LICENSE README.turnserver README.turnadmin README.turnutils INSTALL
-PORTDOCS=	${DOCS} ${PORTREADMEDOCS} postinstall.txt schema.sql schema.mongo.sh \
-		schema.userdb.redis schema.stats.redis
+DOCS=		html TurnNetworks.pdf
+PORTREADMEDOCS=	LICENSE README.turnserver README.turnadmin README.turnutils \
+		INSTALL
+PORTDOCS=	${DOCS} ${PORTREADMEDOCS} postinstall.txt schema.mongo.sh \
+		schema.sql schema.stats.redis schema.userdb.redis
 
 _BIN_UTILS=	peer stunclient uclient oauth natdiscovery
 
-_ETC_EXAMPLES=	turnserver.conf turn_client_cert.pem \
-		turn_client_pkey.pem turn_server_cert.pem turn_server_pkey.pem
-_SCRIPT_EXAMPLES=	peer.sh	\
-	basic/relay.sh basic/dos_attack.sh \
-	basic/tcp_client_c2c_tcp_relay.sh basic/udp_c2c_client.sh \
-	basic/udp_client.sh basic/tcp_client.sh \
-	loadbalance/master_relay.sh loadbalance/slave_relay_1.sh loadbalance/slave_relay_2.sh \
-	loadbalance/udp_c2c.sh loadbalance/tcp_c2c_tcp_relay.sh \
-	longtermsecure/secure_dtls_client.sh longtermsecure/secure_relay.sh \
-	longtermsecure/secure_tls_client_cert.sh longtermsecure/secure_dtls_client_cert.sh \
-	longtermsecure/secure_relay_cert.sh \
-	longtermsecure/secure_tcp_client_c2c_tcp_relay.sh longtermsecure/secure_tcp_client.sh \
-	longtermsecure/secure_tls_client_c2c_tcp_relay.sh longtermsecure/secure_tls_client.sh \
-	longtermsecure/secure_udp_c2c.sh longtermsecure/secure_udp_client.sh \
-	longtermsecure/secure_sctp_client.sh \
-	longtermsecure/secure_dos_attack.sh \
-	longtermsecuredb/secure_relay_with_db_psql.sh \
-	longtermsecuredb/secure_relay_with_db_mysql.sh \
-	longtermsecuredb/secure_relay_with_db_mysql_ssl.sh \
-	longtermsecuredb/secure_relay_with_db_mongo.sh \
-	longtermsecuredb/secure_relay_with_db_redis.sh \
-	longtermsecuredb/secure_relay_with_db_sqlite.sh \
-	restapi/secure_relay_secret.sh \
-	restapi/secure_relay_secret_with_db_mysql.sh \
-	restapi/secure_relay_secret_with_db_psql.sh \
-	restapi/secure_relay_secret_with_db_redis.sh \
-	restapi/secure_relay_secret_with_db_mongo.sh \
-	restapi/secure_relay_secret_with_db_sqlite.sh \
-	restapi/secure_udp_client_with_secret.sh \
-	restapi/secure_relay_secret_with_db_psql.sh \
-	restapi/shared_secret_maintainer.pl \
-	selfloadbalance/secure_dos_attack.sh \
-	selfloadbalance/secure_relay.sh
-
-OPTIONS_DEFINE=	DOCS EXAMPLES MYSQL PGSQL REDIS SQLITE
+_ETC_EXAMPLES=		turnserver.conf turn_client_cert.pem \
+			turn_client_pkey.pem turn_server_cert.pem \
+			turn_server_pkey.pem
+_SCRIPT_EXAMPLES=	peer.sh basic/relay.sh basic/dos_attack.sh \
+			basic/tcp_client_c2c_tcp_relay.sh \
+			basic/udp_c2c_client.sh basic/udp_client.sh \
+			basic/tcp_client.sh loadbalance/master_relay.sh \
+			loadbalance/slave_relay_1.sh \
+			loadbalance/slave_relay_2.sh loadbalance/udp_c2c.sh \
+			loadbalance/tcp_c2c_tcp_relay.sh \
+			longtermsecure/secure_dtls_client.sh \
+			longtermsecure/secure_relay.sh \
+			longtermsecure/secure_tls_client_cert.sh \
+			longtermsecure/secure_dtls_client_cert.sh \
+			longtermsecure/secure_relay_cert.sh \
+			longtermsecure/secure_tcp_client_c2c_tcp_relay.sh \
+			longtermsecure/secure_tcp_client.sh \
+			longtermsecure/secure_tls_client_c2c_tcp_relay.sh \
+			longtermsecure/secure_tls_client.sh \
+			longtermsecure/secure_udp_c2c.sh \
+			longtermsecure/secure_udp_client.sh \
+			longtermsecure/secure_sctp_client.sh \
+			longtermsecure/secure_dos_attack.sh \
+			longtermsecuredb/secure_relay_with_db_psql.sh \
+			longtermsecuredb/secure_relay_with_db_mysql.sh \
+			longtermsecuredb/secure_relay_with_db_mysql_ssl.sh \
+			longtermsecuredb/secure_relay_with_db_mongo.sh \
+			longtermsecuredb/secure_relay_with_db_redis.sh \
+			longtermsecuredb/secure_relay_with_db_sqlite.sh \
+			restapi/secure_relay_secret.sh \
+			restapi/secure_relay_secret_with_db_mysql.sh \
+			restapi/secure_relay_secret_with_db_psql.sh \
+			restapi/secure_relay_secret_with_db_redis.sh \
+			restapi/secure_relay_secret_with_db_mongo.sh \
+			restapi/secure_relay_secret_with_db_sqlite.sh \
+			restapi/secure_udp_client_with_secret.sh \
+			restapi/secure_relay_secret_with_db_psql.sh \
+			restapi/shared_secret_maintainer.pl \
+			selfloadbalance/secure_dos_attack.sh \
+			selfloadbalance/secure_relay.sh
+
+OPTIONS_DEFINE=		DOCS EXAMPLES MYSQL PGSQL REDIS SQLITE
 OPTIONS_DEFAULT=	MYSQL PGSQL REDIS SQLITE
-OPTIONS_SUB=	yes
+OPTIONS_SUB=		yes
 
 REDIS_DESC=	Redis support for user database and for status and statistics reporting
 
-MYSQL_USES=	mysql
+MYSQL_USES=			mysql
 MYSQL_CONFIGURE_ENV_OFF=	TURN_NO_MYSQL=1
 
-PGSQL_USES=	pgsql
+PGSQL_USES=			pgsql
 PGSQL_CONFIGURE_ENV_OFF=	TURN_NO_PQ=1
 
-REDIS_LIB_DEPENDS=	libhiredis.so:databases/hiredis
+REDIS_LIB_DEPENDS=		libhiredis.so:databases/hiredis
 REDIS_CONFIGURE_ENV_OFF=	TURN_NO_HIREDIS=1
 
-SQLITE_USES=	sqlite
+SQLITE_USES=			sqlite
 SQLITE_CONFIGURE_ENV_OFF=	TURN_NO_SQLITE=1
 
 do-install:
diff --git a/net/turnserver/distinfo b/net/turnserver/distinfo
index 90ab33895e25..9a46d7eb91ef 100644
--- a/net/turnserver/distinfo
+++ b/net/turnserver/distinfo
@@ -1,5 +1,5 @@
 TIMESTAMP = 1783348674
 SHA256 (turn.extra.docs-2.0.0.1.tar.gz) = 3a86600fd0a30ce7aeb547e80402ce68ea9959f7dd58697e5b47fda6e33ab9ce
 SIZE (turn.extra.docs-2.0.0.1.tar.gz) = 485379
-SHA256 (coturn-coturn-4.14.0_GH0.tar.gz) = dc575988326274eb46256b04ef8dad698df8c8e053a35d9e5596fa8f2208bf81
-SIZE (coturn-coturn-4.14.0_GH0.tar.gz) = 712150
+SHA256 (coturn-coturn-4.16.0_GH0.tar.gz) = 4782c1560c2dfa4697dd3fbd85f2f8b506beb48f1d738351464300ef1e294760
+SIZE (coturn-coturn-4.16.0_GH0.tar.gz) = 788671
diff --git a/net/turnserver/files/pkg-message.in b/net/turnserver/files/pkg-message.in
index b7e20aed04dd..0accf031a2ae 100644
--- a/net/turnserver/files/pkg-message.in
+++ b/net/turnserver/files/pkg-message.in
@@ -39,6 +39,10 @@ The TURN Server supports (optionally) SQLite, MySQL, PostgreSQL, Redis.
    $ man turnserver
    $ man turnadmin
    $ man turnutils
+
+Please be aware that running as non-root user may require additional
+workarounds on FreeBSD, as suggested by this bug report:
+https://github.com/coturn/coturn/issues/1098
 EOM
 }
 ]
diff --git a/net/turnserver/files/turnserver.in b/net/turnserver/files/turnserver.in
index 8d82fc8e9b8c..2b0bcd5354d4 100644
--- a/net/turnserver/files/turnserver.in
+++ b/net/turnserver/files/turnserver.in
@@ -11,6 +11,8 @@
 #				Set it to YES to enable turnserver.
 # turnserver_config (path):	Set to %%PREFIX%%/etc/turnserver.conf
 #				by default.
+# turnserver_user (str):	Set to %%USER%% by default.
+# turnserver_group (str):	Set to %%GROUP%% by default.
 
 . /etc/rc.subr
 
@@ -19,8 +21,10 @@ rcvar=turnserver_enable
 
 load_rc_config $name
 
-: ${turnserver_enable:=no}
-: ${turnserver_config=%%PREFIX%%/etc/turnserver.conf}
+: ${turnserver_enable:="NO"}
+: ${turnserver_config="%%PREFIX%%/etc/turnserver.conf"}
+: ${turnserver_user:="%%USER%%"}
+: ${turnserver_group:="%%GROUP%%"}
 
 command="%%PREFIX%%/bin/${name}"
 command_args="--daemon -c ${turnserver_config}"


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a72fe46.3e8fc.14efb5fc>