From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 28BA6139695 for ; Wed, 17 May 2017 22:08:22 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 747C9E0839; Wed, 17 May 2017 22:08:21 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 3D068E0839 for ; Wed, 17 May 2017 22:08:21 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 0C7173415B7 for ; Wed, 17 May 2017 22:08:20 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 6F60B743E for ; Wed, 17 May 2017 22:08:18 +0000 (UTC) From: "Andreas Sturmlechner" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Andreas Sturmlechner" Message-ID: <1495058865.f1bce2a565cb22376963d4a63d8b566a748c7559.asturm@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: kde-frameworks/kio/, kde-frameworks/kio/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: kde-frameworks/kio/files/kio-5.34.0-previewjob1.patch kde-frameworks/kio/files/kio-5.34.0-previewjob2.patch kde-frameworks/kio/kio-5.34.0-r1.ebuild X-VCS-Directories: kde-frameworks/kio/ kde-frameworks/kio/files/ X-VCS-Committer: asturm X-VCS-Committer-Name: Andreas Sturmlechner X-VCS-Revision: f1bce2a565cb22376963d4a63d8b566a748c7559 X-VCS-Branch: master Date: Wed, 17 May 2017 22:08:18 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 18d7c560-bc3c-48e2-a828-b80cca8195c9 X-Archives-Hash: 510539a418e7438ae15b0aa3eba89824 commit: f1bce2a565cb22376963d4a63d8b566a748c7559 Author: Andreas Sturmlechner gentoo org> AuthorDate: Sun May 14 16:05:02 2017 +0000 Commit: Andreas Sturmlechner gentoo org> CommitDate: Wed May 17 22:07:45 2017 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f1bce2a5 kde-frameworks/kio: Fix major PreviewJob bugs - Cleanup temp files of failed get() - Skip remote directories See also KDE Bug: https://bugs.kde.org/show_bug.cgi?id=208625 Package-Manager: Portage-2.3.5, Repoman-2.3.1 .../kio/files/kio-5.34.0-previewjob1.patch | 64 +++++++++++++++++ .../kio/files/kio-5.34.0-previewjob2.patch | 35 ++++++++++ kde-frameworks/kio/kio-5.34.0-r1.ebuild | 81 ++++++++++++++++++++++ 3 files changed, 180 insertions(+) diff --git a/kde-frameworks/kio/files/kio-5.34.0-previewjob1.patch b/kde-frameworks/kio/files/kio-5.34.0-previewjob1.patch new file mode 100644 index 00000000000..87ba27d807f --- /dev/null +++ b/kde-frameworks/kio/files/kio-5.34.0-previewjob1.patch @@ -0,0 +1,64 @@ +From 78c45a1ea0e28a98f34c6d113c807f14700b22d4 Mon Sep 17 00:00:00 2001 +From: David Faure +Date: Sun, 14 May 2017 15:40:02 +0200 +Subject: [PATCH 1/2] PreviewJob: clean up empty temp file when get() fails. + +(e.g. because it's a directory) + +CCBUG: 208625 +--- + src/widgets/previewjob.cpp | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +diff --git a/src/widgets/previewjob.cpp b/src/widgets/previewjob.cpp +index 9eae3469..e836f7da 100644 +--- a/src/widgets/previewjob.cpp ++++ b/src/widgets/previewjob.cpp +@@ -143,6 +143,7 @@ public: + void getOrCreateThumbnail(); + bool statResultThumbnail(); + void createThumbnail(const QString &); ++ void cleanupTempFile(); + void determineNextFile(); + void emitPreview(const QImage &thumb); + +@@ -409,6 +410,16 @@ void PreviewJob::setIgnoreMaximumSize(bool ignoreSize) + d_func()->ignoreMaximumSize = ignoreSize; + } + ++void PreviewJobPrivate::cleanupTempFile() ++{ ++ if (!tempName.isEmpty()) { ++ Q_ASSERT(!QFileInfo(tempName).isDir()); ++ Q_ASSERT(QFileInfo(tempName).isFile()); ++ QFile::remove(tempName); ++ tempName.clear(); ++ } ++} ++ + void PreviewJobPrivate::determineNextFile() + { + Q_Q(PreviewJob); +@@ -491,6 +502,7 @@ void PreviewJob::slotResult(KJob *job) + } + case PreviewJobPrivate::STATE_GETORIG: { + if (job->error()) { ++ d->cleanupTempFile(); + d->determineNextFile(); + return; + } +@@ -499,10 +511,7 @@ void PreviewJob::slotResult(KJob *job) + return; + } + case PreviewJobPrivate::STATE_CREATETHUMB: { +- if (!d->tempName.isEmpty()) { +- QFile::remove(d->tempName); +- d->tempName.clear(); +- } ++ d->cleanupTempFile(); + d->determineNextFile(); + return; + } +-- +2.13.0 + diff --git a/kde-frameworks/kio/files/kio-5.34.0-previewjob2.patch b/kde-frameworks/kio/files/kio-5.34.0-previewjob2.patch new file mode 100644 index 00000000000..fab4d8825f4 --- /dev/null +++ b/kde-frameworks/kio/files/kio-5.34.0-previewjob2.patch @@ -0,0 +1,35 @@ +From 1620032772465be475ae0746aff63a566ef2a546 Mon Sep 17 00:00:00 2001 +From: David Faure +Date: Sun, 14 May 2017 15:48:33 +0200 +Subject: [PATCH 2/2] PreviewJob: skip remote directories. Too expensive to + preview. + +For some protocols, file_copy() would end up copying the whole +directory locally! + +FIXED-IN: 5.35 +BUG: 208625 +--- + src/widgets/previewjob.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/widgets/previewjob.cpp b/src/widgets/previewjob.cpp +index e836f7da..da50b219 100644 +--- a/src/widgets/previewjob.cpp ++++ b/src/widgets/previewjob.cpp +@@ -599,6 +599,12 @@ void PreviewJobPrivate::getOrCreateThumbnail() + createThumbnail(fileUrl.toString()); + return; + } ++ if (item.isDir()) { ++ // Skip remote dirs (bug 208625) ++ cleanupTempFile(); ++ determineNextFile(); ++ return; ++ } + // No plugin support access to this remote content, copy the file + // to the local machine, then create the thumbnail + state = PreviewJobPrivate::STATE_GETORIG; +-- +2.13.0 + diff --git a/kde-frameworks/kio/kio-5.34.0-r1.ebuild b/kde-frameworks/kio/kio-5.34.0-r1.ebuild new file mode 100644 index 00000000000..da2f973163c --- /dev/null +++ b/kde-frameworks/kio/kio-5.34.0-r1.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +KDE_TEST="forceoptional-recursive" +VIRTUALX_REQUIRED="test" +inherit kde5 + +DESCRIPTION="Framework providing transparent file and data management" +LICENSE="LGPL-2+" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="acl +handbook kerberos +kwallet X" + +COMMON_DEPEND=" + $(add_frameworks_dep karchive) + $(add_frameworks_dep kbookmarks) + $(add_frameworks_dep kcodecs) + $(add_frameworks_dep kcompletion) + $(add_frameworks_dep kconfig) + $(add_frameworks_dep kconfigwidgets) + $(add_frameworks_dep kcoreaddons) + $(add_frameworks_dep kdbusaddons) + $(add_frameworks_dep ki18n) + $(add_frameworks_dep kiconthemes) + $(add_frameworks_dep kitemviews) + $(add_frameworks_dep kjobwidgets) + $(add_frameworks_dep knotifications) + $(add_frameworks_dep kservice) + $(add_frameworks_dep ktextwidgets) + $(add_frameworks_dep kwidgetsaddons) + $(add_frameworks_dep kwindowsystem) + $(add_frameworks_dep kxmlgui) + $(add_frameworks_dep solid) + $(add_qt_dep qtdbus) + $(add_qt_dep qtgui) + $(add_qt_dep qtnetwork 'ssl') + $(add_qt_dep qtscript) + $(add_qt_dep qtwidgets) + $(add_qt_dep qtxml) + dev-libs/libxml2 + dev-libs/libxslt + acl? ( + sys-apps/attr + virtual/acl + ) + kerberos? ( virtual/krb5 ) + kwallet? ( $(add_frameworks_dep kwallet) ) + X? ( $(add_qt_dep qtx11extras) ) +" +DEPEND="${COMMON_DEPEND} + $(add_qt_dep qtconcurrent) + handbook? ( $(add_frameworks_dep kdoctools) ) + test? ( sys-libs/zlib ) + X? ( + x11-libs/libX11 + x11-libs/libXrender + x11-proto/xproto + ) +" +PDEPEND=" + $(add_frameworks_dep kded) +" +RDEPEND="${COMMON_DEPEND}" + +# tests hang +RESTRICT+=" test" + +PATCHES=( "${FILESDIR}"/${P}-previewjob{1,2}.patch ) + +src_configure() { + local mycmakeargs=( + $(cmake-utils_use_find_package acl ACL) + $(cmake-utils_use_find_package handbook KF5DocTools) + $(cmake-utils_use_find_package kerberos GSSAPI) + $(cmake-utils_use_find_package kwallet KF5Wallet) + $(cmake-utils_use_find_package X X11) + ) + + kde5_src_configure +}