2022-07-14  Daniel P. Berrangé  <berrange@redhat.com>

	Bump version to 1.3.1 and add release notes

	Add 'check' arg to meson run_command()

2022-07-07  Zurab Kargareteli  <zuraxt@gmail.com>

	Add Georgian translation

2022-06-27  Eli Schwartz  <eschwartz93@gmail.com>

	fix invalid use of subprojects
	The keycodemapdb Meson subproject provides a program and a source input.
	Since it is a subproject, Meson wants to sandbox that and requires it to
	be explicitly exported. But this never happened -- instead, we manually
	poked at files using the actual string path "subprojects/......"

	This was always a Meson sandbox violation, but Meson 0.63.0 started
	noticing it and erroring out.

	Instead, do the right thing. Update the subproject to a version that has
	a meson.build with actually meaningful contents -- namely, a files
	variable and a found program. Then use these in order to run the needed
	custom_target.

	In the process, it is also necessary to correct the argument ordering
	when running keymap-gen.

2022-02-23  Johannes Maibaum  <jmaibaum@gmail.com>

	Handle ZRLE encoding of zero size alpha cursor

2021-11-17  Daniel P. Berrangé  <berrange@redhat.com>

	Bump version to 1.3.0 and add release notes

	The vala-tools package was dropped long ago
	It has only existed as a virtual Provides line since Fedora 25

2021-11-15  Daniel P. Berrangé  <berrange@redhat.com>

	Remove bogus newlines from VNC_DEBUG calls
	This macro is a wrappar around g_debug and as such doesn't need to add
	its own newline, unless trying to break a single message across lines.

2021-11-12  Daniel P. Berrangé  <berrange@redhat.com>

	tools: fix gvnccapture handling of subauth types

	src: rewrite challenge code to use gnutls
	gcrypt refuses to encrypt DES data using an all-zeros key. While this
	might seem reasonable, this is the key that you get when someone sets
	a zero length password in a VNC server.

	IOW, the gcrypt behaviour prevents gtk-vnc connecting to a server with
	zero length password.

	GNUTLS doesn't have this problem but also doesn't support DES-ECB,
	so we have to fake it by calling DES-CBC for each block individually.
	Conceptually this is horribly inefficient, but since the VNC challenge
	is only 16 bytes long it isn't a problem in the real world.

	src: pull challenge encryption out into separate helper method

2021-05-27  Daniel P. Berrangé  <berrange@redhat.com>

	fix missing includes for quartz and broadway GDK backends
	This is another case of the bug fixed in

	commit d2c93a2bc0a9caa73bbebb41333fa7930d4165ab
	Author: Daniel P. Berrangé <dan@berrange.com>
	Date:   Tue Mar 30 15:00:00 2021 +0100

	    Add missing include of gdkwin32.h

	Closes: https://gitlab.gnome.org/GNOME/gtk-vnc/-/issues/16

	Remove unused variables

2021-05-27  Thomas Loimer  <thomas.loimer@tuwien.ac.at>

	Add a button to rotate the screen
	On each click on the new menu item, the screen is rotated by additional
	90 degrees clockwise.

2021-05-27  Jakub Janků  <jjanku@redhat.com>

	ard: set connection error
	As with vncEncryptBytes2 in the earlier patch,
	the connection error must be set, otherwise the connection
	stays in the mainloop, but nothing is happening.

	ard: cleanup properly
	With the current code, if one of the gcry functions in
	vnc_connection_perform_auth_ard() fails:
	* key isn't released
	* md5 isn't closed
	* mpis and dh aren't released

	vncEncryptBytes2: set connection error and cleanup
	If vncEncryptBytes2 fails, the false return value propagates
	upwards, but no error is set. The connection ends up stuck in
	the mainloop with nothing happening.

	Additionally, the mpis and dh aren't freed.

	To fix that, return the gcry error from vncEncryptBytes2
	and set the connection error accordingly.

	vnc-auth: emit "vnc-auth-failure" for weak key
	In vnc_connection_perform_auth_vnc(), if the user enters an empty
	password, gcry_cipher_setkey() fails with GPG_ERR_WEAK_KEY.

	In such case, we want to give the useranother chance to reenter
	the password, as is the case when the password is incorrect.

	To enable that, the auth-failure signal needs to be emitted.

	Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1941398

2021-05-07  Mart Raudsepp  <leio@gentoo.org>

	meson: Find python explicitly to honor downstream python choice

2021-04-28  Matt Turner  <mattst88@gmail.com>

	meson: Fix configuration failure with -Dwith-vala=disabled
	Otherwise with_vala is not defined, and meson setup results in

	    src/meson.build:169:5: ERROR: Unknown variable "with_vala".

2021-04-26  Jakub Janků  <jjanku@redhat.com>

	build: improve --with-coroutine=auto choice
	When the required ucontext functions aren't found, switch to gthread
	coroutines instead of failing during the build.

	These functions are absent from the POSIX.1-2008.

	Fixes: https://gitlab.gnome.org/GNOME/gtk-vnc/-/issues/11

2021-04-14  Daniel P. Berrangé  <berrange@redhat.com>

	meson: bump release to 1.2.0

	Fill in NEWS for 1.2.0 release

	meson: only run syntax-check if runnin from git
	The syntax-check rules use git to get a list of files to check.

2021-04-07  Daniel P. Berrangé  <berrange@redhat.com>

	src: add support for zoom level
	This allows the remote desktop be to kept at a fixed scaling
	factor between 10% and 400%.

	src: fix incorrect method names in API docs and inconsistent param names

	src: implement preferred width/height helpers
	This is the more modern approach to layout sizing in GTK, compared to
	setting an explicit size request. The main benefit is that we can
	force a resize to match the remote desktop size, while still allowing
	the user to resize the window smaller. This is useful when either
	scaling, or client initiated framebuffer resizes are enabled.

	examples: default hostname to "localhost" if not specified

2021-04-06  Marc-André Lureau  <marcandre.lureau@redhat.com>

	connection: annotate vnc-cursor-changed can be NULL

	connection: use boxed type for pixel-format-changed

	connection: simplify sharedFlag argument name
	Lower_case is the prefered glib C style.

	misc: spelling in doc

	colormap: fix GI annotation for lookup

	connection: document VncConnectionAuth
	GEnum works with values that fit in int. However 0xffffffa doesn't fit,
	it is actually -6. We can't change the assigned value as this would
	likely change the representation of the enum back to int and may break ABI.

2021-04-01  Daniel P. Berrangé  <berrange@redhat.com>

	rpm: ensure Obsoletes rules are versioned
	Obsoletes are recommended to include the max version that is intended to
	be erased, to allow the package to be reintroduced more easily at a
	later date if required.

	build: simplify release prep script to reduce number of builds

	rpm: update URLs for home page and download

	rpm: remove obsolete ldconfig scriptlets

	rpm: cull conditionals related to RHEL-7

	po: refresh po files with latest content

	meson: set cflags directly on targets
	Setting the cflags globally causes them to be picked up by g-ir-scanner
	which is not desired.

	meson: only set extra warning flags when warninglevel==2
	This makes us respect the meson warning level and avoids warnings from
	meson about reinventing its warninglevel feature.

	meson: set _FORTIFY_SOURCE in config.h
	Avoiding setting it in meson.build means we can honour the optimization
	level defined by meson.

	Revert "src: unset size request if scaling is active"
	This (mostly) reverts commit 0b0afcad76d208d8c371706123a731e215bff710.

	Widget resize requests are handled asynchronously, so when the
	idle func runs, we may not have actually done the resize yet.
	This resulted in the window not honouring the desktop resize
	notifications at all times.

	The do_size_request() call in vnc_display_set_scaling was
	a separate bug fix that must be kept.

	examples: enable lossy encodings in demo program

	src: add logging of encodings that are sent

	src: add debugging when setting pixel format

	src: fix pixel shifts in rgb24_blt functions
	The src pixel is always rgb24 format, regardless of what the
	remote pixel format is, so we should not be using the remote
	pixel shifts.

	Fixes https://gitlab.gnome.org/GNOME/gtk-vnc/-/issues/14

	src: fix inverted rgb24_blt function lookup
	We we picking the rgb24_blt function based on the remote
	pixel format, rather than the local pixel format. This
	caused the pixel data to be horizontally compressed in
	low color depth modes.

	Fixes https://gitlab.gnome.org/GNOME/gtk-vnc/-/issues/14

2021-03-31  Daniel P. Berrangé  <berrange@redhat.com>

	src: fix remote pixel format when reading alpha cursor
	The remote pixel format for alpha cursor is always RGB888
	true colour, regardless of the framebuffer pixel format.

	src: remove overly verbose debug logging
	This avoids printing debug messages on every mouse event

2021-03-30  Daniel P. Berrangé  <berrange@redhat.com>

	Add missing include of gdkwin32.h
	This is needed for GDK_IS_WIN32_DISPLAY. This bug was masked until

	  commit 78225889ce861c0d3ea4aa97603fef252817505f
	  Author: Marc-André Lureau <marcandre.lureau@gmail.com>
	  Date:   Wed Mar 24 12:45:27 2021 +0400

	    Cleanup Gtk2 leftovers

	src: clear resize event source ID after cancelling
	If we don't clear it then we'll later try to remove the source a second,
	third, fourth time which isn't desirable.

	examples: add menu option for keep aspect ratio

	examples: always enable scaling and resizing
	These are both features that are generally expected to be used.

	Also protecting the use of scaling behind an is_composited
	check is wrong on Wayland. Any modern platform can cope with
	scaling these days.

	src: add option to keep aspect ratio when scaling the display
	Currently applications like virt-viewer will apply their own workaround
	to keep the aspect ratio by fixing the widget size. Since applications
	want this behaviour, we should support it directly.

	src: introduce helper for calculating scaling/offset info
	Currently the widget either scales the rendering, or offsets it.
	In the future it needs to be able to do both. There are multiple
	methods which need to know this info, so introduce a helper to
	calculate it.

	src: fix mem leaks in SASL, rich cursor and xcursor code

2021-03-24  Marc-André Lureau  <marcandre.lureau@redhat.com>

	meson: use pkgconfig module to generate pc files

	Cleanup Gtk2 leftovers

2021-03-17  Jakub Janků  <jjanku@redhat.com>

	connection: fix format string for auth failure
	This error is visible when entering an empty password and results
	into an error message like this:

	"Unknown authentication failure: %s: Weak encryption key"

2021-03-11  Daniel P. Berrangé  <berrange@redhat.com>

	src: avoid sending a resize with dimensions -1, -1
	When we receive a desktop resize request, we blank out the last resize
	data, but we failed to cancel the timer. This results in us later
	sending a resize for -1, -1, which is interpreted as 65535, 65535
	and then clamped to the max possible framebuffer size by the server.

2021-03-10  Daniel P. Berrangé  <berrange@redhat.com>

	src: ensure vncversion.h includes glib.h

	src: ensure vncversion.h is installed

2021-03-09  Daniel P. Berrangé  <berrange@redhat.com>

	src: introduce a vncversion.h header file
	This header can be used by apps which want to conditionally use newer
	functionality at build time.

	src: remove emacs indent variables from all source files
	The top level .dir-locals.el file can achieve the same end goal.

2021-01-08  Daniel P. Berrangé  <berrange@redhat.com>

	examples: add menu option to enable desktop resizing

	src: implement dynamic resize of remote desktop on widget resize
	This wires up the widget to send remote desktop resize requests to
	the server when the widget changes size. Resize requests will be
	delayed for 500ms each time a resize is seen, so that when the user
	is resizing the windows we only send a request once they've stopped
	instead of for the 100's of intermediate sizes.

	src: add APIs to control whether desktop resizing is allowed
	If desktop resizing is allowed, it will take priority over scaling when
	the server supports it.

	src: add API for requesting a desktop resize

	src: block non-incremental updates after extended desktop resize
	A compliant server must send a extended desktop resize framebuffer
	update after receiving an update reqest with incremental==0. This will
	trigger an infinite loop if the client responds to a desktop resize
	with incremental==0.

	Block the next framebuffer update request from using incremental==0
	if it immediately follows a extended desktop resize.

	src: add minimal support for extended desktop resize
	This processes extended desktop resize frame buffer updates in the
	same way as the traditional desktop resize updates.

	build: disable introspection in mingw builds

	build: change with-vala and introspection options into features
	Using "feature" type lets us automatically disable them when appropriate

	build: enable glib/gtk API version usage checking

2021-01-07  Daniel P. Berrangé  <berrange@redhat.com>

	build: bump min versions of dependancies to RHEL8 vintage

	src: remove use of obsolete thread APIs
	Threading is always initialized from glib 2.32 onwards

2021-01-04  Daniel P. Berrangé  <berrange@redhat.com>

	meson: fix undefined variables for syms files on non-Linux builds
	Even though we don't pass the linker args to use the sym files on
	non-Linux, we still reference the syms files as dependencies.

2020-12-11  Daniel P. Berrangé  <berrange@redhat.com>

	src: unset size request if scaling is active
	If scaling is active at the same time as force size, we want to set the
	new size request, and then unset to let the user continue to resize.

	src: reset widget size request when changing force-resize prop
	Currently once force-resize is turned on, we never unset the widget size
	request if it is turned back off.

	src: optimize to avoid recreating framebuffer if size/format is unchanged
	The QEMU VNC server will send a desktop size rectangle immediately
	following any vmware desktop size change rectangle. This is redundant as
	the latter already reports the size change. This leads to the display
	needlessly re-creating the framebuffer despite nothing having changed.

	src: fix handling of WMVi updates
	The WMVi update encodes a new pixel format and desktop size in one
	request. Clients should not assume that a separate desktop size message
	will arrive, although QEMU does send one.  IOW, the desktop resize
	signal must be emitted in response to a WMVi update too.

	src: ensure libraries are rebuilt when syms file changes

	examples: wire up to handle desktop renames

	examples: wire up a menu for power control options

	src: add support for desktop rename
	Desktop rename allows the remote server to change the name associated
	with a desktop.

	src: add support for "last rect" encoding type
	The last rect encoding allows servers to be more efficient by sending
	rectangles before knowing how many there will be in total.

	src: add support for VNC power control actions
	This allows a client to request shutdown/reboot/reset of remote virtual
	machines when appropriate.

	Add support for VeNCrypt "plain" auth mode
	The "plain" auth mode sends a username and password "as is" to the
	server. This mode is only sensible to use if combined with TLS
	session encryption, or if the channel is otherwise immune from
	MITM attacks, such as a UNIX domain socket.

	src: correctly handle zero size alpha cursor
	Even with a zero size cursor we still have to read the encoding type off
	the wire. Assuming we get a raw encoding, we don't have any further data
	to read.

	src: dont emit framebuffer refresh signals for alpha cursor

2020-12-10  Daniel P. Berrangé  <berrange@redhat.com>

	src: enable the alpha cursor encoding preferrentially
	The alpha cursor provides better quality than the older x-cursor or
	rich cursor extensions.

	src: add support for alpha cursor encoding
	The alpha cursor encoding sends the cursor in RGBA format.

2020-12-08  Daniel P. Berrangé  <berrange@redhat.com>

	src: check connections errors earlier when processing cursor changes

	src: pass the framebuffer object into update handlers
	We can't assume there will be only one framebuffer going forward, so
	need to pass around an instance explicitly.

	src: use framebuffer dimensions for validating framebuffer updates
	The framebuffer size would match the remote desktop size at all times so
	there is no functional change here. This will be useful, however, when
	the update code is reused for decoding data unrelated to the primary
	desktop.

2020-12-08  Dr. Matthias St. Pierre  <matthias.st.pierre@ncp-e.com>

	gvncviewer.py: suppress noisy output
	Don't print anything to stdout unless the `--verbose (-v)`
	option is provided.

	gvncviewer.py: fix the screenshot feature
	It seems like GdkPixbuf.Pixbuf.save() was replaced by GdkPixbuf.Pixbuf.savev(),
	which yields the following error:

	  Traceback (most recent call last):
	    File ".../gtk-vnc/examples/gvncviewer.py", line 64, in vnc_screenshot
	      pix.save("gvncviewer.png", "png", { "tEXt::Generator App": "gvncviewer.py" })
	  AttributeError: 'Pixbuf' object has no attribute 'save'

	gvncviewer.py add menu items for sending Ctrl+Alt+F2 and  Ctrl+Alt+F3
	You can never have enough console windows ;-)

	gvncviewer.py: add window close handler to terminate the program
	This fixes the issue that the program hangs when the window is
	closed using the 'X' button.

	gvncviewer.py: add a '-h' and '--help' switch
	Also postpone the time consuming loading of the Gtk libraries until
	the sys.argv has been checked.

	gvncviewer.py: add support for UNIX domain sockets
	In addition to specifying a <host> name (and optional <display> number)

	    gvncviewer.py <host>[:<display>] [password]

	it is now also possible to specify the <path> of a UNIX domain socket:

	    gvncviewer.py unix:<path> [password]

	The syntax is inspired by QEMU's `-vnc unix:<path>` argument.

	gvncviewer.py: fix TypeError in GtkVnc.Display.send_keys()
	GtkVnc.Display.send_keys() now expects X11 key value constants
	instead of strings, which resulted in a TypeError:

	  Traceback (most recent call last):
	    File ".../gtk-vnc/examples/gvncviewer.py", line 93, in send_caf1
	      vnc.send_keys(["Control_L", "Alt_L", "F1"])
	  TypeError: Item 0: Must be number, not str

	gvncviewer.py: Fix PyGTKDeprecationWarning in Gtk.MenuItem()
	Calling Gtk.MenuItem() with a string argument yields the following
	deprecation warning:

	  PyGTKDeprecationWarning: Using positional arguments with the
	  GObject constructor has been deprecated. Please specify
	  keyword(s) for "label" or use a class specific constructor.
	  See: https://wiki.gnome.org/PyGObject/InitializerDeprecations

	As recommended, use Gtk.MenuItem.new_with_mnemonic() instead.

	gvncviewer.py: fix python3 errors
	The only change necessary was to convert the print statements
	to functions and add a __future__ for python2 compatibility.

