From bb1bf212e8965743ee29517c6f7ec6ef4724660c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@redhat.com>
Date: Wed, 5 Jul 2023 15:00:48 +0200
Subject: [PATCH] Update to 45.alpha

---
 .gitignore                |   1 +
 gnome-remote-desktop.spec |   5 +-
 gnutls-anontls.patch      | 192 +++++++++++++++++++++-----------------
 sources                   |   2 +-
 4 files changed, 110 insertions(+), 90 deletions(-)

diff --git a/.gitignore b/.gitignore
index 33798bc..ca8e6fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,4 @@
 /gnome-remote-desktop-44.0.tar.xz
 /gnome-remote-desktop-44.1.tar.xz
 /gnome-remote-desktop-44.2.tar.xz
+/gnome-remote-desktop-45.alpha.tar.xz
diff --git a/gnome-remote-desktop.spec b/gnome-remote-desktop.spec
index 143ac47..598eddc 100644
--- a/gnome-remote-desktop.spec
+++ b/gnome-remote-desktop.spec
@@ -12,7 +12,7 @@
 %endif
 
 Name:           gnome-remote-desktop
-Version:        44.2
+Version:        45.alpha
 Release:        1%{?dist}
 Summary:        GNOME Remote Desktop screen share service
 
@@ -113,6 +113,9 @@ GNOME desktop environment.
 
 
 %changelog
+* Wed Jul 05 2023 Jonas Ã…dahl <jadahl@redhat.com> - 45~alpha-1
+- Update to 45.alpha
+
 * Wed May 31 2023 Kalev Lember <klember@redhat.com> - 44.2-1
 - Update to 44.2
 
diff --git a/gnutls-anontls.patch b/gnutls-anontls.patch
index 12f9dff..bbbed42 100644
--- a/gnutls-anontls.patch
+++ b/gnutls-anontls.patch
@@ -1,4 +1,4 @@
-From adf2ee8c9745b3aecd2b909de67b03b178b06f4c Mon Sep 17 00:00:00 2001
+From f2978ab58bc13a1d4bc51f5c73c23a63f07f8881 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
@@ -13,19 +13,19 @@ VNC connection.
  src/grd-enums.h                               |   6 +
  src/grd-session-vnc.c                         | 120 ++++-
  src/grd-session-vnc.h                         |  17 +
- src/grd-settings.c                            |  28 ++
- src/grd-settings.h                            |   2 +
+ src/grd-settings-user.c                       |  28 ++
+ src/grd-settings.h                            |   4 +
  src/grd-vnc-server.c                          |  47 ++
  src/grd-vnc-tls.c                             | 444 ++++++++++++++++++
  src/grd-vnc-tls.h                             |  28 ++
  src/meson.build                               |   3 +
  ...nome.desktop.remote-desktop.gschema.xml.in |  10 +
- 11 files changed, 680 insertions(+), 26 deletions(-)
+ 11 files changed, 682 insertions(+), 26 deletions(-)
  create mode 100644 src/grd-vnc-tls.c
  create mode 100644 src/grd-vnc-tls.h
 
 diff --git a/meson.build b/meson.build
-index 70a3ef3..2a92588 100644
+index af607a47..a827c356 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -63,6 +63,7 @@ endif
@@ -37,7 +37,7 @@ index 70a3ef3..2a92588 100644
  
  prefix = get_option('prefix')
 diff --git a/src/grd-enums.h b/src/grd-enums.h
-index 44b181d..de0d0f8 100644
+index 44b181d6..de0d0f86 100644
 --- a/src/grd-enums.h
 +++ b/src/grd-enums.h
 @@ -39,4 +39,10 @@ typedef enum
@@ -52,7 +52,7 @@ index 44b181d..de0d0f8 100644
 +
  #endif /* GRD_ENUMS_H */
 diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c
-index d310706..d145b8d 100644
+index de1c26d7..a82952ae 100644
 --- a/src/grd-session-vnc.c
 +++ b/src/grd-session-vnc.c
 @@ -45,7 +45,9 @@ struct _GrdSessionVnc
@@ -65,7 +65,7 @@ index d310706..d145b8d 100644
    GSource *source;
    rfbScreenInfoPtr rfb_screen;
    rfbClientPtr rfb_client;
