From 5d2a1fd47982984022c2e0788b4deb825fa6952f Mon Sep 17 00:00:00 2001 From: apt-ghetto Date: Thu, 30 May 2019 18:18:43 +0200 Subject: [PATCH] Remove patches Removed patches that are applied upstream. --- debian/changelog | 10 ++ .../dont-ignore-crea-del-sequences.patch | 115 ------------------ debian/patches/fix-license-headers.patch | 97 --------------- debian/patches/fix-smb-recursive-copy.patch | 36 ------ debian/patches/series | 4 - ...rkaround-glib-recursive-moving-error.patch | 33 ----- 6 files changed, 10 insertions(+), 285 deletions(-) delete mode 100644 debian/patches/dont-ignore-crea-del-sequences.patch delete mode 100644 debian/patches/fix-license-headers.patch delete mode 100644 debian/patches/fix-smb-recursive-copy.patch delete mode 100644 debian/patches/workaround-glib-recursive-moving-error.patch diff --git a/debian/changelog b/debian/changelog index 6f7ba51..ff63d00 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +libfm-qt (0.14.1-8ubuntu2) UNRELEASED; urgency=medium + + * Remove patches applied upstream: + - Remove dont-ignore-crea-del-sequences.patch + - Remove fix-license-headers.patch + - Remove fix-smb-recursive-copy.patch + - Remove workaround-glib-recursive-moving-error.patch + + -- apt-ghetto Thu, 30 May 2019 18:12:35 +0200 + libfm-qt (0.14.1-8ubuntu1) eoan; urgency=medium * Merge from Debian unstable. Remaining changes: diff --git a/debian/patches/dont-ignore-crea-del-sequences.patch b/debian/patches/dont-ignore-crea-del-sequences.patch deleted file mode 100644 index 677695c..0000000 --- a/debian/patches/dont-ignore-crea-del-sequences.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 7e79e591eb536603da92ee537bf949490b1259fc Mon Sep 17 00:00:00 2001 -From: Tsu Jan -Date: Sun, 21 Apr 2019 14:11:14 +0430 -Subject: [PATCH] Don't ignore creation-deletion sequences - -Fixes https://github.com/lxqt/pcmanfm-qt/issues/944 - -Previously, if a file was in addition queue and then it came into the deletion -queue, its addition and deletion were both ignored. That was wrong and could -result in showing nonexistent files because addition can also happen in -directory list job before being processed by file info job. - -Also process accumulated changes only after finishing the current info job and -don't clear all deletion paths after processing them (because, logically, only -those paths that can be deleted should be removed). ---- - src/core/folder.cpp | 60 +++++++++++++++++++++++---------------------- - 1 file changed, 31 insertions(+), 29 deletions(-) - -diff --git a/src/core/folder.cpp b/src/core/folder.cpp -index 6c2b27d..2385a8b 100644 ---- a/src/core/folder.cpp -+++ b/src/core/folder.cpp -@@ -228,16 +228,6 @@ void Folder::onFileInfoFinished() { - return; - } - -- // process the changes accumulated during this info job -- if(filesystem_info_pending // means a pending change; see "onFileSystemInfoFinished()" -- || !paths_to_update.empty() || !paths_to_add.empty() || !paths_to_del.empty()) { -- QTimer::singleShot(0, this, &Folder::processPendingChanges); -- } -- // there's no pending change at the moment; let the next one be processed -- else { -- has_idle_update_handler = false; -- } -- - FileInfoList files_to_add; - FileInfoList files_to_delete; - std::vector files_to_update; -@@ -271,6 +261,16 @@ void Folder::onFileInfoFinished() { - Q_EMIT filesChanged(files_to_update); - } - Q_EMIT contentChanged(); -+ -+ // process the changes accumulated during this info job -+ if(filesystem_info_pending // means a pending change; see "onFileSystemInfoFinished()" -+ || !paths_to_update.empty() || !paths_to_add.empty() || !paths_to_del.empty()) { -+ QTimer::singleShot(0, this, &Folder::processPendingChanges); -+ } -+ // there's no pending change at the moment; let the next one be processed -+ else { -+ has_idle_update_handler = false; -+ } - } - - void Folder::processPendingChanges() { -@@ -314,21 +314,24 @@ void Folder::processPendingChanges() { - } - - // process deletion -- if(!paths_to_del.empty()) { -- FileInfoList deleted_files; -- for(const auto &path: paths_to_del) { -- auto name = path.baseName(); -- auto it = files_.find(name.get()); -- if(it != files_.end()) { -- deleted_files.push_back(it->second); -- files_.erase(it); -- } -+ FileInfoList deleted_files; -+ auto path_it = paths_to_del.begin(); -+ while(path_it != paths_to_del.end()) { -+ const auto& path = *path_it; -+ auto name = path.baseName(); -+ auto it = files_.find(name.get()); -+ if(it != files_.end()) { -+ deleted_files.push_back(it->second); -+ files_.erase(it); -+ path_it = paths_to_del.erase(path_it); - } -- if(!deleted_files.empty()) { -- Q_EMIT filesRemoved(deleted_files); -- Q_EMIT contentChanged(); -+ else { -+ ++path_it; - } -- paths_to_del.clear(); -+ } -+ if(!deleted_files.empty()) { -+ Q_EMIT filesRemoved(deleted_files); -+ Q_EMIT contentChanged(); - } - - if(pending_change_notify) { -@@ -404,13 +407,12 @@ void Folder::eventFileDeleted(const FilePath& path) { - bool deleted = true; - // qDebug() << "delete " << path.baseName().get(); - // G_LOCK(lists); -- if(std::find(paths_to_add.cbegin(), paths_to_add.cend(), path) != paths_to_add.cend()) { -- // if the file was going to be added, just remove it from the addition queue -- paths_to_add.erase(std::remove(paths_to_add.begin(), paths_to_add.end(), path), paths_to_add.cend()); -- } -- else if(std::find(paths_to_del.cbegin(), paths_to_del.cend(), path) == paths_to_del.cend()) { -+ /* WARNING: If the file is in the addition queue, we shouldn not remove it from that queue -+ and ignore its deletion because it may have been added by the directory list job, in -+ which case, ignoring an addition-deletion sequence would result in a nonexistent file. */ -+ if(std::find(paths_to_del.cbegin(), paths_to_del.cend(), path) == paths_to_del.cend()) { - paths_to_del.push_back(path); -- // the update queue should be cancelled for a file that is going to be deleted -+ // the update queue can be cancelled for a file that is going to be deleted - paths_to_update.erase(std::remove(paths_to_update.begin(), paths_to_update.end(), path), paths_to_update.cend()); - } - else { - diff --git a/debian/patches/fix-license-headers.patch b/debian/patches/fix-license-headers.patch deleted file mode 100644 index f7e6045..0000000 --- a/debian/patches/fix-license-headers.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 3d23ec7f0857cbc1ae8e42bdd27ab179a7e8344f Mon Sep 17 00:00:00 2001 -From: "Hong Jen Yee (PCMan)" -Date: Fri, 19 Apr 2019 01:19:08 +0800 -Subject: [PATCH] Fix the license header of code we took from libfm (they - should use LGPL2 instead of GPL2). - src/core/vfs/vfs-menu.c - - src/core/vfs/vfs-search.c These files are taken from libfm which has been - relicensed to LGPL 2 on 2014-09-05 by Andrey N. Gritsenko after consulting - other contributors. - ---- - src/core/vfs/vfs-menu.c | 21 ++++++++++----------- - src/core/vfs/vfs-search.c | 37 +++++++++++++++++-------------------- - 2 files changed, 27 insertions(+), 31 deletions(-) - -diff --git a/src/core/vfs/vfs-menu.c b/src/core/vfs/vfs-menu.c -index c541159..069b1bc 100644 ---- a/src/core/vfs/vfs-menu.c -+++ b/src/core/vfs/vfs-menu.c -@@ -4,20 +4,19 @@ - * - * Copyright 2012-2014 Andriy Grytsenko (LStranger) - * -- * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU General Public License as published by -- * the Free Software Foundation; either version 2 of the License, or -- * (at your option) any later version. -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. - * -- * This program is distributed in the hope that it will be useful, -+ * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. - * -- * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -- * MA 02110-1301, USA. -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - - #ifdef HAVE_CONFIG_H -diff --git a/src/core/vfs/vfs-search.c b/src/core/vfs/vfs-search.c -index 0a64fb6..92b932c 100644 ---- a/src/core/vfs/vfs-search.c -+++ b/src/core/vfs/vfs-search.c -@@ -1,25 +1,22 @@ - /* -- * fm-vfs-search.c -- * -- * Copyright 2012 Hong Jen Yee (PCMan) -- * Copyright 2010 Shae Smittle -- * -- * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU General Public License as published by -- * the Free Software Foundation; either version 2 of the License, or -- * (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -- * MA 02110-1301, USA. -- * -+ * fm-vfs-search.c - * -+ * Copyright 2012 Hong Jen Yee (PCMan) -+ * Copyright 2010 Shae Smittle -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - - #ifdef HAVE_CONFIG_H - diff --git a/debian/patches/fix-smb-recursive-copy.patch b/debian/patches/fix-smb-recursive-copy.patch deleted file mode 100644 index a7d4256..0000000 --- a/debian/patches/fix-smb-recursive-copy.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 6cb5f38d2c1261b782b16da45bb323b069db94fe Mon Sep 17 00:00:00 2001 -From: Tsu Jan -Date: Mon, 8 Apr 2019 07:13:09 +0430 -Subject: [PATCH] Fixed SMB recursive copy - -Fixes https://github.com/lxqt/libfm-qt/issues/385 by trying to set dir permissions only once and ignoring possible errors (that happen with SMB and, maybe, other protocols). ---- - src/core/filetransferjob.cpp | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/src/core/filetransferjob.cpp b/src/core/filetransferjob.cpp -index 4039c58..6b44576 100644 ---- a/src/core/filetransferjob.cpp -+++ b/src/core/filetransferjob.cpp -@@ -279,16 +279,17 @@ bool FileTransferJob::makeDir(const FilePath& srcPath, GFileInfoPtr srcInfo, Fil - mode, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, - cancellable().get(), &err); - if(!chmod_done) { -- ErrorAction act = emitError(err, ErrorSeverity::MODERATE); -+ /* NOTE: Some filesystems may not support this. So, ignore errors for now. */ -+ break; -+ /*ErrorAction act = emitError(err, ErrorSeverity::MODERATE); - if(act != ErrorAction::RETRY) { - break; -- } -- /* FIXME: some filesystems may not support this. */ -+ }*/ - } - } while(!chmod_done && !isCancelled()); - } - } -- return mkdir_done && chmod_done; -+ return mkdir_done/* && chmod_done*/; - } - - bool FileTransferJob::handleError(GErrorPtr &err, const FilePath &srcPath, const GFileInfoPtr &srcInfo, FilePath &destPath, int& flags) { diff --git a/debian/patches/series b/debian/patches/series index 4627866..688bca3 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,5 +1 @@ fix-metadata-for-trusting-executables.patch -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 deleted file mode 100644 index 838ff29..0000000 --- a/debian/patches/workaround-glib-recursive-moving-error.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 476dded99de11a57c64103b4610f0de3dbdbc769 Mon Sep 17 00:00:00 2001 -From: Tsu Jan -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 {