From 56f6b9822ff2e59d41c1cd75285d216de73a09c1 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 23 Feb 2026 18:51:53 +0100 Subject: [PATCH] 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. --- docker-compose.yml | 2 +- patches/apply_pymumble_ssl.py | 23 +---------------------- 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7704c01..6c04f58 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,4 +18,4 @@ services: - ./secrets:/app/secrets:ro,Z environment: - OPENROUTER_API_KEY - command: ["--verbose", "--cprofile"] + command: ["--verbose"] diff --git a/patches/apply_pymumble_ssl.py b/patches/apply_pymumble_ssl.py index 89b8b5a..e8037d3 100644 --- a/patches/apply_pymumble_ssl.py +++ b/patches/apply_pymumble_ssl.py @@ -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)")