# changelog

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> 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.1-10
changelog:
  - unable to focus window
  - chunked file transfer checksum errors
  - clipboard transfer failures with large data
  - `--max-size` and `--min-size` parsing errors
  - SSH agent forwarding issues: dangling symlinks, etc
  - missing subcommands when starting via proxy
  - option to ignore OpenGL warnings not being saved on Posix systems and save it just once
  - `xpra start --encoding=help` error
  - excruciatingly slow paint without transparency
  - avoid video pipeline warnings due to race conditions or clients that don't support window transparency
  - build with clang
  - sdist snapshots missed an evdi file
  - don't clean files that no longer exist
  - RHEL 9 builds
  - RPM dependency not needed
  - cosmetic:
      - logging error handler errors
      - file transfer errors shown twice
      - honour transparency override earlier
      - unused duplicate header
      - GLib unit test error
      - version test error
      - shadow debug logging error


author: Antoine Martin <antoine@xpra.org> 4.4.2-10
changelog:
  - unit test errors with older versions of python pillow
  - worker thread cleaner termination
  - guard against missing stdin / stderr when starting servers
  - pam authentication module not linked properly
  - add another safeguard for x264 encoder crashes
  - packet errors with legacy encoders


author: Antoine Martin <antoine@xpra.org> 4.4.3-10
changelog:
  - platforms, packaging and build:
     build failures on 32-bit systems
     workaround more broken python uinput packages
     build path detection for newer versions of Visual Studio
     unusual x264 library version strings disabled the encoder
     MS Windows builds switch to CUDA 11.8
     bundle nvidia codecs DLLs
  - encodings:
     extra validation for x264 image height
     transparency pre-multiplied twice with webp, pillow, spng and jpeg without OpenGL which also paints faster
     fix avif encoder loading
     incorrect image metadata with jpega decoder
     fallback to plain jpeg when nvjpeg fails to allocate a CUDA context
     enable nvjpeg decoder with drivers 522.6 or later
  - UI and cosmetic issues:
     splash screen hanging after connection failures
     avoid pycuda import warnings on MS Windows
     avoid named-pipe warnings with MS Windows client
     raw cursors TypeError with lz4 compression on some platforms
     more helpful warning for some cursor issues
     remove debug logging
     opengl toolbox test errors


author: Antoine Martin <antoine@xpra.org> 4.4.4-10
changelog:
  - major fixes:
     focus change failures, errors with OR windows
     dpi validation failures
     honour dpi when setting initial resolution
     match the requested desktop size exactly
     XI2 errors
     try harder to find a valid menu prefix
     OpenGL failures due to misplaced icons
  - network:
     generic `version` requests
     remote start error on encodings option
     remote start error when display is not specified
     silence OpenSSL3 + pycryptography legacy warning
     distinguish network vs session connected state
     parsing of ssh key files environment variable
  - misc, compatibility:
     avoid errors when there is no keyboard config
     fallback keycode mapping errors
     play new client sample on MS Windows shadow servers 
     missing refresh timer with some shadow servers
     content-type environment variable parsing
     `HTTP` proxy type
     unused field prevented serialization
     support environment configuration for ldap authentication module
  - platforms, packaging and build:
     support the latest version of gtk-mac-bundler
     Cython 3.0.0b1 compatibility and warnings for evdi build, C++11, etc
     pyobjc crash workarounds
     clang compatibility
     workaround for OpenGL support with GTK3 on MacOS
     library updates for binary builds (MacOS and MS Windows): OpenSSL 3, ffmpeg
     clipboard errors on MacOS past a certain size
     build errors with latest Python
     build warnings with C++ modules on MS Windows
     pycuda errors locating the CUDA path
     use symlinks for CUDA path on MS Windows
     builds without CUDA
     lintian path updates
     libproc build errors on Debian
     remove reference to outdated path
     version update script lost track of cups backend
     test used incorrect command line arguments
  - encodings:
     restore ability to switch encoding at runtime
     load all codecs before showing the list
     enable faster codecs in some corner cases
     only enable an encoding if we have an encoder for it
     add encoding help entry for `jpega`
     differentiate `nvjpeg` from plain `jpeg` encoder
  - cosmetic:
     log buggy dpi values
     clarify tray vs system-tray
     log the packet header failure message
     logging formatting error
     ignore empty content-type lines


