    GTK VNC News
    ============

Jul 14, 2022: Release 1.3.1
===========================

 o Fix invalid use of subprojects with meson
 o Support ZRLE encoding for zero size alpha cursors
 o Add 'check' arg to meson run_command()

Nov 16, 2021: Release 1.3.0
===========================

 o Add API to request screen rotation
 o Automatically pick gthread coroutine if ucontext is not available
 o Fix meson logic bug when disabling vala
 o Honour choice of python when generating keymaps
 o Fix error reporting and memory leaks encrypting auth data
 o Fix missing includes for GDK quartz and broadway backends
 o Switch to GNUTLS for VNC auth challenge to fix empty password handling
 o Fix handling of auth subtypes in gvnccapture program

Apr 14, 2021: Release 1.2.0
===========================

 o Add API to request fixed zoom level
 o Add API to request fixed aspect ratio when scaling
 o Add APIs for client initiated desktop resize
 o Implement "Extended Desktop Resize" VNC extension
 o Implement "Desktop Rename" VNC extension
 o Implement "Last Rect" VNC extension
 o Implement "XVP" (power control) VNC extension
 o Implement VeNCrypt "plain" auth mode
 o Implement alpha cursor VNC extension
 o Use GTK preferred width/height helpers for resizing
 o Fix misc docs/introspection annotation bugs
 o Honour meson warninglevel setting for compiler flags
 o Fix JPEG decoding in low colour depth modes
 o Fix minor memory leaks
 o Add header file macros for checking API version
 o Change some meson options from "bool" to "feature"
 o Validate GLib/GTK min/max symbol versions at build time
 o Avoid recreating framebuffer if size/format is unchanged
 o Emit resize signal after WMVi update
 o Various fixes & enhancements to python demo program
 o Ensure Gir files build against local libs
 o Enable stack protector on more platforms
 o Don't force disable introspection on windows
 o Relax min x11 deps for older platforms
 o Avoid mutex deadlock on FreeBSD in test suite
 o Stop using deprecated GLib thread APIs
 o Stop using deprecated GLib main loop APIs
 o Stop using deprecated GObject class private data APIs
 o Add fixes for building on macOS
 o Fix deps for building example program
 o Update translations


Aug 7, 2019: Release 1.0.0
==========================

 o Autotools build system replaced with meson
 o Support for GTK-2 is dropped. GTK-3 is mandatory
 o Support for libview is dropped in example program
 o Improvements to example demos
 o Use MAP_ANON if MAP_ANONYMOUS doesn't exist to help
   certai macOS versions
 o Fix crash when connection attempt fails early
 o Initialize gcrypt early in auth process
 o Emit vnc-auth-failure signal when SASL auth fals
 o Emit vnc-error signal when authentication fails
 o Fix double free when failing to read certificates
 o Run unit tests in RPM build
 o Modernize RPM spec
 o Fix race condition in unit tests
 o Fix install of missing header for cairo framebuffer
 o Fix typo in gir package name
 o Add missing VncPixelFormat file to git data


Aug 17, 2018: Release 0.9.0
===========================

Note that the next release (1.0.0) will drop support for GTK-2

 o Requires gnutls >= 3.1.18
 o Requires libgcrypt >= 1.5.0
 o Requires glib2 >= 2.42.0
 o Use libgcrypt for DES routines
 o Add missing cipher close calls in ARD auth
 o Check for errors after reading mslogon params
 o Support newer UltraVNC mslogon auth type code
 o Avoid divide by zero in mslogin auth from bogus params
 o Re-allow python2 accidentally blocked when removing
   python binding

Aug  1, 2018: Release 0.8.0
===========================

 o Deleted the python2 binding in favour of GObject introspection
 o Pull in latest keycodemapdb content
 o Disable/fix -Wcast-function-type warnings

Mar 23, 2018: Release 0.7.2
===========================

 o Deprecated the manual python2 binding in favour of GObject
   introspection. It will be deleted in the next release.
 o Emit led state notification on connect
 o Fix incorrect copyright notices
 o Simplify shifted-tab key handling
 o Don't short circuit TLS credential request
 o Improve check for keymap under XWayland
 o Update doap description of project
 o Modernize RPM specfile