-@@ -586,6 +588,12 @@ check_rfb_password (rfbClientPtr  rfb_client,
+@@ -588,6 +590,12 @@ check_rfb_password (rfbClientPtr  rfb_client,
      }
  }
  
@@ -78,7 +78,7 @@ index d310706..d145b8d 100644
  int
  grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
                                        int            width)
-@@ -593,6 +601,18 @@ grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
+@@ -595,6 +603,18 @@ grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
    return width * BGRX_BYTES_PER_PIXEL;
  }
  
@@ -97,7 +97,7 @@ index d310706..d145b8d 100644
  static void
  init_vnc_session (GrdSessionVnc *session_vnc)
  {
-@@ -667,44 +687,85 @@ init_vnc_session (GrdSessionVnc *session_vnc)
+@@ -669,44 +689,85 @@ init_vnc_session (GrdSessionVnc *session_vnc)
    rfbProcessEvents (rfb_screen, 0);
  }
  
@@ -208,7 +208,7 @@ index d310706..d145b8d 100644
      }
  
    return G_SOURCE_CONTINUE;
-@@ -717,7 +778,10 @@ grd_session_vnc_attach_source (GrdSessionVnc *session_vnc)
+@@ -719,7 +780,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 d310706..d145b8d 100644
                                                  NULL);
    g_source_set_callback (session_vnc->source,
                           (GSourceFunc) handle_socket_data,
-@@ -748,11 +812,13 @@ grd_session_vnc_new (GrdVncServer      *vnc_server,
+@@ -750,11 +814,13 @@ grd_session_vnc_new (GrdVncServer      *vnc_server,
                                "context", context,
                                NULL);
  
@@ -234,7 +234,7 @@ index d310706..d145b8d 100644
    grd_session_vnc_attach_source (session_vnc);
  
    init_vnc_session (session_vnc);
-@@ -767,6 +833,8 @@ grd_session_vnc_dispose (GObject *object)
+@@ -769,6 +835,8 @@ grd_session_vnc_dispose (GObject *object)
  
    g_assert (!session_vnc->rfb_screen);
  
@@ -244,7 +244,7 @@ index d310706..d145b8d 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 be79cf4..ffc8d27 100644
+index be79cf4a..ffc8d27a 100644
 --- a/src/grd-session-vnc.h
 +++ b/src/grd-session-vnc.h
 @@ -37,6 +37,9 @@ G_DECLARE_FINAL_TYPE (GrdSessionVnc,
@@ -278,46 +278,46 @@ index be79cf4..ffc8d27 100644
 +GrdVncServer * grd_session_vnc_get_vnc_server (GrdSessionVnc *session_vnc);
 +
  #endif /* GRD_SESSION_VNC_H */
-diff --git a/src/grd-settings.c b/src/grd-settings.c
-index a95628f..15d2ad2 100644
---- a/src/grd-settings.c
-+++ b/src/grd-settings.c
-@@ -74,6 +74,7 @@ struct _GrdSettings
-     GrdVncAuthMethod auth_method;
-     int port;
+diff --git a/src/grd-settings-user.c b/src/grd-settings-user.c
+index 42bf31dd..5f6a87dd 100644
+--- a/src/grd-settings-user.c
++++ b/src/grd-settings-user.c
+@@ -66,6 +66,7 @@ struct _GrdSettingsUser
+     gboolean view_only;
      GrdVncScreenShareMode screen_share_mode;
+     GrdVncAuthMethod auth_method;
 +    GrdVncEncryption encryption;
    } vnc;
  };
  
-@@ -248,6 +249,12 @@ grd_settings_get_vnc_auth_method (GrdSettings *settings)
-     return settings->vnc.auth_method;
- }
- 
-+GrdVncEncryption
-+grd_settings_get_vnc_encryption (GrdSettings *settings)
-+{
-+  return settings->vnc.encryption;
-+}
-+
- static void
- update_screen_share_mode (GrdSettings *settings)
- {
-@@ -313,6 +320,13 @@ update_vnc_auth_method (GrdSettings *settings)
+@@ -138,6 +139,13 @@ update_vnc_auth_method (GrdSettingsUser *settings)
                                                     "auth-method");
  }
  
 +static void
