v0.31
=====

- NOTE: this is the last release to support gtk+ 2.0
- add local GL scanout support for virtio-gpu/virgl guests
- new file-transfer API, to be able to monitor transfers etc
- new spice_display_change_preferred_compression() API
- better authentication error reports
- usbredir: drop isoc packets on low bandwidth (rhbz#1264156)
- usbredir: add counter of free channels (rhbz#1298772)
- add a toplevel include header spice-client-gtk.h
- grab keyboard based on session focus (rhbz#1275231)
- don't print error message on successful file transfer (rhbz#1265562)
- allow simultaneous support for Pulse and GStreamer audio
- remove GSlice usage
- some BE endianness fixes
- misc leak and use after-free fixes
- documentation fixes

v0.30
=====
- spice-protocol is no longer bundled with spice-gtk. Requires
  spice-protocol >= 0.12.10
- Handle single headed monitors that have a non-zero x, y config
- various small improvements to 'spicy' test application
- Fix build with automake < 1.13
- various bug fixes and improvements
- New API:
  - spice_main_update_display_enabled()
  - Add SpiceSession::preferred-compression property and
    --spice-preferred-compression commandline switch (requires a
    yet-to-be-released version of spice server)
- ability to set the SpiceDisplay::keypress-delay property via a new
  SPICE_KEYPRESS_DELAY environment variable

v0.29
=====

- sync guest audio volume with client volume
- use stream volume for PulseAudio source
- on Windows, fail early during initialization if the usbclerk service
  can't be reached
- fix audio and usb managers to work with client provided fds
- many crasher and bug fixes

v0.28
=====

- webdav improvements:
 - no longer spawn a server thread
 - no longer use local TCP sockets & port
 - provides read-only mode with SpiceSession:share-dir-ro
 - requires libphodav-2.0 glib-2.0 >= 2.43.90 libsoup-2.4 >= 2.49.91
- drop gstreamer 0.10 in favour of 1.0
- add spice+unix://path connection support
- accept URI with empty parameters value,
  such as spice://localhost?port=5900&tls-port=
- fixed lz4 support
- silence some harmless warnings
- misc API documentation improvements
- switch-host migration fixes
- learn to build --without-gtk
- bugs and regressions fixes

v0.27
=====

- add GStreamer 1.0 audio support
- add LZ4 compression algorithm support
- learn to release the keyboard grab on release keys pressed (ctrl+alt
  by default), to let alt+f4/alt-tab and others for client side
- session and channels life-cycle changes: a channel will no longer
  hold a reference after session disconnection
- migration fixes, fail early on client provided fds (this is left to
  solve in the future)
- fix support for Gtk+ 3.0 on Windows
- clipboard size fixes
- server-side pointer drawing on grab
- new APIs:
  spice_usb_device_get_libusb_device()
  spice_session_is_for_migration()
- build-sys improvements

v0.26
=====

- allow transferring multiple files at once with dnd
- avoid guest-side fd leak when transferring empty files
  with dnd
- add support for passing a username with SASL authentication
- hide guest cursor when ungrabbing mouse in server mode
- make sure client cursor is in the same position as the guest cursor when
  ungrabbing mouse in server mode
- add man page for command line options of application using spice-gtk
- strip '\0' from text clipboard data
- fix synchronization of keyboard modifiers
- coroutine improvements
- use http by default when SPICE_PROXY uri has no scheme

v0.25
=====

- Fix SPICE_GTK_MICRO_VERSION define for default value
- Make "phodav", the webdav server, an external dependency rather than
  a submodule

v0.24
=====

- support folder sharing, via WebDAV channel
- add HTTPS proxy support (requires glib 2.28), and Basic auth
- add SPICE_GTK_CHECK_VERSION macro
- advertise SASL capability early (to help fips-enabled servers)
- fix crash when releasing primary surface
- fix a few memory leaks with SASL
- fix spice_display_get_pixbuf() with offset area
- build-sys improvements

- note: until now, providing an invalid plain-port didn't error, and
  was falling back silently on tls-port. With this release, an error
  will be reported if the port can't be opened.

v0.23
=====

- support Opus codec for audio channels
- ssl: use tls 1.0 or better
- support gdbus instead of dbus-glib when available
- misc build-sys, compile and runtime fixes

v0.22
=====

- improve inverted cursor support
- use system-wide trust certificate store
- make sasl support work with other method than MD5
- fix some clipboard crasher, limit clipboard size
- fix various regressions:
  usbredir, alt-tab on win32, palette crash, agent notification, old
  protocol support, sasl ending crash, gthread coroutine crash, close
  sockets on migration, pulse backend crash
- fix a few memory leaks
- build-sys improvements

v0.21
=====

- improve inverted cursor support
- win32 usb redirected device uninstall fix
- add support for libusb hotplug API
- smartcard initialization fixes
- c&p converts line-endings if necessary
- rendering and overall performance improvements
- build and bindings fixes

v0.20
=====

- adaptive video streaming support (sync with PulseAudio backend only)
- add spice_usb_device_manager_get_devices_with_filter()
- add --spice-secure-channels to explicitely specify secure channels
- multi-monitor, win32, USB redir fixes
- add basic gtk+ wayland and broadway backend support
- removed the GnomeRR code

v0.19
=====

This is a bugfix only release, except the snappy name change
- snappy has been renamed to spicy-screenshot
- Several file-xfer fixes and improvements
- Many win32 and USB redirection related fixes
- Compile and work again with RHEL6 and older glib releases
- misc fixes and improvements

v0.18
=====

- Build fix with Gtk+ unstable.
- MinGW build fixes with old headers
- Fix USB coldplug race
- Fixes rhbz#908057

v0.17
=====

- Update spice-common with fedora 875348, 826036 fixes
- Multi-monitor fixes (avoid monitor order shuffling, fix mouse offset
  if monitor 0 is not at +0+0 and let agent do monitor offset)
- Add support for VD_AGENT_CAP_SPARSE_MONITORS_CONFIG
- Add controller & session "proxy" properties
- Add drag and drop file copy support to send file to guest, you will
  need capable agent to use that feature. Adds spice_main_file_copy_async()
- Introspection fixes
- Build fixes

v0.16
=====

- Fix crash with SSL connection (#890464)
- Send monitor config to the agent on spice_main_set_display_enabled() (#881072)
- Fix channel leak and wrong condition in spice_channel_flush()
- Build fixes

v0.15
=====

- Add HTTP Proxy support (only with glib >= 2.26)
- Add "port" channel support, to allow arbitrary communication on top
  of spice connection
- usb-redir: fix migration support
- win32: various keyboard & mouse fixes
- Add info message when USB dialog is empty
- Fix initial black screen on some 16bits guest
- Various bug fixes and improvements

v0.14
=====

- Support for seamless migration
- Improve scaling handling, add downscale-only property to give more
  control over scaling
- Better handle key press/release events in high-latency situations,
  this should avoid unwanted key repetitions
- Improve unescaping in URI parsing
- Fix symbol versioning which was broken in 0.13
- Fix for CVE-2012-4425
- Various bug fixes and improvements

v0.13
=====

- ABI break! SONAME has been bumped, all programs and libraries
  linking to spice-gtk need to be recompiled against this version
- Add support for USB device redirection on Windows
- Add monitors config support (multiple monitors in same display)
- Inhibit automount on GNOME desktop, to ease USB redirection
- Better video support (reduce some glitches)
- Misc migration fixes
- Various bug fixes and improvements

v0.12
=====

- Fix memory leak when guest is resized
- Fix color-depth setting
- Hide/Show cursor correctly when needed
- Fix blue-tinted video with old Spice servers
- Correct scroll-event not received with recent Gtk+
- Fix various migrations issues
- Allow to disable CELT encoding at runtime with SPICE_DISABLE_CELT
- Various crash fixes (on pubkey, recording, clipboard)
- Build changes (common submodule) and fixes

v0.11
=====

- Fix semi-seamless migration regression
- Add Spice session UUID and name support
- Add foreign menu support to controller library
- Add a simple controller testing tool spice-controller-dump
- Build fixes

v0.10
=====

- USB redir is now aware of host/guest side filtering
- you can query spice_usb_device_manager_can_redirect_device()
- fix the usbredir channel lifetime to be equal to session lifetime
- set keepalive on channel socket
- fix hangs on windows when using ssl chanels
- add a SpiceDisplay::zoom-level to maintain a scaling ratio
- add controller ENABLE_SMARTCARD option
- remove a few warnings, ui improvements, build fixes

v0.9
====

- Add command line options for setting the cache size and the glz window size
- Add a USB device selection widget to libspice-client-gtk
- Various bug fixes and code improvements

v0.8
====

- add USB redirection support, see Hans comments in the log and that
  post for details: http://hansdegoede.livejournal.com/11084.html
- introduce SpiceGtkSession to deal with session-wide Gtk events, such
  as clipboard, instead of doing it per display
- many cursor and keyboard handling improvements
- handle the new "semi-seamless" migration
- support new Spice mini-headers
- better coroutines: fibers on windows & jmp on linux
- add Vala vapi bindings generation
- many bug fixes and code improvements

v0.7
====

- smartcard support
- better video playback performance (jpeg-turbo & audio improvements)
- support for audio volume (needs qemu support)
- controller support for Windows (NamedPipe)
- make perl-Text-CSV optional for tarball builds
- new spice_get_option_group()/spice_set_session_option()
- keyboard improvements, grab-sequence can be configured, various windows fixes
- new tool spicy-stats, to collect informations during a session
- bugfixes: memleak fixes, SASL fixes, crash with virt-manager
- various build fixes, should build on MacOS as well now

v0.6
====

- multi-head is working now!
- change client resolution if guest can't
- support sharing large clipboard, and images
- multiple clibpoard selection
- support SASL authentication
- add experimental/unstable controller API
- and a bunch of various smaller fixes

v0.5
====

- Compatibility with gtk2 and gtk3
- Migrations: seamless and switch host methods
- SSL verification: public key, subject and host checks added
- spice:// url parsing learned "password" argument
- spicy: recent connexions UI added
- various minor fixes

v0.4
====

- sync video with pulseaudio backend
- build with mingw, and run on Windows
- various minor fixes

v0.3
====

- fix Windows QXL driver support
- fully asynchronous operations using coroutines
  (thanks go to gtk-vnc devs)
- cairo display (old XShm display can be enabled with --with-x11)
- scaling support for cairo display
- experimental audio support using GStreamer
- API reference gtk-doc
- more cursor type support
- various fixes and cleanup

v0.2
====

- gtk: disconnect record stream when record_stop()
- README: add a few missing dependencies
- build: use git-version-gen
- build: re-enable -Wflags, and fix a few warnings
- build: fix make -j
- gtk: add zlib decoder
- gtk: add jpeg decoder
- gtk: progressive agent message recomposition
- gtk: add dispay config
- gtk: add clipboard sharing for text
- TODO: update
- gtk: put some g_message() under SPICE_DEBUG
- gtk: add channel.set_capability()
- gtk: add {session,channel}_open_fd()
- gtk: add CELT playback
- gtk: add CELT recording
- gtk: save/restore spicy configuration
- gtk: don't uncork new streams
- gtk: delay PA stream creation when context is ready
- gtk: visibility option for statusbar/toolbar in spicy

v0.1.0
======

- desktop display, using GLZ compression
- audio playback/recording with PulseAudio
- video in mjpeg
- python and gobject-introspection modules
- spicy: a simple Gtk client
- snappy: a command line screenshot tool