2020-08-28  Daniel P. Berrangé  <berrange@redhat.com>

	Ensure GtkVnc / GVncPulse Gir files are built against local GVnc Git

2020-08-19  Daniel P. Berrangé  <berrange@redhat.com>

	meson: enable stack protector on freebsd and windows
	Fedora 33 rawhide no longer successfully builds GTK-VNC on mingw using
	fortify source, without also having stack protector flags enabled/

2020-04-04  Mart Raudsepp  <leio@gentoo.org>

	meson: Make introspection building controllable
	The windows host checks are removed, as I don't think it's inherently
	impossible to build with introspection for windows, and if a
	particular windows build needs it disabled, it's controllable via
	the option now.
	Vala API build requires introspection - this is made explicit to
	not end up with missing vapi files, despite asking for them.

	meson: Add options to control pulseaudio and sasl dependencies

2020-01-08  Daniel P. Berrangé  <berrange@redhat.com>

	meson: drop x11 min version back further for Ubuntu 16.04

2020-01-07  Daniel P. Berrangé  <berrange@redhat.com>

	Relax min x11 dep for Debian 9 portability

2020-01-06  Daniel P. Berrangé  <berrange@redhat.com>

	Use a proper cond variable for accessing port from server thread
	This avoids tickling the mutex deadlock detector on FreeBSD 12

	Use meson's built-in werror option

	Avoid deprecation warnings from G_TYPE_VALUE_ARRAY macro

	Stop checking if threads are enabled in glib
	Threading is unconditionally enabled these days.

	Use g_main_loop_quit instead of g_main_quit

	stop using deprecated g_type_class_add_private

	meson: run syntax-check as part of test target

	meson: use built-in support for source dist creation

2019-09-25  Danial Behzadi  <dani.behzi@ubuntu.com>

	Add Persian translation

2019-08-22  Tom Schoonjans  <Tom.Schoonjans@diamond.ac.uk>

	build: implement some macOS specific fixes
	* Add some CPPFLAGS
	* Ensure -Wl,--no-undefined is only used when supported, which is not
	the case on macOS
	* Add darwin_versions for correct versioning

2019-08-22  Jan Tojnar  <jtojnar@gmail.com>

	examples: fix dependencies
	Without this, I am getting:

	../examples/gvncviewer.c:34:10: fatal error: gio/gunixsocketaddress.h: No such file or directory
	 #include <gio/gunixsocketaddress.h>
	          ^~~~~~~~~~~~~~~~~~~~~~~~~~

2019-08-07  Daniel P. Berrangé  <berrange@redhat.com>

	Update NEWS for 1.0.0 release

	rpm: make gtk3 sub-RPMs obsolete the gtk2 sub-RPMs
	Adding Obsoletes: lines ensures the GTK2 version of gtk-vnc gets erased
	during upgrade.

2019-08-06  Piotr Drąg  <piotrdrag@gmail.com>

	Update POTFILES.skip

2019-08-06  Daniel P. Berrangé  <berrange@redhat.com>

	build: drop autotools build recipes

	build: switch to use meson for making releases

	build: switch RPM spec builds to use meson instead of autotools

	build: add initial meson build recipes

2019-08-05  Daniel P. Berrangé  <berrange@redhat.com>

	build: add missing vncpixelformat.c file to introspection

	tests: annotate unused parameters

	build: fix typo in gir package name

	build: install the cairo header file

	src: fix arg name consistency in gtk-doc comments

	build: drop extra release tag from RPM specs

	build: use #ifdef instead of #if for WITH_UCONTEXT check

	build: remove checks for pwd.h and termios.h
	Simply use a win32 platform check for these headers

	build: rename included keycodemapdb files to have .h ext
	These files are not headers, they are source that is included from other
	source files.

	build: remove long obsolete link-warning.h file

	build: move keycodemapdb submodule
	Move the submodule into the subprojects directory to match what meson
	expects.

	Drop support for libview in example program
	The libview project is abandonware with no commit upstream since 2011
	and no support for GTK3. Since we dropped GTK2 there's no reason to
	keep libview support.

2019-05-03  Daniel P. Berrangé  <berrange@redhat.com>

	rpm: always build with vala enabled

	rpm: always build with gir enabled

	Delete support for GTK2

	Refresh maint.mk from gnulib

	Allow for writes to fail in server test
	There is a race condition between the client and the server code. Once
	the client has detected an error condition it might close the connection
	before the server has finished writing its protocol message fully. Set a
	flag to allow for some writes to fail.

	Don't leak server object in tests

2019-05-02  Daniel P. Berrangé  <berrange@redhat.com>

	rpm: remove bogus mingw dep on iconv

	rpm: switch to using autosetup macro

	rpm: remove duplicate description entry

	rpm: run make check during build

2019-01-12  Ján Tomko  <jtomko@redhat.com>

	configure: do not quote EXTRA_ARGS
	Without this using ./autogen.sh --system results in a funny definition
	of SYSCONFDIR:
	Searching for certs in /usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib64/etc/pki

	vnc_connection_start_tls: set tls_session to NULL after deinit
	Avoid a double free in case of a failure, e.g. when vnc_connection_tls_initialize_cert_cred
	fails to read the certificate:

	==1154== Invalid read of size 4
	==1154==    at 0x60870FB: gnutls_bye (record.c:288)
	==1154==    by 0x4A46B73: vnc_connection_close (vncconnection.c:5120)
	==1154==    by 0x4A4E6CA: vnc_connection_coroutine (vncconnection.c:5650)
	==1154==    by 0x4A51BCE: coroutine_trampoline (coroutine_ucontext.c:55)
	==1154==    by 0x5BD81FF: ??? (in /usr/lib64/libc-2.28.so)
	==1154==    by 0x175DB277: ???
	==1154==  Address 0x1847fcf0 is 384 bytes inside a block of size 6,496 free'd
	==1154==    at 0x4839A0C: free (vg_replace_malloc.c:540)
	==1154==    by 0x4A4B019: vnc_connection_start_tls (vncconnection.c:4466)
	==1154==    by 0x4A4CBE8: vnc_connection_perform_auth_vencrypt (vncconnection.c:4708)
	==1154==    by 0x4A4CBE8: vnc_connection_perform_auth (vncconnection.c:4818)
	==1154==    by 0x4A4CBE8: vnc_connection_initialize (vncconnection.c:5415)
	==1154==    by 0x4A4E50F: vnc_connection_coroutine (vncconnection.c:5639)
	==1154==    by 0x4A51BCE: coroutine_trampoline (coroutine_ucontext.c:55)
	==1154==    by 0x5BD81FF: ??? (in /usr/lib64/libc-2.28.so)
	==1154==    by 0x175DB277: ???
	==1154==  Block was alloc'd at
	==1154==    at 0x483AB1A: calloc (vg_replace_malloc.c:762)
	==1154==    by 0x60B6FDE: gnutls_init (state.c:465)
	==1154==    by 0x4A4AB28: vnc_connection_start_tls (vncconnection.c:4434)
	==1154==    by 0x4A4CBE8: vnc_connection_perform_auth_vencrypt (vncconnection.c:4708)
	==1154==    by 0x4A4CBE8: vnc_connection_perform_auth (vncconnection.c:4818)
	==1154==    by 0x4A4CBE8: vnc_connection_initialize (vncconnection.c:5415)
	==1154==    by 0x4A4E50F: vnc_connection_coroutine (vncconnection.c:5639)
	==1154==    by 0x4A51BCE: coroutine_trampoline (coroutine_ucontext.c:55)
	==1154==    by 0x5BD81FF: ??? (in /usr/lib64/libc-2.28.so)
	==1154==    by 0x175DB277: ???

	vnc_connection_start_tls: add deinit label
	Introduce a deinit label to unify cleanup paths which call gnutls_deinit.

2019-01-12  Christophe Fergeau  <cfergeau@redhat.com>

	conn: Use vnc_connection_has_error() extensively
	It's better to call this helper rather than directly checking for
	priv->coroutine_stop.

	conn: Remove redundant vnc_connection_has_error() calls
	No need to call it twice in:
	if (vnc_connection_has_error(conn))
	    return !vnc_connection_has_error(conn);

	and no need to call it after calling vnc_connection_set_error() as it
	will always return TRUE in this scenario.

	conn: Report error if vnc_connection_perform_auth_vnc fails
	At the moment, when the various crypto operations that
	vnc_connection_perform_auth_vnc performs fail, no error is reported to
	the client application. This commit adds the emission of a vnc-error
	signal when this happens. This is not reported as an auth failure as
	these errors are not something which is recoverable, they indicate
	system failures.

	sasl: Emit vnc-auth-failure signal on SASL auth failures
	When the SASL username or password are wrong, at the moment client
	application will not get any specific notification for it, they will
	just know that the remote connection was closed because of an error.

	This commit adds the emission of the vnc-auth-failure signal when
	vnc_connection_perform_auth_sasl() fails.

	https://bugzilla.redhat.com/show_bug.cgi?id=1456175

	sasl: Factor common code auth failure
	The new vnc_connection_auth_failure() method will be reused in the
	next commit.

2018-12-14  Andre Klapper  <a9016009@gmx.de>

	Replace Bugzilla by Gitlab URL in DOAP file

2018-09-05  Daniel P. Berrangé  <berrange@redhat.com>

	Initialize gcrypt before any auth method
	The gcrypt APIs are now used in multiple auth methods, so we should
	initialize them early, rather than only in the TLS codepath.

2018-08-30  Guido Günther  <agx@sigxcpu.org>

	gvnc-1.0.pc.in: Use GLIB_REQUIRED
	GOBJECT_REQUIRED is no more

2018-08-24  Daniel P. Berrangé  <berrange@redhat.com>

	fix crash when connection fails early
	When reading the initial greeting a timer is set in the background. If
	the connection fails early, we can jump to cleanup code before the timer
	is disable. The timer will later fire, read a coroutine context from
	freed memory, and likely jump to somewhere awful with predictably crashy
	results.

	  https://bugzilla.redhat.com/show_bug.cgi?id=1620203

	coroutine: use MAP_ANON if MAP_ANONYMOUS does not exist
	MAP_ANON is the old deprecated name for MAP_ANONYMOUS, but the latter
	does not exist on at least some macOS 10 versions.

	Resolves: issue #4

2018-08-24  Marc-André Lureau  <marcandre.lureau@redhat.com>

	build-sys: update gitignore
	GITIGNORE_MAINTAINERCLEANFILES_* helpers, remove plugin files.

	https://bugzilla.gnome.org/show_bug.cgi?id=780651

	build-sys: remove .in files from EXTRA_DIST
	They are already dist'ed by autotools.

	https://bugzilla.gnome.org/show_bug.cgi?id=780651

	build-sys: update git.mk
	https://bugzilla.gnome.org/show_bug.cgi?id=780651

2018-08-22  Marc-André Lureau  <marcandre.lureau@redhat.com>

	build-sys: drop gnome-common dependency
	As described in:
	https://wiki.gnome.org/Projects/GnomeCommon/Migration

	https://bugzilla.gnome.org/show_bug.cgi?id=780651


	Tweaked autogen.sh to use 'test' instead of []

2018-08-22  Daniel P. Berrangé  <berrange@redhat.com>

	examples: remove extra parameter from init call in javascript demo
	The bindings for JS have improved such that the init() can be invoked
	sensibly.

	Resolves: issue #6

	examples: require specific versions before importing gi libs
	Resolves: issue #6

2018-08-17  Daniel P. Berrangé  <berrange@redhat.com>

	Update NEWS for 0.9.0 release

	Bump next version to 0.9.0

	Avoid uint8_t type as that's not always defined

	Remove obsolete --without-python arg from mingw RPM

	Reallow python2 usage
	The keycodemapdb generator in fact works with python 2 or 3 so there is
	no reason to force python 3 at this time.

	Update bug tracker URL

	Require glib2 >= 2.42.0
	Based on targetted distros it is reasonable to require glib >= 2.42.0

	   RHEL-7: 2.50.3
	   Debian (Stretch): 2.50.3
	   Debian (Jessie): 2.42.1
	   OpenBSD (Ports): 2.54.3
	   FreeBSD (Ports): 2.50.3
	   OpenSUSE Leap 15: 2.54.3
	   SLE12-SP2: 2.48.2
	   Ubuntu (Xenial): 2.48.0
	   macOS (Homebrew): 2.56.0

	Require libgcrypt >= 1.5.0
	libgcrypt 1.5.0 was released in 2011 and all the distros that are build
	target platforms for GTK-VNC include it:

	      RHEL-7: 1.5.3
	      Debian (Stretch): 1.7.6
	      Debian (Jessie): 1.6.3
	      OpenBSD (ports): 1.8.2
	      FreeBSD (ports): 1.8.3
	      OpenSUSE Leap 15: 1.8.2
	      Ubuntu (Xenial): 1.6.5
	      macOS (Homebrew): 1.8.3

	Based on this, it is reasonable to require libgcrypt >= 1.5.0 in QEMU
	which allows for some conditional version checks in the code to be
	removed.

	Require gnutls >= 3.1.18
	gnutls 3.0.0 was released in 2011 and all the distros that are build
	target platforms for GTK-VNC include it:

	      RHEL-7: 3.1.18
	      Debian (Stretch): 3.5.8
	      Debian (Jessie): 3.3.8
	      OpenBSD (ports): 3.5.18
	      FreeBSD (ports): 3.5.18
	      OpenSUSE Leap 15: 3.6.2
	      Ubuntu (Xenial): 3.4.10
	      macOS (Homebrew): 3.5.19

	Based on this, it is reasonable to require gnutls >= 3.1.18 in GTK-VNC
	which allows for all conditional version checks in the code to be
	removed.

	Protect against divide by zero in MSLogon auth

	Support new code for ultravnc mslogon auth type
	The old AUTH_MSLOGON code is only used with vnc 3.3 protocol version.
	The new auth type code functions in exactly the same way as the old
	version.

	Check for error after reading mslogon params

	Add missing cipher close calls for ARD auth

	Convert to use gcrypt for d3des routines
	By munging the DES key we can use the standard APIs for DES

2018-08-01  Piotr Drąg  <piotrdrag@gmail.com>

	Add POTFILES.skip

2018-08-01  Daniel P. Berrangé  <berrange@redhat.com>

	rpm: remove obsolete defattr statements

	rpm: skip gtk2-devel if gtk2 is not enabled

	configure: post release version bump

	README: update outdated notes about GTK/python

	Update NEWS for 0.8.0 release

	Pull in latest keycodemapdb content

2018-07-23  Daniel P. Berrangé  <berrange@redhat.com>

	Remove unused variable from configure script

	Allow gtk2 build to be disabled

