Compare commits

...

No commits in common. "c8" and "c10s" have entirely different histories.
c8 ... c10s

14 changed files with 386 additions and 1490 deletions

4
.gitignore vendored
View File

@ -1 +1,3 @@
SOURCES/gtk-vnc-0.9.0.tar.xz
.build*.log
*.rpm
/gtk-vnc-*.tar.xz

View File

@ -1,86 +0,0 @@
From ac1960bcc8e2678c0431d11eb7603ad674937f6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Fri, 24 Aug 2018 17:18:04 +0100
Subject: [PATCH] fix crash when connection fails early
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When reading the initial greeting a timer is set in the background. If
the connection fails early, we can jump to cleanup code before the timer
is disable. The timer will later fire, read a coroutine context from
freed memory, and likely jump to somewhere awful with predictably crashy
results.
https://bugzilla.redhat.com/show_bug.cgi?id=1620203
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 06a27a4fb52653b4cbf67b75b8116cf6692b435d)
---
src/vncconnection.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/vncconnection.c b/src/vncconnection.c
index b6e13d5..afc1418 100644
--- a/src/vncconnection.c
+++ b/src/vncconnection.c
@@ -319,7 +319,9 @@ static gboolean vnc_connection_timeout(gpointer data)
{
struct wait_queue *wait = data;
+ VNC_DEBUG("Connection timeout wakeup start %p", data);
g_io_wakeup(wait);
+ VNC_DEBUG("Connection timeout wakeup done %p", data);
return FALSE;
}
@@ -5318,6 +5320,7 @@ static gboolean vnc_connection_initialize(VncConnection *conn)
priv->absPointer = TRUE;
+ VNC_DEBUG("Schedule greeting timeout %p", &priv->wait);
timeout = g_timeout_add_seconds(2, vnc_connection_timeout, &priv->wait);
want = 12;
while (want > 0) {
@@ -5369,7 +5372,9 @@ static gboolean vnc_connection_initialize(VncConnection *conn)
}
if (timeout != 0) {
+ VNC_DEBUG("Remove timeout %p", &priv->wait);
g_source_remove(timeout);
+ timeout = 0;
}
version[12] = 0;
@@ -5449,6 +5454,11 @@ static gboolean vnc_connection_initialize(VncConnection *conn)
return !vnc_connection_has_error(conn);
fail:
+ if (timeout != 0) {
+ VNC_DEBUG("Remove timeout %p", &priv->wait);
+ g_source_remove(timeout);
+ timeout = 0;
+ }
return !vnc_connection_has_error(conn);
}
@@ -5481,6 +5491,7 @@ static GSocket *vnc_connection_connect_socket(struct wait_queue *wait,
if (!sock)
return NULL;
+ VNC_DEBUG("Schedule socket timeout %p", wait);
guint timeout = g_timeout_add_seconds(10, vnc_connection_timeout, wait);
g_socket_set_blocking(sock, FALSE);
@@ -5513,8 +5524,10 @@ timeout:
sock = NULL;
end:
- if (timeout != 0)
+ if (timeout != 0) {
+ VNC_DEBUG("Remove timeout %p", wait);
g_source_remove(timeout);
+ }
return sock;
}

View File

@ -1,25 +0,0 @@
From fe11054a9940cdb9a9d6bd4b05bd2276a51d0abf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
Date: Thu, 30 Aug 2018 18:08:35 +0200
Subject: [PATCH] gvnc-1.0.pc.in: Use GLIB_REQUIRED
GOBJECT_REQUIRED is no more
(cherry picked from commit 41c32208248b028f2c96da4d20ba6dc8e51b83ad)
---
gvnc-1.0.pc.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gvnc-1.0.pc.in b/gvnc-1.0.pc.in
index da95b65..b79fdf7 100644
--- a/gvnc-1.0.pc.in
+++ b/gvnc-1.0.pc.in
@@ -5,7 +5,7 @@ includedir=@includedir@
Name: GVNC
Description: GObject for VNC client connections
-Requires: gobject-2.0 >= @GOBJECT_REQUIRED@
+Requires: gobject-2.0 >= @GLIB_REQUIRED@
Version: @VERSION@
Libs: -L${libdir} -lgvnc-1.0
Cflags: -I${includedir}/gvnc-1.0

View File