-+update_vnc_encryption (GrdSettings *settings)
++update_vnc_encryption (GrdSettingsUser *settings)
 +{
 +  settings->vnc.encryption = g_settings_get_flags (settings->vnc.settings,
 +                                                   "encryption");
 +}
 +
- static void
- on_rdp_settings_changed (GSettings   *rdp_settings,
-                          const char  *key,
-@@ -370,6 +384,11 @@ on_vnc_settings_changed (GSettings   *vnc_settings,
+ static gboolean
+ grd_settings_user_is_rdp_enabled (GrdSettings *settings)
+ {
+@@ -192,6 +200,12 @@ grd_settings_user_get_vnc_auth_method (GrdSettings *settings)
+   return GRD_SETTINGS_USER (settings)->vnc.auth_method;
+ }
+ 
++static GrdVncEncryption
++grd_settings_user_get_encryption (GrdSettings *settings)
++{
++  return GRD_SETTINGS_USER (settings)->vnc.encryption;
++}
++
+ GrdSettingsUser *
+ grd_settings_user_new (GrdContext *context)
+ {
+@@ -273,6 +287,11 @@ on_vnc_settings_changed (GSettings       *vnc_settings,
        update_vnc_auth_method (settings);
        g_signal_emit (settings, signals[VNC_AUTH_METHOD_CHANGED], 0);
      }
@@ -328,17 +328,24 @@ index a95628f..15d2ad2 100644
 +    }
  }
  
- GrdSettings *
-@@ -419,6 +438,8 @@ grd_settings_init (GrdSettings *settings)
- 
-   settings->rdp.port = GRD_RDP_SERVER_PORT;
-   settings->vnc.port = GRD_VNC_SERVER_PORT;
-+
+ static void
+@@ -294,6 +313,7 @@ grd_settings_user_init (GrdSettingsUser *settings)
+   update_vnc_view_only (settings);
+   update_vnc_screen_share_mode (settings);
+   update_vnc_auth_method (settings);
 +  update_vnc_encryption (settings);
  }
  
  static void
-@@ -491,4 +512,11 @@ grd_settings_class_init (GrdSettingsClass *klass)
+@@ -313,6 +333,7 @@ grd_settings_user_class_init (GrdSettingsUserClass *klass)
+   settings_class->get_rdp_server_key = grd_settings_user_get_rdp_server_key;
+   settings_class->get_rdp_server_cert = grd_settings_user_get_rdp_server_cert;
+   settings_class->get_vnc_auth_method = grd_settings_user_get_vnc_auth_method;
++  settings_class->get_vnc_encryption = grd_settings_user_get_encryption;
+ 
+   signals[RDP_ENABLED_CHANGED] =
+     g_signal_new ("rdp-enabled-changed",
+@@ -377,4 +398,11 @@ grd_settings_user_class_init (GrdSettingsUserClass *klass)
                    0,
                    NULL, NULL, NULL,
                    G_TYPE_NONE, 0);
@@ -351,10 +358,19 @@ index a95628f..15d2ad2 100644
 +                  G_TYPE_NONE, 0);
  }
 diff --git a/src/grd-settings.h b/src/grd-settings.h
-index 1fe6419..b45f839 100644
+index 9e36ff9d..51f0f1c3 100644
 --- a/src/grd-settings.h
 +++ b/src/grd-settings.h
-@@ -68,4 +68,6 @@ gboolean grd_settings_get_vnc_view_only (GrdSettings *settings);
+@@ -56,6 +56,8 @@ struct _GrdSettingsClass
+   char * (* get_rdp_server_key) (GrdSettings *settings);
+ 
+   GrdVncAuthMethod (* get_vnc_auth_method) (GrdSettings *settings);
++
++  GrdVncEncryption (* get_vnc_encryption) (GrdSettings *settings);
+ };
+ 
+ int grd_settings_get_rdp_port (GrdSettings *settings);
+@@ -94,4 +96,6 @@ char *grd_settings_get_rdp_server_key (GrdSettings *settings);
  
  GrdVncAuthMethod grd_settings_get_vnc_auth_method (GrdSettings *settings);
  