2018-07-16  Victor Toso  <me@victortoso.com>

	build-sys: Disable -Wcast-function-type
	Previous commit fixed one -Wcast-function-type but the remaining ones
	are related to g_source_set_callback() which cannot be solved with
	intermediate wrappers as the callback signature will vary depending on
	the source it's called on.

	This commit suppress the following:

	 | vncconnection.c: In function 'g_io_wait':
	 | vncconnection.c:343:32: warning: cast between incompatible function types from
	 |  'gboolean (*)(GSocket *, GIOCondition,  void *)' ... to
	 |  'gboolean (*)(void *)' ...
	 |
	 |    g_source_set_callback(src, (GSourceFunc)g_io_wait_helper, coroutine_self(), NULL);
	 |                               ^
	 |
	 | vncconnection.c: In function 'g_io_wait_interruptable':
	 | vncconnection.c:379:32: warning: cast between incompatible function types from
	 |  'gboolean (*)(GSocket *, GIOCondition,  void *)' ... to
	 |  'gboolean (*)(void *)' ...
	 |
	 |    g_source_set_callback(src, (GSourceFunc)g_io_wait_helper,
	 |                               ^

	Fix -Wcast-function-type on vnc_base_framebuffer_rgb24_blt_*
	The y axis is uint16 on vnc_base_framebuffer_rgb24_blt_func()

2018-07-16  Daniel P. Berrangé  <berrange@redhat.com>

	Delete old manual python binding
	All applications should use the GObject Introspection dynamic binding

2018-03-23  Daniel P. Berrangé  <berrange@redhat.com>

	Update NEWS for 0.7.2 release

	rpm: disable python binding build on Fedora and future RHEL
	The python binding only works for GTK2 and Python2, both of which are
	slowly going away. It is still possible to access the library from
	any Python using GObject introspection dynamic binding.

	Explicitly deprecate python binding prior to deletion
	The python binding only works with Python 2 and GTK 2, neither of which
	should be used long term. Applications should switch to GObject
	Introspection which works with Python 3 and GTK 3.

	rpm: Cleanup TLS priority setting for newer distros

	rpm: Rename sub-package from gtk-vnc-python to python2-gtk-vnc

	rpm: Fix BR on python-devel to use python2-devel
	This has been available from RHEL >= 6

	rpm: remove obsolete %clean section
	RPM handles this automatically since RHEL >= 6

	rpm: remove obsolete Group tags
	This is not required since RHEL >= 6 or equivalently new Fedora.

	rpm: Remove obsolete BuildRoot tag

	Update links to wiki site

2018-03-21  Daniel P. Berrangé  <berrange@redhat.com>

	Add description to the doap file

	Set programming language for doap file

	Switch doap category to 'core' as 'desktop' is not permitted any longer

	Remove Jonh from maintainers list, since he is no longer active.

2018-03-13  gogo  <trebelnik2@gmail.com>

	Add Croatian translation

2018-03-13  Nathan Follens  <nathan@anche.no>

	Add Dutch translation

2018-03-13  Olivier Fourdan  <ofourdan@redhat.com>

	Use scancode instead of keycode names
	When running on Xwayland, the keycode mapping property is not available,
	which causes unknown keycode mapping errors and the keyboard doesn't
	work.

	Check for a known scancode (“XK_Page_Up”) which differs to distinguish
	between “xfree86” and “evdev” when the there is no keycode name.

2018-01-31  Daniel P. Berrangé  <berrange@redhat.com>

	Explicitly track whether x509 creds have been set
	If we want to use the system trust DB, we can't rely on cred_x509_cacert
	field being non-NULL. We must explicitly record whether the client app
	has set the x509 credentials. We allow cacert to be missing if we are
	built against a new enough GNUTLS.

	Add debug logs wrt credential gathering

	Don't short-circuit request for TLS credentials
	Although newer GNUTLS has a default system trust fallback for CA
	certificates, we must still request certificates from the client app. If
	we do not, then the VNC client will never be given the opportunity to
	provide custom certs to override the system trust database.

	Add debug message when getting a desktop resize request

2017-08-08  Daniel P. Berrange  <berrange@redhat.com>

	Fix license of the keymap conversion code
	The vncdisplaykeymap.c file was mistakenly declared as
	LGPL v2-only when first created. Since then it has been
	almost completely rewritten. After the previous commit
	removing the special Tab key handling, the remaining
	logic was all written by my own or Red Hat copyright.
	So changing the license to LGPLv2-or-later under that
	basis.

	Remove uneccessarily generic handling of shifted tab key

	Remove obsolete copyright notice
	The copyright notice referred to a table mapping scan codes that
	was taken from QEMU source. This table was, however, deleted in

	  commit e0910397d6ba1eca3d968c98a2105c1a7ead7fd7
	  Author: Daniel P. Berrange <berrange@redhat.com>
	  Date:   Fri Jul 9 19:30:54 2010 +0100

	    Rewrite keymap code to work on more platforms

	so the code that the copyright statement referenced no longer
	exists.

2017-07-13  Peter Korsgaard  <peter@korsgaard.com>

	vncdisplay: on_initialized: send the led state notification encoding
	So servers supporting this encoding will actually notify us and the
	vnc-led-state signal will fire.

2017-05-19  Daniel P. Berrange  <berrange@redhat.com>

	Bump to 0.7.1 for new release

2017-04-12  Daniel P. Berrange  <berrange@redhat.com>

	Fix incompatibility with libvncserver websockets handling
	The previous commit:

	  commit 7f4f2fe8da72ed9fef5dd4319e19feb2b4f3d62e
	  Author: Daniel P. Berrange <berrange@redhat.com>
	  Date:   Thu Jan 26 09:31:40 2017 +0000

	    Add workaround to avoid hangs when connecting to SPICE

	changed the code so that it would send the bytes "RFB " to the
	server before we received its own greeting. This works fine for
	VNC servers which follow the RFB protocol spec exclusively. The
	libvncserver code though tries to implement websockets tunnelling
	support on the same port as the normal RFB service. The way it
	does this is by waiting 100ms after the client connects to see
	if the client sends any data. If the client sends data, then it
	tries to interpret this as an HTTP GET request to initiate the
	websockets connection. This breaks when it sees our "RFB " bytes
	being sent. Ideally the libvncserver would have just run a normal
	RFB connection in this case, but that's not what happens, and
	given the libvncserver code is in the wild we need a workaround.

	So instead of immediately sending the 'RFB ' bytes to the VNC
	server, we introduce a 2 second wait. ie, we'll wait for the
	normal VNC server greeting and if it doesn't arrive after 2 seconds,
	we'll send our 'RFB ' bytes proactively, and continue waiting. If we
	are on a real VNC server, we'll get our connection initialized
	eventually. If connecting to a SPICE server by mistake, we'll get a
	clean disconnect, and we'll avoid upsetting libvncserver, because its
	100ms wait for HTTP GET will have long since finished.

	Report a proper error message if hitting connection timeout

	Fix crash when no error is set after connection failure

	Fix crash when opening connection from a GSocketAddress

	Avoid sign extension warnings from coverity
	 src/vncconnection.c:3082: sign_extension:
	 Suspicious implicit sign extension: "height" with type "unsigned short"
	 (16 bits, unsigned) is promoted in "rowlen * height" to type "int"
	 (32 bits, signed), then sign-extended to type "unsigned long"
	 (64 bits, unsigned). If "rowlen * height" is greater than 0x7FFFFFFF,
	 the upper bits of the result will all be 1.

	The 'rowlen' variable is initialization from the unsigned width
	variable, so should have used uint instead of int.

	Fix inverted args when creating framebuffer for test suite
	The local & remote format args were inverted in the test
	suite. This is currently harmless since we are not trying
	to validate the rendered framebuffer content.

	Restore correct size of reserved data
	A previous commit

	  commit 7a9271620c894931cc22d6587d58e46c5996dac3
	  Author: Lei Li <lilei@linux.vnet.ibm.com>
	  Date:   Mon May 20 11:45:59 2013 +0100

	    Add support for LED state extension to gvnc

	removed 4 elements from the reserved data field, when adding
	one pointer. This is because it mistakenly thought the reserved
	elements were 1 byte in length, when they are in fact one pointer
	in size.

	The original change was technically an ABI incompatible change,
	as is this fix. In practice, however, GObject classes are never
	instantiated statically at compile time. Instead a call to
	g_type_register_static is made at runtime. So this change in the
	class size won't have a negative effect unless someone has
	subclassed the VncConnectionClass type. Even if subclassing, this
	should be harmless as we've merely increased the memory allocation
	by 3 words.

2017-03-05  Fabio Tomat  <f.t.public@gmail.com>

	Add Friulian translation

2017-02-22  Rafael Fontenelle  <rafaelff@gnome.org>

	Fix path for keymap-gen when doing VPATH builds

2017-02-16  Daniel P. Berrange  <berrange@redhat.com>

	Fix some deps in spec file & new URL & missing group tags

2017-02-15  Daniel P. Berrange  <berrange@redhat.com>

	Switch to use keycodemapdb submodule

2017-02-14  Guido Günther  <agx@sigxcpu.org>

	Link against GIO_LIBS explicitly
	to avoid

	libtool: link: gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -fdebug-prefix-map=/build/gtk-vnc-0.6.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro
	 -Wl,-z -Wl,now -o .libs/vncconnectiontest vncconnectiontest-vncconnectiontest.o  ./.libs/libgvnc-1.0.so -lz -pthread
	/usr/bin/ld: vncconnectiontest-vncconnectiontest.o: undefined reference to symbol 'g_io_stream_get_output_stream'
	//usr/lib/x86_64-linux-gnu/libgio-2.0.so.0: error adding symbols: DSO missing from command line

	Also make the use of *_CFLAGS and *_LIBS match.

2017-02-09  Daniel P. Berrange  <berrange@redhat.com>

	Bump to 0.7.0 for new release

2017-02-08  Daniel P. Berrange  <berrange@redhat.com>

	Clamp cursor hot-pixel to be within cursor region
	Some broken VNC servers send hot-pixel outside bounds of the
	cursor. We could disconnect and report an error, but it is
	more user friendly to just clamp the hot pixel coords

	https://bugzilla.gnome.org/show_bug.cgi?id=775394

2017-02-08  Eric R. Schulz  <eric@ers35.com>

	Fix memory leaks
	Call gnutls_deinit() after gnutls_bye().
	Call g_free() in finalize().
	Call g_free() in vnc_grab_sequence_free().

2017-02-08  Daniel P. Berrange  <berrange@redhat.com>

	Fix some misc warnings & mem leak in test case

2017-02-08  Christophe Fergeau  <cfergeau@redhat.com>

	README: Update URL to home page
	The old page no longer seems to exist in GNOME's wiki.

	Add preconditions to VncDisplay public methods
	This should catch invalid arguments being passed to these. This required
	moving the VncDisplayPrivate *priv = display->priv; assignment as the
	VNC_IS_DISPLAY(display) check is also a NULL check which we want to
	happen before dereferencing it.

	Avoid crash if attempt to connect to an invalid host or port
	If vnc_display_open_host() is called with a NULL port or host,
	vnc_connection_open_host_internal() will eventually crash.
	This commits adds runtime checks to return early with
	g_return_val_if_fail() when this happens rather than
	crashing

	 #0  0x00007ffff37de3d3 in __strchr_sse2 () at ../sysdeps/x86_64/strchr.S:32
	 #1  0x00007ffff4661a17 in g_inet_socket_address_new_from_string (address=0x0, port=0)
	     at ginetsocketaddress.c:416
	 #2  0x00007ffff466b784 in g_network_address_parse_sockaddr (addr=addr@entry=0x969f50 [GNetworkAddress])
	     at gnetworkaddress.c:245
	 #3  0x00007ffff466ba94 in g_network_address_address_enumerator_next (enumerator=0x972ca0 [GNetworkAddressAddressEnumerator], cancellable=0x0, error=<optimized out>) at gnetworkaddress.c:919
	 #4  0x00007ffff727130b in vnc_connection_open_host_internal (conn=0x99bbf0 [VncConnection])
	     at vncconnection.c:5395
	 #5  0x00007ffff7271523 in vnc_connection_coroutine (opaque=0x99bbf0) at vncconnection.c:5448
	 #6  0x00007ffff7272e54 in coroutine_trampoline (cc=0x998080) at coroutine_ucontext.c:55
	 #7  0x00007ffff7272b65 in continuation_trampoline (i0=10059904, i1=0) at continuation.c:43
	 #8  0x00007ffff379dc00 in __start_context () at /lib64/libc.so.6
	 #9  0x0000000000998448 in  ()
	 #10 0x0000000000000000 in  ()

2017-02-08  Rico Tzschichholz  <ricotz@t-online.de>

	Add missing vala .deps files for gvnc & gvncpulse
	https://bugzilla.gnome.org/show_bug.cgi?id=772322

2017-02-07  Daniel P. Berrange  <berrange@redhat.com>

	Correctly validate color map range indexes
	The color map index could wrap around to zero causing negative
	array index accesses.

	https://bugzilla.gnome.org/show_bug.cgi?id=778050

	CVE-2017-5885

	Don't accept color map entries for true-color pixel format
	The color map entries should only be sent by the server
	when true-color flag is false.

	Fix bounds checking for RRE, hextile & copyrect encodings
	While the client would bounds check the overall update
	region, it failed to bounds check the payload data
	parameters.

	Add a test case to validate bounds checking.

	https://bugzilla.gnome.org/show_bug.cgi?id=778048

	CVE-2017-5884

2017-01-26  Daniel P. Berrange  <berrange@redhat.com>

	Add workaround to avoid hangs when connecting to SPICE
	When used with QEMU at least, both SPICE and VNC live in the same port
	range (5900+). It is thus not entirely uncommon for a user to mistakenly
	connect to a SPICE server with a VNC client, or vica-verca.

	When connecting to VNC server with a SPICE client, you quickly get an
	error. This is because the VNC server sends its short greeting and then
	sees the RedLinkMess from the SPICE client, realizes its garbage and
	drops the connection.

	When connecting to a SPICE server with a VNC client though, you get an
	indefinite hang. The VNC client is waiting for the VNC greeting, which
	the SPICE server will never send. The SPICE server is waiting for the
	RedLinkMess which the VNC client will never send.

	In VNC the protocol starts with the follow data sent:

	 Server: "RFB 003.008\n"
	 Client: "RFB 003.008\n"

	This can be tweaked so the client proactively sends the first four
	bytes

	 Client: "RFB "
	 Server: "RFB 003.008\n"
	 Client: "003.008\n"

	From the VNC server POV, it'll still be receiving the same 12 bytes from
	the client - it just happens that 4 of them might arrive a tiny bit
	earlier than the other 8 of them. IOW nothing should break in the VNC
	server from this change.

	The SPICE server, waiting for its RedLinkMess message will see these
	four bytes "RFB " and interpret them as the SPICE magic number. This
	will be invalid and so the SPICE server will drop the connection.
	This avoids the VNC client hanging forever when connecting to a SPICE
	server by mistake.

2016-10-26  Felix E. Klee  <felix.klee@inka.de>

	Added menu option for smooth scaling

	Added option for smooth scaling
	Smooth scaling can now be turned off by setting the option "smoothing"
	to false.

2016-08-18  Piotr Drąg  <piotrdrag@gmail.com>

	Updated Polish translation

2016-08-18  Daniel P. Berrange  <berrange@redhat.com>

	Update for 0.6.0 release

2016-08-16  Daniel P. Berrange  <berrange@redhat.com>

	Fix inverted endianness when setting pixel format
	Least-significant-byte first corresponds to little endian,
	not big endian. This problem was exposed when we started
	setting pixel format in

	  commit d8adb75e926872792b57a7ece5ce7d8cf2c2d8bc
	  Author: Daniel P. Berrange <berrange@redhat.com>
	  Date:   Fri Apr 25 17:30:12 2014 +0100

	    Always send back pixel format message

	but only if disabling the tight encoding.

	Ignore cast align warnings to avoid tripping up clang
	Resolves: bz#765389

	Update to newer copies of gnulib's warnings code
	This introduces many more warning flags, and fixes compat
	with clang

	Resolves: bz#765389

	Fix many %d vs %u format warnings
	Newer gcc warning flags are better at catching misuse of
	%d vs %u

	Remove trailing '.' from error messages

	Add support for using GNUTLS system trust DB
	If using GNUTLS >= 3.0.0, we can fallback to using the
	system trust DB, if no explicit CA cert is provided.

	If an explicit CA is provided, we do *NOT* enable the
	system trust, because we don't want to allow arbitrary
	public CAs to issue bogus certs for VNC servers using
	a dedicated CA.

	Resolves: bz#759817

	Assume we can always get GNUTLS version number

	Fix path to h2def.py script
	Resolves: bz#744393

	Introduce a "vnc-error" signal
	Provide the app uing GTK-VNC with information about what caused
	the error via a new "vnc-error" signal.

	Resolves: bz#762223, #768237

	spec: assume Fedora >= 20

	Allow default TLS priority to be set at build time
	Add a --with-tls-priority flag to configure which takes a
	GNUTLS cipher/protocol priority string, overriding the
	built-in default of "NORMAL".

	Drop support for gnutls < 2.2.0
	The 2.2.0 release of gnutls includes gnutls_priority_set_direct
	which we already use conditionally. This release dates from Dec
	2007, so it is reasonable to drop the conditional code for older
	GNUTLS releases.

2016-08-15  Pavel Grunt  <pgrunt@redhat.com>

	display: Fix redraw in Windows
	The display redraws only on focus event.

	Replace GDK_WINDOW_HWND by gdk_win32_window_get_impl_hwnd() which gets
	the HWND directly, without any side effects - causing redrawing issues

2016-07-22  Daniel P. Berrange  <berrange@redhat.com>

	Remove vnc_connection_get_local
	The last use of this inline method was removed in

	  commit 37fc69f2da557669b14728e2b4af5147f98a3b3c
	  Author: Daniel P. Berrange <berrange@redhat.com>
	  Date:   Thu Nov 19 19:06:00 2009 +0000

	    Convert VncConnection over to use VncFramebuffer object

	Add GIO when generating introspection for gvnc library
	The gvnc library depends on some GIO data types, so this
	library should be included when generating introspection.

	This fixes the warning:

	vncconnection.h:166: Warning: GVnc: vnc_connection_open_addr: argument addr: Unresolved type: u'GSocketAddress*'

	Add docs for all public APIs

	Default to bulding with GTK-3
	GTK-2 is pretty obsolete now, so we should default to
	using GTK-3

	Avoid comparing display to self in gdk stubs
	Latest gcc warns about the comparison 'dpy == dpy'

	vncdisplaykeymap.c: In function 'vnc_display_keymap_gdk2rfb_table':
	vncdisplaykeymap.c:165:14: error: self-comparison always evaluates to true [-Werror=tautological-compare]
	     if (GDK_IS_X11_DISPLAY(dpy)) {
	              ^~

	Change to using 'dpy != NULL' to avoid this.

2016-02-08  Federico Mena Quintero  <federico@gnome.org>

	Remove duplicate check for cert expiration time

2016-01-23  Aurimas Černius  <aurisc4@gmail.com>

	Updated Lithuanian translation

2015-06-04  Pedro Albuquerque  <palbuquerque73@gmail.com>

	Updated Portuguese translation

2015-05-11  Cédric Valmary  <cvalmary@yahoo.fr>

	Added Occitan translation

2015-03-13  Samir Ribic  <samir.ribic@etf.unsa.ba>

	Added Bosnian translation

2015-03-01  Michael Ramírez  <radical_michael@hotmail.com>

	Added Wayuu translation

2015-02-28  Daniel P. Berrange  <berrange@redhat.com>

	Remove previous hack for xwayland
	With the new Xkb functions we don't need a special check for
	xwayland.

2015-02-28  Pavel Grunt  <pgrunt@redhat.com>

	vncdisplaykeymap: Use XkbGetMap and XkbGetNames instead of XkbGetKeyboard
	XkbGetKeyboard does not work in XWayland (bfo#89240).

	Copied from spice-gtk: 95e322a6bbc29dc9c28724fb80706464e276b89f

2015-02-18  Fabiano Fidêncio  <fidencio@redhat.com>

	vncdisplay: check whether the widget is realized in focus_in_event()
	Returning early on focus_in_event(), when widget is not realized, avoids
	segfault when running on Windows using GTK3.

	Revert "vncdisplay: check whether the widget is realized in focus_in_event()"
	This reverts commit 6f4a70d2a8540d121d1a794bef467bb3f54f9f0d, because
	the patch was applied to the wrong function.

	vncdisplay: check whether the widget is realized in focus_in_event()
	Returning early on focus_in_event(), when widget is not realized, avoids
	segfault when running on Windows using GTK3.

2015-02-10  Daniel P. Berrange  <berrange@redhat.com>

	Update to 0..5.4 release

2015-02-09  Daniel P. Berrange  <berrange@redhat.com>

	Ensure we find mingw version of libgcrypt-config in $PATH

	Add typo in keymap name for wayland

2015-02-06  Peter Korsgaard  <peter@korsgaard.com>

	keymaps.csv: use official USB/HID scancodes for vol mute/up/down + find/stop
	The Linux kernel's usb_kbd_keycode translation table oddly enough translates
	2 different USB/HID scancodes to the same Linux KEY_* symbol for a the
	volume mute/up/down and find/stop symbols.  The first of these matches the
	HID usage tables (Hut1_12.pdf), and the second is in the reserved range
	(0xe8-0xffff).

	It is unclear why this is done (the commit predates the move to git), but
	for the reverse table in keymaps.csv it makes sense to use the values from
	the official HID usage tables instead.

2015-02-06  Daniel P. Berrange  <berrange@redhat.com>

	win32: translate virtual-key code to scancode via MapVirtualKey
	Local client keyboard layout shouldn't affect hardware scancode sent
	to guest, so that guest keyboard layout configuration can map it
	properly.

	Unfortunately, the Win32 GdkEventKey.hardware_keycode isn't a hardware
	scancode, but the Windows virtual-key code. We could modify Gdk to
	return the scancode (available in MSG.lParam or via global hook), but
	that would mean some Gdk breakage, or some unnecessary complexity.
	Instead, we can rely on MapVirtualKey(), which translates the
	vitual-key code into a scan code using current keyboard layout.

	This code is imported from SPICE-GTK

	Install hook for Windows key code handling
	To fix handling of AltGr keys on Windows displays, install a
	hook for Windows keycode handling. This is copied from code
	in SPICE-GTK

	https://bugzilla.gnome.org/show_bug.cgi?id=731825

	Support GTK Broadway backend
	Copy changes from SPICE-GTK which implemented support for
	GTK Broadway backend, with hacky keymapping.

	Fix initialization of gcrypt threading dependant on gnutls
	For GNUTLS 2.12, if it uses gcrypt, we must not initialize
	gcrypt threading ourselves.

	https://bugzilla.gnome.org/show_bug.cgi?id=734858

	Add support for Wayland and Xwayland keymap
	Both Wayland and Xwayland use the evdev + 8 map for keycodes,
	just as regular Xorg with evdev does.

	Disable -Wbad-function-cast for glib
	The glib atomic access macros cause compiler warnings when
	-Wbad-function-cast is in effect. There is no practical
	workaround so the warning must be disabled.

	Do an explicit check for libgcrypt
	We can no longer assume that any gnutls install will include
	libgcrypt, so we must do an explicit check for it at configure
	time.

2015-01-06  Fabiano Fidêncio  <fidencio@redhat.com>

	connection: adapt to libgcrypt >= 1.6
	From "gcrypt.h":

	> NOTE: Since Libgcrypt 1.6 the thread callbacks are not anymore used.
	> However we keep it to allow for some source code compatibility if used
	> in the standard way.

	build: disable -Wbad-function-cast
	Due to a change in glib headers, gtk-vnc build is broken:

	  In file included from /usr/include/glib-2.0/glib/gthread.h:32:0,
	                   from /usr/include/glib-2.0/glib/gasyncqueue.h:32,
	                   from /usr/include/glib-2.0/glib.h:32,
	                   from /usr/include/glib-2.0/gobject/gbinding.h:28,
	                   from /usr/include/glib-2.0/glib-object.h:23,
	                   from vncbaseaudio.h:24,
	                   from vncbaseaudio.c:25:
	  vncbaseaudio.c: In function 'vnc_base_audio_get_type':
	  /usr/include/glib-2.0/glib/gatomic.h:108:5: error: cast from function call of type 'long unsigned int' to non-matching type 'void *' [-Werror=bad-function-cast]
	       (gpointer) __atomic_load_8 ((atomic), __ATOMIC_SEQ_CST);                 \
	       ^
	  /usr/include/glib-2.0/glib/gthread.h:250:7: note: in expansion of macro 'g_atomic_pointer_get'
	       (!g_atomic_pointer_get (location) &&                             \
	         ^
	  /usr/include/glib-2.0/gobject/gtype.h:1697:7: note: in expansion of macro 'g_once_init_enter'
	     if (g_once_init_enter (&g_define_type_id__volatile))  \
	         ^
	  /usr/include/glib-2.0/gobject/gtype.h:1476:60: note: in expansion of macro '_G_DEFINE_TYPE_EXTENDED_BEGIN'
	   #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)     _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
	                                                              ^
	  vncbaseaudio.c:40:1: note: in expansion of macro 'G_DEFINE_TYPE_EXTENDED'
	   G_DEFINE_TYPE_EXTENDED(VncBaseAudio, vnc_base_audio, G_TYPE_OBJECT, 0,
	   ^
	  cc1: all warnings being treated as errors
	  make[3]: *** [libgvnc_1_0_la-vncbaseaudio.lo] Error 1
	  make[2]: *** [all] Error 2
	  make[1]: *** [all-recursive] Error 1
	  make: *** [all] Error 2

	For now, lets remove the -Wbad-function-cast from manywarnings.m4.

2014-10-29  Daniel P. Berrange  <berrange@redhat.com>

	Enable double buffering on GTK3

2014-10-07  Daniel P. Berrange  <berrange@redhat.com>

	Remove tab character

2014-10-07  Cole Robinson  <crobinso@redhat.com>

	Fixes these noisy errors on Fedora 21:
	gcc: warning: switch '-Wmudflap' is no longer supported

2014-10-07  Daniel P. Berrange  <berrange@redhat.com>

	Always send back pixel format message
	If operating in 8bpp colourmap mode, at least one, VNC server is
	known to not send the colourmap entries until after it receives
	the set pixel format message. So always send that message even
	if it is just matching the server's default.

2014-09-12  Christophe Fergeau  <cfergeau@redhat.com>

	Chain up to parent vfunc in VncDisplay::realize_event
	Without this, gtk-vnc will abort when establishing a VNC connection.
	This regression was introduced in 910c4d40e.

	https://bugzilla.gnome.org/show_bug.cgi?id=736560

2014-08-28  Christophe Fergeau  <cfergeau@redhat.com>

	Don't call into GDK when we don't have a GdkWindow yet
	In some situations, virt-viewer will call some gtk-vnc methods while
	the gtk-vnc widget is not realized. This means it has no associated
	GdkWindow and that it's not possible to do GDK calls on this widget.
	Some of these gtk-vnc were trying to call into GDK without checking
	this, causing runtime warnings such as:

	(virt-viewer:29150): Gdk-CRITICAL **: gdk_window_set_cursor: assertion
	'GDK_IS_WINDOW (window)' failed

	or

	(virt-viewer:20076): Gdk-CRITICAL **: gdk_window_get_width: assertion
	`GDK_IS_WINDOW (window)' failed

	(virt-viewer:20076): Gdk-CRITICAL **: gdk_window_get_height: assertion
	`GDK_IS_WINDOW (window)' failed

	  #0  g_logv (log_domain=0x3247a74066 "Gdk", log_level=G_LOG_LEVEL_CRITICAL,
	      format=<optimized out>, args=args@entry=0x7fffffffd1b0) at gmessages.c:1038
	  #1  0x0000003a97450eff in g_log (
	      log_domain=log_domain@entry=0x3247a74066 "Gdk",
	      log_level=log_level@entry=G_LOG_LEVEL_CRITICAL,
	      format=format@entry=0x3a974bee3a "%s: assertion '%s' failed")
	      at gmessages.c:1071
	  #2  0x0000003a97450f39 in g_return_if_fail_warning (
	      log_domain=log_domain@entry=0x3247a74066 "Gdk",
	      pretty_function=pretty_function@entry=0x3247a8a320 <__FUNCTION__.33032> "gdk_window_get_width",
	      expression=expression@entry=0x3247a74794 "GDK_IS_WINDOW (window)")
	      at gmessages.c:1080
	  #3  0x0000003247a35ed4 in gdk_window_get_width (window=0x0) at gdkwindow.c:6093
	  #4  0x00007ffff7dc5e73 in gdk_drawable_get_size (w=0x0, ww=0x7fffffffd2f0,
	      wh=0x7fffffffd2f4) at vncdisplay.c:140
	  #5  0x00007ffff7dcc183 in vnc_display_set_scaling (obj=0x9661e0 [VncDisplay],
	      enable=1) at vncdisplay.c:2446
	  #6  0x0000000000425555 in virt_viewer_display_vnc_new (
	      vnc=0x9661e0 [VncDisplay]) at virt-viewer-display-vnc.c:191
	  #7  0x00000000004241b3 in virt_viewer_session_vnc_disconnected (
	      vnc=0x9661e0 [VncDisplay], session=0x962560 [VirtViewerSessionVnc])
	      at virt-viewer-session-vnc.c:114
	  #8  0x0000003944a10747 in _g_closure_invoke_va (
	      closure=closure@entry=0x6d2480, return_value=return_value@entry=0x0,
	      instance=instance@entry=0x9661e0, args=args@entry=0x7fffffffd560,
	      n_params=0, param_types=0x0) at gclosure.c:831
	  #9  0x0000003944a299d7 in g_signal_emit_valist (instance=0x9661e0,
	      signal_id=<optimized out>, detail=0,
	      var_args=var_args@entry=0x7fffffffd560) at gsignal.c:3215
	  #10 0x0000003944a2a63f in g_signal_emit (instance=<optimized out>,
	      signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3363
	  #11 0x00007ffff7dc9a60 in on_disconnected (conn=0x975cc0 [VncConnection],
	      opaque=0x9661e0) at vncdisplay.c:1568
	  #12 0x0000003944a10747 in _g_closure_invoke_va (
	      closure=closure@entry=0x6d2190, return_value=return_value@entry=0x0,
	      instance=instance@entry=0x975cc0, args=args@entry=0x7fffffffd850,
	      n_params=0, param_types=0x0) at gclosure.c:831
	  #13 0x0000003944a299d7 in g_signal_emit_valist (instance=0x975cc0,
	      signal_id=<optimized out>, detail=0,
	      var_args=var_args@entry=0x7fffffffd850) at gsignal.c:3215
	  #14 0x0000003944a2a63f in g_signal_emit (instance=<optimized out>,
	      signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3363
	  #15 0x00007ffff7ba419c in do_vnc_connection_emit_main_context (
	      opaque=0x7fffed16ef40) at vncconnection.c:578
	  #16 0x0000003a97449c3a in g_main_dispatch (context=0x68d280) at gmain.c:3064
	  #17 g_main_context_dispatch (context=context@entry=0x68d280) at gmain.c:3663
	  #18 0x0000003a97449f88 in g_main_context_iterate (context=0x68d280,
	      block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
	      at gmain.c:3734
	  #19 0x0000003a9744a25a in g_main_loop_run (loop=0x74c560) at gmain.c:3928

	https://bugzilla.gnome.org/show_bug.cgi?id=734348

