guibuilder_pel7x64builder0
6 years ago
11 changed files with 1271 additions and 0 deletions
@ -0,0 +1,46 @@
@@ -0,0 +1,46 @@
|
||||
From 9fe889dbd9e97ee947f13da3c86891940a1a1406 Mon Sep 17 00:00:00 2001 |
||||
From: "Daniel P. Berrange" <berrange@redhat.com> |
||||
Date: Thu, 6 Apr 2017 17:12:24 +0100 |
||||
Subject: [PATCH] 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. |
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> |
||||
(cherry picked from commit 77bd7cd620a1f9d45f9d479b55a5cba807732b91) |
||||
--- |
||||
src/vncconnection.h | 2 +- |
||||
1 file changed, 1 insertion(+), 1 deletion(-) |
||||
|
||||
diff --git a/src/vncconnection.h b/src/vncconnection.h |
||||
index 8c1fa28..3477d1b 100644 |
||||
--- a/src/vncconnection.h |
||||
+++ b/src/vncconnection.h |
||||
@@ -85,7 +85,7 @@ struct _VncConnectionClass |
||||
* If adding fields to this struct, remove corresponding |
||||
* amount of padding to avoid changing overall struct size |
||||
*/ |
||||
- gpointer _vnc_reserved[VNC_PADDING_LARGE - 5]; |
||||
+ gpointer _vnc_reserved[VNC_PADDING_LARGE - 2]; |
||||
}; |
||||
|
||||
|
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
From 871f698cfdd4a7a43e3a155e2b31a13bf54a3cc5 Mon Sep 17 00:00:00 2001 |
||||
From: "Daniel P. Berrange" <berrange@redhat.com> |
||||
Date: Thu, 6 Apr 2017 17:18:33 +0100 |
||||
Subject: [PATCH] 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. |
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> |
||||
(cherry picked from commit 1f508111add33f0e4ceb4425132777d781974730) |
||||
--- |
||||
src/vncconnectiontest.c | 3 +-- |
||||
1 file changed, 1 insertion(+), 2 deletions(-) |
||||
|
||||
diff --git a/src/vncconnectiontest.c b/src/vncconnectiontest.c |
||||
index 6a5e49c..7caaa6e 100644 |
||||
--- a/src/vncconnectiontest.c |
||||
+++ b/src/vncconnectiontest.c |
||||
@@ -187,8 +187,7 @@ static void test_helper_desktop_resize(VncConnection *conn, |
||||
test->pixels = g_new0(guint8, width * height * 4); |
||||
|
||||
fb = vnc_base_framebuffer_new(test->pixels, width, height, width * 4, |
||||
- remoteFormat, |
||||
- &localFormat); |
||||
+ &localFormat, remoteFormat); |
||||
|
||||
vnc_connection_set_framebuffer(conn, VNC_FRAMEBUFFER(fb)); |
||||
|
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
From b608ab801c6dfd5babd224d5f8a21010ccb64b28 Mon Sep 17 00:00:00 2001 |
||||
From: "Daniel P. Berrange" <berrange@redhat.com> |
||||
Date: Thu, 6 Apr 2017 17:21:29 +0100 |
||||
Subject: [PATCH] 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. |
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> |
||||
(cherry picked from commit c3e5d23d67c9a209f127caab7843d94a91031a5f) |
||||
--- |
||||
src/vncconnection.c | 2 +- |
||||
1 file changed, 1 insertion(+), 1 deletion(-) |
||||
|
||||
diff --git a/src/vncconnection.c b/src/vncconnection.c |
||||
index 19dbfee..c55f71d 100644 |
||||
--- a/src/vncconnection.c |
||||
+++ b/src/vncconnection.c |
||||
@@ -3064,7 +3064,7 @@ static void vnc_connection_xcursor(VncConnection *conn, guint16 x, guint16 y, gu |
||||
guint8 *pixbuf = NULL; |
||||
guint8 *data, *mask, *datap, *maskp; |
||||
guint32 *pixp; |
||||
- int rowlen; |
||||
+ guint rowlen; |
||||
int x1, y1; |
||||
guint8 fgrgb[3], bgrgb[3]; |
||||
guint32 fg, bg; |
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
From 605811dbb15450037befa3e3b120f737f4625752 Mon Sep 17 00:00:00 2001 |
||||
From: "Daniel P. Berrange" <berrange@redhat.com> |
||||
Date: Thu, 6 Apr 2017 17:24:50 +0100 |
||||
Subject: [PATCH] Fix crash when opening connection from a GSocketAddress |
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> |
||||
(cherry picked from commit 5368f77d6215d7b6ad1422dff284d288a26ff481) |
||||
--- |
||||
src/vncconnection.c | 6 +++--- |
||||
1 file changed, 3 insertions(+), 3 deletions(-) |
||||
|
||||
diff --git a/src/vncconnection.c b/src/vncconnection.c |
||||
index c55f71d..8cec1af 100644 |
||||
--- a/src/vncconnection.c |
||||
+++ b/src/vncconnection.c |
||||
@@ -5423,13 +5423,13 @@ static gboolean vnc_connection_open_addr_internal(VncConnection *conn) |
||||
VNC_DEBUG("Connecting with addr %p", priv->addr); |
||||
|
||||
sock = vnc_connection_connect_socket(&priv->wait, priv->addr, &conn_error); |
||||
- vnc_connection_set_error(conn, "Unable to connect: %s", |
||||
- conn_error->message); |
||||
- g_clear_error(&conn_error); |
||||
if (sock) { |
||||
priv->sock = sock; |
||||
return TRUE; |
||||
} |
||||
+ vnc_connection_set_error(conn, "Unable to connect: %s", |
||||
+ conn_error ? conn_error->message : ""); |
||||
+ g_clear_error(&conn_error); |
||||
return FALSE; |
||||
} |
||||
|
@ -0,0 +1,36 @@
@@ -0,0 +1,36 @@
|
||||
From 4b202fd478ccbdb504c9c2a52b5ef4ddcc50838f Mon Sep 17 00:00:00 2001 |
||||
From: "Daniel P. Berrange" <berrange@redhat.com> |
||||
Date: Tue, 11 Apr 2017 10:47:56 +0100 |
||||
Subject: [PATCH] Fix crash when no error is set after connection failure |
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> |
||||
(cherry picked from commit a51e6a6973e9bdfcba0e52d3f9ee37686cd95db9) |
||||
--- |
||||
src/vncconnection.c | 7 ++++--- |
||||
1 file changed, 4 insertions(+), 3 deletions(-) |
||||
|
||||
diff --git a/src/vncconnection.c b/src/vncconnection.c |
||||
index 8cec1af..e5b43a0 100644 |
||||
--- a/src/vncconnection.c |
||||
+++ b/src/vncconnection.c |
||||
@@ -5428,7 +5428,7 @@ static gboolean vnc_connection_open_addr_internal(VncConnection *conn) |
||||
return TRUE; |
||||
} |
||||
vnc_connection_set_error(conn, "Unable to connect: %s", |
||||
- conn_error ? conn_error->message : ""); |
||||
+ conn_error ? conn_error->message : "Unknown problem"); |
||||
g_clear_error(&conn_error); |
||||
return FALSE; |
||||
} |
||||
@@ -5466,8 +5466,9 @@ static gboolean vnc_connection_open_host_internal(VncConnection *conn) |
||||
} |
||||
g_object_unref(enumerator); |
||||
if (!sock) { |
||||
- vnc_connection_set_error(conn, "Unable to connect: %s", |
||||
- conn_error->message); |
||||
+ vnc_connection_set_error(conn, "Unable to connect to %s:%s: %s", |
||||
+ priv->host, priv->port, |
||||
+ conn_error ? conn_error->message : "Unknown problem"); |
||||
} |
||||
g_clear_error(&conn_error); |
||||
if (sock) { |
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
From 3691a5e5fdf7aeab78ad9b038994c1d24063a509 Mon Sep 17 00:00:00 2001 |
||||
From: "Daniel P. Berrange" <berrange@redhat.com> |
||||
Date: Tue, 11 Apr 2017 11:06:28 +0100 |
||||
Subject: [PATCH] Report a proper error message if hitting connection timeout |
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> |
||||
(cherry picked from commit 283434730d0cc3a1ee8270e137d71cebe4f0e01b) |
||||
--- |
||||
src/vncconnection.c | 3 +++ |
||||
1 file changed, 3 insertions(+) |
||||
|
||||
diff --git a/src/vncconnection.c b/src/vncconnection.c |
||||
index e5b43a0..2b2bdbb 100644 |
||||
--- a/src/vncconnection.c |
||||
+++ b/src/vncconnection.c |
||||
@@ -103,6 +103,8 @@ |
||||
#endif |
||||
|
||||
|
||||
+#define GTK_VNC_ERROR g_quark_from_static_string("gtk-vnc") |
||||
+ |
||||
struct wait_queue |
||||
{ |
||||
gboolean waiting; |
||||
@@ -5386,6 +5388,7 @@ static GSocket *vnc_connection_connect_socket(struct wait_queue *wait, |
||||
*error = NULL; |
||||
VNC_DEBUG("Socket pending"); |
||||
if (!g_io_wait_interruptable(wait, sock, G_IO_OUT|G_IO_ERR|G_IO_HUP)) { |
||||
+ g_set_error(error, GTK_VNC_ERROR, 0, "%s", "Connection timed out"); |
||||
VNC_DEBUG("connect interrupted"); |
||||
timeout = 0; |
||||
goto timeout; |
@ -0,0 +1,241 @@
@@ -0,0 +1,241 @@
|
||||
From 7079fa855bfbaff0d14122eac27e96a6a6637a17 Mon Sep 17 00:00:00 2001 |
||||
From: "Daniel P. Berrange" <berrange@redhat.com> |
||||
Date: Tue, 11 Apr 2017 11:41:03 +0100 |
||||
Subject: [PATCH] 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. |
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> |
||||
(cherry picked from commit f5623cbc63bb0a835bc662d451cc5128d683bd5d) |
||||
--- |
||||
src/vncconnection.c | 134 +++++++++++++++++++++++++++++++++++----------------- |
||||
1 file changed, 90 insertions(+), 44 deletions(-) |
||||
|
||||
diff --git a/src/vncconnection.c b/src/vncconnection.c |
||||
index 2b2bdbb..1ddf38d 100644 |
||||
--- a/src/vncconnection.c |
||||
+++ b/src/vncconnection.c |
||||
@@ -347,6 +347,23 @@ static GIOCondition g_io_wait(GSocket *sock, GIOCondition cond) |
||||
} |
||||
|
||||
|
||||
+static void g_io_wakeup(struct wait_queue *wait) |
||||
+{ |
||||
+ if (wait->waiting) |
||||
+ coroutine_yieldto(wait->context, NULL); |
||||
+} |
||||
+ |
||||
+ |
||||
+static gboolean vnc_connection_timeout(gpointer data) |
||||
+{ |
||||
+ struct wait_queue *wait = data; |
||||
+ |
||||
+ g_io_wakeup(wait); |
||||
+ |
||||
+ return FALSE; |
||||
+} |
||||
+ |
||||
+ |
||||
static GIOCondition g_io_wait_interruptable(struct wait_queue *wait, |
||||
GSocket *sock, |
||||
GIOCondition cond) |
||||
@@ -373,13 +390,6 @@ static GIOCondition g_io_wait_interruptable(struct wait_queue *wait, |
||||
return *ret; |
||||
} |
||||
|
||||
-static void g_io_wakeup(struct wait_queue *wait) |
||||
-{ |
||||
- if (wait->waiting) |
||||
- coroutine_yieldto(wait->context, NULL); |
||||
-} |
||||
- |
||||
- |
||||
/* |
||||
* Call immediately before the main loop does an iteration. Returns |
||||
* true if the condition we're checking is ready for dispatch |
||||
@@ -921,8 +931,13 @@ static int vnc_connection_read(VncConnection *conn, void *data, size_t len) |
||||
} else if (priv->read_offset == priv->read_size) { |
||||
int ret = vnc_connection_read_buf(conn); |
||||
|
||||
- if (ret < 0) |
||||
- return ret; |
||||
+ if (ret < 0) { |
||||
+ if (ret == -EAGAIN) { |
||||
+ return offset == 0 ? -EAGAIN : offset; |
||||
+ } else { |
||||
+ return ret; |
||||
+ } |
||||
+ } |
||||
priv->read_offset = 0; |
||||
priv->read_size = ret; |
||||
} |
||||
@@ -935,7 +950,7 @@ static int vnc_connection_read(VncConnection *conn, void *data, size_t len) |
||||
offset += tmp; |
||||
} |
||||
|
||||
- return 0; |
||||
+ return len; |
||||
} |
||||
|
||||
/* |
||||
@@ -5239,34 +5254,66 @@ static gboolean vnc_connection_after_version (VncConnection *conn, int major, in |
||||
static gboolean vnc_connection_initialize(VncConnection *conn) |
||||
{ |
||||
VncConnectionPrivate *priv = conn->priv; |
||||
- int ret, i; |
||||
+ int ret, i, want; |
||||
char version[13]; |
||||
guint32 n_name; |
||||
+ gboolean partialGreeting = FALSE; |
||||
+ guint timeout; |
||||
|
||||
priv->absPointer = TRUE; |
||||
|
||||
- /* We should technically read the server greeting first. |
||||
- * If the user mistakenly connects to a SPICE server |
||||
- * though, we'll never see the greeting, because with |
||||
- * SPICE the client starts first. |
||||
- * |
||||
- * By sending these 4 bytes first, if the user has |
||||
- * accidentally connected to a SPICE server, it will |
||||
- * notice this garbage and close the connection, avoiding |
||||
- * us waiting forever for a VNC greeting that'll never |
||||
- * come. |
||||
- * |
||||
- * This is harmless for real VNC servers, since the |
||||
- * early send will just be queued until they've sent |
||||
- * their greeting |
||||
- */ |
||||
- vnc_connection_write(conn, "RFB ", 4); |
||||
- vnc_connection_flush(conn); |
||||
+ timeout = g_timeout_add_seconds(2, vnc_connection_timeout, &priv->wait); |
||||
+ want = 12; |
||||
+ while (want > 0) { |
||||
+ priv->wait_interruptable = 1; |
||||
+ ret = vnc_connection_read(conn, version + (12 - want), want); |
||||
+ priv->wait_interruptable = 0; |
||||
+ if (vnc_connection_has_error(conn)) { |
||||
+ VNC_DEBUG("Error while reading server version"); |
||||
+ goto fail; |
||||
+ } |
||||
+ if (ret >= 0) { |
||||
+ want -= ret; |
||||
+ if (ret != 12) { |
||||
+ timeout = 0; |
||||
+ } |
||||
+ } else { |
||||
+ if (ret == -EAGAIN) { |
||||
+ /* |
||||
+ * We didn't see any RFB greeting before our |
||||
+ * timeout. We might have mistakenly connected |
||||
+ * to a SPICE server, in which case we might |
||||
+ * wait forever, since SPICE expects the client |
||||
+ * to send first. |
||||
+ * |
||||
+ * We'll proactively send the 'RFB ' bytes to the |
||||
+ * sever. If we've just got a slow VNC server, it'll |
||||
+ * be harmless, but if we've got a SPICE server, this |
||||
+ * should trigger it to close the connection, avoiding |
||||
+ * us waiting foever. |
||||
+ * |
||||
+ * NB, while we could just send the "RFB " bytes |
||||
+ * immediately, the libvncserver code does something |
||||
+ * really crazy. When it sees a client connection, it |
||||
+ * waits 100ms for an HTTP GET request to indicate |
||||
+ * use of websockets proxy. If it sees the RFB bytes |
||||
+ * it doesn't run a normal VNC connection, it just kills |
||||
+ * the connection :-( |
||||
+ */ |
||||
+ VNC_DEBUG("No server greeting, sending partial client greeting"); |
||||
+ vnc_connection_write(conn, "RFB ", 4); |
||||
+ vnc_connection_flush(conn); |
||||
+ partialGreeting = TRUE; |
||||
+ timeout = 0; |
||||
+ } else { |
||||
+ VNC_DEBUG("Unexpected read error during greeting"); |
||||
+ goto fail; |
||||
+ } |
||||
+ } |
||||
+ } |
||||
|
||||
- vnc_connection_read(conn, version, 12); |
||||
- if (vnc_connection_has_error(conn)) { |
||||
- VNC_DEBUG("Error while reading server version"); |
||||
- goto fail; |
||||
+ if (timeout != 0) { |
||||
+ g_source_remove(timeout); |
||||
} |
||||
|
||||
version[12] = 0; |
||||
@@ -5291,8 +5338,16 @@ static gboolean vnc_connection_initialize(VncConnection *conn) |
||||
priv->minor = 8; |
||||
} |
||||
|
||||
- snprintf(version, 13, "%03d.%03d\n", priv->major, priv->minor); |
||||
- vnc_connection_write(conn, version, 8); |
||||
+ if (partialGreeting) { |
||||
+ VNC_DEBUG("Sending rest of greeting"); |
||||
+ snprintf(version, 13, "%03d.%03d\n", priv->major, priv->minor); |
||||
+ want = 8; |
||||
+ } else { |
||||
+ VNC_DEBUG("Sending full greeting"); |
||||
+ snprintf(version, 13, "RFB %03d.%03d\n", priv->major, priv->minor); |
||||
+ want = 12; |
||||
+ } |
||||
+ vnc_connection_write(conn, version, want); |
||||
vnc_connection_flush(conn); |
||||
VNC_DEBUG("Using version: %d.%d", priv->major, priv->minor); |
||||
|
||||
@@ -5358,15 +5413,6 @@ static gboolean vnc_connection_open_fd_internal(VncConnection *conn) |
||||
return !vnc_connection_has_error(conn); |
||||
} |
||||
|
||||
-static gboolean connect_timeout(gpointer data) |
||||
-{ |
||||
- struct wait_queue *wait = data; |
||||
- |
||||
- g_io_wakeup(wait); |
||||
- |
||||
- return FALSE; |
||||
-} |
||||
- |
||||
static GSocket *vnc_connection_connect_socket(struct wait_queue *wait, |
||||
GSocketAddress *sockaddr, |
||||
GError **error) |
||||
@@ -5379,7 +5425,7 @@ static GSocket *vnc_connection_connect_socket(struct wait_queue *wait, |
||||
if (!sock) |
||||
return NULL; |
||||
|
||||
- guint timeout = g_timeout_add_seconds(10, connect_timeout, wait); |
||||
+ guint timeout = g_timeout_add_seconds(10, vnc_connection_timeout, wait); |
||||
|
||||
g_socket_set_blocking(sock, FALSE); |
||||
if (!g_socket_connect(sock, sockaddr, NULL, error)) { |
@ -0,0 +1,40 @@
@@ -0,0 +1,40 @@
|
||||
From a6ef11572ffdfde69c901c8c4903c911f0e27d76 Mon Sep 17 00:00:00 2001 |
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com> |
||||
Date: Wed, 31 Jan 2018 11:09:38 +0000 |
||||
Subject: [PATCH] Don't short-circuit request for TLS credentials |
||||
MIME-Version: 1.0 |
||||
Content-Type: text/plain; charset=UTF-8 |
||||
Content-Transfer-Encoding: 8bit |
||||
|
||||
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. |
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> |
||||
(cherry picked from commit df656c79467c2595b4a2cd35283c7f5d52adf336) |
||||
--- |
||||
src/vncconnection.c | 8 -------- |
||||
1 file changed, 8 deletions(-) |
||||
|
||||
diff --git a/src/vncconnection.c b/src/vncconnection.c |
||||
index 1ddf38d..e5496ef 100644 |
||||
--- a/src/vncconnection.c |
||||
+++ b/src/vncconnection.c |
||||
@@ -3528,16 +3528,8 @@ static gboolean vnc_connection_has_credentials(gpointer data) |
||||
return FALSE; |
||||
if (priv->want_cred_password && !priv->cred_password) |
||||
return FALSE; |
||||
- /* |
||||
- * For x509 we require a minimum of the CA cert |
||||
- * if using GNUTLS < 3.0. With newer GNUTLS we'll |
||||
- * fallback to the system trust, so don't need to |
||||
- * explicitly check for a CA cert. |
||||
- */ |
||||
-#if GNUTLS_VERSION_NUMBER < 0x030000 |
||||
if (priv->want_cred_x509 && !priv->cred_x509_cacert) |
||||
return FALSE; |
||||
-#endif |
||||
return TRUE; |
||||
} |
||||
|
@ -0,0 +1,56 @@
@@ -0,0 +1,56 @@
|
||||
From 109cb2369ce3064e96c91e4387c4e122cf722d53 Mon Sep 17 00:00:00 2001 |
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com> |
||||
Date: Wed, 31 Jan 2018 11:11:09 +0000 |
||||
Subject: [PATCH] Add debug logs wrt credential gathering |
||||
MIME-Version: 1.0 |
||||
Content-Type: text/plain; charset=UTF-8 |
||||
Content-Transfer-Encoding: 8bit |
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> |
||||
(cherry picked from commit 8e14f8a00c486ac4a133fcd190526e73406d9cb6) |
||||
--- |
||||
src/vncconnection.c | 7 +++++++ |
||||
1 file changed, 7 insertions(+) |
||||
|
||||
diff --git a/src/vncconnection.c b/src/vncconnection.c |
||||
index e5496ef..35966c9 100644 |
||||
--- a/src/vncconnection.c |
||||
+++ b/src/vncconnection.c |
||||
@@ -3537,6 +3537,8 @@ static gboolean vnc_connection_gather_credentials(VncConnection *conn) |
||||
{ |
||||
VncConnectionPrivate *priv = conn->priv; |
||||
|
||||
+ VNC_DEBUG("Checking if credentials are needed"); |
||||
+ |
||||
if (priv->coroutine_stop) |
||||
return FALSE; |
||||
|
||||
@@ -3554,16 +3556,19 @@ static gboolean vnc_connection_gather_credentials(VncConnection *conn) |
||||
g_value_init(&username, VNC_TYPE_CONNECTION_CREDENTIAL); |
||||
g_value_set_enum(&username, VNC_CONNECTION_CREDENTIAL_USERNAME); |
||||
authCred = g_value_array_append(authCred, &username); |
||||
+ VNC_DEBUG("Want a username"); |
||||
} |
||||
if (priv->want_cred_password) { |
||||
g_value_init(&password, VNC_TYPE_CONNECTION_CREDENTIAL); |
||||
g_value_set_enum(&password, VNC_CONNECTION_CREDENTIAL_PASSWORD); |
||||
authCred = g_value_array_append(authCred, &password); |
||||
+ VNC_DEBUG("Want a password"); |
||||
} |
||||
if (priv->want_cred_x509) { |
||||
g_value_init(&clientname, VNC_TYPE_CONNECTION_CREDENTIAL); |
||||
g_value_set_enum(&clientname, VNC_CONNECTION_CREDENTIAL_CLIENTNAME); |
||||
authCred = g_value_array_append(authCred, &clientname); |
||||
+ VNC_DEBUG("Want a TLS clientname"); |
||||
} |
||||
|
||||
sigdata.params.authCred = authCred; |
||||
@@ -3577,6 +3582,8 @@ static gboolean vnc_connection_gather_credentials(VncConnection *conn) |
||||
VNC_DEBUG("Waiting for missing credentials"); |
||||
g_condition_wait(vnc_connection_has_credentials, conn); |
||||
VNC_DEBUG("Got all credentials"); |
||||
+ } else { |
||||
+ VNC_DEBUG("No credentials required"); |
||||
} |
||||
return !vnc_connection_has_error(conn); |
||||
} |
@ -0,0 +1,87 @@
@@ -0,0 +1,87 @@
|
||||
From 04a3fe9e8122166eb8f257396fd07314182d2fc2 Mon Sep 17 00:00:00 2001 |
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com> |
||||
Date: Wed, 31 Jan 2018 11:27:10 +0000 |
||||
Subject: [PATCH] Explicitly track whether x509 creds have been set |
||||
MIME-Version: 1.0 |
||||
Content-Type: text/plain; charset=UTF-8 |
||||
Content-Transfer-Encoding: 8bit |
||||
|
||||
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. |
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> |
||||
(cherry picked from commit abc27748c6ca309ec3c39fb6c84426a459f56c74) |
||||
--- |
||||
src/vncconnection.c | 21 ++++++++++++++++++--- |
||||
1 file changed, 18 insertions(+), 3 deletions(-) |
||||
|
||||
diff --git a/src/vncconnection.c b/src/vncconnection.c |
||||
index 35966c9..7fcbe89 100644 |
||||
--- a/src/vncconnection.c |
||||
+++ b/src/vncconnection.c |
||||
@@ -217,6 +217,7 @@ struct _VncConnectionPrivate |
||||
char *cred_x509_cacrl; |
||||
char *cred_x509_cert; |
||||
char *cred_x509_key; |
||||
+ gboolean set_cred_x509; |
||||
gboolean want_cred_username; |
||||
gboolean want_cred_password; |
||||
gboolean want_cred_x509; |
||||
@@ -3528,7 +3529,7 @@ static gboolean vnc_connection_has_credentials(gpointer data) |
||||
return FALSE; |
||||
if (priv->want_cred_password && !priv->cred_password) |
||||
return FALSE; |
||||
- if (priv->want_cred_x509 && !priv->cred_x509_cacert) |
||||
+ if (priv->want_cred_x509 && !priv->set_cred_x509) |
||||
return FALSE; |
||||
return TRUE; |
||||
} |
||||
@@ -5122,6 +5123,7 @@ static void vnc_connection_close(VncConnection *conn) |
||||
priv->cred_password = NULL; |
||||
} |
||||
|
||||
+ priv->set_cred_x509 = FALSE; |
||||
if (priv->cred_x509_cacert) { |
||||
g_free(priv->cred_x509_cacert); |
||||
priv->cred_x509_cacert = NULL; |
||||
@@ -5838,6 +5840,7 @@ static gboolean vnc_connection_set_credential_x509(VncConnection *conn, |
||||
{ |
||||
VncConnectionPrivate *priv = conn->priv; |
||||
char *sysdir = g_strdup_printf("%s/pki", SYSCONFDIR); |
||||
+ int ret; |
||||
#ifndef WIN32 |
||||
struct passwd *pw; |
||||
|
||||
@@ -5852,9 +5855,19 @@ static gboolean vnc_connection_set_credential_x509(VncConnection *conn, |
||||
for (int i = 0 ; i < sizeof(dirs)/sizeof(dirs[0]) ; i++) |
||||
VNC_DEBUG("Searching for certs in %s", dirs[i]); |
||||
|
||||
- if (vnc_connection_best_path(&priv->cred_x509_cacert, "CA", "cacert.pem", |
||||
- dirs, sizeof(dirs)/sizeof(dirs[0])) < 0) |
||||
+ ret = vnc_connection_best_path(&priv->cred_x509_cacert, "CA", "cacert.pem", |
||||
+ dirs, sizeof(dirs)/sizeof(dirs[0])); |
||||
+ /* With modern GNUTLS we can just allow the global GNUTLS trust database |
||||
+ * to be used to validate CA certificates if no specific cert is set |
||||
+ */ |
||||
+ if (ret < 0) { |
||||
+#if GNUTLS_VERSION_NUMBER < 0x030000 |
||||
+ VNC_DEBUG("No CA certificate provided and no global fallback"); |
||||
return FALSE; |
||||
+#else |
||||
+ VNC_DEBUG("No CA certificate provided, using GNUTLS global trust"); |
||||
+#endif |
||||
+ } |
||||
|
||||
/* Don't mind failures of CRL */ |
||||
vnc_connection_best_path(&priv->cred_x509_cacrl, "CA", "cacrl.pem", |
||||
@@ -5867,6 +5880,8 @@ static gboolean vnc_connection_set_credential_x509(VncConnection *conn, |
||||
vnc_connection_best_path(&priv->cred_x509_cert, name, "clientcert.pem", |
||||
dirs, sizeof(dirs)/sizeof(dirs[0])); |
||||
|
||||
+ priv->set_cred_x509 = TRUE; |
||||
+ |
||||
return TRUE; |
||||
} |
||||
|
@ -0,0 +1,638 @@
@@ -0,0 +1,638 @@
|
||||
# -*- rpm-spec -*- |
||||
|
||||
# This spec file assumes you are building for Fedora 20 or newer, |
||||
# or for RHEL 6 or newer. It may need some tweaks for other distros. |
||||
|
||||
%global with_gir 0 |
||||
%if 0%{?fedora} || 0%{?rhel} >= 7 |
||||
%global with_gir 1 |
||||
%endif |
||||
|
||||
%global with_gtk3 0 |
||||
%if 0%{?fedora} || 0%{?rhel} >= 7 |
||||
%global with_gtk3 1 |
||||
%endif |
||||
|
||||
%global with_vala 0 |
||||
%if 0%{with_gtk3} |
||||
%global with_vala 1 |
||||
%endif |
||||
|
||||
%if 0%{?fedora} >= 25 |
||||
%global tls_priority "@LIBVIRT,SYSTEM" |
||||
%else |
||||
%if 0%{?fedora} >= 21 |
||||
%global tls_priority "@SYSTEM" |
||||
%else |
||||
%global tls_priority "NORMAL" |
||||
%endif |
||||
%endif |
||||
|
||||
Summary: A GTK2 widget for VNC clients |
||||
Name: gtk-vnc |
||||
Version: 0.7.0 |
||||
Release: 3%{?dist}%{?extra_release} |
||||
License: LGPLv2+ |
||||
Group: Development/Libraries |
||||
Source: http://ftp.gnome.org/pub/GNOME/sources/%{name}/0.5/%{name}-%{version}.tar.xz |
||||
Patch1: 0001-Restore-correct-size-of-reserved-data.patch |
||||
Patch2: 0002-Fix-inverted-args-when-creating-framebuffer-for-test.patch |
||||
Patch3: 0003-Avoid-sign-extension-warnings-from-coverity.patch |
||||
Patch4: 0004-Fix-crash-when-opening-connection-from-a-GSocketAddr.patch |
||||
Patch5: 0005-Fix-crash-when-no-error-is-set-after-connection-fail.patch |
||||
Patch6: 0006-Report-a-proper-error-message-if-hitting-connection-.patch |
||||
Patch7: 0007-Fix-incompatibility-with-libvncserver-websockets-han.patch |
||||
Patch8: 0008-Don-t-short-circuit-request-for-TLS-credentials.patch |
||||
Patch9: 0009-Add-debug-logs-wrt-credential-gathering.patch |
||||
Patch10: 0010-Explicitly-track-whether-x509-creds-have-been-set.patch |
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) |
||||
URL: https://wiki.gnome.org/Projects/gtk-vnc |
||||
Requires: gvnc = %{version}-%{release} |
||||
BuildRequires: gtk2-devel >= 2.14 |
||||
BuildRequires: pygtk2-devel python-devel zlib-devel |
||||
BuildRequires: gnutls-devel libgcrypt-devel cyrus-sasl-devel intltool |
||||
%if %{with_gir} |
||||
BuildRequires: gobject-introspection-devel |
||||
%endif |
||||
%if %{with_gtk3} |
||||
BuildRequires: gtk3-devel |
||||
%endif |
||||
%if %{with_vala} |
||||
BuildRequires: vala-tools |
||||
%endif |
||||
BuildRequires: pulseaudio-libs-devel |
||||
BuildRequires: /usr/bin/pod2man |
||||
|
||||
%description |
||||
gtk-vnc is a VNC viewer widget for GTK2. It is built using coroutines |
||||
allowing it to be completely asynchronous while remaining single threaded. |
||||
|
||||
%package devel |
||||
Summary: Development files to build GTK2 applications with gtk-vnc |
||||
Group: Development/Libraries |
||||
Requires: %{name} = %{version}-%{release} |
||||
Requires: pkgconfig |
||||
Requires: gtk2-devel |
||||
|
||||
%description devel |
||||
gtk-vnc is a VNC viewer widget for GTK2. It is built using coroutines |
||||
allowing it to be completely asynchronous while remaining single threaded. |
||||
|
||||
Libraries, includes, etc. to compile with the gtk-vnc library |
||||
|
||||
%package python |
||||
Summary: Python bindings for the gtk-vnc library |
||||
Group: Development/Libraries |
||||
Requires: %{name} = %{version}-%{release} |
||||
|
||||
%description python |
||||
gtk-vnc is a VNC viewer widget for GTK2. It is built using coroutines |
||||
allowing it to be completely asynchronous while remaining single threaded. |
||||
|
||||
A module allowing use of the GTK-VNC widget from python |
||||
|
||||
%package -n gvnc |
||||
Summary: A GObject for VNC connections |
||||
Group: Development/Libraries |
||||
|
||||
%description -n gvnc |
||||
gvnc is a GObject for managing a VNC connection. It provides all the |
||||
infrastructure required to build a VNC client without having to deal |
||||
with the raw protocol itself. |
||||
|
||||
%package -n gvnc-devel |
||||
Summary: Libraries, includes, etc. to compile with the gvnc library |
||||
Group: Development/Libraries |
||||
Requires: gvnc = %{version}-%{release} |
||||
Requires: pkgconfig |
||||
|
||||
%description -n gvnc-devel |
||||
gvnc is a GObject for managing a VNC connection. It provides all the |
||||
infrastructure required to build a VNC client without having to deal |
||||
with the raw protocol itself. |
||||
|
||||
Libraries, includes, etc. to compile with the gvnc library |
||||
|
||||
%package -n gvncpulse |
||||
Summary: A Pulse Audio bridge for VNC connections |
||||
Group: Development/Libraries |
||||
Requires: gvnc = %{version}-%{release} |
||||
|
||||
%description -n gvncpulse |
||||
gvncpulse is a bridge to the Pulse Audio system for VNC. |
||||
It allows VNC clients to play back audio on the local |
||||
system |
||||
|
||||
%package -n gvncpulse-devel |
||||
Summary: Libraries, includes, etc. to compile with the gvncpulse library |
||||
Group: Development/Libraries |
||||
Requires: gvncpulse = %{version}-%{release} |
||||
Requires: pkgconfig |
||||
|
||||
%description -n gvncpulse-devel |
||||
gvncpulse is a bridge to the Pulse Audio system for VNC. |
||||
It allows VNC clients to play back audio on the local |
||||
system |
||||
|
||||
Libraries, includes, etc. to compile with the gvnc library |
||||
|
||||
%package -n gvnc-tools |
||||
Summary: Command line VNC tools |
||||
Group: Applications/Internet |
||||
Requires: gvnc = %{version}-%{release} |
||||
|
||||
%description -n gvnc-tools |
||||
Provides useful command line utilities for interacting with |
||||
VNC servers. Includes the gvnccapture program for capturing |
||||
screenshots of a VNC desktop |
||||
|
||||
%if %{with_gtk3} |
||||
%package -n gtk-vnc2 |
||||
Summary: A GTK3 widget for VNC clients |
||||
Group: Applications/Internet |
||||
Requires: gvnc = %{version}-%{release} |
||||
|
||||
%description -n gtk-vnc2 |
||||
gtk-vnc is a VNC viewer widget for GTK3. It is built using coroutines |
||||
allowing it to be completely asynchronous while remaining single threaded. |
||||
|
||||
%package -n gtk-vnc2-devel |
||||
Summary: Development files to build GTK3 applications with gtk-vnc |
||||
Group: Development/Libraries |
||||
Requires: gtk-vnc2 = %{version}-%{release} |
||||
Requires: pkgconfig |
||||
Requires: gtk3-devel |
||||
|
||||
%description -n gtk-vnc2-devel |
||||
gtk-vnc is a VNC viewer widget for GTK3. It is built using coroutines |
||||
allowing it to be completely asynchronous while remaining single threaded. |
||||
|
||||
Libraries, includes, etc. to compile with the gtk-vnc library |
||||
%endif |
||||
|
||||
%prep |
||||
%setup -q -n gtk-vnc-%{version} -c |
||||
cd gtk-vnc-%{version} |
||||
%patch1 -p1 |
||||
%patch2 -p1 |
||||
%patch3 -p1 |
||||
%patch4 -p1 |
||||
%patch5 -p1 |
||||
%patch6 -p1 |
||||
%patch7 -p1 |
||||
%patch8 -p1 |
||||
%patch9 -p1 |
||||
%patch10 -p1 |
||||
cd .. |
||||
%if %{with_gtk3} |
||||
cp -a gtk-vnc-%{version} gtk-vnc2-%{version} |
||||
%endif |
||||
|
||||
%build |
||||
%if %{with_gir} |
||||
%define gir_arg --enable-introspection=yes |
||||
%else |
||||
%define gir_arg --enable-introspection=no |
||||
%endif |
||||
|
||||
cd gtk-vnc-%{version} |
||||
%configure --with-gtk=2.0 %{gir_arg} \ |
||||
--with-tls-priority=%{tls_priority} |
||||
%__make %{?_smp_mflags} V=1 |
||||
chmod -x examples/*.pl examples/*.js examples/*.py |
||||
cd .. |
||||
|
||||
%if %{with_gtk3} |
||||
cd gtk-vnc2-%{version} |
||||
%configure --with-gtk=3.0 %{gir_arg} \ |
||||
--with-tls-priority=%{tls_priority} |
||||
%__make %{?_smp_mflags} V=1 |
||||
chmod -x examples/*.pl examples/*.js examples/*.py |
||||
cd .. |
||||
%endif |
||||
|
||||
%install |
||||
rm -fr %{buildroot} |
||||
cd gtk-vnc-%{version} |
||||
%__make install DESTDIR=%{buildroot} |
||||
cd .. |
||||
|
||||
%if %{with_gtk3} |
||||
cd gtk-vnc2-%{version} |
||||
%__make install DESTDIR=%{buildroot} |
||||
cd .. |
||||
%endif |
||||
|
||||
rm -f %{buildroot}%{_libdir}/*.a |
||||
rm -f %{buildroot}%{_libdir}/*.la |
||||
rm -f %{buildroot}%{_libdir}/python*/site-packages/*.a |
||||
rm -f %{buildroot}%{_libdir}/python*/site-packages/*.la |
||||
|
||||
%find_lang %{name} |
||||
|
||||
%clean |
||||
rm -fr %{buildroot} |
||||
|
||||
%post -p /sbin/ldconfig |
||||
|
||||
%postun -p /sbin/ldconfig |
||||
|
||||
%post -n gvnc -p /sbin/ldconfig |
||||
|
||||
%postun -n gvnc -p /sbin/ldconfig |
||||
|
||||
%post -n gvncpulse -p /sbin/ldconfig |
||||
|
||||
%postun -n gvncpulse -p /sbin/ldconfig |
||||
|
||||
%if %{with_gtk3} |
||||
%post -n gtk-vnc2 -p /sbin/ldconfig |
||||
|
||||
%postun -n gtk-vnc2 -p /sbin/ldconfig |
||||
%endif |
||||
|
||||
%files |
||||
%defattr(-, root, root) |
||||
%{_libdir}/libgtk-vnc-1.0.so.* |
||||
%if %{with_gir} |
||||
%{_libdir}/girepository-1.0/GtkVnc-1.0.typelib |
||||
%endif |
||||
|
||||
%files devel |
||||
%defattr(-, root, root) |
||||
%doc gtk-vnc-%{version}/examples/gvncviewer.c |
||||
%{_libdir}/libgtk-vnc-1.0.so |
||||
%dir %{_includedir}/%{name}-1.0/ |
||||
%{_includedir}/%{name}-1.0/*.h |
||||
%{_libdir}/pkgconfig/%{name}-1.0.pc |
||||
%if %{with_gir} |
||||
%{_datadir}/gir-1.0/GtkVnc-1.0.gir |
||||
%endif |
||||
|
||||
%files python |
||||
%defattr(-, root, root) |
||||
%doc gtk-vnc-%{version}/examples/gvncviewer-bindings.py |
||||
%{_libdir}/python*/site-packages/gtkvnc.so |
||||
|
||||
%files -n gvnc -f %{name}.lang |
||||
%defattr(-, root, root) |
||||
%{_libdir}/libgvnc-1.0.so.* |
||||
%if %{with_gir} |
||||
%{_libdir}/girepository-1.0/GVnc-1.0.typelib |
||||
%endif |
||||
%if %{with_vala} |
||||
%{_datadir}/vala/vapi/gvnc-1.0.deps |
||||
%{_datadir}/vala/vapi/gvnc-1.0.vapi |
||||
%endif |
||||
|
||||
%files -n gvnc-devel |
||||
%defattr(-, root, root) |
||||
%{_libdir}/libgvnc-1.0.so |
||||
%dir %{_includedir}/gvnc-1.0/ |
||||
%{_includedir}/gvnc-1.0/*.h |
||||
%{_libdir}/pkgconfig/gvnc-1.0.pc |
||||
%if %{with_gir} |
||||
%{_datadir}/gir-1.0/GVnc-1.0.gir |
||||
%endif |
||||
|
||||
%files -n gvncpulse -f %{name}.lang |
||||
%defattr(-, root, root) |
||||
%{_libdir}/libgvncpulse-1.0.so.* |
||||
%if %{with_gir} |
||||
%{_libdir}/girepository-1.0/GVncPulse-1.0.typelib |
||||
%endif |
||||
%if %{with_vala} |
||||
%{_datadir}/vala/vapi/gvncpulse-1.0.deps |
||||
%{_datadir}/vala/vapi/gvncpulse-1.0.vapi |
||||
%endif |
||||
|
||||
%files -n gvncpulse-devel |
||||
%defattr(-, root, root) |
||||
%{_libdir}/libgvncpulse-1.0.so |
||||
%dir %{_includedir}/gvncpulse-1.0/ |
||||
%{_includedir}/gvncpulse-1.0/*.h |
||||
%{_libdir}/pkgconfig/gvncpulse-1.0.pc |
||||
%if %{with_gir} |
||||
%{_datadir}/gir-1.0/GVncPulse-1.0.gir |
||||
%endif |
||||
|
||||
%files -n gvnc-tools |
||||
%defattr(-, root, root) |
||||
%doc gtk-vnc-%{version}/AUTHORS |
||||
%doc gtk-vnc-%{version}/ChangeLog |
||||
%doc gtk-vnc-%{version}/ChangeLog-old |
||||
%doc gtk-vnc-%{version}/NEWS |
||||
%doc gtk-vnc-%{version}/README |
||||
%doc gtk-vnc-%{version}/COPYING.LIB |
||||
%{_bindir}/gvnccapture |
||||
%{_mandir}/man1/gvnccapture.1* |
||||
|
||||
%if %{with_gtk3} |
||||
%files -n gtk-vnc2 |
||||
%defattr(-, root, root) |
||||
%{_libdir}/libgtk-vnc-2.0.so.* |
||||
%if %{with_gir} |
||||
%{_libdir}/girepository-1.0/GtkVnc-2.0.typelib |
||||
%endif |
||||
%if %{with_vala} |
||||
%{_datadir}/vala/vapi/gtk-vnc-2.0.deps |
||||
%{_datadir}/vala/vapi/gtk-vnc-2.0.vapi |
||||
%endif |
||||
|
||||
%files -n gtk-vnc2-devel |
||||
%defattr(-, root, root) |
||||
%doc gtk-vnc2-%{version}/examples/gvncviewer.c |
||||
%if %{with_gir} |
||||
%doc gtk-vnc2-%{version}/examples/gvncviewer.js |
||||
%doc gtk-vnc2-%{version}/examples/gvncviewer.pl |
||||
%doc gtk-vnc2-%{version}/examples/gvncviewer-introspection.py |
||||
%endif |
||||
%{_libdir}/libgtk-vnc-2.0.so |
||||
%dir %{_includedir}/%{name}-2.0/ |
||||
%{_includedir}/%{name}-2.0/*.h |
||||
%{_libdir}/pkgconfig/%{name}-2.0.pc |
||||
%if %{with_gir} |
||||
%{_datadir}/gir-1.0/GtkVnc-2.0.gir |
||||
%endif |
||||
%endif |
||||
|
||||
%changelog |
||||
* Thu Feb 1 2018 Daniel P. Berrange <berrange@redhat.com> - 0.7.0-3 |
||||
- Fix TLS credentials request (rhbz #1539148) |
||||
|
||||
* Wed Apr 12 2017 Daniel P. Berrange <berrange@redhat.com> - 0.7.0-2 |
||||
- Fix reserved data size (rhbz #1416783) |
||||
- Fix inverted args in tests (rhbz #1416783) |
||||
- Avoid sign extension problems (rhbz #1416783) |
||||
- Fix crash with opening via GSocketAddress (rhbz #1416783) |
||||
- Fix crash & error reporting during connection timeout (rhbz #1441120) |
||||
- Fix incompatibility with libvncserver websockets (rhbz #921330) |
||||
|
||||
* Thu Feb 16 2017 Daniel P. Berrange <berrange@redhat.com> - 0.7.0-1 |
||||
- Update to 0.7.0 release (rhbz #1416783) |
||||
- Release held keys when loosing focus (rhbz #921008) |
||||
- Avoid warnings when disconnecting (rhbz #1126825) |
||||
- Workaround to avoid hang connecting to SPICE guest (rhbz #921330) |
||||
- CVE-2017-5884 - fix bounds checking for RRE, hextile and |
||||
copyrect encodings (rhbz #1425367) |
||||
- CVE-2017-5885 - fix color map index bounds checking (rhbz #1425367) |
||||
|
||||
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 0.5.2-7 |
||||
- Mass rebuild 2014-01-24 |
||||
|
||||
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 0.5.2-6 |
||||
- Mass rebuild 2013-12-27 |
||||
|
||||
* Wed Oct 9 2013 Daniel P. Berrange <berrange@redhat.com> - 0.5.2-5 |
||||
- Fix missing/incorrect deps in sub-RPMs |
||||
|
||||
* Fri Sep 13 2013 Daniel P. Berrange <berrange@redhat.com> - 0.5.2-4 |
||||
- Only process key grab sequence upon release (rhbz #1007877) |
||||
|
||||
* Fri Sep 13 2013 Daniel P. Berrange <berrange@redhat.com> - 0.5.2-3 |
||||
- Fix memory leak in ucontext coroutine (rhbz #1007837) |
||||
|
||||
* Wed May 8 2013 Daniel P. Berrange <berrange@redhat.com> - 0.5.2-2 |
||||
- Turn off execute bit on examples to stop auto-deps being added |
||||
|
||||
* Tue Apr 30 2013 Daniel Mach <dmach@redhat.com> - 0.5.2-1.2 |
||||
- Rebuild for cyrus-sasl |
||||
|
||||
* Fri Feb 22 2013 Daniel P. Berrange <berrange@redhat.com> - 0.5.2-1 |
||||
- Update to 0.5.2 release |
||||
- Fix auth credential type (rhbz #697067) |
||||
|
||||
* Sat Feb 16 2013 Cole Robinson <crobinso@redhat.com> - 0.5.1-7 |
||||
- Fix send_key introspection bindings |
||||
|
||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.1-6 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild |
||||
|
||||
* Mon Dec 10 2012 Adam Jackson <ajax@redhat.com> 0.5.1-5 |
||||
- gtk-vnc-0.5.1-bigendian.patch: Fix pixel swizzling on big-endian. |
||||
|
||||
* Tue Sep 4 2012 Daniel P. Berrange <berrange@redhat.com> - 0.5.1-4 |
||||
- Add missing deps on gvnc (rhbz #852053) |
||||
|
||||
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.1-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild |
||||
|
||||
* Sat Jul 14 2012 Ville Skyttä <ville.skytta@iki.fi> - 0.5.1-2 |
||||
- Call ldconfig at gvnc, gvncpulse, and gtk-vnc2 post(un)install time. |
||||
|
||||
* Thu Jul 12 2012 Daniel P. Berrange <berrange@redhat.com> - 0.5.1-1 |
||||
- Update to 0.5.1 release |
||||
|
||||
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.0-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild |
||||
|
||||
* Wed Dec 21 2011 Daniel P. Berrange <berrange@redhat.com> - 0.5.0-1 |
||||
- Update to 0.5.0 release |
||||
|
||||
* Thu Nov 10 2011 Daniel P. Berrange <berrange@redhat.com> - 0.4.4-1 |
||||
- Update to 0.4.4 release |
||||
|
||||
* Tue Nov 08 2011 Adam Jackson <ajax@redhat.com> - 0.4.3-2 |
||||
- Rebuild to break bogus libpng dep |
||||
|
||||
* Fri Feb 18 2011 Daniel P. Berrange <berrange@redhat.com> - 0.4.3-1 |
||||
- Update to 0.4.3 release |
||||
|
||||
* Thu Feb 10 2011 Matthias Clasen <mclasen@redhat.com> - 0.4.2-10 |
||||
- Rebuild against newer gtk |
||||
|
||||
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.2-9 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild |
||||
|
||||
* Wed Feb 2 2011 Matthias Clasen <mclasen@redhat.com> - 0.4.2-8 |
||||
- Rebuild against newer gtk |
||||
|
||||
* Thu Jan 13 2011 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-7 |
||||
- Cope with multiple GDK backends in GTK3 |
||||
|
||||
* Tue Jan 11 2011 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-6 |
||||
- Rebuild for change in GTK3 soname |
||||
|
||||
* Mon Jan 10 2011 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-5 |
||||
- Add fix to remove use of GdkDrawble for GTK3 compat |
||||
|
||||
* Sun Jan 9 2011 Matthias Clasen <mclasen@redhat.com> - 0.4.2-5 |
||||
- Rebuild against newer gtk3 |
||||
|
||||
* Tue Dec 14 2010 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-4 |
||||
- Fix unref of GSource objects to address performance degradation (rhbz #657847) |
||||
|
||||
* Mon Nov 29 2010 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-3 |
||||
- Re-introduce a server side pixmap via cairo to cache framebuffer (rhbz #657542) |
||||
|
||||
* Mon Nov 29 2010 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-2 |
||||
- Fix crash in TLS shutdown code (rhbz #650601) |
||||
- Fix crash in motion event handler (rhbz #650104) |
||||
- Fix framebuffer update bounds checking (rhbz #655630) |
||||
|
||||
* Fri Nov 5 2010 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-1 |
||||
- Update to 0.4.2 release. |
||||
- Enable experimental GTK3 build |
||||
|
||||
* Mon Oct 18 2010 Colin Walters <walters@verbum.org> - 0.4.1-9 |
||||
- Rebuild to use old pygobject2-python2 API again: |
||||
https://bugzilla.redhat.com/show_bug.cgi?id=638457 |
||||
|
||||
* Wed Sep 29 2010 jkeating - 0.4.1-8 |
||||
- Rebuilt for gcc bug 634757 |
||||
|
||||
* Tue Sep 21 2010 Matthias Clasen <mclasen@redhat.com> - 0.4.1-7 |
||||
- Rebuild against newer gobject-introspection |
||||
|
||||
* Tue Aug 31 2010 Daniel P. Berrange <berrange@redhat.com> - 0.4.1-6 |
||||
- Prevent RPM picking up a dep on gjs (rhbz 628604) |
||||
|
||||
* Fri Aug 6 2010 Daniel P. Berrange <berrange@redhat.com> - 0.4.1-5 |
||||
- Reset buffer offsets on connection close (rhbz 620843) |
||||
|
||||
* Thu Aug 5 2010 Daniel P. Berrange <berrange@redhat.com> - 0.4.1-4 |
||||
- Reset buffer pointer on connection close (rhbz 620843) |
||||
|
||||
* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 0.4.1-3 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild |
||||
|
||||
* Thu Jul 15 2010 Colin Walters <walters@verbum.org> - 0.4.1-2 |
||||
- Rebuild with new gobject-introspection |
||||
|
||||
* Wed Jul 14 2010 Daniel P. Berrange <berrange@redhat.com> - 0.4.1-1 |
||||
- Update to 0.4.1 release |
||||
|
||||
* Sun Jul 11 2010 Daniel P. Berrange <berrange@redhat.com> - 0.4.0-1 |
||||
- Update to 0.4.0 release |
||||
- Add new sub-packages for gvnc |
||||
|
||||
* Tue Apr 27 2010 Daniel P. Berrange <berrange@redhat.com> - 0.3.10-3 |
||||
- Drop VNC connection if the server sends a update spaning outside bounds of desktop (rhbz #540810) |
||||
- Fix gcrypt threading initialization (rhbz #537489) |
||||
|
||||
* Tue Oct 20 2009 Matthias Clasen <mclaesn@redhat.com> - 0.3.10-1 |
||||
- Update to 0.3.10 |
||||
|
||||
* Thu Oct 8 2009 Matthias Clasen <mclaesn@redhat.com> - 0.3.9-2 |
||||
- Request a full screen refresh when receives a desktop-resize encoding |
||||
|
||||
* Tue Aug 11 2009 Daniel P. Berrange <berrange@redhat.com> - 0.3.9-1 |
||||
- Update to 0.3.9 release |
||||
|
||||
* Tue Aug 11 2009 Ville Skyttä <ville.skytta@iki.fi> - 0.3.8-10 |
||||
- Use bzipped upstream tarball. |
||||
|
||||
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.8-9 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild |
||||
|
||||
* Fri Mar 27 2009 Daniel P. Berrange <berrange@redhat.com> - 0.3.8-8.fc11 |
||||
- Fix ungrab when pointer type changes |
||||
|
||||
* Tue Mar 24 2009 Daniel P. Berrange <berrange@redhat.com> - 0.3.8-7.fc11 |
||||
- Fix release of keyboard grab when releasing mouse grab outside app window (rhbz #491167) |
||||
|
||||
* Thu Mar 5 2009 Daniel P. Berrange <berrange@redhat.com> - 0.3.8-6.fc11 |
||||
- Fix SASL address generation when using AF_UNIX sockets |
||||
|
||||
* Tue Mar 3 2009 Daniel P. Berrange <berrange@redhat.com> - 0.3.8-5.fc11 |
||||
- Support SASL authentication extension |
||||
|
||||
* Thu Feb 26 2009 Daniel P. Berrange <berrange@redhat.com> - 0.3.8-4.fc11 |
||||
- Fix relative mouse handling to avoid 'invisible wall' |
||||
|
||||
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.8-3.fc11 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild |
||||
|
||||
* Tue Feb 24 2009 Daniel P. Berrange <berrange@redhat.com> - 0.3.8-2.fc11 |
||||
- Update URLs to gnome.org hosting |
||||
|
||||
* Sun Dec 7 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.8-1.fc11 |
||||
- Update to 0.3.8 release |
||||
|
||||
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 0.3.7-4 |
||||
- Rebuild for Python 2.6 |
||||
|
||||
* Thu Oct 9 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.7-3.fc10 |
||||
- Avoid bogus framebuffer updates for psuedo-encodings |
||||
- Fix scancode translation for evdev |
||||
|
||||
* Thu Sep 25 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.7-2.fc10 |
||||
- Allow pointer ungrab keysequence if already grabbed (rhbz #463729) |
||||
|
||||
* Fri Sep 5 2008 Matthias Clasen <mclasen@redhat.com> - 0.3.7-1 |
||||
- Update to 0.3.7 |
||||
|
||||
* Thu Aug 28 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.6-4.fc10 |
||||
- Fix key/mouse event propagation (rhbz #454627) |
||||
|
||||
* Mon Jul 7 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.3.6-3 |
||||
- fix conditional comparison |
||||
|
||||
* Wed Jun 25 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.6-2.fc10 |
||||
- Rebuild for GNU TLS ABI change |
||||
|
||||
* Wed May 7 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.6-1.fc10 |
||||
- Updated to 0.3.6 release |
||||
|
||||
* Fri Apr 25 2008 Matthias Clasen <mclasen@redhat.com> - 0.3.5-1.fc9 |
||||
- Update to 0.3.5 |
||||
|
||||
* Fri Apr 4 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.4-4.fc9 |
||||
- Remove bogus chunk of render patch |
||||
|
||||
* Thu Apr 3 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.4-3.fc9 |
||||
- Fix OpenGL rendering artifacts (rhbz #440184) |
||||
|
||||
* Thu Apr 3 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.4-2.fc9 |
||||
- Fixed endianness conversions |
||||
- Fix makecontext() args crash on x86_64 |
||||
- Fix protocol version negotiation |
||||
|
||||
* Thu Mar 6 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.4-1.fc9 |
||||
- Update to 0.3.4 release |
||||
- Fix crash with OpenGL scaling code |
||||
|
||||
* Sun Feb 3 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.3-1.fc9 |
||||
- Update to 0.3.3 release |
||||
|
||||
* Mon Jan 14 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.2-2.fc9 |
||||
- Track keystate to avoid stuck modifier keys |
||||
|
||||
* Mon Dec 31 2007 Daniel P. Berrange <berrange@redhat.com> - 0.3.2-1.fc9 |
||||
- Update to 0.3.2 release |
||||
- Added dep on zlib-devel |
||||
|
||||
* Thu Dec 13 2007 Daniel P. Berrange <berrange@redhat.com> - 0.3.1-1.fc9 |
||||
- Update to 0.3.1 release |
||||
|
||||
* Wed Oct 10 2007 Daniel P. Berrange <berrange@redhat.com> - 0.2.0-4.fc8 |
||||
- Fixed coroutine cleanup to avoid SEGV (rhbz #325731) |
||||
|
||||
* Thu Oct 4 2007 Daniel P. Berrange <berrange@redhat.com> - 0.2.0-3.fc8 |
||||
- Fixed coroutine caller to avoid SEGV |
||||
|
||||
* Wed Sep 26 2007 Daniel P. Berrange <berrange@redhat.com> - 0.2.0-2.fc8 |
||||
- Remove use of PROT_EXEC for coroutine stack (rhbz #307531 ) |
||||
|
||||
* Thu Sep 13 2007 Daniel P. Berrange <berrange@redhat.com> - 0.2.0-1.fc8 |
||||
- Update to 0.2.0 release |
||||
|
||||
* Wed Aug 29 2007 Daniel P. Berrange <berrange@redhat.com> - 0.1.0-5.fc8 |
||||
- Fixed handling of mis-matched client/server colour depths |
||||
|
||||
* Wed Aug 22 2007 Daniel P. Berrange <berrange@redhat.com> - 0.1.0-4.fc8 |
||||
- Fix mixed endian handling & BGR pixel format (rhbz #253597) |
||||
- Clear widget areas outside of framebuffer (rhbz #253599) |
||||
- Fix off-by-one in python demo |
||||
|
||||
* Thu Aug 16 2007 Daniel P. Berrange <berrange@redhat.com> - 0.1.0-3.fc8 |
||||
- Tweaked post scripts |
||||
- Removed docs from sub-packages |
||||
- Explicitly set license to LGPLv2+ |
||||
- Remove use of macro for install rule |
||||
|
||||
* Wed Aug 15 2007 Daniel P. Berrange <berrange@redhat.com> - 0.1.0-2.fc8 |
||||
- Added gnutls-devel requirement to -devel package |
||||
|
||||
* Wed Aug 15 2007 Daniel P. Berrange <berrange@redhat.com> - 0.1.0-1.fc8 |
||||
- Initial official release |
Loading…
Reference in new issue