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

Bug#928438: unblock: libfm-qt/0.14.1-8



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package libfm-qt

Problem: Recursive moving of folders is prohibited in some cases
New version fixes #927708 which renders pcmanfm-qt nearly unusable for basic tasks in file management.
Solution was to port back the upstream fix.


diff --git a/debian/changelog b/debian/changelog
index e5012f5..9bc9b25 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+libfm-qt (0.14.1-8) unstable; urgency=medium
+
+  * Removed the wrongly introduced build dependency on lxqt-qtplugin
+
+ -- Alf Gaida <agaida@siduction.org>  Sat, 27 Apr 2019 18:40:25 +0200
+
+libfm-qt (0.14.1-7) unstable; urgency=medium
+
+  * Workaround for GLib's recursive moving error (Closes: #927708)
+
+ -- Alf Gaida <agaida@siduction.org>  Sat, 27 Apr 2019 10:50:16 +0200
+
 libfm-qt (0.14.1-6) unstable; urgency=medium
 
   * Fixed ignored creation-deletion sequences (Closes: #927707)
diff --git a/debian/patches/series b/debian/patches/series
index 3a2195c..1a4dd71 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 fix-smb-recursive-copy.patch
 fix-license-headers.patch
 dont-ignore-crea-del-sequences.patch
+workaround-glib-recursive-moving-error.patch
diff --git a/debian/patches/workaround-glib-recursive-moving-error.patch b/debian/patches/workaround-glib-recursive-moving-error.patch
new file mode 100644
index 0000000..838ff29
--- /dev/null
+++ b/debian/patches/workaround-glib-recursive-moving-error.patch
@@ -0,0 +1,33 @@
+From 476dded99de11a57c64103b4610f0de3dbdbc769 Mon Sep 17 00:00:00 2001
+From: Tsu Jan <tsujan2000@gmail.com>
+Date: Mon, 22 Apr 2019 00:07:07 +0430
+Subject: [PATCH] Workaround for GLib's recursive moving error, e.g. with bound
+ mounts
+
+`g_file_move()` may not work recursively on the same filesystem, especially
+with bound mounts (to `/mnt`, for example) and give the `G_IO_ERROR_WOULD_RECURSE`
+error. This patch ignores the error and tries our `FileTransferJob::copyFile()`.
+
+Closes https://github.com/lxqt/pcmanfm-qt/issues/943
+---
+ src/core/filetransferjob.cpp | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/src/core/filetransferjob.cpp b/src/core/filetransferjob.cpp
+index c3d5851..32f0f89 100644
+--- a/src/core/filetransferjob.cpp
++++ b/src/core/filetransferjob.cpp
+@@ -83,6 +83,13 @@ bool FileTransferJob::moveFileSameFs(const FilePath& srcPath, const GFileInfoPtr
+         // do the file operation
+         if(!g_file_move(srcPath.gfile().get(), destPath.gfile().get(), GFileCopyFlags(flags), cancellable().get(),
+                        nullptr, this, &err)) {
++            // Specially with mounts bound to /mnt, g_file_move() may give the recursive error
++            // and fail, in which case, we ignore the error and try copying and deleting.
++            if(err.code() == G_IO_ERROR_WOULD_RECURSE) {
++              if(auto parent = destPath.parent()) {
++                  return copyFile(srcPath, srcInfo, parent, destPath.baseName().get());
++              }
++            }
+             retry = handleError(err, srcPath, srcInfo, destPath, flags);
+         }
+         else {


unblock libfm-qt/0.14.1-8

-- System Information:
Debian Release: 10.0
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.0.11-towo.2-siduction-amd64 (SMP w/8 CPU cores; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8), LANGUAGE= (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)


Reply to: