[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1059609: marked as done (bookworm-pu: package engrampa/1.26.0-1+deb12u1)



Your message dated Sat, 10 Feb 2024 13:11:20 +0000
with message-id <E1rYn8a-002ya2-E8@coccia.debian.org>
and subject line Released with 12.5
has caused the Debian Bug report #1059609,
regarding bookworm-pu: package engrampa/1.26.0-1+deb12u1
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 owner@bugs.debian.org
immediately.)


-- 
1059609: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1059609
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: engrampa@packages.debian.org
Control: affects -1 + src:engrampa

[ Reason ]
While upload a new upstream version of engrampa, a bookworm-pu has been
prepared that fixes various memleaks and resolves a bug in the archive
"save as" action.

[ Impact ]
Engrampa will still have memleaks + the save as dialog will still be
broken.

[ Tests ]
Manually. A new dialog box has been added by upstream. This will
only be presented to the users in English (as the translations
have not been cherry-picked into this package).

[ Risks ]
Regressions might occur, affecting engrampa and in general MATE desktop
users.

[ 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 (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]

+  * debian/patches:
+    + Cherry-pick various memleak fixes from upstream:
+      0001_dlg-package-installer-fix-memory-leak.patch,
+      0002_fr-window-fix-memory-leak.patch,
+      0003_file-data-fix-memory-leak.patch, and
+      0005_fr-process-fix-memory-leak.patch.
+    + Add 0004_Fix-archive-file-save-as-function.patch. Fix archive 'save as'
+      function. (Closes: #969761).

[ Other info ]
None.
diff -Nru engrampa-1.26.0/debian/changelog engrampa-1.26.0/debian/changelog
--- engrampa-1.26.0/debian/changelog	2021-12-12 16:00:52.000000000 +0100
+++ engrampa-1.26.0/debian/changelog	2023-12-29 08:13:22.000000000 +0100
@@ -1,3 +1,16 @@
+engrampa (1.26.0-1+deb12u1) bookworm; urgency=medium
+
+  * debian/patches:
+    + Cherry-pick various memleak fixes from upstream:
+      0001_dlg-package-installer-fix-memory-leak.patch,
+      0002_fr-window-fix-memory-leak.patch,
+      0003_file-data-fix-memory-leak.patch, and
+      0005_fr-process-fix-memory-leak.patch.
+    + Add 0004_Fix-archive-file-save-as-function.patch. Fix archive 'save as'
+      function. (Closes: #969761).
+
+ -- Mike Gabriel <sunweaver@debian.org>  Fri, 29 Dec 2023 08:13:22 +0100
+
 engrampa (1.26.0-1) unstable; urgency=medium
 
   [ Martin Wimpress ]
diff -Nru engrampa-1.26.0/debian/patches/0001_dlg-package-installer-fix-memory-leak.patch engrampa-1.26.0/debian/patches/0001_dlg-package-installer-fix-memory-leak.patch
--- engrampa-1.26.0/debian/patches/0001_dlg-package-installer-fix-memory-leak.patch	1970-01-01 01:00:00.000000000 +0100
+++ engrampa-1.26.0/debian/patches/0001_dlg-package-installer-fix-memory-leak.patch	2023-12-29 08:03:51.000000000 +0100
@@ -0,0 +1,38 @@
+From da64dd31f77a8082650d0904da19a21dfc400ae1 Mon Sep 17 00:00:00 2001
+From: rbuj <robert.buj@gmail.com>
+Date: Thu, 21 Oct 2021 20:12:17 +0200
+Subject: [PATCH 1/5] dlg-package-installer: fix memory leak
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/dlg-package-installer.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/dlg-package-installer.c b/src/dlg-package-installer.c
+index 0b18441..3cda168 100644
+--- a/src/dlg-package-installer.c
++++ b/src/dlg-package-installer.c
+@@ -305,9 +305,11 @@ dlg_package_installer (FrWindow  *window,
+ 	{
+ 		char      *secondary_text;
+ 		GtkWidget *dialog;
++		char      *description;
+ 
++		description = g_content_type_get_description (idata->archive->content_type);
+ 		secondary_text = g_strdup_printf (_("There is no command installed for %s files.\nDo you want to search for a command to open this file?"),
+-						  g_content_type_get_description (idata->archive->content_type));
++		                                  description);
+ 		dialog = _gtk_message_dialog_new (GTK_WINDOW (idata->window),
+ 						  GTK_DIALOG_MODAL,
+ 						  "dialog-error",
+@@ -328,6 +330,7 @@ dlg_package_installer (FrWindow  *window,
+ 		g_signal_connect (dialog, "response", G_CALLBACK (confirm_search_dialog_response_cb), idata);
+ 		gtk_widget_show (dialog);
+ 
++		g_free (description);
+ 		g_free (secondary_text);
+ 	}
+ 
+-- 
+2.39.2
+
diff -Nru engrampa-1.26.0/debian/patches/0002_fr-window-fix-memory-leak.patch engrampa-1.26.0/debian/patches/0002_fr-window-fix-memory-leak.patch
--- engrampa-1.26.0/debian/patches/0002_fr-window-fix-memory-leak.patch	1970-01-01 01:00:00.000000000 +0100
+++ engrampa-1.26.0/debian/patches/0002_fr-window-fix-memory-leak.patch	2023-12-29 08:03:51.000000000 +0100
@@ -0,0 +1,81 @@
+From c0fadd464f227e7ebbfefd3fa54e578f1bb9998b Mon Sep 17 00:00:00 2001
+From: rbuj <robert.buj@gmail.com>
+Date: Thu, 21 Oct 2021 21:34:05 +0200
+Subject: [PATCH 2/5] fr-window: fix memory leak
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/fr-window.c | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/src/fr-window.c b/src/fr-window.c
+index 9a30f5e..b5b5cff 100644
+--- a/src/fr-window.c
++++ b/src/fr-window.c
+@@ -560,6 +560,7 @@ fr_window_free_private_data (FrWindow *window)
+ 	g_free (window->priv->add_default_dir);
+ 	g_free (window->priv->extract_default_dir);
+ 	g_free (window->priv->archive_uri);
++	g_free (window->priv->working_archive);
+ 
+ 	g_free (window->priv->password);
+ 	g_free (window->priv->password_for_paste);
+@@ -981,7 +982,7 @@ sort_by_type (gconstpointer  ptr1,
+ 	FileData    *fdata1 = *((FileData **) ptr1);
+ 	FileData    *fdata2 = *((FileData **) ptr2);
+ 	int          result;
+-	const char  *desc1, *desc2;
++	char        *desc1, *desc2;
+ 
+ 	if (file_data_is_dir (fdata1) != file_data_is_dir (fdata2)) {
+ 		if (file_data_is_dir (fdata1))
+@@ -996,6 +997,9 @@ sort_by_type (gconstpointer  ptr1,
+ 	desc2 = g_content_type_get_description (fdata2->content_type);
+ 
+ 	result = strcasecmp (desc1, desc2);
++	g_free (desc1);
++	g_free (desc2);
++
+ 	if (result == 0)
+ 		return sort_by_name (ptr1, ptr2);
+ 	else
+@@ -1560,7 +1564,7 @@ fr_window_populate_file_list (FrWindow  *window,
+ 			char       *utf8_path;
+ 			char       *s_size;
+ 			char       *s_time;
+-			const char *desc;
++			char       *desc;
+ 
+ 			utf8_path = g_filename_display_name (fdata->path);
+ 
+@@ -1583,6 +1587,7 @@ fr_window_populate_file_list (FrWindow  *window,
+ 			g_free (utf8_path);
+ 			g_free (s_size);
+ 			g_free (s_time);
++			g_free (desc);
+ 		}
+ 		g_free (utf8_name);
+ 		if (icon != NULL)
+@@ -2414,9 +2419,10 @@ fr_window_working_archive_cb (FrCommand  *command,
+ 			      FrWindow   *window)
+ {
+ 	g_free (window->priv->working_archive);
+-	window->priv->working_archive = NULL;
+ 	if (archive_filename != NULL)
+ 		window->priv->working_archive = g_strdup (archive_filename);
++	else
++		window->priv->working_archive = NULL;
+ 	progress_dialog_update_action_description (window);
+ 
+ 	return TRUE;
+@@ -2875,6 +2881,7 @@ fr_window_add_to_recent_list (FrWindow *window,
+ 		recent_data->app_exec = "engrampa";
+ 		gtk_recent_manager_add_full (gtk_recent_manager_get_default (), uri, recent_data);
+ 
++		g_free (recent_data->mime_type);
+ 		g_free (recent_data);
+ 	}
+ 	else
+-- 
+2.39.2
+
diff -Nru engrampa-1.26.0/debian/patches/0003_file-data-fix-memory-leak.patch engrampa-1.26.0/debian/patches/0003_file-data-fix-memory-leak.patch
--- engrampa-1.26.0/debian/patches/0003_file-data-fix-memory-leak.patch	1970-01-01 01:00:00.000000000 +0100
+++ engrampa-1.26.0/debian/patches/0003_file-data-fix-memory-leak.patch	2023-12-29 08:03:51.000000000 +0100
@@ -0,0 +1,55 @@
+From 073c06814e0dcbb7bbdcecb867fc8c15d3fdddfa Mon Sep 17 00:00:00 2001
+From: rbuj <robert.buj@gmail.com>
+Date: Fri, 22 Oct 2021 10:30:10 +0200
+Subject: [PATCH 3/5] file-data: fix memory leak
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/file-data.c      | 11 ++++++++---
+ src/fr-command-tar.c |  7 +++++--
+ 2 files changed, 13 insertions(+), 5 deletions(-)
+
+diff --git a/src/file-data.c b/src/file-data.c
+index 911a5e9..cc0832f 100644
+--- a/src/file-data.c
++++ b/src/file-data.c
+@@ -103,10 +103,15 @@ file_data_get_type (void)
+ void
+ file_data_update_content_type (FileData *fdata)
+ {
+-	if (fdata->dir)
++	if (fdata->dir) {
+ 		fdata->content_type = MIME_TYPE_DIRECTORY;
+-	else
+-		fdata->content_type = get_static_string (g_content_type_guess (fdata->full_path, NULL, 0, NULL));
++	} else {
++		char *content_type;
++
++		content_type = g_content_type_guess (fdata->full_path, NULL, 0, NULL);
++		fdata->content_type = get_static_string (content_type);
++		g_free (content_type);
++	}
+ }
+ 
+ 
+diff --git a/src/fr-command-tar.c b/src/fr-command-tar.c
+index 50aae1a..6f7943f 100644
+--- a/src/fr-command-tar.c
++++ b/src/fr-command-tar.c
+@@ -140,8 +140,11 @@ process_line (char     *line,
+ 	}
+ 	g_free (name);
+ 	name = g_filename_from_utf8 (fdata->original_path, -1, NULL, NULL, NULL);
+-	if (name)
+-		fdata->original_path = name;
++	if (name) {
++		fdata->original_path = g_strdup (name);
++		fdata->free_original_path = TRUE;
++	}
++	g_free (name);
+ 
+ 	if (fields[1] != NULL)
+ 		fdata->link = g_strdup (fields[1]);
+-- 
+2.39.2
+
diff -Nru engrampa-1.26.0/debian/patches/0004_Fix-archive-file-save-as-function.patch engrampa-1.26.0/debian/patches/0004_Fix-archive-file-save-as-function.patch
--- engrampa-1.26.0/debian/patches/0004_Fix-archive-file-save-as-function.patch	1970-01-01 01:00:00.000000000 +0100
+++ engrampa-1.26.0/debian/patches/0004_Fix-archive-file-save-as-function.patch	2023-12-29 08:03:51.000000000 +0100
@@ -0,0 +1,107 @@
+From a27a7a6de2d47f6d3ca558f6f980b03376ae5044 Mon Sep 17 00:00:00 2001
+From: zhuyaliang <15132211195@163.com>
+Date: Wed, 15 Mar 2023 10:57:07 +0800
+Subject: [PATCH 4/5] Fix archive file save as function
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/actions.c   | 20 ++++++++++++++++++--
+ src/dlg-new.c   |  2 ++
+ src/dlg-new.h   |  1 +
+ src/fr-window.c |  2 +-
+ 4 files changed, 22 insertions(+), 3 deletions(-)
+
+diff --git a/src/actions.c b/src/actions.c
+index b55cab1..08bf4e0 100644
+--- a/src/actions.c
++++ b/src/actions.c
+@@ -203,6 +203,22 @@ get_archive_filename_from_selector (DlgNewData *data)
+     }
+     g_object_unref (info);
+     g_object_unref (dir);
++    if ((data->original_file != NULL) && (g_file_equal (file, data->original_file))) {
++        GtkWidget *dialog;
++        dialog = _gtk_error_dialog_new (GTK_WINDOW (data->dialog),
++                        GTK_DIALOG_MODAL,
++                        NULL,
++                        _("Could not create the archive"),
++                        "%s",
++                        _("New name is the same as old one, please type other name."));
++        gtk_dialog_run (GTK_DIALOG (dialog));
++
++        gtk_widget_destroy (GTK_WIDGET (dialog));
++        g_object_unref (info);
++        g_object_unref (file);
++
++        return NULL;
++    }
+ 
+     /* if the user did not specify a valid extension use the filetype combobox current type
+      * or tar.gz if automatic is selected. */
+@@ -465,11 +481,11 @@ activate_action_save_as (GtkAction *action,
+ {
+     FrWindow   *window = callback_data;
+     DlgNewData *data;
++    GFile      *file = NULL;
+     char       *archive_name = NULL;
+ 
+     if (fr_window_get_archive_uri (window)) {
+         const char *uri;
+-        GFile      *file;
+         GFileInfo  *info;
+         GError     *err = NULL;
+ 
+@@ -487,10 +503,10 @@ activate_action_save_as (GtkAction *action,
+             archive_name = g_strdup (g_file_info_get_display_name (info));
+ 
+         g_object_unref (info);
+-        g_object_unref (file);
+     }
+ 
+     data = dlg_save_as (window, archive_name);
++    data->original_file = file;
+     g_signal_connect (G_OBJECT (data->dialog),
+               "response",
+               G_CALLBACK (save_file_response_cb),
+diff --git a/src/dlg-new.c b/src/dlg-new.c
+index 8b78561..2214574 100644
+--- a/src/dlg-new.c
++++ b/src/dlg-new.c
+@@ -42,6 +42,8 @@ static void
+ destroy_cb (GtkWidget  *widget,
+ 	    DlgNewData *data)
+ {
++	if (data->original_file != NULL)
++		g_object_unref (data->original_file);
+ 	g_free (data);
+ }
+ 
+diff --git a/src/dlg-new.h b/src/dlg-new.h
+index f4e0424..92f9194 100644
+--- a/src/dlg-new.h
++++ b/src/dlg-new.h
+@@ -36,6 +36,7 @@ typedef struct {
+ 	gboolean    can_create_volumes;
+ 	GtkBuilder *builder;
+ 
++	GFile      *original_file;
+ 	GtkWidget  *dialog;
+ 	/*GtkWidget  *n_archive_type_combo_box;*/
+ 	GtkWidget  *n_other_options_expander;
+diff --git a/src/fr-window.c b/src/fr-window.c
+index b5b5cff..e098f54 100644
+--- a/src/fr-window.c
++++ b/src/fr-window.c
+@@ -6363,8 +6363,8 @@ fr_window_archive_save_as (FrWindow   *window,
+ 				     NULL,
+ 				     window->priv->convert_data.temp_dir,
+ 				     NULL,
+-				     TRUE,
+ 				     FALSE,
++				     TRUE,
+ 				     FALSE,
+ 				     window->priv->password);
+ 	fr_process_start (window->archive->process);
+-- 
+2.39.2
+
diff -Nru engrampa-1.26.0/debian/patches/0005_fr-process-fix-memory-leak.patch engrampa-1.26.0/debian/patches/0005_fr-process-fix-memory-leak.patch
--- engrampa-1.26.0/debian/patches/0005_fr-process-fix-memory-leak.patch	1970-01-01 01:00:00.000000000 +0100
+++ engrampa-1.26.0/debian/patches/0005_fr-process-fix-memory-leak.patch	2023-12-29 08:03:51.000000000 +0100
@@ -0,0 +1,92 @@
+From a74093d29170f1ce62038c43a1ba7449fb6030be Mon Sep 17 00:00:00 2001
+From: rbuj <robert.buj@gmail.com>
+Date: Sun, 30 Jan 2022 11:59:09 +0100
+Subject: [PATCH 5/5] fr-process: fix memory leak
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/fr-process.c | 35 +++++++++--------------------------
+ 1 file changed, 9 insertions(+), 26 deletions(-)
+
+diff --git a/src/fr-process.c b/src/fr-process.c
+index 892aaae..fa361e7 100644
+--- a/src/fr-process.c
++++ b/src/fr-process.c
+@@ -88,22 +88,16 @@ fr_command_info_new (void)
+ 
+ 
+ static void
+-fr_command_info_free (FrCommandInfo *info)
++fr_command_info_free (gpointer data)
+ {
++	FrCommandInfo *info = data;
++
+ 	if (info == NULL)
+ 		return;
+ 
+-	if (info->args != NULL) {
+-		g_list_free_full (info->args, g_free);
+-		info->args = NULL;
+-	}
+-
+-	if (info->dir != NULL) {
+-		g_free (info->dir);
+-		info->dir = NULL;
+-	}
+-
+-	g_free (info);
++	g_list_free_full (info->args, g_free);
++	g_free (info->dir);
++	g_clear_pointer (&info, g_free);
+ }
+ 
+ 
+@@ -304,7 +298,7 @@ fr_process_init (FrProcess *process)
+ 
+ 	process->term_on_stop = TRUE;
+ 
+-	process->priv->comm = g_ptr_array_new ();
++	process->priv->comm = g_ptr_array_new_with_free_func (fr_command_info_free);
+ 	process->priv->n_comm = -1;
+ 	process->priv->current_comm = -1;
+ 
+@@ -347,9 +341,8 @@ fr_process_finalize (GObject *object)
+ 	process = FR_PROCESS (object);
+ 
+ 	fr_process_stop_priv (process, FALSE);
+-	fr_process_clear (process);
+ 
+-	g_ptr_array_free (process->priv->comm, FALSE);
++	g_ptr_array_free (process->priv->comm, TRUE);
+ 
+ 	fr_channel_data_free (&process->out);
+ 	fr_channel_data_free (&process->err);
+@@ -397,9 +390,7 @@ fr_process_begin_command_at (FrProcess  *process,
+ 	process->priv->current_comm = index;
+ 
+ 	old_c_info = g_ptr_array_index (process->priv->comm, index);
+-
+-	if (old_c_info != NULL)
+-		fr_command_info_free (old_c_info);
++	fr_command_info_free (old_c_info);
+ 
+ 	info = fr_command_info_new ();
+ 	info->args = g_list_prepend (NULL, g_strdup (arg));
+@@ -592,14 +583,6 @@ fr_process_clear (FrProcess *process)
+ 
+ 	g_return_if_fail (process != NULL);
+ 
+-	for (i = 0; i <= process->priv->n_comm; i++) {
+-		FrCommandInfo *info;
+-
+-		info = g_ptr_array_index (process->priv->comm, i);
+-		fr_command_info_free (info);
+-		g_ptr_array_index (process->priv->comm, i) = NULL;
+-	}
+-
+ 	for (i = 0; i <= process->priv->n_comm; i++)
+ 		g_ptr_array_remove_index_fast (process->priv->comm, 0);
+ 
+-- 
+2.39.2
+
diff -Nru engrampa-1.26.0/debian/patches/series engrampa-1.26.0/debian/patches/series
--- engrampa-1.26.0/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ engrampa-1.26.0/debian/patches/series	2023-12-29 08:12:05.000000000 +0100
@@ -0,0 +1,5 @@
+0001_dlg-package-installer-fix-memory-leak.patch
+0002_fr-window-fix-memory-leak.patch
+0003_file-data-fix-memory-leak.patch
+0004_Fix-archive-file-save-as-function.patch
+0005_fr-process-fix-memory-leak.patch

--- End Message ---
--- Begin Message ---
Version: 12.5

The upload requested in this bug has been released as part of 12.5.

--- End Message ---

Reply to: