Update to 42.beta

This commit is contained in:
Jonas Ådahl 2022-02-16 11:28:36 +01:00
parent 3556d1e9c9
commit 58efc5586e
4 changed files with 66 additions and 62 deletions

1
.gitignore vendored
View File

@ -7,3 +7,4 @@
/gnome-remote-desktop-41.0.tar.xz
/gnome-remote-desktop-41.1.tar.xz
/gnome-remote-desktop-41.2.tar.xz
/gnome-remote-desktop-42.beta.tar.xz

View File

@ -3,8 +3,8 @@
%global tarball_version %%(echo %{version} | tr '~' '.')
Name: gnome-remote-desktop
Version: 41.2
Release: 2%{?dist}
Version: 42~beta
Release: 1%{?dist}
Summary: GNOME Remote Desktop screen share service
License: GPLv2+
@ -80,6 +80,9 @@ GNOME desktop environment.
%changelog
* Wed Feb 16 2022 Jonas Ådahl <jadahl@redhat.com> - 42~beta-1
- Update to 42.beta
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 41.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

View File

@ -1,4 +1,4 @@
From 06f99dc1aaef90275547d8c93ddf18e9d0c88257 Mon Sep 17 00:00:00 2001
From 0fb8045a40412a472db93131df899b94e626886f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Thu, 14 Jun 2018 12:21:37 +0200
Subject: [PATCH 1/7] vnc: Add anonymous TLS encryption support
@ -25,10 +25,10 @@ VNC connection.
create mode 100644 src/grd-vnc-tls.h
diff --git a/meson.build b/meson.build
index c8c957c..536e94a 100644
index 4ac9093..a7d3bb0 100644
--- a/meson.build
+++ b/meson.build
@@ -54,6 +54,7 @@ endif
@@ -57,6 +57,7 @@ endif
if have_vnc
libvncserver_dep = dependency('libvncserver')
libvncclient_dep = dependency('libvncclient')
@ -52,7 +52,7 @@ index ffab821..4333863 100644
+
#endif /* GRD_ENUMS_H */
diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c
index 0e520dc..0c189fd 100644
index a4cb958..c2e29b4 100644
--- a/src/grd-session-vnc.c
+++ b/src/grd-session-vnc.c
@@ -45,7 +45,9 @@ struct _GrdSessionVnc
@ -65,7 +65,7 @@ index 0e520dc..0c189fd 100644
GSource *source;
rfbScreenInfoPtr rfb_screen;
rfbClientPtr rfb_client;
@@ -540,6 +542,12 @@ check_rfb_password (rfbClientPtr rfb_client,
@@ -543,6 +545,12 @@ check_rfb_password (rfbClientPtr rfb_client,
}
}
@ -78,7 +78,7 @@ index 0e520dc..0c189fd 100644
int
grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
int width)
@@ -547,6 +555,18 @@ grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
@@ -550,6 +558,18 @@ grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
return width * BGRX_BYTES_PER_PIXEL;
}
@ -97,7 +97,7 @@ index 0e520dc..0c189fd 100644
static void
init_vnc_session (GrdSessionVnc *session_vnc)
{
@@ -590,44 +610,85 @@ init_vnc_session (GrdSessionVnc *session_vnc)
@@ -593,44 +613,85 @@ init_vnc_session (GrdSessionVnc *session_vnc)
rfbProcessEvents (rfb_screen, 0);
}
@ -208,7 +208,7 @@ index 0e520dc..0c189fd 100644
}
return G_SOURCE_CONTINUE;
@@ -640,7 +701,10 @@ grd_session_vnc_attach_source (GrdSessionVnc *session_vnc)
@@ -643,7 +704,10 @@ grd_session_vnc_attach_source (GrdSessionVnc *session_vnc)
socket = g_socket_connection_get_socket (session_vnc->connection);
session_vnc->source = g_socket_create_source (socket,
@ -220,7 +220,7 @@ index 0e520dc..0c189fd 100644
NULL);
g_source_set_callback (session_vnc->source,
(GSourceFunc) handle_socket_data,
@@ -666,8 +730,10 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
@@ -669,8 +733,10 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
"context", context,
NULL);
@ -231,7 +231,7 @@ index 0e520dc..0c189fd 100644
grd_session_vnc_attach_source (session_vnc);
init_vnc_session (session_vnc);
@@ -682,6 +748,8 @@ grd_session_vnc_dispose (GObject *object)
@@ -685,6 +751,8 @@ grd_session_vnc_dispose (GObject *object)
g_assert (!session_vnc->rfb_screen);
@ -241,12 +241,12 @@ index 0e520dc..0c189fd 100644
G_OBJECT_CLASS (grd_session_vnc_parent_class)->dispose (object);
diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h
index a532567..4e7b33d 100644
index fcc508d..092d9dc 100644
--- a/src/grd-session-vnc.h
+++ b/src/grd-session-vnc.h
@@ -36,6 +36,9 @@ G_DECLARE_FINAL_TYPE (GrdSessionVnc,
GRD, SESSION_VNC,
GrdSession);
GrdSession)
+typedef gboolean (* GrdVncSocketGrabFunc) (GrdSessionVnc *session_vnc,
+ GError **error);
@ -276,7 +276,7 @@ index a532567..4e7b33d 100644
+
#endif /* GRD_SESSION_VNC_H */
diff --git a/src/grd-settings.c b/src/grd-settings.c
index d2f31d2..12d8693 100644
index 4560a37..744ff89 100644
--- a/src/grd-settings.c
+++ b/src/grd-settings.c
@@ -60,6 +60,7 @@ struct _GrdSettings
@ -287,7 +287,7 @@ index d2f31d2..12d8693 100644
} vnc;
};
@@ -242,6 +243,12 @@ grd_settings_get_vnc_auth_method (GrdSettings *settings)
@@ -248,6 +249,12 @@ grd_settings_get_vnc_auth_method (GrdSettings *settings)
return settings->vnc.auth_method;
}
@ -300,7 +300,7 @@ index d2f31d2..12d8693 100644
static void
update_rdp_tls_cert (GrdSettings *settings)
{
@@ -277,6 +284,13 @@ update_vnc_auth_method (GrdSettings *settings)
@@ -285,6 +292,13 @@ update_vnc_auth_method (GrdSettings *settings)
"auth-method");
}
@ -314,7 +314,7 @@ index d2f31d2..12d8693 100644
static void
on_rdp_settings_changed (GSettings *rdp_settings,
const char *key,
@@ -314,6 +328,11 @@ on_vnc_settings_changed (GSettings *vnc_settings,
@@ -322,6 +336,11 @@ on_vnc_settings_changed (GSettings *vnc_settings,
update_vnc_auth_method (settings);
g_signal_emit (settings, signals[VNC_AUTH_METHOD_CHANGED], 0);
}
@ -326,7 +326,7 @@ index d2f31d2..12d8693 100644
}
static void
@@ -345,6 +364,8 @@ grd_settings_init (GrdSettings *settings)
@@ -356,6 +375,8 @@ grd_settings_init (GrdSettings *settings)
settings->rdp.port = GRD_RDP_SERVER_PORT;
settings->vnc.port = GRD_VNC_SERVER_PORT;
@ -335,7 +335,7 @@ index d2f31d2..12d8693 100644
}
static void
@@ -389,4 +410,11 @@ grd_settings_class_init (GrdSettingsClass *klass)
@@ -400,4 +421,11 @@ grd_settings_class_init (GrdSettingsClass *klass)
0,
NULL, NULL, NULL,
G_TYPE_NONE, 0);
@ -359,7 +359,7 @@ index e12e47e..b940fdb 100644
+
#endif /* GRD_SETTINGS_H */
diff --git a/src/grd-vnc-server.c b/src/grd-vnc-server.c
index a6d95cb..f9c68db 100644
index aae1029..3e43391 100644
--- a/src/grd-vnc-server.c
+++ b/src/grd-vnc-server.c
@@ -24,11 +24,13 @@
@ -924,10 +924,10 @@ index 0000000..135ef8c
+
+#endif /* GRD_VNC_TLS_H */
diff --git a/src/meson.build b/src/meson.build
index 2fe3923..bf8059f 100644
index 9723d4a..326bef6 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -97,10 +97,13 @@ if have_vnc
@@ -105,10 +105,13 @@ if have_vnc
'grd-vnc-pipewire-stream.h',
'grd-vnc-server.c',
'grd-vnc-server.h',
@ -942,11 +942,11 @@ index 2fe3923..bf8059f 100644
endif
diff --git a/src/org.gnome.desktop.remote-desktop.gschema.xml.in b/src/org.gnome.desktop.remote-desktop.gschema.xml.in
index 7633e00..c2c543e 100644
index 0779c8c..b8e3b0a 100644
--- a/src/org.gnome.desktop.remote-desktop.gschema.xml.in
+++ b/src/org.gnome.desktop.remote-desktop.gschema.xml.in
@@ -49,5 +49,15 @@
* password - by requiring the remote client to provide a known password
* password - by requiring the remote client to provide a known password
</description>
</key>
+ <key name='encryption' flags='org.gnome.desktop.remote-desktop.GrdVncEncryption'>
@ -962,10 +962,10 @@ index 7633e00..c2c543e 100644
</schema>
</schemalist>
--
2.31.1
2.34.1
From 9f289a90a167e29cf43e6d0d91c4f7605a131f39 Mon Sep 17 00:00:00 2001
From 3f7df606d5eed6d5b8444fef801c2bbc2a710b52 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Wed, 27 Nov 2019 11:02:09 +0100
Subject: [PATCH 2/7] session-vnc: Add paused/resumed signals
@ -978,7 +978,7 @@ out-of-socket source.
1 file changed, 65 insertions(+), 7 deletions(-)
diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c
index 0c189fd..596896d 100644
index c2e29b4..4be4c49 100644
--- a/src/grd-session-vnc.c
+++ b/src/grd-session-vnc.c
@@ -41,14 +41,27 @@
@ -1009,8 +1009,8 @@ index 0c189fd..596896d 100644
rfbScreenInfoPtr rfb_screen;
rfbClientPtr rfb_client;
@@ -76,7 +89,7 @@ struct _GrdSessionVnc
G_DEFINE_TYPE (GrdSessionVnc, grd_session_vnc, GRD_TYPE_SESSION);
@@ -77,7 +90,7 @@ struct _GrdSessionVnc
G_DEFINE_TYPE (GrdSessionVnc, grd_session_vnc, GRD_TYPE_SESSION)
static void
-grd_session_vnc_detach_source (GrdSessionVnc *session_vnc);
@ -1018,7 +1018,7 @@ index 0c189fd..596896d 100644
static gboolean
close_session_idle (gpointer user_data);
@@ -235,7 +248,8 @@ handle_client_gone (rfbClientPtr rfb_client)
@@ -236,7 +249,8 @@ handle_client_gone (rfbClientPtr rfb_client)
g_debug ("VNC client gone");
@ -1028,7 +1028,7 @@ index 0c189fd..596896d 100644
maybe_queue_close_session_idle (session_vnc);
session_vnc->rfb_client = NULL;
}
@@ -304,7 +318,7 @@ handle_new_client (rfbClientPtr rfb_client)
@@ -305,7 +319,7 @@ handle_new_client (rfbClientPtr rfb_client)
session_vnc->prompt_cancellable,
prompt_response_callback,
session_vnc);
@ -1037,7 +1037,7 @@ index 0c189fd..596896d 100644
return RFB_CLIENT_ON_HOLD;
case GRD_VNC_AUTH_METHOD_PASSWORD:
session_vnc->rfb_screen->passwordCheck = check_rfb_password;
@@ -533,7 +547,7 @@ check_rfb_password (rfbClientPtr rfb_client,
@@ -536,7 +550,7 @@ check_rfb_password (rfbClientPtr rfb_client,
if (memcmp (challenge_encrypted, response_encrypted, len) == 0)
{
grd_session_start (GRD_SESSION (session_vnc));
@ -1046,7 +1046,7 @@ index 0c189fd..596896d 100644
return TRUE;
}
else
@@ -718,6 +732,36 @@ grd_session_vnc_detach_source (GrdSessionVnc *session_vnc)
@@ -721,6 +735,36 @@ grd_session_vnc_detach_source (GrdSessionVnc *session_vnc)
g_clear_pointer (&session_vnc->source, g_source_destroy);
}
@ -1083,7 +1083,7 @@ index 0c189fd..596896d 100644
GrdSessionVnc *
grd_session_vnc_new (GrdVncServer *vnc_server,
GSocketConnection *connection)
@@ -735,6 +779,7 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
@@ -738,6 +782,7 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
grd_session_vnc_grab_socket (session_vnc, vnc_socket_grab_func);
grd_session_vnc_attach_source (session_vnc);
@ -1091,7 +1091,7 @@ index 0c189fd..596896d 100644
init_vnc_session (session_vnc);
@@ -764,7 +809,7 @@ grd_session_vnc_stop (GrdSession *session)
@@ -767,7 +812,7 @@ grd_session_vnc_stop (GrdSession *session)
g_clear_object (&session_vnc->pipewire_stream);
@ -1100,7 +1100,7 @@ index 0c189fd..596896d 100644
g_clear_object (&session_vnc->connection);
g_clear_object (&session_vnc->clipboard_vnc);
@@ -817,8 +862,8 @@ grd_session_vnc_stream_ready (GrdSession *session,
@@ -827,8 +872,8 @@ grd_session_vnc_stream_ready (GrdSession *session,
G_CALLBACK (on_pipewire_stream_closed),
session_vnc);
@ -1111,9 +1111,9 @@ index 0c189fd..596896d 100644
}
static void
@@ -837,4 +882,17 @@ grd_session_vnc_class_init (GrdSessionVncClass *klass)
session_class->stop = grd_session_vnc_stop;
@@ -849,4 +894,17 @@ grd_session_vnc_class_init (GrdSessionVncClass *klass)
session_class->remote_desktop_session_started =
grd_session_vnc_remote_desktop_session_started;
session_class->stream_ready = grd_session_vnc_stream_ready;
+
+ signals[PAUSED] = g_signal_new ("paused",
@ -1130,10 +1130,10 @@ index 0c189fd..596896d 100644
+ G_TYPE_NONE, 0);
}
--
2.31.1
2.34.1
From 1d34839781948d8de331641863a589ae4eb46c30 Mon Sep 17 00:00:00 2001
From 30b795a086db2afaba5a6089567550aaabf66a78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Wed, 27 Nov 2019 11:03:46 +0100
Subject: [PATCH 3/7] session-vnc: Add grd_session_vnc_dispatch() helper
@ -1146,10 +1146,10 @@ available that is not visible to the socket source.
2 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c
index 596896d..06b2cf7 100644
index 4be4c49..9708de0 100644
--- a/src/grd-session-vnc.c
+++ b/src/grd-session-vnc.c
@@ -672,6 +672,21 @@ vnc_socket_grab_func (GrdSessionVnc *session_vnc,
@@ -675,6 +675,21 @@ vnc_socket_grab_func (GrdSessionVnc *session_vnc,
return TRUE;
}
@ -1171,7 +1171,7 @@ index 596896d..06b2cf7 100644
static gboolean
handle_socket_data (GSocket *socket,
GIOCondition condition,
@@ -688,16 +703,7 @@ handle_socket_data (GSocket *socket,
@@ -691,16 +706,7 @@ handle_socket_data (GSocket *socket,
}
else if (condition & G_IO_IN)
{
@ -1190,7 +1190,7 @@ index 596896d..06b2cf7 100644
else
{
diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h
index 4e7b33d..cf275af 100644
index 092d9dc..e9eced0 100644
--- a/src/grd-session-vnc.h
+++ b/src/grd-session-vnc.h
@@ -79,6 +79,8 @@ void grd_session_vnc_grab_socket (GrdSessionVnc *session_vnc,
@ -1203,10 +1203,10 @@ index 4e7b33d..cf275af 100644
#endif /* GRD_SESSION_VNC_H */
--
2.31.1
2.34.1
From 9cdf72aa277782906a4b979773a7025a61994785 Mon Sep 17 00:00:00 2001
From 808f23c5e083f872b9b4343fc06efc76f8a8b9c1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Wed, 27 Nov 2019 11:05:13 +0100
Subject: [PATCH 4/7] vnc/tls: Add some logging
@ -1280,10 +1280,10 @@ index ec4758e..ac6c35f 100644
{
g_warning ("TLS handshake failed: %s", error->message);
--
2.31.1
2.34.1
From 2c24c7ffa583c94d3cfd7eb105eb264a6430b128 Mon Sep 17 00:00:00 2001
From c571ae4d81b77684d19c844435915f6403b5130a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Wed, 27 Nov 2019 11:07:40 +0100
Subject: [PATCH 5/7] vnc/tls: Dispatch also when data is pending outside of
@ -1300,7 +1300,7 @@ long as there is data to read in those buffers.
2 files changed, 86 insertions(+), 6 deletions(-)
diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h
index cf275af..efc0038 100644
index e9eced0..8a916b7 100644
--- a/src/grd-session-vnc.h
+++ b/src/grd-session-vnc.h
@@ -79,6 +79,8 @@ void grd_session_vnc_grab_socket (GrdSessionVnc *session_vnc,
@ -1450,10 +1450,10 @@ index ac6c35f..312b6b9 100644
}
--
2.31.1
2.34.1
From 28dcea05f8f42c3fe5d43d0dff0cdb1c9fc7f213 Mon Sep 17 00:00:00 2001
From 8a7cef31e9b22ef3e98fa5b54ac0756083b581e2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Wed, 27 Nov 2019 16:48:00 +0100
Subject: [PATCH 6/7] session-vnc: Set our own password handling function up
@ -1472,10 +1472,10 @@ password prompt.
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c
index 06b2cf7..7a4c6b3 100644
index 9708de0..bc60285 100644
--- a/src/grd-session-vnc.c
+++ b/src/grd-session-vnc.c
@@ -94,11 +94,6 @@ grd_session_vnc_pause (GrdSessionVnc *session_vnc);
@@ -95,11 +95,6 @@ grd_session_vnc_pause (GrdSessionVnc *session_vnc);
static gboolean
close_session_idle (gpointer user_data);
@ -1487,7 +1487,7 @@ index 06b2cf7..7a4c6b3 100644
static void
swap_uint8 (uint8_t *a,
uint8_t *b)
@@ -321,7 +316,6 @@ handle_new_client (rfbClientPtr rfb_client)
@@ -322,7 +317,6 @@ handle_new_client (rfbClientPtr rfb_client)
grd_session_vnc_pause (session_vnc);
return RFB_CLIENT_ON_HOLD;
case GRD_VNC_AUTH_METHOD_PASSWORD:
@ -1495,7 +1495,7 @@ index 06b2cf7..7a4c6b3 100644
/*
* authPasswdData needs to be non NULL in libvncserver to trigger
* password authentication.
@@ -620,6 +614,8 @@ init_vnc_session (GrdSessionVnc *session_vnc)
@@ -623,6 +617,8 @@ init_vnc_session (GrdSessionVnc *session_vnc)
rfb_screen->frameBuffer = g_malloc0 (screen_width * screen_height * 4);
memset (rfb_screen->frameBuffer, 0x1f, screen_width * screen_height * 4);
@ -1505,10 +1505,10 @@ index 06b2cf7..7a4c6b3 100644
rfbProcessEvents (rfb_screen, 0);
}
--
2.31.1
2.34.1
From 2327474d5fa0f6527b2f5f39d54f96f8ff9627db Mon Sep 17 00:00:00 2001
From 99cf5c5df74b71e5c8ad99ab10cff2f09ee7e677 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Mon, 12 Oct 2020 17:34:30 +0200
Subject: [PATCH 7/7] vnc: Copy pixels using the right destination stride
@ -1526,7 +1526,7 @@ dropped.
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h
index efc0038..f3a6314 100644
index 8a916b7..e85f31e 100644
--- a/src/grd-session-vnc.h
+++ b/src/grd-session-vnc.h
@@ -67,7 +67,8 @@ int grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
@ -1540,5 +1540,5 @@ index efc0038..f3a6314 100644
gboolean grd_session_vnc_is_client_gone (GrdSessionVnc *session_vnc);
--
2.31.1
2.34.1

View File

@ -1 +1 @@
SHA512 (gnome-remote-desktop-41.2.tar.xz) = 7636c0446c86748ce51c869734a2d33d8285c30616a28a0358f45d8399fd9f5dba7a1bdb830d3ca4753982ac3b9715604eb5934906645a1c11c58b4342c524eb
SHA512 (gnome-remote-desktop-42.beta.tar.xz) = 24d0ab9091f2fb88a975a07493039be3280cd39b698558c4b6cc6901e89bcb56fab88eeec184206647e0f4ac9786c5aeaf94a6feb35fb28b67e54162fab74193