@ -1,63 +0,0 @@
From 9fc84302bb18ffb552f2405df7820df9c4bfa2ec Mon Sep 17 00:00:00 2001
From: Christophe Fergeau <cfergeau@redhat.com>
Date: Wed, 9 Jan 2019 14:01:22 +0100
Subject: [PATCH] sasl: Factor common code auth failure
The new vnc_connection_auth_failure() method will be reused in the
next commit.
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
(cherry picked from commit 83cac0cbe8b8006c50d177650459aaa47f1fd129)
Resolves: rhbz#1688275
---
src/vncconnection.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/vncconnection.c b/src/vncconnection.c
index afc1418..58455df 100644
--- a/src/vncconnection.c
+++ b/src/vncconnection.c
@@ -124,6 +124,7 @@ static void vnc_connection_close(VncConnection *conn);
static void vnc_connection_set_error(VncConnection *conn,
const char *format,
...) G_GNUC_PRINTF(2, 3);
+static void vnc_connection_auth_failure(VncConnection *conn, const char *reason);
/*
* A special GSource impl which allows us to wait on a certain
@@ -660,6 +661,14 @@ static G_GNUC_PRINTF(2, 3) void vnc_connection_set_error(VncConnection *conn,
vnc_connection_emit_main_context(conn, VNC_ERROR, &s);
}
+static void vnc_connection_auth_failure(VncConnection *conn,
+ const char *reason)
+{
+ struct signal_data sigdata;
+
+ sigdata.params.authReason = reason;
+ vnc_connection_emit_main_context(conn, VNC_AUTH_FAILURE, &sigdata);
+}
static gboolean vnc_connection_use_compression(VncConnection *conn)
{
@@ -3571,18 +3580,14 @@ static gboolean vnc_connection_check_auth_result(VncConnection *conn)
reason[len] = '\0';
VNC_DEBUG("Fail %s", reason);
if (!priv->coroutine_stop) {
- struct signal_data sigdata;
- sigdata.params.authReason = reason;
vnc_connection_set_error(conn, "%s", reason);
- vnc_connection_emit_main_context(conn, VNC_AUTH_FAILURE, &sigdata);
+ vnc_connection_auth_failure(conn, reason);
}
} else {
VNC_DEBUG("Fail auth no result");
if (!priv->coroutine_stop) {
- struct signal_data sigdata;
- sigdata.params.authReason = "Unknown authentication failure";
vnc_connection_set_error(conn, "%s", "Unknown authentication failure");
- vnc_connection_emit_main_context(conn, VNC_AUTH_FAILURE, &sigdata);
+ vnc_connection_auth_failure(conn, "Unknown authentication failure");
}
}
return FALSE;

View File

@ -1,33 +0,0 @@
From 9cadf0ab5071d14066af233a11f994b166454267 Mon Sep 17 00:00:00 2001
From: Christophe Fergeau <cfergeau@redhat.com>
Date: Wed, 9 Jan 2019 14:01:23 +0100
Subject: [PATCH] sasl: Emit vnc-auth-failure signal on SASL auth failures
When the SASL username or password are wrong, at the moment client
application will not get any specific notification for it, they will
just know that the remote connection was closed because of an error.
This commit adds the emission of the vnc-auth-failure signal when
vnc_connection_perform_auth_sasl() fails.
https://bugzilla.redhat.com/show_bug.cgi?id=1456175
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
(cherry picked from commit 3f4f79ffbf74f31ae65055c03a8eb523ac631422)
Resolves: rhbz#1688275
---
src/vncconnection.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/vncconnection.c b/src/vncconnection.c
index 58455df..aceb31d 100644
--- a/src/vncconnection.c
+++ b/src/vncconnection.c
@@ -4419,6 +4419,7 @@ static gboolean vnc_connection_perform_auth_sasl(VncConnection *conn)
error:
if (saslconn)
sasl_dispose(&saslconn);
+ vnc_connection_auth_failure(conn, "Unknown authentication failure");
return FALSE;
}
#endif /* HAVE_SASL */

View File

@ -1,66 +0,0 @@
From bfc434015456687388370ccfc0fc92fd54c58b4b Mon Sep 17 00:00:00 2001
From: Christophe Fergeau <cfergeau@redhat.com>
Date: Wed, 9 Jan 2019 14:01:24 +0100
Subject: [PATCH] conn: Report error if vnc_connection_perform_auth_vnc fails
At the moment, when the various crypto operations that
vnc_connection_perform_auth_vnc performs fail, no error is reported to
the client application. This commit adds the emission of a vnc-error
signal when this happens. This is not reported as an auth failure as
these errors are not something which is recoverable, they indicate
system failures.
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
(cherry picked from commit fa21beab5b44354c890699663a71b07d6ce18d40)
Resolves: rhbz#1688275
---
src/vncconnection.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/vncconnection.c b/src/vncconnection.c
index aceb31d..65111fd 100644
--- a/src/vncconnection.c
+++ b/src/vncconnection.c
@@ -3638,33 +3638,38 @@ static gboolean vnc_connection_perform_auth_vnc(VncConnection *conn)
error = gcry_cipher_open(&c, GCRY_CIPHER_DES, GCRY_CIPHER_MODE_ECB, 0);
if (gcry_err_code (error) != GPG_ERR_NO_ERROR) {
VNC_DEBUG("gcry_cipher_open error: %s\n", gcry_strerror(error));
- return FALSE;
+ goto error;
}
error = gcry_cipher_setkey(c, key, 8);
if (gcry_err_code (error) != GPG_ERR_NO_ERROR) {
VNC_DEBUG("gcry_cipher_setkey error: %s\n", gcry_strerror(error));
gcry_cipher_close(c);
- return FALSE;
+ goto error;
}
error = gcry_cipher_encrypt(c, challenge, 8, challenge, 8);
if (gcry_err_code (error) != GPG_ERR_NO_ERROR) {
VNC_DEBUG("gcry_cipher_encrypt error: %s\n", gcry_strerror(error));
gcry_cipher_close(c);
- return FALSE;
+ goto error;
}
error = gcry_cipher_encrypt(c, challenge + 8, 8, challenge + 8, 8);
if (gcry_err_code (error) != GPG_ERR_NO_ERROR) {
VNC_DEBUG("gcry_cipher_encrypt error: %s\n", gcry_strerror(error));
gcry_cipher_close(c);
- return FALSE;
+ goto error;
}
gcry_cipher_close(c);
vnc_connection_write(conn, challenge, 16);
vnc_connection_flush(conn);
return vnc_connection_check_auth_result(conn);
+
+error:
+ vnc_connection_set_error(conn, "%s: %s", "Unknown authentication failure: %s",
+ gcry_strerror(error));
+ return FALSE;
}
/*

View File

@ -1,73 +0,0 @@
From 74fcc039b313a0d3b91d15b83b4d4df4aa84536e Mon Sep 17 00:00:00 2001
From: Christophe Fergeau <cfergeau@redhat.com>
Date: Wed, 9 Jan 2019 14:01:25 +0100
Subject: [PATCH] conn: Remove redundant vnc_connection_has_error() calls
No need to call it twice in:
if (vnc_connection_has_error(conn))
return !vnc_connection_has_error(conn);
and no need to call it after calling vnc_connection_set_error() as it
will always return TRUE in this scenario.
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
(cherry picked from commit 247eaddd7455ee4eb80efe4971167ab0636a4509)
Resolves: rhbz#1688275
---
src/vncconnection.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/vncconnection.c b/src/vncconnection.c
index 65111fd..fd7468b 100644
--- a/src/vncconnection.c
+++ b/src/vncconnection.c
@@ -3120,7 +3120,7 @@ static gboolean vnc_connection_framebuffer_update(VncConnection *conn, gint32 et
etype, width, height, x, y);
if (vnc_connection_has_error(conn))
- return !vnc_connection_has_error(conn);
+ return FALSE;
switch (etype) {
case VNC_CONNECTION_ENCODING_RAW:
@@ -3292,7 +3292,7 @@ static gboolean vnc_connection_server_message(VncConnection *conn)
int ret;
if (vnc_connection_has_error(conn))
- return !vnc_connection_has_error(conn);
+ return FALSE;
/* NB: make sure that all server message functions
handle has_error appropriately */
@@ -5838,7 +5838,7 @@ gboolean vnc_connection_set_auth_type(VncConnection *conn, unsigned int type)
VNC_DEBUG("Thinking about auth type %u", type);
if (priv->auth_type != VNC_CONNECTION_AUTH_INVALID) {
vnc_connection_set_error(conn, "%s", "Auth type has already been set");
- return !vnc_connection_has_error(conn);
+ return FALSE;
}
if (type != VNC_CONNECTION_AUTH_NONE &&
type != VNC_CONNECTION_AUTH_VNC &&
@@ -5851,7 +5851,7 @@ gboolean vnc_connection_set_auth_type(VncConnection *conn, unsigned int type)
vnc_connection_set_error(conn, "Auth type %u is not supported",
type);
g_signal_emit(conn, VNC_AUTH_UNSUPPORTED, 0, type);
- return !vnc_connection_has_error(conn);
+ return FALSE;
}
VNC_DEBUG("Decided on auth type %u", type);
priv->auth_type = type;
@@ -5880,11 +5880,11 @@ gboolean vnc_connection_set_auth_subtype(VncConnection *conn, unsigned int type)
priv->auth_type != VNC_CONNECTION_AUTH_TLS) {
vnc_connection_set_error(conn, "Auth type %u does not support subauth",
priv->auth_type);
- return !vnc_connection_has_error(conn);
+ return FALSE;
}
if (priv->auth_subtype != VNC_CONNECTION_AUTH_INVALID) {
vnc_connection_set_error(conn, "%s", "Auth subtype has already been set");
- return !vnc_connection_has_error(conn);
+ return FALSE;
}
priv->auth_subtype = type;