@@ -362,7 +378,7 @@ index 1fe6419..b45f839 100644
 +
  #endif /* GRD_SETTINGS_H */
 diff --git a/src/grd-vnc-server.c b/src/grd-vnc-server.c
-index 70efab1..9280dfb 100644
+index 70efab12..9280dfb5 100644
 --- a/src/grd-vnc-server.c
 +++ b/src/grd-vnc-server.c
 @@ -24,12 +24,14 @@
@@ -446,7 +462,7 @@ index 70efab1..9280dfb 100644
  
 diff --git a/src/grd-vnc-tls.c b/src/grd-vnc-tls.c
 new file mode 100644
-index 0000000..ec4758e
+index 00000000..ec4758e0
 --- /dev/null
 +++ b/src/grd-vnc-tls.c
 @@ -0,0 +1,444 @@
@@ -896,7 +912,7 @@ index 0000000..ec4758e
 +}
 diff --git a/src/grd-vnc-tls.h b/src/grd-vnc-tls.h
 new file mode 100644
-index 0000000..135ef8c
+index 00000000..135ef8c7
 --- /dev/null
 +++ b/src/grd-vnc-tls.h
 @@ -0,0 +1,28 @@
@@ -929,10 +945,10 @@ index 0000000..135ef8c
 +
 +#endif /* GRD_VNC_TLS_H */
 diff --git a/src/meson.build b/src/meson.build
-index 9f9b9b7..bc82252 100644
+index ac07455b..654caccb 100644
 --- a/src/meson.build
 +++ b/src/meson.build
-@@ -153,10 +153,13 @@ if have_vnc
+@@ -161,10 +161,13 @@ if have_vnc
      'grd-vnc-pipewire-stream.h',
      'grd-vnc-server.c',
      'grd-vnc-server.h',
@@ -947,7 +963,7 @@ index 9f9b9b7..bc82252 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 5b39a5d..c6dc2ab 100644
+index 5b39a5de..c6dc2ab5 100644
 --- a/src/org.gnome.desktop.remote-desktop.gschema.xml.in
 +++ b/src/org.gnome.desktop.remote-desktop.gschema.xml.in
 @@ -116,5 +116,15 @@
@@ -967,10 +983,10 @@ index 5b39a5d..c6dc2ab 100644
    </schema>
  </schemalist>
 -- 
-2.37.1
+2.40.0
 
 
-From f91f9a17e8277f15a44720eb180bf22bd91307c6 Mon Sep 17 00:00:00 2001
+From b8cfd8e5428ca5e90e7be3da2c1b71226413f11a 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
@@ -983,7 +999,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 d145b8d..e7a77d5 100644
+index a82952ae..1fd3b778 100644
 --- a/src/grd-session-vnc.c
 +++ b/src/grd-session-vnc.c
 @@ -41,14 +41,27 @@
@@ -1042,7 +1058,7 @@ index d145b8d..e7a77d5 100644
        return RFB_CLIENT_ON_HOLD;
      case GRD_VNC_AUTH_METHOD_PASSWORD:
        session_vnc->rfb_screen->passwordCheck = check_rfb_password;
-@@ -579,7 +593,7 @@ check_rfb_password (rfbClientPtr  rfb_client,
+@@ -581,7 +595,7 @@ check_rfb_password (rfbClientPtr  rfb_client,
    if (memcmp (challenge_encrypted, response_encrypted, len) == 0)
      {
        grd_session_start (GRD_SESSION (session_vnc));
@@ -1051,7 +1067,7 @@ index d145b8d..e7a77d5 100644
        return TRUE;
      }
    else
-@@ -799,6 +813,36 @@ grd_session_vnc_detach_source (GrdSessionVnc *session_vnc)
+@@ -801,6 +815,36 @@ grd_session_vnc_detach_source (GrdSessionVnc *session_vnc)
    g_clear_pointer (&session_vnc->source, g_source_unref);
  }
  
@@ -1088,7 +1104,7 @@ index d145b8d..e7a77d5 100644
  GrdSessionVnc *
  grd_session_vnc_new (GrdVncServer      *vnc_server,
                       GSocketConnection *connection)
-@@ -820,6 +864,7 @@ grd_session_vnc_new (GrdVncServer      *vnc_server,
+@@ -822,6 +866,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);
@@ -1096,16 +1112,16 @@ index d145b8d..e7a77d5 100644
  
    init_vnc_session (session_vnc);
  
-@@ -849,7 +894,7 @@ grd_session_vnc_stop (GrdSession *session)
- 
-   g_clear_object (&session_vnc->pipewire_stream);
+@@ -856,7 +901,7 @@ grd_session_vnc_stop (GrdSession *session)
+       g_clear_object (&session_vnc->stream);
+     }
  
 -  grd_session_vnc_detach_source (session_vnc);
 +  grd_session_vnc_pause (session_vnc);
  
    g_clear_object (&session_vnc->connection);
    g_clear_object (&session_vnc->clipboard_vnc);
