- major fixes:
- correctly wait for worker threads to terminate
- workaround new broken python3-uinput packages on Fedora
- more robust version parsing
- missing X11 error context in XI2 input bindings
- clipboard errors on Microsoft Windows (regression in 3.1.3)
- timestamp clamping code could swallow X11 client messages
- add
capability
authentication module - match display size exactly with RandR 1.6
- keyboard:
- xkb rules name parsing error with Python 3
- avoid errors when there is no keyboard config
- fallback keycode mapping errors
- build, packaging and platforms:
- support the latest version of gtk-mac-bundler
- pyobjc libffi crash workarounds
- Cython 3.0.0b1 compatibility
- ffmpeg v6 compatibility
- support for RHEL 9.x and clones
- missing systray dependency on Debian and Ubuntu
- build only python3-xpra DEBs for newer distributions
- DEBs switched to pybuild
- build errors with latest Python
- MS Windows
unregister
class reliably - MS Windows errors building the C++ modules
- use symlinks for CUDA path on MS Windows
- use standardized paths for new repo build scripts
- missing checksums and dependencies for some RPM spec files
- Python2 compatibility fixes
- make it possible to override build options on MacOS
- network:
- add
rencodeplus
- better compatibility with newer versions: emulate the
command
Posix command - handle version generic requests
- websocket fixes: python2 compatibility, error handler
- proxy should not try to recompress strings
- IPv6 parsing errors
- support newer versions of python-cryptography
- silence OpenSSL3 + pycryptography legacy warning
- workaround for missing paramiko dependency on python3-invoke (ie: Fedora)
- safer paramiko lookup functions
- ldap 'username_format' option can be set using an environment variable
- add
- cosmetic:
- more helpful connection failure messages
- handle config file parsing errors more gracefully
- free wrapper explicitly to avoid warnings in webp decoder
- errors in xsettings watcher
- avoid errors deleting the temporary print file
- MacOS doesn't have an
XDG_RUNTIME_DIR
- catch missing python-dbus earlier
- avoid errors when python-xdg is not installed
- don't assume the peer is 32-bit when unspecified
- encodings:
- only enable an encoding if we have an encoder for it
- avoid video for small sizes
- honour
XPRA_ALPHA
environment variable in client - validate x264 encoder dimensions to prevent potential crashes
- fix transparency saturation: use premultiplied alpha with pillow and webp
- numpy import race condition
- expose
IDR
frame type in NVENC