Bump to 40.beta
This commit is contained in:
parent
0fcc3d4d82
commit
611daca9e5
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
/gnome-remote-desktop-0.1.*.tar.xz
|
/gnome-remote-desktop-0.1.*.tar.xz
|
||||||
|
/gnome-remote-desktop-40.beta.tar.xz
|
||||||
|
@ -1,22 +1,16 @@
|
|||||||
%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.9
|
Version: 40.0~beta
|
||||||
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://download.gnome.org/sources/gnome-remote-desktop/0.1/gnome-remote-desktop-0.1.9.tar.xz
|
Source0: https://download.gnome.org/sources/gnome-remote-desktop/40/gnome-remote-desktop-40.beta.tar.xz
|
||||||
|
|
||||||
# Avoid race condition on disconnect
|
|
||||||
Patch0: 0001-vnc-Drop-frames-if-client-is-gone.patch
|
|
||||||
|
|
||||||
# Adds encryption support (requires patched LibVNCServer)
|
# Adds encryption support (requires patched LibVNCServer)
|
||||||
Patch1: gnutls-anontls.patch
|
Patch0: gnutls-anontls.patch
|
||||||
|
|
||||||
# Copy using the right destination stride
|
|
||||||
Patch2: 0001-vnc-Copy-pixels-using-the-right-destination-stride.patch
|
|
||||||
|
|
||||||
BuildRequires: git
|
BuildRequires: git
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
@ -28,6 +22,9 @@ BuildRequires: pkgconfig(gio-unix-2.0) >= 2.32
|
|||||||
BuildRequires: pkgconfig(libpipewire-0.3) >= 0.3.0
|
BuildRequires: pkgconfig(libpipewire-0.3) >= 0.3.0
|
||||||
BuildRequires: pkgconfig(libvncserver) >= 0.9.11-7
|
BuildRequires: pkgconfig(libvncserver) >= 0.9.11-7
|
||||||
BuildRequires: pkgconfig(freerdp2)
|
BuildRequires: pkgconfig(freerdp2)
|
||||||
|
BuildRequires: pkgconfig(winpr2)
|
||||||
|
BuildRequires: pkgconfig(fuse3)
|
||||||
|
BuildRequires: pkgconfig(xkbcommon)
|
||||||
BuildRequires: pkgconfig(libsecret-1)
|
BuildRequires: pkgconfig(libsecret-1)
|
||||||
BuildRequires: pkgconfig(libnotify)
|
BuildRequires: pkgconfig(libnotify)
|
||||||
BuildRequires: pkgconfig(gnutls)
|
BuildRequires: pkgconfig(gnutls)
|
||||||
@ -43,7 +40,7 @@ GNOME desktop environment.
|
|||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -S git
|
%autosetup -S git -n %{name}-40.beta
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -77,6 +74,9 @@ GNOME desktop environment.
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Mar 04 2021 Jonas Ådahl <jadahl@redhat.com> - 40.0~beta-1
|
||||||
|
- Bump to 40.beta
|
||||||
|
|
||||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.9-3
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.9-3
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 546151b4e15fd45901f38172435cd9aa63893727 Mon Sep 17 00:00:00 2001
|
From 8676ef6c32557234d08acb13d7524df5fa1f4bb2 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 1/6] vnc: Add anonymous TLS encryption support
|
Subject: [PATCH 1/7] vnc: Add anonymous TLS encryption support
|
||||||
|
|
||||||
Add support for encrypting the VNC connection using anonymous TLS. In
|
Add support for encrypting the VNC connection using anonymous TLS. In
|
||||||
effect this means that the channel is encrypted using TLS but that no
|
effect this means that the channel is encrypted using TLS but that no
|
||||||
@ -11,31 +11,31 @@ 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 | 120 ++++-
|
||||||
src/grd-session-vnc.h | 15 +
|
src/grd-session-vnc.h | 17 +
|
||||||
src/grd-settings.c | 28 ++
|
src/grd-settings.c | 28 ++
|
||||||
src/grd-settings.h | 2 +
|
src/grd-settings.h | 2 +
|
||||||
src/grd-vnc-server.c | 45 ++
|
src/grd-vnc-server.c | 45 ++
|
||||||
src/grd-vnc-tls.c | 444 ++++++++++++++++++
|
src/grd-vnc-tls.c | 444 ++++++++++++++++++
|
||||||
src/grd-vnc-tls.h | 28 ++
|
src/grd-vnc-tls.h | 28 ++
|
||||||
src/meson.build | 5 +-
|
src/meson.build | 3 +
|
||||||
...nome.desktop.remote-desktop.gschema.xml.in | 10 +
|
...nome.desktop.remote-desktop.gschema.xml.in | 10 +
|
||||||
11 files changed, 666 insertions(+), 16 deletions(-)
|
11 files changed, 678 insertions(+), 26 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 af423a4..813c97f 100644
|
index 5e9ad04..9bbd5fc 100644
|
||||||
--- a/meson.build
|
--- a/meson.build
|
||||||
+++ b/meson.build
|
+++ b/meson.build
|
||||||
@@ -20,6 +20,7 @@ libvncclient_dep = dependency('libvncclient')
|
@@ -40,6 +40,7 @@ endif
|
||||||
libsecret_dep = dependency('libsecret-1')
|
if have_vnc
|
||||||
libnotify_dep = dependency('libnotify')
|
libvncserver_dep = dependency('libvncserver')
|
||||||
winpr_dep = dependency('winpr2', version: freerdp_req)
|
libvncclient_dep = dependency('libvncclient')
|
||||||
+gnutls_dep = dependency('gnutls')
|
+ gnutls_dep = dependency('gnutls')
|
||||||
|
endif
|
||||||
|
|
||||||
cdata = configuration_data()
|
cdata = configuration_data()
|
||||||
cdata.set_quoted('GETTEXT_PACKAGE', 'gnome-remote-desktop')
|
|
||||||
diff --git a/src/grd-enums.h b/src/grd-enums.h
|
diff --git a/src/grd-enums.h b/src/grd-enums.h
|
||||||
index ffab821..4333863 100644
|
index ffab821..4333863 100644
|
||||||
--- a/src/grd-enums.h
|
--- a/src/grd-enums.h
|
||||||
@ -52,10 +52,10 @@ 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 a06d34d..d014315 100644
|
index 0e520dc..0c189fd 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
|
@@ -45,7 +45,9 @@ struct _GrdSessionVnc
|
||||||
{
|
{
|
||||||
GrdSession parent;
|
GrdSession parent;
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ index a06d34d..d014315 100644
|
|||||||
GSource *source;
|
GSource *source;
|
||||||
rfbScreenInfoPtr rfb_screen;
|
rfbScreenInfoPtr rfb_screen;
|
||||||
rfbClientPtr rfb_client;
|
rfbClientPtr rfb_client;
|
||||||
@@ -518,12 +520,30 @@ check_rfb_password (rfbClientPtr rfb_client,
|
@@ -540,6 +542,12 @@ check_rfb_password (rfbClientPtr rfb_client,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,9 +76,10 @@ index a06d34d..d014315 100644
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
int
|
int
|
||||||
grd_session_vnc_get_framebuffer_stride (GrdSessionVnc *session_vnc)
|
grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
|
||||||
{
|
int width)
|
||||||
return session_vnc->rfb_screen->paddedWidthInBytes;
|
@@ -547,6 +555,18 @@ grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
|
||||||
|
return width * BGRX_BYTES_PER_PIXEL;
|
||||||
}
|
}
|
||||||
|
|
||||||
+rfbClientPtr
|
+rfbClientPtr
|
||||||
@ -96,7 +97,7 @@ index a06d34d..d014315 100644
|
|||||||
static void
|
static void
|
||||||
init_vnc_session (GrdSessionVnc *session_vnc)
|
init_vnc_session (GrdSessionVnc *session_vnc)
|
||||||
{
|
{
|
||||||
@@ -564,33 +584,74 @@ init_vnc_session (GrdSessionVnc *session_vnc)
|
@@ -590,44 +610,85 @@ init_vnc_session (GrdSessionVnc *session_vnc)
|
||||||
rfbProcessEvents (rfb_screen, 0);
|
rfbProcessEvents (rfb_screen, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,6 +132,17 @@ index a06d34d..d014315 100644
|
|||||||
+ session_vnc->pending_framebuffer_width,
|
+ session_vnc->pending_framebuffer_width,
|
||||||
+ session_vnc->pending_framebuffer_height);
|
+ session_vnc->pending_framebuffer_height);
|
||||||
+ session_vnc->pending_framebuffer_resize = FALSE;
|
+ session_vnc->pending_framebuffer_resize = FALSE;
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * This is a workaround. libvncserver is unable to handle clipboard
|
||||||
|
+ * changes early and either disconnects the client or crashes g-r-d
|
||||||
|
+ * if it receives rfbSendServerCutText too early altough the
|
||||||
|
+ * authentification process is already done.
|
||||||
|
+ * Doing this after resizing the framebuffer, seems to work fine,
|
||||||
|
+ * so enable the clipboard here and not when the remote desktop
|
||||||
|
+ * session proxy is acquired.
|
||||||
|
+ */
|
||||||
|
+ grd_clipboard_vnc_maybe_enable_clipboard (session_vnc->clipboard_vnc);
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@ -172,6 +184,17 @@ index a06d34d..d014315 100644
|
|||||||
- session_vnc->pending_framebuffer_width,
|
- session_vnc->pending_framebuffer_width,
|
||||||
- session_vnc->pending_framebuffer_height);
|
- session_vnc->pending_framebuffer_height);
|
||||||
- session_vnc->pending_framebuffer_resize = FALSE;
|
- session_vnc->pending_framebuffer_resize = FALSE;
|
||||||
|
-
|
||||||
|
- /**
|
||||||
|
- * This is a workaround. libvncserver is unable to handle clipboard
|
||||||
|
- * changes early and either disconnects the client or crashes g-r-d
|
||||||
|
- * if it receives rfbSendServerCutText too early altough the
|
||||||
|
- * authentification process is already done.
|
||||||
|
- * Doing this after resizing the framebuffer, seems to work fine,
|
||||||
|
- * so enable the clipboard here and not when the remote desktop
|
||||||
|
- * session proxy is acquired.
|
||||||
|
- */
|
||||||
|
- grd_clipboard_vnc_maybe_enable_clipboard (session_vnc->clipboard_vnc);
|
||||||
- }
|
- }
|
||||||
+ grd_session_stop (session);
|
+ grd_session_stop (session);
|
||||||
}
|
}
|
||||||
@ -185,7 +208,7 @@ index a06d34d..d014315 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
return G_SOURCE_CONTINUE;
|
return G_SOURCE_CONTINUE;
|
||||||
@@ -603,7 +664,10 @@ grd_session_vnc_attach_source (GrdSessionVnc *session_vnc)
|
@@ -640,7 +701,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 +220,7 @@ index a06d34d..d014315 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,
|
||||||
@@ -629,8 +693,10 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
|
@@ -666,8 +730,10 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
|
||||||
"context", context,
|
"context", context,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
@ -208,7 +231,7 @@ index a06d34d..d014315 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);
|
||||||
@@ -645,6 +711,8 @@ grd_session_vnc_dispose (GObject *object)
|
@@ -682,6 +748,8 @@ grd_session_vnc_dispose (GObject *object)
|
||||||
|
|
||||||
g_assert (!session_vnc->rfb_screen);
|
g_assert (!session_vnc->rfb_screen);
|
||||||
|
|
||||||
@ -218,7 +241,7 @@ index a06d34d..d014315 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 07678c8..bba3d56 100644
|
index a532567..4e7b33d 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
|
||||||
@@ -36,6 +36,9 @@ G_DECLARE_FINAL_TYPE (GrdSessionVnc,
|
@@ -36,6 +36,9 @@ G_DECLARE_FINAL_TYPE (GrdSessionVnc,
|
||||||
@ -231,14 +254,14 @@ index 07678c8..bba3d56 100644
|
|||||||
GrdSessionVnc *grd_session_vnc_new (GrdVncServer *vnc_server,
|
GrdSessionVnc *grd_session_vnc_new (GrdVncServer *vnc_server,
|
||||||
GSocketConnection *connection);
|
GSocketConnection *connection);
|
||||||
|
|
||||||
@@ -55,8 +58,20 @@ void grd_session_vnc_move_cursor (GrdSessionVnc *session_vnc,
|
@@ -62,6 +65,20 @@ void grd_session_vnc_set_client_clipboard_text (GrdSessionVnc *session_vnc,
|
||||||
int x,
|
int grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
|
||||||
int y);
|
int width);
|
||||||
|
|
||||||
+int grd_session_vnc_get_fd (GrdSessionVnc *session_vnc);
|
+int grd_session_vnc_get_fd (GrdSessionVnc *session_vnc);
|
||||||
+
|
+
|
||||||
int grd_session_vnc_get_framebuffer_stride (GrdSessionVnc *session_vnc);
|
+int grd_session_vnc_get_framebuffer_stride (GrdSessionVnc *session_vnc);
|
||||||
|
+
|
||||||
gboolean grd_session_vnc_is_client_gone (GrdSessionVnc *session_vnc);
|
gboolean grd_session_vnc_is_client_gone (GrdSessionVnc *session_vnc);
|
||||||
|
|
||||||
+rfbClientPtr grd_session_vnc_get_rfb_client (GrdSessionVnc *session_vnc);
|
+rfbClientPtr grd_session_vnc_get_rfb_client (GrdSessionVnc *session_vnc);
|
||||||
@ -253,7 +276,7 @@ index 07678c8..bba3d56 100644
|
|||||||
+
|
+
|
||||||
#endif /* GRD_SESSION_VNC_H */
|
#endif /* GRD_SESSION_VNC_H */
|
||||||
diff --git a/src/grd-settings.c b/src/grd-settings.c
|
diff --git a/src/grd-settings.c b/src/grd-settings.c
|
||||||
index 3af87be..f37f2da 100644
|
index d2f31d2..12d8693 100644
|
||||||
--- a/src/grd-settings.c
|
--- a/src/grd-settings.c
|
||||||
+++ b/src/grd-settings.c
|
+++ b/src/grd-settings.c
|
||||||
@@ -60,6 +60,7 @@ struct _GrdSettings
|
@@ -60,6 +60,7 @@ struct _GrdSettings
|
||||||
@ -264,7 +287,7 @@ index 3af87be..f37f2da 100644
|
|||||||
} vnc;
|
} vnc;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -232,6 +233,12 @@ grd_settings_get_vnc_auth_method (GrdSettings *settings)
|
@@ -242,6 +243,12 @@ grd_settings_get_vnc_auth_method (GrdSettings *settings)
|
||||||
return settings->vnc.auth_method;
|
return settings->vnc.auth_method;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -277,7 +300,7 @@ index 3af87be..f37f2da 100644
|
|||||||
static void
|
static void
|
||||||
update_rdp_tls_cert (GrdSettings *settings)
|
update_rdp_tls_cert (GrdSettings *settings)
|
||||||
{
|
{
|
||||||
@@ -267,6 +274,13 @@ update_vnc_auth_method (GrdSettings *settings)
|
@@ -277,6 +284,13 @@ update_vnc_auth_method (GrdSettings *settings)
|
||||||
"auth-method");
|
"auth-method");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -291,7 +314,7 @@ index 3af87be..f37f2da 100644
|
|||||||
static void
|
static void
|
||||||
on_rdp_settings_changed (GSettings *rdp_settings,
|
on_rdp_settings_changed (GSettings *rdp_settings,
|
||||||
const char *key,
|
const char *key,
|
||||||
@@ -304,6 +318,11 @@ on_vnc_settings_changed (GSettings *vnc_settings,
|
@@ -314,6 +328,11 @@ on_vnc_settings_changed (GSettings *vnc_settings,
|
||||||
update_vnc_auth_method (settings);
|
update_vnc_auth_method (settings);
|
||||||
g_signal_emit (settings, signals[VNC_AUTH_METHOD_CHANGED], 0);
|
g_signal_emit (settings, signals[VNC_AUTH_METHOD_CHANGED], 0);
|
||||||
}
|
}
|
||||||
@ -303,7 +326,7 @@ index 3af87be..f37f2da 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -335,6 +354,8 @@ grd_settings_init (GrdSettings *settings)
|
@@ -345,6 +364,8 @@ grd_settings_init (GrdSettings *settings)
|
||||||
|
|
||||||
settings->rdp.port = GRD_RDP_SERVER_PORT;
|
settings->rdp.port = GRD_RDP_SERVER_PORT;
|
||||||
settings->vnc.port = GRD_VNC_SERVER_PORT;
|
settings->vnc.port = GRD_VNC_SERVER_PORT;
|
||||||
@ -312,7 +335,7 @@ index 3af87be..f37f2da 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -379,4 +400,11 @@ grd_settings_class_init (GrdSettingsClass *klass)
|
@@ -389,4 +410,11 @@ grd_settings_class_init (GrdSettingsClass *klass)
|
||||||
0,
|
0,
|
||||||
NULL, NULL, NULL,
|
NULL, NULL, NULL,
|
||||||
G_TYPE_NONE, 0);
|
G_TYPE_NONE, 0);
|
||||||
@ -901,10 +924,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 1b6425d..17579b1 100644
|
index 843746d..133cc60 100644
|
||||||
--- a/src/meson.build
|
--- a/src/meson.build
|
||||||
+++ b/src/meson.build
|
+++ b/src/meson.build
|
||||||
@@ -33,6 +33,8 @@ daemon_sources = files([
|
@@ -72,10 +72,13 @@ if have_vnc
|
||||||
'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',
|
||||||
@ -912,17 +935,12 @@ index 1b6425d..17579b1 100644
|
|||||||
+ 'grd-vnc-tls.h',
|
+ 'grd-vnc-tls.h',
|
||||||
])
|
])
|
||||||
|
|
||||||
gen_daemon_sources = []
|
deps += [
|
||||||
@@ -66,7 +68,8 @@ executable('gnome-remote-desktop-daemon',
|
|
||||||
libvncserver_dep,
|
libvncserver_dep,
|
||||||
libsecret_dep,
|
+ gnutls_dep,
|
||||||
libnotify_dep,
|
]
|
||||||
- winpr_dep],
|
endif
|
||||||
+ winpr_dep,
|
|
||||||
+ gnutls_dep],
|
|
||||||
include_directories: [configinc],
|
|
||||||
install: true,
|
|
||||||
install_dir: libexecdir)
|
|
||||||
diff --git a/src/org.gnome.desktop.remote-desktop.gschema.xml.in b/src/org.gnome.desktop.remote-desktop.gschema.xml.in
|
diff --git a/src/org.gnome.desktop.remote-desktop.gschema.xml.in b/src/org.gnome.desktop.remote-desktop.gschema.xml.in
|
||||||
index 4b6e593..0086d99 100644
|
index 4b6e593..0086d99 100644
|
||||||
--- a/src/org.gnome.desktop.remote-desktop.gschema.xml.in
|
--- a/src/org.gnome.desktop.remote-desktop.gschema.xml.in
|
||||||
@ -944,13 +962,13 @@ index 4b6e593..0086d99 100644
|
|||||||
</schema>
|
</schema>
|
||||||
</schemalist>
|
</schemalist>
|
||||||
--
|
--
|
||||||
2.26.2
|
2.29.2
|
||||||
|
|
||||||
|
|
||||||
From 2e46518f421fd8704770bb6742accfacba3570aa Mon Sep 17 00:00:00 2001
|
From 552e9c9add722e953a8da22bd54ba0fef7a9d6af 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: Wed, 27 Nov 2019 11:02:09 +0100
|
Date: Wed, 27 Nov 2019 11:02:09 +0100
|
||||||
Subject: [PATCH 2/6] session-vnc: Add paused/resumed signals
|
Subject: [PATCH 2/7] session-vnc: Add paused/resumed signals
|
||||||
|
|
||||||
Paused is when the socket sourec is detached, and resumed when attached.
|
Paused is when the socket sourec is detached, and resumed when attached.
|
||||||
Meant to be used by the TLS channel security to a attach/detach
|
Meant to be used by the TLS channel security to a attach/detach
|
||||||
@ -960,10 +978,10 @@ out-of-socket source.
|
|||||||
1 file changed, 65 insertions(+), 7 deletions(-)
|
1 file changed, 65 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
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 d014315..7edd407 100644
|
index 0c189fd..596896d 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
|
||||||
@@ -40,14 +40,27 @@
|
@@ -41,14 +41,27 @@
|
||||||
#define BGRX_SAMPLES_PER_PIXEL 3
|
#define BGRX_SAMPLES_PER_PIXEL 3
|
||||||
#define BGRX_BYTES_PER_PIXEL 4
|
#define BGRX_BYTES_PER_PIXEL 4
|
||||||
|
|
||||||
@ -991,7 +1009,7 @@ index d014315..7edd407 100644
|
|||||||
rfbScreenInfoPtr rfb_screen;
|
rfbScreenInfoPtr rfb_screen;
|
||||||
rfbClientPtr rfb_client;
|
rfbClientPtr rfb_client;
|
||||||
|
|
||||||
@@ -73,7 +86,7 @@ struct _GrdSessionVnc
|
@@ -76,7 +89,7 @@ struct _GrdSessionVnc
|
||||||
G_DEFINE_TYPE (GrdSessionVnc, grd_session_vnc, GRD_TYPE_SESSION);
|
G_DEFINE_TYPE (GrdSessionVnc, grd_session_vnc, GRD_TYPE_SESSION);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1000,7 +1018,7 @@ index d014315..7edd407 100644
|
|||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
close_session_idle (gpointer user_data);
|
close_session_idle (gpointer user_data);
|
||||||
@@ -224,7 +237,8 @@ handle_client_gone (rfbClientPtr rfb_client)
|
@@ -235,7 +248,8 @@ handle_client_gone (rfbClientPtr rfb_client)
|
||||||
|
|
||||||
g_debug ("VNC client gone");
|
g_debug ("VNC client gone");
|
||||||
|
|
||||||
@ -1010,7 +1028,7 @@ index d014315..7edd407 100644
|
|||||||
maybe_queue_close_session_idle (session_vnc);
|
maybe_queue_close_session_idle (session_vnc);
|
||||||
session_vnc->rfb_client = NULL;
|
session_vnc->rfb_client = NULL;
|
||||||
}
|
}
|
||||||
@@ -293,7 +307,7 @@ handle_new_client (rfbClientPtr rfb_client)
|
@@ -304,7 +318,7 @@ handle_new_client (rfbClientPtr rfb_client)
|
||||||
session_vnc->prompt_cancellable,
|
session_vnc->prompt_cancellable,
|
||||||
prompt_response_callback,
|
prompt_response_callback,
|
||||||
session_vnc);
|
session_vnc);
|
||||||
@ -1019,7 +1037,7 @@ index d014315..7edd407 100644
|
|||||||
return RFB_CLIENT_ON_HOLD;
|
return RFB_CLIENT_ON_HOLD;
|
||||||
case GRD_VNC_AUTH_METHOD_PASSWORD:
|
case GRD_VNC_AUTH_METHOD_PASSWORD:
|
||||||
session_vnc->rfb_screen->passwordCheck = check_rfb_password;
|
session_vnc->rfb_screen->passwordCheck = check_rfb_password;
|
||||||
@@ -511,7 +525,7 @@ check_rfb_password (rfbClientPtr rfb_client,
|
@@ -533,7 +547,7 @@ check_rfb_password (rfbClientPtr rfb_client,
|
||||||
if (memcmp (challenge_encrypted, response_encrypted, len) == 0)
|
if (memcmp (challenge_encrypted, response_encrypted, len) == 0)
|
||||||
{
|
{
|
||||||
grd_session_start (GRD_SESSION (session_vnc));
|
grd_session_start (GRD_SESSION (session_vnc));
|
||||||
@ -1028,7 +1046,7 @@ index d014315..7edd407 100644
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -681,6 +695,36 @@ grd_session_vnc_detach_source (GrdSessionVnc *session_vnc)
|
@@ -718,6 +732,36 @@ grd_session_vnc_detach_source (GrdSessionVnc *session_vnc)
|
||||||
g_clear_pointer (&session_vnc->source, g_source_destroy);
|
g_clear_pointer (&session_vnc->source, g_source_destroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1065,7 +1083,7 @@ index d014315..7edd407 100644
|
|||||||
GrdSessionVnc *
|
GrdSessionVnc *
|
||||||
grd_session_vnc_new (GrdVncServer *vnc_server,
|
grd_session_vnc_new (GrdVncServer *vnc_server,
|
||||||
GSocketConnection *connection)
|
GSocketConnection *connection)
|
||||||
@@ -698,6 +742,7 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
|
@@ -735,6 +779,7 @@ grd_session_vnc_new (GrdVncServer *vnc_server,
|
||||||
|
|
||||||
grd_session_vnc_grab_socket (session_vnc, vnc_socket_grab_func);
|
grd_session_vnc_grab_socket (session_vnc, vnc_socket_grab_func);
|
||||||
grd_session_vnc_attach_source (session_vnc);
|
grd_session_vnc_attach_source (session_vnc);
|
||||||
@ -1073,7 +1091,7 @@ index d014315..7edd407 100644
|
|||||||
|
|
||||||
init_vnc_session (session_vnc);
|
init_vnc_session (session_vnc);
|
||||||
|
|
||||||
@@ -727,7 +772,7 @@ grd_session_vnc_stop (GrdSession *session)
|
@@ -764,7 +809,7 @@ grd_session_vnc_stop (GrdSession *session)
|
||||||
|
|
||||||
g_clear_object (&session_vnc->pipewire_stream);
|
g_clear_object (&session_vnc->pipewire_stream);
|
||||||
|
|
||||||
@ -1081,8 +1099,8 @@ index d014315..7edd407 100644
|
|||||||
+ grd_session_vnc_pause (session_vnc);
|
+ grd_session_vnc_pause (session_vnc);
|
||||||
|
|
||||||
g_clear_object (&session_vnc->connection);
|
g_clear_object (&session_vnc->connection);
|
||||||
g_clear_pointer (&session_vnc->rfb_screen->frameBuffer, g_free);
|
g_clear_object (&session_vnc->clipboard_vnc);
|
||||||
@@ -783,8 +828,8 @@ grd_session_vnc_stream_ready (GrdSession *session,
|
@@ -817,8 +862,8 @@ grd_session_vnc_stream_ready (GrdSession *session,
|
||||||
G_CALLBACK (on_pipewire_stream_closed),
|
G_CALLBACK (on_pipewire_stream_closed),
|
||||||
session_vnc);
|
session_vnc);
|
||||||
|
|
||||||
@ -1093,7 +1111,7 @@ index d014315..7edd407 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -803,4 +848,17 @@ grd_session_vnc_class_init (GrdSessionVncClass *klass)
|
@@ -837,4 +882,17 @@ grd_session_vnc_class_init (GrdSessionVncClass *klass)
|
||||||
|
|
||||||
session_class->stop = grd_session_vnc_stop;
|
session_class->stop = grd_session_vnc_stop;
|
||||||
session_class->stream_ready = grd_session_vnc_stream_ready;
|
session_class->stream_ready = grd_session_vnc_stream_ready;
|
||||||
@ -1112,13 +1130,13 @@ index d014315..7edd407 100644
|
|||||||
+ G_TYPE_NONE, 0);
|
+ G_TYPE_NONE, 0);
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.26.2
|
2.29.2
|
||||||
|
|
||||||
|
|
||||||
From b59c36ccf73939d32ccf5ab4eb47460a9fe415f3 Mon Sep 17 00:00:00 2001
|
From 3b33524046d299111cc150cc8d6d100f1e516485 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: Wed, 27 Nov 2019 11:03:46 +0100
|
Date: Wed, 27 Nov 2019 11:03:46 +0100
|
||||||
Subject: [PATCH 3/6] session-vnc: Add grd_session_vnc_dispatch() helper
|
Subject: [PATCH 3/7] session-vnc: Add grd_session_vnc_dispatch() helper
|
||||||
|
|
||||||
To be used by the TLS channel security to dispatch when there is data
|
To be used by the TLS channel security to dispatch when there is data
|
||||||
available that is not visible to the socket source.
|
available that is not visible to the socket source.
|
||||||
@ -1128,10 +1146,10 @@ available that is not visible to the socket source.
|
|||||||
2 files changed, 18 insertions(+), 10 deletions(-)
|
2 files changed, 18 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
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 7edd407..29c94a1 100644
|
index 596896d..06b2cf7 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
|
||||||
@@ -635,6 +635,21 @@ vnc_socket_grab_func (GrdSessionVnc *session_vnc,
|
@@ -672,6 +672,21 @@ vnc_socket_grab_func (GrdSessionVnc *session_vnc,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1153,7 +1171,7 @@ index 7edd407..29c94a1 100644
|
|||||||
static gboolean
|
static gboolean
|
||||||
handle_socket_data (GSocket *socket,
|
handle_socket_data (GSocket *socket,
|
||||||
GIOCondition condition,
|
GIOCondition condition,
|
||||||
@@ -651,16 +666,7 @@ handle_socket_data (GSocket *socket,
|
@@ -688,16 +703,7 @@ handle_socket_data (GSocket *socket,
|
||||||
}
|
}
|
||||||
else if (condition & G_IO_IN)
|
else if (condition & G_IO_IN)
|
||||||
{
|
{
|
||||||
@ -1172,10 +1190,10 @@ index 7edd407..29c94a1 100644
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
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 bba3d56..58f635c 100644
|
index 4e7b33d..cf275af 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
|
||||||
@@ -72,6 +72,8 @@ void grd_session_vnc_grab_socket (GrdSessionVnc *session_vnc,
|
@@ -79,6 +79,8 @@ void grd_session_vnc_grab_socket (GrdSessionVnc *session_vnc,
|
||||||
void grd_session_vnc_ungrab_socket (GrdSessionVnc *session_vnc,
|
void grd_session_vnc_ungrab_socket (GrdSessionVnc *session_vnc,
|
||||||
GrdVncSocketGrabFunc grab_func);
|
GrdVncSocketGrabFunc grab_func);
|
||||||
|
|
||||||
@ -1185,13 +1203,13 @@ index bba3d56..58f635c 100644
|
|||||||
|
|
||||||
#endif /* GRD_SESSION_VNC_H */
|
#endif /* GRD_SESSION_VNC_H */
|
||||||
--
|
--
|
||||||
2.26.2
|
2.29.2
|
||||||
|
|
||||||
|
|
||||||
From 966b2ddbd1c03c9e20dc66e5ea9a2dfb39ba4bfa Mon Sep 17 00:00:00 2001
|
From 3945af78cea858033d954bb1b071269687bdea85 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: Wed, 27 Nov 2019 11:05:13 +0100
|
Date: Wed, 27 Nov 2019 11:05:13 +0100
|
||||||
Subject: [PATCH 4/6] vnc/tls: Add some logging
|
Subject: [PATCH 4/7] vnc/tls: Add some logging
|
||||||
|
|
||||||
Uses the log utility from libvncserver as it is related to the RFB
|
Uses the log utility from libvncserver as it is related to the RFB
|
||||||
protocol rather than the session itself.
|
protocol rather than the session itself.
|
||||||
@ -1262,13 +1280,13 @@ index ec4758e..ac6c35f 100644
|
|||||||
{
|
{
|
||||||
g_warning ("TLS handshake failed: %s", error->message);
|
g_warning ("TLS handshake failed: %s", error->message);
|
||||||
--
|
--
|
||||||
2.26.2
|
2.29.2
|
||||||
|
|
||||||
|
|
||||||
From e01d27dc9911f4d7ecfd232c7e389f4dabfd87de Mon Sep 17 00:00:00 2001
|
From f5330797678f4c4db4a3fa19cebd30dd4d6bbb8c 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: Wed, 27 Nov 2019 11:07:40 +0100
|
Date: Wed, 27 Nov 2019 11:07:40 +0100
|
||||||
Subject: [PATCH 5/6] vnc/tls: Dispatch also when data is pending outside of
|
Subject: [PATCH 5/7] vnc/tls: Dispatch also when data is pending outside of
|
||||||
the socket
|
the socket
|
||||||
|
|
||||||
gnutls may have data available in its buffers, and we have our own peek
|
gnutls may have data available in its buffers, and we have our own peek
|
||||||
@ -1282,10 +1300,10 @@ long as there is data to read in those buffers.
|
|||||||
2 files changed, 86 insertions(+), 6 deletions(-)
|
2 files changed, 86 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
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 58f635c..0d01ad3 100644
|
index cf275af..efc0038 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
|
||||||
@@ -72,6 +72,8 @@ void grd_session_vnc_grab_socket (GrdSessionVnc *session_vnc,
|
@@ -79,6 +79,8 @@ void grd_session_vnc_grab_socket (GrdSessionVnc *session_vnc,
|
||||||
void grd_session_vnc_ungrab_socket (GrdSessionVnc *session_vnc,
|
void grd_session_vnc_ungrab_socket (GrdSessionVnc *session_vnc,
|
||||||
GrdVncSocketGrabFunc grab_func);
|
GrdVncSocketGrabFunc grab_func);
|
||||||
|
|
||||||
@ -1432,13 +1450,13 @@ index ac6c35f..312b6b9 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.26.2
|
2.29.2
|
||||||
|
|
||||||
|
|
||||||
From 682f3b4a8e985f00a00e761a086a15cb5e2b9b04 Mon Sep 17 00:00:00 2001
|
From fae9653965ddcc3d5684a056d9bdf46ef439d649 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: Wed, 27 Nov 2019 16:48:00 +0100
|
Date: Wed, 27 Nov 2019 16:48:00 +0100
|
||||||
Subject: [PATCH 6/6] session-vnc: Set our own password handling function up
|
Subject: [PATCH 6/7] session-vnc: Set our own password handling function up
|
||||||
front
|
front
|
||||||
|
|
||||||
libvncserver decides whether to register a auth security handler
|
libvncserver decides whether to register a auth security handler
|
||||||
@ -1454,10 +1472,10 @@ password prompt.
|
|||||||
1 file changed, 2 insertions(+), 6 deletions(-)
|
1 file changed, 2 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
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 29c94a1..ebe1540 100644
|
index 06b2cf7..7a4c6b3 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
|
||||||
@@ -91,11 +91,6 @@ grd_session_vnc_pause (GrdSessionVnc *session_vnc);
|
@@ -94,11 +94,6 @@ grd_session_vnc_pause (GrdSessionVnc *session_vnc);
|
||||||
static gboolean
|
static gboolean
|
||||||
close_session_idle (gpointer user_data);
|
close_session_idle (gpointer user_data);
|
||||||
|
|
||||||
@ -1469,7 +1487,7 @@ index 29c94a1..ebe1540 100644
|
|||||||
static void
|
static void
|
||||||
swap_uint8 (uint8_t *a,
|
swap_uint8 (uint8_t *a,
|
||||||
uint8_t *b)
|
uint8_t *b)
|
||||||
@@ -310,7 +305,6 @@ handle_new_client (rfbClientPtr rfb_client)
|
@@ -321,7 +316,6 @@ handle_new_client (rfbClientPtr rfb_client)
|
||||||
grd_session_vnc_pause (session_vnc);
|
grd_session_vnc_pause (session_vnc);
|
||||||
return RFB_CLIENT_ON_HOLD;
|
return RFB_CLIENT_ON_HOLD;
|
||||||
case GRD_VNC_AUTH_METHOD_PASSWORD:
|
case GRD_VNC_AUTH_METHOD_PASSWORD:
|
||||||
@ -1477,7 +1495,7 @@ index 29c94a1..ebe1540 100644
|
|||||||
/*
|
/*
|
||||||
* authPasswdData needs to be non NULL in libvncserver to trigger
|
* authPasswdData needs to be non NULL in libvncserver to trigger
|
||||||
* password authentication.
|
* password authentication.
|
||||||
@@ -594,6 +588,8 @@ init_vnc_session (GrdSessionVnc *session_vnc)
|
@@ -620,6 +614,8 @@ init_vnc_session (GrdSessionVnc *session_vnc)
|
||||||
rfb_screen->frameBuffer = g_malloc0 (screen_width * screen_height * 4);
|
rfb_screen->frameBuffer = g_malloc0 (screen_width * screen_height * 4);
|
||||||
memset (rfb_screen->frameBuffer, 0x1f, screen_width * screen_height * 4);
|
memset (rfb_screen->frameBuffer, 0x1f, screen_width * screen_height * 4);
|
||||||
|
|
||||||
@ -1487,5 +1505,40 @@ index 29c94a1..ebe1540 100644
|
|||||||
rfbProcessEvents (rfb_screen, 0);
|
rfbProcessEvents (rfb_screen, 0);
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.26.2
|
2.29.2
|
||||||
|
|
||||||
|
|
||||||
|
From 1ae1286b2cc868045f93c02b7a990638ca94b26d 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
|
||||||
|
|
||||||
|
We're copying the pixels in a separate thread managed by PipeWire, and
|
||||||
|
in this thread, accessing the VNC framebuffer dimension and stride is
|
||||||
|
racy. Instead of fetching the dimension directly, pass the expected
|
||||||
|
width and get the stride it will eventually have.
|
||||||
|
|
||||||
|
Already before this patch, when the copied pixel end up on the main
|
||||||
|
thread and the dimension still doesn't match up, the frame will be
|
||||||
|
dropped.
|
||||||
|
---
|
||||||
|
src/grd-session-vnc.h | 3 ++-
|
||||||
|
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
|
||||||
|
--- 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,
|
||||||
|
|
||||||
|
int grd_session_vnc_get_fd (GrdSessionVnc *session_vnc);
|
||||||
|
|
||||||
|
-int grd_session_vnc_get_framebuffer_stride (GrdSessionVnc *session_vnc);
|
||||||
|
+int grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
|
||||||
|
+ int width);
|
||||||
|
|
||||||
|
gboolean grd_session_vnc_is_client_gone (GrdSessionVnc *session_vnc);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.29.2
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (gnome-remote-desktop-0.1.9.tar.xz) = 6ac2962c824634cd5322785b6d251e899ea38668010b18b1b50124497895d9c00752904abf01490e27b74e1661aeae39d83fbbd77b841329b1e0fd381c3ea440
|
SHA512 (gnome-remote-desktop-40.beta.tar.xz) = 42ae56ec87229c77cd1b9e4e741e86131b4016fb99052c842531f56a612b8d828c8d8050d0a296c0a57ea06fc98425c15aeee04ff9e0eed2c975534140cc9a3e
|
||||||
|
Loading…
Reference in New Issue
Block a user