-@@ -936,8 +981,8 @@ grd_session_vnc_stream_ready (GrdSession *session,
+@@ -941,8 +986,8 @@ on_stream_ready (GrdStream     *stream,
                      G_CALLBACK (on_pipewire_stream_closed),
                      session_vnc);
  
@@ -1116,10 +1132,10 @@ index d145b8d..e7a77d5 100644
  }
  
  static void
-@@ -958,4 +1003,17 @@ grd_session_vnc_class_init (GrdSessionVncClass *klass)
+@@ -977,4 +1022,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;
+   session_class->on_stream_created = grd_session_vnc_on_stream_created;
 +
 +  signals[PAUSED] = g_signal_new ("paused",
 +                                  G_TYPE_FROM_CLASS (klass),
@@ -1135,10 +1151,10 @@ index d145b8d..e7a77d5 100644
 +                                   G_TYPE_NONE, 0);
  }
 -- 
-2.37.1
+2.40.0
 
 
-From 5856f0b5da2b3f71d8424db96e777001a8250137 Mon Sep 17 00:00:00 2001
+From e65f12d3b022891eb39d8ee0f0c88db3f5ae4526 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
@@ -1151,10 +1167,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 e7a77d5..67308a2 100644
+index 1fd3b778..8366e661 100644
 --- a/src/grd-session-vnc.c
 +++ b/src/grd-session-vnc.c
