diff options
Diffstat (limited to 'debian')
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | debian/control | 2 | ||||
-rw-r--r-- | debian/patches/MR2579.patch | 34 | ||||
-rw-r--r-- | debian/patches/MR2581.patch | 190 | ||||
-rw-r--r-- | debian/patches/series | 2 | ||||
-rwxr-xr-x | debian/rules | 1 |
6 files changed, 234 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog index b56f6d5..f708205 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) unstable; urgency=medium * New upstream release (Closes: #1066917) diff --git a/debian/control b/debian/control index a93cbf9..3880a11 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Uploaders: 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 db16c97..6d8cf6b 100755 --- a/debian/rules +++ b/debian/rules @@ -16,6 +16,7 @@ endif override_dh_auto_configure: dh_auto_configure -- \ + -DWITH_FREERDP3=ON \ -DWITH_KF5WALLET=ON \ -DWITH_KIOSK_SESSION=ON \ -DWITH_NEWS=$(SETSTUFF) \ |