2025-01-06 Daniel P. Berrangé <berrange@redhat.com> Add GitLab CI file for making releases Derived from recommended minimal example at: https://handbook.gnome.org/maintainers/making-a-release.html rpm: add gcc dep and remove mingw-filesystem version We should not rely on implicit deps for gcc install. All versions of Fedora have new enough mingw-filesystem packages. Fallback to non-pkg-config lookup of gmp Most versions of gmp lack pkg-config support Bump version to 1.4.0 and update release notes Fix sig of mpz_urandomb in dhtest While the API docs declare the 2nd parameter as 'gmp_randstate_t', the header files declare it as 'gmp_randstate_ptr'. Either way this does not matter for the test suite from a functional POV as the param is not used. We just need to avoid triggering the compiler warnings: [59/119] Compiling C object src/dhtest.p/dhtest.c.o ../src/dhtest.c:45:48: warning: argument 2 of type ‘__gmp_randstate_struct[1]’ with mismatched bound [-Warray-parameter=] 45 | void mpz_urandomb(mpz_ptr mpi, gmp_randstate_t rng G_GNUC_UNUSED, mp_bitcnt_t bits) In file included from /usr/include/gmp.h:59, from ../src/dhpriv.h:24, from ../src/dhtest.c:23: /usr/include/gmp-x86_64.h:1114:44: note: previously declared as ‘gmp_randstate_ptr’ {aka ‘__gmp_randstate_struct *’} 1114 | __GMP_DECLSPEC void mpz_urandomb (mpz_ptr, gmp_randstate_ptr, mp_bitcnt_t); | ^~~~~~~~~~~~~~~~~ 2024-12-11 Daniel P. Berrangé <berrange@redhat.com> Replace gcrypt with GMP for DH APIs The only remaining use of gcrypt is for the DH API impls, which can be replaced with use of GMP. Convert connection code to use gnutls for ciphers/hashes We already use gnutls for some DES cipher code. Convert the remaining places that still use gcrypt over to gnutls for ciphers/hashes/rng. Add testcase for ARD auth type Add testcase for MS logon auth type Add testing of invalid VNC auth types Add testing of VNC auth scheme Refactor VNC connection test to cope with more scenarios This will make it possible to test authentication logic Split up connection test init helper Make greater use of common init helper in VNC connection test Rename VNC connection test methods for greater clarity Three naming patterns * server_XXX - stuff invoked from server thread * client_signal_XXX - helpers for client signals * test_XXX - helper methods Use constants for encodings in VNC connection test Don't export gcry_mpi_t type in internal DH APIs. This will make it easier to remove use of gcrypt in future Convert vnc_bytes_to_mpi to use GBytes Convert vnc_mpi_to_bytes to use GBytes Add test case for DH support 2024-12-10 Daniel P. Berrangé <berrange@redhat.com> Honour warning / deprecation CFLAGS in tests Add validation of auth types Don't offer apps the option to choose an auth type which is not supported by our code, raise this as an auth failure. Group signals in 5s and comment signal number This makes it easier to correlate with debug messages 2024-10-11 Marek Kasik <mkasik@redhat.com> src: Avoid artifacts on HiDPI displays VncDisplay shows horizontal and vertical lines when scaling of the widget is performed on HiDPI display. This can be avoided by moving the updated rectangle by -0.5 in both directions and increasing its size by 1 in both directions. Also the values which currently avoid artifacts on non-HiDPI displays has to be modified for both cases when scaling of VNC display is enabled and disabled. This fixes the issue for 200%, 300% and 400% HiDPI scales. 2024-09-16 Daniel P. Berrangé <berrange@redhat.com> Don't assume SASL client out data is NUL terminated It can be arbitrary binary data so should not be formatted with '%s', and we should not access 1 past the end of the array when sending it, instead an explicit separate NUL byte must be sent. When receiving data from the server also check for the NUL padding byte. 2024-09-11 Daniel P. Berrangé <berrange@redhat.com> rpm: fix adding translations to mingw packages Avoid requesting SSF layer over UNIX sockets It is valid to run without either an SSF or TLS when usig a UNIX socket since they are not ordinarily subject to 3rd party MITM attacks/snooping. Relaxing this allows more SASL auth mechanisms to be used on UNIX sockets, in particular the SCRAM_SHA256 challenge/response, which is useful as a plain password auth scheme. Tweak debug message about SASL mechlist Fix leak of socket address during SASL auth process 2024-07-09 Daniel Kahn Gillmor <dkg@fifthhorseman.net> gvncviewer: Allow ungrabbing keyboard It can be frustrating for someone who is used to keyboard navigation between windows to find themselves unable to navigate away easily from a gvncviewer window, because gvncviewer grabs the keyboard by default. Once it is focused, you can't keep navigating away. This change adds an option to the "View" menu called "Grab keyboard" (which is initially checked). When that item is unchecked, GVncViewer still reads from the keyboard, but it doesn't take away the window manager's (or the compositor's) ability to use the keypress first. 2024-05-12 Scrambled 777 <weblate.scrambled777@simplelogin.com> Add Hindi translation 2024-04-29 Daniel P. Berrangé <berrange@redhat.com> ci: add lcitool project definitions This is consumed by CI in virtualization projects like virt-viewer 2023-09-18 Andre Klapper <a9016009@gmx.de> DOAP / README: Replace defunct Mailing List with Discourse 2023-09-07 Vasil Pupkin <3abac@3a.by> Add Belarusian translation 2023-06-02 Jean-Louis Dupond <jean-louis@dupond.be> Add VNC_DISPLAY_CREDENTIAL_CA_CERT_DATA This commits add an additional credential: VNC_DISPLAY_CREDENTIAL_CA_CERT_DATA So this can be used by virt-viewer to pass a trusted CA to the TLS negotiation. 2023-05-26 Sabri Ünal <libreajans@gmail.com> Update Turkish translation 2023-04-26 Daniel P. Berrangé <berrange@redhat.com> rpm: convert license to SPDX format 2023-01-23 Daniel P. Berrangé <berrange@redhat.com> coroutine: print configured coroutine backend in meson summary coroutine: import coroutine test suite from spice-gtk This imports a simple unit test program to validate the coroutine implementation. coroutine: avoid ucontext impl on macOS M1 hardware The 'struct ucontext_t' declared by system headers appears too small, because getcontext() calls will scribble over memory after the end of the struct. The libucontext impl is a suitable alternative, as is the fallback gthread impl. coroutine: add support for libucontext libucontext is a lightweight implementation of ucontext for platforms that do not have a built-in implementation. This allows us to use the same code to support libucontext as ucontext. This is a copy of the spice-gtk commit commit fa812c88492641005a768c72502a8953bd1223b2 Author: osy <osy@turing.llc> Date: Fri Mar 4 15:52:48 2022 -0800 coroutine: add support for libucontext coroutine: import winfiber impl from spice-gtk This will offer greater performance that the gthread impl continuation: Simplify implementation Instead of using ucontext and setjmp together just use setjmp and limit ucontext usage to initialise the initial jmp_buf context. This simplifies the code and reduce number of context operations done. In particular using _setjmp/_longjmp moving from a context to another does not require any system call. On x64 the continuation structure is reduced from 2176 to 248 bytes. This is a copy of the spice-gtk commit commit 5989350429a79787f02e9c869c7769989781d320 Author: Frediano Ziglio <freddy77@gmail.com> Date: Fri Aug 14 05:26:35 2020 +0100 continuation: Simplify implementation Allows to use Valgrind with ucontext coroutines Changing stack is not usually instrumentation friendly. Allows to enable the usage of Valgrind memcheck calling some valgrind macros. This is a copy of the spice-gtk commit: commit 942bd130ddd3c331045c1d3e4f580909901d285a Author: Frediano Ziglio <freddy77@gmail.com> Date: Thu Aug 13 14:31:52 2020 +0100 Allows to use Valgrind with ucontext coroutines coroutine_gthread: Fix recursive yield This is a copy of spice-gtk commit: commit 9def63a7a402e491ba79a4aa98ef85f8142f11b4 Author: Frediano Ziglio <freddy77@gmail.com> Date: Tue Aug 11 21:24:26 2020 +0100 coroutine_gthread: Fix recursive yield coroutine_gthread: Do not call g_cond_init Not necessary from Glib 2.32 for static allocated conditions. This is a copy of spice-gtk commit: commit 3b24b556fdef88e4582cffec01800d24bb65ae24 Author: Frediano Ziglio <freddy77@gmail.com> Date: Tue Aug 11 21:23:09 2020 +0100 coroutine_gthread: Do not call g_cond_init coroutine: Initialize "current" at link time This is a copy of spice-gtk commit commit 25875b2e26a54a08571376da31684eed316df6d5 Author: Frediano Ziglio <freddy77@gmail.com> Date: Tue Aug 11 17:51:18 2020 +0100 coroutine: Initialize "current" at link time coroutine: Remove "release" field Not used and implemented in different ways by the various coroutine implementations This is a copy of spice-gtk commit: commit ca2e4ec3bb4f5ce590b8c35fe173247c71958f20 Author: Frediano Ziglio <freddy77@gmail.com> Date: Tue Aug 11 17:49:53 2020 +0100 coroutine: Remove "release" field coroutine: Make coroutine_swap static Only used by different coroutine implementations This is a copy of the spice-gtk commit: commit 5f162843f96baf54c74cb9a5fe9b3b5801026d14 Author: Frediano Ziglio <freddy77@gmail.com> Date: Tue Aug 11 17:45:40 2020 +0100 coroutine: Make coroutine_swap static coroutine-gthread: Modernize a bit coroutine-gthread. This is a copy of the spice-gtk commit: commit 274ea2683bb1c9e88ce58e2640e84a47a8fcb939 Author: Marc-André Lureau <marcandre.lureau@redhat.com> Date: Fri Jan 4 17:38:28 2019 +0400 coroutine-gthread: fix GThread deprecations coroutine: error out on OOM or impossible conditions Take an approach similar to gthreads, which are considered as low level/must work features by glib, which aborts on failures. This change is copied from the spice-gtk commit: commit 0508f586be974a49497a15d5ce39b2f94b68a4bf Author: Marc-André Lureau <marcandre.lureau@redhat.com> Date: Tue Nov 19 15:29:28 2013 +0100 coroutine: error out on OOM or impossible conditions coroutine: make gthread coroutine pass tests The coroutine entry() return value must be passed via the caller->data, since coroutine_swap() returns from->data. (this is needed because coroutine_swap() argument is used both to return from entry() or to send data to a running coroutine) When leaving a coroutine, clear its caller. Return correct coroutine_self() before other coroutine are initialized. This is a copy of spice-gtk commit commit 0c120e0f6d94da5b7aa2009e8c07fc1290722c01 Author: Marc-André Lureau <marcandre.lureau@redhat.com> Date: Tue Nov 19 14:57:05 2013 +0100 coroutine: make gthread coroutine pass tests coroutine: fix current coroutine When leaving a coroutine, it swaps back to where it came from, not to the leader/main coroutine. This is a copy of spice-gtk commit commit a9a2c162e0ee03f80e3e6f7450a002719a80d06a Author: Marc-André Lureau <marcandre.lureau@redhat.com> Date: Fri Nov 15 22:03:40 2013 +0100 coroutine: fix current coroutine coroutine: add some preconditions This is a copy of spice-gtk commit commit baa51c5ee34ca6d0448d02901a0a61dc87c3dff8 Author: Marc-André Lureau <marcandre.lureau@redhat.com> Date: Fri Nov 15 22:03:39 2013 +0100 coroutine: add some preconditions use _setjmp/_longjmp to speed up coroutine switching As described in http://www.1024cores.net/home/lock-free-algorithms/tricks/fibers This is a copy from spice-gtk of commit 1cbfe2b8fccb86a20039867fc33bc475f358f8e4 Author: Marc-André Lureau <marcandre.lureau@redhat.com> Date: Fri Aug 12 16:32:20 2011 +0200 use _setjmp/_longjmp to speed up coroutine switching build: disable syntax-check on non-Linux The rules expect GNU make which is not the default. build: remove disabled / irrelevant syntax-check rules Many of the GNULIB rules are explicitly disabled, while others are testing for scenarios that don't apply because we don't use GNULIB, and prefer glib2 APIs over raw platform libc APIs. build: purge parts of maint.mk unrelated to syntax-check build: fix syntax-check test case to actually do something The syntax-check script was setting the wrong current directory, so make was reporting nothing todo, making the test a no-op. examples: remove tabs from python demo 2022-12-23 Olga Smirnova <mistresssilvara@hotmail.com> Add Interlingue translation 2022-11-28 Marc-André Lureau <marcandre.lureau@redhat.com> build-sys: export vnc_color_map_lookup() It's in the public API. 2022-09-13 Marc-André Lureau <marcandre.lureau@redhat.com> rpm: add reference documentation build-sys: build API docs with gi-docgen gtk-doc is being phased out, as unmaintained. Despite some current limitations or annoyances, gi-docgen is what Glib/Gtk+ is using these days, so follow along. I didn't include gvncpulse, it should be trivial to add if necessary... build-sys: build meson requirement to >=0.56 Modernize a little bit the meson file, to avoid extra warnings when running a recent meson versions. 2022-09-06 Marc-André Lureau <marcandre.lureau@redhat.com> Add g_autoptr API for exported allocated types 2022-08-08 Daniel P. Berrangé <berrange@redhat.com> rpm: merge mingw specfile into native spec Fedora best practice is to now maintain native and mingw builds together, to prevent mingw falling behind and reduce the maint burden. 2021-03-31 Daniel P. Berrangé <berrange@redhat.com> 2015-06-03 Pedro Albuquerque <palbuquerque73@gmail.com> 2010-04-24 Takeshi AIHANA <takeshi.aihana@gmail.com> 2009-09-08 Piotr Drąg <piotrdrag@gmail.com> 2009-08-19 Daniel Nylander <po@danielnylander.se> 2008-12-07 Daniel P. Berrange <berrange@redhat.com> Added tag release-0.3.8 for changeset 501ba11b47f0 Update ChangeLog/News/version info to 0.3.8 Fix key mapping with evdev Initial RPM spec for mingw & add mingw to automated builds 2008-11-26 Daniel P. Berrange <berrange@redhat.com> Use GVNC_DEBUG instead of fprintf for diagnostic 2008-11-19 anthony@squirrel <anthony@squirrel> branch merge Update licensing text for all files to be the full FSF LGPL preamble. Switch to an older, still public domain version of d3des. The RealVNC changes were GPL and we wish to remain LGPL. 2008-11-17 Daniel P. Berrange <berrange@redhat.com> Simplify keyboard modifier handling to try and fix non-US keyboards 2008-11-12 Daniel P. Berrange <berrange@redhat.com> Save updates dimensions from resize event Avoid triggering bogus screen updates for pseudo-encodings Fix Win32 socket/fd handle mix-up. Make read/write routines always use the FD, not the giochannel which could be a socket handle on win32 2008-10-30 Daniel P. Berrange <berrange@redhat.com> Fix $(DESTDIR) in plugin rule Use LIBS instead of LDFLAGS when checking for cairo for Win32 portability (Richard Jones) Ignore more gnulib files Replace __MINGW32__ with WIN32 macro (Richard Jones) Call winsock initialization functions on startup (patch from Richard Jones) Use ioctl() instead of ioctlsocket() on Win32 platforms Switch to using recv/send for I/O to work on Win32 platforms 2008-10-09 Daniel P. Berrange <berrange@redhat.com> Import gnulib, and make use of it for mingw portability Merge heads Allow ungrab sequence if currently grabbed, even if abs pointer mode is active Add missing mutex lock calls at init time 2008-09-15 Jonh Wendell <wendell@bani.com.br> Fix the scaling factor for mouse motion. Fix checking gdk_cairo_create() in configure.ac 2008-09-11 Daniel P. Berrange <berrange@redhat.com> Use cairo for drawing if available, including scaling support Remove use of gtkglext for scaling 2008-09-05 Daniel P. Berrange <berrange@redhat.com> Added tag release-0.3.7 for changeset 37c0b4255895 Re-generate changelog Update version & NEWS for 0.3.7 Register internal signal handlers against class, instead of each object 2008-06-30 Jonh Wendell <wendell@bani.com.br> Added vnc_display_[gs]et_force_size(), which tell if the widget has a fixed size. This helps scaling down work properly. 2008-06-05 Jonh Wendell <wendell@bani.com.br> Backed out changeset dba0c3d837dd 2008-06-04 Jonh Wendell <wendell@bani.com.br> Fix an error message in destructor, when using scaling 2008-06-01 Jonh Wendell <wendell@bani.com.br> Do more checks if connection is still alive in initialisation. This fix a crash when closing the connection right after connecting. 2008-05-30 Jonh Wendell <wendell@bani.com.br> Use a preferred pixmap format when we receive true_color_flag 0 from server 2008-05-29 Jonh Wendell <wendell@bani.com.br> Ignore CTRL-ALT key combination if we are autograbbing and pointer is absolute 2008-05-21 Daniel P. Berrange <berrange@redhat.com> Ungrab pointer upon loosing focus 2008-05-06 Anthony Liguori <anthony@codemonkey.ws> Added tag release-0.3.6 for changeset 9daca7e451a5 branch merge Added tag release-0.3.6 for changeset 8050c87f404b Update for 0.3.6 Added tag release-0.3.6 for changeset 854c8ce46e5a 2008-04-30 Jonh Wendell <wendell@bani.com.br> Created a function to let the app take control over the shared flag. 2008-04-27 Jonh Wendell <wendell@bani.com.br> Implement preferable auth methods 2008-04-24 Daniel P. Berrange <berrange@redhat.com> Fix typo 2008-04-22 Daniel P. Berrange <berrange@redhat.com> Fix gcc warning about variable that can be clobbered by longjump/vfork (Atsushi Sakai) Use regex for symbol visibility in linker on Solaris (Halton Huo) 2008-04-15 Jonh Wendell <wendell@bani.com.br> Fixed a crash when closing the connection in a middle of an update 2008-04-11 Jonh Wendell <wendell@bani.com.br> Use GLib memory functions 2008-04-06 Anthony Liguori <anthony@codemonkey.ws> Added tag release-0.3.5 for changeset d8003db700fd Prepare for 0.3.5 release 2008-04-04 Jonh Wendell <wendell@bani.com.br> Maintain the consistency: create with g_strdup, free with g_free 2008-04-04 Daniel P. Berrange <berrange@redhat.com> Fixed z-buffer depth to avoid rendering ontop of other windows. Enable scaling in gvncviewer if not composited 2008-04-03 Jonh Wendell <wendell@bani.com.br> Dropped DEBUG_CFLAGS from plugin/Makefile.am, noticed by Richard W.M. Jones Use g_strdup() instead of strdup() in vnc_display_open_host(): It doesn't crash if we pass NULL as argument. 2008-04-02 Daniel P. Berrange <berrange@redhat.com> Fix makecontext() for 64-bit args Fixed endianness conversions. Disable ZRLE for broken pixel depths. Fix CPIXEL size calculations 2008-04-02 Atsushi SAKAI <sakaia@jp.fujitsu.com> This fixes following warnings about x_keymap. x_keymap.c:149: warning: no previous prototype for 'x_keymap_set_keymap_entries' x_keymap.c:162: warning: no previous prototype for 'x_keymap_free_keymap_entries' At this moment, all compile warnings are cleanuped by this patch. 2008-04-02 Jonh Wendell <wendell@bani.com.br> Re-checked protocol version negotiation 2008-04-01 Jonh Wendell <wendell@bani.com.br> Added a workaround to work with AppleVNCServer, based on patch from Jin Choi Fix some warnings, patch from Atsushi SAKAI 2008-03-30 Jonh Wendell <wendell@bani.com.br> Changed debug output in protocol initialization 2008-03-29 Jonh Wendell <wendell@bani.com.br> Changed debug behavior. Dropped --enable-debug flag in configure stage. We always build with debug framework. Also, we use GLib to generate debug messages, through g_debug() function, and we provide a new public symbol, vnc_display_get_option_group(), to be used with the GLib's command line parser, GOptionContext. 2008-03-25 Jonh Wendell <wendell@bani.com.br> Use GLib's G_N_ELEMENTS instead of our ARRAY_SIZE macro Added GObject properties 2008-03-19 Daniel P. Berrange <berrange@redhat.com> Fix multiple big-endian conversion bugs 2008-03-19 Atsushi SAKAI <sakaia@jp.fujitsu.com> This is code clean up of "{" location. 2008-03-15 Jonh Wendell <wendell@bani.com.br> Put more debug output 2008-03-14 Jonh Wendell <wendell@bani.com.br> branches merged Added _get() for various properties 2008-03-14 Hiroyuki Kaguchi <fj7025cf@aa.jp.fujitsu.com> This patch fixes compilation warnings for ISO_Left_Tab feature. 2008-03-12 Hiroyuki Kaguchi <fj7025cf@aa.jp.fujitsu.com> I make the patch that applied your two indications. Moreover, this patch contains the fix of two bugs and a modification besides the indications. The change points from the last patch: 1)Use GDK key symbols instead of X11 key symbols. 2)Remove CR characters. 3)Make keycode conversion function. - I make the keycode conversion function on "x_keymap.c". 4)Modify structure used for keycode conversion. - The type of the keycodes member variable is changed from "guint*" to "GdkKeymapKey*". 5)Modify getting timing and release timing of keymap entries. - Because "g_free" function is not called on the last patch, the memory leak is done. 2008-03-11 Anthony Liguori <anthony@codemonkey.ws> Propagate key press events. This is needed for kvm-test. Add accessor to determine if widget is in absolute mode. This is needed by kvm-test. 2008-03-07 Anthony Liguori <anthony@codemonkey.ws> branch merge 2008-03-07 Daniel P. Berrange <berrange@redhat.com> Don't setup gl textures if display isn't active 2008-03-07 Atsushi SAKAI <sakaia@jp.fujitsu.com> This patch changes endian definition from endian.h to gtypes.h. A.L. also remove endian.h include fix typos 2008-03-06 Anthony Liguori <anthony@codemonkey.ws> Added tag release-0.3.4 for changeset 313620c58d69 Update news for release Added tag release-0.3.4 for changeset a1fb42cb7694 2008-03-05 Daniel P. Berrange <berrange@redhat.com> Add missing BuildRequires for gnutls/gtkglext. Add sub-package for mozilla plugin (disabled by default) Make configure.ac check for mozilla-plugin pkgconfig file for Firefox 3 build compatabiltiy 2008-03-02 Anthony Liguori <anthony@codemonkey.ws> Added tag release-0.3.4 for changeset 96433efe0e7d We don't use tex_max so let's not query it for now. Added tag release-0.3.4 for changeset fa6db40bad43 Prepare for release and also make gtkgl usage transparent. Added tag release-0.3.4 for changeset 7ea3a341f452 Added tag release-0.3.4 for changeset 09836ab4d17a Fixup cursor grab so that it works properly in relative mode. For the Hardy release cycle, Ubuntu seems to be building some versions of GTK with G_ENABLE_DEBUG. When G_ENABLE_DEBUG is set, the marshal functions use g_value_get_XXX() instead of directly accessing the members. This function will validate that the parameter holds the exact type of value being requested. Without G_ENABLE_DEBUG set, no parameter type checking is done. After writing a marshaling function from scratch, I discovered that what we really need to use is the BOXED marshaling type as this is the GValue type that a GValueArray will be set to. This should hopefully fix this problem once and for all. Remove unused function Remove debug printf. 2008-03-02 Marton Balint <cus@fazekas.hu> A break statement is missing from the key event handler, where the keypress event of an already pressed key is sent as a key release and a key press event. Without this patch, the effect of the normal auto-repeat is multiplied, and if you hold down the backspace key for a long time and then release it, you won't be able to press a key before releasing the previously pressed key. 2008-03-02 Atsushi SAKAI <sakaia@jp.fujitsu.com> This patch removes redundunt headers from examples/gvncviewer.c. Currently network is handled on src/gvnc.c 2008-02-26 Daniel P. Berrange <berrange@redhat.com> Do key event tracking based on scancode instead of keyval to ensure matching press & release events 2008-02-26 Atsushi SAKAI <sakaia@jp.fujitsu.com> This is compilation warning fix for Cset153. 2008-02-22 Atsushi SAKAI <sakaia@jp.fujitsu.com> This patch clean up all compilation warning except vncmarshal.c 2008-02-22 Saori Fukuta <fukuta.saori@jp.fujitsu.com> At Cset:127, Anthony changed the c_marshaller of vnc-auth-credentials from PARAM to POINTER, and also the parameter types changed from G_TYPE_VALUE_ARRAY to G_TYPE_POINTER. http://gtk-vnc.codemonkey.ws/hg/outgoing.hg/rev/a720c8172a85 Do we need to change the parameter type ? AL: this fixes not only Python, but more recent versions of GTK that are very strict about enforcing the type of the signal parameter. 2008-02-22 Anthony Liguori <anthony@codemonkey.ws> Branch merge 2008-02-21 Anthony Liguori <anthony@codemonkey.ws> Fix compile warnings introduced by previous commit. 2008-02-21 Stefano Stabellini <stefano.stabellini@eu.citrix.com> Hi all, I am attaching a simple patch to add support for WMVi in gtk-vnc. Seems to work well with xen-unstable. 2008-02-19 Daniel P. Berrange <berrange@redhat.com> Re-add bits of big endian fix which got lost in merge Added missing variable 2008-02-18 Daniel P. Berrange <berrange@redhat.com> Merge heads Fix big endian color conversion (Hiroyuki Kaguchi) 2008-02-18 Jonh Wendell <wendell@bani.com.br> Added lots of debug messages where we set the flag has_error to TRUE 2008-02-09 Jonh Wendell <wendell@bani.com.br> Show 'support scaling?' in configure summary 2008-02-08 Jonh Wendell <wendell@bani.com.br> Focus the widget on mouse click 2008-02-08 Anthony Liguori <anthony@codemonkey.ws> Make sure to free image data on close. Make sure to draw something to the widget even when not connected. 2008-02-07 Anthony Liguori <anthony@codemonkey.ws> Add interface to force pointer grab. Make sure to support key break when using raw keycodes on_resize() is called based on some events which aren't in a coroutine. So we need to supress the signals when called like this to avoid yielding to a non-existent coroutine. Always emit signals from system coroutine. When using threads to simulate coroutines, GTK gets very confused as signal handlers are run in a different thread than the main loop when the signal handlers aren't expecting it. This patch changes all of the signals emitted from the VNC coroutine to use a delay function to actually issue the signals. This appears to fix the GThread coroutine issue. Revert e65d8e4758b3eed4ae7b3a225c2d5a35d9de146b until we figure out what the regression it introduced with UltraVNC. SetActive has the behavior we want so let's use that. Update cursor grab to have the following behavior: For normal VNC servers, keyboard/mouse grab should only be activated when ctrl-alt is clicked. If the server is doing cursor offloading, we should use that cursor. For servers supporting PointerTypeChange, when in absolute mode, they should behave as above. When in relative mode, pointer grab should also be activated on the first left-click in the window. The cursor should *not* be hidden when cursor grab is not activated. 2008-02-07 Hiroyuki Kaguchi <fj7025cf@aa.jp.fujitsu.com> When the endian between VNC server and X server is different, the displayed color is abnormal. This is because the endian conversion of the pixel data is not done . X server that uses big endian cannot be used. The reason is that most Linux vncserver sends data by little endian. Of course, Fedora8(Linux) and Windows(Xming) works fine, since it uses little endian for X protocol. This patch applies follows: (a)The endian conversion function is called by the SET_PIXEL function. (b)It is checked whether there is difference in endian between X server and VNC Server. (c)The byte_order variable is added to the gvnc_framebuffer structure. Sign-off-by: Hiroyuki Kaguchi <fj7025cf@aa.jp.fujitsu.com> 2008-02-06 Atsushi SAKAI <sakaia@jp.fujitsu.com> Just remove redundunt code. (same action is doing on coroutine_swap()) 2008-02-05 Anthony Liguori <anthony@codemonkey.ws> Make sure to flush the gl buffer. This fixes updates on some graphics cards. This patch was originally from Dan Berrange. 2008-02-04 Anthony Liguori <anthony@codemonkey.ws> Add the new symbol 2008-02-02 Anthony Liguori <anthony@codemonkey.ws> Support VNC Scancode extension. Support for OpenGL scaling Added tag release-0.3.3 for changeset 784fc0419a5e Prepare for 0.3.3 release 2008-01-29 Atsushi SAKAI <sakaia@jp.fujitsu.com> Fix ZRLE encoding where multiple palette sizes of different lengths occur in a single update. 2008-01-27 Anthony Liguori <anthony@codemonkey.ws> Change vnc-auth-credentials to a POINTER instead of a PARAM. Newer versions of gtk are enforcing that PARMs are actually PARAMs so this was triggering an assert. We switch to POINTER to avoid breaking the ABI. 2008-01-25 Richard W.M. Jones <rjones@redhat.com> After some discussion here about plugin security, this documents what we think are the potential vulnerabilities of letting an unconstrained plugin live in your browser 2008-01-21 Anthony Liguori <anthony@codemonkey.ws> Clarify license to be LGPLv2 or later. Make sure to free coroutine after it exits 2008-01-16 Jonh Wendell <wendell@bani.com.br> Print a debug message when receive an unknown message 2008-01-15 Daniel P. Berrange <berrange@redhat.com> Hide password characters in auth text entry (Rich Jones) 2008-01-15 Anthony Liguori <anthony@codemonkey.ws> When doing pixel math, we have to take endianness into account. This sucks for performance :-/ Fix case where client byte order != server byte order 2008-01-11 Richard W.M. Jones <rjones@redhat.com> This patch contains further fixes to the browser plugin: (1) As Dan suggested, use -module -avoid-version. This still installs a static library and the linker script, both of which are unhelpful to have in the plugins directory, so I have to delete them by hand. Couldn't see any option in the libtool info to not have it build or install those. (2) Use the global ENABLE_DEBUG setting to turn on/off debug messages. (3) Move the debug() function into a common header file. (4) Include test.html, which I missed out from the first patch. (5) Put #if 1 ... #endif around the Gtk toolkit test. I'll probably remove this test altogether in future since (in theory) XEmbed should let you embed a widget from any toolkit in any other toolkit, so this test doesn't really matter. 2008-01-11 Jonh Wendell <wendell@bani.com.br> Output configure summary 2008-01-11 Anthony Liguori <anthony@codemonkey.ws> Add the files from the plugin patch. Sorry about that! 2008-01-11 Richard W.M. Jones <rjones@redhat.com> Gtk-VNC browser plugin. This patch detects if the server responds with (illegal) VNC protocol version "3.6" and negotiates version 3.3. (This fix actually supplied for me by Dan Berrange ...) 2008-01-11 Anthony Liguori <anthony@codemonkey.ws> uint8_t's are always greater than 0 and less than 255. Removing these checks keeps GCC happy. 2008-01-11 Halton Huo <halton.huo@sun.com> suncc does not range case for swith statement. 2008-01-11 Richard W.M. Jones <rjones@redhat.com> If you call one of the vnc_display_open* functions followed quickly by vnc_display_close, then the library segfaults. The reason is that the vnc_display_open* functions register an idle callback to launch the coroutine, but if vnc_display_close is called before the idle loop has had a moment to run, this idle callback remains. The coroutine later runs - in my case, after the plugin I'm writing has been unmapped from memory, with unhappy consequences. The attached patch fixes this by remembering the callback ID and unregistering it if necessary. 2008-01-10 Daniel P. Berrange <berrange@redhat.com> Track keystate & send fake events for GTK key-repeat flaw & to reset state on focus out 2008-01-01 Anthony Liguori <anthony@codemonkey.ws> Relax the jpeg compression a bit. Add support for Tight encoding. Also add an interface to enable the use of lossy-encodings such as the Tight JPEG encoding. 2007-12-31 Anthony Liguori <anthony@codemonkey.ws> Added tag release-0.3.2 for changeset 978cb4791ef2 2007-12-29 Anthony Liguori <anthony@codemonkey.ws> Added tag release-0.3.2-rc0 for changeset ae93c84b5fc8 Client cut text should used buffered writes to avoid race conditions since it may be called while the coroutine is blocked on IO. 2007-12-28 Anthony Liguori <anthony@codemonkey.ws> Added tag release-0.3.2-rc0 for changeset b4006353448c Update news and prepare for 0.3.2 Update ChangeLog Add support for ZRLE encoding Update news Fix rich cursor encoding. If the depth of the server is less than 24, when we built the cursor, we were expanding the smaller pixels to the lower bits of the new pixel instead of the upper bits. The result was that colors in the cursor were showing up as dark grays. This patch refactors the cursor blitting function to be more similar to the rest of the blitting functions and ensures that the proper shift values are used. 2007-12-26 Anthony Liguori <anthony@codemonkey.ws> Update news 2007-12-25 Anthony Liguori <anthony@codemonkey.ws> Add pointer pass through support 2007-12-21 Anthony Liguori <anthony@codemonkey.ws> Remove unused declaration. Remove unused file. Update the NEWS file to make the next release a bit easier. Add gthread-based coroutine implementation. Many thanks to danpb for autconf support. 2007-12-20 Anthony Liguori <anthony@codemonkey.ws> Add support for RRE encoding. We weren't passing the right number of encodings to set_encodings(). This is actually non-standard behavior since all clients are required to support at least raw! 2007-12-19 Anthony Liguori <anthony@codemonkey.ws> Revert support for shared memory transport. The code is fine but the protocol definition is incomplete. The current protocol has a race condition whereas the guest may disconnect before acking the shmid which can lead to shared memory segment being leaked. Besides, I think I need to add an accessor to gdkimage to get the shared memory ID instead of reinventing the wheel. 2007-12-14 Anthony Liguori <anthony@codemonkey.ws> Add an interface for setting the widget to be read-only Propagate mouse events. Extend send_keys() interface to allow raw key presses to be generated. Make sure the Display.send_keys() returns a value. 2007-12-13 Anthony Liguori <anthony@codemonkey.ws> Added tag release-0.3.1 for changeset 493439fe2664 Prepare for 0.3.1 release and fix bug in autogen script. 2007-12-12 Anthony Liguori <anthony@codemonkey.ws> Added tag release-0.3.0 for changeset 1bbb129cb1ca Prepare for 0.3.0 release 2007-11-24 Jonh Wendell <wendell@bani.com.br> gvnc_open_host(): Do not consider connect() return value EISCONN as an error, fix connection in Solaris 2007-10-26 Daniel P. Berrange <berrange@redhat.com> Prefix yield()/yieldto() methods with coroutine_ to avoid namespace clash with unistd on Solaris Re-order SPLICE macros to avoid Solaris compiler/cpp bug (patch from Halton Huo) 2007-10-21 Jonh Wendell <wendell@bani.com.br> Grab the cursor correctly 2007-10-10 Daniel P. Berrange <berrange@redhat.com> Clear coroutine caller when exiting coroutine 2007-10-10 Jonh Wendell <wendell@bani.com.br> Added the mask GDK_KEY_PRESS_MASK to the widget 2007-10-05 Daniel P. Berrange <berrange@redhat.com> Fix to coroutine caller state management to avoid SEGV 2007-10-04 Jonh Wendell <wendell@bani.com.br> Added support to bell message in vncdisplay widget. Implemented clipboard feature in vncdisplay widget 2007-10-03 Jonh Wendell <wendell@bani.com.br> Added a signal for unsupported auth method 2007-10-02 Jonh Wendell <wendell@bani.com.br> Added compatibility to RFB 3.4 (UltraVNC again) 2007-09-26 Daniel P. Berrange <berrange@redhat.com> Remove use of PROT_EXEC with mmap to avoid execmem SELinux errors 2007-09-13 Daniel P. Berrange <berrange@redhat.com> Added tag release-0.2.0 for changeset cebd472323b7 Regenerate changelog Remove unused variable Prepare for 0.2.0 release Added signals for authentication failure reports & desktop resizes 2007-09-10 Daniel P. Berrange <berrange@redhat.com> Support VINO's TLS auth method 2007-09-01 Jonh Wendell <wendell@bani.com.br> Added some paranoid checkings before free() the things 2007-08-31 Daniel P. Berrange <berrange@redhat.com> Hook into destroy method to do shutdown of GVNC couroutine. Keep a ref on vncdisplay, so widget isn't finalized unless the GVNC coroutine is complete Monitor IO errors & close socket when shutting down to interrupt poll() Get graceful shutdown working correctly (ie interrupting & waking up message thread) 2007-08-31 Jonh Wendell <wendell@bani.com.br> Added a destructor for VncDisplay widget Added some ignored files to hgignore Uses g_signal_connect() instead of gtk_signal_connect() 2007-08-31 Daniel P. Berrange <berrange@redhat.com> Added impl of xcursor and richcursor encodings for OSX-VNC and TightVNC compatability Fix decoding of mixed colour depths between client & server 2007-08-29 Jonh Wendell <wendell@bani.com.br> Enable debugging messages 2007-08-22 Daniel P. Berrange <berrange@redhat.com> Clear excess space in widget Fixed handling of shifts for BGR displays and mixed endian client vs server typedef the enums to aid API readability/docs generation Fix offf by one in argv use 2007-08-15 Daniel P. Berrange <berrange@redhat.com> Added tag release-0.1.0 for changeset 87259132efca Update version to 0.1.0 for release Fix makefile rule for python bindings to install in lib64 on x86_64 2007-08-13 Daniel P. Berrange <berrange@redhat.com> Merge heads Added support for TLS related credentials 2007-08-01 Jonh Wendell <wendell@bani.com.br> Changed boolean functions (which use gvnc_has_error) to return FALSE when failure 2007-07-31 Daniel P. Berrange <berrange@redhat.com> Fixed up handling of TLS i/o functions Only print GNU TLS debug if debug level > 1 Remove hardcoded hostname & use user supplied hostname in certificate validation 2007-07-20 Daniel P. Berrange <berrange@redhat.com> Added API for taking a screenshot Fixed typo in conditional test Added more general purpose authentication API Refactor GVNC open/close lifecycle APIs 2007-07-19 Anthony Liguori <anthony@codemonkey.ws> [PATCH] Enhance gvncviewer a bit This patch adds the following to gvncviewer: 1) install by default 2) make title consistently displayed 3) make the VNC session part of the title 4) use a command line syntax more common with vnc viewers merge Line up the output of ./configure --help and correct a typo 2007-07-19 Daniel P. Berrange <berrange@redhat.com> Merge 2007-07-18 Daniel P. Berrange <berrange@redhat.com> Added vnc_display_send_keys API & example usage 2007-07-18 Anthony Liguori <anthony@codemonkey.ws> Buffer client messages to avoid race condition when write() blocks. 2007-07-15 Daniel P. Berrange <berrange@redhat.com> Run automated builds with -Werror enabled Disable verbose compiler warnings for python module - the auto-generated code is crap 2007-07-12 Anthony Liguori <anthony@codemonkey.ws> merge Expose GVNC in libgtk-vnc-1.0 This patch exposes gvnc as part of the public API for libgtk-vnc. We won't considered this a supported API for the first release. I'm using this lower level API at the moment to build an automation system. 2007-07-10 Daniel P. Berrange <berrange@redhat.com> Fixed keycode -> keysym conversion wrt to modifier state Fix coroutine cleanup/release Allow local pointer hiding to be configurable Add APIs for keyboard & pointer grab policy Treat EHOSTUNREACH as non-fatal connection error 2007-07-04 Daniel P. Berrange <berrange@redhat.com> Separate creation of gvnc object, from connect opening. Add ability to free/cleanup object & notify upon disconnect Use constants for framebuffer encodings Added really simple example programs in both C & python Allow connecting based on a host & port, vs a filedescriptor Tidy whitespace & put emacs formatting rules at bottom of files Fixed a number of compiler warnings Switched over to using automake/conf/libtool. Added pkgconfig data file. Added linker script to control library symbols 2007-06-20 Jonh Wendell <wendell@bani.com.br> - Created two public get functions: get_width() and get_height() - Created a vnc-initialized signal - Made small changes in order to work with ultravnc, which reports rfb 3.6 2007-02-24 Anthony Liguori <anthony@codemonkey.ws> Make sure to flush after set_shared_memory merge Add initial support for shared memory transport. It's off by default. 2007-02-24 Daniel P. Berrange <berrange@redhat.com> Merge heads Buffer all outgoing writes until gvnc_flush() is called. Fix signed/unsigned comparisons Add in missing diffie-hellman params. Fixed reading of TLS data wrt to internal buffer 2007-02-23 Anthony Liguori <anthony@codemonkey.ws> Fix python widget build and add proper support for RFB 3.3 2007-02-22 Daniel P. Berrange <berrange@redhat.com> Support the plain no X509 certificate auth types. Remove mistaken 1 byte write. Allow use of TLS 1.0 for compatability Initial suppport for protocol 3.7/3.8 and VeNCrypt TLS authentication Remove redundant call to resize - gvnc_set_vnc_ops triggers a resize signal 2007-01-06 anthony@rhesus <anthony@rhesus> Some updates Reorganize repo and create a proper setup.py Add licensing stuff Add a proper set of signals to notify of grab change 2006-12-20 anthony@rhesus <anthony@rhesus> Put vnc widget into a separate repo