Changes in 0.12.8:
==================
* Fixes for CVE-2016-0749 and CVE-2016-2150

Changes in 0.12.7:
==================
* spice-server will now send TCP keepalive probes on the TCP connections it
  uses. This can prevent unwanted idle disconnections if proxies are used
  between the client and the host.
* Fix important memory usage when the webdav channel is used
* Do not disconnect when the client requests an unsupported compression type
* Fix a few race conditions
* Fix display glitch when using XSpice
* Improve help string for 'replay -s'
* Fix crashes in corner cases (buggy spice-html5 + win10, vnc + SPICE port
  configured, USB webcam redirection over a slow link)
* Fix various compilation warning when building on 32 bit machines
* Some fixes for big-endian machines, more work is likely to be needed
* Do not build static libraries by default, this can be reenabled with
  --enable-static
* Fix small leak in MJPEG code

Major changes in 0.12.6:
========================
* Removed spicec client code, it has been superseded by remote-viewer and other
  spice-gtk based clients
* Unix socket support
* LZ4 support
* Let clients specify their preferred image compression format
* Allow to record and replay a spice-server session
* Fixes for CVE-2015-3247 CVE-2015-5260 and CVE-2015-5261
* spice-protocol submodule has been removed,, spice-protocol must now be
  installed when building spice-server
* Remove write polling in chardevs to reduce wakeups
* Various bugs, crashes fixes, code cleanups, ...

Major changes in 0.12.5:
========================
* Added Opus support. Celt support will be obsoleted in a future release.
* Addition of webdav channel
* Force use of TLS 1.0 or newer for TLS connections
* Reference manual
* Some optimizations improving CPU use
* Various bug fixes for race conditions, memory corruption, ... which could
  be triggered on client disconnections, migration, ... and cause spice-server
  to misbehave.
* Portability fixes
* Code cleanups

