fix: revert pymumble protocol version patch that broke audio

Reporting version 1.5.0 to mumble-server caused it to expect the newer
audio frame format (terminator bit on opus length varint). pymumble
1.6.1 does not implement this, so the server silently dropped every
UDPTunnel audio packet. Revert to native 1.2.4 -- audio works, only
side effect is a cosmetic ChannelListener warning.

Also remove --cprofile from docker-compose command.
This commit is contained in:
user
2026-02-23 18:51:53 +01:00
parent 09880624d5
commit 56f6b9822f
2 changed files with 2 additions and 23 deletions

View File

@@ -18,4 +18,4 @@ services:
- ./secrets:/app/secrets:ro,Z
environment:
- OPENROUTER_API_KEY
command: ["--verbose", "--cprofile"]
command: ["--verbose"]

View File

@@ -2,7 +2,7 @@
1. pymumble: ssl.wrap_socket was removed in 3.13
2. opuslib: ctypes.util.find_library fails on musl-based distros
3. pymumble: protocol version 1.2.4 is rejected by modern servers
3. pymumble: close stale socket on reconnect
"""
import pathlib
@@ -71,24 +71,3 @@ print("pymumble reconnect socket patch applied")
p.write_text(src)
# -- pymumble: report modern protocol version --
# PyMumble 1.6.1 reports protocol version 1.2.4, which modern Murmur
# (1.5.x) treats as an invalid/legacy client. Update to 1.5.0 so the
# server enables full feature set and stops sending warnings.
p = pathlib.Path(f"{site}/pymumble_py3/constants.py")
src = p.read_text()
old_ver = "PYMUMBLE_PROTOCOL_VERSION = (1, 2, 4)"
new_ver = "PYMUMBLE_PROTOCOL_VERSION = (1, 5, 0)"
assert old_ver in src, "pymumble version patch target not found"
src = src.replace(old_ver, new_ver)
old_os = 'PYMUMBLE_OS_STRING = "PyMumble %s" % PYMUMBLE_VERSION'
new_os = 'PYMUMBLE_OS_STRING = platform.system()'
assert old_os in src, "pymumble OS string patch target not found"
src = src.replace(old_os, new_os)
p.write_text(src)
print("pymumble version patch applied (1.5.0, native OS string)")