Compare commits
1 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| a4d52428a7 |
37
_service
Normal file
37
_service
Normal file
@@ -0,0 +1,37 @@
|
||||
<services>
|
||||
<service name="obs_scm" mode="manual">
|
||||
<param name="url">https://github.com/mumble-voip/mumble.git</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
<param name="filename">mumble</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<param name="revision">v1.5.735</param>
|
||||
<param name="versionrewrite-pattern">v(.*)</param>
|
||||
<param name="versionrewrite-replacement">\1</param>
|
||||
</service>
|
||||
<service name="set_version" mode="manual"/>
|
||||
<service name="tar" mode="buildtime">
|
||||
<!-- throw away a number of unused, bundled libs -->
|
||||
<param name="exclude">3rdparty/GL</param>
|
||||
<param name="exclude">3rdparty/gsl</param>
|
||||
<param name="exclude">3rdparty/jack</param>
|
||||
<param name="exclude">3rdparty/march-override-*</param>
|
||||
<param name="exclude">3rdparty/minhook</param>
|
||||
<param name="exclude">3rdparty/nlohmann_json</param>
|
||||
<param name="exclude">3rdparty/pipewire</param>
|
||||
<param name="exclude">3rdparty/portaudio</param>
|
||||
<param name="exclude">3rdparty/pulseaudio</param>
|
||||
<param name="exclude">3rdparty/speexdsp-build</param>
|
||||
<param name="exclude">3rdparty/speexdsp</param>
|
||||
<param name="exclude">3rdparty/tracy</param>
|
||||
<param name="exclude">3rdparty/xinputcheck*</param>
|
||||
<param name="exclude">installer</param>
|
||||
<param name="exclude">src/mumble/qttranslations</param>
|
||||
<!-- and the licence texts, see license.patch -->
|
||||
<param name="exclude">3rdPartyLicenses</param>
|
||||
</service>
|
||||
<service name="recompress" mode="buildtime">
|
||||
<param name="file">*.tar</param>
|
||||
<param name="compression">xz</param>
|
||||
</service>
|
||||
</services>
|
||||
6
_servicedata
Normal file
6
_servicedata
Normal file
@@ -0,0 +1,6 @@
|
||||
<servicedata>
|
||||
<service name="tar_scm">
|
||||
<param name="url">https://github.com/mumble-voip/mumble.git</param>
|
||||
<param name="changesrevision">f9f2d1b63b15883a470d1abe184342fe509b6dfb</param>
|
||||
</service>
|
||||
</servicedata>
|
||||
@@ -1,13 +1,12 @@
|
||||
diff -Nur mumble-src/plugins/CMakeLists.txt new/plugins/CMakeLists.txt
|
||||
--- mumble-src/plugins/CMakeLists.txt 2022-08-21 18:52:23.000000000 +0200
|
||||
+++ new/plugins/CMakeLists.txt 2022-09-01 12:24:10.507433751 +0200
|
||||
@@ -24,6 +24,9 @@
|
||||
|
||||
foreach(ITEM ${ITEMS})
|
||||
if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${ITEM}")
|
||||
--- mumble-1.5.517/plugins/CMakeLists.txt.orig 2023-03-06 10:12:15.561392259 +0000
|
||||
+++ mumble-1.5.517/plugins/CMakeLists.txt 2023-03-06 10:13:47.946025289 +0000
|
||||
@@ -91,6 +91,9 @@ list(REMOVE_DUPLICATES AVAILABLE_PLUGINS
|
||||
# target.
|
||||
foreach(CURRENT_PLUGIN IN LISTS AVAILABLE_PLUGINS)
|
||||
set(PLUGIN_RETRACTED OFF)
|
||||
+ if (ITEM STREQUAL "gtav" AND CMAKE_SIZEOF_VOID_P LESS 8)
|
||||
+ continue()
|
||||
+ endif()
|
||||
set(PLUGIN_RETRACTED OFF)
|
||||
|
||||
# If the plugin is retracted the corresponding CMakeLists.txt is supposed to set the
|
||||
# If the plugin is retracted the corresponding CMakeLists.txt is supposed to set the
|
||||
# PLUGIN_RETRACTED variable in the parent scope so that we can access it here
|
||||
|
||||
54
licenses.patch
Normal file
54
licenses.patch
Normal file
@@ -0,0 +1,54 @@
|
||||
Index: mumble-1.5.634/scripts/generate_license_header.py
|
||||
===================================================================
|
||||
--- mumble-1.5.634.orig/scripts/generate_license_header.py
|
||||
+++ mumble-1.5.634/scripts/generate_license_header.py
|
||||
@@ -22,49 +22,10 @@ repoRoot = os.path.normpath(os.path.join
|
||||
# List of (3rdparty) licenses [<variableName>, <pathToLicenseFile>, <DisplayName>, <URL>, (<define-guard>)?]
|
||||
licenses = [
|
||||
["licenseMumble", "LICENSE", "Mumble", "https://www.mumble.info/"],
|
||||
- ["licenseSPEEXDSP", "3rdparty/speexdsp/COPYING", "SpeexDSP", "http://www.speex.org/"],
|
||||
- ["licenseOpenSSL", "3rdPartyLicenses/openssl_license.txt", "OpenSSL", "http://www.openssl.org/"],
|
||||
- ["licenseLibsndfile", "3rdPartyLicenses/libsndfile_license.txt", "libsndfile", "http://www.mega-nerd.com/libsndfile/"],
|
||||
- ["licenseOgg", "3rdPartyLicenses/libogg_license.txt", "libogg", "http://www.xiph.org/"],
|
||||
- ["licenseVorbis", "3rdPartyLicenses/libvorbis_license.txt", "libvorbis", "http://www.xiph.org/"],
|
||||
- ["licenseFLAC", "3rdPartyLicenses/libflac_license.txt", "libFLAC", "http://flac.sourceforge.net/"],
|
||||
- ["licenseMachOverride", "3rdPartyLicenses/mach_override_license.txt", "mach_override", "https://github.com/rentzsch/mach_star", "Q_OS_MAC"],
|
||||
- ["licenseMinHook", "3rdparty/minhook/LICENSE.txt", "MinHook", "https://github.com/TsudaKageyu/minhook", "Q_OS_WIN64"],
|
||||
- ["licenseQtTranslations", "src/mumble/qttranslations/LICENSE",
|
||||
- "Additional Qt translations", "https://www.virtualbox.org/ticket/2018", "USING_BUNDLED_QT_TRANSLATIONS"],
|
||||
["licenseFlagIcons", "3rdparty/flag-icons/LICENSE", "flag-icons", "https://flagicons.lipis.dev/" ],
|
||||
- ["licenseXInputCheck", "3rdparty/xinputcheck-src/COPYING.txt", "XInputCheck (SDL_IsXInput function)", "https://www.libsdl.org/"],
|
||||
["licenseQQBonjour", "3rdparty/qqbonjour/LICENSE", "QQBonjour", "https://doc.qt.io/archives/qq/qq23-bonjour.html"],
|
||||
["licenseSmallFT", "3rdparty/smallft/LICENSE", "smallft", "https://www.xiph.org"],
|
||||
- ["licenseOldStyleLicenseHeaders", "3rdPartyLicenses/mumble-old-license-headers/LICENSE.txt", "Old-style Mumble license headers", "https://www.mumble.info"],
|
||||
["licenseArc4RandomUniform", "3rdparty/arc4random/LICENSE", "arc4random_uniform", "https://www.openbsd.org"],
|
||||
- ["licenseMariaDBCConnector", "3rdPartyLicenses/mariadb_c_connector_license.txt", "MariaDB Connector/C", "https://www.mariadb.org", "USE_BUILDENV"],
|
||||
- ["licenseZlib", "3rdPartyLicenses/zlib_license.txt", "ZLIB", "https://www.zlib.net", "USE_BUILDENV"],
|
||||
- ["licenseProtobuf", "3rdPartyLicenses/protobuf_license.txt", "Protobuf", "https://developers.google.com/protocol-buffers", "USE_BUILDENV"],
|
||||
- ["licenseExpat", "3rdPartyLicenses/expat_license.txt", "Expat", "http://libexpat.org", "USE_BUILDENV"],
|
||||
- ["licenseBoost", "3rdPartyLicenses/boost_license.txt", "Boost C++ Libraries", "https://www.boost.org/", "USE_BUILDENV"],
|
||||
- ["licenseBzip2", "3rdPartyLicenses/bzip2_license.txt", "bzip2", "http://www.bzip.org", "USE_BUILDENV"],
|
||||
- ["licenseBerkeleyDB", "3rdPartyLicenses/berkeleydb_license.txt", "BerkeleyDB", "https://www.oracle.com/database/berkeley-db", "USE_BUILDENV"],
|
||||
- ["licenseFreetype", "3rdPartyLicenses/freetype_license.txt", "Freetype", "https://www.freetype.org/", "USE_BUILDENV"],
|
||||
- ["licenseHarfBuzzNG", "3rdPartyLicenses/harfbuzzng_license.txt", "HarfBuzz", "https://www.freedesktop.org/wiki/Software/HarfBuzz", "USE_BUILDENV"],
|
||||
- ["licenseLibPNG", "3rdPartyLicenses/libpng_license.txt", "LibPNG", "http://www.libpng.org/pub/png/libpng.html", "USE_BUILDENV"],
|
||||
- ["licenseLibjpegTurbo", "3rdPartyLicenses/libjpeg_turbo_license.txt", "libjpeg-turbo", "http://www.libjpeg-turbo.org", "USE_BUILDENV"],
|
||||
- ["licenseZeroCIce", "3rdPartyLicenses/zeroc_ice_license.txt", "ZeroC Ice", "https://zeroc.com/", "USE_BUILDENV"],
|
||||
- ["licenseMcpp", "3rdPartyLicenses/mcpp_license.txt", "mcpp", "http://mcpp.sourceforge.net/", "USE_BUILDENV"],
|
||||
- ["licenseMDNSResponder", "3rdPartyLicenses/mdnsresponder_license.txt", "mDNSResponder", "https://opensource.apple.com/tarballs/mDNSResponder/", "USE_BUILDENV"],
|
||||
- ["licensePCRE", "3rdPartyLicenses/pcre_license.txt", "PCRE", "http://www.pcre.org/", "USE_BUILDENV"],
|
||||
- ["licenseQt", "3rdPartyLicenses/qt_license.txt", "Qt", "https://www.qt.io/", "USE_BUILDENV"],
|
||||
- ["licenseSQLite3", "3rdPartyLicenses/sqlite3_license.txt", "SQLite3", "http://sqlite.org", "USE_BUILDENV"],
|
||||
- ["licenseXar", "3rdPartyLicenses/xar_license.txt", "XAR", "https://opensource.apple.com/source/xar/", "USE_BUILDENV"], # macOS only
|
||||
- ["licenseAvahi", "3rdPartyLicenses/avahi_license.txt", "Avahi", "https://www.avahi.org/", "USE_BUILDENV"], # Linux only
|
||||
- ["licenseDBus", "3rdPartyLicenses/dbus_license.txt", "D-Bus", "https://www.freedesktop.org/wiki/Software/dbus", "USE_BUILDENV"], # Linux only
|
||||
- ["licenseAppImageRuntime", "3rdPartyLicenses/appimage_runtime_license.txt", "AppImage Runtime", "http://www.appimage.org", "USE_BUILDENV"], # Linux only
|
||||
- ["licenseSquashfuse", "3rdPartyLicenses/squashfuse_license.txt", "squashfuse", "https://github.com/vasi/squashfuse", "USE_BUILDENV"], # Linux only
|
||||
- ["licenseLibfuse", "3rdPartyLicenses/libfuse_license.txt", "libfuse", "https://github.com/libfuse/libfuse/", "USE_BUILDENV"], # Linux only
|
||||
- ["licenseGlib", "3rdPartyLicenses/glib_license.txt", "glib", "https://developer.gnome.org/glib/", "USE_BUILDENV"], # Linux only
|
||||
- ["licenseLibcap2", "3rdPartyLicenses/libcap2_license.txt", "libcap2", "https://sites.google.com/site/fullycapable/", "USE_BUILDENV"], # Linux only
|
||||
- ["licenseLibdaemon", "3rdPartyLicenses/libdaemon_license.txt", "libdaemon", "http://0pointer.de/lennart/projects/libdaemon/", "USE_BUILDENV"], # Linux only
|
||||
- ["licenseLibffi", "3rdPartyLicenses/libffi_license.txt", "libffi", "https://sourceware.org/libffi/", "USE_BUILDENV"] # Linux only
|
||||
]
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:378e61d5bfa58ba51bfbb645067f459214a9872da09b306f2c2c3f1902200547
|
||||
size 9457292
|
||||
@@ -1,7 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iHUEABYIAB0WIQQe3r4qk8uX+pkD1S4l9jxmJF38YAUCYyDKFwAKCRAl9jxmJF38
|
||||
YCVbAP0aRBeveBh85FMS8CHFG3dpr9ozmJG4FEmv1lXTtX1NgAEArAjt9Jr/e+AC
|
||||
fmT1W39pGjwC8PvQKdQ/clFhsZuing8=
|
||||
=5b4g
|
||||
-----END PGP SIGNATURE-----
|
||||
38
mumble-1.5.629-unbundle-audio-backends.patch
Normal file
38
mumble-1.5.629-unbundle-audio-backends.patch
Normal file
@@ -0,0 +1,38 @@
|
||||
Index: mumble-1.5.629/src/mumble/CMakeLists.txt
|
||||
===================================================================
|
||||
--- mumble-1.5.629.orig/src/mumble/CMakeLists.txt
|
||||
+++ mumble-1.5.629/src/mumble/CMakeLists.txt
|
||||
@@ -1027,7 +1027,6 @@ if(jackaudio)
|
||||
)
|
||||
|
||||
target_compile_definitions(mumble_client_object_lib PUBLIC "USE_JACKAUDIO")
|
||||
- target_include_directories(mumble_client_object_lib SYSTEM PUBLIC "${3RDPARTY_DIR}/jack")
|
||||
endif()
|
||||
|
||||
if(oss)
|
||||
@@ -1049,7 +1048,8 @@ if(pipewire)
|
||||
)
|
||||
|
||||
target_compile_definitions(mumble_client_object_lib PUBLIC "USE_PIPEWIRE")
|
||||
- target_include_directories(mumble_client_object_lib SYSTEM PUBLIC "${3RDPARTY_DIR}/pipewire")
|
||||
+ target_include_directories(mumble_client_object_lib SYSTEM PUBLIC "/usr/include/pipewire-0.3")
|
||||
+ target_include_directories(mumble_client_object_lib SYSTEM PUBLIC "/usr/include/spa-0.2")
|
||||
endif()
|
||||
|
||||
if(portaudio)
|
||||
@@ -1060,7 +1060,6 @@ if(portaudio)
|
||||
)
|
||||
|
||||
target_compile_definitions(mumble_client_object_lib PUBLIC "USE_PORTAUDIO")
|
||||
- target_include_directories(mumble_client_object_lib SYSTEM PUBLIC "${3RDPARTY_DIR}/portaudio")
|
||||
endif()
|
||||
|
||||
if(pulseaudio)
|
||||
@@ -1071,7 +1070,6 @@ if(pulseaudio)
|
||||
)
|
||||
|
||||
target_compile_definitions(mumble_client_object_lib PUBLIC "USE_PULSEAUDIO")
|
||||
- target_include_directories(mumble_client_object_lib SYSTEM PUBLIC "${3RDPARTY_DIR}/pulseaudio")
|
||||
endif()
|
||||
|
||||
if(wasapi)
|
||||
36
mumble-1.5.735-fix-gcc15.patch
Normal file
36
mumble-1.5.735-fix-gcc15.patch
Normal file
@@ -0,0 +1,36 @@
|
||||
From f4259722553335d79e9d28948ab7bdb00293a5ec Mon Sep 17 00:00:00 2001
|
||||
From: Carl George <carlwgeorge@gmail.com>
|
||||
Date: Tue, 8 Apr 2025 23:25:52 -0500
|
||||
Subject: [PATCH] BUILD(overlay): Fix building with GCC 15
|
||||
|
||||
C23 added the bool keyword, which results in an error if you try to
|
||||
define an identifier named bool and then build with GCC 15. We can use
|
||||
stdbool.h to define bool instead.
|
||||
|
||||
https://gcc.gnu.org/gcc-15/porting_to.html#c23-new-keywords
|
||||
---
|
||||
overlay_gl/overlay.c | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/overlay_gl/overlay.c b/overlay_gl/overlay.c
|
||||
index 680241e1bbb..bf3051e540f 100644
|
||||
--- a/overlay_gl/overlay.c
|
||||
+++ b/overlay_gl/overlay.c
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <pwd.h>
|
||||
#include <semaphore.h>
|
||||
#include <stdarg.h>
|
||||
+#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -37,9 +38,6 @@
|
||||
|
||||
# include <link.h>
|
||||
|
||||
-typedef unsigned char bool;
|
||||
-# define true 1
|
||||
-# define false 0
|
||||
#elif defined(TARGET_MAC)
|
||||
# include <AGL/agl.h>
|
||||
# include <Carbon/Carbon.h>
|
||||
BIN
mumble-1.5.735.obscpio
LFS
Normal file
BIN
mumble-1.5.735.obscpio
LFS
Normal file
Binary file not shown.
@@ -1,35 +0,0 @@
|
||||
# This file is part of package mumble-server.
|
||||
#
|
||||
# Copyright (c) 2013 Pascal Bleser <pascal.bleser@opensuse.org>
|
||||
# Author: Pascal Bleser
|
||||
#
|
||||
# Description:
|
||||
#
|
||||
# Used to start the Mumble server (murmurd)
|
||||
#
|
||||
|
||||
[Unit]
|
||||
Description=Mumble Server (murmur)
|
||||
Requires=var-run.mount network.target remote-fs.target time-sync.target
|
||||
After=var-run.mount network.target remote-fs.target time-sync.target mysql.target
|
||||
|
||||
[Service]
|
||||
# added automatically, for details please see
|
||||
# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
|
||||
ProtectSystem=full
|
||||
ProtectHome=true
|
||||
PrivateDevices=true
|
||||
ProtectHostname=true
|
||||
ProtectClock=true
|
||||
ProtectKernelTunables=true
|
||||
ProtectKernelModules=true
|
||||
ProtectKernelLogs=true
|
||||
ProtectControlGroups=true
|
||||
RestrictRealtime=true
|
||||
# end of automatic additions
|
||||
User=mumble-server
|
||||
Group=mumble-server
|
||||
ExecStart=/usr/bin/mumble-server -fg -ini /etc/mumble-server.ini
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
534
mumble-unbundle-tracy.patch
Normal file
534
mumble-unbundle-tracy.patch
Normal file
@@ -0,0 +1,534 @@
|
||||
Index: mumble-1.5.735/src/CMakeLists.txt
|
||||
===================================================================
|
||||
--- mumble-1.5.735.orig/src/CMakeLists.txt
|
||||
+++ mumble-1.5.735/src/CMakeLists.txt
|
||||
@@ -12,8 +12,6 @@ option(qssldiffiehellmanparameters "Buil
|
||||
|
||||
option(zeroconf "Build support for zeroconf (mDNS/DNS-SD)." ON)
|
||||
|
||||
-option(tracy "Enable the tracy profiler." OFF)
|
||||
-
|
||||
option(bundled-gsl "Use the bundled GSL version instead of looking for one on the system" ON)
|
||||
|
||||
|
||||
@@ -192,23 +190,6 @@ if(qssldiffiehellmanparameters)
|
||||
target_compile_definitions(shared PUBLIC "USE_QSSLDIFFIEHELLMANPARAMETERS")
|
||||
endif()
|
||||
|
||||
-# Note: We always include and link against Tracy but it is only enabled, if we set the TRACY_ENABLE cmake option
|
||||
-# to ON, before including the respective subdirectory
|
||||
-set(TRACY_ENABLE ${tracy} CACHE BOOL "" FORCE)
|
||||
-set(TRACY_ON_DEMAND ON CACHE BOOL "" FORCE)
|
||||
-# We force to build Tracy as a static library in order to not create a dependency on the respective .so file
|
||||
-# (can cause issues for packagers as that dependency is retained even though Tracy is disabled)
|
||||
-set(PREV_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
|
||||
-set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
|
||||
-add_subdirectory("${3RDPARTY_DIR}/tracy" "tracy" EXCLUDE_FROM_ALL)
|
||||
-disable_warnings_for_all_targets_in("${3RDPARTY_DIR}/tracy")
|
||||
-message(STATUS "Tracy: ${TRACY_ENABLE}")
|
||||
-
|
||||
-# Restore whatever BUILD_SHARED_LIBS was set to before
|
||||
-set(BUILD_SHARED_LIBS ${PREV_BUILD_SHARED_LIBS} CACHE BOOL "" FORCE)
|
||||
-
|
||||
-target_link_libraries(shared PUBLIC Tracy::TracyClient)
|
||||
-
|
||||
# Add the GSL
|
||||
if(bundled-gsl)
|
||||
add_subdirectory("${3RDPARTY_DIR}/gsl" "${CMAKE_CURRENT_BINARY_DIR}/gsl" EXCLUDE_FROM_ALL)
|
||||
Index: mumble-1.5.735/src/murmur/AudioReceiverBuffer.cpp
|
||||
===================================================================
|
||||
--- mumble-1.5.735.orig/src/murmur/AudioReceiverBuffer.cpp
|
||||
+++ mumble-1.5.735/src/murmur/AudioReceiverBuffer.cpp
|
||||
@@ -8,8 +8,6 @@
|
||||
#include <algorithm>
|
||||
#include <cassert>
|
||||
|
||||
-#include <tracy/Tracy.hpp>
|
||||
-
|
||||
AudioReceiver::AudioReceiver(ServerUser &receiver, Mumble::Protocol::audio_context_t context,
|
||||
const VolumeAdjustment &volumeAdjustment)
|
||||
: m_receiver(receiver), m_context(context), m_volumeAdjustment(volumeAdjustment) {
|
||||
@@ -67,8 +65,6 @@ void AudioReceiverBuffer::addReceiver(co
|
||||
|
||||
void AudioReceiverBuffer::forceAddReceiver(ServerUser &receiver, Mumble::Protocol::audio_context_t context,
|
||||
bool includePositionalData, const VolumeAdjustment &volumeAdjustment) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
std::vector< AudioReceiver > &receiverList = includePositionalData ? m_positionalReceivers : m_regularReceivers;
|
||||
std::unordered_map< const ServerUser *, std::size_t > &userEntryIndices =
|
||||
includePositionalData ? m_positionalReceiverIndices : m_regularReceiverIndices;
|
||||
@@ -93,8 +89,6 @@ void AudioReceiverBuffer::forceAddReceiv
|
||||
}
|
||||
|
||||
void AudioReceiverBuffer::preprocessBuffer() {
|
||||
- ZoneScoped;
|
||||
-
|
||||
preprocessBuffer(m_regularReceivers);
|
||||
preprocessBuffer(m_positionalReceivers);
|
||||
}
|
||||
@@ -115,8 +109,6 @@ std::vector< AudioReceiver > &AudioRecei
|
||||
}
|
||||
|
||||
void AudioReceiverBuffer::preprocessBuffer(std::vector< AudioReceiver > &receiverList) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
#ifndef NDEBUG
|
||||
// Sort the list such that entries with same receiver are next to each other
|
||||
std::sort(receiverList.begin(), receiverList.end(), [](const AudioReceiver &lhs, const AudioReceiver &rhs) {
|
||||
Index: mumble-1.5.735/src/murmur/Server.cpp
|
||||
===================================================================
|
||||
--- mumble-1.5.735.orig/src/murmur/Server.cpp
|
||||
+++ mumble-1.5.735/src/murmur/Server.cpp
|
||||
@@ -37,10 +37,6 @@
|
||||
|
||||
#include <boost/bind/bind.hpp>
|
||||
|
||||
-#include "TracyConstants.h"
|
||||
-#include <tracy/Tracy.hpp>
|
||||
-#include <tracy/TracyC.h>
|
||||
-
|
||||
#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <vector>
|
||||
@@ -78,8 +74,6 @@ QSslSocket *SslServer::nextPendingSSLCon
|
||||
|
||||
|
||||
Server::Server(int snum, QObject *p) : QThread(p) {
|
||||
- tracy::SetThreadName("mumble-server");
|
||||
-
|
||||
bValid = true;
|
||||
iServerNum = snum;
|
||||
#ifdef USE_ZEROCONF
|
||||
@@ -734,8 +728,6 @@ void Server::udpActivated(int socket) {
|
||||
}
|
||||
|
||||
void Server::run() {
|
||||
- tracy::SetThreadName("Audio");
|
||||
-
|
||||
qint32 len;
|
||||
#if defined(__LP64__)
|
||||
unsigned char encbuff[Mumble::Protocol::MAX_UDP_PACKET_SIZE + 8];
|
||||
@@ -779,8 +771,6 @@ void Server::run() {
|
||||
++nfds;
|
||||
|
||||
while (bRunning) {
|
||||
- FrameMarkNamed(TracyConstants::UDP_FRAME);
|
||||
-
|
||||
#ifdef Q_OS_UNIX
|
||||
int pret = poll(fds.data(), nfds, -1);
|
||||
if (pret <= 0) {
|
||||
@@ -854,8 +844,6 @@ void Server::run() {
|
||||
#endif
|
||||
|
||||
// Capture only the processing without the polling
|
||||
- ZoneScopedN(TracyConstants::UDP_PACKET_PROCESSING_ZONE);
|
||||
-
|
||||
if (len == 0) {
|
||||
break;
|
||||
} else if (len == SOCKET_ERROR) {
|
||||
@@ -890,8 +878,6 @@ void Server::run() {
|
||||
&& m_udpDecoder.decodePing(
|
||||
gsl::span< Mumble::Protocol::byte >(encrypt, static_cast< std::size_t >(len)))
|
||||
&& m_udpDecoder.getMessageType() == Mumble::Protocol::UDPMessageType::Ping) {
|
||||
- ZoneScopedN(TracyConstants::PING_PROCESSING_ZONE);
|
||||
-
|
||||
gsl::span< const Mumble::Protocol::byte > encodedPing =
|
||||
handlePing(m_udpDecoder, m_udpPingEncoder, true);
|
||||
|
||||
@@ -922,8 +908,6 @@ void Server::run() {
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
- ZoneScopedN(TracyConstants::DECRYPT_UNKNOWN_PEER_ZONE);
|
||||
-
|
||||
// Unknown peer
|
||||
foreach (ServerUser *usr, qhHostUsers.value(ha)) {
|
||||
if (checkDecrypt(
|
||||
@@ -977,8 +961,6 @@ void Server::run() {
|
||||
break;
|
||||
}
|
||||
case Mumble::Protocol::UDPMessageType::Ping: {
|
||||
- ZoneScopedN(TracyConstants::UDP_PING_PROCESSING_ZONE);
|
||||
-
|
||||
Mumble::Protocol::PingData pingData = m_udpDecoder.getPingData();
|
||||
if (!pingData.requestAdditionalInformation && !pingData.containsAdditionalInformation) {
|
||||
// At this point here, we only want to handle connectivity pings
|
||||
@@ -1008,8 +990,6 @@ void Server::run() {
|
||||
}
|
||||
|
||||
bool Server::checkDecrypt(ServerUser *u, const unsigned char *encrypt, unsigned char *plain, unsigned int len) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
QMutexLocker l(&u->qmCrypt);
|
||||
|
||||
if (u->csCrypt->isValid() && u->csCrypt->decrypt(encrypt, plain, len)) {
|
||||
@@ -1026,8 +1006,6 @@ bool Server::checkDecrypt(ServerUser *u,
|
||||
}
|
||||
|
||||
void Server::sendMessage(ServerUser &u, const unsigned char *data, int len, QByteArray &cache, bool force) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
||||
if ((u.aiUdpFlag.loadRelaxed() == 1 || force) && (u.sUdpSocket != INVALID_SOCKET)) {
|
||||
#else
|
||||
@@ -1140,8 +1118,6 @@ void Server::addListener(QHash< ServerUs
|
||||
|
||||
void Server::processMsg(ServerUser *u, Mumble::Protocol::AudioData audioData, AudioReceiverBuffer &buffer,
|
||||
Mumble::Protocol::UDPAudioEncoder< Mumble::Protocol::Role::Server > &encoder) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
// Note that in this function we never have to acquire a read-lock on qrwlVoiceThread
|
||||
// as all places that call this function will hold that lock at the point of calling
|
||||
// this function.
|
||||
@@ -1221,15 +1197,11 @@ void Server::processMsg(ServerUser *u, M
|
||||
QHash< ServerUser *, VolumeAdjustment > cachedListeners;
|
||||
|
||||
if (u->qmTargetCache.contains(static_cast< int >(audioData.targetOrContext))) {
|
||||
- ZoneScopedN(TracyConstants::AUDIO_WHISPER_CACHE_STORE);
|
||||
-
|
||||
const WhisperTargetCache &cache = u->qmTargetCache.value(static_cast< int >(audioData.targetOrContext));
|
||||
channel = cache.channelTargets;
|
||||
direct = cache.directTargets;
|
||||
cachedListeners = cache.listeningTargets;
|
||||
} else {
|
||||
- ZoneScopedN(TracyConstants::AUDIO_WHISPER_CACHE_CREATE);
|
||||
-
|
||||
const unsigned int uiSession = u->uiSession;
|
||||
qrwlVoiceThread.unlock();
|
||||
qrwlVoiceThread.lockForWrite();
|
||||
@@ -1275,8 +1247,6 @@ void Server::processMsg(ServerUser *u, M
|
||||
}
|
||||
}
|
||||
|
||||
- ZoneNamedN(__tracy_scoped_zone2, TracyConstants::AUDIO_SENDOUT_ZONE, true);
|
||||
-
|
||||
buffer.preprocessBuffer();
|
||||
|
||||
bool isFirstIteration = true;
|
||||
@@ -1300,8 +1270,6 @@ void Server::processMsg(ServerUser *u, M
|
||||
if (isFirstIteration
|
||||
|| !Mumble::Protocol::protocolVersionsAreCompatible(encoder.getProtocolVersion(),
|
||||
currentRange.begin->getReceiver().m_version)) {
|
||||
- ZoneScopedN(TracyConstants::AUDIO_ENCODE);
|
||||
-
|
||||
encoder.setProtocolVersion(currentRange.begin->getReceiver().m_version);
|
||||
|
||||
// We have to re-encode the "fixed" part of the audio message
|
||||
@@ -1318,9 +1286,7 @@ void Server::processMsg(ServerUser *u, M
|
||||
audioData.volumeAdjustment = currentRange.begin->getVolumeAdjustment();
|
||||
|
||||
// Update data
|
||||
- TracyCZoneN(__tracy_zone, TracyConstants::AUDIO_UPDATE, true);
|
||||
gsl::span< const Mumble::Protocol::byte > encodedPacket = encoder.updateAudioPacket(audioData);
|
||||
- TracyCZoneEnd(__tracy_zone);
|
||||
|
||||
// Clear TCP cache
|
||||
tcpCache.clear();
|
||||
@@ -1683,8 +1649,6 @@ void Server::connectionClosed(QAbstractS
|
||||
}
|
||||
|
||||
void Server::message(Mumble::Protocol::TCPMessageType type, const QByteArray &qbaMsg, ServerUser *u) {
|
||||
- ZoneScopedN(TracyConstants::TCP_PACKET_PROCESSING_ZONE);
|
||||
-
|
||||
if (!u) {
|
||||
u = static_cast< ServerUser * >(sender());
|
||||
}
|
||||
@@ -2354,8 +2318,6 @@ bool Server::canNest(Channel *newParent,
|
||||
}
|
||||
|
||||
WhisperTargetCache Server::createWhisperTargetCacheFor(ServerUser &speaker, const WhisperTarget &target) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
QMutexLocker qml(&qmCache);
|
||||
|
||||
WhisperTargetCache cache;
|
||||
Index: mumble-1.5.735/src/murmur/AudioReceiverBuffer.h
|
||||
===================================================================
|
||||
--- mumble-1.5.735.orig/src/murmur/AudioReceiverBuffer.h
|
||||
+++ mumble-1.5.735/src/murmur/AudioReceiverBuffer.h
|
||||
@@ -14,8 +14,6 @@
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
|
||||
-#include <tracy/Tracy.hpp>
|
||||
-
|
||||
class AudioReceiver {
|
||||
public:
|
||||
AudioReceiver(ServerUser &receiver, Mumble::Protocol::audio_context_t context,
|
||||
@@ -74,8 +72,6 @@ public:
|
||||
constexpr static const int maxDecibelDiff = 5;
|
||||
|
||||
template< typename Iterator > static ReceiverRange< Iterator > getReceiverRange(Iterator begin, Iterator end) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
ReceiverRange< Iterator > range;
|
||||
range.begin = begin;
|
||||
|
||||
Index: mumble-1.5.735/src/murmur/TracyConstants.h
|
||||
===================================================================
|
||||
--- mumble-1.5.735.orig/src/murmur/TracyConstants.h
|
||||
+++ /dev/null
|
||||
@@ -1,25 +0,0 @@
|
||||
-// Copyright 2021-2023 The Mumble Developers. All rights reserved.
|
||||
-// Use of this source code is governed by a BSD-style license
|
||||
-// that can be found in the LICENSE file at the root of the
|
||||
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
|
||||
-
|
||||
-#ifndef MUMBLE_MURMUR_TRACYCONSTANTS_H_
|
||||
-#define MUMBLE_MURMUR_TRACYCONSTANTS_H_
|
||||
-
|
||||
-namespace TracyConstants {
|
||||
-static constexpr const char *UDP_PACKET_PROCESSING_ZONE = "udp_packet_processing";
|
||||
-static constexpr const char *TCP_PACKET_PROCESSING_ZONE = "tcp_packet_processing";
|
||||
-static constexpr const char *PING_PROCESSING_ZONE = "tcp_ping";
|
||||
-static constexpr const char *UDP_PING_PROCESSING_ZONE = "udp_ping";
|
||||
-static constexpr const char *DECRYPT_UNKNOWN_PEER_ZONE = "decrypt_unknown_peer";
|
||||
-
|
||||
-static constexpr const char *UDP_FRAME = "udp_frame";
|
||||
-
|
||||
-static constexpr const char *AUDIO_SENDOUT_ZONE = "audio_send_out";
|
||||
-static constexpr const char *AUDIO_ENCODE = "audio_encode";
|
||||
-static constexpr const char *AUDIO_UPDATE = "audio_update";
|
||||
-static constexpr const char *AUDIO_WHISPER_CACHE_STORE = "audio_whisper_cache_restore";
|
||||
-static constexpr const char *AUDIO_WHISPER_CACHE_CREATE = "audio_whisper_cache_create";
|
||||
-} // namespace TracyConstants
|
||||
-
|
||||
-#endif // MUMBLE_MURMUR_TRACYCONSTANTS_H_
|
||||
Index: mumble-1.5.735/docs/dev/Profiling.md
|
||||
===================================================================
|
||||
--- mumble-1.5.735.orig/docs/dev/Profiling.md
|
||||
+++ /dev/null
|
||||
@@ -1,33 +0,0 @@
|
||||
-# Profiling
|
||||
-
|
||||
-Mumble comes with built-in support for the [Tracy](https://github.com/wolfpld/tracy) profiler. In order to activate the baked-in instrumentation, use
|
||||
-`-Dtracy=ON` when compiling Mumble. When using that option, you should see a line in the cmake output that says `TRACY_ENABLE: ON`.
|
||||
-
|
||||
-
|
||||
-## Instrumented parts
|
||||
-
|
||||
-Currently only the Mumble server is instrumented (can be profiled using Tracy).
|
||||
-
|
||||
-
|
||||
-## Instructions
|
||||
-
|
||||
-Once you have built Mumble with `-Dtracy=ON`, Mumble will act as a Tracy _client_ (in Tracy terms) which means that you can connect any Tracy _server_
|
||||
-to it. Most commonly, you'll want to use either the `profiler` or the `capture`. Both of these programs live in the tracy submodule
|
||||
-(`3rdparty/tracy/`) and can be built from there. For build instructions, see the
|
||||
-[Tracy Manual](https://github.com/wolfpld/tracy/releases/latest/download/tracy.pdf).
|
||||
-
|
||||
-The `profiler` is an interactive GUI that can be attached to a currently running Mumble instance to see the profiling data (more or less) in realtime
|
||||
-or you can open a previously recorded trace for analysis. Note that it is also possible to connect to a Mumble instance on a remote machine using this
|
||||
-tool. All that is required is that it is able to establish a TCP connection to the target machine.
|
||||
-
|
||||
-The `capture` tool has to be run on the same machine as the Mumble instance that shall be profiled. It is a command-line tool that will attach to a
|
||||
-running Tracy _client_ as soon as it is started. It will dump the captured data directly into a file, that can later on be opened in `profiler` for
|
||||
-further analysis. This tool is recommended when you want to profile over a longer period of time or you don't want to add the burden of sending all
|
||||
-profiling data out through the network, while Mumble is running.
|
||||
-
|
||||
-
|
||||
-## Notes
|
||||
-
|
||||
-- Profiling should generally be done in `Release` mode in order to obtain reasonable data
|
||||
-- If you are having issues connecting your Tracy _server_ to the Mumble server, you should not let it fork. The default behavior in release
|
||||
- mode is to fork, but you can change that by using the `-fg` parameter when starting the server.
|
||||
Index: mumble-1.5.735/docs/dev/build-instructions/cmake_options.md
|
||||
===================================================================
|
||||
--- mumble-1.5.735.orig/docs/dev/build-instructions/cmake_options.md
|
||||
+++ mumble-1.5.735/docs/dev/build-instructions/cmake_options.md
|
||||
@@ -224,11 +224,6 @@ Build binaries in a way that allows easi
|
||||
Build tests.
|
||||
(Default: ${packaging})
|
||||
|
||||
-### tracy
|
||||
-
|
||||
-Enable the tracy profiler.
|
||||
-(Default: OFF)
|
||||
-
|
||||
### translations
|
||||
|
||||
Include languages other than English.
|
||||
Index: mumble-1.5.735/src/murmur/Messages.cpp
|
||||
===================================================================
|
||||
--- mumble-1.5.735.orig/src/murmur/Messages.cpp
|
||||
+++ mumble-1.5.735/src/murmur/Messages.cpp
|
||||
@@ -26,8 +26,6 @@
|
||||
#include <cassert>
|
||||
#include <unordered_map>
|
||||
|
||||
-#include <tracy/Tracy.hpp>
|
||||
-
|
||||
#define RATELIMIT(user) \
|
||||
if (user->leakyBucket.ratelimit(1)) { \
|
||||
return; \
|
||||
@@ -163,8 +161,6 @@ bool isChannelEnterRestricted(Channel *c
|
||||
}
|
||||
|
||||
void Server::msgAuthenticate(ServerUser *uSource, MumbleProto::Authenticate &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
if (uSource->sState == ServerUser::Authenticated && (msg.tokens_size() > 0 || !uSource->qslAccessTokens.empty())) {
|
||||
// Process a change in access tokens for already authenticated users
|
||||
QStringList qsl;
|
||||
@@ -651,8 +647,6 @@ void Server::msgAuthenticate(ServerUser
|
||||
}
|
||||
|
||||
void Server::msgBanList(ServerUser *uSource, MumbleProto::BanList &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP(ServerUser::Authenticated);
|
||||
|
||||
QSet< Ban > previousBans, newBans;
|
||||
@@ -733,8 +727,6 @@ void Server::msgUDPTunnel(ServerUser *,
|
||||
}
|
||||
|
||||
void Server::msgUserState(ServerUser *uSource, MumbleProto::UserState &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP(ServerUser::Authenticated);
|
||||
VICTIM_SETUP;
|
||||
|
||||
@@ -1193,8 +1185,6 @@ void Server::msgUserState(ServerUser *uS
|
||||
}
|
||||
|
||||
void Server::msgUserRemove(ServerUser *uSource, MumbleProto::UserRemove &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP(ServerUser::Authenticated);
|
||||
VICTIM_SETUP;
|
||||
|
||||
@@ -1232,8 +1222,6 @@ void Server::msgUserRemove(ServerUser *u
|
||||
}
|
||||
|
||||
void Server::msgChannelState(ServerUser *uSource, MumbleProto::ChannelState &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP(ServerUser::Authenticated);
|
||||
|
||||
Channel *c = nullptr;
|
||||
@@ -1518,8 +1506,6 @@ void Server::msgChannelState(ServerUser
|
||||
}
|
||||
|
||||
void Server::msgChannelRemove(ServerUser *uSource, MumbleProto::ChannelRemove &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP(ServerUser::Authenticated);
|
||||
|
||||
Channel *c = qhChannels.value(msg.channel_id());
|
||||
@@ -1537,8 +1523,6 @@ void Server::msgChannelRemove(ServerUser
|
||||
}
|
||||
|
||||
void Server::msgTextMessage(ServerUser *uSource, MumbleProto::TextMessage &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP(ServerUser::Authenticated);
|
||||
QMutexLocker qml(&qmCache);
|
||||
|
||||
@@ -1748,8 +1732,6 @@ void logACLs(Server *server, const Chann
|
||||
|
||||
|
||||
void Server::msgACL(ServerUser *uSource, MumbleProto::ACL &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP(ServerUser::Authenticated);
|
||||
|
||||
Channel *c = qhChannels.value(msg.channel_id());
|
||||
@@ -1961,8 +1943,6 @@ void Server::msgACL(ServerUser *uSource,
|
||||
}
|
||||
|
||||
void Server::msgQueryUsers(ServerUser *uSource, MumbleProto::QueryUsers &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP(ServerUser::Authenticated);
|
||||
|
||||
MumbleProto::QueryUsers reply;
|
||||
@@ -1990,8 +1970,6 @@ void Server::msgQueryUsers(ServerUser *u
|
||||
}
|
||||
|
||||
void Server::msgPing(ServerUser *uSource, MumbleProto::Ping &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP_NO_UNIDLE(ServerUser::Authenticated);
|
||||
|
||||
QMutexLocker l(&uSource->qmCrypt);
|
||||
@@ -2021,8 +1999,6 @@ void Server::msgPing(ServerUser *uSource
|
||||
}
|
||||
|
||||
void Server::msgCryptSetup(ServerUser *uSource, MumbleProto::CryptSetup &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP_NO_UNIDLE(ServerUser::Authenticated);
|
||||
|
||||
QMutexLocker l(&uSource->qmCrypt);
|
||||
@@ -2044,8 +2020,6 @@ void Server::msgContextActionModify(Serv
|
||||
}
|
||||
|
||||
void Server::msgContextAction(ServerUser *uSource, MumbleProto::ContextAction &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP(ServerUser::Authenticated);
|
||||
|
||||
unsigned int session = msg.has_session() ? msg.session() : 0;
|
||||
@@ -2072,8 +2046,6 @@ QString convertWithSizeRestriction(const
|
||||
}
|
||||
|
||||
void Server::msgVersion(ServerUser *uSource, MumbleProto::Version &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
RATELIMIT(uSource);
|
||||
|
||||
uSource->m_version = MumbleProto::getVersion(msg);
|
||||
@@ -2096,8 +2068,6 @@ void Server::msgVersion(ServerUser *uSou
|
||||
}
|
||||
|
||||
void Server::msgUserList(ServerUser *uSource, MumbleProto::UserList &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP(ServerUser::Authenticated);
|
||||
|
||||
// The register permission is required on the root channel to be allowed to
|
||||
@@ -2173,8 +2143,6 @@ void Server::msgUserList(ServerUser *uSo
|
||||
}
|
||||
|
||||
void Server::msgVoiceTarget(ServerUser *uSource, MumbleProto::VoiceTarget &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP_NO_UNIDLE(ServerUser::Authenticated);
|
||||
|
||||
int target = static_cast< int >(msg.id());
|
||||
@@ -2222,8 +2190,6 @@ void Server::msgVoiceTarget(ServerUser *
|
||||
}
|
||||
|
||||
void Server::msgPermissionQuery(ServerUser *uSource, MumbleProto::PermissionQuery &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP_NO_UNIDLE(ServerUser::Authenticated);
|
||||
|
||||
Channel *c = qhChannels.value(msg.channel_id());
|
||||
@@ -2237,8 +2203,6 @@ void Server::msgCodecVersion(ServerUser
|
||||
}
|
||||
|
||||
void Server::msgUserStats(ServerUser *uSource, MumbleProto::UserStats &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP_NO_UNIDLE(ServerUser::Authenticated);
|
||||
VICTIM_SETUP;
|
||||
const BandwidthRecord &bwr = pDstServerUser->bwr;
|
||||
@@ -2326,8 +2290,6 @@ void Server::msgUserStats(ServerUser *uS
|
||||
}
|
||||
|
||||
void Server::msgRequestBlob(ServerUser *uSource, MumbleProto::RequestBlob &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
MSG_SETUP_NO_UNIDLE(ServerUser::Authenticated);
|
||||
|
||||
int ntextures = msg.session_texture_size();
|
||||
@@ -2378,8 +2340,6 @@ void Server::msgSuggestConfig(ServerUser
|
||||
}
|
||||
|
||||
void Server::msgPluginDataTransmission(ServerUser *sender, MumbleProto::PluginDataTransmission &msg) {
|
||||
- ZoneScoped;
|
||||
-
|
||||
// A client's plugin has sent us a message that we shall delegate to its receivers
|
||||
|
||||
if (sender->m_pluginMessageBucket.ratelimit(1)) {
|
||||
163
mumble.changes
163
mumble.changes
@@ -1,3 +1,164 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 18 05:14:45 UTC 2025 - Carsten Ziepke <kieltux@gmail.com>
|
||||
|
||||
- Use SHARED_LINKER_FLAGS="-lGL" also for Leap 16, fixes building
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 26 13:40:44 UTC 2025 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
- Fix build with gcc15 (boo#1245428):
|
||||
* add mumble-1.5.735-fix-gcc15.patch
|
||||
* disable warnings-as-errors, see PR#6517 upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Dec 8 19:20:50 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
- Update to version 1.5.735:
|
||||
* TRANSLATION: Backport translations
|
||||
* CI(appveyor): Workaround for FXC failing to run with error C0000139
|
||||
* DOCS(server): Add Documentation key to mumble-server unit
|
||||
* FIX(cmake): Ensure the client installer target is built after its dependencies
|
||||
* FIX(cmake): Don't set WORKING_DIRECTORY for ExternalProject_Add()
|
||||
* TRANSLATION: Backport translations
|
||||
* FIX(client): Fix AudioWizard echo cancellation checkbox
|
||||
* FIX(client): Use correct off audio cue
|
||||
* FIX(plugins): Load correct pages for modules
|
||||
* FIX(client): Limit size of the chat bar
|
||||
* FIX(client): Save local volume adjustment when clicking slider bar
|
||||
* FIX(client): Prevent sending plain text on fast CTRL+V + ENTER
|
||||
* TRANSLATION: Update translation files
|
||||
* FIX(client): Replace dead URL in Certificate Wizard
|
||||
* TRANSLATION: Update translation files
|
||||
* FIX(client): Remove mention of the Mumble wiki
|
||||
* MAINT: Remove mentions of the Mumble wiki
|
||||
* FIX(server): Change server thread name to "mumble-server" instead of "Main"
|
||||
* FIX(client, server): Remove redundant OpenSSL locking callback check
|
||||
* BUILD: Fix compiler warnings on 32bit architectures
|
||||
* FIX(client): Fix crash on mono pos. audio warning from audio thread
|
||||
* BUILD: Disable MSVC 17.8 warning for stdext::checked_array_iterator
|
||||
* CI(cirrus): Disable warnings-as-errors for the 1.5.x branch
|
||||
* CI(cirrus): Install "ice37" package instead of "ice"
|
||||
* FIX(client, plugins): Wrong sample count in plugin callback
|
||||
* MAINT: Update backport config
|
||||
* MAINT: Only run backport action when PR is merged
|
||||
* FIX(client): Do not spam log when adjusting volume of clients without certificate
|
||||
* FIX(client): Update tab order in AudioInput.ui
|
||||
* BUILD: Use correct type for num locks
|
||||
* FIX(client): Do not duplicate group name in ACLEditor combobox
|
||||
* FIX(a11y): In ACLEditor make space popup the combobox list
|
||||
* FIX(client): In ACLEditor apply changes to group or user on lost focus
|
||||
* FIX(server): Allow to move temporary channels provided sufficient permissions
|
||||
* REFAC(client): Use ellipsis character ("…") instead of three dots ("...") in elideText
|
||||
* FIX(client): Remove placeholder wrapping in ChatBar
|
||||
* FIX(client): Improve handling of the GlobalShortcutButtons dialog
|
||||
* FIX(client): Correctly remember muted state across restarts
|
||||
* FIX(client): Capture "this" explicitly in lambdas
|
||||
* FIX(client): Crash when loading settings
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 20 07:04:42 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
- update to 1.5.634:
|
||||
* first stable release in the 1.5.x series
|
||||
* flag icons replaced with an MIT licensed version
|
||||
- replace mumble-cxx17.patch with a cmake option
|
||||
- drop mumble-1.5.629-The-OCB-design-is-in-the-public-domain.patch
|
||||
now upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 25 20:44:16 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
- enable and fix tests: TestSettingsJSONSerialization fails loading
|
||||
qt xcb in headless
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 23 23:11:54 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
- Address licensedigger concerns:
|
||||
* drop qttranslations from tarball, adjust licenses.patch
|
||||
* The OCB design is in the public domain
|
||||
add mumble-1.5.629-The-OCB-design-is-in-the-public-domain.patch
|
||||
* drop unneeded installer files from tarball
|
||||
* unbundle audio back-end headers from tarball:
|
||||
pulseadio, jack, portadio, pipewire
|
||||
add mumble-1.5.629-unbundle-audio-backends.patch
|
||||
- change from tarball to obscpio and build-time service
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 20 15:26:53 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
- switch to source service generated tarball that has a number of
|
||||
unused, bundled libraries removed. Patch the sources to not
|
||||
require that they are present - add licenses.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 20 11:07:09 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
- mumble 1.5.629 (RC3)
|
||||
* ReNameNoise as a replacement for RNNoise
|
||||
* Accessibility across the entire application
|
||||
* Add ability to record MP3s
|
||||
* UI updates
|
||||
* bug fixes
|
||||
- packaging changes:
|
||||
* use system libraries where available and clean up dependencies
|
||||
* move appdata to client package
|
||||
* remove usage of tracy - mumble-unbundle-tracy.patch
|
||||
- drop patches:
|
||||
* fix-pkg_get_variable.patch - reworked upstream
|
||||
* mumble-1.5.517-qsystemlocaledate.patch - not needed
|
||||
* reproducible.patch - merged
|
||||
* mumble-leap-cxx17-filesystem.patch - not needed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 22 12:38:25 UTC 2024 - pgajdos@suse.com
|
||||
|
||||
- Use %patch -P N instead of deprecated %patchN.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 25 06:45:30 UTC 2024 - Bernhard Wiedemann <bwiedemann@suse.com>
|
||||
|
||||
- Add reproducible.patch to sort the file list (boo#1041090)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 18 21:07:38 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
- Fix build with Qt 5.15 / OpenGL (boo#1218944)
|
||||
- Fix mumble-server.service (gh#mumble-voip/mumble/6273)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 23 19:14:57 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
- enable pulseaudio support boo#1217419
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 28 12:38:53 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
- simplify spec file and package license file
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 27 16:14:04 UTC 2023 - Marguerite Su <i@marguerite.su>
|
||||
|
||||
- fix FTBFS (boo#1215996)
|
||||
* needs to build with CXX17 standard
|
||||
* QSystemLocaleDate is deprecated
|
||||
* <filesystem> sometimes must be <experimental/filesystem>
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 17 13:15:06 UTC 2023 - Marcel Kuehlhorn <tux93@opensuse.org>
|
||||
|
||||
- Remove DBus service (boo#1209338)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 6 14:57:20 UTC 2023 - Marcel Kuehlhorn <tux93@opensuse.org>
|
||||
|
||||
- Update to 1.5.517
|
||||
- Add fix-pkg_get_variable.patch to fix CMake not using the correct
|
||||
pkgconf variables, also needs BuildRequires: systemd
|
||||
- Update fix-64bit-only-plugins.patch
|
||||
- Use systemd-sysusers for user creation when available
|
||||
- Update keyring
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 21 18:14:40 UTC 2022 - Carsten Ziepke <kieltux@gmail.com>
|
||||
|
||||
@@ -166,7 +327,7 @@ Sat Jul 11 18:06:46 UTC 2020 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
- fetch upstream release signing key for 2020
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 19 20:00:00 2020 UTC - Markus Ebner <info@ebner-markus.de>
|
||||
Fri Jun 19 20:00:00 UTC 2020 - Markus Ebner <info@ebner-markus.de>
|
||||
|
||||
- Update to upstream version 1.3.1
|
||||
- Security
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mDMEYc+ZpRYJKwYBBAHaRw8BAQdAQ2CMVy22HgodygMg6PdMKN/k9mmgBnwk8PYh
|
||||
tbFQ8H20T011bWJsZSBBdXRvbWF0aWMgQnVpbGQgSW5mcmFzdHJ1Y3R1cmUgMjAy
|
||||
MiA8bXVtYmxlLWF1dG8tYnVpbGQtMjAyMkBtdW1ibGUuaW5mbz6IlgQTFggAPhYh
|
||||
BB7eviqTy5f6mQPVLiX2PGYkXfxgBQJhz5mlAhsDBQkB4oUABQsJCAcCBhUKCQgL
|
||||
AgQWAgMBAh4BAheAAAoJECX2PGYkXfxg9tQBAONPZDuPtEPvORzSCj+GSrJuUQs9
|
||||
otoKM4Kaw95gicqeAP9gZPQiMEtLdaFSCTrHyX81ThlFc743TfV0rnQjStssAbg4
|
||||
BGHPmaUSCisGAQQBl1UBBQEBB0CqFAKH11vICUmxDUihx1EQe/knrhAEhKbTGvkw
|
||||
yuP/YAMBCAeIfgQYFggAJhYhBB7eviqTy5f6mQPVLiX2PGYkXfxgBQJhz5mlAhsM
|
||||
BQkB4oUAAAoJECX2PGYkXfxgvEMBAKEuOsFq6DXryTfK0JmigF7sZPx9o+ADmior
|
||||
3CSS+OZZAP41mncTcTdKkCirrjdFX2mm3W1Pb0tjx07HnxUMUEo1Dw==
|
||||
=CCBp
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
4
mumble.obsinfo
Normal file
4
mumble.obsinfo
Normal file
@@ -0,0 +1,4 @@
|
||||
name: mumble
|
||||
version: 1.5.735
|
||||
mtime: 1733494911
|
||||
commit: f9f2d1b63b15883a470d1abe184342fe509b6dfb
|
||||
257
mumble.spec
257
mumble.spec
@@ -1,7 +1,9 @@
|
||||
#
|
||||
# spec file for package mumble
|
||||
#
|
||||
# Copyright (c) 2022 SUSE LLC
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2025 Andreas Stieger <Andreas.Stieger@gmx.de>
|
||||
# Copyright (c) 2024 Tobias Burnus <burnus@gmx.de>
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -16,84 +18,83 @@
|
||||
#
|
||||
|
||||
|
||||
# requires libzeroc-ice, not available yet
|
||||
%bcond_without ice
|
||||
%bcond_without jack
|
||||
%bcond_without pulseaudio
|
||||
%bcond_without system_opus
|
||||
%bcond_without system_speex
|
||||
# mumble must be able to talk to other clients which may use
|
||||
# different versions of celt. Since each celt release is
|
||||
# incompatible to each other mumble bundles some specific
|
||||
# versions.
|
||||
%bcond_with system_celt
|
||||
# on Tumbleweed with gcc15, TestSSLLocks::stress() time out on aarch64 and i586
|
||||
%ifarch x86_64
|
||||
%bcond_without tests
|
||||
%else
|
||||
%bcond_with tests
|
||||
%endif
|
||||
%bcond_without server
|
||||
Name: mumble
|
||||
Version: 1.4.287
|
||||
Version: 1.5.735
|
||||
Release: 0
|
||||
Summary: Voice Communication Client for Gamers
|
||||
# For Legal: the bundled opus and speex subdirectories are not built.
|
||||
# Most files are BSD-3-Clause, celt also contains BSD-2-Clause files.
|
||||
License: BSD-2-Clause AND BSD-3-Clause
|
||||
# Most files are BSD-3-Clause
|
||||
# 3rdparty/arc4random/LICENSE: MIT
|
||||
# 3rdparty/SPSCQueue: MIT
|
||||
# 3rdparty/flag-icons: MIT
|
||||
License: BSD-2-Clause AND BSD-3-Clause AND MIT
|
||||
Group: Productivity/Multimedia/Sound/Utilities
|
||||
URL: http://mumble.sourceforge.net/
|
||||
Source: https://github.com/mumble-voip/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz
|
||||
Source1: https://github.com/mumble-voip/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz.sig
|
||||
Source3: murmur.apparmor
|
||||
# http://mumble.info/gpg/gpg.txt
|
||||
Source4: https://raw.githubusercontent.com/mumble-voip/mumble-gpg-signatures/master/mumble-auto-build-2022.asc#/%{name}.keyring
|
||||
Source5: mumble-server.service
|
||||
URL: https://www.mumble.info/
|
||||
Source: %{name}-%{version}.tar.xz
|
||||
Source6: baselibs.conf
|
||||
# PATCH-FIX-UPSTREAM fix-64bit-only-plugins.patch -- Requires 64bit memory alignment ( https://github.com/mumble-voip/mumble/issues/5849 )
|
||||
Patch0: fix-64bit-only-plugins.patch
|
||||
BuildRequires: cmake >= 3.15
|
||||
BuildRequires: gcc-c++
|
||||
# PATCH-FIX-UPSTREAM mumble-1.5.735-fix-gcc15.patch -- fix build with gcc15 https://github.com/mumble-voip/mumble/pull/6775
|
||||
Patch1: mumble-1.5.735-fix-gcc15.patch
|
||||
# Patches related to dependency unbundling
|
||||
Patch100: licenses.patch
|
||||
Patch101: mumble-unbundle-tracy.patch
|
||||
Patch103: mumble-1.5.629-unbundle-audio-backends.patch
|
||||
BuildRequires: c++_compiler
|
||||
BuildRequires: cmake >= 3.20
|
||||
BuildRequires: libboost_headers-devel
|
||||
BuildRequires: libcap-devel
|
||||
BuildRequires: libogg-devel
|
||||
BuildRequires: libsndfile-devel
|
||||
BuildRequires: libspeechd-devel
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: protobuf-devel
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: cmake(Microsoft.GSL)
|
||||
BuildRequires: cmake(PocoXML)
|
||||
BuildRequires: cmake(PocoZip)
|
||||
BuildRequires: cmake(Qt5Concurrent)
|
||||
BuildRequires: cmake(Qt5Core)
|
||||
BuildRequires: cmake(Qt5DBus)
|
||||
BuildRequires: cmake(Qt5LinguistTools)
|
||||
BuildRequires: pkgconfig(Qt5Concurrent)
|
||||
BuildRequires: pkgconfig(Qt5DBus)
|
||||
BuildRequires: pkgconfig(Qt5Gui)
|
||||
BuildRequires: pkgconfig(Qt5Network)
|
||||
BuildRequires: pkgconfig(Qt5Sql)
|
||||
BuildRequires: pkgconfig(Qt5Svg)
|
||||
BuildRequires: pkgconfig(Qt5TextToSpeech)
|
||||
BuildRequires: pkgconfig(Qt5Widgets)
|
||||
BuildRequires: pkgconfig(Qt5Xml)
|
||||
BuildRequires: cmake(Qt5Network)
|
||||
BuildRequires: cmake(Qt5Sql)
|
||||
BuildRequires: cmake(Qt5Svg)
|
||||
BuildRequires: cmake(Qt5TextToSpeech)
|
||||
BuildRequires: cmake(Qt5Widgets)
|
||||
BuildRequires: cmake(Qt5Xml)
|
||||
BuildRequires: pkgconfig(alsa)
|
||||
BuildRequires: pkgconfig(avahi-compat-libdns_sd)
|
||||
BuildRequires: pkgconfig(gl)
|
||||
BuildRequires: pkgconfig(libopenssl)
|
||||
BuildRequires: pkgconfig(xi)
|
||||
Requires: lsb-release
|
||||
%if 0%{?sle_version} >= 150300 && 0%{?is_opensuse}
|
||||
BuildRequires: pcre2-devel
|
||||
%endif
|
||||
%if %{with system_celt}
|
||||
BuildRequires: libcelt-devel
|
||||
Requires: libcelt0 > 0.7.0
|
||||
%endif
|
||||
%if %{with system_opus}
|
||||
BuildRequires: pkgconfig(jack)
|
||||
BuildRequires: pkgconfig(libcrypto)
|
||||
BuildRequires: pkgconfig(libpcre2-posix)
|
||||
BuildRequires: pkgconfig(libpipewire-0.3)
|
||||
BuildRequires: pkgconfig(libpulse)
|
||||
BuildRequires: pkgconfig(libssl)
|
||||
BuildRequires: pkgconfig(nlohmann_json)
|
||||
BuildRequires: pkgconfig(opus)
|
||||
%endif
|
||||
%if %{with system_speex}
|
||||
BuildRequires: pkgconfig(speex)
|
||||
BuildRequires: pkgconfig(portaudio-2.0)
|
||||
BuildRequires: pkgconfig(speech-dispatcher)
|
||||
BuildRequires: pkgconfig(speexdsp)
|
||||
BuildRequires: pkgconfig(xext)
|
||||
BuildRequires: pkgconfig(xi)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
%if %{with tests}
|
||||
BuildRequires: cmake(Qt5Test)
|
||||
%endif
|
||||
%if %{with ice}
|
||||
BuildRequires: pkgconfig(ice)
|
||||
%if %{with server}
|
||||
BuildRequires: pkgconfig(libcap)
|
||||
%endif
|
||||
%if %{with pulseaudio}
|
||||
BuildRequires: pulseaudio-devel
|
||||
%if 0%{?suse_version} <= 1550
|
||||
BuildRequires: protobuf-devel
|
||||
%else
|
||||
BuildRequires: cmake(protobuf)
|
||||
%endif
|
||||
%if %{with jack}
|
||||
BuildRequires: libjack-devel
|
||||
%if 0%{?suse_version} > 1600
|
||||
BuildRequires: cmake(SndFile)
|
||||
%else
|
||||
BuildRequires: libsndfile-devel
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
BuildRequires: gcc-c++-32bit
|
||||
@@ -104,12 +105,6 @@ Conflicts: %{name}-32bit < %{version}
|
||||
Recommends: %{name}-64bit
|
||||
Conflicts: %{name}-64bit < %{version}
|
||||
%endif
|
||||
#
|
||||
%if 0%{?snapshot:1}
|
||||
Conflicts: mumble < %{version}
|
||||
Provides: mumble = %{version}
|
||||
%endif
|
||||
#
|
||||
|
||||
%description
|
||||
Low-latency, high-quality voice communication for gamers. Includes game
|
||||
@@ -117,119 +112,135 @@ linking, so voice from other players comes from the direction of their
|
||||
characters, and has echo cancellation so the sound from your loudspeakers
|
||||
won't be audible to other players.
|
||||
|
||||
%if %{with server}
|
||||
%package server
|
||||
Summary: Voice Communication Server for Gamers
|
||||
Group: Productivity/Multimedia/Sound/Utilities
|
||||
Requires: lsb-release
|
||||
Requires(pre): %{_sbindir}/useradd
|
||||
Recommends: libQt5Sql5-mysql
|
||||
Recommends: libQt5Sql5-postgresql
|
||||
Recommends: libQt5Sql5-sqlite
|
||||
%{?systemd_requires}
|
||||
%if 0%{?snapshot:1}
|
||||
Conflicts: mumble-server < %{version}
|
||||
Provides: mumble-server = %{version}
|
||||
%endif
|
||||
|
||||
%description server
|
||||
Low-latency, high-quality voice communication for gamers. Includes game
|
||||
linking, so voice from other players comes from the direction of their
|
||||
characters, and has echo cancellation so the sound from your loudspeakers
|
||||
won't be audible to other players.
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{name}-%{version}.src
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
%cmake \
|
||||
-Dupdate:BOOL=OFF \
|
||||
-Doverlay-xcompile:BOOL=OFF \
|
||||
-Dsymbols:BOOL=ON \
|
||||
-Dcrash-report:BOOL=OFF \
|
||||
-DMUMBLE_INSTALL_PLUGINDIR=%{_libdir}/mumble/plugins \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS="" \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS="" \
|
||||
%if 1
|
||||
-Dice=OFF \
|
||||
%if %{with server}
|
||||
-Dserver:BOOL=ON \
|
||||
-Dice:BOOL=OFF \
|
||||
%else
|
||||
-Dserver:BOOL=OFF \
|
||||
%endif
|
||||
%if %{with system_celt}
|
||||
-Dbundled-celt:BOOL=OFF \
|
||||
-Dupdate:BOOL=OFF \
|
||||
-Dcrash-report:BOOL=OFF \
|
||||
-Ddisplay-install-paths:BOOL=ON \
|
||||
-Doverlay-xcompile:BOOL=OFF \
|
||||
-Dsymbols:BOOL=ON \
|
||||
-DMUMBLE_INSTALL_PLUGINDIR=%{_libdir}/mumble/plugins \
|
||||
-Dbundled-gsl:BOOL=OFF \
|
||||
-Dbundled-json:BOOL=OFF \
|
||||
-Dbundled-renamenoise:BOOL=ON \
|
||||
-Dbundled-speex:BOOL=OFF \
|
||||
-Dqtspeech:BOOL=ON \
|
||||
-Dbundle-qt-translations:BOOL=OFF \
|
||||
%if 0%{?suse_version} >= 1600
|
||||
-DCMAKE_SHARED_LINKER_FLAGS="-lGL" \
|
||||
%endif
|
||||
%if %{with system_speex}
|
||||
-Dbundled-opus:BOOL=OFF \
|
||||
%if 0%{?suse_version} <= 1550
|
||||
-DCMAKE_MODULE_LINKER_FLAGS="" \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS="" \
|
||||
%endif
|
||||
%if %{with system_speex}
|
||||
-Dbundled-speex:BOOL=OFF \
|
||||
%endif
|
||||
%if !%{with pulseaudio}
|
||||
-Dpulseaudio:BOOL=OFF \
|
||||
%if %{with tests}
|
||||
-Dtests:BOOL=ON \
|
||||
%endif
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
-Dwarnings-as-errors:BOOL=OFF \
|
||||
%{nil}
|
||||
|
||||
# build fails for high -j so we overwrite with 1 here
|
||||
%cmake_build -j1
|
||||
%cmake_build
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
|
||||
install -D -m 0640 scripts/murmur.ini %{buildroot}%{_sysconfdir}/mumble-server.ini
|
||||
mkdir -p %{buildroot}%{_docdir}/%{name}
|
||||
cp -a scripts LICENSE README.md %{buildroot}%{_docdir}/%{name}
|
||||
cp -a scripts README.md %{buildroot}%{_docdir}/%{name}
|
||||
find %{buildroot}%{_docdir}/%{name}/scripts -type f -name '*.py' -exec chmod -x {} \;
|
||||
find %{buildroot}%{_docdir}/%{name}/scripts -type f -name '*.rb' -exec chmod -x {} \;
|
||||
find %{buildroot}%{_docdir}/%{name}/scripts -type f -name '*.sh' -exec chmod -x {} \;
|
||||
find %{buildroot}%{_docdir}/%{name}/scripts -type f -name '*.bat' -exec chmod -x {} \;
|
||||
# Server
|
||||
##
|
||||
mkdir -p %{buildroot}%{_tmpfilesdir}
|
||||
cat >> %{buildroot}%{_tmpfilesdir}/mumble-server.conf <<EOF
|
||||
d %{_localstatedir}/run/mumble-server 0755 mumble-server mumble-server -
|
||||
EOF
|
||||
install -D -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/apparmor.d/usr.sbin.murmurd
|
||||
install -D -m 0644 %{SOURCE5} %{buildroot}%{_unitdir}/mumble-server.service
|
||||
install -D -m 0644 scripts/murmur.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/mumble-server.conf
|
||||
install -D -m 0644 scripts/murmur.ini %{buildroot}%{_sysconfdir}/mumble-server.ini
|
||||
|
||||
%if %{with server}
|
||||
# This was messed up by https://github.com/mumble-voip/mumble/pull/6100
|
||||
# I wasted enough time trying to patch this, so this is brute force
|
||||
# Also see -Ddisplay-install-paths and output of cmake
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/mumble
|
||||
mkdir -p %{buildroot}%{_unitdir}
|
||||
mkdir -p %{buildroot}%{_sysusersdir}
|
||||
mv -v %{buildroot}%{_prefix}%{_sysconfdir}/mumble/mumble-server.ini %{buildroot}%{_sysconfdir}/mumble/mumble-server.ini
|
||||
mv -v %{buildroot}%{_prefix}%{_sysconfdir}/systemd/system/mumble-server.service %{buildroot}%{_unitdir}/mumble-server.service
|
||||
mv -v %{buildroot}%{_prefix}%{_sysconfdir}/sysusers.d/mumble-server.conf %{buildroot}%{_sysusersdir}/mumble-server.conf
|
||||
# z not authorized and not required
|
||||
rm %{buildroot}%{_prefix}%{_sysconfdir}/tmpfiles.d/mumble-server.conf
|
||||
# fix path in service
|
||||
sed -i -e 's|%{_prefix}%{_sysconfdir}|%{_sysconfdir}|g' %{buildroot}%{_unitdir}/mumble-server.service
|
||||
%endif
|
||||
|
||||
%check
|
||||
%if %{with tests}
|
||||
# TestSettingsJSONSerialization fails loading qt xcb in headless
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
%ctest
|
||||
%endif
|
||||
|
||||
%if %{with server}
|
||||
%pre server
|
||||
getent group mumble-server >/dev/null || groupadd -r mumble-server || :
|
||||
getent passwd mumble-server >/dev/null || \
|
||||
%{_sbindir}/useradd -r -d %{_localstatedir}/lib/mumble-server -s /bin/false -c "Mumble VoIP Server" -g mumble-server mumble-server 2> /dev/null || :
|
||||
%service_add_pre mumble-server.service
|
||||
|
||||
%preun server
|
||||
%service_del_preun mumble-server.service
|
||||
|
||||
%post server
|
||||
systemd-tmpfiles --create %{_tmpfilesdir}/mumble-server.conf || true
|
||||
%service_add_post mumble-server.service
|
||||
|
||||
%postun server
|
||||
%service_del_postun mumble-server.service
|
||||
%endif
|
||||
|
||||
%files
|
||||
%exclude %{_docdir}/%{name}/scripts/murmur.ini
|
||||
%license LICENSE
|
||||
%doc %{_docdir}/%{name}
|
||||
%{_bindir}/mumble
|
||||
%{_bindir}/mumble-overlay
|
||||
%{_mandir}/man1/mumble-overlay.*
|
||||
%{_mandir}/man1/mumble.*
|
||||
%{_mandir}/man1/mumble-overlay.1%{?ext_man}
|
||||
%{_mandir}/man1/mumble.1%{?ext_man}
|
||||
%dir %{_datadir}/icons/hicolor
|
||||
%dir %{_datadir}/icons/hicolor/*
|
||||
%dir %{_datadir}/icons/hicolor/*/apps
|
||||
%{_datadir}/icons/hicolor/*/apps/mumble.*
|
||||
%{_datadir}/applications/*
|
||||
%{_libdir}/mumble
|
||||
|
||||
%files server
|
||||
%doc %{_docdir}/%{name}/scripts/murmur.ini
|
||||
%{_bindir}/mumble-server
|
||||
%config %{_sysconfdir}/dbus-1/system.d/mumble-server.conf
|
||||
%config(noreplace) %{_sysconfdir}/mumble-server.ini
|
||||
%{_tmpfilesdir}/mumble-server.conf
|
||||
%{_unitdir}/mumble-server.service
|
||||
%{_mandir}/man1/mumble-server.*
|
||||
%{_mandir}/man1/mumble-server-user-wrapper.*
|
||||
%{_datadir}/metainfo/info.mumble.Mumble.appdata.xml
|
||||
%dir %{_sysconfdir}/apparmor.d
|
||||
%config %{_sysconfdir}/apparmor.d/usr.sbin.murmurd
|
||||
|
||||
%if %{with server}
|
||||
%files server
|
||||
%license LICENSE
|
||||
%{_bindir}/mumble-server
|
||||
%{_bindir}/mumble-server-user-wrapper
|
||||
%dir %{_sysconfdir}/mumble
|
||||
%config(noreplace) %{_sysconfdir}/mumble/mumble-server.ini
|
||||
%{_unitdir}/mumble-server.service
|
||||
%{_sysusersdir}/mumble-server.conf
|
||||
%{_mandir}/man1/mumble-server.1%{?ext_man}
|
||||
%{_mandir}/man1/mumble-server-user-wrapper.1%{?ext_man}
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
# Last Modified: Thu Mar 24 13:33:08 2011
|
||||
#include <tunables/global>
|
||||
|
||||
profile murmurd /usr/sbin/murmurd {
|
||||
#include <abstractions/base>
|
||||
#include <abstractions/nameservice>
|
||||
#include <abstractions/openssl>
|
||||
#include <abstractions/ssl_certs>
|
||||
#include <abstractions/user-tmp>
|
||||
|
||||
# needed for real time scheduling of the mixer threads
|
||||
capability sys_resource,
|
||||
|
||||
network inet dgram,
|
||||
network inet stream,
|
||||
network netlink,
|
||||
|
||||
/usr/share/icu/*/icu*.dat r,
|
||||
|
||||
/etc/mumble-server.ini rk,
|
||||
/usr/bin/lsb_release cx,
|
||||
/var/lib/mumble-server/ rwk,
|
||||
/var/lib/mumble-server/** rwk,
|
||||
/var/log/mumble-server/murmur.log w,
|
||||
/var/run/mumble-server/mumble-server.pid w,
|
||||
|
||||
profile /usr/bin/lsb_release {
|
||||
#include <abstractions/base>
|
||||
#include <abstractions/consoles>
|
||||
|
||||
/{usr/,}bin/bash rm,
|
||||
/proc/meminfo r,
|
||||
/usr/bin/getopt rmix,
|
||||
/usr/bin/head rmix,
|
||||
/usr/bin/grep rmix,
|
||||
/usr/bin/sed rmix,
|
||||
/usr/bin/cut rmix,
|
||||
/usr/bin/lsb_release r,
|
||||
/etc/SuSE-release r,
|
||||
}
|
||||
#include if exists <local/usr.bin.mumble-server>
|
||||
}
|
||||
Reference in New Issue
Block a user