Major changes in 0.12.4:
========================
* log actual address spice-server binds to
* main_channel: fix double release of migration target data (rhbz#859027)
* red_channel: replace an assert upon threads mismatch with a warning (rhbz#823472)
* support for filtering out agent file-xfer msgs (rhbz#961848)
** new library export spice_server_set_agent_file_xfer
* mjpeg encoder statistics (mjpeg_encoder_get_stats)
* improve stream stats readability and ease of parsing
* fix for stuck display_channel over WAN (jpeg_enabled=true) (rhbz#977998)
* Use RING_FOREACH_SAFE and other SAFE macros (rhbz#887775)
* Some server/tests fixes.

Major changes in 0.12.3:
========================
* monitor client bandwidth and latency.
* dynamically adjust video stream quality based on client bandwidth & latency.
** new SPICE_MSGC_DISPLAY_STREAM_REPORT
** can also set SPICE_BIT_RATE environment variable to override.
* support arbitrary latency of audio stream wrt video stream:
** new SPICE_MSG_PLAYBACK_LATENCY
* notify agent on client disconnection
** new VD_AGENT_CLIENT_DISCONNECTED message
* better support for switching from qxl to vga mode
** new library export spice_qxl_driver_unload
* multiple monitor support in single channel fixes.
* stop streams before migration.
* don't send empty volume messages.
* Bugs fixed: rhbz#891326, rhbz#958276, rhbz#956345
* fixes to inputs, chardev, build fixes.

Major changes in 0.12.2:
========================
* Stable Release
* Skipped 0.12.1, it existed in git but was never released
* spice-server now requires glib2 (like qemu does)
* More robust ssl error and certificate handling
* Added support for websockets
* Tons of seamless migration bugfixes
* Also some none seamless migration bugfixes

Major changes in 0.12.0:
========================
* Stable Release
* support setting client monitor configuration via device
 QXLInterface::client_monitors_config
* support notifying guest of client capabilities
 QXLInterface::set_client_capabilities
* new capability for A8 Surface support
* Enable build on armv6+
* Option to quit server after first client disconnects
 spice_server_set_exit_on_disconnect

Major changes in 0.11.3:
========================
* !Development Release!
* This entry contains all 0.11.0 .. 0.11.3 changes.
* Support seamless migration: no loss of in transit messages. Still not
  supported for agent, smartcard and usb.
* Support a new rendering message, Composite, for much improved linux guest
  performance.
* Support arbitrary resolution & multiple monitors on a single display channel.
* Improved keyboard handling under network latency with new
  SPICE_MSGC_INPUTS_KEY_SCANCODE message.
* New libspice-server.so symbols:
 spice_server_set_seamless_migration
 spice_server_vm_stop
 spice_server_vm_start
 spice_qxl_monitors_config_async
* New capabilities:
 SPICE_DISPLAY_CAP_COMPOSITE
 SPICE_DISPLAY_CAP_MONITORS_CONFIG
 SPICE_INPUTS_CAP_KEY_SCANCODE
 SPICE_MAIN_CAP_AGENT_CONNECTED_TOKENS
 SPICE_MAIN_CAP_SEAMLESS_MIGRATE
* Misc:
 * char_device.c: Introducing shared flow control code for char devices
 * Enable build without client, cegui and slirp.

Major changes in 0.11.0:
========================
* !Development Release!
* 8817549..d905a1f
* now using git submodules: spice-common and spice-protocol.
* New spice protocol messages: (changes in spice-protocol, here for reference)
 * SPICE_MSG_MAIN_NAME, SPICE_MSG_MAIN_UUID
 * SPICE_MSG_DISPLAY_STREAM_DATA_SIZED
* New corresponding caps: (changes in spice-protocol, here for reference)
 * SPICE_MAIN_CAP_NAME_AND_UUID
 * SPICE_DISPLAY_CAP_SIZED_STREAM.
* Send name & uuid to capable clients
* add support for frames of different sizes RHBZ #813826
* server:
 * support a pre-opened file descriptor
 * Solaris support. Now using poll instead of epoll.
 * Support IPV6 addresses in channel events RHBZ #788444
 * other fixed RHBZ#: 787669, 787678, 819484
* spicec
 * alsa: use "default" instead of "hw:0,0"
 * volume keys support RHBZ #552539
 * other fixed RHBZ#: 78655, 804561, 641828
* solaris, mingw & windows, 32 bit fixes.
* enable server only build.
* GNULIB manywarnings.m4 & warnings.m4 module added.
* Many more bug fixes & code cleanups.
* spice-protocol no longer external.
* new server functions:
 + spice_server_set_name
 + spice_server_set_uuid
 + spice_server_set_listen_socket_fd
 + spice_server_is_server_mouse

Major changes in 0.10.1:
========================
* Mini header support
* Add server API for injecting a client connection socket
* Add Xinerama support to spicec
* Many bugfixes / code cleanups
* Requires spice-protocol >= 0.10.1

Major changes in 0.10.0:
========================
* 32 bit (little endian) server builds.
* ABI compatible with 0.8.2.

Major changes in 0.9.2:
=======================
* !Development Release!
* server: semi-seamless migration support (RHBZ 738266)
* client: semi-seamless migration support (RHBZ 725009, 738270)
* Various bugfixes / cleanups
* require spice-protocol >= 0.9.1

Major changes in 0.9.1:
=======================
* !Development Release!
* Multi-client support, disabled by default (experimental!) set the
  environment variable SPICE_DEBUG_ALLOW_MC before starting qemu to enable
* Add support for adding generic spicevmc chardev passthrough channels
* Add USB redirection channel (using generic spicevmc chardev passthrough)
* Various bugfixes / cleanups

Major changes in 0.9.0:
=======================
* !Development Release!
* volume synchronization between client and guest (client->guest only)
* turbo-jpeg used to avoid expensive color conversion in mjpeg encoder.
* Cleanups

Major changes in 0.8.2:
=======================
* server: sasl support (fdo bz 34795)
* server: support guest async io
* server: support guest suspend and hibernate
* server: add symbol versioning to libspice-server.so
* server: prevent running an old spice-server with a newer qemu
* server Bug fixes (RHBZ): 714801, 713474, 674532, 653545
* client Bug fixes (RHBZ): 712938, 710461, 673973, 667689
* require spice-protocol >= 0.8.1

Major changes in 0.8.1:
=======================
* client: Fix handling of --smartcard-db option
* client: Add --version option
* spicec-x11: Work around a bug in xsel
* spicec-x11: Don't crash on apps sending bad atoms as TARGETS
* server: Make copy paste support configurable
* server: Various fixes to agent <-> client data handling

Major changes in 0.8.0:
=======================
* client: exit nicely for --controller with no SPICE_XPI_SOCKET (rhbz#644292)
* client-x11: Use _exit rather then exit on X errors (rhbz#680763)
* client-x11: Fix keyb modifiers not syncing from guest to client (rhbz#679467)
* server: fix segfault on migration

Major changes in 0.7.3:
=======================
* Suport building with (and requires) libcacard-0.1.2
* Fixes for building with gcc-4.6
* Server: Drop unnecessary X11 and alsa requires from spice-server.pc
* Client: fix minor for old migration support
* Client: Remove spice-client watermark (rhbz#662450)

Major changes in 0.7.2:
=======================
* cmd-line-parser: fix wrong reporting of bad argument in --bla=val case
* Server: do not depend on libcacard and CEGUI (when enabled for the client)
* Server: send 1 instead of 4 as topdown flag "true" value
* Client: accept 4 as top down flag value for compatibility with older servers
* Client: stop blinking keyboard when out of focus
* Client: log subject-host mismatch, and raise ssl warnings to errors

Major changes in 0.7.1:
=======================
* Brown paper bag release
* Update SPICE_SERVER_VERSION
* Include server/tests/test_util.h in the make dist generated tarbals, so
  that they actually compile

Major changes in 0.7.0:
=======================
* Many small bugfixes to the spice client
* Support for smartcards (CAC)

Major changes in 0.6.3:
=======================
Major changes in this release:
* Foreign menu and controller support for the client for XPI / ActiveX
  browser plugin usage (same API as the 0.4 client)
* Copy and paste support in the client
* Image copy and paste support in the X client
* Fix fullscreen mode of the X client under compiz and KDE
* Various portability and bug fixes

Major changes in 0.6.2:
=======================
0.6.2 was skipped because a small but nasty bug was found while preparing
the release (and it was already tagged as 0.6.2 in git).

Major changes in 0.6.1:
=======================
Major changes in this release:
* New libspice API to handle backwards compatibility
* Fix X crash in X client
* Fix memory leaks and crashes
* Portability fixes

Major changes in 0.6.0:
=======================
Major changes in this releas:
* Various bugfixes
* Make build work on arm7
* Fix build for python 2.5
* Don't allow video streams on non-primary surface
* Fix shared memory leaks in client
* Add some new libspice-server APIs for configuration options
* Convert SpiceVDIPort API to generic SpiceCharDevice API
* Add capabilities negotiation to agent

Major changes in 0.5.3:
=======================

Major changes in this release:
* Various changes in the network protocol to make it more efficient.
* New commandline arguments to enable/disable jpeg and zlib-over-glz.
* Initial work on clipboard sharing added
* Fix color channel order for mjpegs when connecting to older spice
   server.

Major changes in 0.5.2:
=======================

This is the first release of the unstable 0.5.x series leading up to 0.6.
With this release the API of spice-server is considered stable, but
the network protocol and QXL PCI ABI are still unstable.

The major changes compared to the 0.4 series are:

* New, more efficient network protocol
* Support for offscreen surfaces in guest driver
* New spice-server API
* A marshalling/demarshalling system that isolates the network
  protocol parsing from the internal types
* A PCI parsing and validation layer making it easier to
  get backwards compatibility, cleaning up the internals ans
  makes security review easier.
* WAN support, including lossy compression using jpeg and
  zlib compression.
* Easier to build. No more dependencies on forked versions
  of pixman and cairo. Separate module spice-protocol containing
  headers used when building drivers and qemu.
