Notification time stamped 2023-02-28 21:40:32 UTC
From 3cd327d6b68b4f5827625ae0f68d39ea51e7c3f3 Mon Sep 17 00:00:00 2001
From: Phil Wyett <philip.wyett(a)kathenas.org>
Date: Feb 28 2023 21:39:54 +0000
Subject: - Add patch: 0007_add_mime_text_formats_for_rdp_clibpoard_58205163.patch
- Add patch: 0008_fix_unlock_crash_6ed20424.patch
- Add patch:
0009_remmina_rdp_monitor_get_fix_maxw_maxh_and_monitorids_calculation_0c77fe7e.patch
---
diff --git a/0007_add_mime_text_formats_for_rdp_clibpoard_58205163.patch
b/0007_add_mime_text_formats_for_rdp_clibpoard_58205163.patch
new file mode 100644
index 0000000..9b584eb
--- /dev/null
+++ b/0007_add_mime_text_formats_for_rdp_clibpoard_58205163.patch
@@ -0,0 +1,36 @@
+diff --git a/plugins/rdp/rdp_cliprdr.c b/plugins/rdp/rdp_cliprdr.c
+index 75938275ddcff76cb3f7282fdba091cacc2c1f0a..a39e4f4c7603f0960099a7b8f89f8d94973c0715
100644
+--- a/plugins/rdp/rdp_cliprdr.c
++++ b/plugins/rdp/rdp_cliprdr.c
+@@ -280,14 +280,20 @@ static UINT
remmina_rdp_cliprdr_server_format_list(CliprdrClientContext *context
+ gchar *gtkFormatName = NULL;
+ if (format->formatId == CF_UNICODETEXT) {
+ serverFormatName = "CF_UNICODETEXT";
+- gtkFormatName = "UTF8_STRING";
++ gtkFormatName = "text/plain;charset=utf-8";
+ GdkAtom atom = gdk_atom_intern(gtkFormatName, TRUE);
+ gtk_target_list_add(list, atom, 0, CF_UNICODETEXT);
++ /* Add also the older UTF8_STRING format for older applications */
++ atom = gdk_atom_intern("UTF8_STRING", TRUE);
++ gtk_target_list_add(list, atom, 0, CF_UNICODETEXT);
+ } else if (format->formatId == CF_TEXT) {
+ serverFormatName = "CF_TEXT";
+- gtkFormatName = "TEXT";
++ gtkFormatName = "text/plain";
+ GdkAtom atom = gdk_atom_intern(gtkFormatName, TRUE);
+ gtk_target_list_add(list, atom, 0, CF_TEXT);
++ /* Add also the older TEXT format for older applications */
++ atom = gdk_atom_intern("TEXT", TRUE);
++ gtk_target_list_add(list, atom, 0, CF_TEXT);
+ } else if (format->formatId == CF_DIB) {
+ serverFormatName = "CF_DIB";
+ if (has_dib_level < 1)
+@@ -360,7 +366,7 @@ static UINT
remmina_rdp_cliprdr_server_format_list(CliprdrClientContext *context
+ gtk_target_table_free(target_table, n_targets);
+ if (n_targets == 0) {
+ REMMINA_PLUGIN_DEBUG("gp=%p adding a dummy text target (empty text) for local
clipboard, because we have no interesting targets from the server. Putting it in the local
clipboard cache.");
+- GdkAtom atom = gdk_atom_intern("UTF8_STRING", TRUE);
++ GdkAtom atom = gdk_atom_intern("text/plain;charset=utf-8", TRUE);
+ gtk_target_list_add(list, atom, 0, CF_UNICODETEXT);
+ pthread_mutex_lock(&clipboard->srv_data_mutex);
+ clipboard->srv_data = malloc(1);
diff --git a/0008_fix_unlock_crash_6ed20424.patch b/0008_fix_unlock_crash_6ed20424.patch
new file mode 100644
index 0000000..e889727
--- /dev/null
+++ b/0008_fix_unlock_crash_6ed20424.patch
@@ -0,0 +1,12 @@
+diff --git a/src/remmina_unlock.c b/src/remmina_unlock.c
+index 1a3de304ad8f0bae0fa7183e22537bf8c9e57bdc..d05000f7d81df824a12466d90baac9be0cf797ee
100644
+--- a/src/remmina_unlock.c
++++ b/src/remmina_unlock.c
+@@ -75,6 +75,7 @@ void remmina_unlock_timer_destroy()
+ TRACE_CALL(__func__);
+
+ g_timer_destroy(timer);
++ timer = NULL;
+ }
+
+ static void remmina_unlock_unlock_clicked(GtkButton *btn, gpointer user_data)
diff --git
a/0009_remmina_rdp_monitor_get_fix_maxw_maxh_and_monitorids_calculation_0c77fe7e.patch
b/0009_remmina_rdp_monitor_get_fix_maxw_maxh_and_monitorids_calculation_0c77fe7e.patch
new file mode 100644
index 0000000..31aee2d
--- /dev/null
+++
b/0009_remmina_rdp_monitor_get_fix_maxw_maxh_and_monitorids_calculation_0c77fe7e.patch
@@ -0,0 +1,57 @@
+From 0c77fe7e8705d320a3f062afefa8d694d5e9e30a Mon Sep 17 00:00:00 2001
+From: Max Ihlenfeldt <max(a)igalia.com>
+Date: Fri, 24 Feb 2023 14:30:29 +0100
+Subject: [PATCH] remmina_rdp_monitor_get(): fix maxw, maxh and monitorids
+ calculation
+
+---
+ plugins/rdp/rdp_monitor.c | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/plugins/rdp/rdp_monitor.c b/plugins/rdp/rdp_monitor.c
+index fddeed776..384cdb496 100644
+--- a/plugins/rdp/rdp_monitor.c
++++ b/plugins/rdp/rdp_monitor.c
+@@ -81,6 +81,7 @@ void remmina_rdp_monitor_get (rfContext *rfi, gchar **monitorids,
guint32 *maxwi
+ gint count = 0;
+
+ static gchar buffer[256];
++ gint buffer_offset = 0;
+
+ GdkRectangle geometry = { 0, 0, 0, 0 };
+ GdkRectangle tempgeom = { 0, 0, 0, 0 };
+@@ -106,8 +107,6 @@ void remmina_rdp_monitor_get (rfContext *rfi, gchar **monitorids,
guint32 *maxwi
+ if (*monitorids)
+ has_custom_monitors = TRUE;
+
+- buffer[0] = '\0';
+-
+ rdpMonitor* base = (rdpMonitor *)freerdp_settings_get_pointer(settings,
FreeRDP_MonitorDefArray);
+ for (gint i = 0; i < n_monitors; ++i) {
+ rdpMonitor* current;
+@@ -144,6 +143,8 @@ void remmina_rdp_monitor_get (rfContext *rfi, gchar **monitorids,
guint32 *maxwi
+ * we must multiply by the scale factor */
+ scale = gdk_monitor_get_scale_factor (monitor);
+ REMMINA_PLUGIN_DEBUG("Monitor n %d scale: %d", index, scale);
++ geometry.x *= scale;
++ geometry.y *= scale;
+ geometry.width *= scale;
+ geometry.height *= scale;
+ REMMINA_PLUGIN_DEBUG("Monitor n %d width: %d", index, geometry.width);
+@@ -190,10 +191,10 @@ void remmina_rdp_monitor_get (rfContext *rfi, gchar **monitorids,
guint32 *maxwi
+ //current->y - freerdp_settings_get_uint32(settings, FreeRDP_MonitorLocalShiftY);
+ //REMMINA_PLUGIN_DEBUG("Monitor n %d calculated y: %d", index,
current->y);
+
+- if (buffer[0] == '\0')
+- g_sprintf (buffer, "%d", i);
++ if (buffer_offset == 0)
++ buffer_offset = g_sprintf(buffer + buffer_offset, "%d", i);
+ else
+- g_sprintf(buffer, "%s,%d", buffer, i);
++ buffer_offset = g_sprintf(buffer + buffer_offset, ",%d", i);
+ REMMINA_PLUGIN_DEBUG("Monitor IDs buffer: %s", buffer);
+ gdk_rectangle_union(&tempgeom, &geometry, &destgeom);
+ memcpy(&tempgeom, &destgeom, sizeof tempgeom);
+--
+GitLab
+
diff --git a/remmina.spec b/remmina.spec
index 8f4954b..ecd199c 100644
--- a/remmina.spec
+++ b/remmina.spec
@@ -2,7 +2,7 @@
Name: remmina
Version: 1.4.25
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Remote Desktop Client
License: GPLv2+ and MIT
URL:
https://remmina.org
@@ -21,12 +21,15 @@ ExcludeArch: aarch64
Source1: pluginBuild-CMakeLists.txt
# Patches.
-Patch0: 0001_vnc_close_all_close_git_55e2324a.patch
-Patch1: 0002_rdp_possible_segv_git_3620efda.patch
-Patch2: 0003_add_mutex_to_protect_rdp_git_b54a3e52.patch
-Patch3: 0004_cannot_disable_shared_folder_git_69819a26.patch
-Patch5: 0005_fix_dangling_pointer_git_partial_137a053c.patch
-Patch6: 0006_paste_as_keystrokes_fix_git_partial_eb3d59fb.patch
+Patch01: 0001_vnc_close_all_close_git_55e2324a.patch
+Patch02: 0002_rdp_possible_segv_git_3620efda.patch
+Patch03: 0003_add_mutex_to_protect_rdp_git_b54a3e52.patch
+Patch04: 0004_cannot_disable_shared_folder_git_69819a26.patch
+Patch05: 0005_fix_dangling_pointer_git_partial_137a053c.patch
+Patch06: 0006_paste_as_keystrokes_fix_git_partial_eb3d59fb.patch
+Patch07: 0007_add_mime_text_formats_for_rdp_clibpoard_58205163.patch
+Patch08: 0008_fix_unlock_crash_6ed20424.patch
+Patch09:
0009_remmina_rdp_monitor_get_fix_maxw_maxh_and_monitorids_calculation_0c77fe7e.patch
%if 0%{?fedora} || 0%{?rhel} >= 8
BuildRequires: cmake
@@ -332,6 +335,11 @@ fi
%{_mandir}/man1/remmina-gnome.1.*
%changelog
+* Tue Feb 28 2023 Phil Wyett <philip.wyett(a)kathenas.org> - 1.4.25-5
+- Add patch: 0007_add_mime_text_formats_for_rdp_clibpoard_58205163.patch
+- Add patch: 0008_fix_unlock_crash_6ed20424.patch
+- Add patch:
0009_remmina_rdp_monitor_get_fix_maxw_maxh_and_monitorids_calculation_0c77fe7e.patch
+
* Mon Jun 06 2022 Phil Wyett <philip.wyett(a)kathenas.org> - 1.4.25-4
- Add patch: 0006_paste_as_keystrokes_fix_git_partial_eb3d59fb.patch
https://src.fedoraproject.org/rpms/remmina/c/3cd327d6b68b4f5827625ae0f68d...