# changelog

author: Antoine Martin <antoine@xpra.org> - 0.21.6-2.xpra1
changelog:
  - Force upgrade of broken Fedora 28 package, which is missing the new python "deprecation" dependency


author: Iryna Shcherbina <ishcherb@redhat.com> - 0.25-14
changelog:
  - Update Python 2 dependency declarations to new packaging standards
    (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)


author: Antoine Martin <antoine@xpra.org> 3.0.10-10xpra3
changelog:
  - fix X11 server key symbol lookup via Xkb
  - fix encryption not honoured with TCP sockets upgraded to WebSocket
  - fix window corruption with 'scroll' encoder
  - fix desktop-scaling changes from the system tray
  - fix clipboard synchronization problems caused by clipit
  - fix packaging with newer versions of py2app (MacOS)
  - fix logging spam in start-new-command dialog
  - fix building from source on archlinux
  - fix swapped red and blue colours channels in win32 systray
  - fix error parsing invalid config files
  - fix missing content-type for some windows
  - fix server crash on exit on some Linux distributions
  - fix 'xpra send-file' to use absolute file paths
  - fix format of attributes given to glXChooseVisual
  - fix crashes in OpenGL context setup on X11
  - fix race condition in window statistics
  - fix server errors when non-interactive clients are connected
  - fix option parsing errors causing html5 client connection failures
  - fix python-lz4 packaging on MS Windows (Python2 builds)
  - html5 fixes:
      missing desktop background
      client errors painting rgb32 data with a padded rowstride
      clipboard wrongly clearing data on failures
      compatibility issues with Internet Explorer
      missing transparency for windows in focus
      no windows focused after close
      connection errors caused by spurious packets
      error in invalid packet handler
      AES encryption connections
      connection errors with AES and lz4 (disable lz4 for now)
      packet error with very small paint packets
      'insecure passwords' option shown in the wrong cases
      handle window iconification messages
      update version in about page
  - fix connection errors with 'None' values in bencoder (ie: html5)
  - fix connection errors with websocket connections and AES encryption
  - fix duplicate clipboard token sent from MS Windows servers
  - fix window initialization errors causing server startup failures
  - cleaner exit path: destroy all of our windows properly
  - add workaround for wine applications (disabled by default)
  - add 'terminator' to the 'text' application hint
  - validate webp image dimensions for transparency encoding
  - workaround bugs in pyxdg / menu configuration
  - try harder to strip all temporary build prefixes
  - remove invalid extra strings from mdns service name
  - change DLL search order to prevent conflict (MS Windows)
  - MacOS: update to Python 2.7.18 for python2 builds
  - don't recommend installing Apple's 'bonjour' on MS Windows (not needed)
  - MS Windows build setup update: install python-lzo using pacman


author: Antoine Martin <antoine@xpra.org> 3.0.11-10xpra1
changelog:
  - fix encryption option overzealously enforced on all socket types
  - fix network layer compression errors that can cause connections to drop
  - fix printing errors with some shell character encodings
  - fix NVENC h264 stream compatibility with HTML5 client
  - fix windows not getting focused when clicking on title bar (HTML5)
  - fix suspend / resume errors with tray windows
  - fix Python2 / GTK2 compatibility regression from 3.0.10
  - fix tray geometry errors
  - fix minimum video scaling not being honoured via heuristics
  - fix clipboard data sometimes going missing when ownership changes
  - fix error in main thread verifier (fortunately, never fired)
  - fix python-pillow packaging conflicts on CentOS / RHEL 7
  - fix memory contents of the swscale pixel format object
  - fix csc_swscale converter getting recycled every time
  - fix division by zero errors during window cleanup
  - fix detection of named-pipe creation errors
  - fix MS Windows shadow server errors with 'bind=auto'
  - fix MS Windows servers slow to handle connections with mDNS enabled
  - fix sshfp support on MacOS (was missing dns python module)
  - fix MacOS errors with some subcommands (ie: 'list')
  - fix notification widget wrongly stealing input focus
  - fix support for building with CUDA 11.0
  - fix unshrinkable session-info window
  - fix window resizing errors when non-GUI clients are also connected
  - avoid ever using b-frames for text content
  - silence unhelpful gtk warnings on MacOS
  - avoid opengl warning with wayland
  - discard invalid clipboard requests early
  - workaround for older versions of python-cryptography
  - use 'text' mode for 'geany' (fixes lossy screen updates)
  - ensure all toolbox windows set a correct and readable window title
  - convert invalid map events to warnings (no scary crash reports)
  - also update mdns records when the session name changes
  - make it possible to specify the path used for saving video streams / frames


author: Antoine Martin <antoine@xpra.org> 3.0.12-10xpra1
changelog:
  - fix NVENC encoder (profile errors, cleanup race condition)
  - fix unmanaged X11 message call which could cause GTK to crash when it fails
  - fix 'sync-xvfb' option: setup error, non-standard bit depth support
  - fix missing system tray on Ubuntu 18.04
  - fix workspace spurious warnings on 64-bit X11 systems
  - fix event handler with 64-bit MS Windows builds
  - fix named-pipe server clash
  - fix error handing in MS Windows printer query API
  - switch to Xvfb on Debian and Ubuntu
  - workaround more pyxdg bugs
  - ignore plink packaging errors with 32-bit MS Windows builds
  - disable swscale on 32-bit MS Windows builds (prevent crashes)
  - tabs mixed with spaces (potential for bug)
  - add missing DEB dependency