May 19, 2017: Release 0.7.1
===========================

 o Explicitly link to GIO instead of relying
   on implicit linkage
 o Switch to use new keycodemap database module
 o Fix size of reserved data in class struct
 o Fix inverted framebuffer args in test case
 o Avoid sign extension in integer arithmetic
 o Avoid crash when opening a GSocketAddress
 o Fix crash if server connection times out
 o Fix incompatibility with libvncserver

Feb  9, 2017: Release 0.7.0
===========================

 o CVE-2017-5884 - fix bounds checking for RRE, hextile and
   copyrect encodings
 o CVE-2017-5885 - fix color map index bounds checking
 o Add API to allow smooth scaling to be disabled
 o Workaround to help SPICE servers quickly drop VNC clients
   which mistakenly connect, by sending "RFB " signature bytes
   early
 o Don't accept color map entries for true-color pixel formats
 o Add missing vala .deps files for gvnc & gvncpulse
 o Avoid crash if host/port is NULL
 o Add precondition checks to some public APIs
 o Fix link to home page in README file
 o Fix misc memory leaks
 o Clamp cursor hot-pixel to within cursor region

Aug 18, 2016: Release 0.6.0
===========================

Important changes:

 o Default to build with GTK-3, use --with-gtk=2.0 to override

New features:

 o Add --with-tls-priority configure flag to set default TLS
   priority string
 o Add a 'vnc-error' signal to report reason for disconnect
 o Add support for fallback to GNUTLS system trust DB

Bug fixes:

 o Fix crash on Windows with GTK3 checking realized state
 o Fix XKB detection of keyboard mapping with Xwayland
 o Switch back to XKB detection for Xwayland
 o Remove duplicate cert expiry check
 o Avoid misc compile warnings
 o Add missing API docs + GObject introspection annotations
 o Add missing GIO dep on gvnc library GObject introspection build
 o Remove unused code
 o Fix redraw on Win10
 o Drop support for gnutls < 2.2.0
 o Fix path to h2def script
 o Update compiler warning detection to fix clang build
 o Ignore cast align warnings to fix clang build
 o Fix endianess inversion when setting pixel format

Feb 10, 2015: Release 0.5.4
===========================

Bug fixes:

 o Fix auth when using PLAIN SASL method
 o Fix introspection build support on FreeBSD
 o Remove use of deprecated GTK_STOCK_* constants
 o Fix parallel build for introspection files
 o Add mising dep on Gtk introspection file
 o Release held keys when getting grab notify
 o Updated translations
 o Don't call into GDK if no GdkWindow is realized
 o Chain up parent realize_event vfunc
 o Fix colourmap mode by always sending pixel format message
 o Update GCC compiler warning flags used
 o Enable double buffering on Gtk3 to fix child widget clipping
 o Disable -Wbad-function-cast to avoid glib header warnings
 o Don't set thread callbacks on gcrypt >= 1.6 or gnutls >= 2.12
 o Do explicit check for gcrypt since gnutls might use nettle
 o Add support for Wayland & Xwayland keymaps
 o Add support for Gtk Broadway backend keymaps
 o Fix AltGr handling on Windows displays
 o Fix virtual keycode conversion on Win32
 o Fix USB/HID scsancodes for volume keys

Sep 18, 2013: Release 0.5.3
===========================

New features:

 o Support QEMU LED state extension

Bug fixes:

 o Time out connection attempt after 10 seconds
 o Abort if out of memory when mmap'ing coroutine stack
 o Stop leaking coroutine stack memory
 o Improve perfornmance of ZRLE encoding by avoiding memmove
 o Only trigger keyboard grab sequence upon key release to
   allow modifiers to go to the remote server
 o Avoid busy loop upon I/O error which follows blocking I/O,
   commonly seen when a server drops the connection
 o Fix handling of --no-undefined flag
 o Don't break implicit pointer grab from mouse clicks
 o Don't drop mouse events that are out of bounds, clamp their
   coordinates instead
 o Show how to block all accelerators in gvncviewer demo program

Feb 22, 2013: Release 0.5.2
===========================

