Followup-For: Bug #593607
Control: reassign -1 libfm 0.1.17-2
Control: affects -1 + pcmanfm
Control: tags -1 + fixed

On my computer, copying a huge directory to a small loop device...
 - triggers the bug with libfm-0.1.17-2
 - does not anymore with the attached patch
So Ulrik is right.
I consider his proposal as the best solution for wheezy.
May I NMU to unstable?
diff -Nru libfm-0.1.17/debian/changelog libfm-0.1.17/debian/changelog
--- libfm-0.1.17/debian/changelog	2012-04-16 22:32:23.000000000 +0200
+++ libfm-0.1.17/debian/changelog	2013-01-01 00:06:38.000000000 +0100
@@ -1,3 +1,13 @@
+libfm (0.1.17-2.1) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * patches/02-keep_source_when_copying.patch: keep source when
+    cut/pasting a directory across filesystems, avoiding data loss when
+    the copy fails. Next upstream really fixes #593607, but this
+    work-around downgrades its severity from critical to normal in wheezy.
+
+ -- Nicolas Boulenguez <nico...@debian.org>  Mon, 31 Dec 2012 23:36:03 +0100
+
 libfm (0.1.17-2) unstable; urgency=low
 
   * Updating maintainer field.
diff -Nru libfm-0.1.17/debian/patches/02-keep_source_when_copying.patch libfm-0.1.17/debian/patches/02-keep_source_when_copying.patch
--- libfm-0.1.17/debian/patches/02-keep_source_when_copying.patch	1970-01-01 01:00:00.000000000 +0100
+++ libfm-0.1.17/debian/patches/02-keep_source_when_copying.patch	2012-12-31 23:34:59.000000000 +0100
@@ -0,0 +1,15 @@
+diff --git a/src/job/fm-file-ops-job-xfer.c b/src/job/fm-file-ops-job-xfer.c
+index 351ff1d..a46d9b9 100644
+--- a/src/job/fm-file-ops-job-xfer.c
++++ b/src/job/fm-file-ops-job-xfer.c
+@@ -440,8 +440,8 @@ _retry_query_src_info:
+     }
+     /* if this is a cross-device move operation, delete source files. */
+     /* ret == TRUE means the copy is successful. */
+-    if( !fm_job_is_cancelled(fmjob) && ret && delete_src )
+-        ret = _fm_file_ops_job_delete_file(FM_JOB(job), src, inf); /* delete the source file. */
++    /* if( !fm_job_is_cancelled(fmjob) && ret && delete_src ) */
++    /*     ret = _fm_file_ops_job_delete_file(FM_JOB(job), src, inf); /\* delete the source file. *\/ */
+ 
+     if(new_dest)
+         g_object_unref(new_dest);
diff -Nru libfm-0.1.17/debian/patches/series libfm-0.1.17/debian/patches/series
--- libfm-0.1.17/debian/patches/series	2012-04-16 21:45:43.000000000 +0200
+++ libfm-0.1.17/debian/patches/series	2012-12-31 23:37:10.000000000 +0100
@@ -1 +1,2 @@
 01-lxde-conf.patch
+02-keep_source_when_copying.patch

Reply via email to