-@@ -749,6 +749,21 @@ vnc_socket_grab_func (GrdSessionVnc  *session_vnc,
+@@ -751,6 +751,21 @@ vnc_socket_grab_func (GrdSessionVnc  *session_vnc,
    return TRUE;
  }
  
@@ -1176,7 +1192,7 @@ index e7a77d5..67308a2 100644
  static gboolean
  handle_socket_data (GSocket *socket,
                      GIOCondition condition,
-@@ -765,16 +780,7 @@ handle_socket_data (GSocket *socket,
+@@ -767,16 +782,7 @@ handle_socket_data (GSocket *socket,
      }
    else if (condition & G_IO_IN)
      {
@@ -1195,7 +1211,7 @@ index e7a77d5..67308a2 100644
    else
      {
 diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h
-index ffc8d27..a86d61d 100644
+index ffc8d27a..a86d61d2 100644
 --- a/src/grd-session-vnc.h
 +++ b/src/grd-session-vnc.h
 @@ -80,6 +80,8 @@ void grd_session_vnc_grab_socket (GrdSessionVnc        *session_vnc,
@@ -1208,10 +1224,10 @@ index ffc8d27..a86d61d 100644
  
  #endif /* GRD_SESSION_VNC_H */
 -- 
-2.37.1
+2.40.0
 
 
-From b8a59836a2348ab10fed0ff1590e12690ea427de Mon Sep 17 00:00:00 2001
+From 0cbebce170fdc994c467b43082a41e56209142f0 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
@@ -1223,7 +1239,7 @@ protocol rather than the session itself.
  1 file changed, 9 insertions(+)
 
 diff --git a/src/grd-vnc-tls.c b/src/grd-vnc-tls.c
-index ec4758e..ac6c35f 100644
+index ec4758e0..ac6c35f6 100644
 --- a/src/grd-vnc-tls.c
 +++ b/src/grd-vnc-tls.c
 @@ -67,6 +67,7 @@ grd_vnc_tls_context_new (void)
@@ -1285,10 +1301,10 @@ index ec4758e..ac6c35f 100644
      {
        g_warning ("TLS handshake failed: %s", error->message);
 -- 
-2.37.1
+2.40.0
 
 
-From 26a824eede76c1d06ac6eb11cb0dd016ec66c739 Mon Sep 17 00:00:00 2001
+From 547a51efd438d2b812d4d3b0d725ccd38547018a 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
@@ -1305,7 +1321,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 a86d61d..5db388b 100644
+index a86d61d2..5db388b0 100644
 --- a/src/grd-session-vnc.h
 +++ b/src/grd-session-vnc.h
 @@ -80,6 +80,8 @@ void grd_session_vnc_grab_socket (GrdSessionVnc        *session_vnc,
@@ -1318,7 +1334,7 @@ index a86d61d..5db388b 100644
  
  GrdVncServer * grd_session_vnc_get_vnc_server (GrdSessionVnc *session_vnc);
 diff --git a/src/grd-vnc-tls.c b/src/grd-vnc-tls.c
-index ac6c35f..312b6b9 100644
+index ac6c35f6..312b6b92 100644
 --- a/src/grd-vnc-tls.c
 +++ b/src/grd-vnc-tls.c
 @@ -41,6 +41,12 @@ typedef enum _GrdTlsHandshakeState
@@ -1455,10 +1471,10 @@ index ac6c35f..312b6b9 100644
      }
  
 -- 
-2.37.1
+2.40.0
 
 
-From 879b9a26595c338cee40aa919596e439be910f4b Mon Sep 17 00:00:00 2001
+From 339341e34b4ecb1ab897604d24f3bedf9c8b1e53 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
@@ -1477,7 +1493,7 @@ password prompt.
  1 file changed, 2 insertions(+), 6 deletions(-)
 
 diff --git a/src/grd-session-vnc.c b/src/grd-session-vnc.c
-index 67308a2..39b3a56 100644
+index 8366e661..baf7520c 100644
 --- a/src/grd-session-vnc.c
 +++ b/src/grd-session-vnc.c
 @@ -97,11 +97,6 @@ grd_session_vnc_pause (GrdSessionVnc *session_vnc);
@@ -1500,7 +1516,7 @@ index 67308a2..39b3a56 100644
        /*
         * authPasswdData needs to be non NULL in libvncserver to trigger
         * password authentication.
-@@ -697,6 +691,8 @@ init_vnc_session (GrdSessionVnc *session_vnc)
+@@ -699,6 +693,8 @@ init_vnc_session (GrdSessionVnc *session_vnc)
        session_vnc->monitor_config->connectors = connectors;
      }
  
@@ -1510,10 +1526,10 @@ index 67308a2..39b3a56 100644
    rfbProcessEvents (rfb_screen, 0);
  }
 -- 
-2.37.1
+2.40.0
 
 
-From 7b0523bd3f6981225d2614956f297a698e846c1a Mon Sep 17 00:00:00 2001
+From 2902160953407cfe6934d6ebcff2f1ea3722bfc8 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
@@ -1531,7 +1547,7 @@ dropped.
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/src/grd-session-vnc.h b/src/grd-session-vnc.h
-index 5db388b..c4f4e8d 100644
+index 5db388b0..c4f4e8d4 100644
 --- a/src/grd-session-vnc.h
 +++ b/src/grd-session-vnc.h
 @@ -68,7 +68,8 @@ int grd_session_vnc_get_stride_for_width (GrdSessionVnc *session_vnc,
@@ -1545,5 +1561,5 @@ index 5db388b..c4f4e8d 100644
  gboolean grd_session_vnc_is_client_gone (GrdSessionVnc *session_vnc);
  
 -- 
-2.37.1
+2.40.0
 
diff --git a/sources b/sources
index bf32cbd..9d91158 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (gnome-remote-desktop-44.2.tar.xz) = 2e310cd926e0ed6fd28406a56e4d4ba239b9817b035231f66b648a98e08a5c7a7d810a2b786292aa39a7c67ca17af3de92dce4a6031a4f72166d667b8f498bd0
+SHA512 (gnome-remote-desktop-45.alpha.tar.xz) = 047488a3c2131cb0a52b6378e8a4edc70eae5b2d9b2f4a53dd83bc7d46ca4a3b87a59817ec31a674b8be1e5b4e997e0b4d504fb03cb54149aa0ed25789a31752