author: Antoine Martin <antoine@xpra.org> 3.1-10.1xpra1
changelog:
  - critical fixes:
      proxy deadlock, subprocess leak, socket errors
      proxy start and display handling errors
      proxy disconnections under heavy load
      'scroll' detection bugs
      attach failures with remote start
      windows not getting focus
      unnecessary screen update latency
      crash / corruption in the webp encoder
      crash caused by resizing large SVG icons
      crash caused by notifications
      screen resizing with invalid DPI values
      audio silence detection with DEB packages
  - screen update fixes:
      cairo rendering artifacts
      lossy screen updates when 'scroll' encoding is used
      video subregion detection error
      wayland client geometry repaint
      recover speed more quickly
      expire delayed regions on schedule
      mmap does not need refreshing
  - misc fixes:
      concurrency runtime errors
      window resize counter was invalid / ignored
      cuda error handling
      xdg menu loading failures
      'encoding' control command
      invalid default value for $XDG_DATA_DIRS
      parsing of peercred options
      spurious errors if file transfers are disabled
      validation of display numbers
      sessions started by the proxy miss $HOME and $USER
      tray menu clipboard errors
      environment variables not honoured via xpra launcher
      URL forwarding errors with Python 3 clients
      dangerous default argument corruption
      honour XPRA_NOMD5 in window border code
      warning message format under VirtualBox on MS Windows
      honour the XPRA_XDG_EXPORT_ICONS environment variable
      ensure passwords are not logged using 'auth' debug logging
      xdg-open stdout / stderr formatting
  - build, packaging, platform and test fixes:
      compilation errors with newer GCC versions, CentOS 7
      missing build dependencies
      split Python 2 vs 3 packages
      support Python 3.9
      printing diagnostic script errors with Python 3
      updated supported distributions
      updated build and runtime dependencies
      MacOS Big Sur compatibility
      SELinux policy tweaks
      ignore 'bell' audio device
      never pollute /root/.xpra or /root/.config/
      point to the correct systemd service configuration file path
      remove hard dependency on 'gnome-shell'
      invalid permissions on some scripts and data files
      update packging to get version information from git
      OpenBSD build fix
  - MS Windows fixes:
      test errors due to low precision clock
      clipboard cleanup errors
      bubble notifications not showing up
      missing / transparent icons in the system tray
      overflow errors accessing window handles
      use an up to date PDFium library
      non-ascii key lookup with shadow servers
      client sub-layout detection
      client handling of 'Control' key combinations
  - keyboard fixes:
      key symbol lookup
      invalid key modifier detection
      stuck keys
      mismapped key groups
  - network fixes:
      handling of jittery connections
      silence mdns warnings
      socket creation errors with missing directories
      failures to enable packet compression
      connection errors when a non-ui client is already connected
      try harder not to leave 'xpra _proxy' zombies behind
      ssh connection errors with proxycommand or proxyhost port numbers
      ensure some packets are not delayed unnecessarily
      file transfers with non-ascii filenames
      automatically shrink large SVG icons
  - HTML5 client:
      sends audio 'stop' before it is allowed to do so
      can specify the display to connect to
      show complete disconnection message
  - enhancements and changes:
      allow exit-with-children with any start-child argument
      nvjpeg encoder
      latest 'xpra top' client
      updated window class mappings
      support smooth scrolling - ie: touchpads
      faster server startup
      increase default refresh rate
      honour initial window position hint
      'source-start' now handles executables that print the new environment
      drop Python 2 / GTK 2 builds on MS Windows
      add new common screen resolutions for Xdummy
      add 'map' and 'unmap' control commands
      debug logging tweaks, remove confusing messages
      the socket type can be specified with systemd socket activation
      stop supporting legacy salt digest modes
      always verify SSL hostname


author: Antoine Martin <antoine@xpra.org> 3.1.1-10.1xpra1
changelog:
  - critical bugs:
      fix crashes during printer enumeration on MS Windows
      fix crashes when starting audio forwarding via the command line
      disable crashy ffmpeg codecs with 32-bit builds
      rencode DoS (MacOS and MS Windows binary builds)
      missing key events
  - server stalls:
      don't load menu data from the main thread
      don't query the list of printers from the main thread
  - build, packaging and platform fixes:
      Python 3.10 support
      default to using CUDA 11.4
      don't try to build NVENC against newer glibc headers (CUDA bug)
      support NVidia Ampere cards natively
      compatibility with experimental version of ffmpeg (GBRP9LE)
      more reliable git branch detection
      Linux distribution detection bug with Python 3 versions
      remove unnecessary runtime dependency on distutils
      clipboard support with python2 servers started from a Wayland environment
      corrupted cursors on MS Windows
      make it possible to bundle webcam support on MS Windows (still disabled by default)
      updated GStreamer dependencies
      the Debian package name we have to recommend is 'dnspython'
      generic / common RPM packages should not depend on Python 3
      use the correct /etc/default path for service configuration
      MacOS updates for GTK3 3.24.30: patches, dependencies
      MacOS packaging of the latest Python pillow with webp support
      add missing C++ files to source snapshots
      fixup some compatibility issues in previous backports
      clean generated Cython files (some pyd filenames have changed)
      use the versioned python interpreter for sourcing files (fix error on CentOS 8)
      locate libfakeXinerama more reliably (at build time)
      missing vpx support on CentOS 7.x
      libwebp 1.2.1
      pynvml 11.470.66
      patched rencode - override the buggy version from EPEL
      arm64 build and packaging tweaks
  - network:
      handle mmap client setup errors correctly
      mmap unix group lookup API
      support improved packet encoders
      use the correct exit code for encryption problems
      http script errors
      session 'name' server control command error
      use cryptographically secure random values with AES
      prevent DoS using unreasonably large number of key stretching iterations
      menu errors when there are active VNC connections
      stricter validation of raw packet indexes
      better compatibility with packet encoders (start menu, clipboard)
      reply with 404 if we don't find any data to send
      correctly parse ssh remote command output
      MacOS and MS Windows shadow servers missing the default TCP socket (port 14500)
  - authentication:
      stricter validation of challenge digest
      honour the `socket-dirs` option in authentication modules
      fallback to the current user if the one specified is invalid
  - encodings:
      correctly paint OpenGL scaled jpeg YUV screen updates
      error in 'void' paint handler (normally unused)
      sha1 data integrity checksum values
      re-enable non-fatal ffmpeg logging outside suppressed code blocks
      vpx encoder uninitialized variable undefined behaviour
      restrict the number of NVENC errors tagged as transient
      don't use AV sync for 'text', 'desktop' and 'picture' content types
  - window geometry:
      errors with StackMode requests
      size hints not being honoured in some rare cases
  - misc fixes:
      notifications should not override the exit code
      stop processing info requests when the server is exiting
      increase the maximum size of Xdummy resolutions (uses more memory)
      retry if we fail to load the list of windows the first time (seamless servers)
      missing notifications when failing to load the icon
      fix default values shown with 'xpra --help'
      try harder to exit the server cleanly (kill xvfb and dbus later)
      honour the force-replace-wm flag when upgrading
      some modifiers may not have matching key names (ie: VNC clients)
      don't expose xdg desktop entries that don't have a command to run
      smooth scrolling with GTK3 clients
      documentation, debugging, logging tweaks and fixes
      u2f tool error
      prefer https for links to the xpra.org website
      fix saving icons with gi bindings (Python 3)
      make it easier to run in a prefixed installation
      cursor regression with Python 2 builds
  - proxy fixes:
      preserve audio packets chunking (avoids an HTML5 client bug)
      avoid potential race conditions with video encoder re-framing
      try harder to find a usable session directory to use
  - audio fixes:
      ensure we always stop the 'new-stream' notification process
      remove aac codec flag causing compatibility errors
      fix sink test tool command line usage
  - 'top' client:
      server errors when 'top' clients are connected
      handle unicode window names correctly
      threading fixes (screen corruption)
      latency shown as always zero
  - html5:
      less strict content security policy
      ensure the 'set-initial-position' attribute is initialized
      avoid sending window attributes set to 'None'
      fix lz4 with AES incompatibility
      log the reason when closing
      don't start a new session again when re-connecting
      don't try to re-connect when the server is shutting down
      re-connected session would lose its connection quickly
      keyboard layout mapping from browser language
      window snapping to the edge, wrong offset
      avoid triggering server side errors on OR windows


