diff options
Diffstat (limited to 'gnu/packages/patches/vinagre-revert-2.patch')
-rw-r--r-- | gnu/packages/patches/vinagre-revert-2.patch | 448 |
1 files changed, 0 insertions, 448 deletions
diff --git a/gnu/packages/patches/vinagre-revert-2.patch b/gnu/packages/patches/vinagre-revert-2.patch deleted file mode 100644 index 686ee203e4..0000000000 --- a/gnu/packages/patches/vinagre-revert-2.patch +++ /dev/null @@ -1,448 +0,0 @@ -Patch taken from Debian: revert changes that prevent building against freerdp -version 1.1 branch. - -From bb1828b6b7eb29bb037bcc687cf10f916ddc7561 Mon Sep 17 00:00:00 2001 -From: Michael Biebl <biebl@debian.org> -Date: Thu, 22 Sep 2016 01:18:16 +0200 -Subject: [PATCH 2/2] Revert "Store credentials for RDP" - -This reverts commit 60dea279a24c7f0e398b89a0a60d45e80087ed1d. ---- - plugins/rdp/vinagre-rdp-connection.c | 22 +--- - plugins/rdp/vinagre-rdp-plugin.c | 29 +---- - plugins/rdp/vinagre-rdp-tab.c | 231 +++++++++++++++++------------------ - 3 files changed, 123 insertions(+), 159 deletions(-) - -diff --git a/plugins/rdp/vinagre-rdp-connection.c b/plugins/rdp/vinagre-rdp-connection.c -index f0ff02b..c5f6ed1 100644 ---- a/plugins/rdp/vinagre-rdp-connection.c -+++ b/plugins/rdp/vinagre-rdp-connection.c -@@ -127,25 +127,9 @@ rdp_parse_item (VinagreConnection *conn, xmlNode *root) - static void - rdp_parse_options_widget (VinagreConnection *conn, GtkWidget *widget) - { -- const gchar *text; -- GtkWidget *u_entry, *d_entry, *spin_button, *scaling_button; -- gboolean scaling; -- guint width, height; -- -- d_entry = g_object_get_data (G_OBJECT (widget), "domain_entry"); -- if (!d_entry) -- { -- g_warning ("Wrong widget passed to rdp_parse_options_widget()"); -- return; -- } -- -- text = gtk_entry_get_text (GTK_ENTRY (d_entry)); -- vinagre_cache_prefs_set_string ("rdp-connection", "domain", text); -- -- g_object_set (conn, -- "domain", text != NULL && *text != '\0' ? text : NULL, -- NULL); -- -+ GtkWidget *u_entry, *spin_button, *scaling_button; -+ gboolean scaling; -+ guint width, height; - - u_entry = g_object_get_data (G_OBJECT (widget), "username_entry"); - if (!u_entry) -diff --git a/plugins/rdp/vinagre-rdp-plugin.c b/plugins/rdp/vinagre-rdp-plugin.c -index 4751102..f41da37 100644 ---- a/plugins/rdp/vinagre-rdp-plugin.c -+++ b/plugins/rdp/vinagre-rdp-plugin.c -@@ -100,7 +100,7 @@ vinagre_rdp_plugin_init (VinagreRdpPlugin *plugin) - static GtkWidget * - impl_get_connect_widget (VinagreProtocol *plugin, VinagreConnection *conn) - { -- GtkWidget *grid, *label, *u_entry, *d_entry, *spin_button, *check; -+ GtkWidget *grid, *label, *u_entry, *spin_button, *check; - gchar *str; - gint width, height; - -@@ -146,29 +146,10 @@ impl_get_connect_widget (VinagreProtocol *plugin, VinagreConnection *conn) - g_free (str); - - -- label = gtk_label_new_with_mnemonic (_("_Domain:")); -- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); -- gtk_grid_attach (GTK_GRID (grid), label, 0, 3, 1, 1); -- gtk_widget_set_margin_left (label, 12); -- -- d_entry = gtk_entry_new (); -- /* Translators: This is the tooltip for the domain field in a RDP connection */ -- gtk_widget_set_tooltip_text (d_entry, _("Optional.")); -- g_object_set_data (G_OBJECT (grid), "domain_entry", d_entry); -- gtk_grid_attach (GTK_GRID (grid), d_entry, 1, 3, 1, 1); -- gtk_label_set_mnemonic_widget (GTK_LABEL (label), d_entry); -- str = g_strdup (VINAGRE_IS_CONNECTION (conn) ? -- vinagre_connection_get_domain (conn) : -- vinagre_cache_prefs_get_string ("rdp-connection", "domain", "")); -- gtk_entry_set_text (GTK_ENTRY (d_entry), str); -- gtk_entry_set_activates_default (GTK_ENTRY (d_entry), TRUE); -- g_free (str); -- -- - /* Host width */ - label = gtk_label_new_with_mnemonic (_("_Width:")); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); -- gtk_grid_attach (GTK_GRID (grid), label, 0, 4, 1, 1); -+ gtk_grid_attach (GTK_GRID (grid), label, 0, 3, 1, 1); - gtk_widget_set_margin_left (label, 12); - - spin_button = gtk_spin_button_new_with_range (MIN_SIZE, MAX_SIZE, 1); -@@ -176,7 +157,7 @@ impl_get_connect_widget (VinagreProtocol *plugin, VinagreConnection *conn) - gtk_widget_set_tooltip_text (spin_button, _("Set width of the remote desktop")); - gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin_button), DEFAULT_WIDTH); - g_object_set_data (G_OBJECT (grid), "width_spin_button", spin_button); -- gtk_grid_attach (GTK_GRID (grid), spin_button, 1, 4, 1, 1); -+ gtk_grid_attach (GTK_GRID (grid), spin_button, 1, 3, 1, 1); - gtk_label_set_mnemonic_widget (GTK_LABEL (label), spin_button); - width = VINAGRE_IS_CONNECTION (conn) ? - vinagre_connection_get_width (conn) : -@@ -188,7 +169,7 @@ impl_get_connect_widget (VinagreProtocol *plugin, VinagreConnection *conn) - /* Host height */ - label = gtk_label_new_with_mnemonic (_("_Height:")); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); -- gtk_grid_attach (GTK_GRID (grid), label, 0, 5, 1, 1); -+ gtk_grid_attach (GTK_GRID (grid), label, 0, 4, 1, 1); - gtk_widget_set_margin_left (label, 12); - - spin_button = gtk_spin_button_new_with_range (MIN_SIZE, MAX_SIZE, 1); -@@ -196,7 +177,7 @@ impl_get_connect_widget (VinagreProtocol *plugin, VinagreConnection *conn) - gtk_widget_set_tooltip_text (spin_button, _("Set height of the remote desktop")); - gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin_button), DEFAULT_HEIGHT); - g_object_set_data (G_OBJECT (grid), "height_spin_button", spin_button); -- gtk_grid_attach (GTK_GRID (grid), spin_button, 1, 5, 1, 1); -+ gtk_grid_attach (GTK_GRID (grid), spin_button, 1, 4, 1, 1); - gtk_label_set_mnemonic_widget (GTK_LABEL (label), spin_button); - height = VINAGRE_IS_CONNECTION (conn) ? - vinagre_connection_get_height (conn) : -diff --git a/plugins/rdp/vinagre-rdp-tab.c b/plugins/rdp/vinagre-rdp-tab.c -index 8572bc3..f3d9c08 100644 ---- a/plugins/rdp/vinagre-rdp-tab.c -+++ b/plugins/rdp/vinagre-rdp-tab.c -@@ -70,8 +70,6 @@ struct _VinagreRdpTabPrivate - gboolean scaling; - double scale; - double offset_x, offset_y; -- -- guint authentication_attempts; - }; - - G_DEFINE_TYPE (VinagreRdpTab, vinagre_rdp_tab, VINAGRE_TYPE_TAB) -@@ -611,7 +609,6 @@ frdp_post_connect (freerdp *instance) - 0, 0, - gdi->width, gdi->height); - -- vinagre_tab_save_credentials_in_keyring (VINAGRE_TAB (rdp_tab)); - vinagre_tab_add_recent_used (VINAGRE_TAB (rdp_tab)); - vinagre_tab_set_state (VINAGRE_TAB (rdp_tab), VINAGRE_TAB_STATE_CONNECTED); - -@@ -862,76 +859,114 @@ frdp_mouse_moved (GtkWidget *widget, - return TRUE; - } - -+static void -+entry_text_changed_cb (GtkEntry *entry, -+ GtkBuilder *builder) -+{ -+ const gchar *text; -+ GtkWidget *widget; -+ gsize username_length; -+ gsize password_length; -+ -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "username_entry")); -+ text = gtk_entry_get_text (GTK_ENTRY (widget)); -+ username_length = strlen (text); -+ -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "password_entry")); -+ text = gtk_entry_get_text (GTK_ENTRY (widget)); -+ password_length = strlen (text); -+ -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button")); -+ gtk_widget_set_sensitive (widget, password_length > 0 && username_length > 0); -+} -+ - static gboolean - frdp_authenticate (freerdp *instance, - char **username, - char **password, - char **domain) - { -- VinagreTab *tab = VINAGRE_TAB (((frdpContext *) instance->context)->rdp_tab); -- VinagreRdpTab *rdp_tab = VINAGRE_RDP_TAB (tab); -- VinagreRdpTabPrivate *priv = rdp_tab->priv; -- VinagreConnection *conn = vinagre_tab_get_conn (tab); -- GtkWindow *window = GTK_WINDOW (vinagre_tab_get_window (tab)); -- gboolean save_in_keyring = FALSE; -- gchar *keyring_domain = NULL; -- gchar *keyring_username = NULL; -- gchar *keyring_password = NULL; -+ VinagreTab *tab = VINAGRE_TAB (((frdpContext *) instance->context)->rdp_tab); -+ VinagreConnection *conn = vinagre_tab_get_conn (tab); -+ const gchar *user_name; -+ const gchar *domain_name; -+ GtkBuilder *builder; -+ GtkWidget *dialog; -+ GtkWidget *widget; -+ GtkWidget *username_entry; -+ GtkWidget *password_entry; -+ GtkWidget *domain_entry; -+ gboolean save_credential_check_visible; -+ gboolean domain_label_visible; -+ gboolean domain_entry_visible; -+ gint response; - -- priv->authentication_attempts++; -+ builder = vinagre_utils_get_builder (); - -- if (priv->authentication_attempts == 1) -- { -- vinagre_tab_find_credentials_in_keyring (tab, &keyring_domain, &keyring_username, &keyring_password); -- if (keyring_password != NULL && keyring_username != NULL) -- { -- *domain = keyring_domain; -- *username = keyring_username; -- *password = keyring_password; -+ dialog = GTK_WIDGET (gtk_builder_get_object (builder, "auth_required_dialog")); -+ gtk_window_set_modal ((GtkWindow *) dialog, TRUE); -+ gtk_window_set_transient_for ((GtkWindow *) dialog, GTK_WINDOW (vinagre_tab_get_window (tab))); - -- return TRUE; -- } -- else -- { -- g_free (keyring_domain); -- g_free (keyring_username); -- g_free (keyring_password); -- } -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "host_label")); -+ gtk_label_set_text (GTK_LABEL (widget), vinagre_connection_get_host (conn)); -+ -+ username_entry = GTK_WIDGET (gtk_builder_get_object (builder, "username_entry")); -+ password_entry = GTK_WIDGET (gtk_builder_get_object (builder, "password_entry")); -+ domain_entry = GTK_WIDGET (gtk_builder_get_object (builder, "domain_entry")); -+ -+ if (*username != NULL && *username[0] != '\0') -+ { -+ gtk_entry_set_text (GTK_ENTRY (username_entry), *username); -+ gtk_widget_grab_focus (password_entry); - } - -- if (vinagre_utils_request_credential (window, -- "RDP", -- vinagre_connection_get_host (conn), -- vinagre_connection_get_domain (conn), -- vinagre_connection_get_username (conn), -- TRUE, -- TRUE, -- TRUE, -- 20, -- domain, -- username, -- password, -- &save_in_keyring)) -+ g_signal_connect (username_entry, "changed", G_CALLBACK (entry_text_changed_cb), builder); -+ g_signal_connect (password_entry, "changed", G_CALLBACK (entry_text_changed_cb), builder); -+ -+ -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "save_credential_check")); -+ save_credential_check_visible = gtk_widget_get_visible (widget); -+ gtk_widget_set_visible (widget, FALSE); -+ -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "domain_label")); -+ domain_label_visible = gtk_widget_get_visible (widget); -+ gtk_widget_set_visible (widget, TRUE); -+ -+ domain_entry_visible = gtk_widget_get_visible (domain_entry); -+ gtk_widget_set_visible (domain_entry, TRUE); -+ -+ -+ response = gtk_dialog_run (GTK_DIALOG (dialog)); -+ gtk_widget_hide (dialog); -+ -+ -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "save_credential_check")); -+ gtk_widget_set_visible (widget, save_credential_check_visible); -+ -+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "domain_label")); -+ gtk_widget_set_visible (widget, domain_label_visible); -+ -+ gtk_widget_set_visible (domain_entry, domain_entry_visible); -+ -+ -+ if (response == GTK_RESPONSE_OK) - { -- if (*domain && **domain != '\0') -- vinagre_connection_set_domain (conn, *domain); -+ domain_name = gtk_entry_get_text (GTK_ENTRY (domain_entry)); -+ if (g_strcmp0 (*domain, domain_name) != 0) -+ *domain = g_strdup (domain_name); - -- if (*username && **username != '\0') -- vinagre_connection_set_username (conn, *username); -+ user_name = gtk_entry_get_text (GTK_ENTRY (username_entry)); -+ if (g_strcmp0 (*username, user_name) != 0) -+ *username = g_strdup (user_name); - -- if (*password && **password != '\0') -- vinagre_connection_set_password (conn, *password); -+ *password = g_strdup (gtk_entry_get_text (GTK_ENTRY (password_entry))); - -- vinagre_tab_set_save_credentials (tab, save_in_keyring); -+ return TRUE; - } - else - { -- vinagre_tab_remove_from_notebook (tab); -- - return FALSE; - } -- -- return TRUE; - } - - static BOOL -@@ -1028,25 +1063,30 @@ frdp_changed_certificate_verify (freerdp *instance, - #endif - - static void --init_freerdp (VinagreRdpTab *rdp_tab) -+open_freerdp (VinagreRdpTab *rdp_tab) - { - VinagreRdpTabPrivate *priv = rdp_tab->priv; -- rdpSettings *settings; - VinagreTab *tab = VINAGRE_TAB (rdp_tab); - VinagreConnection *conn = vinagre_tab_get_conn (tab); -- gboolean scaling; -- gchar *hostname; -- gint width, height; -- gint port; -+ rdpSettings *settings; -+ GtkWindow *window = GTK_WINDOW (vinagre_tab_get_window (tab)); -+ gboolean success = TRUE; -+ gboolean fullscreen, scaling; -+ gchar *hostname, *username; -+ gint port, width, height; - - g_object_get (conn, - "port", &port, - "host", &hostname, - "width", &width, - "height", &height, -+ "fullscreen", &fullscreen, - "scaling", &scaling, -+ "username", &username, - NULL); - -+ priv->events = g_queue_new (); -+ - /* Setup FreeRDP session */ - priv->freerdp_session = freerdp_new (); - priv->freerdp_session->PreConnect = frdp_pre_connect; -@@ -1111,6 +1151,17 @@ init_freerdp (VinagreRdpTab *rdp_tab) - settings->port = port; - #endif - -+ /* Set username */ -+ username = g_strstrip (username); -+ if (username != NULL && username[0] != '\0') -+ { -+#if HAVE_FREERDP_1_1 -+ settings->Username = g_strdup (username); -+#else -+ settings->username = g_strdup (username); -+#endif -+ } -+ - /* Set keyboard layout */ - #if HAVE_FREERDP_1_1 - freerdp_keyboard_init (KBD_US); -@@ -1120,24 +1171,6 @@ init_freerdp (VinagreRdpTab *rdp_tab) - - /* Allow font smoothing by default */ - settings->AllowFontSmoothing = TRUE; --} -- --static void --init_display (VinagreRdpTab *rdp_tab) --{ -- VinagreRdpTabPrivate *priv = rdp_tab->priv; -- VinagreTab *tab = VINAGRE_TAB (rdp_tab); -- VinagreConnection *conn = vinagre_tab_get_conn (tab); -- GtkWindow *window = GTK_WINDOW (vinagre_tab_get_window (tab)); -- gboolean fullscreen, scaling; -- gint width, height; -- -- g_object_get (conn, -- "width", &width, -- "height", &height, -- "fullscreen", &fullscreen, -- "scaling", &scaling, -- NULL); - - /* Setup display for FreeRDP session */ - priv->display = gtk_drawing_area_new (); -@@ -1186,54 +1219,20 @@ init_display (VinagreRdpTab *rdp_tab) - priv->key_release_handler_id = g_signal_connect (GTK_WIDGET (tab), "key-release-event", - G_CALLBACK (frdp_key_pressed), - rdp_tab); --} -- --static void --open_freerdp (VinagreRdpTab *rdp_tab) --{ -- VinagreRdpTabPrivate *priv = rdp_tab->priv; -- VinagreTab *tab = VINAGRE_TAB (rdp_tab); -- GtkWindow *window = GTK_WINDOW (vinagre_tab_get_window (tab)); -- gboolean success = TRUE; -- gboolean authentication_error = FALSE; -- gboolean cancelled = FALSE; -- -- priv->events = g_queue_new (); -- -- init_freerdp (rdp_tab); -- init_display (rdp_tab); -- -- do -- { -- authentication_error = FALSE; - -- /* Run FreeRDP session */ -- success = freerdp_connect (priv->freerdp_session); -- if (!success) -- { -- authentication_error = freerdp_get_last_error (priv->freerdp_session->context) == 0x20009 || -- freerdp_get_last_error (priv->freerdp_session->context) == 0x2000c; -- -- cancelled = freerdp_get_last_error (priv->freerdp_session->context) == 0x2000b; -- -- freerdp_free (priv->freerdp_session); -- init_freerdp (rdp_tab); -- } -- } -- while (!success && authentication_error); -+ /* Run FreeRDP session */ -+ success = freerdp_connect (priv->freerdp_session); - - if (!success) - { - gtk_window_unfullscreen (window); -- if (!cancelled) -- vinagre_utils_show_error_dialog (_("Error connecting to host."), -- NULL, -- window); -+ vinagre_utils_show_error_dialog (_("Error connecting to host."), -+ NULL, -+ window); - g_idle_add ((GSourceFunc) idle_close, rdp_tab); - } - else - { -- priv->authentication_attempts = 0; - priv->update_id = g_idle_add ((GSourceFunc) update, rdp_tab); - } - } --- -2.9.3 - |