2014-04-02  Praveen Illa  <mail2ipn@gmail.com>

	updated Telugu translation

	Added Language code te to LINGUAS file

2014-02-07  GunChleoc  <fios@foramnagaidhlig.net>

	Updated Scottish Gaelic translation

	Added Scottish Gaelic translation

2014-01-30  Daniel P. Berrange  <berrange@redhat.com>

	Fix dep on Gtk-3 GIR file
	Related to 423495e6e1cbf5936639e6b68c6cefe4fdadd368 which
	only fixed it for GTK-2

2014-01-29  Daniel P. Berrange  <berrange@redhat.com>

	Display warnings when running g-ir-scanner

	Release held keys upon grab_notify event
	gtk may propagate some press event up to the Spice display widget, but
	a widget may take focus and grab the release event, so the guest will
	keep seeing the key pressed.

	Releasing the keys when the grab is taken solves two menu-related bugs:

	  https://bugzilla.redhat.com/show_bug.cgi?id=820829
	  https://bugzilla.redhat.com/show_bug.cgi?id=924577

	This is based on a spice-gtk fix:

	  http://lists.freedesktop.org/archives/spice-devel/2013-May/013351.html

2014-01-28  Daniel P. Berrange  <berrange@redhat.com>

	Add missing dep on Gtk introspection GIR
	https://bugzilla.gnome.org/show_bug.cgi?id=723009

2014-01-23  Daniel P. Berrange  <berrange@redhat.com>

	Fix parallel build of introspection gir files
	Add deps between build targets for gir files and use the
	--include-uninstalled option to deal with dependancies.

2013-12-31  Daniel P. Berrange  <dan@berrange.com>

	Remove use of deprecated GTK_STOCK_OK/GTK_STOCK_CANCEL

2013-12-31  Koop Mast  <kwm@rainbow-runner.nl>

	Rework introspection support so it works on FreeBSD.
	Based on the following documentation.

	https://wiki.gnome.org/Projects/GObjectIntrospection/AutotoolsIntegration

	Add stddef.h for size_t on FreeBSD.

2013-12-31  Christophe Fergeau  <cfergeau@redhat.com>

	sasl: Fix auth when using the PLAIN method
	sasl_client_start() can return SASL_OK, in which case calling
	sasl_client_step() returns an error. If sasl_client_start() returned
	SASL_OK and the remote told us auth is complete, we can break out of the
	stepping loop early.
	The upstream documentation is not very explicit about what to do when
	sasl_client_start() returns SASL_OK but this was clarified by
	http://asg.andrew.cmu.edu/archive/message.php?mailbox=archive.cyrus-sasl&msg=10104

	This is based on the libvirt patch

	  commit 0955025b9cdb734293adfae09be1fdae231d7a73
	  Author: Christophe Fergeau <cfergeau@redhat.com>
	  Date:   Thu Nov 21 18:40:52 2013 +0100

	    sasl: Fix authentication when using PLAIN mechanism

	https://bugzilla.gnome.org/show_bug.cgi?id=712820

2013-09-18  Daniel P. Berrange  <berrange@redhat.com>

	Update for 0.5.3 release

	Fix generation of ChangeLog with VPATH build

	Remove trailing whitespace

	Only put examples in gtk3 based devel RPM
	The example programs which use introspection are only compatible
	with GTK3, so should be in gtk-vnc2-devel rather than gtk-vnc-devel

	Remove execute permission from example programs in RPM
	Avoid getting pointless RPM deps by removing the execute
	permission from the example programs.

	Add explicit dep on libgcrypt-devel RPM
	gnutls-devel no longer pulls in libgcrypt-devel since the
	switch to use nettle.

2013-09-17  Daniel P. Berrange  <berrange@redhat.com>

	Block all accelerators when grabbing keyboard
	Prevent any global accelerators from activating in the
	gvncviewer demo program when keyboard grab is active

	  https://bugzilla.gnome.org/show_bug.cgi?id=594571

	Don't ungrab pointer on leave-notify events
	If we ungrab the pointer on leave-notify events, this breaks
	the automatic grabs when a button is pressed in absolute pointer.
	A symptom of this is that if you press to start highlighting text
	in a gedit window in a server, and move the mouse outside the VNC
	widget and release the button, the server will never see the mouse
	up event. We must preserve grabs upon button press so that the
	VNC server always sees the eventual release events.

	https://bugzilla.gnome.org/show_bug.cgi?id=664567

	Don't drop mouse events that are out of bounds
	In absolute mode, if the mouse cursor goes outside the bounds
	of the window, we drop the motion event entirely. This is bad
	because only one of the co-ordinates may be out of bounds, and
	the server still wants to see movement in the other axis. Instead
	of dropping the events, just clamp co-ordinates to the boundary.

2013-09-16  Doug Goldstein  <cardoe@cardoe.com>

	Fix typo in NO_UNDEFINED_FLAGS name
	Fix typo in the configuration of the NO_UNDEFINED_FLAGS name for Cygwin.

	test for --no-undefined linker flag
	Currently the code assumes that all non-Windows like platforms have a
	linker that supports --no-undefined, however llvm based compilers do not
	support this on Linux or Mac OS X, so instead test for it and only
	use if it is available.

2013-09-16  Daniel P. Berrange  <berrange@redhat.com>

	Reset 'blocking' flag after I/O wait
	If the 'vnc_connection_read_wire' goes into an I/O wait
	due to blocking I/O, the 'blocking' flag gets set to
	true. Upon returning from the wait, it jumps back to
	the start of the function, but does not reset the 'blocking'
	flag to false. If the I/O attempt succeeds, this doesn't
	matter, but if it fails for an error reason, this gets
	mistakenly treated as blocking I/O again.

	This is seen most often when the remote server drops the
	connection. If the client was blocking on I/O at this
	time, it could get into a potentially infinite loop.

	  https://bugzilla.gnome.org/show_bug.cgi?id=704098

2013-09-13  Daniel P. Berrange  <berrange@redhat.com>

	Only trigger grab sequence upon release
	GTK-VNC uses the keyboard shortcut ctrl+alt to toggle inside/outside
	the VM (aka release pointer). Now Gnome uses ctrl+alt+arrow_key to
	switch virtual desktops. So these two shortcuts collide and gtk-vnc
	will grab the key presses as soon as ctrl+alt is pressed and toogle
	inside/outside the VM, which makes switching desktops impossible.

	The solution is to only trigger the grab sequence when the user
	releases the key. So if they press Ctrl+alt and then release it,
	we trigger, but if they press Ctrl+alt+left-arrow we don't trigger

	https://bugzilla.gnome.org/show_bug.cgi?id=685257