author: Antoine Martin <antoine@xpra.org> 3.1.2-10.1xpra1
changelog:
  - encoding errors with vpx
  - fix pkg-info build command
  - packaging workarounds for Ubuntu Impish
  - fixup missing import in backport
  - minor RPM build fixes
  - rebuild with small fixes


author: Antoine Martin <antoine@xpra.org> 3.1.3-10.1xpra1
changelog:
  - major fixes:
      GDK crash when updating parked windows geometry
      always free X11 images safely
      MS Windows clients mishandling some window hints (ie: Firefox)
      connection errors when non-user-interactive clients are connected
      filenames with special characters when opened remotely
      missing notifications due to icon parsing errors
      handling of packet parsing errors
      bencoder error when cuda info is missing
      missing auto-refresh
      'Content-Security-Policy' fixes and workarounds for Safari, xpra-html5 v6
      keyboard mapping not honouring the more specific keymap definition
      honour system prefix when loading xkb keymaps
      launcher gui initialization error on Wayland
      audio and webcam not starting with some packet encoders
  - build and packaging:
      build using CUDA 11.7 by default, compile as C++11
      clean target left some generated files behind
      dependency updates
      MacOS new package signing key
      ffmpeg 5.0 compatibility
      library updates: Cython, pynvml, etc
      workarounds for latest Cython with GCC 4
      support almalinux, rocklylinux and oraclelinux 8 build targets
      aarch64 builds
      content type updates: `unityhub` is a browser, `ffplay` is video
  - minor bugs and tweaks:
      clipboard errors with MS Windows clients and UTF8 data
      server errors on encoding change (ie: client tray menu)
      store and send client properties as strings
      configurable ping timeout delay
      make it possible to run the client without some cython extensions
      'xpra showsetting' subcommand errors
      always expose the server socket location
      make socket querying code more resilient
      potential race conditions with xpra info requests
  - cosmetic:
      more understandable error message when ssh fails to connect
      during shutdown, ignore errors trying to set nodelay / cork
      clipboard error messages when there is no client handling it
      avoid warnings triggered by Pillow v9
      show disabled menu entries in MacOS menus with GTK3 builds
      codec loader output was ignoring standard log output format
      silence spurious authentication modules warnings
      always log the full backtrace for client connection errors
      use the correct license short names
      nvml version query error
      misc logging tweaks and fixes
  - encodings:
      disable vaapi with the ffmpeg encoder (crashy)
      handle grayscale png images with transparency
      workaround for missing video mode client metadata
      don't send empty alpha channel
      never delay screen updates unless we have a video region
      jpeg decoder generated invalid picture metadata


author: Antoine Martin <antoine@xpra.org> 3.1.4-10.1xpra1
changelog:
  - 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
  - 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


author: Antoine Martin <antoine@xpra.org> 3.1.5-10.1xpra1
changelog:
  - build, packaging and platforms:
      MacOS arm64 builds
      MacOS builds fail early outside `jhbuild` shell, clean `.cpp` files
      MacOS bundle numpy for PyOpenGL
      fix building libyuv on RHEL 7
      avoid spec file patch warnings with newer rpm build tools, CentOS7
      compilation warnings with Python2
      Python3 str vs bytes error in client
      silence Python cryptography 'openssl legacy' error
      ignore more files generated by build tools
      package mistyped in exclusion list
      DEB Python3 builds missing correct shebang
      DEB build occasional permission errors
      remove invalid DEB dependency on `python-minimal`
      workaround exotic x264 library version strings
      compatibility with the latest cx_Freeze
      runtime errors with CUDA-free builds on MS Windows
      more setuptools workarounds
      strip Cython html files
      Cython 0.29.35
      PyOpenGL 3.1.7
      Python2 PyOpenGL 3.1.6, Python3 PyOpenGL 3.1.7
      xorg-x11-drv-dummy 0.4.1
  - major fixes:
      GLib memory allocator crash
      fix missing system tray with 'AyatanaAppIndicator3' vs 'AppIndicator3'
      don't use Gtk.StatusIcon on Wayland, it doesn't work
      clients without keymaps
      clients without desktops attributes
      only allow logging tweaks via env vars for non-root users
      always format the log record
      match client desktop geometry and skip DPI warnings
      potential unflushed X11 errors could crash GTK
      stricter validation of `xdg` menu data
      handle mode `xdg` library loading errors
      unwanted lost-focus events
      only use synthetic unfocus events when needed
      focus not synchronized properly
      sessions gui crashing when exiting using a key shortcut on MS Windows
      handle invalid 'use-display' option more gracefully
      Python2 builds cannot use 'rencodeplus'
      MacOS OpenGL race condition causing blank windows
  - network:
      html5 client v5 compatibility regression with python2 builds
      protocol was not flushing on close
      IPv6 parsing
      handle paramiko ssh config parsing errors more gracefully: `CanonicalizeHostname`
      404 handler was missing!
  - encodings:
      handle mixed case encoding names correctly (ie: `png/P`)
      honour 8-bit encodings
      handle RGBA icon data
      disable `delta` encoding - which caused some visual corruption
  - cosmetic:
      spurious DPI warnings
      handle malformed display names better
      make it possible to disable `sha1`
      avoid errors if `md5` has already been removed
      parsing of X11 window names in clipboard information helper function
      avoid 404 errors in server log when newer html5 client versions are used
      don't flood the screen with `mmap` debugging
      initialize server fully so errors don't cause more cleanup errors
      window event handler logging error
      server can run without stderr
      not yet used command parsing functionality not working as intended
      MacOS GUI diagnostic tool standalone runtime failure


author: Antoine Martin <antoine@xpra.org> 3.1.6-10.1xpra1
changelog:
  - major fixes:
      some `scroll` screen updates not flushed
      crashes with newer versions of GI / GTK
      pipe and process leak with signal watcher
      RandR must re-use an existing mode if it exists
      honour all 'start' options with remote starts
  - build, packaging and platforms:
      library updates: ffmpeg 6.1, python2 dbus 1.2.18, python3 pycuda 2023.1 (2022.1 for python2), pbr 6.0, pyxdg 0.28, pynvml 12.535.133, libwebp 1.3.2, libvpx 1.13.1, pyopengl 3.1.7 (3.1.6 for RHEL7), cython 3.0.6 and 0.29.36, dummy driver 0.4.1
      cx_Freeze packaging workarounds for python2 MS Windows builds
      ensure `freetype2`, `cairo` and `certifi` are bundled in
      python 3.12 compatibility
      automatic RPM release numbers
      support RPM downgrades from newer versions
      drop support for Fedora versions older than 37
      missing DEB pkgconf dependency
      Cython 3.x and 0.29.x compatibility
      remove support for Debian Stretch
      rely on distro DEB packages for python-opengl, python-lz4, rencode, xserver-xorg-video-dummy
      build with Cython 3.x for Python 3 on Debian
      more reliable ARCH detection
      don't enable dbus module on MacOS or MS Windows
      don't use `XDG_RUNTIME_DIR` on MacOS
      `named-pipe` warnings
  - network:
      ssh upgrades flag not disabled on import error
      try harder to locate the start of websocket data
      try to close sockets cleanly on exit and on errors
      honour clipboard size limits
      shortcut out if not binding to any local sockets
      dpi values must be rounded to integers
      rencodeplus capability validation
  - trays and notifications:
      avoid None value errors with MS Windows native notifier
      prefer native system trays to Gtk's StatusIcon, except on X11
      MacOS tray menu errors
      missing system tray on MS Windows after explorer.exe restart
      missing or disabled tray menus with `AppIndicator` backend
  - compatibility:
      honour `opengl=force`
      webcam forwarding geometry
      compatibility with a wider range of Python Pillow versions
      better detection of Wayland vs X11 sessions
      force X11 backend for PyOpenGL
      only enable compression after the handshake
      partial compatibility with v6 clients and servers: encryption, mmap, encodings, dpi
      never expose None values, our custom types or `numpy` types in `info` packet data or notifications
      X11 OpenGL context manager inconsistency
      remove outdated ogg latency fix warning
      workaround NVENC deprecated presets
      log clipboard backend failures
      distribution detection fallback code path was broken
  - cosmetic:
      cleaner client output
      pyobjc warnings
      bump large packet size to silence Java warnings
      `ffmpeg`'s `register_all` was called twice unnecessarily
      use attribute alias if available (cleanup code path)
      errors in `GREMEDY` OpenGL debugging
      formatting errors in verbose / x11 debug mode
      `RFB` error when rejecting protocol versions
      explicitly return a failure value from the ldap authentication module
      no-prefix coloured output with more text subcommands
      use integer division for counters
      window filter invalid parsing
      more RandR mode debug details
      unused code and variables removed
      valid linter warnings
      `proxy-video-encoders` is a valid command line option
      changelog formatting and bogus dates


author: Antoine Martin <antoine@xpra.org> 2.3-1
changelog:
  - stackable authentication modules
  - tcp wrappers authentication module
  - gss, kerberos, ldap and u2f authentication modules
  - request access to the session
  - pulseaudio server per session to prevent audio leaking
  - better network bandwidth utilization and congestion management
  - faster encoding and decoding: YUV for webp and jpeg, encoder hints, better vsync
  - notifications actions forwarding, custom icons, expose warnings
  - upload notification and management
  - shadow servers multi window mode
  - tighter client OS integratioin
  - client window positioning and multi-screen support
  - unique application icon used as tray icon
  - multi stop or attach
  - control start commands
  - forward signals sent to windows client side
  - forward requests to open URLs or files on the server side
  - html5 client improvements: top bar, debugging, etc
  - custom http headers, support content security policy
  - python3 port improvements
  - bug fixes: settings synchronization, macos keyboard mapping, etc
  - packaging: switch back to ffmpeg system libraries, support GTK3 on macos
  - structural improvements: refactoring, fewer synchronized X11 calls, etc


author: Antoine Martin <antoine@xpra.org> 2.4-1
changelog:
  - SSH client integration (paramiko)
  - builtin server support for TCP socket upgrades to SSH (paramiko)
  - automatic TCP port allocation
  - expose desktop-sessions as VNC via mdns
  - add zeroconf backend
  - register more URL schemes
  - window content type heuristics configuration
  - use content type it to better tune automatic encoding selection
  - automatic video scaling
  - bandwidth-limit management in video encoders
  - HTML5 client mpeg1 and h264 decoding
  - HTML5 client support for forwarding of URL open requests
  - HTML5 client Internet Explorer 11 compatibility
  - HTML5 client toolbar improvements
  - HTML5 fullscreen mode support
  - limit video dimensions to cap CPU and bandwidth usage
  - keyboard layout handling fixes
  - better memory management and resource usage
  - new default GUI welcome screen
  - desktop file for starting shadow servers more easily
  - clipboard synchronization with multiple clients
  - use notifications bubbles for more important events
  - workarounds for running under Wayland with GTK3
  - modal windows enabled by default
  - support xdg base directory specification and socket file time
  - improved python3 support (still client only)
  - multi-window shadow servers on MacOS and MS Windows
  - buildbot upgrade
  - more reliable unit tests
  - fixes and workarounds for Java client applications
  - locally authenticated users can shutdown proxy servers
  - restrict potential privileged information leakage
  - enhanced per-client window filtering
  - remove extra pixel copy in opengl enabled client
  - clip pointer events to the actual window content size
  - new platforms: Ubuntu Cosmic, Fedora 29


author: Antoine Martin <antoine@xpra.org> 2.5-1
changelog:
  - Python 3 port mostly complete, including packaging for Debian
  - pixel compression and bandwidth management:
  - better recovery from network congestion
  - distinguish refresh from normal updates
  - better tuning for mmap connections
  - heuristics improvements
  - use video encoders more aggressively
  - prevent too many delayed frames with x264
  - better video region detection with opengl content
  - better automatic tuning for client applications
  - based on application categories
  - application supplied hints
  - application window encoding hints
  - using environment variables and disabling video
  - HTML5 client improvements
  - Client improvements:
  - make it easier to start new commands, provide start menu
  - probe OpenGL in a subprocess to detect and workaround driver crashes
  - use appindicator if available
  - Packaging:
  - merge xpra and its dependencies into the ​MSYS2 repository
  - ship fewer files in MS Windows installers
  - partial support for parallel installation of 32-bit and 64-bit version on MS Windows
  - MacOS library updates
  - CentOS 7: libyuv and turbojpeg
  - Windows Services for Linux (WSL) support
  - Fedora 30 and Ubuntu Disco support
  - Ubuntu HWE compatibility (manual steps required due to upstream bug)
  - Server improvements:
  - start command on last client exit
  - honour minimum window size
  - Python 3
  - upgrade-desktop subcommand
  - Network layer:
  - less copying
  - use our own websocket layer
  - make it easier to install mdns on MS Windows
  - make mmap group configurable
  - TCP CORK support on Linux
  - SSH transport:
  - support .ssh/config with paramiko backend
  - connecting via ssh proxy hosts
  - SSHFP with paramiko:
  - clipboard: restrict clipboard data transfers size
  - audio: support wasapi on MS Windows
  - code cleanups, etc


author: Antoine Martin <antoine@xpra.org> 3.0-1
changelog:
  - Python 3 port complete, now the default: #1571, #2195
  - much nicer HTML5 client user interface: #2269
  - Window handling:
  - smoother window resizing: #478 (OpenGL)
  - honouring gravity: #2217
  - lock them in readonly mode: #2137
  - xpra top subcommand: #2348
  - faster startup:
  - #2347 faster client startup
  - #2341 faster server startup
  - OpenGL:
  - more reliable driver probing: #2204
  - cursor paint support: #1497
  - transparency on MacOS: #1794
  - Encoding:
  - lossless window scrolling: #1320
  - scrolling acceleration for non-OpenGL backends: #2295
  - harden image parsing: #2279
  - workaround slow video encoder initialization (ie: NVENC) using replacement frames: #2048
  - avoid loading codecs we don't need: #2344
  - skip some CUDA devices, speedup enumeration: #2415
  - Clipboard:
  - new native clipboard implementations for all platforms: #812
  - HTML5 asynchronous clipboard: #1844
  - HTML5 support for copying images: #2312 (with watermarking)
  - brotli compression for text data: #2289
  - Authentication:
  - modular client authentication handlers: #1796
  - mysql authentication module: #2287
  - generic SQL authentication module: #2288
  - Network:
  - client listen mode: #1022
  - retry to connect until it succeeds or times out: #2346
  - mdns TXT attributes updated at runtime: #2187
  - zeroconf fixes: #2317
  - drop pybonjour: #2297
  - paramiko honours IdentityFile: #2282, handles SIGINT better: #2378
  - proxy server fixes for ssl and ssh sockets: #2399, remove spurious options: #2193
  - proxy ping and timeouts: #2408
  - proxy dynamic authentication: #2261
  - Automated Testing:
  - test HTML5 client: #2231
  - many new mixin tests: #1773 (and bugs found)
  - start-new-commands is now enabled by default: #2278, and the UI allows free text: #2221
  - basic support for native GTK wayland client: #2243
  - forward custom X11 properties: #2311
  - xpra launcher visual feedback during connection: #1421, sharing option: #2115
  - "Window" menu on MacOS: #1808


author: Antoine Martin <antoine@xpra.org> 4.0-1
changelog:
  - Drop support for:
     Python 2, GTK2
     legacy versions (pre 1.0)
     weak authentication
  - Network, per socket options:
     authentication and encryption
     ssl
     ssh
     bind options for client
  - make it easier to send files from the server
  - xpra toolbox subcommand
  - xpra help subcommand
  - xpra top new features
  - faster startup
  - signal handling fixes
  - smoother window resizing
  - refactoring and testing
     unit tests coverage and fixes
     completely skip loading unused features at runtime
     get rid of capabilities data after parsing it
     better module dependency separation
     don't convert to a string before we need it
  - more useful window and tray title
  - make it easier to source environment
  - disable desktop animations in desktop mode
  - automatic start-or-upgrade, automatic X11 display rescue
  - support MS Windows OpenSSH server to start shadow
  - more selective use of OpenGL acceleration in client
  - expose server OpenGL capabilities
  - cleaner HTML5 syntax


author: Antoine Martin <antoine@xpra.org> 4.1-1
changelog:
  - Overhauled container based build system
  - Splash screen
  - `run_scaled` utility script
  - Client:
     header bar option for window control menu
     generate a qrcode to connect
     show all keyboard shortcuts
     progress bar for file transfers
     GTK cairo backend support for more native bit depths
     disable xpra's keyboard shortcuts from the system tray menu
     automatically include the server log in bug reports
  - OpenGL client backend:
     render at fixed bit depths with the `pixel-depth` option
     support more bit depths
  - Clipboard:
     MacOS support for images, more text formats, etc
     MS Windows support for images
     wayland clients
  - Server:
     faster server startup
     `xpra list-windows` subcommand
     new window control commands: move / resize and map / unmap
     remote logging from server to client
     support window re-stacking
  - `xpra top`:
     show pids, shortcuts
     more details in the list view
     show speed and quality
  - Display:
     bumped maximum resolution beyond 8K
     set the initial resolution more easily using the 'resize-display' option
  - Encoding:
     server side picture downscaling
     libva hardware accelerated encoding
     NVENC 30-bit accelerated encoding
     vpx 30-bit
     x264 30-bit
     faster 30-bit RGB subsampling
     scroll encoding now handled more generically
     black and white mode
  - Network:
     IGD / UPNP
     SO_KEEPALIVE option
     clients can be queried and controlled using local sockets
     specify connection attributes using the connection string
     nested SSH tunnels
     websocket header modules
     specify the socket type with socket activation
     expose the packet flush flag
     `xpra shell` subcommand for interacting with processes in real time
     custom group sockets directory permissions and name
  - Testing:
     better test coverage
     cleanup output


author: Antoine Martin <antoine@xpra.org> 4.2-1
changelog:
  - use pinentry for password prompts and ssh prompts
  - nvjpeg encoder
  - gui for starting remote sessions
  - new subcommands: `recover`, `displays`, `list-sessions`, `clean-displays`, `clean-sockets`
  - many fixes:
     window initial position
     focus issues
     non-opengl paint corruption
     slow rendering on MacOS
     handle smooth scroll events with wayland clients
     always lossless screen updates for terminals
     clipboard timeout
     peercred auth options
  - support multiple clients using mmap simultaneously with non-default file paths
  - only synchronize xsettings with seamless servers
  - automatic desktop scaling is now disabled
  - workaround for gnome applications starting slowly (documentation)


author: Antoine Martin <antoine@xpra.org> 4.3-10
changelog:
  - Platforms, build and packaging:
     arm64 support #3291, including nvenc and nvjpeg: #3378
     non-system header builds (eg: conda): #3360
     fixed MacOS shadow start via ssh: #3343
     parallel builds: #3255
     don't ship too may pillow plugins: #3133
     easier access to documentation: #3015
     Python 3.10 buffer api compatibility: #3031
  - Misc:
     make it easier to silence OpenGL validation warnings: #3380
     don't wait for printers: #3170
     make it easier to autostart: #3134
     'clean' subcommand: #3099
     flexible 'run_scaled' subcommand: #3303
     more flexible key shortcuts configuration: #3183
  - Encodings and latency:
     significant latency and performance improvements: #3337
     spng decoder #3373 and encoder: #3374
     jpeg with transparency: #3367
     faster argb module: #3361
     faster nvjpeg module using CUDA, add transparency: #2984
     faster xshape scaling: #1226
     downscale jpeg and webp: #3333
     disable av-sync for applications without audio: #3351
     opaque region support: #3317
     show FPS on client window: #3311
     nvenc to use the same device context as nvjpeg: #3195
     nvenc disable unsupported presets: #3136
  - Network:
     make it easier to use SSL: #3299
     support more AES modes: GCM, CFB and CTR, #3247
     forked rencodeplus encoder: #3229
  - Server:
     shadow specific areas or monitors: #3320
     faster icon lookup: #3326
     don't trust _NET_WM_PID: #3251
     move all sessions to a sub-directory: #3217
     more reliable server cleanup: #3218
     better VNC support: #3256
     more seamless server upgrades: #541
     source /etc/profile: #3083
     switch input method to ibus: #2359


