aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Druzenko <vvd@FreeBSD.org>2024-01-22 13:14:47 +0000
committerVladimir Druzenko <vvd@FreeBSD.org>2024-01-22 18:57:05 +0000
commit77aa89de8608583ed22a4b54d54559b4d363ea03 (patch)
treec9bb4ff12200032baab476c7ee81224fb07b78b0
parentedddd2c43ba5e8d21ae6f564759a2d514d806aae (diff)
downloadports-77aa89de8608583ed22a4b54d54559b4d363ea03.tar.gz
ports-77aa89de8608583ed22a4b54d54559b4d363ea03.zip
audio/mumble-server: bootstrap from audio/murmur
Copy audio/murmur unchanged except for the rename rc.d script from murmur.in to mumble_server.in. This aids diffing to the previous version. PR: 261395 Approved by: arrowd (mentor) Differential Revision: https://reviews.freebsd.org/D41048
-rw-r--r--audio/mumble-server/Makefile85
-rw-r--r--audio/mumble-server/distinfo3
-rw-r--r--audio/mumble-server/files/mumble_server.in41
-rw-r--r--audio/mumble-server/files/patch-initialize-SSL34
-rw-r--r--audio/mumble-server/files/patch-scripts_murmur.ini18
-rw-r--r--audio/mumble-server/files/patch-src_SelfSignedCertificate.cpp15
-rw-r--r--audio/mumble-server/pkg-descr2
-rw-r--r--audio/mumble-server/pkg-plist7
8 files changed, 205 insertions, 0 deletions
diff --git a/audio/mumble-server/Makefile b/audio/mumble-server/Makefile
new file mode 100644
index 000000000000..ebb2fb8584ef
--- /dev/null
+++ b/audio/mumble-server/Makefile
@@ -0,0 +1,85 @@
+PORTNAME= murmur
+PORTVERSION= 1.3.4
+CATEGORIES= audio net
+
+MAINTAINER= vvd@FreeBSD.org
+COMMENT= Server component of Mumble
+WWW= https://www.mumble.info/
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${LOCALBASE}/include/boost/function.hpp:devel/boost-libs
+LIB_DEPENDS= libabsl_base.so:devel/abseil \
+ libprotobuf.so:devel/protobuf
+
+USES= compiler:c++11-lang qmake pkgconfig python:build qt:5 ssl
+BROKEN_SSL= openssl openssl31
+BROKEN_SSL_REASON= Requires OpenSSL 3.0.0 deprecated CRYPTO_MEM_CHECK_ON
+USE_CXXSTD= c++11
+USE_QT= buildtools:build core network sql xml
+
+USE_GITHUB= YES
+GH_ACCOUNT= mumble-voip
+GH_PROJECT= mumble
+
+CONFIG= no-client
+QMAKE_ARGS= "CONFIG+=${CONFIG}"
+QMAKE_ENV+= "MUMBLE_PYTHON=${PYTHON_CMD}"
+
+USE_RC_SUBR= murmur
+SUB_LIST+= USERS="${USERS}" GROUPS="${GROUPS}"
+
+OPTIONS_DEFINE= BONJOUR DBUS DOCS ICE
+OPTIONS_DEFAULT= BONJOUR MYSQL SQLITE
+OPTIONS_MULTI= SQL
+OPTIONS_MULTI_SQL= MYSQL SQLITE
+
+BONJOUR_DESC= Bonjour Support
+BONJOUR_VARS_OFF= CONFIG+=no-bonjour
+BONJOUR_LIB_DEPENDS= libdns_sd.so:net/mDNSResponder
+
+DBUS_VARS_OFF= CONFIG+=no-dbus
+DBUS_USE= QT=dbus
+
+ICE_DESC= Ice Support
+ICE_VARS_OFF= CONFIG+=no-ice
+ICE_LIB_DEPENDS= libIce.so:devel/ice
+
+MYSQL_VARS_OFF= CONFIG+=no-sql-mysql
+MYSQL_USE= QT=sql-mysql
+
+SQLITE_VARS_OFF= CONFIG+=no-sqlite3_run
+SQLITE_USE= QT=sql-sqlite3:run
+
+USERS= murmur
+GROUPS= murmur
+
+.include <bsd.port.pre.mk>
+# PCH is broken on GCC
+.if ${CHOSEN_COMPILER_TYPE} == gcc
+CONFIG+= no-pch
+.endif
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|--no-add-needed|--no-copy-dt-needed-entries|' ${WRKSRC}/qmake/compiler.pri
+ @${ECHO_CMD} 'QMAKE_LFLAGS += -fstack-protector' >> ${WRKSRC}/src/murmur/murmur.pro
+
+pre-install:
+ ${SED} -i '' -e 's|database=.*|database=/var/db/murmur/murmur.sqlite|' ${WRKSRC}/scripts/murmur.ini
+ ${SED} -i '' -e 's|#pidfile=.*|pidfile=/var/run/murmur/murmur.pid|' ${WRKSRC}/scripts/murmur.ini
+ ${SED} -i '' -e 's|#logfile=.*|logfile=/var/log/murmur/murmur.log|' ${WRKSRC}/scripts/murmur.ini
+ ${SED} -i '' -e 's|#host=.*|host=0.0.0.0|' ${WRKSRC}/scripts/murmur.ini
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/release/murmurd ${STAGEDIR}${PREFIX}/sbin
+ ${INSTALL_DATA} ${WRKSRC}/scripts/murmur.ini ${STAGEDIR}${PREFIX}/etc/murmur.ini.sample
+ ${CP} ${WRKSRC}/man/murmurd.1 ${STAGEDIR}${PREFIX}/share/man/man1
+
+do-install-DOCS-on:
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
+.for f in CHANGES INSTALL README README.Linux
+ ${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR}
+.endfor
+
+.include <bsd.port.post.mk>
diff --git a/audio/mumble-server/distinfo b/audio/mumble-server/distinfo
new file mode 100644
index 000000000000..b5c6420567b2
--- /dev/null
+++ b/audio/mumble-server/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1705575971
+SHA256 (mumble-voip-mumble-1.3.4_GH0.tar.gz) = a692840423ddbd00ecca1ce174e4279c753acf58278579f603e56b644eae6f8e
+SIZE (mumble-voip-mumble-1.3.4_GH0.tar.gz) = 4896282
diff --git a/audio/mumble-server/files/mumble_server.in b/audio/mumble-server/files/mumble_server.in
new file mode 100644
index 000000000000..9767d41513e7
--- /dev/null
+++ b/audio/mumble-server/files/mumble_server.in
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+# PROVIDE: murmur
+# REQUIRE: DAEMON
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# murmur_enable (bool): Set to NO by default.
+# Set it to YES to enable murmur.
+# murmur_flags (str): Set to "" by default.
+# Extra flags passed to start command.
+#
+
+. /etc/rc.subr
+
+name=murmur
+rcvar=murmur_enable
+load_rc_config $name
+
+# Set some defaults
+: ${murmur_enable:=NO}
+: ${murmur_user=%%USERS%%}
+
+command="%%PREFIX%%/sbin/murmurd"
+command_args="-ini %%PREFIX%%/etc/murmur.ini"
+pidfile=/var/run/murmur/murmur.pid
+start_precmd=murmur_prestart
+extra_commands="reload"
+sig_reload="USR1"
+
+murmur_prestart() {
+ for i in /var/log/murmur /var/run/murmur /var/db/murmur; do
+ if [ ! -d ${i} ]; then
+ install -d -o %%USERS%% -g %%GROUPS%% ${i}
+ fi
+ done
+}
+
+run_rc_command "$1"
diff --git a/audio/mumble-server/files/patch-initialize-SSL b/audio/mumble-server/files/patch-initialize-SSL
new file mode 100644
index 000000000000..00687b8ebed3
--- /dev/null
+++ b/audio/mumble-server/files/patch-initialize-SSL
@@ -0,0 +1,34 @@
+Description: the SSL library must be initialized, otherwise mumble and
+ mumble-server both fail to find the available ciphers after a rebuild
+ with openssl_1.0.2d-3. The two calls used are based on:
+ https://wiki.openssl.org/index.php/SSL/TLS_Client#Initialization
+Author: Colomban Wendling <lists.ban@herbesfolles.org>
+ Christohper Knadle <Chris.Knadle@coredump.us>
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804363
+Bug-Mumble: https://github.com/mumble-voip/mumble/issues/1876
+Last-Updated: 2015-11-10
+
+--- src/mumble/main.cpp.orig 2019-08-30 01:01:56 UTC
++++ src/mumble/main.cpp
+@@ -132,6 +132,9 @@ int main(int argc, char **argv) {
+
+ os_init();
+
++ SSL_library_init();
++ SSL_load_error_strings();
++
+ bool bAllowMultiple = false;
+ bool suppressIdentity = false;
+ bool customJackClientName = false;
+--- src/murmur/main.cpp.orig 2019-08-30 01:01:56 UTC
++++ src/murmur/main.cpp
+@@ -205,6 +205,9 @@ int main(int argc, char **argv) {
+ QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
+ #endif
+
++ SSL_library_init();
++ SSL_load_error_strings();
++
+ #ifdef Q_OS_WIN
+ // By default, windbus expects the path to dbus-daemon to be in PATH, and the path
+ // should contain bin\\, and the path to the config is hardcoded as ..\etc
diff --git a/audio/mumble-server/files/patch-scripts_murmur.ini b/audio/mumble-server/files/patch-scripts_murmur.ini
new file mode 100644
index 000000000000..af12a75bf106
--- /dev/null
+++ b/audio/mumble-server/files/patch-scripts_murmur.ini
@@ -0,0 +1,18 @@
+--- scripts/murmur.ini.orig 2020-09-04 21:33:39 UTC
++++ scripts/murmur.ini
+@@ -93,13 +93,13 @@ icesecretwrite=
+ ; logs to the file 'murmur.log'. If you leave this field blank
+ ; on Unix-like systems, Murmur will force itself into foreground
+ ; mode which logs to the console.
+-;logfile=murmur.log
++logfile=/var/log/murmur/murmur.log
+
+ ; If set, Murmur will write its process ID to this file
+ ; when running in daemon mode (when the -fg flag is not
+ ; specified on the command line). Only available on
+ ; Unix-like systems.
+-;pidfile=
++pidfile=/var/run/murmur/murmur.pid
+
+ ; The below will be used as defaults for new configured servers.
+ ; If you're just running one server (the default), it's easier to
diff --git a/audio/mumble-server/files/patch-src_SelfSignedCertificate.cpp b/audio/mumble-server/files/patch-src_SelfSignedCertificate.cpp
new file mode 100644
index 000000000000..b5725633ae9d
--- /dev/null
+++ b/audio/mumble-server/files/patch-src_SelfSignedCertificate.cpp
@@ -0,0 +1,15 @@
+--- src/SelfSignedCertificate.cpp.orig 2023-06-11 17:43:07 UTC
++++ src/SelfSignedCertificate.cpp
+@@ -45,10 +45,12 @@ bool SelfSignedCertificate::generate(CertificateType c
+ QString commonName;
+ bool isServerCert = certificateType == CertificateTypeServerCertificate;
+
++#ifdef CRYPTO_MEM_CHECK_ON
+ if (CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON) == -1) {
+ ok = false;
+ goto out;
+ }
++#endif
+
+ x509 = X509_new();
+ if (x509 == NULL) {
diff --git a/audio/mumble-server/pkg-descr b/audio/mumble-server/pkg-descr
new file mode 100644
index 000000000000..a9b0e073fe7d
--- /dev/null
+++ b/audio/mumble-server/pkg-descr
@@ -0,0 +1,2 @@
+Murmur is the server component of Mumble, a low-latency, high quality
+VoIP application.
diff --git a/audio/mumble-server/pkg-plist b/audio/mumble-server/pkg-plist
new file mode 100644
index 000000000000..ebea70067760
--- /dev/null
+++ b/audio/mumble-server/pkg-plist
@@ -0,0 +1,7 @@
+@sample etc/murmur.ini.sample
+share/man/man1/murmurd.1.gz
+sbin/murmurd
+%%PORTDOCS%%%%DOCSDIR%%/CHANGES
+%%PORTDOCS%%%%DOCSDIR%%/INSTALL
+%%PORTDOCS%%%%DOCSDIR%%/README
+%%PORTDOCS%%%%DOCSDIR%%/README.Linux