author: Antoine Martin <antoine@xpra.org> 4.4.5-10
changelog:
  - major fixes:
     use after free crash in GTK
     ensure X11 errors don't propagate to GTK
     windows losing focus
     fix legacy URL format parsing
     brolti errors on some platforms
     keyboard shortcuts with Wayland clients and NumLock
     client sockets overwriting server sockets
     network queue flushing
     correct check for disabled monitors
     stop as soon as we find a valid mDNS backend
     only allow logging tweaks via env vars for non-root users
  - packaging:
     dummy driver RPM version 0.4.1
     modules not excluded due to typo
     avoid permissions issues with mv
     remove legacy MacOS bundler workaround
     support MacOS arm64 builds
     fail early with a more useful message on MacOS
     setuptools packaging workarounds on MacOS
     don't ship .cpp source files in MacOS app
     compilation errors with gcc version 7 and older
     RHEL 8.x needs pycuda 2022.1 or older
     RHEL 9.x can install pandoc from EPEL
     silence python cryptography OpenSSL warning on MacOS
     workaround even more exotic library version strings
     try harder to find a working appindicator DEB package
     better compatibility with newer versions of Cython
     we never want a python2 shebang
     evdi file missing from MANIFEST
     missing explicit dependency on `pkgconfig` in RPM spec file
     skip xsettings dpi when the x11 bindings are missing
     ignore setuptools generated cruft
     silence rencode RPM patch warnings
     missing GStreamer elements for playing 'bell' on MS Windows
  - encodings:
     always use lossless encoding for `text`
     continue to monitor window metadata updates
     honour png palette encodings
     option parsing
     help command error
     handle `RGBA` window icon data
     `ffmpeg` encoder error values
     validate NvFBC Sys capture before enabling it on MS Windows
  - minor:
     X11 Atom name memory leak
     handle malformed display names more gracefully
     if we don't have keycodes to map, don't try to translate them
     skip negative keyboard codes as per MS Windows specifications
     fix side buttons on MS Windows
     X11 clipboard debug logging parsing of window names
     remove unused, potentially problematic statement
     make it possible to disable `SHA1`
     avoid errors if `MD5` has already been removed
     don't try to show an exception that does not exist
     window debug logging error
     correctly parse OpenGL diagnostics
     window forwarding require encoding module
     mmap debug flood
     continue with session info despite cursor errors
     handle client server uuid errors more gracefully
     silence shared socket permission warning
     handle missing server attributes without erroring out
     correct default method signature
     missing latency data on websocket connections
     service update errors with newer versions of python zeroconf
     parse IPv6 when looking up network devices
     run servers with missing stderr
     correct server initialization order for cleaner shutdowns on errors
     skip systemd-run tests on unsupported platforms
     missing test dependency on OracleLinux 8.x
     MacOS test tool errors
     skip useless 'unknown' message, typo
     more useful codec loader validation message


author: Antoine Martin <antoine@xpra.org> 4.2-878-1
changelog:
  - select session attributes from list of options exposed by the server
  - detect vertical refresh rate
  - hide on-screen keyboard by default on non-mobile devices
  - tell server to prefer encodings with native decoders
  - updated documentation
  - build and packaging fixes, add easy 'deb' and 'rpm' build targets
  - support older versions of brotli
  - fix missing clipboard events
  - fix window focus tracking issues
  - fix AES encryption (broken by rencoder)


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> 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> 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> 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-0-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-0-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


