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

Bug#823752: jessie-pu: package xarchiver/1:0.5.4-1



Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian.org@packages.debian.org
Usertags: pu

Hello,

I would like to update xarchiver in Jessie because of bug

https://bugs.debian.org/822115

The attempt to cancel the archive extraction with Xarchiver's Thunar
plugin currently crashes the application and sometimes even the X
session is killed which may cause data loss. I have applied a patch
in Sid/Testing and tested the same one in Jessie. It works for me.

Please find attached the debdiff.

Regards,

Markus
diff -Nru xarchiver-0.5.4/debian/changelog xarchiver-0.5.4/debian/changelog
--- xarchiver-0.5.4/debian/changelog	2014-09-29 16:06:53.000000000 +0200
+++ xarchiver-0.5.4/debian/changelog	2016-05-08 15:41:37.000000000 +0200
@@ -1,3 +1,12 @@
+xarchiver (1:0.5.4-1+deb8u1) jessie; urgency=medium
+
+  * Add cancel-extraction-crash.patch.
+    When using the "extract here" feature of Xarchiver's Thunar plugin, the
+    attempt to cancel the extraction could crash the application or even the
+    whole desktop session. (Closes: #802019)
+
+ -- Markus Koschany <apo@debian.org>  Sun, 08 May 2016 15:40:11 +0200
+
 xarchiver (1:0.5.4-1) unstable; urgency=medium
 
   * Imported Upstream version 0.5.4.
diff -Nru xarchiver-0.5.4/debian/patches/cancel-extraction-crash.patch xarchiver-0.5.4/debian/patches/cancel-extraction-crash.patch
--- xarchiver-0.5.4/debian/patches/cancel-extraction-crash.patch	1970-01-01 01:00:00.000000000 +0100
+++ xarchiver-0.5.4/debian/patches/cancel-extraction-crash.patch	2016-05-08 15:41:37.000000000 +0200
@@ -0,0 +1,62 @@
+From: Markus Koschany <apo@debian.org>
+Date: Sun, 24 Apr 2016 19:46:41 +0200
+Subject: cancel extraction crash
+
+Fix crash when cancelling the progress bar of Xarchiver's Thunar plugin.
+This patch was taken from Xarchiver's Github fork. The original development has
+stopped at sourceforge.net.
+
+Origin: https://github.com/ib/xarchiver/commit/cfa1d536312abb8d81f9cd74c15cf21038f03a8c
+Forwarded: no
+---
+ src/interface.c | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/src/interface.c b/src/interface.c
+index 79ffd36..b9aa4f9 100644
+--- a/src/interface.c
++++ b/src/interface.c
+@@ -47,8 +47,8 @@ static const GtkTargetEntry drop_targets[] =
+ 
+ extern gboolean unrar,batch_mode;
+ 
+-static gboolean xa_progress_dialog_delete_event (GtkWidget *caller,GdkEvent *event,GPid pid);
+-static void xa_progress_dialog_stop_action (GtkWidget *widget,GPid pid);
++static gboolean xa_progress_dialog_delete_event (GtkWidget *caller,GdkEvent *event,GPid *pid);
++static void xa_progress_dialog_stop_action (GtkWidget *widget,GPid *pid);
+ 
+ void xa_create_main_window (GtkWidget *xa_main_window,gboolean show_location,gboolean show_output_menu_item,gboolean show_sidebar)
+ {
+@@ -1577,8 +1577,8 @@ Progress_bar_data *xa_create_progress_bar(gboolean flag,XArchive *archive)
+ 		cancel_button = gtk_button_new_from_stock ("gtk-cancel");
+ 		gtk_box_pack_end (GTK_BOX (action_area),cancel_button,TRUE,TRUE,12);
+ 
+-		g_signal_connect (G_OBJECT (cancel_button),		 "clicked",		G_CALLBACK (xa_progress_dialog_stop_action), GINT_TO_POINTER (archive->child_pid));
+-		g_signal_connect (G_OBJECT (pb->progress_window),"delete_event",G_CALLBACK (xa_progress_dialog_delete_event),GINT_TO_POINTER (archive->child_pid));
++		g_signal_connect (G_OBJECT (cancel_button),		 "clicked",		G_CALLBACK (xa_progress_dialog_stop_action), &archive->child_pid);
++		g_signal_connect (G_OBJECT (pb->progress_window),"delete_event",G_CALLBACK (xa_progress_dialog_delete_event),&archive->child_pid);
+ 	}
+ 	gtk_widget_show_all(pb->progress_window);
+ 	return pb;
+@@ -1616,15 +1616,17 @@ void xa_icon_theme_changed (GtkIconTheme *icon_theme,gpointer data)
+  	 * time as the filenames currently displayed. What of the other tabs then?
+ }*/
+ 
+-static gboolean xa_progress_dialog_delete_event (GtkWidget *caller,GdkEvent *event,GPid pid)
++static gboolean xa_progress_dialog_delete_event (GtkWidget *caller,GdkEvent *event,GPid *pid)
+ {
+-	kill (pid,SIGINT);
++	if(pid != NULL && *pid != 0)
++		kill (*pid,SIGINT);
+ 	return TRUE;
+ }
+ 
+-static void xa_progress_dialog_stop_action (GtkWidget *widget,GPid pid)
++static void xa_progress_dialog_stop_action (GtkWidget *widget,GPid *pid)
+ {
+-	kill (pid,SIGINT);
++	if(pid != NULL && *pid != 0)
++		kill (*pid,SIGINT);
+ }
+ 
+ gboolean xa_pulse_progress_bar_window (Progress_bar_data *pb)
diff -Nru xarchiver-0.5.4/debian/patches/series xarchiver-0.5.4/debian/patches/series
--- xarchiver-0.5.4/debian/patches/series	2014-09-29 16:06:53.000000000 +0200
+++ xarchiver-0.5.4/debian/patches/series	2016-05-08 15:41:37.000000000 +0200
@@ -1,2 +1,3 @@
 desktop-file.patch
 encrypted-7z-archives.patch
+cancel-extraction-crash.patch

Reply to: