2015-02-10 Daniel P. Berrange Update to 0..5.4 release 2015-02-09 Daniel P. Berrange Ensure we find mingw version of libgcrypt-config in $PATH Add typo in keymap name for wayland 2015-02-06 Peter Korsgaard 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 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 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 Enable double buffering on GTK3 2014-10-07 Daniel P. Berrange Remove tab character 2014-10-07 Cole Robinson Fixes these noisy errors on Fedora 21: gcc: warning: switch '-Wmudflap' is no longer supported 2014-10-07 Daniel P. Berrange 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 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 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=, 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=, detail=0, var_args=var_args@entry=0x7fffffffd560) at gsignal.c:3215 #10 0x0000003944a2a63f in g_signal_emit (instance=, signal_id=, detail=) 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=, detail=0, var_args=var_args@entry=0x7fffffffd850) at gsignal.c:3215 #14 0x0000003944a2a63f in g_signal_emit (instance=, signal_id=, detail=) 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=) 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 updated Telugu translation Added Language code te to LINGUAS file 2014-02-07 GunChleoc Updated Scottish Gaelic translation Added Scottish Gaelic translation 2014-01-30 Daniel P. Berrange Fix dep on Gtk-3 GIR file Related to 423495e6e1cbf5936639e6b68c6cefe4fdadd368 which only fixed it for GTK-2 2014-01-29 Daniel P. Berrange 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 Add missing dep on Gtk introspection GIR https://bugzilla.gnome.org/show_bug.cgi?id=723009 2014-01-23 Daniel P. Berrange 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 Remove use of deprecated GTK_STOCK_OK/GTK_STOCK_CANCEL 2013-12-31 Koop Mast 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 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 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