Removed features:

 o Browser plugin is deleted, since it was unmaintained.
   Recommend that people use a pure HTML5 impl like noVNC
   to avoid security problems inherant in native plugins.

Bug fixes:

 o Misc fixes to RPM specfiles
 o Update translations
 o Fix big-endian support in cairo framebuffer
 o Avoid out of bounds accessing arrays
 o Fix win32 quote key mapping
 o Fix NULL dereference in logging code
 o Fix OOM check in python bindings
 o Avoid array overrun in colourmap mode
 o Fix buffer space check when sending data
 o Add introspection annotation for vnc_display_send_keys
 o Fix pulseaudio enablement in demo
 o Avoid crash with unsupported audio formats
 o Turn off deprecation warnings
 o Convert VncConnectionCredential to VncDisplayCredential
 o Add API to allow access to keysyms from introspected bindings


July 12, 2012: Release 0.5.1
============================

New features:

 o New API for connecting to a GSocketAddress * object
 o New API to allow specification of a hostname with
   a pre-opened file descriptor
 o Support for UNIX domain sockets in gvncviewer demo
 o More translations

Bug fixes:

 o Fix building with newer glibc-headers and -O0
 o Fix GIR building by linking against libgvnc
   from builddir
 o Fix deprecation warnings when building against
   glib >= 2.32
 o Switch to using mingw64 toolchain for Win32 builds
 o Fix introspection of key grab APIs
 o Ensure debugging works with GLib >= 2.32
 o Allow explicit control over pulseaudio building
 o Add check for Perl  Text::CSV when building from GIT
 o Fix POD syntax in gvnccapture man page
 o Reduce excessive stack usage in vncconnection.c

Dec 21, 2011: Release 0.5.0
===========================

New features:

 o QEMU audio extension support

Bug fixes:

 o Avoid deprecated GNUTLS functions
 o Allow access to VncConnection object inside VncDisplay
 o Don't override PKG_CONFIG_PATH when building GIR files
 o Death to all TABs
 o General code style/indentation cleanup
 o Fix memory leak in keymap code
 o Fix mapping of shift key in Windows


Nov 10, 2011: Release 0.4.4
===========================

New features:

 o Vala bindings

Bug fixes:

 o Missing OS-X keymapping for the letter 'A'
 o Update Turkish/Esperanto/Korean/Slovak translations
 o Mapping for Left Control / Alt keys
 o Fix leak of string list in grab sequence string
 o Fix introspection for vnc_display_get_pixbuf
 o Fix GTK3 build on Mingw32
 o Improved log messages for TLS auth subtypes


Feb 18, 2011: Release 0.4.3
===========================

New features:

 o None

Bug fixes:

 o Fix crash in pointer motion event handler
 o Fix crash in vnc_display_get_pixbuf
 o Fix crash in TLS cleanup code
 o Fix frambuffer boundary checks
 o Improve drawing performance with server side pixmap
 o Fix performance degradation due to leaked GSource
 o Fix setting of 'shared' connection flag
 o Make pointer warp boundary detection more robust
 o Adapt keymap code to build with GDK3 multiple displays
 o Remove use of gdk_drawable calls to fix GTK3

Code cleanup:

 o Remove need for Text::CSV perl module at build time

Nov  3, 2010: Release 0.4.2
===========================

New features:

 o OS-X VNC authentiction scheme
 o Add API to query library version

Bug fixes:

 o Disable extended key events if display keymap
   cannot be determined
 o Rewritten keymap code to work on non-Xorg
   servers and native OS-X/Win32 GTK backends.
 o Many more language translations
 o Strict bounds checking on all framebuffer updates
 o Fixed parameter for vnc-server-cut-text signal
 o Fixed build with latest GTK3 development snapshot

Code cleanup:

 o Switched over to GIO for socket connections
 o Removed all use of GNULIB now GIO handles all
   portability issues with sockets.
 o Mandate use of Cairo for all drawing, removing
   any use of GdkPixmap, GdkImage, GdkBitmap.

Jul 14, 2010: Release 0.4.1
===========================

Bug fixes:

 o Fix test suite execution
 o Ensure builds against GTK3 get a separate library soname,
   pkg-config file and include directory to allow parallel
   install with GTK2 builds.

