diff --git a/debian/changelog b/debian/changelog index 1f728fc..6f7ba51 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,68 @@ +libfm-qt (0.14.1-8ubuntu1) eoan; urgency=medium + + * Merge from Debian unstable. Remaining changes: + - debian/control: + + Update Vcs-* and maintainer for maintaining by Lubuntu. + + Add Breaks/Replaces on old libfm-qt-l10n. + - debian/libfmqt-qt6.symbols + + Retain Lubuntu generated symbols file. + - debian/patches: fix-metadata-for-trusting-executables.patch + + Fix metadata for trusting executables. Use Ubuntu standard for + trusting executables. + + -- Rik Mills Fri, 24 May 2019 10:16:20 +0100 + +libfm-qt (0.14.1-8) unstable; urgency=medium + + * Removed the wrongly introduced build dependency on lxqt-qtplugin + + -- Alf Gaida 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 Sat, 27 Apr 2019 10:50:16 +0200 + +libfm-qt (0.14.1-6) unstable; urgency=medium + + * Fixed ignored creation-deletion sequences (Closes: #927707) + + -- Alf Gaida Sun, 21 Apr 2019 20:50:23 +0200 + +libfm-qt (0.14.1-5) unstable; urgency=medium + + * Fixed license for vfs-search.c and vfs-menu.c - was forgotten upstream. + * Fixed d/copyright that way. + + -- Alf Gaida Thu, 18 Apr 2019 20:52:30 +0200 + +libfm-qt (0.14.1-4) unstable; urgency=medium + + * Fix recursive copy to smb shares (and possible other remote filesystems) + (Closes: #926626) + + -- Alf Gaida Mon, 08 Apr 2019 19:03:43 +0200 + +libfm-qt (0.14.1-3) unstable; urgency=medium + + * Fixed the remaining symbols + + -- Alf Gaida Fri, 01 Mar 2019 01:34:43 +0100 + +libfm-qt (0.14.1-2) unstable; urgency=medium + + * Fixed new and optional symbols + + -- Alf Gaida Tue, 26 Feb 2019 22:07:40 +0100 + +libfm-qt (0.14.1-1) unstable; urgency=medium + + * Cherry-picking upstream release 0.14.1. + * Fixed some symbols + + -- Alf Gaida Sun, 24 Feb 2019 19:31:01 +0100 + libfm-qt (0.14.1-0ubuntu2) disco; urgency=medium * Rebuild against qtbase-abi-5-12-2. @@ -14,6 +79,38 @@ libfm-qt (0.14.1-0ubuntu1) disco; urgency=medium -- Simon Quigley Fri, 08 Mar 2019 11:28:38 -0600 +libfm-qt (0.14.0-3) unstable; urgency=medium + + * Switched to unstable + * Fixed some more symbols + * Ported back some upstream patches + + -- Alf Gaida Tue, 05 Feb 2019 20:11:09 +0100 + +libfm-qt (0.14.0-2) experimental; urgency=medium + + * Fixed a bunch of symbols for misc. architectures. + + -- Alf Gaida Sat, 02 Feb 2019 17:46:02 +0100 + +libfm-qt (0.14.0-1) experimental; urgency=medium + + * Cherry-picking upstream release 0.14.0. + * Switched to experimental + * Bumped Standards to 4.3.0, no changes needed + * Dropped d/compat, use debhelper-compat = 12, no changes needed + * Fixed years in d/copyright + * Bumped minimum version lxqt-build-tools (>= 0.6.0~) + * Removed obsolete PULL_TRANSLATIONS= OFF from dh_auto_configure + * Removed obsolete build dependency libfm-dev + * Added Build-Depends-Package field to symbols + * Added l10n-package, moved from lxqt-l10n + * Fixed symbols file for 0.14.0 + * Added d/upstream/metadata + * Added new files do debian/copyright + + -- Alf Gaida Wed, 30 Jan 2019 20:32:59 +0100 + libfm-qt (0.14.0-0ubuntu3) disco; urgency=medium * Fix metadata for trusting executables. diff --git a/debian/compat b/debian/compat deleted file mode 100644 index 48082f7..0000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -12 diff --git a/debian/control b/debian/control index c716847..3e20fb0 100644 --- a/debian/control +++ b/debian/control @@ -4,15 +4,14 @@ XSBC-Original-Maintainer: LXQt Packaging Team Section: x11 Priority: optional -Build-Depends: debhelper (>= 12), +Build-Depends: debhelper-compat (= 12), libexif-dev, - libfm-dev (>= 1.2.0), libkf5windowsystem-dev, libmenu-cache-dev, libqt5svg5-dev, libqt5x11extras5-dev, libx11-dev, - lxqt-build-tools (>= 0.6.0), + lxqt-build-tools (>= 0.6.0~), qtbase5-private-dev Standards-Version: 4.3.0 Vcs-Browser: https://phab.lubuntu.me/source/libfm-qt/ @@ -54,7 +53,6 @@ Architecture: any Section: libdevel Depends: ${misc:Depends}, libexif-dev, - libfm-dev (>= 1.2.0), libfm-qt6 (= ${binary:Version}), libmenu-cache-dev Description: file management support library for pcmanfm-qt (development files) @@ -72,4 +70,7 @@ Depends: ${misc:Depends}, Breaks: libfm-qt3 (<< 0.11.1), libfm-qt-l10n (<< 0.14.0) Replaces: libfm-qt3 (<< 0.11.1), libfm-qt-l10n (<< 0.14.0) Description: Language package for libfm-qt + Libfm-Qt is a companion library providing components to build desktop file + managers. + . This package contains the l10n files needed by the libfm-qt. diff --git a/debian/copyright b/debian/copyright index 27846e8..f7f9d49 100644 --- a/debian/copyright +++ b/debian/copyright @@ -3,9 +3,9 @@ Upstream-Name: libfm-qt Source: https://github.com/lxqt/libfm-qt Files: * -Copyright: 2013-2018 LXQt team - 2013-2017 Hong Jen Yee (PCMan) - 2012-2013 Andriy Grytsenko (LStranger) +Copyright: 2013-2019 LXQt team + 2013-2019 Hong Jen Yee (PCMan) + 2012-2014 Andriy Grytsenko (LStranger) 2014 Kuzma Shapran License: LGPL-2.1+ @@ -16,7 +16,7 @@ License: BSD-3-Clause Files: debian/* Copyright: 2014-2015 Wen Liao 2014-2016 ChangZhuo Chen (陳昌倬) - 2013-2018 Alf Gaida + 2013-2019 Alf Gaida 2015 Andrew Lee (李健秋) License: LGPL-2.1+ @@ -59,3 +59,4 @@ License: LGPL-2.1+ On Debian systems, the complete text of the GNU Lesser General Public License version 2.1 can be found in "/usr/share/common-licenses/LGPL-2.1". + diff --git a/debian/libfm-qt-dev.install b/debian/libfm-qt-dev.install index d941ae0..801b020 100644 --- a/debian/libfm-qt-dev.install +++ b/debian/libfm-qt-dev.install @@ -1,8 +1,9 @@ usr/include/libfm-qt/*.h usr/include/libfm-qt/customactions/*.h usr/include/libfm-qt/core/*.h -usr/include/libfm-qt/core/vfs/*.h usr/include/libfm-qt/core/legacy/*.h +usr/include/libfm-qt/core/vfs/*.h + usr/lib/*/*.so usr/lib/*/pkgconfig/* diff --git a/debian/patches/dont-ignore-crea-del-sequences.patch b/debian/patches/dont-ignore-crea-del-sequences.patch new file mode 100644 index 0000000..677695c --- /dev/null +++ b/debian/patches/dont-ignore-crea-del-sequences.patch @@ -0,0 +1,115 @@ +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 new file mode 100644 index 0000000..f7e6045 --- /dev/null +++ b/debian/patches/fix-license-headers.patch @@ -0,0 +1,97 @@ +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 new file mode 100644 index 0000000..a7d4256 --- /dev/null +++ b/debian/patches/fix-smb-recursive-copy.patch @@ -0,0 +1,36 @@ +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 688bca3..4627866 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,5 @@ 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 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 +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 { diff --git a/debian/rules b/debian/rules index dc79ee4..e7f96a5 100755 --- a/debian/rules +++ b/debian/rules @@ -13,6 +13,5 @@ override_dh_missing: override_dh_auto_configure: dh_auto_configure -- \ - -DPULL_TRANSLATIONS=OFF \ -DUPDATE_TRANSLATIONS=OFF \ -DCMAKE_BUILD_TYPE=RelWithDebInfo diff --git a/debian/upstream/metadata b/debian/upstream/metadata new file mode 100644 index 0000000..c305d1d --- /dev/null +++ b/debian/upstream/metadata @@ -0,0 +1,7 @@ +Name: libfm-qt +Bug-Database: https://github.com/lxqt/libfm-qt/issues +Bug-Submit: https://github.com/lxqt/libfm-qt/issues/new +Changelog: https://github.com/lxqt/libfm-qt/blob/master/CHANGELOG +Repository: https://github.com/lxqt/libfm-qt +Repository-Browser: https://github.com/lxqt/libfm-qt +