author: Antoine Martin <antoine@xpra.org> 4.4-10
changelog:
  - Platforms, build and packaging:
     Native LZ4 bindings
     Safer native brotli bindings
     Native qrencode bindings
     openSUSE build tweaks, Fedora 37, Oracle Linux / Rocky Linux / Alma Linux / CentOS Stream : 8 and 9
     Debian finally moved to `libexec`
     MS Windows taskbar integration
     SSH server support on MS Windows, including starting shadow sessions 
  - Server:
     Configurable vertical refresh rate
     Virtual Monitors
     Multi-monitor desktop mode
     Expand an existing desktop
     Exit with windows
     Full shadow keyboard mapping
     xwait subcommand
     guess content-type from parent pid
     cups print backend status report
     Override sockets on upgrade
     Allow additional options to X server invocation
     Control commands for modifying command environment and read only flag
     Start new commands via a proxy server's SSH listener
  - Shadow server:
     Geometry restrictions
     Shadow specific applications
  - Client:
     Automatic keyboard grabs
     Pointer confinement
     Faster window initial data
     Improved DPI detection on MS Windows
     Show all current keyboard shortcuts
     Preserve all options when reconnecting
     Option to accept SSL mismatched host permanently
     Forward all command line options
     Smooth scrolling options
     Per-window scaling - experimental
     Workaround Wayland startup hangs
  - Security and authentication:
     Configurable information disclosure
     Keycloak authentication
     Capability based authentication
     Authentication for web server scripts
     OTP authentication
     Workaround paramiko `No existing session` error
  - Encodings and latency:
     Option to cap picture quality
     Expose scaling quality
     NVJPEG decoder
     AVIF encoding
     selective `scroll` encoding detection
  - Network:
     SOCKS proxy connection support
     SSH agent forwarding
     SSH workarounds for polluted stream premable
     proxy network performance improvement
  - Misc:
     easier xpra subcommand invocation
  - Refactoring and preparation for the next LTS release:
     Feature deprecation
     Remove "app menus" support
     Remove ancient complicated code
     Simplify the build file
     More robust info handlers
     Remove scary warnings
     f-strings


author: Antoine Martin <antoine@xpra.org> 4.4-10
changelog:
  - Platforms, build and packaging:
     Native LZ4 bindings
     Safer native brotli bindings
     Native qrencode bindings
     openSUSE build tweaks, Fedora 37, Oracle Linux / Rocky Linux / Alma Linux / CentOS Stream : 8 and 9
     Debian finally moved to `libexec`
     MS Windows taskbar integration
     SSH server support on MS Windows, including starting shadow sessions
  - Server:
     Configurable vertical refresh rate
     Virtual Monitors
     Multi-monitor desktop mode
     Expand an existing desktop
     Exit with windows
     Full shadow keyboard mapping
     xwait subcommand
     guess content-type from parent pid
     cups print backend status report
     Override sockets on upgrade
     Allow additional options to X server invocation
     Control commands for modifying command environment and read only flag
     Start new commands via a proxy server's SSH listener
  - Shadow server:
     Geometry restrictions
     Shadow specific applications
  - Client:
     Automatic keyboard grabs
     Pointer confinement
     Faster window initial data
     Improved DPI detection on MS Windows
     Show all current keyboard shortcuts
     Preserve all options when reconnecting
     Option to accept SSL mismatched host permanently
     Forward all command line options
     Smooth scrolling options
     Per-window scaling - experimental
     Workaround Wayland startup hangs
  - Security and authentication:
     Configurable information disclosure
     Keycloak authentication
     Capability based authentication
     Authentication for web server scripts
     OTP authentication
     Workaround paramiko `No existing session` error
  - Encodings and latency:
     Option to cap picture quality
     Expose scaling quality
     NVJPEG decoder
     AVIF encoding
     selective `scroll` encoding detection
  - Network:
     SOCKS proxy connection support
     SSH agent forwarding
     SSH workarounds for polluted stream premable
     proxy network performance improvement
  - Misc:
     easier xpra subcommand invocation
  - Refactoring and preparation for the next LTS release:
     Feature deprecation
     Remove "app menus" support
     Remove ancient complicated code
     Simplify the build file
     More robust info handlers
     Remove scary warnings
     f-strings


author: Antoine Martin <antoine@xpra.org> 5.0-10
changelog:
  - Major improvements:
     QUIC transport
     split packaging
     freedesktop screencast / remotedesktop
     ease of use: easier basic commands, open html5 client, disable all audio features
  - Platforms, build and packaging:
     Python 3.12 installations
     replace Python2 builds
     LTS feature deprecation
     stricter type checks
     more MacOS workarounds
  - Server:
     try harder to find a valid menu prefix
     exit with windows
     side buttons with MS Windows shadow servers
     mirror client monitor layout
     side buttons with MS Windows shadow servers
  - Client:
     allow keyboard shortcuts in readonly mode
     show decoder statistics
     keyboard layout switching shortcut
     layout switching detection for MS Windows
     mirror mouse cursor when sharing
  - Minor:
     generic exec authentication module
     audio `removesilence`
     make pulseaudio real-time and high-priority scheduling modes configurable
     use urrlib for parsing
     GTK removal progress
     documentation updates and fixes: broken links, typos
  - Network:
     smaller handshake packet
     SSL auto-upgrade
     better IPv6
     new packet format
     ssh agent forwarding automatic switching when sharing
     use libnm to query network devices
     exclude more user data by default
  - Encodings:
     use intra refresh
     `stream` encoding for desktop mode
     GStreamer codecs


author: Antoine Martin <antoine@xpra.org> 5.0.1-10
changelog:
  - Major fixes:
     missing dbus instance
     ssh re-connection errors following ssh start command
     U2F authentication failures
     gstreamer x264 capture errors
     proxy forwarding of 'draw' packets with stripped alpha
  - Build and packaging:
     Fedora 39: debug package errors and build workarounds
     pycuda RPMs for Python 3.12
     Cython 3.0.2 RPMs
     Ubuntu Focal workarounds
     Debian soft dependency for nvidia codecs
     Debian x11 dependencies belong in the xpra-x11 package
     automatic revision no when building from source
  - Minor fixes:
     handle invalid compressors more gracefully
     typo in undocumented environment variable
     gtk version info missing for verbosity level


