Update to 0.1.7

And rebase the TLS patch.
This commit is contained in:
Jonas Ådahl 2019-03-04 15:07:00 +01:00
parent b994331fdf
commit cd049c393f
4 changed files with 32 additions and 45 deletions

3
.gitignore vendored
View File

@ -1,2 +1 @@
/gnome-remote-desktop-0.1.2.tar.xz /gnome-remote-desktop-0.1.*.tar.xz
/gnome-remote-desktop-0.1.6.tar.xz

View File

@ -1,4 +1,4 @@
From fcfef86768d3dc63a2e7da799beb011800dff2ad Mon Sep 17 00:00:00 2001 From 0a6f8835480a1bdb57b77a471bda9993acb8e0b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com> From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Thu, 14 Jun 2018 12:21:37 +0200 Date: Thu, 14 Jun 2018 12:21:37 +0200
Subject: [PATCH] vnc: Add anonymous TLS encryption support Subject: [PATCH] vnc: Add anonymous TLS encryption support
@ -12,7 +12,7 @@ VNC connection.
meson.build | 1 + meson.build | 1 +
src/grd-enums.h | 6 + src/grd-enums.h | 6 +
src/grd-session-vnc.c | 98 +++- src/grd-session-vnc.c | 98 +++-
src/grd-session-vnc.h | 16 + src/grd-session-vnc.h | 15 +
src/grd-settings.c | 27 ++ src/grd-settings.c | 27 ++
src/grd-settings.h | 2 + src/grd-settings.h | 2 +
src/grd-vnc-server.c | 45 ++ src/grd-vnc-server.c | 45 ++
@ -20,15 +20,15 @@ VNC connection.
src/grd-vnc-tls.h | 28 ++ src/grd-vnc-tls.h | 28 ++
src/meson.build | 5 +- src/meson.build | 5 +-
...g.gnome.desktop.remote-desktop.gschema.xml | 10 + ...g.gnome.desktop.remote-desktop.gschema.xml | 10 +
11 files changed, 666 insertions(+), 16 deletions(-) 11 files changed, 665 insertions(+), 16 deletions(-)
create mode 100644 src/grd-vnc-tls.c create mode 100644 src/grd-vnc-tls.c
create mode 100644 src/grd-vnc-tls.h create mode 100644 src/grd-vnc-tls.h
diff --git a/meson.build b/meson.build diff --git a/meson.build b/meson.build
index d8e20d2..f8c8cee 100644 index 86730f1..f1d10a6 100644
--- a/meson.build --- a/meson.build
+++ b/meson.build +++ b/meson.build
@@ -15,6 +15,7 @@ systemd_dep = dependency('systemd') @@ -14,6 +14,7 @@ systemd_dep = dependency('systemd')
libvncserver_dep = dependency('libvncserver') libvncserver_dep = dependency('libvncserver')
libsecret_dep = dependency('libsecret-1') libsecret_dep = dependency('libsecret-1')
libnotify_dep = dependency('libnotify') libnotify_dep = dependency('libnotify')
@ -52,7 +52,7 @@ index ffab821..4333863 100644
+ +
#endif /* GRD_ENUMS_H */ #endif /* GRD_ENUMS_H */
diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c
index 5d40971..ce4dd29 100644 index 589ba4b..1990576 100644
--- a/src/grd-session-vnc.c --- a/src/grd-session-vnc.c
+++ b/src/grd-session-vnc.c +++ b/src/grd-session-vnc.c
@@ -44,7 +44,9 @@ struct _GrdSessionVnc @@ -44,7 +44,9 @@ struct _GrdSessionVnc
@ -65,7 +65,7 @@ index 5d40971..ce4dd29 100644
GSource *source; GSource *source;
rfbScreenInfoPtr rfb_screen; rfbScreenInfoPtr rfb_screen;
rfbClientPtr rfb_client; rfbClientPtr rfb_client;
@@ -465,12 +467,30 @@ check_rfb_password (rfbClientPtr rfb_client, @@ -508,12 +510,30 @@ check_rfb_password (rfbClientPtr rfb_client,
} }
} }
@ -96,7 +96,7 @@ index 5d40971..ce4dd29 100644
static void static void
init_vnc_session (GrdSessionVnc *session_vnc) init_vnc_session (GrdSessionVnc *session_vnc)
{ {
@@ -509,33 +529,74 @@ init_vnc_session (GrdSessionVnc *session_vnc) @@ -553,33 +573,74 @@ init_vnc_session (GrdSessionVnc *session_vnc)
rfbProcessEvents (rfb_screen, 0); rfbProcessEvents (rfb_screen, 0);
} }
@ -185,7 +185,7 @@ index 5d40971..ce4dd29 100644
} }
return G_SOURCE_CONTINUE; return G_SOURCE_CONTINUE;
@@ -548,7 +609,10 @@ grd_session_vnc_attach_source (GrdSessionVnc *session_vnc) @@ -592,7 +653,10 @@ grd_session_vnc_attach_source (GrdSessionVnc *session_vnc)
socket = g_socket_connection_get_socket (session_vnc->connection); socket = g_socket_connection_get_socket (session_vnc->connection);
session_vnc->source = g_socket_create_source (socket, session_vnc->source = g_socket_create_source (socket,
@ -197,7 +197,7 @@ index 5d40971..ce4dd29 100644
NULL); NULL);
g_source_set_callback (session_vnc->source, g_source_set_callback (session_vnc->source,
(GSourceFunc) handle_socket_data, (GSourceFunc) handle_socket_data,
@@ -574,8 +638,10 @@ grd_session_vnc_new (GrdVncServer *vnc_server, @@ -618,8 +682,10 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
"context", context, "context", context,
NULL); NULL);
@ -208,7 +208,7 @@ index 5d40971..ce4dd29 100644
grd_session_vnc_attach_source (session_vnc); grd_session_vnc_attach_source (session_vnc);
init_vnc_session (session_vnc); init_vnc_session (session_vnc);
@@ -590,6 +656,8 @@ grd_session_vnc_dispose (GObject *object) @@ -634,6 +700,8 @@ grd_session_vnc_dispose (GObject *object)
g_assert (!session_vnc->rfb_screen); g_assert (!session_vnc->rfb_screen);
@ -218,18 +218,10 @@ index 5d40971..ce4dd29 100644
G_OBJECT_CLASS (grd_session_vnc_parent_class)->dispose (object); G_OBJECT_CLASS (grd_session_vnc_parent_class)->dispose (object);
diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h
index 6bd067a..33245bc 100644 index 25919b6..e0601c3 100644
--- a/src/grd-session-vnc.h --- a/src/grd-session-vnc.h
+++ b/src/grd-session-vnc.h +++ b/src/grd-session-vnc.h
@@ -25,6 +25,7 @@ @@ -36,6 +36,9 @@ G_DECLARE_FINAL_TYPE (GrdSessionVnc,
#include <gio/gio.h>
#include <glib-object.h>
+#include <rfb/rfb.h>
#include "grd-session.h"
#include "grd-types.h"
@@ -35,6 +36,9 @@ G_DECLARE_FINAL_TYPE (GrdSessionVnc,
GRD, SESSION_VNC, GRD, SESSION_VNC,
GrdSession); GrdSession);
@ -239,9 +231,9 @@ index 6bd067a..33245bc 100644
GrdSessionVnc *grd_session_vnc_new (GrdVncServer *vnc_server, GrdSessionVnc *grd_session_vnc_new (GrdVncServer *vnc_server,
GSocketConnection *connection); GSocketConnection *connection);
@@ -45,6 +49,18 @@ void grd_session_vnc_queue_resize_framebuffer (GrdSessionVnc *session_vnc, @@ -53,6 +56,18 @@ void grd_session_vnc_move_cursor (GrdSessionVnc *session_vnc,
void grd_session_vnc_draw_buffer (GrdSessionVnc *session_vnc, int x,
void *data); int y);
+int grd_session_vnc_get_fd (GrdSessionVnc *session_vnc); +int grd_session_vnc_get_fd (GrdSessionVnc *session_vnc);
+ +
@ -423,7 +415,7 @@ index a8fed02..769b7ec 100644
diff --git a/src/grd-vnc-tls.c b/src/grd-vnc-tls.c diff --git a/src/grd-vnc-tls.c b/src/grd-vnc-tls.c
new file mode 100644 new file mode 100644
index 0000000..8fc0fc2 index 0000000..ec4758e
--- /dev/null --- /dev/null
+++ b/src/grd-vnc-tls.c +++ b/src/grd-vnc-tls.c
@@ -0,0 +1,444 @@ @@ -0,0 +1,444 @@
@ -600,7 +592,7 @@ index 0000000..8fc0fc2
+grd_vnc_tls_session_free (GrdVncTlsSession *tls_session) +grd_vnc_tls_session_free (GrdVncTlsSession *tls_session)
+{ +{
+ g_clear_pointer (&tls_session->peek_buffer, g_free); + g_clear_pointer (&tls_session->peek_buffer, g_free);
+ g_clear_pointer (&tls_session->tls_session, (GDestroyNotify) gnutls_deinit); + g_clear_pointer (&tls_session->tls_session, gnutls_deinit);
+ g_free (tls_session); + g_free (tls_session);
+} +}
+ +
@ -906,10 +898,10 @@ index 0000000..135ef8c
+ +
+#endif /* GRD_VNC_TLS_H */ +#endif /* GRD_VNC_TLS_H */
diff --git a/src/meson.build b/src/meson.build diff --git a/src/meson.build b/src/meson.build
index 70e2102..b633ad7 100644 index e6ba615..31c7221 100644
--- a/src/meson.build --- a/src/meson.build
+++ b/src/meson.build +++ b/src/meson.build
@@ -19,6 +19,8 @@ daemon_sources = files([ @@ -21,6 +21,8 @@ daemon_sources = files([
'grd-vnc-pipewire-stream.h', 'grd-vnc-pipewire-stream.h',
'grd-vnc-server.c', 'grd-vnc-server.c',
'grd-vnc-server.h', 'grd-vnc-server.h',
@ -918,7 +910,7 @@ index 70e2102..b633ad7 100644
]) ])
gen_daemon_sources = [] gen_daemon_sources = []
@@ -49,7 +51,8 @@ executable('gnome-remote-desktop-daemon', @@ -51,7 +53,8 @@ executable('gnome-remote-desktop-daemon',
pipewire_dep, pipewire_dep,
libvncserver_dep, libvncserver_dep,
libsecret_dep, libsecret_dep,
@ -949,5 +941,5 @@ index a5c2022..846e65b 100644
</schema> </schema>
</schemalist> </schemalist>
-- --
2.17.1 2.20.1

View File

@ -1,31 +1,24 @@
%global systemd_unit gnome-remote-desktop.service %global systemd_unit gnome-remote-desktop.service
Name: gnome-remote-desktop Name: gnome-remote-desktop
Version: 0.1.6 Version: 0.1.7
Release: 3%{?dist} Release: 1%{?dist}
Summary: GNOME Remote Desktop screen share service Summary: GNOME Remote Desktop screen share service
License: GPLv2+ License: GPLv2+
URL: https://gitlab.gnome.org/jadahl/gnome-remote-desktop URL: https://gitlab.gnome.org/jadahl/gnome-remote-desktop
Source0: https://gitlab.gnome.org/jadahl/gnome-remote-desktop/uploads/c6862c12f0b741714d5a27e0693322fe/gnome-remote-desktop-0.1.6.tar.xz Source0: https://gitlab.gnome.org/jadahl/gnome-remote-desktop/uploads/ed3e8b8ebc1a74b6f4ed7260a2739f40/gnome-remote-desktop-0.1.7.tar.xz
# Adds encryption support (requires patched LibVNCServer) # Adds encryption support (requires patched LibVNCServer)
Patch0: 0001-vnc-Add-anonymous-TLS-encryption-support.patch Patch0: 0001-vnc-Add-anonymous-TLS-encryption-support.patch
# Align pipewire requirement with Fedora
Patch1: 0001-meson.build-Bump-pipewire-requirement-to-0.2.2.patch
# Don't crash when PipeWire disconnects (rhbz#1632781)
Patch2: 0001-session-vnc-Don-t-requeue-close-session-idle.patch
Patch3: 0002-vnc-pipewire-stream-Close-session-when-disconnected.patch
BuildRequires: git BuildRequires: git
BuildRequires: gcc BuildRequires: gcc
BuildRequires: meson >= 0.36.0 BuildRequires: meson >= 0.36.0
BuildRequires: pkgconfig BuildRequires: pkgconfig
BuildRequires: pkgconfig(glib-2.0) >= 2.32 BuildRequires: pkgconfig(glib-2.0) >= 2.32
BuildRequires: pkgconfig(gio-unix-2.0) >= 2.32 BuildRequires: pkgconfig(gio-unix-2.0) >= 2.32
BuildRequires: pkgconfig(libpipewire-0.2) >= 0.2.2 BuildRequires: pkgconfig(libpipewire-0.2) >= 0.2.5
BuildRequires: pkgconfig(libvncserver) >= 0.9.11-7 BuildRequires: pkgconfig(libvncserver) >= 0.9.11-7
BuildRequires: pkgconfig(libsecret-1) BuildRequires: pkgconfig(libsecret-1)
BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(libnotify)
@ -34,7 +27,7 @@ BuildRequires: pkgconfig(gnutls)
%{?systemd_requires} %{?systemd_requires}
BuildRequires: systemd BuildRequires: systemd
Requires: pipewire >= 0.2.2 Requires: pipewire >= 0.2.5
%description %description
GNOME Remote Desktop is a remote desktop and screen sharing service for the GNOME Remote Desktop is a remote desktop and screen sharing service for the
@ -76,6 +69,9 @@ GNOME desktop environment.
%changelog %changelog
* Mon Mar 4 2019 Jonas Ådahl <jadahl@redhat.com> - 0.1.7-1
- Update to 0.1.7
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.6-3 * Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

View File

@ -1 +1 @@
SHA512 (gnome-remote-desktop-0.1.6.tar.xz) = 8a205ab8e8f42981a97c0cb2e28b5ed7ea7651cb87217b1667be8d9137037a0ca5d51e4e952db13e65cd6bf32f3bd2bf57bbe802ef896a344384739ac5e5e979 SHA512 (gnome-remote-desktop-0.1.7.tar.xz) = dd20e5e6fd724ff03d8a32319c7145f1fef4331439e52921b812f087e6b83185bf318bb2fb9758fe083ec3cfea30448b601da4ed1aba85fa892ef7fbb794b9ed