2013-09-13  Artem Rusanov  <artem.rusanov@gmail.com>

	Make handling of ZRLE encoding more efficient
	Avoid memmove() on the uncompressed data buffer when dealing
	with ZRLE encoding. Instead just track what offset we've read
	upto.

2013-09-13  Daniel P. Berrange  <berrange@redhat.com>

	Free coroutine stack when releasing coroutine
	The coroutine_init function mmap's a stack for the
	ucontext coroutine, but nothing ever munmaps it.

	Abort if mmap of coroutine stack fails
	If we fail to mmap the stack, abort the processs rather
	than returning an error. This is standard practice in
	glib apps, and the caller was not checking the
	coroutine_init() return code leading to memory corruption.

2013-05-20  Marc-André Lureau  <marcandre.lureau@gmail.com>

	connection: timeout connect() after 10s
	It can take a minute or so before the connect() fails. Add an explicit
	shorter timeout of 10s.

	https://bugzilla.gnome.org/show_bug.cgi?id=700240

2013-05-20  Lei Li  <lilei@linux.vnet.ibm.com>

	Add support for LED state extension to gvnc
	Support the QEMU LED state extension

2013-03-19  Enrico Nicoletto  <enriconlto@src.gnome.org>

	Added Tajik language on LINGUAS

2013-03-19  Victor Ibragimov  <victor.ibragimov@gmail.com>

	Updated Tajik translation

2013-02-22  Daniel P. Berrange  <berrange@redhat.com>

	Update for 0.5.2 release

	Delete browser plugin
	The plugin code has been unmaintained for years and almost
	certainly has security problems. A pure HTML5 solution like
	noVNC is a far better approach to browser support for VNC.

	Update RPM specs for F19 changes

	Add perl example to RPM spec

	Add python example using introspection

	Add vnc_grab_sequence_get_nth
	To allow introspected bindings to get access to keysyms, add
	a vnc_grab_sequence_get_nth method

	Rename gvncviewer.py to gvncviewer-bindings.py

	Convert VncConnectionCredential to VncDisplayCredential
	When forwarding the auth signal from VncConnection to consumers
	of VncDisplay, the VncConnectionCredential enums must be turned
	into VncDisplayCredential enums

2013-01-31  Daniel P. Berrange  <berrange@redhat.com>

	Fix conditionals in gvncviewer example

	Auto-generate AUTHORS file from GIT logs
	Rather than trying to manually keep track of authors,
	just auto-generate the list from GIT logs

	Add missing 'default' case to switch statement

	Disable deprecation warnings
	Glib deprecated GValueArray in favour of GArry

	  gvncviewer.c:450:9: warning: ‘g_value_array_get_nth’ is deprecated (declared at /usr/include/glib-2.0/gobject/gvaluearray.h:65): Use 'g_array_index' instead [-Wdeprecated-declarations]

	Unfortunately these types are not ABI compatible. eg
	compare the field orders

	  struct GValueArray {
	    guint   n_values;
	    GValue *values;
	  };

	vs

	  struct GArray {
	    gchar *data;
	    guint len;
	  };

	So the replacement can't be used without a change in API
	and ABI. This is unacceptable, so the deprecation warniings
	must be disabled :-(

	Avoid crash with unsupported audio formats
	Currently if the VNC server sends an unsupported audio format,
	we skip creating the pulse audio instance. When we later receive
	audio data from QEMU we crash on this NULL instance. Instead we
	should simply discard the audio data. Also log a warning if we
	get a format we can't supported

	https://bugzilla.gnome.org/show_bug.cgi?id=679283

2013-01-31  Cole Robinson  <crobinso@redhat.com>

	Fix enabling pulseaudio bits in gvncviewer
	The gvncviewer.c file used a HAVE_PULSEAUDIO conditional,
	but this was only defined for make and not in config.h

	Add introspection annotation for vnc_display_send_keys
	The vnc_display_send_keys method signature is too complex
	to be interpreted correctly without some annotations.

	https://bugzilla.gnome.org/show_bug.cgi?id=691821

2012-12-07  Daniel P. Berrange  <berrange@redhat.com>

	Avoid use of uninitialized variables in password echo prompt

	Remove bogus check for 'conn' being null in vnc_connection_is_open

	Fix size check on available write buffer space
	The vnc_connection_write() function did not consider the current
	write offset when calculating how much space was available in
	the write buffer. This could lead to an array overrun.

	Avoid array overrun setting up blt24 function
	If a VNC colourmap mode was enabled, we would attempt to access
	beyond the end of the blt24 function table. There are no blt
	functions that can work for this mode, so just stub out the
	array with NULL, and add a later check for NULL.

	Fix missing check for OOM in python binding by s/malloc/g_new0/

	Fix NULL dereference in debug logging on socket read error

	Replace strncpy with memcpy in VNC password code
	Using strncpy for the VNC key makes coverity worried about
	unterminated strings. Switch to use memcpy to keep it
	happier

2012-12-04  Marc-André Lureau  <marcandre.lureau@gmail.com>

	win32: fix quote key handling
	Fix keymaps to correctly handle the quote key.

	https://bugzilla.gnome.org/show_bug.cgi?id=686177

	Fix invalid array size
	Avoid further out of bound access.
	Also simplify other code using G_N_ELEMENTS.

	https://bugzilla.gnome.org/show_bug.cgi?id=686178

2012-12-04  Christophe Fergeau  <cfergeau@redhat.com>

	spec: Tarballs are now in .xz format
	https://bugzilla.gnome.org/show_bug.cgi?id=689101

	spec: Use %global instead of %define
	https://bugzilla.gnome.org/show_bug.cgi?id=689101

	spec: Fix GTK2 typo in description of gtk3 package
	https://bugzilla.gnome.org/show_bug.cgi?id=689101

2012-12-04  Adam Jackson  <ajax@redhat.com>

	cairo: Fix framebuffer setup on big-endian
	Without this, big-endian machines would over-swizzle.

2012-11-09  Yaron Shahrabani  <sh.yaron@gmail.com>

	Added he.

	Updated Hebrew translation.

2012-10-17  Мирослав Николић  <miroslavnikolic@rocketmail.com>

	Added Serbian translation

2012-09-04  Piotr Drąg  <piotrdrag@gmail.com>

	Updated Polish translation

2012-09-04  Daniel P. Berrange  <berrange@redhat.com>

	Call ldconfig from gvnc/gvncpulse/gtk-vnc2 %post/%postun

	Add missing deps on gvnc package from gtk-vnc/gtk-vnc2

2012-07-12  Daniel P. Berrange  <berrange@redhat.com>

	Fix check for Text::CSV in configure.ac

2012-07-09  Daniel P. Berrange  <berrange@redhat.com>

	Updates for 0.5.1 release

	Add support for connecting to GSocketAddress instances
	To improve UNIX domain socket support, add the ability to open
	a GSocketAddress instance. Pass the 'hostname' with the addr
	for the purposes of SASL/TLS hostname verification. Also add
	another method for opening a FD which accepts a hostname, again
	for SASL/TLS hostname verification when using a tunnelled
	socket

2012-07-02  Daniel P. Berrange  <berrange@redhat.com>

	Remove use of hardcoded constants
	Currently code which sends/receives client/server messages uses
	hardcoded constants for message types. Replace these with a bunch
	of enums for clarity

	Fix mistaken use of g_object_unref instead of gdk_cursor_unref

2012-06-27  Daniel P. Berrange  <berrange@redhat.com>

	Add Rūdolfs Mazurs to AUTHORS

2012-06-27  Rūdolfs Mazurs  <rudolfsm@src.gnome.org>

	Added Latvian translation

2012-06-21  Christophe Fergeau  <cfergeau@redhat.com>

	build: allow building with newer glibc-headers and -O0
	Commit log and autoconf snippet written by Eric Blake for libvirt.

	glibc 2.15 (on Fedora 17) coupled with explicit disabling of
	optimization during development dies a painful death:

	In file included from /usr/include/limits.h:27:0,
	                 from /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include/limits.h:169,.
	                 from /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include/syslimits.h:7,
	                 from /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include/limits.h:34,
	                 from util/bitmap.c:26:
	/usr/include/features.h:314:4: error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]
	cc1: all warnings being treated as errors

	Work around this by only conditionally defining _FORTIFY_SOURCE,
	in the case where glibc can actually use it.  The trick is using
	AH_VERBATIM instead of AC_DEFINE.

	* m4/gtk-vnc-warnings.m4 (LIBOSINFO_COMPILE_WARNINGS): Squelch
	_FORTIFY_SOURCE when needed to avoid glibc #warnings.

	https://bugzilla.gnome.org/show_bug.cgi?id=678014

2012-06-21  Alban Browaeys  <prahal@yahoo.com>

	gir: link against builddir libgvnc (pulse and gtkvnc)
	Linking against builddir gnv fixes GVncPulse generation.
	Done also against GtkVnc for completness.

2012-06-21  Daniel P. Berrange  <berrange@redhat.com>

	Add compat macro for g_mutex_new|free with glib >= 2.31

	Fix triplet for mingw64 64-bit builds in autobuild.sh

2012-06-20  Daniel P. Berrange  <berrange@redhat.com>

	Add Andika Triwidada to AUTHORS

2012-06-15  Andika Triwidada  <andika@gmail.com>

	Added Indonesian translation

2012-05-04  Daniel P. Berrange  <berrange@redhat.com>

	Avoid some deprecation warnings from GTK3 about device grabs
	Temporary workaround to avoid deprecation warnings from GTK3
	about device grabs. Currently this just emulates existing
	behaviour of grabbing all devices, but in the future should
	be fine tuned to only grab specific devices

	Fix constness wrt g_getenv

	Switch to use mingw64 toolchain for cross-compiles

2012-04-27  Daniel P. Berrange  <berrange@redhat.com>

	Fix introspection of key grab APIs

	Update specfile for RHEL-7

2012-04-26  Daniel P. Berrange  <berrange@redhat.com>

	Replace getenv/setenv with g_getenv/g_setenv for Win32 portability

2012-04-25  Daniel P. Berrange  <berrange@redhat.com>

	Ensure debugging works on GLib >= 2.32

	Use g_object_unref instead of gdk_pixbuf_unref

2012-04-06  Alexandre Rostovtsev  <tetromino@gentoo.org>

	configure: make pulseaudio detection non-automagic
	This is to allow building gtk-vnc on a system with pulseaudio and then
	deploying on a system without pulseaudio.

	https://bugzilla.gnome.org/show_bug.cgi?id=673570

2012-04-05  Daniel P. Berrange  <berrange@redhat.com>

	Add Fabiano Fidêncio to AUTHORS

2012-03-29  Fabiano Fidêncio  <fabiano@fidencio.org>

	Add check for Perl::Text::CSV if building from GIT

2012-03-19  Daniel P. Berrange  <berrange@redhat.com>

	Add Sasi Bhushan Boddepalli <sasi@swecha.net> to AUTHORS

2012-03-16  Sasi Bhushan Boddepalli  <sasi@swecha.net>

	Updated Telugu Translations

2012-03-16  Sasi Bhushan  <sasi@swecha.net>

	Added new language Telugu translation

2012-03-13  Daniel P. Berrange  <berrange@redhat.com>

	Add Alexandre Rostovtsev to AUTHORS

2012-03-13  Alexandre Rostovtsev  <tetromino@gentoo.org>

	tools/gvnccapture: unbreak pod syntax
	For pod, the presence or absence of leading whitespace is significant.

	https://bugzilla.gnome.org/show_bug.cgi?id=667943

2012-03-13  Daniel P. Berrange  <berrange@redhat.com>

	Ensure syntax-check files are included in dist

	Change the way header files are handled by automake
	Switch over to using the official _HEADERS target against the
	library, instead of doing it manually. This helps automake
	with VPATH builds

2012-02-17  Daniel P. Berrange  <berrange@redhat.com>

	Add GVNCPULSE_VERSION_FILE to BUILT_SOURCES

	Remove duplicated AC_SUBST var in configure.ac

2012-02-10  Daniel P. Berrange  <berrange@redhat.com>

	Fix autobuild flags

	Replace #if HAVE_SASL with #ifdef HAVE_SASL

	Import GNULIBs GCC warning module
	Replace hand-written warning checks with GNULIB module

	Misc code fixes to vncconnectionc.
	 - Add default cases for switch statements
	 - Replace #if with #ifdef for DEBUG check
	 - Reduce excessive stack usage

	Update to use modern function decl style

2011-12-21  Daniel P. Berrange  <berrange@redhat.com>

	Update for 0.5.0 release

2011-12-21  Marc-André Lureau  <marcandre.lureau@gmail.com>

	windows: fix broken left shift
	On Windows, the received key when pressing left shift is VK_SHIFT 0x10
	Patch from spice-gtk

	https://bugzilla.gnome.org/show_bug.cgi?id=666171

2011-12-21  Christophe Fergeau  <cfergeau@redhat.com>

	properly free xkbDesk
	valgrind detects a memory leak if it's not freed using
	xkbFreeKeyboard.

2011-12-21  Daniel P. Berrange  <berrange@redhat.com>

	Fix some more indentation mistakes

2011-12-15  Daniel P. Berrange  <berrange@redhat.com>

	Update AUTHORS file

	Add support for '--system' arg to autogen.sh

	Add --pkg statements for all external libs needed in build
	Ensure g-ir-scanner adds -I and -L flags for all external
	libraries required to build

2011-12-13  Christophe Fergeau  <cfergeau@redhat.com>

	Include locale.h in gvnccapture.c
	It uses setlocale and LC_ALL, without this header compilation fails
	on RHEL 6.2

	More fixing for gir generation
	I missed the new GVncPulse.gir file in the previous fix

	Fix GIR generation
	Overriding PKG_CONFIG_PATH when generating GtkVnc-2.0.gir is
	wrong since this means that if glib/... is installed in a prefix that
	is not one of the default pkg-config paths, then it won't be found.
	PKG_CONFIG_PATH is overridden so that g-ir-scanner can find GVnc-1.0.gir
	in the build tree. Since g-ir-scanner provides --include-uninstalled
	for that purpose, use that instead.

2011-12-11  Daniel P. Berrange  <berrange@redhat.com>

	Update AUTHORS file

2011-12-11  Daniel Korostil  <ted.korostiled@gmail.com>

	Added uk translation

2011-12-09  Daniel P. Berrange  <berrange@redhat.com>

	Import GNULIB framework for checking code style / rules
	Add a new 'make syntax-check' rule which validates some
	aspects of coding style. This is imported from GNULIB

	Remove trailing whitespace at end of lines

	Ensure <config.h> is always the first header included

	Remove redundant 'const' annotations

	use "test C1 && test C2", not "test C1 -a C2" etc

	Remove trailing blank lines from COPYING.LIB

	Remove use of @FOO@ syntax from Makefile.am in favour of $(FOO)

	Ensure vars are fully quoted in configure.ac

	Fix mistakes in copyright header

	Update authors file & add a mailmap for non-primary addrs

	Ensure gvnccapture calls bindtextdomain to setup localization

	Remove useless if before free

	Change debug function into a null macro

	Death to tabs
	Remove all tabs, change indentation level to 4 spaces. Add
	emacs magic to files which were missing it. Reindent all
	files with new rules

	Batch up incoming audio samples for upto 100ms
	The length of samples received from the guest can be very
	small (as little as 1 sample). If this is dispatched directly
	to the audio sink this can cause excessive CPU consumption
	and context switching. Batch up incoming data for upto 100ms
	until dispatching it

	Convert connection over to use audio objects
	* src/vncconnection.c, src/vncconnection.h: Convert to use
	  VncAudio, VncAudioFormat & VncAudioSample objects
	* examples/Makefile.am, examples/gvncviewer.c: Convert to
	  use new API & pulse audio object impl
	* src/vncmarshal.txt: Remove unused marshaller

	Make decoding of audio extension more robust
	Add checks for unknown QEMU messages and crazy sized audio
	data packets

	Remove all audio APIs from VncDisplay since we expose the connection
	Now that there is a vnc_display_get_connection() method there is
	no need to duplicate all the audio APIs & signals in the VncDisplay
	class

	Fix compiler warning in gvnccapture.c
	Recent GCC warn about assignments to variables which are then
	not used.

	Introduce pulse audio bridge for GVnc
	Introduce a new library libgvncpulse-1.0.so which provides an
	implementation of VncAudio that uses Pulse Audio for output

	* Makefile.am, gvncpulse-1.0.pc.in: Add pkgconfig file for
	  libgvncpulse
	* gtk-vnc.spec.in: Add gvncpulse & gvncpulse-devel sub-RPMS
	* src/Makefile.am, src/gvncpulse.h, src/libgvncpulse_sym.version
	  Add gvncpulse-1.0 library
	* src/vncaudiopulse.c, src/vncaudiopulse.h: Pulse audio
	  impl of VncAudio
	* vapi/Makefile.am: Build vala binding for pulse audio

	Introduce a basic impl of audio handler
	Introduce a basic implementation of the audio handler which
	emits a signal for each method. This enables apps to support
	audio playback without needing to create subclasses. It also
	isolates subclasses from extensions in the interface

	* src/Makefile.am, src/libgvnc_sym.version,
	  src/vncbaseaudio.c, src/vncbaseaudio.h: Introduce basic
	  audio handler

	Introduce an interface for handling audio data
	Define a new interface VncAudio which is used to handle playback
	of audio data

	* src/Makefile.am, src/libgvnc_sym.version,
	  src/vncaudio.c, src/vncaudio.h: Add interface for handling
	  audio data

	Introduce a basic data type for audio samples
	To avoid having to pass around all the parameters individually,
	introduce a boxed data type for audio samples

	* src/Makefile.am, src/libgvnc_sym.version,
	  src/vncaudiosample.c, src/vncaudiosample.h: Boxed type for
	  audio samples

	Introduce a basic data type for audio formats
	To avoid having to pass around all the parameters individually,
	introduce a boxed data type for audio formats

	* src/Makefile.am, src/libgvnc_sym.version,
	  src/vncaudioformat.c, src/vncaudioformat.h: Boxed type for
	  audio formats