author: Antoine Martin <antoine@xpra.org> 5.0.2-10
changelog:
  - Major fixes:
     missing x264 encoder in DEB packages
     unusable vsock module
     start-after-connect was broken
     Overflow error in MS Windows hooks
     notification packet errors due to missing icon
  - Minor:
     workaround for ancient versions of Pillow
     log warnings with custom cursors and OpenGL backend
     don't send cursors without a matching encoding
     better packet namespace compatibility
     only warn once about unknown NVENC presets
     skip unused codec information
     preserve 'proxy-video-encoders' in remote command lines
     bandwidth flag compatibility, encryption namespace, encoding namespace
     don't setup ssh agent forwarding directory when proxying
     handle 'help' for video options
  - Compatibility fixes:
     bandwidth flag
     encryption namespace
     encoding namespace
     script syntax
  - Proxy
     errors in threaded mode on second connection
     compressed picture data forwarding problems
  - System Tray:
     empty system tray menu on some platforms
     missing system tray on some X11 platforms
     window setup failures due to system tray confusion
     unresponsive system tray after explorer.exe restart
  - Audio:
     pactl output parsing bug
     pactl improve detection of monitor devices
     microphone support for Chromium
     cleaner pulseaudio command options


author: Antoine Martin <antoine@xpra.org> 5.0.3-10
changelog:
  - Major:
     client signal watcher not starting
     pipe and process leak with signal watcher
     jpeg decoder invalid image attributes
     video encodings setup error
     nvjpeg encoder downscaling
     prefer native system tray on MS Windows and MacOS
     avoid None value errors with non-native MS Windows system tray
     about dialog crashes on MS Windows
     clipboard size limits
     splash screen hangs
     remove x265 encoder
     start gui error in encoding dialog
     dialogs causing crashes on some platforms
  - Compatibility fixes:
     build against deprecated NVENC presets
     handle microphone option with both state and device
     MacOS regression
     all clients support menu updates
     relative pointers
     don't expose numpy datatypes
     still show tray menu without qrcode module
     missing utility wrappers on MS Windows
  - Minor:
     fps counter rounded to an int and dpi values
     debug logging of Cython modules
     missing OpenGL toolbox on X11
     invalid type for max-display-no, watcher pid
     catch invalid display names earlier
     re-attach error on MS Windows
     ensure all required modules are included on MS Windows
     cosmetic: typo and bad formatting, missing subcommand, deprecation warning, debug logging
     skip unnecessary processing if bind=none
     avoid uinput warning
     incorrect start command request parameters


author: Antoine Martin <antoine@xpra.org> 5.0.4-10
changelog:
  - Major:
     missing flush marker with some scroll screen updates
     fixup tray backport regression
     signal watcher backport regression
     exit signal watcher on errors and hangups
     avoid menu and input device errors when client is not set
     ensure the content-type is initialized at least once
     ensure all encoders are initialized before choosing an encoding
     video modules lost after initial connection
     client error if xpra-x11 is not installed
     DPI fix for older distributions
  - `start-gui` fixes:
     display number ignored
     exit-with-children can't be unchecked in start-gui
     port number always specified but not validated
     OpenGL crash warnings on MacOS
  - Platform and packaging
     Cython 3.0.5
     also use Cython 3.x for Debian builds
     library updates: aioquic 0.9.22, pylsqlpack 0.3.18, python-wheel 0.41.3 (0.33.6 for Python 3.6)
     C functions cannot raise Python exceptions
     MacOS pyobjc warnings
     workaround py2app failure
     bogus date in changelog
     improve session type detection
     notification backend order
     DEB packages should not rely on transitive dependencies
     ignore some transient CI failures
     use latest Cython with CI
     ship systemd service if building socket activation
  - Minor:
     shortcut out when signal watcher has already terminated
     move-resize test tool broken
     safer handshake calls
     use absolute script paths when re-connecting
     avoid errors with clients sending packets to disabled subsystems
     close all sockets on errors, on permission errors and on exit
     ssh error connecting to some hosts
     type safety
     don't include empty key event in debug list
     parsing large numbers without units
  - OpenGL client accleration:
     honour opengl=force option
     X11 OpenGL context manager is not consistent
     remove confusing unused method in OpenGL client window
     OpenGL debugging errors
     opengl test window misnamed
     try harder to exit more cleanly on error
  - Cosmetic:
     check all icon directories
     silence GStreamer warnings with auto source
     outdated email address
     don't warn if `avif` encoder or decoder is missing
     add newline to clear stdout
     extra `%` in tray menu
     show failing script
     silence deprecation warning
     weird Debian changelog format warning
     man pages fixes


author: Antoine Martin <antoine@xpra.org> 4.4-1017-1
changelog:
  - encryption:
     support more AES modes: CBC, CFB and CTR
     use secure random numbers
  - core:
     decode screen updates in a dedicated worker thread
     (except on Mobile devices due to strange compatibility issues)
     switch to pure javascript lz4 implementation
     (fixes compatibility issues with browsers, encryption options, etc)
  - misc:
     notifications geometry and styling
     fix zero-copy web worker regression from 4.3
     use zero-copy for transferring audio buffers from the worker


author: Antoine Martin <antoine@xpra.org> 4.5.1-1043-1
changelog:
  - workaround Firefox bug in image decoder
  - allow AES and SSL to be combined
  - support multiple authentication challenges


author: Antoine Martin <antoine@xpra.org> 4.5.2-1106-1
changelog:
  - fix toolbar position
  - install default settings in /etc/xpra/html5-client/
  - image decoding time accounting
  - handle scaled screen updates
  - skip re-connecting when the error is likely to be permanent
  - more helpful disconnection messages
  - ensure we timeout if the websocket connection fails
  - provide an easy way to prevent unwanted connections (ie: xpra.org)
  - fix decode worker sanity checks, validate jpeg, png and webp
  - decode worker errors with legacy packet encoders
  - validate all encodings
  - window title string decoding errors
  - create directories as needed when installing
  - css syntax error
  - better support for relative URLs (proxied configurations)
  - window resize offset bug, minimization bugs
  - force xz compression for DEB packages (zstd support missing from repository webhost)
  - compress harder with brotli
  - remove unnecessary time wrapper
  - try harder to detect the correct screen refresh rate