Jul 11, 2010: Release 0.4.0
===========================

Bug fixes:

 o Fix protocol greeting so wireshark detects stream
 o Fix build with GSEAL
 o Try next DNS address after any connect failure
 o Plugin build with newer mozilla
 o Fix linkage to libgpg-error
 o Fix linker flags on solaris
 o Fix gcrypt threading callbacks
 o Fix multiple memory leaks
 o Remove use of PATH_MAX to fix Hurd

New features:

 o Refactored gvnc module to provide a full GObject
   for interacting with the RFB protcol.
 o Create a libgvnc.so for non-GTK related APIs for
   dealing with RFB protcol
 o Add gvnccapture command line tool for screenshot
   capture
 o Many updated translations


Oct 20, 2009: Release 0.3.10
============================

Bug fixes:

 o Fix check for SASL on Solaris
 o Improvements on autoconf stuff such as drop some warnings, use silent
   Makefile rules, etc.
 o Improvements on the example program
 o Request a full screen update when receives a desktop-resize encoding

New features:

 o Add internationalization (i18n) support
 o Add ability to set the depth color
 o Add ability to request a full screen update

Translations:

 o António Lima (pt)
 o Claude Paroz (fr)
 o Daniel Nylander (sv)
 o Fran Diéguez (gl)
 o Gabor Kelemen (hu)
 o Henrique P. Machado (pt_BR)
 o Inaki Larranaga (eu)
 o Jonh Wendell (pt_BR)
 o Jorge González (es)
 o Luca Ferretti (it)
 o Mario Blättermann (de)
 o Pavlos Tournaris (el)
 o Philip Withnall (en_GB)
 o Piotr Drąg (pl)

Aug 10, 2009: Release 0.3.9
===========================

Bug fixes:

 o Fix Shift+Tab keyval translation (again)
 o Remove use of deprecated GTK+ symbols
 o Fix inverted logic for release pointer grab
 o Fix enter/leave event handling in relative mouse mode
 o Don't send keys/clipboard data in readonly mode
 o Fix relative mouse motion mode edge tracing
 o Fix linking to libgcrypt for mingw32 platform

New features:

 o Add API to get command line GOptionEntry objects
 o Support SASL authentication extension
 o Support MS Logon authentication extension

Dec 7, 2008: Release 0.3.8
==========================

Bug fixes:

 o Fix threads based coroutine locking
 o Switch to alternate d3des code for clarity in
   licensing terms
 o Re-write keycode handling to improve correctness on
   non-US keyboard layouts
 o Fix keycode to scancode translation for evdev keyboard
   driver
 o Save dimensions when getting desktop resize events
 o Avoid bogus framebuffer updates from psuedo-encodings
 o Always allow key ungrab if keyboard grab is active

New features:

 o Use Cairo for scaling support instead of OpenGL
 o Ported to compile & run under Win32/MinGW

Sep 5, 2008: Release 0.3.7
==========================

Bug fixes:

 o Ungrab pointer if widget looses focus (Daniel Berrange)
 o Set a pixmap format if server does not default to true
   colour mode  (Jonh Wendell)
 o Misc fixes to prevent crash  (Jonh Wendell)
 o Register internal signal handlers against class instead
   of per object (Daniel berrange)

New features:

 o Add API to allow down-scaling to be enabled (Jonh Wendell)

May 5, 2008: Release 0.3.6
==========================

Bug fixes:

 o Fix gcc warnings (Atushi SAKAI)
 o Use regex for symbol visibility on Solaris (Halton Huo)
 o Fix crash when closing connection during update (Jonh Wendell)
 o Use glib memory functions

New features:

 o Provide interface to control shared flag (Jonh Wendell)
 o Support preferred authentication types (Jonh Wendell)

Apr 6, 2008: Release 0.3.5
==========================

Bug fixes:

 o Use g_malloc/g_strdup/g_free (Jonh Wendell)
 o Fix z-buffer depth when using scaling (Dan Berrange)
 o Fix makecontext() for 64-bit hosts (Dan Berrange)
 o Fix more endianness issues (Dan Berrange)
 o Fix various compile warnings (Atsushi SAKAI)
 o Be more flexible in protocol version negotation (Jonh Wendell, Jin Choi)
 o Work-arounds for ISO_Left_Tab (Hiroyuki Kaguchi)
 o Propagate ke press events (Anthony Liguori)

