summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/changelog6
-rw-r--r--debian/control2
-rw-r--r--debian/patches/MR2579.patch34
-rw-r--r--debian/patches/MR2581.patch190
-rw-r--r--debian/patches/series2
-rwxr-xr-xdebian/rules1
6 files changed, 234 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog
index 5a52a31..9170b88 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+remmina (1.4.35+dfsg-2) unstable; urgency=medium
+
+ * debian/: FreeRDP2 -> FreeRDP3 switch (Closes: #1070078)
+
+ -- Matteo F. Vescovi <mfv@debian.org> Fri, 03 May 2024 21:02:04 +0200
+
remmina (1.4.35+dfsg-1~progress7.99u1) graograman-backports; urgency=medium
* Uploading to graograman-backports, remaining changes:
diff --git a/debian/control b/debian/control
index 14356a7..9733e9a 100644
--- a/debian/control
+++ b/debian/control
@@ -10,7 +10,7 @@ Bugs: mailto:maintainers@lists.progress-linux.org
Build-Depends:
cmake (>= 3.5),
debhelper-compat (= 13),
- freerdp2-dev (>= 2.2.0~),
+ freerdp3-dev (>= 3.5.0~),
intltool,
libayatana-appindicator3-dev,
libavahi-ui-gtk3-dev (>= 0.6.0),
diff --git a/debian/patches/MR2579.patch b/debian/patches/MR2579.patch
new file mode 100644
index 0000000..f65de7d
--- /dev/null
+++ b/debian/patches/MR2579.patch
@@ -0,0 +1,34 @@
+From 9708cca9fac2b9fd13803118ddc7af6b28549e1a Mon Sep 17 00:00:00 2001
+From: Pascal Nowack <Pascal.Nowack@gmx.de>
+Date: Sun, 14 Apr 2024 17:15:30 +0200
+Subject: [PATCH] rdp/rdp-plugin: Fix faulty color depth check
+
+The color depth setting is a uint32 setting and thus requires the
+respective getter. Also, it expects a settings key, not some random
+boolean condition.
+Thankfully, FreeRDP3 introduced some assertions around the setting
+types, making this issue discoverable.
+
+Closes: https://gitlab.com/Remmina/Remmina/-/issues/3090
+---
+ plugins/rdp/rdp_plugin.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/plugins/rdp/rdp_plugin.c b/plugins/rdp/rdp_plugin.c
+index 1e691ea58..2513b4b58 100644
+--- a/plugins/rdp/rdp_plugin.c
++++ b/plugins/rdp/rdp_plugin.c
+@@ -1658,7 +1658,9 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget *gp)
+ REMMINA_PLUGIN_DEBUG("gfx_h264_available: %d", gfx_h264_available);
+
+ /* Avoid using H.264 modes if they are not available on libfreerdp */
+- if (!gfx_h264_available && (freerdp_settings_get_uint32(rfi->clientContext.context.settings, FreeRDP_ColorDepth) == 65 || freerdp_settings_get_bool(rfi->clientContext.context.settings, FreeRDP_ColorDepth == 66)))
++ if (!gfx_h264_available &&
++ (freerdp_settings_get_uint32(rfi->clientContext.context.settings, FreeRDP_ColorDepth) == 65 ||
++ freerdp_settings_get_uint32(rfi->clientContext.context.settings, FreeRDP_ColorDepth) == 66))
+ freerdp_settings_set_uint32(rfi->clientContext.context.settings, FreeRDP_ColorDepth, 64); // Fallback to GFX RFX
+
+ if (freerdp_settings_get_uint32(rfi->clientContext.context.settings, FreeRDP_ColorDepth) == 0) {
+--
+GitLab
+
diff --git a/debian/patches/MR2581.patch b/debian/patches/MR2581.patch
new file mode 100644
index 0000000..e405463
--- /dev/null
+++ b/debian/patches/MR2581.patch
@@ -0,0 +1,190 @@
+From 2a66973e8c53bceda1517bc347c92b1a773ada36 Mon Sep 17 00:00:00 2001
+From: myheroyuki <myheroyuki@outlook.com>
+Date: Tue, 30 Apr 2024 23:00:22 +0900
+Subject: [PATCH 1/3] [REM-3104] Add global RDP options to set FreeRDP auth
+ filter
+
+---
+ plugins/rdp/rdp_plugin.c | 7 +++++++
+ plugins/rdp/rdp_settings.c | 32 ++++++++++++++++++++++++++++++++
+ 2 files changed, 39 insertions(+)
+
+diff --git a/plugins/rdp/rdp_plugin.c b/plugins/rdp/rdp_plugin.c
+index e46cacc98..2b44c0280 100644
+--- a/plugins/rdp/rdp_plugin.c
++++ b/plugins/rdp/rdp_plugin.c
+@@ -2669,6 +2669,7 @@ static void remmina_rdp_init(RemminaProtocolWidget *gp)
+ TRACE_CALL(__func__);
+ freerdp *instance;
+ rfContext *rfi;
++ gchar* auth_list;
+
+ instance = freerdp_new();
+ instance->PreConnect = remmina_rdp_pre_connect;
+@@ -2709,6 +2710,12 @@ static void remmina_rdp_init(RemminaProtocolWidget *gp)
+
+ freerdp_register_addin_provider(freerdp_channels_load_static_addin_entry, 0);
+
++ auth_list = remmina_plugin_service->pref_get_value("rdp_auth_filter");
++ if (auth_list == NULL){
++ auth_list = "!kerberos";
++ }
++ freerdp_settings_set_string(rfi->clientContext.context.settings, FreeRDP_AuthenticationPackageList, auth_list);
++
+ remmina_rdp_event_init(gp);
+ }
+
+diff --git a/plugins/rdp/rdp_settings.c b/plugins/rdp/rdp_settings.c
+index 7a3d4aa41..d49270dfc 100644
+--- a/plugins/rdp/rdp_settings.c
++++ b/plugins/rdp/rdp_settings.c
+@@ -103,6 +103,7 @@ typedef struct _RemminaPluginRdpsetGrid {
+ GtkWidget * disable_smooth_scrolling_check;
+ GtkWidget * reconnect_attempts;
+ GtkWidget * kbd_remap;
++ GtkWidget * auth_filter;
+
+ /* FreeRDP /scale-desktop: Scaling of desktop app */
+ GtkWidget * desktop_scale_factor_spin;
+@@ -162,6 +163,9 @@ static void remmina_rdp_settings_grid_destroy(GtkWidget *widget, gpointer data)
+ remmina_plugin_service->pref_set_value("rdp_reconnect_attempts",
+ gtk_entry_get_text(GTK_ENTRY(grid->reconnect_attempts)));
+
++ remmina_plugin_service->pref_set_value("rdp_auth_filter",
++ gtk_entry_get_text(GTK_ENTRY(grid->auth_filter)));
++
+ remmina_plugin_service->pref_set_value("rdp_kbd_remap",
+ gtk_entry_get_text(GTK_ENTRY(grid->kbd_remap)));
+
+@@ -711,6 +715,34 @@ static void remmina_rdp_settings_grid_init(RemminaPluginRdpsetGrid *grid)
+ g_free(s);
+ grid->reconnect_attempts = widget;
+
++
++ widget = gtk_label_new(_("Auth settings"));
++ gtk_widget_show(widget);
++ gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
++ gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
++ gtk_widget_set_margin_end(GTK_WIDGET(widget), 6);
++ gtk_widget_set_margin_start(GTK_WIDGET(widget), 18);
++ gtk_grid_attach(GTK_GRID(grid), widget, 0, 14, 1, 1);
++ widget = gtk_label_new(_("Auth string"));
++ gtk_widget_show(widget);
++ gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
++ gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
++ gtk_widget_set_margin_start(GTK_WIDGET(widget), 6);
++ gtk_grid_attach(GTK_GRID(grid), widget, 1, 14, 1, 1);
++ widget = gtk_entry_new();
++ gtk_widget_show(widget);
++ gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_END);
++ gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
++ gtk_grid_attach(GTK_GRID(grid), widget, 2, 14, 1, 1);
++ gtk_entry_set_input_purpose(GTK_ENTRY(widget), GTK_INPUT_PURPOSE_NUMBER);
++ gtk_entry_set_input_hints(GTK_ENTRY(widget), GTK_INPUT_HINT_NONE);
++ gtk_widget_set_tooltip_text(widget, _("Authentication package filter(comma-separated list, use '!' to exclude)"));
++ s = remmina_plugin_service->pref_get_value("rdp_auth_filter");
++ if (s && s[0])
++ gtk_entry_set_text(GTK_ENTRY(widget), s);
++ g_free(s);
++ grid->auth_filter = widget;
++
+ }
+
+ GtkWidget *remmina_rdp_settings_new(RemminaPrefPlugin* plugin)
+--
+GitLab
+
+
+From 169558ef260b620bda05ac824f4bca3696263d8b Mon Sep 17 00:00:00 2001
+From: myheroyuki <myheroyuki@outlook.com>
+Date: Tue, 30 Apr 2024 23:29:45 +0900
+Subject: [PATCH 2/3] [REM-3104] make conditional on freerdp3
+
+---
+ plugins/rdp/rdp_plugin.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/rdp/rdp_plugin.c b/plugins/rdp/rdp_plugin.c
+index 2b44c0280..d5c50cf23 100644
+--- a/plugins/rdp/rdp_plugin.c
++++ b/plugins/rdp/rdp_plugin.c
+@@ -2709,13 +2709,13 @@ static void remmina_rdp_init(RemminaProtocolWidget *gp)
+ rfi->last_y = 0;
+
+ freerdp_register_addin_provider(freerdp_channels_load_static_addin_entry, 0);
+-
++#if FREERDP_VERSION_MAJOR >= 3
+ auth_list = remmina_plugin_service->pref_get_value("rdp_auth_filter");
+ if (auth_list == NULL){
+ auth_list = "!kerberos";
+ }
+ freerdp_settings_set_string(rfi->clientContext.context.settings, FreeRDP_AuthenticationPackageList, auth_list);
+-
++#endif
+ remmina_rdp_event_init(gp);
+ }
+
+--
+GitLab
+
+
+From 76d0d922f0a7a87f4db9f800e9b6b0d10ca33b91 Mon Sep 17 00:00:00 2001
+From: myheroyuki <myheroyuki@outlook.com>
+Date: Wed, 1 May 2024 22:03:22 +0900
+Subject: [PATCH 3/3] [REM-3104] Added fixes courtesy of @giox069
+
+---
+ plugins/rdp/rdp_plugin.c | 8 ++++----
+ plugins/rdp/rdp_settings.c | 9 ++++++++-
+ 2 files changed, 12 insertions(+), 5 deletions(-)
+
+diff --git a/plugins/rdp/rdp_plugin.c b/plugins/rdp/rdp_plugin.c
+index d5c50cf23..9b2cb85d8 100644
+--- a/plugins/rdp/rdp_plugin.c
++++ b/plugins/rdp/rdp_plugin.c
+@@ -2710,11 +2710,11 @@ static void remmina_rdp_init(RemminaProtocolWidget *gp)
+
+ freerdp_register_addin_provider(freerdp_channels_load_static_addin_entry, 0);
+ #if FREERDP_VERSION_MAJOR >= 3
+- auth_list = remmina_plugin_service->pref_get_value("rdp_auth_filter");
+- if (auth_list == NULL){
+- auth_list = "!kerberos";
++ if (auth_list != NULL && auth_list[0] != 0){
++ freerdp_settings_set_string(rfi->clientContext.context.settings, FreeRDP_AuthenticationPackageList, auth_list);
+ }
+- freerdp_settings_set_string(rfi->clientContext.context.settings, FreeRDP_AuthenticationPackageList, auth_list);
++ g_free(auth_list);
++
+ #endif
+ remmina_rdp_event_init(gp);
+ }
+diff --git a/plugins/rdp/rdp_settings.c b/plugins/rdp/rdp_settings.c
+index d49270dfc..44c7a4309 100644
+--- a/plugins/rdp/rdp_settings.c
++++ b/plugins/rdp/rdp_settings.c
+@@ -66,6 +66,13 @@ void remmina_rdp_settings_init(void)
+
+ g_free(value);
+
++ value = remmina_plugin_service->pref_get_value("rdp_auth_filter");
++ if (value == NULL) {
++ remmina_plugin_service->pref_set_value("rdp_auth_filter", "!kerberos");
++ } else {
++ g_free(value);
++ }
++
+ remmina_rdp_settings_kbd_init();
+ }
+
+@@ -723,7 +730,7 @@ static void remmina_rdp_settings_grid_init(RemminaPluginRdpsetGrid *grid)
+ gtk_widget_set_margin_end(GTK_WIDGET(widget), 6);
+ gtk_widget_set_margin_start(GTK_WIDGET(widget), 18);
+ gtk_grid_attach(GTK_GRID(grid), widget, 0, 14, 1, 1);
+- widget = gtk_label_new(_("Auth string"));
++ widget = gtk_label_new(_("FreeRDP auth-pkg-list"));
+ gtk_widget_show(widget);
+ gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
+ gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
+--
+GitLab
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..e2abac7
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,2 @@
+MR2579.patch
+MR2581.patch
diff --git a/debian/rules b/debian/rules
index a13ac3f..750bb64 100755
--- a/debian/rules
+++ b/debian/rules
@@ -8,6 +8,7 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all
override_dh_auto_configure:
dh_auto_configure -- \
+ -DWITH_FREERDP3=ON \
-DWITH_KF5WALLET=ON \
-DWITH_KIOSK_SESSION=ON \
-DWITH_NEWS=OFF \