Your message dated Mon, 17 May 2021 18:29:28 +0000
with message-id <[email protected]>
and subject line unblock vinagre
has caused the Debian Bug report #988609,
regarding unblock: vinagre/3.22.0-8.1
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
988609: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=988609
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
Usertags: unblock
X-Debbugs-Cc: Simon McVittie <[email protected]>
Please unblock package vinagre
[ Reason ]
Resolves hanging black screen when connecting to an RDP server.
[ Impact ] Users of vinagre from buster will not be able to use the
application anymore. The vinagre package should then be removed from
bullseye.
[ Tests ]
Manually tested against a Windows 2016 Server OS.
[ Risks ]
Leaf package, no risk.
[ Checklist ]
[x] all changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in testing
[ Other info ]
None
unblock vinagre/3.22.0-8.1
diff -Nru vinagre-3.22.0/debian/changelog vinagre-3.22.0/debian/changelog
--- vinagre-3.22.0/debian/changelog 2021-01-01 01:09:52.000000000 +0100
+++ vinagre-3.22.0/debian/changelog 2021-05-16 23:11:19.000000000 +0200
@@ -1,3 +1,14 @@
+vinagre (3.22.0-8.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * debian/patches:
+ + Add 0003-fix-hangs-with-recent-FreeRDP-version.patch and
+ 0004-fix-FreeRDP-API-usage.patch. This resolves vinagre hanging endlessly
+ with a black screen when connecting to a remote RDP server (Closes:
+ #983533).
+
+ -- Mike Gabriel <[email protected]> Sun, 16 May 2021 23:11:19 +0200
+
vinagre (3.22.0-8) unstable; urgency=medium
* Team upload.
diff -Nru
vinagre-3.22.0/debian/patches/0003-fix-hangs-with-recent-FreeRDP-version.patch
vinagre-3.22.0/debian/patches/0003-fix-hangs-with-recent-FreeRDP-version.patch
---
vinagre-3.22.0/debian/patches/0003-fix-hangs-with-recent-FreeRDP-version.patch
1970-01-01 01:00:00.000000000 +0100
+++
vinagre-3.22.0/debian/patches/0003-fix-hangs-with-recent-FreeRDP-version.patch
2021-02-26 10:32:02.000000000 +0100
@@ -0,0 +1,78 @@
+From 404a56a11469ef24a1df632847465030d81db091 Mon Sep 17 00:00:00 2001
+From: Ondrej Holy <[email protected]>
+Date: Fri, 15 May 2020 15:43:37 +0200
+Subject: [PATCH] plugins/rdp: Fix hangs with recent FreeRDP versions
+
+Connection to all my testing servers fails with "SERVER BUG: The support
+for this feature was not announced! Use /relax-order-checks to ignore"
+currently. This happens always with current FreeRDP versions after
+https://github.com/FreeRDP/FreeRDP/pull/4926 has been merged. This can be
+fixed by the usage of /relax-order-checks option, however, this option
+should be used only if necessary needed and it should not be needed in
+most of the cases. This currenlty happens always as it interfere with our
+custom OrderSupports settings. Let's use the default OrderSupports
+settings to fix this issue, which is possible thanks to
+https://github.com/FreeRDP/FreeRDP/pull/5057.
+
+See: https://gitlab.gnome.org/GNOME/gtk-frdp/-/issues/27
+---
+ configure.ac | 2 +-
+ plugins/rdp/vinagre-rdp-tab.c | 27 ---------------------------
+ 2 files changed, 1 insertion(+), 28 deletions(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -58,7 +58,7 @@
+ AM_CONDITIONAL([VINAGRE_ENABLE_SSH], [test "x$have_ssh" = "xyes"])
+
+ # Whether to enable support for RDP.
+-RDP_DEPS="freerdp2 x11"
++RDP_DEPS="freerdp2 >= 2.0.0 x11"
+ AC_ARG_ENABLE([rdp],
+ [AS_HELP_STRING([--disable-rdp],
+ [Disable Remote Desktop Protocol (RDP) support])])
+--- a/plugins/rdp/vinagre-rdp-tab.c
++++ b/plugins/rdp/vinagre-rdp-tab.c
+@@ -524,32 +524,7 @@ frdp_pre_connect (freerdp *instance)
+ {
+ rdpSettings *settings = instance->settings;
+
+-#if HAVE_FREERDP_1_1
+- settings->OrderSupport[NEG_DSTBLT_INDEX] = TRUE;
+- settings->OrderSupport[NEG_PATBLT_INDEX] = TRUE;
+- settings->OrderSupport[NEG_SCRBLT_INDEX] = TRUE;
+- settings->OrderSupport[NEG_OPAQUE_RECT_INDEX] = TRUE;
+- settings->OrderSupport[NEG_DRAWNINEGRID_INDEX] = FALSE;
+- settings->OrderSupport[NEG_MULTIDSTBLT_INDEX] = FALSE;
+- settings->OrderSupport[NEG_MULTIPATBLT_INDEX] = FALSE;
+- settings->OrderSupport[NEG_MULTISCRBLT_INDEX] = FALSE;
+- settings->OrderSupport[NEG_MULTIOPAQUERECT_INDEX] = TRUE;
+- settings->OrderSupport[NEG_MULTI_DRAWNINEGRID_INDEX] = FALSE;
+- settings->OrderSupport[NEG_LINETO_INDEX] = TRUE;
+- settings->OrderSupport[NEG_POLYLINE_INDEX] = TRUE;
+- settings->OrderSupport[NEG_MEMBLT_INDEX] = TRUE;
+- settings->OrderSupport[NEG_MEM3BLT_INDEX] = FALSE;
+- settings->OrderSupport[NEG_MEMBLT_V2_INDEX] = TRUE;
+- settings->OrderSupport[NEG_MEM3BLT_V2_INDEX] = FALSE;
+- settings->OrderSupport[NEG_SAVEBITMAP_INDEX] = FALSE;
+- settings->OrderSupport[NEG_GLYPH_INDEX_INDEX] = TRUE;
+- settings->OrderSupport[NEG_FAST_INDEX_INDEX] = TRUE;
+- settings->OrderSupport[NEG_FAST_GLYPH_INDEX] = FALSE;
+- settings->OrderSupport[NEG_POLYGON_SC_INDEX] = FALSE;
+- settings->OrderSupport[NEG_POLYGON_CB_INDEX] = FALSE;
+- settings->OrderSupport[NEG_ELLIPSE_SC_INDEX] = FALSE;
+- settings->OrderSupport[NEG_ELLIPSE_CB_INDEX] = FALSE;
+-#else
++#if !HAVE_FREERDP_1_1
+ settings->order_support[NEG_DSTBLT_INDEX] = true;
+ settings->order_support[NEG_PATBLT_INDEX] = true;
+ settings->order_support[NEG_SCRBLT_INDEX] = true;
+@@ -1122,6 +1097,8 @@ open_freerdp (VinagreRdpTab *rdp_tab)
+ settings->encryption = true;
+ settings->encryption_method = ENCRYPTION_METHOD_40BIT |
ENCRYPTION_METHOD_128BIT | ENCRYPTION_METHOD_FIPS;
+ settings->encryption_level = ENCRYPTION_LEVEL_CLIENT_COMPATIBLE;
++ settings->AllowUnanouncedOrdersFromServer = true;
++ settings->BitmapCacheEnabled = true;
+ #endif
+ #include <freerdp/version.h>
+ #if (FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR >= 2 &&
FREERDP_VERSION_REVISION >= 1) || (FREERDP_VERSION_MAJOR == 2)
diff -Nru vinagre-3.22.0/debian/patches/0004-fix-FreeRDP-API-usage.patch
vinagre-3.22.0/debian/patches/0004-fix-FreeRDP-API-usage.patch
--- vinagre-3.22.0/debian/patches/0004-fix-FreeRDP-API-usage.patch
1970-01-01 01:00:00.000000000 +0100
+++ vinagre-3.22.0/debian/patches/0004-fix-FreeRDP-API-usage.patch
2021-02-26 10:35:40.000000000 +0100
@@ -0,0 +1,64 @@
+From 18150f00a889e7f02d15f04e868e7b019ccdf0f2 Mon Sep 17 00:00:00 2001
+From: akallabeth <[email protected]>
+Date: Fri, 26 Feb 2021 08:11:35 +0100
+Subject: [PATCH] Fixed freerdp API use
+
+* Use PostDisconnect callback to free up resources allocated
+ during Pre/PostConnect phase
+* Only call freerdp_disconnect if there was an actual connection
+---
+ plugins/rdp/vinagre-rdp-tab.c | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+--- a/plugins/rdp/vinagre-rdp-tab.c
++++ b/plugins/rdp/vinagre-rdp-tab.c
+@@ -70,6 +70,8 @@
+ gboolean scaling;
+ double scale;
+ double offset_x, offset_y;
++
++ gboolean is_connected;
+ };
+
+ G_DEFINE_TYPE (VinagreRdpTab, vinagre_rdp_tab, VINAGRE_TYPE_TAB)
+@@ -178,8 +180,9 @@
+
+ if (priv->freerdp_session)
+ {
+- gdi_free (priv->freerdp_session);
+- freerdp_disconnect (priv->freerdp_session);
++ if (priv->is_connected)
++ freerdp_disconnect (priv->freerdp_session);
++
+ freerdp_context_free (priv->freerdp_session);
+ g_clear_pointer (&priv->freerdp_session, freerdp_free);
+ }
+@@ -584,6 +587,12 @@
+ return TRUE;
+ }
+
++static void
++frdp_post_disconnect (freerdp *instance)
++{
++ gdi_free(instance);
++}
++
+ static gboolean
+ update (gpointer user_data)
+ {
+@@ -1065,6 +1074,7 @@
+ priv->freerdp_session = freerdp_new ();
+ priv->freerdp_session->PreConnect = frdp_pre_connect;
+ priv->freerdp_session->PostConnect = frdp_post_connect;
++ priv->freerdp_session->PostDisconnect = frdp_post_disconnect;
+ priv->freerdp_session->Authenticate = frdp_authenticate;
+ priv->freerdp_session->VerifyCertificate = frdp_certificate_verify;
+ #if HAVE_FREERDP_1_1
+@@ -1199,6 +1209,7 @@
+ /* Run FreeRDP session */
+ success = freerdp_connect (priv->freerdp_session);
+
++ priv->is_connected = success;
+ if (!success)
+ {
+ gtk_window_unfullscreen (window);
diff -Nru vinagre-3.22.0/debian/patches/series
vinagre-3.22.0/debian/patches/series
--- vinagre-3.22.0/debian/patches/series 2021-01-01 01:06:19.000000000
+0100
+++ vinagre-3.22.0/debian/patches/series 2021-02-26 10:34:20.000000000
+0100
@@ -3,3 +3,5 @@
freerdp2017.patch
131d151cb02245f84918f9ba5b3ef055758bcf61.patch
gcc-10.patch
+0003-fix-hangs-with-recent-FreeRDP-version.patch
+0004-fix-FreeRDP-API-usage.patch
--- End Message ---
--- Begin Message ---
Unblocked.
--- End Message ---