View File

@ -1,333 +0,0 @@
From fe4d5599a9aec8bcd2ad53d8e124630a53cd8394 Mon Sep 17 00:00:00 2001
From: Christophe Fergeau <cfergeau@redhat.com>
Date: Wed, 9 Jan 2019 14:01:26 +0100
Subject: [PATCH] conn: Use vnc_connection_has_error() extensively
It's better to call this helper rather than directly checking for
priv->coroutine_stop.
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
(cherry picked from commit ad6478a1e522f5e0c2f396ac3600dc35df5871a8)
Resolves: rhbz#1688275
---
src/vncconnection.c | 77 ++++++++++++++++++++++-----------------------
1 file changed, 37 insertions(+), 40 deletions(-)
diff --git a/src/vncconnection.c b/src/vncconnection.c
index fd7468b..bbf4373 100644
--- a/src/vncconnection.c
+++ b/src/vncconnection.c
@@ -736,7 +736,7 @@ static int vnc_connection_read_wire(VncConnection *conn, void *data, size_t len)
reread:
- if (priv->coroutine_stop) return -EINVAL;
+ if (vnc_connection_has_error(conn)) return -EINVAL;
if (priv->tls_session) {
ret = gnutls_read(priv->tls_session, data, len);
@@ -885,7 +885,7 @@ static int vnc_connection_read(VncConnection *conn, void *data, size_t len)
char *ptr = data;
size_t offset = 0;
- if (priv->coroutine_stop) return -EINVAL;
+ if (vnc_connection_has_error(conn)) return -EINVAL;
while (offset < len) {
size_t tmp;
@@ -941,7 +941,7 @@ static void vnc_connection_flush_wire(VncConnection *conn,
int ret;
gboolean blocking = FALSE;
- if (priv->coroutine_stop) return;
+ if (vnc_connection_has_error(conn)) return;
if (priv->tls_session) {
ret = gnutls_write(priv->tls_session,
@@ -2878,10 +2878,9 @@ static void vnc_connection_tight_update(VncConnection *conn,
static void vnc_connection_update(VncConnection *conn, int x, int y, int width, int height)
{
- VncConnectionPrivate *priv = conn->priv;
struct signal_data sigdata;
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return;
VNC_DEBUG("Notify update area (%dx%d) at location %d,%d", width, height, x, y);
@@ -2896,10 +2895,9 @@ static void vnc_connection_update(VncConnection *conn, int x, int y, int width,
static void vnc_connection_bell(VncConnection *conn)
{
- VncConnectionPrivate *priv = conn->priv;
struct signal_data sigdata;
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return;
VNC_DEBUG("Server beep");
@@ -2911,11 +2909,10 @@ static void vnc_connection_server_cut_text(VncConnection *conn,
const void *data,
size_t len)
{
- VncConnectionPrivate *priv = conn->priv;
struct signal_data sigdata;
GString *text;
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return;
text = g_string_new_len ((const gchar *)data, len);
@@ -2933,7 +2930,7 @@ static void vnc_connection_resize(VncConnection *conn, int width, int height)
VNC_DEBUG("Desktop resize w=%d h=%d", width, height);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return;
priv->width = width;
@@ -2949,7 +2946,7 @@ static void vnc_connection_pixel_format(VncConnection *conn)
VncConnectionPrivate *priv = conn->priv;
struct signal_data sigdata;
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return;
sigdata.params.pixelFormat = &priv->fmt;
@@ -2967,7 +2964,7 @@ static void vnc_connection_pointer_type_change(VncConnection *conn, gboolean abs
return;
priv->absPointer = absPointer;
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return;
sigdata.params.absPointer = absPointer;
@@ -3028,7 +3025,7 @@ static void vnc_connection_rich_cursor(VncConnection *conn, guint16 x, guint16 y
priv->cursor = vnc_cursor_new(pixbuf, x, y, width, height);
}
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return;
sigdata.params.cursor = priv->cursor;
@@ -3093,7 +3090,7 @@ static void vnc_connection_xcursor(VncConnection *conn, guint16 x, guint16 y, gu
priv->cursor = vnc_cursor_new(pixbuf, x, y, width, height);
}
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return;
sigdata.params.cursor = priv->cursor;
@@ -3405,7 +3402,7 @@ static gboolean vnc_connection_server_message(VncConnection *conn)
n_type = vnc_connection_read_u8(conn);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
break;
switch (n_type) {
@@ -3423,7 +3420,7 @@ static gboolean vnc_connection_server_message(VncConnection *conn)
n_length, 1024 * 1024);
break;
}
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
break;
if (!priv->audio) {
@@ -3491,7 +3488,7 @@ static gboolean vnc_connection_has_credentials(gpointer data)
VncConnection *conn = data;
VncConnectionPrivate *priv = conn->priv;
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return TRUE;
if (priv->want_cred_username && !priv->cred_username)
return FALSE;
@@ -3508,7 +3505,7 @@ static gboolean vnc_connection_gather_credentials(VncConnection *conn)
VNC_DEBUG("Checking if credentials are needed");
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return FALSE;
if (!vnc_connection_has_credentials(conn)) {
@@ -3546,7 +3543,7 @@ static gboolean vnc_connection_gather_credentials(VncConnection *conn)
g_value_array_free(authCred);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return FALSE;
VNC_DEBUG("Waiting for missing credentials");
g_condition_wait(vnc_connection_has_credentials, conn);
@@ -3579,13 +3576,13 @@ static gboolean vnc_connection_check_auth_result(VncConnection *conn)
vnc_connection_read(conn, reason, len);
reason[len] = '\0';
VNC_DEBUG("Fail %s", reason);
- if (!priv->coroutine_stop) {
+ if (!vnc_connection_has_error(conn)) {
vnc_connection_set_error(conn, "%s", reason);
vnc_connection_auth_failure(conn, reason);
}
} else {
VNC_DEBUG("Fail auth no result");
- if (!priv->coroutine_stop) {
+ if (!vnc_connection_has_error(conn)) {
vnc_connection_set_error(conn, "%s", "Unknown authentication failure");
vnc_connection_auth_failure(conn, "Unknown authentication failure");
}
@@ -4197,7 +4194,7 @@ static gboolean vnc_connection_perform_auth_sasl(VncConnection *conn)
/* Get the supported mechanisms from the server */
mechlistlen = vnc_connection_read_u32(conn);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
goto error;
if (mechlistlen > SASL_MAX_MECHLIST_LEN) {
vnc_connection_set_error(conn,
@@ -4209,7 +4206,7 @@ static gboolean vnc_connection_perform_auth_sasl(VncConnection *conn)
mechlist = g_malloc(mechlistlen+1);
vnc_connection_read(conn, mechlist, mechlistlen);
mechlist[mechlistlen] = '\0';
- if (priv->coroutine_stop) {
+ if (vnc_connection_has_error(conn)) {
g_free(mechlist);
mechlist = NULL;
goto error;
@@ -4266,14 +4263,14 @@ static gboolean vnc_connection_perform_auth_sasl(VncConnection *conn)
vnc_connection_write_u32(conn, 0);
}
vnc_connection_flush(conn);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
goto error;
VNC_DEBUG("%s", "Getting sever start negotiation reply");
/* Read the 'START' message reply from server */
serverinlen = vnc_connection_read_u32(conn);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
goto error;
if (serverinlen > SASL_MAX_DATA_LEN) {
vnc_connection_set_error(conn,
@@ -4292,7 +4289,7 @@ static gboolean vnc_connection_perform_auth_sasl(VncConnection *conn)
serverin = NULL;
}
complete = vnc_connection_read_u8(conn);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
goto error;
VNC_DEBUG("Client start result complete: %d. Data %u bytes %p '%s'",
@@ -4354,13 +4351,13 @@ static gboolean vnc_connection_perform_auth_sasl(VncConnection *conn)
vnc_connection_write_u32(conn, 0);
}
vnc_connection_flush(conn);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
goto error;
VNC_DEBUG("Server step with %u bytes %p", clientoutlen, clientout);
serverinlen = vnc_connection_read_u32(conn);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
goto error;
if (serverinlen > SASL_MAX_DATA_LEN) {
vnc_connection_set_error(conn,
@@ -4379,7 +4376,7 @@ static gboolean vnc_connection_perform_auth_sasl(VncConnection *conn)
serverin = NULL;
}
complete = vnc_connection_read_u8(conn);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
goto error;
VNC_DEBUG("Client step result complete: %d. Data %u bytes %p '%s'",
@@ -4524,7 +4521,7 @@ static gboolean vnc_connection_has_auth_subtype(gpointer data)
VncConnection *conn = data;
VncConnectionPrivate *priv = conn->priv;
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return TRUE;
if (priv->auth_subtype == VNC_CONNECTION_AUTH_INVALID)
return FALSE;
@@ -4597,15 +4594,15 @@ static gboolean vnc_connection_perform_auth_tls(VncConnection *conn)
VNC_DEBUG("Possible TLS sub-auth %u", auth[i]);
}
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return FALSE;
vnc_connection_choose_auth(conn, VNC_AUTH_CHOOSE_SUBTYPE, nauth, auth);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return FALSE;
VNC_DEBUG("Waiting for TLS auth subtype");
g_condition_wait(vnc_connection_has_auth_subtype, conn);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return FALSE;
VNC_DEBUG("Choose auth %u", priv->auth_subtype);
@@ -4672,15 +4669,15 @@ static gboolean vnc_connection_perform_auth_vencrypt(VncConnection *conn)
VNC_DEBUG("Possible VeNCrypt sub-auth %u", auth[i]);
}
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return FALSE;
vnc_connection_choose_auth(conn, VNC_AUTH_CHOOSE_SUBTYPE, nauth, auth);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return FALSE;
VNC_DEBUG("Waiting for VeNCrypt auth subtype");
g_condition_wait(vnc_connection_has_auth_subtype, conn);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return FALSE;
VNC_DEBUG("Choose auth %u", priv->auth_subtype);
@@ -4753,7 +4750,7 @@ static gboolean vnc_connection_has_auth_type(gpointer data)
VncConnection *conn = data;
VncConnectionPrivate *priv = conn->priv;
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return TRUE;
if (priv->auth_type == VNC_CONNECTION_AUTH_INVALID)
return FALSE;
@@ -4790,15 +4787,15 @@ static gboolean vnc_connection_perform_auth(VncConnection *conn)
VNC_DEBUG("Possible auth %u", auth[i]);
}
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return FALSE;
vnc_connection_choose_auth(conn, VNC_AUTH_CHOOSE_TYPE, nauth, auth);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return FALSE;
VNC_DEBUG("Waiting for auth type");
g_condition_wait(vnc_connection_has_auth_type, conn);
- if (priv->coroutine_stop)
+ if (vnc_connection_has_error(conn))
return FALSE;
VNC_DEBUG("Choose auth %u", priv->auth_type);

View File

@ -1,75 +0,0 @@
From a820d8623e5eae48cb08b624c85fc846a198df16 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Fri, 11 Jan 2019 16:34:30 +0100
Subject: [PATCH] vnc_connection_start_tls: add deinit label
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Introduce a deinit label to unify cleanup paths which call gnutls_deinit.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit e62d010777eecda47829e9da54bad3387f4d6231)
Resolves: rhbz#1665837
---
src/vncconnection.c | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/src/vncconnection.c b/src/vncconnection.c
index bbf4373..7b15211 100644
--- a/src/vncconnection.c
+++ b/src/vncconnection.c
@@ -4445,22 +4445,19 @@ static gboolean vnc_connection_start_tls(VncConnection *conn, int anonTLS)
}
if (gnutls_priority_set_direct(priv->tls_session, priority, NULL) < 0) {
- gnutls_deinit(priv->tls_session);
vnc_connection_set_error(conn, "%s", "Failed to set priority");
- return FALSE;
+ goto deinit;
}
if (anonTLS) {
gnutls_anon_client_credentials anon_cred = vnc_connection_tls_initialize_anon_cred();
if (!anon_cred) {
- gnutls_deinit(priv->tls_session);
vnc_connection_set_error(conn, "%s", "Failed to allocate credentials");
- return FALSE;
+ goto deinit;
}
if (gnutls_credentials_set(priv->tls_session, GNUTLS_CRD_ANON, anon_cred) < 0) {
- gnutls_deinit(priv->tls_session);
vnc_connection_set_error(conn, "%s", "Failed to initialize credentials");
- return FALSE;
+ goto deinit;
}
} else {
priv->want_cred_password = FALSE;
@@ -4471,14 +4468,12 @@ static gboolean vnc_connection_start_tls(VncConnection *conn, int anonTLS)
gnutls_certificate_credentials_t x509_cred = vnc_connection_tls_initialize_cert_cred(conn);
if (!x509_cred) {
- gnutls_deinit(priv->tls_session);
vnc_connection_set_error(conn, "%s", "Failed to allocate credentials");
- return FALSE;
+ goto deinit;
}
if (gnutls_credentials_set(priv->tls_session, GNUTLS_CRD_CERTIFICATE, x509_cred) < 0) {
- gnutls_deinit(priv->tls_session);
vnc_connection_set_error(conn, "%s", "Failed to initialize credentials");
- return FALSE;
+ goto deinit;
}
}
@@ -4514,6 +4509,10 @@ static gboolean vnc_connection_start_tls(VncConnection *conn, int anonTLS)
}
return TRUE;
}
+
+ deinit:
+ gnutls_deinit(priv->tls_session);
+ return FALSE;
}
static gboolean vnc_connection_has_auth_subtype(gpointer data)

View File

@ -1,60 +0,0 @@
From 47fdacf72c35cb89071084171e020b4846b3fbd6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Fri, 11 Jan 2019 16:34:31 +0100
Subject: [PATCH] vnc_connection_start_tls: set tls_session to NULL after
deinit
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Avoid a double free in case of a failure, e.g. when vnc_connection_tls_initialize_cert_cred
fails to read the certificate:
==1154== Invalid read of size 4
==1154== at 0x60870FB: gnutls_bye (record.c:288)
==1154== by 0x4A46B73: vnc_connection_close (vncconnection.c:5120)
==1154== by 0x4A4E6CA: vnc_connection_coroutine (vncconnection.c:5650)
==1154== by 0x4A51BCE: coroutine_trampoline (coroutine_ucontext.c:55)
==1154== by 0x5BD81FF: ??? (in /usr/lib64/libc-2.28.so)
==1154== by 0x175DB277: ???
==1154== Address 0x1847fcf0 is 384 bytes inside a block of size 6,496 free'd
==1154== at 0x4839A0C: free (vg_replace_malloc.c:540)
==1154== by 0x4A4B019: vnc_connection_start_tls (vncconnection.c:4466)
==1154== by 0x4A4CBE8: vnc_connection_perform_auth_vencrypt (vncconnection.c:4708)
==1154== by 0x4A4CBE8: vnc_connection_perform_auth (vncconnection.c:4818)
==1154== by 0x4A4CBE8: vnc_connection_initialize (vncconnection.c:5415)
==1154== by 0x4A4E50F: vnc_connection_coroutine (vncconnection.c:5639)
==1154== by 0x4A51BCE: coroutine_trampoline (coroutine_ucontext.c:55)
==1154== by 0x5BD81FF: ??? (in /usr/lib64/libc-2.28.so)
==1154== by 0x175DB277: ???
==1154== Block was alloc'd at
==1154== at 0x483AB1A: calloc (vg_replace_malloc.c:762)
==1154== by 0x60B6FDE: gnutls_init (state.c:465)
==1154== by 0x4A4AB28: vnc_connection_start_tls (vncconnection.c:4434)
==1154== by 0x4A4CBE8: vnc_connection_perform_auth_vencrypt (vncconnection.c:4708)
==1154== by 0x4A4CBE8: vnc_connection_perform_auth (vncconnection.c:4818)
==1154== by 0x4A4CBE8: vnc_connection_initialize (vncconnection.c:5415)
==1154== by 0x4A4E50F: vnc_connection_coroutine (vncconnection.c:5639)
==1154== by 0x4A51BCE: coroutine_trampoline (coroutine_ucontext.c:55)
==1154== by 0x5BD81FF: ??? (in /usr/lib64/libc-2.28.so)
==1154== by 0x175DB277: ???
Signed-off-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 7879ae9c747b4e95bb3850c4e67ca57d3ded82e3)
Resolves: rhbz#1665837
---
src/vncconnection.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/vncconnection.c b/src/vncconnection.c
index 7b15211..5321731 100644
--- a/src/vncconnection.c
+++ b/src/vncconnection.c
@@ -4512,6 +4512,7 @@ static gboolean vnc_connection_start_tls(VncConnection *conn, int anonTLS)
deinit:
gnutls_deinit(priv->tls_session);
+ priv->tls_session = NULL;
return FALSE;
}

View File

@ -1,675 +0,0 @@
# -*- rpm-spec -*-
# This spec file assumes you are building for Fedora 26 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_gtk2 1
%if 0%{?rhel} >= 8
%global with_gtk2 0
%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} || 0%{?rhel} >= 8
%global tls_priority "@LIBVIRT,SYSTEM"
%else
%global tls_priority "NORMAL"
%endif
Summary: A GTK2 widget for VNC clients
Name: gtk-vnc
Version: 0.9.0
Release: 3%{?dist}%{?extra_release}
License: LGPLv2+
Source: http://ftp.gnome.org/pub/GNOME/sources/%{name}/0.5/%{name}-%{version}.tar.xz
Patch1: 0001-fix-crash-when-connection-fails-early.patch
Patch2: 0002-gvnc-1.0.pc.in-Use-GLIB_REQUIRED.patch
Patch3: 0003-sasl-Factor-common-code-auth-failure.patch
Patch4: 0004-sasl-Emit-vnc-auth-failure-signal-on-SASL-auth-failu.patch
Patch5: 0005-conn-Report-error-if-vnc_connection_perform_auth_vnc.patch
Patch6: 0006-conn-Remove-redundant-vnc_connection_has_error-calls.patch
Patch7: 0007-conn-Use-vnc_connection_has_error-extensively.patch
Patch8: 0008-vnc_connection_start_tls-add-deinit-label.patch
Patch9: 0009-vnc_connection_start_tls-set-tls_session-to-NULL-aft.patch
URL: https://wiki.gnome.org/Projects/gtk-vnc
Requires: gvnc = %{version}-%{release}
%if %{with_gtk2}
BuildRequires: gtk2-devel >= 2.14
%endif
%if 0%{?fedora}
BuildRequires: python3
%else
%if 0%{?rhel} > 7
BuildRequires: python3-devel
%else
BuildRequires: python
%endif
%endif
BuildRequires: gnutls-devel libgcrypt-devel cyrus-sasl-devel zlib-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.
%if %{with_gtk2}
%package devel
Summary: Development files to build GTK2 applications with gtk-vnc
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
%endif
%package -n gvnc
Summary: A GObject for VNC connections
%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
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
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
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
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
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
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
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
%if %{with_gtk2}
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 ..
%endif
%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}
%if %{with_gtk2}
cd gtk-vnc-%{version}
%__make install DESTDIR=%{buildroot}
cd ..
%endif
%if %{with_gtk3}
cd gtk-vnc2-%{version}
%__make install DESTDIR=%{buildroot}
cd ..
%endif
rm -f %{buildroot}%{_libdir}/*.a
rm -f %{buildroot}%{_libdir}/*.la
%find_lang %{name}
%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
%if %{with_gtk2}
%files
%{_libdir}/libgtk-vnc-1.0.so.*
%if %{with_gir}
%{_libdir}/girepository-1.0/GtkVnc-1.0.typelib
%endif
%files devel
%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
%endif
%files -n gvnc -f %{name}.lang
%{_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
%{_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
%{_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
%{_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
%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
%{_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
%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.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
* Fri Oct 13 2023 Daniel P. Berrangé <berrange@redhat.com> - 0.9.0-3
- Rebuild to trigger shipping of devel package (RHEL-12352)
* Thu Nov 28 2019 Daniel P. Berrangé <berrange@redhat.com> - 0.9.0-2
- Fix crash when TLS handshake fails (rhbz #1665837)
- Ensure auth failure signal is emitted when SASL fails (rhbz #1688275)
* Thu Aug 30 2018 Daniel P. Berrangé <berrange@redhat.com> - 0.9.0-1
- Update to 0.9.0 release
- Use gcrypt for DES impl instead of local DES impl (rhbz #1618426)
- Fix crash if connection fails early (rhbz #1622189)
* Mon Aug 13 2018 Troy Dawson <tdawson@redhat.com> - 0.8.0-2
- Add BuildRequest python3-devel
* Wed Aug 1 2018 Daniel P. Berrangé <berrange@redhat.com> - 0.8.0-1
- Update to 0.8.0 release
* Mon Jul 23 2018 Daniel P. Berrangé <berrange@redhat.com> - 0.7.2-2
- Force python3 for build
- Disable GTK2 library build
* Fri Mar 23 2018 Daniel P. Berrangé <berrange@redhat.com> - 0.7.2-1
- Rebase to 0.7.2 release
- Disable python2 sub-RPM
* Wed Feb 14 2018 Iryna Shcherbina <ishcherb@redhat.com> - 0.7.1-7
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.7.1-5
- Add Provides for the old name without %%_isa
* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.7.1-4
- Python 2 binary package renamed to python2-gtk-vnc
See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri May 19 2017 Daniel P. Berrange <berrange@redhat.com> - 0.7.1-1
- Update to 0.7.1 release
- Fix incompatibility with libvncserver/x11vnc (rhbz #1421785)
* Thu Feb 9 2017 Daniel P. Berrange <berrange@redhat.com> - 0.7.0-1
- Update to 0.7.0 release
- CVE-2017-5884 - fix bounds checking for RRE, hextile and
copyrect encodings
- CVE-2017-5885 - fix color map index bounds checking
* Thu Oct 6 2016 Daniel P. Berrange <berrange@redhat.com> - 0.6.0-1
- Update to 0.6.0 release
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.4-4
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.5.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Tue Feb 10 2015 Daniel P. Berrange <berrange@redhat.com> - 0.5.4-1
- Update to 0.5.4 release
* Wed Oct 29 2014 Cole Robinson <crobinso@redhat.com> - 0.5.3-6
- Fix virt-viewer fullscreen widget (bz #1036824)
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Tue Jul 22 2014 Kalev Lember <kalevlember@gmail.com> - 0.5.3-4
- Rebuilt for gobject-introspection 1.41.4
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Wed Apr 23 2014 Tomáš Mráz <tmraz@redhat.com> - 0.5.3-2
- Rebuild for new libgcrypt
* Wed Sep 18 2013 Daniel P. Berrange <berrange@redhat.com> - 0.5.3-1
- Update to 0.5.3 release
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Jul 18 2013 Petr Pisar <ppisar@redhat.com> - 0.5.2-3
- Perl 5.18 rebuild
- Build-require libgcrypt-devel
* 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
* 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

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}

376
gtk-vnc.spec Normal file
View File

@ -0,0 +1,376 @@
# -*- rpm-spec -*-
# This spec file assumes you are building for Fedora 32 or newer,
# or for RHEL 8 or newer. It may need some tweaks for other distros.
%global tls_priority "@LIBVIRT,SYSTEM"
%global verdir %(echo ${version} | cut -d. -f1,2)
%global with_mingw 0
%if 0%{?fedora}
%global with_mingw 1
%endif
Summary: A GTK widget for VNC clients
Name: gtk-vnc
Version: 1.3.1
Release: 7%{?dist}
License: LGPL-2.1-or-later
Source: https://download.gnome.org/sources/%{name}/%{verdir}/%{name}-%{version}.tar.xz
URL: https://gitlab.gnome.org/GNOME/gtk-vnc
Requires: gvnc = %{version}-%{release}
BuildRequires: python3-devel
BuildRequires: gnutls-devel libgcrypt-devel cyrus-sasl-devel zlib-devel
BuildRequires: gobject-introspection-devel
BuildRequires: gtk3-devel
BuildRequires: vala
BuildRequires: pulseaudio-libs-devel
BuildRequires: /usr/bin/pod2man
BuildRequires: meson
%if %{with_mingw}
BuildRequires: mingw32-filesystem >= 95
BuildRequires: mingw32-gcc
BuildRequires: mingw32-cairo
BuildRequires: mingw32-gettext
BuildRequires: mingw32-libgcrypt
BuildRequires: mingw32-gnutls
BuildRequires: mingw32-gtk3
BuildRequires: mingw64-filesystem >= 95
BuildRequires: mingw64-gcc
BuildRequires: mingw64-cairo
BuildRequires: mingw64-gettext
BuildRequires: mingw64-libgcrypt
BuildRequires: mingw64-gnutls
BuildRequires: mingw64-gtk3
%endif
%description
gtk-vnc is a VNC viewer widget for GTK. It is built using coroutines
allowing it to be completely asynchronous while remaining single threaded.
%package -n gvnc
Summary: A GObject for VNC connections
%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
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
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
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
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
%package -n gtk-vnc2
Summary: A GTK3 widget for VNC clients
Requires: gvnc = %{version}-%{release}
Obsoletes: gtk-vnc < 1.0.0
%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
Requires: gtk-vnc2 = %{version}-%{release}
Requires: pkgconfig
Requires: gtk3-devel
Obsoletes: gtk-vnc-devel < 1.0.0
%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
%if %{with_mingw}
# Mingw32
%package -n mingw32-gvnc
Summary: MinGW Windows port of VNC GObject
BuildArch: noarch
%package -n mingw32-gvnc-tools
Summary: Command line VNC tools
BuildArch: noarch
%package -n mingw32-gtk-vnc2
Summary: A GTK3 widget for VNC clients
Requires: pkgconfig
Obsoletes: mingw32-gtk-vnc < 1.0.0
BuildArch: noarch
%description -n mingw32-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.
%description -n mingw32-gvnc-tools
Provides useful command line utilities for interacting with
VNC servers. Includes the gvnccapture program for capturing
screenshots of a VNC desktop
%description -n mingw32-gtk-vnc2
gtk-vnc is a VNC viewer widget for GTK. It is built using coroutines
allowing it to be completely asynchronous while remaining single threaded.
# Mingw64
%package -n mingw64-gvnc
Summary: MinGW Windows port of VNC GObject
BuildArch: noarch
%package -n mingw64-gvnc-tools
Summary: Command line VNC tools
BuildArch: noarch
%package -n mingw64-gtk-vnc2
Summary: A GTK3 widget for VNC clients
Requires: pkgconfig
Obsoletes: mingw64-gtk-vnc < 1.0.0
BuildArch: noarch
%description -n mingw64-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.
%description -n mingw64-gvnc-tools
Provides useful command line utilities for interacting with
VNC servers. Includes the gvnccapture program for capturing
screenshots of a VNC desktop
%description -n mingw64-gtk-vnc2
gtk-vnc is a VNC viewer widget for GTK. It is built using coroutines
allowing it to be completely asynchronous while remaining single threaded.
%{?mingw_debug_package}
%endif
%prep
%autosetup -n gtk-vnc-%{version}
%build
%meson
%meson_build
chmod -x examples/*.pl examples/*.js examples/*.py
%if %{with_mingw}
%mingw_meson -Dintrospection=disabled
%mingw_ninja
%endif
%install
%meson_install
%find_lang %{name}
%if %{with_mingw}
export DESTDIR=%{buildroot}
%mingw_ninja install
rm -f $RPM_BUILD_ROOT%{mingw32_mandir}/man1/gvnccapture.1*
rm -f $RPM_BUILD_ROOT%{mingw64_mandir}/man1/gvnccapture.1*
%mingw_debug_install_post
%mingw_find_lang gtk-vnc
%endif
%check
%meson_test
%files -n gvnc -f %{name}.lang
%{_libdir}/libgvnc-1.0.so.*
%{_libdir}/girepository-1.0/GVnc-1.0.typelib
%{_datadir}/vala/vapi/gvnc-1.0.deps
%{_datadir}/vala/vapi/gvnc-1.0.vapi
%files -n gvnc-devel
%{_libdir}/libgvnc-1.0.so
%dir %{_includedir}/gvnc-1.0/
%{_includedir}/gvnc-1.0/*.h
%{_libdir}/pkgconfig/gvnc-1.0.pc
%{_datadir}/gir-1.0/GVnc-1.0.gir
%files -n gvncpulse -f %{name}.lang
%{_libdir}/libgvncpulse-1.0.so.*
%{_libdir}/girepository-1.0/GVncPulse-1.0.typelib
%{_datadir}/vala/vapi/gvncpulse-1.0.deps
%{_datadir}/vala/vapi/gvncpulse-1.0.vapi
%files -n gvncpulse-devel
%{_libdir}/libgvncpulse-1.0.so
%dir %{_includedir}/gvncpulse-1.0/
%{_includedir}/gvncpulse-1.0/*.h
%{_libdir}/pkgconfig/gvncpulse-1.0.pc
%{_datadir}/gir-1.0/GVncPulse-1.0.gir
%files -n gvnc-tools
%doc AUTHORS
%doc ChangeLog
%doc ChangeLog-old
%doc NEWS
%doc README
%doc COPYING.LIB
%{_bindir}/gvnccapture
%{_mandir}/man1/gvnccapture.1*
%files -n gtk-vnc2
%{_libdir}/libgtk-vnc-2.0.so.*
%{_libdir}/girepository-1.0/GtkVnc-2.0.typelib
%{_datadir}/vala/vapi/gtk-vnc-2.0.deps
%{_datadir}/vala/vapi/gtk-vnc-2.0.vapi
%files -n gtk-vnc2-devel
%doc examples/gvncviewer.c
%doc examples/gvncviewer.js
%doc examples/gvncviewer.pl
%doc examples/gvncviewer.py
%{_libdir}/libgtk-vnc-2.0.so
%dir %{_includedir}/%{name}-2.0/
%{_includedir}/%{name}-2.0/*.h
%{_libdir}/pkgconfig/%{name}-2.0.pc
%{_datadir}/gir-1.0/GtkVnc-2.0.gir
%if %{with_mingw}
# Mingw32
%files -n mingw32-gvnc -f mingw32-gtk-vnc.lang
%doc AUTHORS
%doc ChangeLog
%doc ChangeLog-old
%doc NEWS
%doc README
%doc COPYING.LIB
%{mingw32_bindir}/libgvnc-1.0-0.dll
%{mingw32_libdir}/libgvnc-1.0.dll.a
%{mingw32_libdir}/pkgconfig/gvnc-1.0.pc
%{mingw32_includedir}/gvnc-1.0
%files -n mingw32-gtk-vnc2
%{mingw32_bindir}/libgtk-vnc-2.0-0.dll
%{mingw32_libdir}/libgtk-vnc-2.0.dll.a
%{mingw32_libdir}/pkgconfig/gtk-vnc-2.0.pc
%{mingw32_includedir}/gtk-vnc-2.0
%files -n mingw32-gvnc-tools
%{mingw32_bindir}/gvnccapture.exe
# Mingw64
%files -n mingw64-gvnc -f mingw64-gtk-vnc.lang
%doc AUTHORS
%doc ChangeLog
%doc ChangeLog-old
%doc NEWS
%doc README
%doc COPYING.LIB
%{mingw64_bindir}/libgvnc-1.0-0.dll
%{mingw64_libdir}/libgvnc-1.0.dll.a
%{mingw64_libdir}/pkgconfig/gvnc-1.0.pc
%{mingw64_includedir}/gvnc-1.0
%files -n mingw64-gtk-vnc2
%{mingw64_bindir}/libgtk-vnc-2.0-0.dll
%{mingw64_libdir}/libgtk-vnc-2.0.dll.a
%{mingw64_libdir}/pkgconfig/gtk-vnc-2.0.pc
%{mingw64_includedir}/gtk-vnc-2.0
%files -n mingw64-gvnc-tools
%{mingw64_bindir}/gvnccapture.exe
%endif
%changelog
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 1.3.1-7
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.3.1-6
- Bump release for June 2024 mass rebuild
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Jan 16 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 1.3.1-1
- Update to 1.3.1 release
* Mon Aug 8 2022 Daniel P. Berrangé <berrange@redhat.com> - 1.3.0-5
- Pull in mingw sub-packages
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Nov 22 2021 Daniel P. Berrangé <berrange@redhat.com> - 1.3.0-1
- Update to 1.3.0 release
* Mon Aug 23 2021 Kalev Lember <klember@redhat.com> - 1.2.0-3
- BR vala instead of vala-tools
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Apr 14 2021 Daniel P. Berrangé <berrange@redhat.com> - 1.2.0-1
- Update to 1.2.0 release
- Drop outdated conditionals
- Drop outdated ldconfig script
- Use versioned obsoletes tags
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (gtk-vnc-1.3.1.tar.xz) = 01c9af407f913b214814252d7b204822372293ffc5f658aa646936f9f8cdcd77589c127e4d0e893e914c61470d4616e32f7b1fa9bd3739b2a22caef6710953b9