New features:

 o Use glib for debugging and always enable it (Jonh Wendell)
 o GObject properties (Jonh Wendell)
 o Accessor to determine if we're in absolute mode (Anthony Liguori)


Mar 5, 2008: Release 0.3.4
==========================

Bug fixes:

 o Fix cursor visibility when in relative pointer mode (Anthony Liguori)
 o Fix vnc_auth_credential signal marshalling (Anthony Liguori, Saori Fukuta)
 o Add missing break in key event handling (Marton Balint)
 o Various build cleanups (Atsushi SAKAI)
 o Fix key event tracking (Daniel Berrange)
 o Fix big endian color conversion (Hiroyuki Kaguchi)
 o More debug messages (Jonh Wendell)
 o Add interface to explicitly force pointer grab (Anthony Liguori)
 o Always emit signals from system coroutine (Anthony Liguori)
 o Revert to 0.3.3 set_pointer_grab behavior (Anthony Liguori)
 o spec file updates and configure support for Fedora 9 (Dan Berrange)

New features:

 o Focus widget on mouse click (Jonh Wendell)
 o WMVi support (Stefano Stabellini)
 o OpenGL based scaling (Anthony Liguori, Daniel Berrange)
 o VNC scancode extension (Anthony Liguori)

Feb 2, 2008: Release 0.3.3
==========================

Bug fixes:

 o Track keystates to reset keyboard state on focus out (Daniel Berrange)
 o Fix SEGV in vnc_display_close (Rich Jones)
 o Compiler fixes for suncc (Halton Huo)
 o More UltraVNC compatibility (Rich Jones)
 o Big endian fixes (Anthony Liguori)
 o Hide password characters in gvncviewer (Rich Jones)
 o More debug on protocol error (Jonh Wendell)
 o Fix SEGV on coroutine free (Anthony Liguori)
 o Fix ZRLE encoding (Atsushi SAKAI)

New features:

 o Support got Tight encoding (Anthony Liguori)
 o Mozilla browser plugin (Rich Jones)
 o Output configure summary (Jonh Wendell)

Dec 31, 2007: Release 0.3.2
===========================

Bug fixes:

This release fixes a bug in the python bindings whereas send_keys() was not
always returning a value.  It also fixed a bug in how mouse events get
propagated and ensures that the right number of encodings are sent to the
server.  This release also fixes the RichCursor encoding when the server is
using a depth of less than 24.

New features:

A new interface was added (vnc_display_send_keys_ex) for passing key press and
key release sequences directly and for sending pointer events directly
(vnc_display_send_pointer).  Another interface was added
(vnc_display_set_read_only) to prevent the user from being able to send any
input at all to the server.  Support for the RRE encoding was added along
with a GThread-based coroutine implementation to improve portability.  ZRLE
support was also added.

Dec 13, 2007: Release 0.3.1
===========================

Bug fixes:

Fix build so that generated tarball contains all the necessary files after a
make dist.

Dec 12, 2007: Release 0.3.0
===========================

Bug fixes:

This release fixes a number of build issues on Solaris.  It
also fixes cursor grabbing, a potential race during connect(),
an SELinux error, and race condition in the coroutine library.

New features:

Interfaces for bell messages and the clipboard are now supported.
RFB 3.4 is now supported for increased compatibility with UltraVNC.

Sep 13, 2007: Release 0.2.0
===========================

Bug fixes:

This release fixes compatability with mixed endianess client
and servers and BGR/RGB pixel format displays. Mixed colour
depths are now correctly accounted for & converted appropriately.
Graceful shutdown is now handled correctly, interrupting any
pending I/O waits. Added destructor to widget to ensure all
resources are free'd when the widget is deleted.

New features:

The two common client cursor offload extensions are supported
for compatability with OSX-VNC, UltraVNC and TightVNC. Support
for Vino's TLS authentication method is added. Added signals
for getting notified of desktop resize events, and authentication
failures.

Aug 15, 2007: Release 0.1.0
===========================

Initial public release

-- End