2011-12-09  Steven Carr  <Steven.Carr@scaa-usa.com>

	Introduce support for the VNC audio tunnel extension
	Add support for handling VNC audio extension and a pulse
	audio implementation to the gvncviewer.c

	* src/vncconnection.c, src/vncconnection.h: Handle VNC
	  audio extension
	* src/vncdisplay.c, src/vncdisplay.h: Passthrough audio
	  control to connection
	* src/vncmarshal.txt: New signal types
	* examples/gvncviewer.c, examples/Makefile.am: Pulse
	  audio impl
	* configure.ac: Check for pulse audio

2011-12-09  Daniel P. Berrange  <berrange@redhat.com>

	Add a 'connection' property to VncDisplay class
	Allow apps access to the VncConnection behind the VncDisplay
	instance, by adding a property and a getter API

	* src/vncdisplay.c: Add a 'connection' property to allow
	  apps to get the VncConnection object

	Adapt to avoid deprecated gnutls functions
	Switch to using gnutls_priority_set_direct on newer GNUTLS

2011-11-18  Algimantas Margevičius  <gymka@mail.ru>

	Added Lithuanian translation

2011-11-10  Daniel P. Berrange  <berrange@redhat.com>

	Misc RPM specfile fixes

	Add Perl example program using GTK3

	Update NEWS for 0.4.4 release

2011-11-04  Daniel P. Berrange  <berrange@redhat.com>

	Update automated build to test both GTK2 and GTK3

	Add rules for building GTK3 library on mingw32

	Fix GTK3 build on mingw32
	The mingw32 linker does not like .def files with symbols which
	do not exist. Filter out the vnc_image_framebuffer* symbols.
	Also ensure the python module generated files are not included
	in the dist

2011-11-02  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Fix introspection of vnc_display_get_pixbuf()

2011-10-31  Daniel P. Berrange  <berrange@redhat.com>

	Add vala files to RPM spec