author: Antoine Martin <antoine@xpra.org> 5.0-1237-1
changelog:
  - auto-fullscreen, alt-tabbing with window previews
  - decode images using an offscreen worker thread
  - decode `avif` images, grayscale and palette `png`
  - handle `void` paint packets
  - increase default non-vsynced target framerate
  - tell servers to use 'scroll' encoding less aggressively
  - keycloak authentication (requires xpra server version 4.4 or later)
  - support pre-mapped windows (requires xpra server version 4.4 or later)
  - support clipboard pasting file into the session
  - detect inverted vertical scrolling (ie: on MacOS)
  - improved dead key mapping for non-us layouts
  - 64-bit rencode decoding bug with Safari (and IE)
  - notification errors with bencoder
  - avoid popping up the on-screen keyboard on mobile touch events
  - updated on-screen simple-keyboard UI and file saver library
  - shifted characters with simple-keyboard
  - prevent stuck keys
  - focus and raise windows when their title bar is clicked
  - spurious focus events when minimizing windows
  - fix AES encryption when used with authentication and rencodeplus
  - build script refactoring


author: Antoine Martin <antoine@xpra.org> 6.0-1378-1
changelog:
  - refactorings, cleanups, github CI, etc - JanCVanB
  - split decode from paint, PR202 - TijZwa
  - experimental native decoding, PR200 - TijZwa
  - require ES6
  - move to structured `hello` packet data
  - support `hjsmin` minifier - arrowd
  - updated installer script: #190
  - support for chunked file transfers (large files): #120
  - modal windows should not be minimized


author: Antoine Martin <antoine@xpra.org> 7.0-1424-1
changelog:
  - unable to move undecorated / CSD windows
  - throttle video decoder to prevent flooding
  - disable offscreen decode worker with Firefox to prevent flickering
  - workaround for setuptools breakage in version 61 and later
  - native video decoding is fast enough not to require much downscaling](https://github.com/Xpra-org/xpra-html5/commit/ed4b0d72f40864cea4fb4b91b5c400085eb44fa8)
  - propagate error messages
  - truncate large clipboard buffers in log messages
  - `scroll` draw packets can hang the connection
  - prefer h264 and remove vp9
  - spurious audio stop errors
  - make stream download URL easier to embed
  - missing scroll wheel events
  - avoid errors if the window's title is unset
  - remove support for software video decoding
  - don't enable clipboard with Safari and SSL
  - provide more useful screen name to the server
  - cursor display and scaling issues
  - workaround for older versions of Safari


author: Antoine Martin <antoine@xpra.org> 8.0-1425-1
changelog:
  - disable scroll encoding with offscreen decode worker
  - screenshots cannot be used with the offscreen api
  - don't close windows when re-connecting or when closing the browser window
  - closing windows is only a request
  - hide options when they are not available: `shutdown` and `file upload`
  - remote logging arguments missing
  - fix initiate-move-resize
  - cursor fixes: cursor updates and geometry
  - fix vertical scroll reverse
  - minor cleanups:
     unused variables
     unused function
     unused statements
     document empty functions
     linter cleanup
     use a more correct datatype
     improved syntax
     use the preferred keywords for variable declaration


author: Antoine Martin <antoine@xpra.org> 9.0-1479-1
changelog:
  - support only xpra v5
  - windows that shouldn't be collapsible can be collapsed but not restored back
  - Unicode clipboard transfers
  - fix keyboard modifiers mapping
  - allow spaces in passwords
  - safari doesn't draw the window
  - enable offscreen rendering with Firefox and Safari
  - require less CPU but more bandwidth
  - use relative path for icons
  - more robust value parsing
  - dependencies cleanup


author: Antoine Martin <antoine@xpra.org> 10-1482-1
changelog:
  - update libraries: jquery v3.7.1, jquery ui v1.13.2
  - disable offscreen rendering with more buggy webkit based browsers, Chrome without https
  - missing svg icons in start menu
  - don't show the clock menu entry until we have the time
  - compatibility with newer servers for ping option
  - move some encoding attributes to default settings, support more encoding attributes
  - simplify parameter parsing
  - structured capabilities and more readable
  - cosmetic: debug logging, whitespace, invalid escape sequence


author: Antoine Martin <antoine@xpra.org> 4.3-962-1
changelog:
  - build and packaging:
     installation with python2 build environment
     create symlinks for some fonts
     more reliable git branch detection
  - rencode packet encoder:
     new, clean javascript implementation
     remove workarounds for Safari, encryption, compression, etc
     handle byte arrays natively without copying
  - geometry fixes:
     option to adjust viewport to screen width via scaling
     window visibility adjustements no longer snap to the sides
     server errors for override-redirect windows offsets
     try harder to get override-redirect windows to close
  - keyboard:
     don't show the on-screen keyboard on non-mobile devices
     fix keyboard language to keymap matcher
     Ukranian keyboard layout should use 'ua'
  - re-connect:
     don't start a new session when re-connecting
     fix disconnections after re-connecting
     don't try to reconnect when shutting down the server
  - connect dialog:
     start and start-desktop now work with or without command
     missing session, category and command icons with latest google chrome
     pass w3c validation without any warnings
  - cosmetic:
     scale window icons to fit in the title bar
     use sans-serif font for window title
     change titlebar focused / unfocused colours
     make window corners round
     try to scale application cursors to match window zoom
  - misc:
     audio debugging was wrongly enabled (extra CPU usage and lag)
     remove http mp3 stream audio support
     log disconnection messages
     prevent console errors with Internet Explorer


author: Antoine Martin <antoine@xpra.org> 5.1-0-1
changelog:
  - missing wheel events in non-seamless modes
  - workaround for older browsers without hasOwn (ie: Safari)
  - workaround debilitating Safari clipboard implementation
  - broken legacy clipboard
  - windows movement compatibility with Xpra 3.1.x
  - don't allow modal windows to be minimized
  - build fixes for RHEL and clones
  - setuptools and Debian repo build script fixes
  - only send 'sound-stop' if audio is enabled
  - `rencode` draw compatibility fix
  - avoid errors when windows don't have a title
  - provide a more useful screen name to the server
  - truncate large clipboard buffers in debug output
  - log the actual packet data with network errors
  - decode worker always supports rgb
  - fix brotli decompression
  - minor codestyle tweaks
  - clarify installation instructions


author: Antoine Martin <antoine@xpra.org> 5.2-0-1
changelog:
  - offscreen decode worker issues: disable scroll encoding and screenshots, fix decode parsing errors
  - workarounds for older versions of Safari
  - correctly parse audio metadata
  - stop collecting vertical refresh data once we have enough
  - don't close windows when re-connecting
  - connect form can populate username
  - add missing alt attributes
  - honour vertical scroll reverse option


author: Antoine Martin <antoine@xpra.org> 5.3-0-1
changelog:
  - some windows can't be restored
  - fix relative path to eye-icon
  - handle missing values more gracefully
  - Safari can't render using offscreen
  - allow spaces in passwords


author: Antoine Martin <antoine@xpra.org> 5.4-1
changelog:
  - update jquery and jquery-ui libraries
  - don't show the clock menu entry until we have the time
  - compatibility with newer servers for ping capability


