dwww Home | Show directory contents | Find package

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

Generated by dwww version 1.15 on Wed May 22 22:27:27 CEST 2024.