2011-10-28  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>

	Specify location of pkg-config files to gir scanner
	Fixes fresh build (when gtk-vnc isn't already installed).

	Specify GIR directory to vapigen

	Disable VAPI generation for gtk+ 2.0
	Disable vala checks and binding generation by default when building
	against gtk 2.0.

2011-10-26  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>

	Post release version bump
	This is needed so apps depending on git master can require the correct
	version at 'configure' time.

2011-10-26  Marc-André Lureau  <marcandre.lureau@gmail.com>

	Add vapi bindings generation
	https://bugzilla.gnome.org/show_bug.cgi?id=662708

2011-09-24  Stanislav Petrek  <stanislav.petrek@gmail.com>

	Added Slovak translation

2011-07-30  Seong-ho, Cho  <darkcircle.0426@gmail.com>

	Add Korean translation

2011-07-12  Daniel P. Berrange  <berrange@redhat.com>

	Fix leak of string list when parsing grab sequence string

2011-07-11  Guido Günther  <agx@sigxcpu.org>

	Explicitly link gvncviewer against GTK + libgvnc

2011-07-01  Marc-André Lureau  <marcandre.lureau@redhat.com>

	gtk maps LAlt & LCtrl to Alt and Ctrl keycode, but they are missing from keymaps.csv

2011-06-04  Kristjan SCHMIDT  <kristjan.schmidt@googlemail.com>

	Add Esperanto translation

2011-05-05  Muhammet Kara  <muhammet.k@gmail.com>

	Added Turkish translation

2011-04-14  Daniel P. Berrange  <berrange@redhat.com>

	Fix missing OS-X keymapping for letter 'A'
	The keymap-gen.pl script was not correctly distinguishing
	keycodes with a value of '0', from undefined keycodes. All
	were skipped. This meant that the mapping for OS-X ANSI_A
	key was lost (since it has value 0).

	For similar reasons the XQuartz mapping for the letter A
	was also lost.

	* src/keymap-gen.pl: Fix handling of 0 vs undef for keycodes
	* src/keymaps.csv: Remove bogus 0x0 entry in OS-X keymap

	Tweak logging messages for TLS auth sub-types

2011-02-18  Daniel P. Berrange  <berrange@redhat.com>

	Update for 0.4.3 release
	* NEWS: List of changes
	* README: Remove note about GTK3 being experimental
	* configure.ac: Update version & GTK3 required version
	* gtk-vnc.spec.in: Remove bogus changelog

	Remove some unused variables in VncConnection
	* src/vncconnection.c: Remove unused vars

2011-01-28  Daniel P. Berrange  <berrange@redhat.com>

	Make pointer warp check more robust
	The pointer warp code checks whether the local cursor
	is hitting a boundary == 0, ==width, or ==height. This
	is slightly too strict, it should check <= 0, >= width
	or >= height

	* src/vncdisplay.c: Make boundary check more robust

	Fix warning about unused 'dpy' variable in keymap code
	In GTK2 paths, GDK_IS_*_DISPLAY(dpy) evaluated to '1'
	which meant 'dpy' could be unused. Change it to eval
	to 'dpy == dpy' to trick compiler into thinking the
	variable is in use.

	* src/vncdisplaykeymap.c: Fix warning of unused variable

2011-01-14  George Stefanakis  <george.stefanakis@gmail.com>

	Updated Greek translation

2011-01-13  Sébastien Granjoux  <seb.sfo@free.fr>

	Fix setup of 'shared flag' when opening connection
	The VncDisplay class forgot to pass the 'shared flag' onto
	the VncConnection class when establishing a connection

2011-01-13  Daniel P. Berrange  <berrange@redhat.com>

	Refactor keymap handling to cope with multiple GDK backends
	In GTK3 it is possible to have multiple GDK backends present.
	The vncdisplaykeymap code needs a minor refactoring to cope
	with this enhancement. The refactoring also trivially maintains
	GTK2 compat

2011-01-05  Akom Chotiphantawanon  <knight2000@gmail.com>

	Added Thai translation.

2010-12-14  Daniel P. Berrange  <berrange@redhat.com>

	Fix leak of GSource objects which causes performance problems
	The GLib event loop scales poorly as the number of GSource objects
	increases. A missing unref on the GSource objects used in the VNC
	connection meant that many unused instances accumulated, slowing
	down the event loop processing.

	* src/vncconnection.c: Unref all GSource objects

2010-12-09  Daniel P. Berrange  <berrange@redhat.com>

	Adapt to avoid further Gtk3 changes
	More gdk_drawable calls have gone away in Gtk3. Adapt code to avoid
	needing to use them, by calling gtk_widget APIs instead.

2010-11-29  Daniel P. Berrange  <berrange@redhat.com>

	Re-introduce a server side Pixmap to cache framebuffer
	Despite use of clipping during drawing, rendering directly
	from the client side cairo image, to the window incurred
	a serious performance penalty for some users' X servers.
	Re-introduce a server side copy of the VNC desktop using
	a cairo surface, backed by an X Pixmap. This uses cairo
	APIs directly, avoiding any need for GdkPixmap.

	Remove check for Text::CSV
	Revert the check for Text::CSV added in

	  753ddcb203fd9ad26829a065fd4d47c82773e849

	Since the keymap files are now included in EXTRA_DIST, there
	is no requirement fo Text::CSV at end user build time. Only
	maintainers required the Text::CSV file when generating a
	new dist.

2010-11-29  Daniel P. Berrange  <dan@berrange.com>

	Fix framebuffer update boundary check
	Framebuffer boundary checks need to take into account offset,
	in addition to width/height

	* src/vncconnection.c: Fix boundary check

	Avoid crash in TLS cleanup code on shutdown
	The gnutls_bye() method may try to send data on the socket todo
	graceful TLS shutdown. The priv->sock variable is possibly
	already NULL at this point if the close was triggered via the
	vnc_connection_shutdown() method. Change the latter so that
	it only calls g_socket_close, not actually free'ing the
	priv->sock object immediately. Also put sanity check code in
	the TLS push/pull functions to catch future bugs in this area

	Distribute built keymap files
	Avoid the need for end users to have the Perl Text::CSV module
	installed, by including the pre-generated keymap source files
	in the dist.

	* gtk-vnc.spec.in: Remove dep on perl(Text::CSV)
	* src/Makefile.am: Include keymaps in dist

	Avoid crash in motion event & vnc_display_get_pixbuf
	If a mouse event occurs before a connection completes setup
	priv->fb will be NULL and a crash can occur. Likewise if
	vnc_display_get_pixbuf() is called before priv->fb is set,
	then a crash occurs. Add checks for NULL in both cases

2010-11-26  Jonh Wendell  <jwendell@gnome.org>

	check for Text::CVS perl module in configure. closes #634621

2010-11-05  Daniel P. Berrange  <berrange@redhat.com>

	Update NEWS/README/configure.ac  for 0.4.2 release
	* NEWS: List of new features/bugs fixed
	* README: Expand on GTK3 notes
	* configure.ac: Increase version number

2010-11-03  Daniel P. Berrange  <berrange@redhat.com>

	Fix data type of arg to cut-text signal in VncConnection
	The vnc-server-cut-text signal is marshalled by

	  g_cclosure_marshal_VOID__STRING

	so its argument must be a 'const char *', not a 'GString *'
	datatype.

	* src/vncconnection.c: Fix data type for cut-text signal arg

2010-10-29  Carles Ferrando  <carles.ferrando@gmail.com>

	Added Catalan (Valencian) translation

2010-10-29  Kjartan Maraas  <kmaraas@gnome.org>

	Add nb

	Updated Norwegian bokmål translation.

2010-10-28  Daniel P. Berrange  <berrange@redhat.com>

	Enable building of a sub-RPM for gtk3
	Allow a single RPM to build both gtk2 and gtk3 libraries

	* gtk-vnc.spec.in: Add gtk-vnc2 sub-RPM for gtk3 binaries

	Cope with building against newer gobject-introspection
	Newer gobject-introspection wants --symbol-prefix and
	--identifier-prefix instead of --strip-prefix. Test
	for such a version and use the new style options if
	appropriate

	* configure.ac: Check for new gobject introspection
	* src/Makefile.am: Adapt to g-ir-scanner flags

	Fix rendering artifacts when running in scaling mode
	The expose region was not large enough when running in scaling mode
	resulting in horizontal & vertical line artifacts when moving
	windows around on the virtual desktop. The previous fix used in
	Gtk2 was not sufficient for Gtk3, so change the fix to be entirely
	within the on_framebuffer_update handler

	* src/vncdisplay.c: Hack to fix rendering artifacts

	Add compat macro for GDK_DISPLAY
	The GDK_DISPLAY macro is removed in Gtk3, add a compatibility
	macro to allow build with Gtk2 and Gtk3

	* src/vncdisplaykeymap.c: Add GDK_DISPLAY compat

	Add compatability code for GDK symbolic keys
	The GDK key macros were changed from GDK_ to GDK_KEY_ in GTK3.
	Add some compatibility #ifdefs to allow the same macros to be
	used on both Gtk2 and Gtk3.

	* examples/gvncviewer.c: Add GDK_KEY compat
	* src/vncdisplaykeymap.c: Add GDK_KEY compat

2010-10-27  Daniel P. Berrange  <berrange@redhat.com>

	Refactor drawing code to allow compatibility with Gtk3
	In Gtk3, the expose_event is replaced with a 'draw' callback.
	This is provided with a 'cairo_t' context that is already
	configured with the clip region.

	Split the current expose_event into two parts, the first
	which creates a cairo_t based on the GdkEventExpose data,
	and the second method which draws to that cairo_t. The
	expose_event is conditionally disabled for Gtk3 builds,
	just leaving the draw method which works on Gtk2 and Gtk3

	* src/vncdisplay.c: Pull drawing code out of expose_event
	  method and disable expose_event on Gtk3

	Remove the server side framebuffer cached in GdkPixmap
	For rendering efficiency a GdkPixmap was kept on the server
	duplicating what was in the old GdkImage object on the client
	side. The client was changed to use a cairo image surface.
	This can easily be rendered straight to the window and does
	not appear to have any performance degradation. Thus the
	GdkPixmap can be eliminated, avoiding the extra memory usage
	that entails

	* src/vncdisplay.c: Remove the GdkPixmap copy of the framebuffer

	Change cursor to use GDK_BLANK_CURSOR instead of a GdkPixmap
	The GdkPixmap class has been removed in GTK3. Since Gtk 2.16
	there is a standard GDK_BLANK_CURSOR which can replace their
	usage and works across Gtk 2 and 3.

	* src/vncdisplay.c: Use GDK_BLANK_CURSOR

2010-10-25  Daniel P. Berrange  <berrange@redhat.com>

	Clear out more fields when closing a vnc connection
	Be more paranoid about reseting internal fields when closing
	a VNC connection, to prevent surprises when reconnecting

	* src/vncconnection.c: Clear out more fields when closing
	  a connection

	Add strict bounds checking on framebuffer updates
	Some broken VNC servers send frame buffer updates which stray
	outside the boundary of the desktop. This will lead to memory
	corruption when rendering, so explicitly check for this and
	drop the VNC connection.

	* src/vncconnection.c: Add framebuffer update bounds checking

2010-10-21  Michal Novotny  <minovotn@redhat.com>

	Introduce vnc_util_get_version() functions to get version
	this is the patch to allow user to get the GTK-VNC version using the
	vnc_util_get_version() and vnc_util_get_version_string() functions.
	Both the functions returns the version numbers based on the VERSION
	definition as created by autotools. Also, in version 2 (previous
	version) a new function called vnc_util_check_version() has been added
	to check whether the version of gtk-vnc is equal or higher to version
	requested. Function vnc_util_check_version() is defined as:

	gboolean vnc_util_check_version(gint major, gint minor, gint micro);

	The version of gtk-vnc is written in a "major.minor.micro" format
	and since the version number didn't change once the package was
	compiled version 3 is using VERSION_{MAJOR,MINOR,MICRO} constants
	being parsed and set by configure itself rather then parsing it
	at run-time.

	Then there are 2 version functions. The difference between those
	functions is that vnc_util_get_version() returns the gint value
	based on bit flags that have to be converted to get the version
	number in the string format. It's designed for further processing of
	the major, minor and release versions.

	If you want to get the version number only (e.g. to let the user
	know the GTK-VNC version he/she is using) you can use the second
	function called the vnc_util_get_version_string() which returns
	the string representation, e.g. 0.4.1.

	For the vnc_util_get_version() function the gint is being returned
	with setting up appropriate bits. You can get the versions using
	following formula:

	ver = vnc_util_get_version();
	major = (ver >> 24) & 0xff;
	minor = (ver >> 16) & 0xff;
	micro = (ver >> 8 ) & 0xff;

	I think this patch could be useful for mainly for reason mentioned
	above. To check whether the user has at least 0.4.1 version of
	gtk-vnc using the vnc_util_check_version(0, 4, 1) is preferred.
	The vnc_util_get_version() function is a low-level function that
	could be useful to get the version number to be converted further.

2010-09-17  Guido Günther  <agx@sigxcpu.org>

	Don't close the socket before the coroutine shut down
	The connection shutdown needs the socket intact:

	7  0xb6d38cdf in vnc_connection_tls_push (transport=0x8d84108, data=0x8df33c0, len=229) at vncconnection.c:942
	8  0xb6b30437 in ?? () from /usr/lib/libgnutls.so.26
	9  0xb6b2d12c in _gnutls_send_int () from /usr/lib/libgnutls.so.26
	10 0xb6b4d682 in gnutls_alert_send () from /usr/lib/libgnutls.so.26
	11 0xb6b2d662 in gnutls_bye () from /usr/lib/libgnutls.so.26
	12 0xb6d3a620 in vnc_connection_close (conn=0x8d84108) at vncconnection.c:4323

	so close the socket after the coroutine shutdown. Otherwise it fills the
	console with:

	(gvncviewer:11056): GLib-GIO-CRITICAL **: g_socket_send: assertion `G_IS_SOCKET (socket) && buffer != NULL' failed

	and gets stuck in an endless loop.

2010-09-17  Daniel P. Berrange  <berrange@redhat.com>

	Add missing keytable entry for KEY_KATAKANAHIRAGANA
	* src/keymaps.csv: Add XT code for KEY_KATAKANAHIRAGANA

	Fix auth subtype choosing logic in vncdisplay
	The method for choosing auth subtypes was rather flawed. Rewrite
	it to work correctly. Introduce an explicit list of vencrypt
	subtypes, since these are distinct from main subtypes. Improve
	debug logging in auth choice code.

	* src/vncdisplay.c: Fix auth type choice
	* src/vncconnection.c: Improve auth debugging & invoke correct
	  signal for auth subtype choice

2010-09-08  Guido Günther  <agx@sigxcpu.org>

	Simplify logic in host open code
	The second else clause checks for conn_error != NULL twice and since we
	don't use it to determine the return value we can clear it
	unconditionally.

	* src/vncconnection.c: Simplify logic in vnc_connection_open_host_internal

	Clear error when trying next IP address
	If connecting to an IP address fails, the GError must be
	cleared before trying the next address, otherwise the
	error will be overwritten on next failure

	* src/vncconnection.c: Clear error when trying next IP addr

2010-09-02  Jonh Wendell  <jwendell@gnome.org>

	Check if we have an error before reading or writing to the socket
	If, in the middle of an operation the widget is destroyed, we
	should check the has_error variable otherwise we can try to
	read/write from/to an invalid socket.

	Fix logic for removing unwanted encodings

2010-08-27  Daniel P. Berrange  <berrange@redhat.com>

	Fix files list in mingw32 specfile
	The files for gtk-vnc and gvnc were inverted in the mingw32
	RPM specfile

2010-08-27  Marek Černocký  <marek@manet.cz>

	Add Czech translation

2010-08-27  Jonh Wendell  <jwendell@gnome.org>

	Check if we have a valid socket before trying to close it
	If we attempt to destroy the widget while VncConnection still
	is trying to connect to the host, then priv->sock is not valid yet.

2010-08-22  Shushi Kurose  <md81bird@hitaki.net>

	Updated Japanese translation.

2010-08-20  Håkon Enger  <hakon.enger@gmail.com>

	Support Mac OS VNC authentication

2010-08-20  Daniel P. Berrange  <berrange@redhat.com>

	Add comment about where each keymap datasource came from
	To assist in people identifying/resolving mistakes, add a note
	about where each data source from keymaps.csv came from. Most
	are from Linux kernel source data tables, a few were manually
	matched up (Xwin/OS-X)

	* src/keymap-gen.pl: Record data sources for keymaps.csv

	Ensure automake maintainer mode is enabled

	Add a cairo based framebuffer implementation
	In GTK3, GdkImage has been removed completely. The vncimageframebuffer
	class cannot thus be used. Replace it with a vnccairoframebuffer
	class instead, but keep the old one around in GTK2 builds for ABI
	compatability.

	* src/vnccairoframebuffer.c, src/vnccairoframebuffer.h,
	  src/libgtk-vnc_sym.version: Add new framebuffer impl
	  based on Cairo.
	* src/Makefile.am: Disable GdkImage based framebuffer on
	  GTK3 builds
	* src/vncdisplay.c: Always use Cairo based framebuffer

	Fix typo in keycode names & improve error message
	Fix typo in evdev keycode names left over from debugging. Improve
	the error message when finding unknown keycodes

	Mandate the use of Cairo for all drawing
	Cairo has been used for GTK drawing for a long time and is now
	mandatory in GTK3. Drop support for non-Cairo drawing ops since
	they're obsolete.

	* configure.ac: Check for Cairo
	* src/vncdisplay.c: Drop non-cairo drawing

2010-08-15  Daniel P. Berrange  <dan@berrange.com>

	Reset xmit_buffer fields to fix reconnect
	If a vnc_connection object was closed and reopened old data
	in the xmit_buffer fields would cause a crash, since it was
	not re-initialized

2010-08-04  Lucian Adrian Grijincu  <lucian.grijincu@gmail.com>

	Updated Romanian translation

2010-08-03  Nils-Christoph Fiedler  <ncfiedler@gnome.org>

	Added LowGerman translation

	Added LowGerman translation

2010-07-20  Daniel P. Berrange  <berrange@redhat.com>

	Rewrite keymap code to work on more platforms
	The current keymap code assumes an Xorg server on Linux with
	either evdev or kbd drivers. This adds heuristics to detect
	XQuartz (Xorg on OS-X) and XWin (Xorg on Cygwin). Further it
	adds support for native GDK on OS-X and Win32.

	It is not possible to assume that keycodes < 87 have a 1-1
	mapping to RFB (XT) keycodes. Thus the keymap arrays must
	have a complete dataset, all special casing is removed.

	All master  keymaps are defined in a CSV file. THis covers
	Linux keycodes, OSX keycodes, AT set1, 2 & 3, XT keycodes,
	the XT encoding used by the Linux KBD driver, USB keycodes,
	Win32 keycodes, the XT encoding used by Xorg on Cygwin,
	the XT encoding used by Xorg on Linux with kbd driver.

	Further RFB and final Xorg driver mappings are derived
	from these master maps automatically. The keymap-gen.pl
	tool can generate lookup tables between all possible
	keycode sets as required.

	eg To generate a map from native Win32 keycodes to RFB
	keycodes

	   keymap-gen.pl keymaps.csv win32 rfb

	* gtk-vnc.spec.in, mingw32-gtk-vnc.spec.in: Require Text::CSV
	  for generating keymaps
	* src/Makefile.am: Generate keymaps dynamically
	* src/keymap-gen.pl: Tool to generate keymaps from CSV file
	* src/keymaps.csv: Master keymap definitions
	* src/vncconnection.c: Improve keypress log message
	* src/vncdisplay.c: Convert to guint16 for keymap table
	* src/vncdisplaykeymap.c, src/vncdisplaykeymap.h: Use a
	  new dynamically generated, full keymap.

2010-07-20  Daniel P. Berrange  <dan@berrange.com>

	Disable extended key events if keymap is unknown
	Currently if we cannot determine the GDK keymap, we default to
	the XT keymap. This is not a good choice because is causes
	definite breakage on several platforms. If the keymap cannot
	be determined, it is safer to disable the extended key event
	support completely & rely on traditional VNC keysyms.

	Also rename the x2pc methods to be gdk2rfb, since that's what
	the conversion is actually doing.

	Change way encodings are disabled at runtime
	The approach for disabling pseudo encodings is fragile because
	it relies on ordering in the array. Rewrite to allow removing
	arbitrary encodings

	Remove all gnulib code
	Since the port to use GIO for sockets, there is no requirement
	for gnulib. Delete it all

	Switch over to use GIO for socket connections / DNS resolution
	GIO provides GSocket and GResolver classes that can replace all
	current use of POSIX sockets / DNS resolution APIs. This gives
	cross platform portability for free, removing the need to use
	gnulib for socket portability

	* configure.ac: Check for GIO
	* src/Makefile.am: Link to GIO
	* src/vncconnection.c: Switch to using GSocket & friends
	* src/vncdisplay.c: Remove winsock initialization code

2010-07-14  Daniel P. Berrange  <dan@berrange.com>

	Remove a few uses of stdint in favour of glib int types

	Resync RPM specfiles based on latest Fedora devel

	Update version to 0.4.1

2010-07-13  Daniel P. Berrange  <berrange@redhat.com>

	Fix test suite
	* Makefile.am: list files in build-aux instead of wildcarding
	* vc-list-files: Move to build-aux
	* gnulib/lib/Makefile.am: Point to build-aux for vc-list-files
	* gtk-vnc.spec.in: Run tests during RPM build
	* tools/gvnccapture.c: Remove bogus N_ annotation. Not yet
	  ready for i18n support.

	Use separate soname when building against GTK-3
	The GTK-3 library is not ABI compatible with GTK-2. Thus when
	GTK-VNC builds against GTK-3 it is not ABI compatible with a
	build done against GTK-2. It is thus neccessasry to allow for
	parallel install of GTK-2 and GTK-3 builds. This is done by
	changing the library name, pkgconfig name and include file
	locations

	 GTK-2:

	    libgtk-vnc-1.0.so
	    gtk-vnc-1.0.pc
	    /usr/include/gtk-vnc-1.0

	 GTK-3:

	    libgtk-vnc-2.0.so
	    gtk-vnc-2.0.pc
	    /usr/include/gtk-vnc-2.0

	NB, when enabling GTK-3, the traditional python bindings will
	be disabled. The new GObject Introspection support provide an
	alternative python binding for users of GTK-3

	* gtk-vnc-1.0.pc.in: Fix to only use GTK-2
	* gtk-vnc-2.0.pc.in: New for GTK-3 support
	* src/Makefile.am: Different sonames & include dirs when
	  building against GTK3
	* configure.ac: Disable python binding with GTK3
	* README: Add note about GTK3
	* Makefile.am: Install new pkgconfig file for GTK3

2010-07-11  Daniel P. Berrange  <berrange@redhat.com>

	Fix ChangeLog generation
	Cannot assume changelog generation is run directlyin source
	directory

	Add gvncviewer.js to EXTRA_DIST

	Remove GNOME compile warnings checks
	Remove GNOME compile warnings checks, since GTK-VNC already has
	custom checks that are far more aggressive in enabling compile
	warnings. C++ compiler warnings are not required

	Update metadata files ready for new release
	Updated AUTHORS, MAINTAINERS, NEWS, README for new release.

	Autogenerate ChangeLog from GIT logs

	Fix mingw32 RPM specfile
	Add the gvnccapture program to the mingw32 RPM spec

	Fix DLL linking on mingw32
	libtool does not like -Wl,--no-undefined, even though the compiler
	and linker are happy enough. Revert to using -no-undefined on
	mingw32 platforms. Also use the correct style of linker script
	for exporting symbols on mingw32

	Add missing deps for gobject introspection
	Add RPM specfile BRs for gobject introspection support

2010-07-11  Daniel P. Berrange  <dan@berrange.com>

	Replace getline with fgets for win32 portability
	The getline function is gnu specific. Replace with use of fgets
	for portability to win32

	Make use of termios.h conditional, to fix win32 builds
	Win32 does not have termios support to disable terminal echo.
	Disable that code until a better solution can be found.

	Drop autoconf version back to 2.63
	Fedora 12 only has autoconf 2.63. Drop back minimum version to
	allow this usage

2010-07-05  Daniel P. Berrange  <dan@berrange.com>

	Fix dead framebuffer refresh after psuedo encodings
	Users of VncConnection are responsible for requesting framebuffer
	updates after every framebuffer update, resize of pixel encoding
	change. Other pseudo encodings are not visible to users of the
	VncConnection class, so a framebuffer update request must be
	re-requested if one of these psuedo encodings arrives

	Fix parallel build with introspection data
	THe GVnc introspection data must be built before GtkVnc data.

	Add a gvnccapture command line tool
	Add a command line tool for capturing a screenshot of a VNC
	desktop

	Change vnc_connection_framebuffer_update_request to use boolean
	Use a boolean for the incremental parameter in the
	vnc_connection_framebuffer_update_request API

	When using 32bpp, depth 24 fill alpha byte.
	When constructing a GdkPixbuf from the framebuffer pixel array,
	it will expect the alpha bits to be initialized to a sensible
	value. Since we don't care about alpha, make sure 32bpp, depth 24
	format sets alpha to 0xff (full opaque).

	Fix emitting of unsupported auth signal
	The vnc_connection_set_auth_type method is invoked from the system
	coroutine, so it must directly emit the signal, not use the delayed
	signal emitter

	Change vnc_connection_key_event to use a boolean
	Use a boolean for the down flag in the vnc_connection_key_event#
	API.

	Add padding to GObject classes
	To allow the class structs to be expanded later without breaking
	ABI it is neccessary to include padding in the structs. If extra
	fields are later added, an equivalent amount padding must be
	remnoved

2010-06-30  Jonh Wendell  <jwendell@gnome.org>

	Allows linking with gtk+2.0 and gtk+3.0
	This adds a new configure parameter: --with-gtk=2.0|3.0 (default: 2.0)

	Prepare for gtk+ >= 2.22
	This uses accessors instead of accessing struct members

2010-06-29  Jonh Wendell  <jwendell@gnome.org>

	Fixed GOBJECT flags

2010-06-26  Gil Forcada  <gforcada@gnome.org>

	Added Catalan translation

2010-06-22  Jonh Wendell  <jwendell@gnome.org>

	Only handle motion events when initialized.
	Closes #622429.

2010-06-17  Michal Novotny  <minovotn@redhat.com>

	Add APIs for configurable key grab sequences
	Allow the key grab sequence to be configured by applications.
	The grab sequence is represented by a new boxed data object

	  VncGrabSequence

	This can be created from an array of keysyms

	  guint keys[] = { GDK_Control_L, GDK_Alt_L };
	  guint len = sizeof(keys)/sizeof(keys[0]);
	  vnc_grab_sequence_new(len, keys);

	Or from a string format

	  vnc_grab_sequence_new_from_string("Control_L+Alt_L");

	The gvncviewer.c example program shows a user interface for
	configuring key sequences. The gvncviewer.py example program
	demonstrates access from the python binding.

	This patch is heavily based on the original proposal from
	Michal Novotny

2010-06-17  Daniel P. Berrange  <dan@berrange.com>

	Add support for colourmap based pixel formats
	The current code will force the server to use the native
	client's pixel format if it ever sees a pixel format
	with true_color_flag==0 (ie colourmap).  This is bad because
	the client native pixel format is almost always 32bpp while
	the main reason for using a colourmap is to get bandwidth
	friendly 8bpp format. This makes GTK-VNC look bad in any
	performance comparisons.

	This patch implements full support for rendering from
	colourmaps. It introduces a boxed data type to store the
	colour map entries and wires this upto the framebuffer
	interface.

	For rendering, the BLT functions for the VncBaseFramebuffer
	are enhanced to cope with colourmaps. Since colour maps
	provide 16bit r,g,b triples, the BLT code is enhanced to
	cope with 64-bit bpp pixels. This is technically required
	even for non-colourmap entries since the VNC pixel format
	protocol message allows for 16 bit r,g,b masks which
	results in a 64-bit true colour pixel.

	* src/vnccolormap.h, src/vnccolormap.c, src/Makefile.am: Add
	  a VncColorMap boxed data type to hold the colour map entries.
	* src/vncframebuffer.h, src/vncframebuffer.c: Add an API to
	  the VncFrameBuffer interface to allow the colour map to be
	  updated.
	* src/vncconnection.h, src/vncconnection.c: Remove last case
	  of vnc_ops and replace with new VncColorMap object
	* src/vncdisplay.c: Don't override the default server pixel
	  format, allow use of colour maps
	* src/vncbaseframebuffer.c, src/vncbaseframebufferblt.h: Add
	  support for rendering pixels using a colourmap

	Fix off by 1 in initial protocol greeting
	The client -> server greeting must be 12 bytes long, ending in a
	newline character. An off-by-1 in snprintf resulted in the 12th
	byte being a NULL instead. This caused wireshark to not detect
	the stream as VNC

	Fix the vnc_connection_set_encodings method write
	The vnc_connection_set_encodings method is a public API which is
	called from the system coroutine. Thus is must use the buffered
	write routines.

	Fix crash in server cut text
	GString needs to be freed with g_string_free rather than g_free.
	Fix the signature of the cut text callback

2010-06-11  Jonh Wendell  <jwendell@gnome.org>

	Build with GSEAL. Closes #612727.
	Now we require gtk+ 2.18.

	git-ignore build-aux dir

	Modernize autotools. Bug #621312.

2010-06-08  Daniel P. Berrange  <berrange@redhat.com>

	Try next DNS addr after all connect failures
	There are many more ways an IPv6 connection can fail than just
	CONNREFUSED and HOSTUNREACH. For example ETIMEDOUT, NETUNREACH
	and more. Try the next DNS addr after all connect() failures,
	no matter what the errno code, to ensure we always fallback
	to IPv4 eventually.

	* src/vncconnection.c: Retry connection after all errors

2010-04-25  Takeshi AIHANA  <takeshi.aihana@gmail.com>

	Add Japanese translation

2010-04-23  Matej Urbančič  <mateju@svn.gnome.org>

	Updated Slovenian translation

2010-04-05  Kris Thomsen  <lakristho@gmail.com>

	Updated Danish translation

2010-04-05  Kenneth Nielsen  <k.nielsen81@gmail.com>

	Added da to list of languages

2010-03-22  Halton Huo  <halton.huo@sun.com>

	Conditional use JRI stuff in npupp.h
	Since 3.6, firefox does not ship jri.h, so remove it from npupp.h
	as GTK-VNC does not need it

	Add -lgpg-error to linker flags
	The gcrypt.h file has several inline functions which cause code
	using gcrypt to have a direct link time dependancy on gpg-error,
	if the compiler decides to inline. Thus we need to add -lgpg-error
	to the linker flags to cope with potential inlining

	* configure.ac: Add -lgpg-error to GNUTLS_LIBS

2010-03-22  Daniel P. Berrange  <berrange@redhat.com>

	Use --no-undefined instead of -no-undefined
	Solaris can't cope with -no-undefined, and even Linux prefers the
	--no-undefined style.

2010-03-21  Daniel P. Berrange  <berrange@redhat.com>

	Turn on debug in javascript example program
	* src/Makefile.am: Include vncutil.h/.c in introspection processing
	* examples/gvncviewer.js: Enable debugging

	Fix include files / libs in new RPM split
	The gvnc-devel package mistakenly included the gtk-vnc include
	directory. The gtk-vnc package mistakenly included the gvnc.so
	library

	Support GObject introspection & add javascript demo program
	Add Makefile.am rules to generate a typelib with introspection
	data. Add a javascript demo program to show how trivial it is.

	Turn VncPixelFormat into a boxed type
	To allow introspection to work with VncPixelFormat properties,
	this struct needs to be a boxed type

	Split up library into libgvnc.so (GObject) bits and libgtk-vnc.so (GTK widget)
	The libgvnc.so library comprises the classes

	  VncConnection
	  VncPixelFormat
	  VncFramebuffer
	  VncBaseFramebuffer
	  VncCursor
	  VncConnection

	This only depends on glib, gobject and gdk-pixbuf

	The libgtk-vnc.so library comprises the classes

	  VncDisplay
	  VncImageFramebuffer

	Adding a dependancy on GTK

	Update copyright headers after last round of object refactoring
	In the major 20-patch series of object refactoring, the copyright
	headers were mistakenly not updated. Add extra copyright header to
	reflect the work done

	Introduce a function for setting debug flag in prep for library split
	The base APIs will soon be split into a separate libgvnc.so library.
	Since libgtk-vnc.so exposes the --gtk-vnc-debug flag, this needs to
	be implemented using an API in the libgvnc.so library, rather than
	just a static boolean flag in vncdisplay.c

	The GVNC_DEBUG macros is also renamed to VNC_DEBUG

	* vncutil.c, vncutil.h: New file for vnc_util_set_debug(gboolean)
	* utils.h: Remove old debug flag
	* dh.c, vncbaseframebuffer.c, vncconnection.c, vncdisplay.c,
	  vncdisplaykeymap.c, vncimageframebuffer.c: s/GVNC_DEBUG/VNC_DEBUG/
	* Makefile.am: Add vncutil.h/.c files

2010-03-20  Daniel P. Berrange  <berrange@redhat.com>

	Avoid crash if framebuffer is not set & silence warning
	* src/vncdisplay.c: Avoid possible crash if framebuffer isn't set
	* src/vncconnection.c: Avoid warning when sasl is not enabled

	Move all coroutine stuff into VncConnection
	The VncDisplay class currently runs the main coroutine for the
	VncConnection. This means some VncConnection APIs need to be
	invoked from the VNC coroutine context, while others need to be
	invoked from the main system context. This will make the
	VncConnection class very hard to use from non-C languages like
	Python/Perl/Java/etc.

	Move all the coroutine code into the VncConnection class. All
	its APIs are now to be invoked from system context. This means
	it can now easily be used from any language

	Move X keycode -> PC scancode conversion into VncDisplay
	The VncConnection class should not depend on anything from GDK.
	The X keycode to PC scancode conversion uses GDK. Therefore it
	had to be moved into the VncDisplay class

	Rename enums from GVNC_ to VNC_CONNECTION_
	Rename the symbols for the VncConnectionEncoding, VncConnectionAuth
	and VncConnectionAuthVencrypt enums to use a prefix of
	VNC_CONNECTION_ instead of GVNC_

	Remove jpeg_render function and use gdk-pixbuf directly

	Replace 'auth_type' and 'auth_subtype' operations with signals
	Remove the 'auth_type' and 'auth_subtype' operation callbacks.
	Introduce new 'vnc-auth-choose-type' and 'vnc-auth-choose-subtype'
	signals

	Replace 'auth_cred' operation with a signal
	Remove the 'auth_cred' operation in VncConnection. Introduce a
	new 'vnc-auth-credential' signal

	Remove 'get_preferred_pixel_format' operation
	Remove the 'get_preferred_pixel_format' operation callback, and
	instead directly set the pixel format (if desired) during the
	initialization phase of the coroutine

	Replace 'auth_failure' and 'auth_unsupported' operations with signals
	Remove the 'auth_failure' and 'auth_unsupported' operation callbacks
	from VncConnection. Introduce new 'vnc-auth-failure' and
	'vnc-auth-unsupported' signals.

	Replace 'update', 'resize' and 'pixel_format' operation callbacks with signals
	Remove the 'update', 'resize' and 'pixel_format' operation callbacks
	from VncConnection. Introduce new 'vnc-framebuffer-update',
	'vnc-desktop-resize' and 'vnc-pixel-format-changed' signals

	Replace 'server_cut_text' operation with a signal
	Remove the 'server_cut_text' operation from VncConnection.
	Introduce a signal 'vnc-server-cut-text' for VncConnection and
	pass in the text

	Replace 'bell' operation with a signal
	Remove the 'bell' operation callback from VncConnection.
	Introduce a signal 'vnc-bell' for VncConnection.

	Replace 'pointer_type_changed' operation with a signal
	Remove the 'pointer_type_changed' operation callback from VncConnection.
	Introduce a signal 'vnc-pointer-mode-changed' and pass it the pointer
	state as a gboolean

	Replace 'local_cursor' operation callback with a signal
	Remove the 'local_cursor' operation callback from VncConnection.
	Introduce a signal 'vnc-cursor-changed' and pass it as a
	VncCursor object

	Introduce a VncCursor object
	Introduce a VncCursor object to represent a client side rendered
	pointer

	Tidy up header files to have consistent coding style

	Convert VncConnection into a proper GObject type

	Generate enum types for VncConnection enums

	Convert VncConnection over to use VncFramebuffer object
	Remove the vnc_framebuffer struct, and make VncConnection use the
	new VncFramebuffer object.

	VncDisplay is changed to use the VncImageFramebuffer object
	type as its implementation of VncFramebuffer

	Add a framebuffer implementation based on a GdkImage
	Subclass the VncBaseFramebuffer class to add an implementation
	which uses a GdkImage as its local storage

	Add a VncFrameBuffer interface and basic implementation
	Define the interface for a framebuffer and rendering into it
	between local & remote pixel formats.

	Provide a basic implementation of the interface using simple
	blt functions for a local memory region

	Pull pixel format struct out into a separate file with typedef
	Turn struct vnc_pixel_format into VncPixelFormat type

	Rename gvnc module to prepare for turning into public GObjects
	  struct gvnc -> VncConnection

	  gvnc_ops -> vnc_connection_ops   (to be later removed)
	  gvnc_framebuffer -> vnc_framebuffer (to be later replaced)
	  gvnc_pixel_format -> vnc_pixel_format (to be later replaced)
	  gvnc_dh -> vnc_dh

	Rename gvnc.[h,c] -> vncconnection.[h,c]

	Add some installation caveats to README
	Add note about NetBSD swapcontext() problems & Mingw SASL limitation

	Fix compile warnings
	Fix the compile warnings / initialization order bug from

	  commit 0a6bae9c19e9f86dda5433d8260d5f29e7ef4ed1

	* src/vncdisplay.c: Fix variable init order & mark function static

2010-03-20  Andre Klapper  <a9016009@gmx.de>

	Remove use of 'widget->window' in favour of gtk_widget_get_window()
	When building using -DGSEAL_ENABLE, the 'widget->window' field is
	not available. Instead the gtk_widget_get_window() method must be
	used

	* configure.ac: Bump dep on GTK to 2.14
	* src/vncdisplay.c: Switch to gtk_widget_get_window()

2010-03-20  Emilio Pozuelo Monfort  <pochu27@gmail.com>

	Remove use of PATH_MAX in favour of dynamic buffers
	GNU/Hurd does not define the PATH_MAX constant. Replace use of
	PATH_MAX with dynamic buffers instead.

	* src/vncdisplay.c: Remove use of PATH_MAX

2010-03-20  Michal Suchanek  <hramrach@centrum.cz>

	Improve error message in gvncviewer when connection fails
	The 'vnc-disconnected' signal is emitted both when a connection
	closes, and when a connection fails to initialize at all. The
	gvncviewer demo was not taking account of this, so providing a
	misleading diagnostic message

	* examples/gvncviewer.c: Distinguish errors conditions in
	  disconnect signal

2010-03-20  Halton Huo  <halton.huo@sun.com>

	Remove check for NSPR in configure.ac
	The firefox/mozilla-plugin pkgconfig files already have a dependancy
	on the nspr package. Thus there is no need for an explicit NSPR check
	in gtk-vnc.

	* configure.ac: Remove redundant check for NSPR

2010-03-20  Daniel P. Berrange  <berrange@redhat.com>

	Add plugin to .gitignore files

2010-03-20  Halton Huo  <halton.huo@sun.com>

	Pull in npapi.h & npupp.h from FF3 source to fix plugin build
	Latest versions of firefox do not provide the npapi.h/npupp.h
	files that the plugin requires to build. Copy those files from
	the FF3 source tree into plugin to provide compatability.

	* plugin/npapi.h, plugin/npupp.h: Pull in from FF3 source tree

2010-03-20  Guido Günther  <agx@sigxcpu.org>

	Add -Wl since --no-undefined is a linker option
	The --no-undefined option was not being processed correctly, since
	it needs a -Wl prefix to be passed through to the linker

	* src/Makefile.am: Add -Wl to --no-undefined arg

	Explicitly link against X11 libs for XkbGetKeyboard
	When building with --no-undefined and modern linkers, X11 won't
	be found implicitly. Therefore it is neccessary to link directly
	to X11

	* configure.ac: Use pkgconfig to check for X11 libs
	* src/Makefile.am: Link against X11

	Fix symbol versioning script application
	* src/Makefile.am: Drop space after -Wl, in libgtk_vnc_1_0_la_LDFLAGS
	  to ensure linker script is applied

	Add missing symbols
	* src/libgtk-vnc_sym.version: Add missing symbols from 0.3.8
	  and 0.3.9 releases

2010-03-18  Sjoerd Simons  <sjoerd.simons@collabora.co.uk>

	Make sure the local pointer setting is respected on enter events
	Patch from

	  https://bugzilla.gnome.org/show_bug.cgi?id=577580

2010-03-18  Leonid Kanter  <leon@asplinux.ru>

	Added Russian translation

2010-02-27  Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>

	Added Traditional Chinese translation(Hong Kong and Taiwan)

2010-01-24  A S Alam  <aalam@users.sf.net>

	Adding Punjabi (pa) Translation by A S Alam (aman)

2009-12-17  Daniel P. Berrange  <berrange@redhat.com>

	Initialize gcrypt threading callbacks
	If GTK has threading enabled, we must be sure to enable gcrypt
	threading callbacks too for safety

2009-12-13  Daniel P. Berrange  <berrange@redhat.com>

	Remove use of stdint in favour of GLib fixed size types
	GLib provides guint8, gint8, guint16, gint16, guint32, gint32
	data types. Use these instead of stdint.h, so we better follow
	standard GLibc practice.

2009-11-18  Lyper Lai  <lyp069@gmail.com>

	Add Simplified Chinese translation.

2009-10-29  Jonh Wendell  <jwendell@gnome.org>

	Only memcpy() if source and destination are different

	Drop the useless global variable signalCredParam

2009-10-28  Jonh Wendell  <jwendell@gnome.org>

	Fix a memory leak by freeing a buffer variable

	Fix a memory leak by freeing the remote cursor

	Fix a memory leak by freeing a GdkGC private variable

	Fix a memory leak by freeing the result of gdk_pixbuf_format_get_name()

	Fix a memory leak by freeing the private null cursor

	Fix a memory leak by freeing host and port private variables

2009-10-21  Jonh Wendell  <jwendell@gnome.org>

	Fix plugin build. Closes #599146.

2009-10-21  Matej Urbančič  <mateju@svn.gnome.org>

	Added sl for Slovenian language

	Updated Slovenian translation

2009-10-21  Jonh Wendell  <jwendell@gnome.org>

	Avoid a GCC warning

2009-10-20  Jonh Wendell  <jwendell@gnome.org>

	0.3.10 release

2009-10-17  Simos Xenitellis  <simos@gnome.org>

	Added el to po/LINGUAS

2009-10-17  Pavlos Tournaris  <p.tournaris@gmail.com>

	Added Greek translation

2009-10-15  Jonh Wendell  <jwendell@gnome.org>

	Added the ability to request an update.
	vnc_display_request_update() is the new symbol.

2009-10-06  Jonh Wendell  <jwendell@gnome.org>

	Request a full screen refresh when receives a desktop-resize encoding.
	Closes #585571.

2009-09-30  Jonh Wendell  <jwendell@gnome.org>

	Added depth color tunning into VncDisplay.
	Provide a set_depth() in VncDisplay which tunes that setting.
	In gvnc_initialize we always call get_preferred_pixel_format() which
	makes use of that tunning.

2009-09-19  Gabor Kelemen  <kelemeng@gnome.hu>

	Added hu to LINGUAS

	Added Hungarian translation

2009-09-18  Luca Ferretti  <elle.uca@libero.it>

	Added it to LINGUAS

	Added Italian translation

2009-09-17  Jonh Wendell  <jwendell@gnome.org>

	Deleted .hgignore

	Updated Makefile rules for .gitignore

	Updated README

	Use glib-mkenums to automatically create GTypes from C enums.

2009-09-13  Philip Withnall  <philip@tecnocode.co.uk>

	Added British English translation

2009-09-09  Piotr Drąg  <piotrdrag@gmail.com>

	Updated Polish translation

2009-09-07  António Lima  <amrlima@gmail.com>

	Updated Portuguese translation

2009-09-06  António Lima  <amrlima@gmail.com>

	Updated Portuguese translation

2009-09-04  Claude Paroz  <claude@2xlibre.net>

	Added French translation

2009-08-30  Jorge González  <jorgegonz@svn.gnome.org>

	Added es to LINGUAS

	Added Spanish translation

2009-08-28  Inaki Larranaga  <dooteo@zundan.com>

	Added Basque translation

2009-08-28  Daniel P. Berrange  <berrange@redhat.com>

	Disable build-aux since its broken on older libtool/intltool
	* configure.ac: Disable use of build-aux rule

2009-08-25  Daniel P. Berrange  <berrange@redhat.com>

	Include po files in RPM builds
	* gtk-vnc.spec.in, mingw32-gtk-vnc.spec.in: Use %lang related macros
	  to pull in po files to RPM

	Re-write configure rules to avoid many warnings
	* acinclude.m4: Add helper function for checking a huge list of
	  compile flags. Also test ability to link with the flag, not just
	  to compile.
	* configure.ac: gl_EARLY must come before every rule that isnt
	  just autoconf/make metadata initialization. Call out to the
	  generic compile flag macro. Turn off automake's GNU-make-ism
	  warnings.
	* autobuild.sh: Change way compile warnings are turned on
	* src/Makefile.am: Enable compile warning flags on python build

	Add separate m4 dir to avoid intltool/libtool splattering over gnulib
	If no generic -I m4 directory is listed, libtool & intltool will
	splatter their files all over those belonging to gnulib. This gives
	wierd, unpredictable build errors depending on whose file was copied
	over most recently.

	* Makefile.am: Add -I m4 flag

	Invoke intltoolize in autogen.sh
	* autogen.sh: Run intltoolize

	Don't do arithmetic on void *, to avoid compile warnings
	* src/gvnc.c: Cast to char * before doing arithmetic

2009-08-25  Michal Suchanek  <hramrach@centrum.cz>

	Set a default hostname in viewer demo program
	* examples/gvncviewer.c: Set a default hostname of 127.0.0.1
	  if only a port number is given

2009-08-25  John Haxby  <john.haxby@oracle.com>

	Drop the connection if some credentials cannot be set
	* examples/gvncviewer.py: Close VNC connection if setting a credential
	  fails

	Make the authorization dialog more friendly
	* examples/gvncviewer.py: Hide the password as the user types
	  it in and allow authentication to complete when you hit Enter.

2009-08-23  Mario Blättermann  <mariobl@gnome.org>

	Added German translation

2009-08-20  Halton Huo  <halton.huo@sun.com>

	Checking SASL for -lsasl2 or -lsasl. Closes #591521.

2009-08-20  Daniel Nylander  <po@danielnylander.se>

	Updated Swedish translation

2009-08-19  Fran Diéguez  <fran.dieguez@glug.es>

	Added Galician Translation

2009-08-19  Henrique P. Machado  <zehrique@gmail.com>

	Updated Brazilian Portuguese translation.

2009-08-17  Jonh Wendell  <jwendell@gnome.org>

	Added DOAP file

	Added basic Brazilian Portuguese translation

	Added i18n initial support.

	Use git.mk from Behdad Esfahbod. It generates .gitignore automatically.

	Include vncmarshal.h in vncmarshal.c generation.
	This fix a gcc warning.

2009-08-11  Jonh Wendell  <jwendell@gnome.org>

	Disable cvs tests

	Output SASL configure options in configure.ac

2009-08-10  Daniel P. Berrange  <berrange@redhat.com>

	Update for 0.3.9 release
	* NEWS: Add details new features/bugs fixed in 0.3.9
	* configure.ac: Update version to 0.3.9

	Add rest of C-A-Fn menu options to example
	* examples/gvncviewer.c: Add menu shortcut for Ctrl-Alt-F2->8

2009-08-10  Jonh Wendell  <jwendell@gnome.org>

	Added vnc_display_get_option_entries() symbol in VncDisplay.
	It returns a GOptionEntry *. It's up to apps to integrate those
	options, returned by gtk-vnc into their own groups. This makes
	things flexible.

2009-07-25  Jonh Wendell  <jwendell@gnome.org>

	Don't send keys if we are in read only mode

2009-07-06  Daniel P. Berrange  <berrange@redhat.com>

	Annotate unusued params with G_GNUC_UNUSED to avoid warnings

	Remove trailing whitespace from all files

	Remove useless if() before free()

	Re-fix Shift+Tab keyval translation from 1e121b4084788399c4d71d60b513997661e3116e, accidentally reverted in 4f4103fbc7021a3ae8e9c43e1f561cd8f65481aa

	Remove bogus trailing newlines from all GVNC_DEBUG calls

2009-06-15  Daniel P. Berrange  <berrange@redhat.com>

	Add explicit link to libgcrypt for MS Logon extension, to avoid link problem on Win32

2009-06-15  Bruce Cowan  <bcowan@fastmail.co.uk>

	Remove deprecated GTK+ symbols

2009-06-15  Daniel P. Berrange  <berrange@redhat.com>

	Disable SASL when building on mingw32

	Added 2 missing #if HAVE_SASL conditionals

2009-06-10  Daniel P. Berrange  <berrange@redhat.com>

	Add support for SASL authentication type

	Fix inverted logic for releasing pointer grab when switching to absolute mouse mode

	Process all enter/leave events to ensure we release key grab after a mouse ungrab in relative mode

2009-04-17  Jonh Wendell  <jwendell@gnome.org>

	Added support for UltraVNC MS-Logon auth type

2009-03-17  Jonh Wendell  <jwendell@gnome.org>

	Added MAINTAINERS file

	Do not send clipboard messages when in View Only state

2009-02-26  Daniel P. Berrange  <berrange@redhat.com>

	Change pointer grab to allow movement across entire desktop and fix warping of pointer at desktop edges, to make relative mouse mode work correctly. Document what's going on with more comments.

2009-02-20  Jonh Wendell  <jwendell@gnome.org>

	Ignore some files
