diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2017-07-13 22:46:45 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2017-07-13 22:50:01 +0200 |
commit | ea01d07c76b705e48d8d3a4600856746ce596e95 (patch) | |
tree | 11abb713ee2d1cf09ef62389e18dd03cbac691e0 /kde-apps/kio-extras | |
parent | dev-java/hawtjni-runtime: keyword ~arm64 (diff) | |
download | gentoo-ea01d07c76b705e48d8d3a4600856746ce596e95.tar.gz gentoo-ea01d07c76b705e48d8d3a4600856746ce596e95.tar.bz2 gentoo-ea01d07c76b705e48d8d3a4600856746ce596e95.zip |
kde-apps: Add KDE Applications 17.04.3
Package-Manager: Portage-2.3.6, Repoman-2.3.1
Diffstat (limited to 'kde-apps/kio-extras')
-rw-r--r-- | kde-apps/kio-extras/Manifest | 1 | ||||
-rw-r--r-- | kde-apps/kio-extras/files/kio-extras-17.04.3-mtp.patch | 87 | ||||
-rw-r--r-- | kde-apps/kio-extras/files/kio-extras-17.04.3-smb.patch | 240 | ||||
-rw-r--r-- | kde-apps/kio-extras/kio-extras-17.04.3.ebuild | 90 |
4 files changed, 418 insertions, 0 deletions
diff --git a/kde-apps/kio-extras/Manifest b/kde-apps/kio-extras/Manifest index 0bf91613c71d..b9f39ad454e8 100644 --- a/kde-apps/kio-extras/Manifest +++ b/kde-apps/kio-extras/Manifest @@ -1,2 +1,3 @@ DIST kio-extras-16.12.3.tar.xz 279872 SHA256 5af7b4dac320ed6d0897c8940e6043ef45a4e1d3a4f9f12e8513215633a5d7d5 SHA512 1b0f0f025deab5f14479e47c29ff18974de461a605055a8c684a588526ef8fff9903ce853e56613db4346f426929e37f4409450221503ce3bce2d812f8f1f4fe WHIRLPOOL d74655e6cb631455720bd001e33d75f423e84aebc6e38ad808b5c2c51ae850b0df8bb7130e98b7aeb8ce63b89722fdd76bf2bb62913756749b3f48dff9605d7e DIST kio-extras-17.04.2.tar.xz 552120 SHA256 d071e1a33108c73c4716bdb7da81bdd06a7bd39fb9649781d21cf08293f504cd SHA512 29cf299ea2f65b98eb35f320e2399757833ec61434e0a39eb3176150b7c473968726cac0da1142405d3b9bae79cdcca60407e3d0d5da9eefa711cf43513afc26 WHIRLPOOL d6b0cdd93d6d5a7440686d1ed06de295fe59863da1482e3f6acada1184bd03ef15c6af6c540ceca63513a0f5db511458815fed2c33e7816d05d3da4b9fd07cc4 +DIST kio-extras-17.04.3.tar.xz 552168 SHA256 e18f76631611d9ef74394e204207feaeaf4fa9f6c089f5719a966beed41bf983 SHA512 1f637f3284fc92f312aecad1454ff5d84173930414c9cf1a3f8298408382682c94b377a54a5630bd134753ad675fc1f3db4f08474099708d4a0554638a27f050 WHIRLPOOL eaf5bbbcfc239a91679a85b6ce69aae45e763f52841a5d54cbc7667d2ea59aacebc29fe48e303bac74481c0d76f536fcbfe5358658dac495b8e10d0a81f54dcb diff --git a/kde-apps/kio-extras/files/kio-extras-17.04.3-mtp.patch b/kde-apps/kio-extras/files/kio-extras-17.04.3-mtp.patch new file mode 100644 index 000000000000..04aff7dcdbd7 --- /dev/null +++ b/kde-apps/kio-extras/files/kio-extras-17.04.3-mtp.patch @@ -0,0 +1,87 @@ +From bdd0e54ee303559106d2ac746f9a3d167bd89146 Mon Sep 17 00:00:00 2001 +From: Kevin Funk <kfunk@kde.org> +Date: Tue, 11 Jul 2017 03:03:21 +0200 +Subject: mtp: Simplify code a bit + +Only one branch can be taken per call, make this clear by using +if/else-if instead of a series of ifs. +--- + mtp/kio_mtp.cpp | 9 ++------- + 1 file changed, 2 insertions(+), 7 deletions(-) + +diff --git a/mtp/kio_mtp.cpp b/mtp/kio_mtp.cpp +index 0532820..9d8585f 100644 +--- a/mtp/kio_mtp.cpp ++++ b/mtp/kio_mtp.cpp +@@ -593,15 +593,12 @@ void MTPSlave::copy(const QUrl &src, const QUrl &dest, int, JobFlags flags) + { + qCDebug(LOG_KIO_MTP) << src.path() << dest.path(); + +- // mtp:/// to mtp:/// + if (src.scheme() == QLatin1String("mtp") && dest.scheme() == QLatin1String("mtp")) { + qCDebug(LOG_KIO_MTP) << "Copy on device: Not supported"; + // MTP doesn't support moving files directly on the device, so we have to download and then upload... + + error(ERR_UNSUPPORTED_ACTION, i18n("Cannot copy/move files on the device itself")); +- } +- // file:/// tp mtp:/// +- if (src.scheme() == QLatin1String("file") && dest.scheme() == QLatin1String("mtp")) { ++ } else if (src.scheme() == QLatin1String("file") && dest.scheme() == QLatin1String("mtp")) { + int check = checkUrl(dest); + switch (check) { + case 0: +@@ -680,9 +677,7 @@ void MTPSlave::copy(const QUrl &src, const QUrl &dest, int, JobFlags flags) + } + + qCDebug(LOG_KIO_MTP) << "Sent file"; +- } +- // mtp:/// to file:/// +- if (src.scheme() == QLatin1String("mtp") && dest.scheme() == QLatin1String("file")) { ++ } else if (src.scheme() == QLatin1String("mtp") && dest.scheme() == QLatin1String("file")) { + int check = checkUrl(src); + switch (check) { + case 0: +-- +cgit v0.11.2 +From f7b9b827ed7a23403913a4e356b0549d9deaf351 Mon Sep 17 00:00:00 2001 +From: Kevin Funk <kfunk@kde.org> +Date: Tue, 11 Jul 2017 03:04:21 +0200 +Subject: A couple of fixes for the MTP kio slave (2 patches) + +Summary: +mtp: Simplify code a bit + +Only one branch can be taken per call, make this clear by using +if/else-if instead of a series of ifs. + +mtp: Don't crash if getPath returns something invalid + +This happens when you try to copy a file from a device which just got +locked again (I think...) + +Reviewers: elvisangelaccio + +Reviewed By: elvisangelaccio + +Differential Revision: https://phabricator.kde.org/D6620 +--- + mtp/kio_mtp.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/mtp/kio_mtp.cpp b/mtp/kio_mtp.cpp +index 9d8585f..541268a 100644 +--- a/mtp/kio_mtp.cpp ++++ b/mtp/kio_mtp.cpp +@@ -705,6 +705,10 @@ void MTPSlave::copy(const QUrl &src, const QUrl &dest, int, JobFlags flags) + } + + QPair<void *, LIBMTP_mtpdevice_t *> pair = getPath(src.path()); ++ if (!pair.first) { ++ error(ERR_COULD_NOT_READ, src.path()); ++ return; ++ } + + LIBMTP_mtpdevice_t *device = pair.second; + LIBMTP_file_t *source = (LIBMTP_file_t *) pair.first; +-- +cgit v0.11.2 diff --git a/kde-apps/kio-extras/files/kio-extras-17.04.3-smb.patch b/kde-apps/kio-extras/files/kio-extras-17.04.3-smb.patch new file mode 100644 index 000000000000..b6b83845f795 --- /dev/null +++ b/kde-apps/kio-extras/files/kio-extras-17.04.3-smb.patch @@ -0,0 +1,240 @@ +From 2574c9158febdcb3dd7a0ebc3e76311f016d00d0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michal=20Mal=C3=BD?= <malymi@natur.cuni.cz> +Date: Wed, 12 Jul 2017 11:55:04 +0200 +Subject: Always create the "." UDSEntry + +Summary: +The smb_kio plugin does not create the "." UDSEntry, +relying on the underlying KIO infrastructure to create a default one. + +This patch ensures that the UDSEntry is always created with proper access permissions. + +CCBUG: 376344 + +Reviewers: elvisangelaccio + +Differential Revision: https://phabricator.kde.org/D6616 +--- + smb/kio_smb_browse.cpp | 23 ++++++++++++++++++++++- + 1 file changed, 22 insertions(+), 1 deletion(-) + +diff --git a/smb/kio_smb_browse.cpp b/smb/kio_smb_browse.cpp +index 1ca90a2..06ca60b 100644 +--- a/smb/kio_smb_browse.cpp ++++ b/smb/kio_smb_browse.cpp +@@ -309,6 +309,7 @@ void SMBSlave::listDir( const QUrl& kurl ) + int dirfd; + struct smbc_dirent *dirp = NULL; + UDSEntry udsentry; ++ bool dir_is_root = true; + + dirfd = smbc_opendir( m_current_url.toSmbcUrl() ); + if (dirfd > 0){ +@@ -350,8 +351,14 @@ void SMBSlave::listDir( const QUrl& kurl ) + udsentry.insert(KIO::UDSEntry::UDS_HIDDEN, 1); + } + +- if (udsName == "." || udsName == "..") ++ if (udsName == ".") + { ++ // Skip the "." entry ++ // Mind the way m_current_url is handled in the loop ++ } ++ else if (udsName == "..") ++ { ++ dir_is_root = false; + // fprintf(stderr,"----------- hide: -%s-\n",dirp->name); + // do nothing and hide the hidden shares + } +@@ -430,6 +437,20 @@ void SMBSlave::listDir( const QUrl& kurl ) + udsentry.clear(); + } while (dirp); // checked already in the head + ++ if (dir_is_root) { ++ udsentry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR); ++ udsentry.insert(KIO::UDSEntry::UDS_NAME, "."); ++ udsentry.insert(KIO::UDSEntry::UDS_ACCESS, (S_IRUSR | S_IRGRP | S_IROTH | S_IXUSR | S_IXGRP | S_IXOTH)); ++ udsentry.insert(KIO::UDSEntry::UDS_MIME_TYPE, QLatin1String("application/x-smb-server")); ++ } ++ else ++ { ++ udsentry.insert(KIO::UDSEntry::UDS_NAME, "."); ++ browse_stat_path(m_current_url, udsentry, true); ++ } ++ listEntry(udsentry); ++ udsentry.clear(); ++ + // clean up + smbc_closedir(dirfd); + } +-- +cgit v0.11.2 +From e792aa44b5aa0b122e006234a8f87a16ff12fe6f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michal=20Mal=C3=BD?= <malymi@natur.cuni.cz> +Date: Wed, 12 Jul 2017 11:57:12 +0200 +Subject: Return appropriate error code from browse_stat_path() instead of + trying to deal with the error internally. + +Summary: +Current behavior of browse_stat_path() can result in both finished() and error() being signaled to KIO. +This patch adjusts the logic to prevent this case. + +Reviewers: elvisangelaccio + +BUG: 376344 +FIXED-IN: 17.08.0 + +Differential Revision: https://phabricator.kde.org/D6617 +--- + smb/kio_smb.h | 5 ++-- + smb/kio_smb_browse.cpp | 67 ++++++++++++++++++++++++++++---------------------- + 2 files changed, 40 insertions(+), 32 deletions(-) + +diff --git a/smb/kio_smb.h b/smb/kio_smb.h +index a5cae11..a2a9343 100644 +--- a/smb/kio_smb.h ++++ b/smb/kio_smb.h +@@ -156,10 +156,9 @@ protected: + * Description : Return a stat of given SMBUrl. Calls cache_stat and + * pack it in UDSEntry. UDSEntry will not be cleared + * Parameter : SMBUrl the url to stat +- * ignore_errors do not call error(), but warning() +- * Return : false if any error occurred (errno), else true ++ * Return : cache_stat() return code + */ +- bool browse_stat_path(const SMBUrl& url, UDSEntry& udsentry, bool ignore_errors); ++ int browse_stat_path(const SMBUrl& url, UDSEntry& udsentry); + + /** + * Description : call smbc_stat and return stats of the url +diff --git a/smb/kio_smb_browse.cpp b/smb/kio_smb_browse.cpp +index 06ca60b..84bfdc2 100644 +--- a/smb/kio_smb_browse.cpp ++++ b/smb/kio_smb_browse.cpp +@@ -55,8 +55,7 @@ int SMBSlave::cache_stat(const SMBUrl &url, struct stat* st ) + } + + //--------------------------------------------------------------------------- +-bool SMBSlave::browse_stat_path(const SMBUrl& _url, UDSEntry& udsentry, bool ignore_errors) +- // Returns: true on success, false on failure ++int SMBSlave::browse_stat_path(const SMBUrl& _url, UDSEntry& udsentry) + { + SMBUrl url = _url; + +@@ -68,7 +67,7 @@ bool SMBSlave::browse_stat_path(const SMBUrl& _url, UDSEntry& udsentry, bool ign + qCDebug(KIO_SMB) << "mode: "<< st.st_mode; + warning(i18n("%1:\n" + "Unknown file type, neither directory or file.", url.toDisplayString())); +- return false; ++ return EINVAL; + } + + udsentry.insert(KIO::UDSEntry::UDS_FILE_TYPE, st.st_mode & S_IFMT); +@@ -96,24 +95,8 @@ bool SMBSlave::browse_stat_path(const SMBUrl& _url, UDSEntry& udsentry, bool ign + udsentry.insert(KIO::UDSEntry::UDS_ACCESS_TIME, st.st_atime); + // No, st_ctime is not UDS_CREATION_TIME... + } +- else +- { +- if (!ignore_errors) { +- if (cacheStatErr == EPERM || cacheStatErr == EACCES) +- if (checkPassword(url)) { +- redirection( url ); +- return false; +- } +- +- reportError(url, cacheStatErr); +- } else if (cacheStatErr == ENOENT || cacheStatErr == ENOTDIR) { +- warning(i18n("File does not exist: %1", url.url())); +- } +- qCDebug(KIO_SMB) << "ERROR!!"; +- return false; +- } + +- return true; ++ return cacheStatErr; + } + + //=========================================================================== +@@ -141,7 +124,7 @@ void SMBSlave::stat( const QUrl& kurl ) + switch(m_current_url.getType()) + { + case SMBURLTYPE_UNKNOWN: +- error(ERR_MALFORMED_URL,m_current_url.toDisplayString()); ++ error(ERR_MALFORMED_URL, url.toDisplayString()); + return; + + case SMBURLTYPE_ENTIRE_NETWORK: +@@ -150,12 +133,38 @@ void SMBSlave::stat( const QUrl& kurl ) + break; + + case SMBURLTYPE_SHARE_OR_PATH: +- if (browse_stat_path(m_current_url, udsentry, false)) ++ { ++ int ret = browse_stat_path(m_current_url, udsentry); ++ ++ if (ret == EPERM || ret == EACCES) ++ { ++ SMBUrl smbUrl(url); ++ ++ if (checkPassword(smbUrl)) ++ { ++ redirection(smbUrl); ++ finished(); ++ } ++ else ++ { ++ reportError(url, ret); ++ } ++ ++ return; ++ } ++ else if (ret == ENOENT || ret == ENOTDIR) ++ { ++ warning(i18n("File does not exist: %1", url.url())); ++ finished(); ++ return; ++ } ++ else if (ret != 0) ++ { ++ qCDebug(KIO_SMB) << "stat() error" << ret << url; ++ reportError(url, ret); ++ return; ++ } + break; +- else { +- qCDebug(KIO_SMB) << "ERROR!!"; +- finished(); +- return; + } + default: + qCDebug(KIO_SMB) << "UNKNOWN " << url; +@@ -366,7 +375,7 @@ void SMBSlave::listDir( const QUrl& kurl ) + { + // Set stat information + m_current_url.addPath(dirpName); +- browse_stat_path(m_current_url, udsentry, true); ++ browse_stat_path(m_current_url, udsentry); + m_current_url.cd(".."); + + // Call base class to list entry +@@ -375,7 +384,7 @@ void SMBSlave::listDir( const QUrl& kurl ) + else if(dirp->smbc_type == SMBC_DIR) + { + m_current_url.addPath(dirpName); +- browse_stat_path(m_current_url, udsentry, true); ++ browse_stat_path(m_current_url, udsentry); + m_current_url.cd(".."); + + // Call base class to list entry +@@ -446,7 +455,7 @@ void SMBSlave::listDir( const QUrl& kurl ) + else + { + udsentry.insert(KIO::UDSEntry::UDS_NAME, "."); +- browse_stat_path(m_current_url, udsentry, true); ++ browse_stat_path(m_current_url, udsentry); + } + listEntry(udsentry); + udsentry.clear(); +-- +cgit v0.11.2 diff --git a/kde-apps/kio-extras/kio-extras-17.04.3.ebuild b/kde-apps/kio-extras/kio-extras-17.04.3.ebuild new file mode 100644 index 000000000000..1747bb1725c0 --- /dev/null +++ b/kde-apps/kio-extras/kio-extras-17.04.3.ebuild @@ -0,0 +1,90 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +KDE_HANDBOOK="forceoptional" +KDE_TEST="optional" +QT_MINIMAL="5.7.0" +VIRTUALX_REQUIRED="test" +inherit kde5 + +DESCRIPTION="KIO plugins present a filesystem-like view of arbitrary data" +HOMEPAGE="https://projects.kde.org/projects/kde/workspace/kio-extras" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="activities exif htmlthumbs +man mtp openexr phonon samba +sftp slp taglib" + +COMMON_DEPEND=" + $(add_frameworks_dep karchive 'bzip2,lzma') + $(add_frameworks_dep kbookmarks) + $(add_frameworks_dep kcodecs) + $(add_frameworks_dep kconfig) + $(add_frameworks_dep kconfigwidgets) + $(add_frameworks_dep kcoreaddons) + $(add_frameworks_dep kdbusaddons) + $(add_frameworks_dep kdelibs4support) + $(add_frameworks_dep kdnssd) + $(add_frameworks_dep kguiaddons) + $(add_frameworks_dep ki18n) + $(add_frameworks_dep kiconthemes) + $(add_frameworks_dep kio) + $(add_frameworks_dep kparts) + $(add_frameworks_dep kpty) + $(add_frameworks_dep kservice) + $(add_frameworks_dep kxmlgui) + $(add_frameworks_dep solid) + $(add_qt_dep qtdbus) + $(add_qt_dep qtgui) + $(add_qt_dep qtnetwork) + $(add_qt_dep qtsvg) + $(add_qt_dep qtwidgets) + $(add_qt_dep qtxml) + virtual/jpeg:0 + activities? ( + $(add_frameworks_dep kactivities) + $(add_qt_dep qtsql) + ) + exif? ( media-gfx/exiv2:= ) + htmlthumbs? ( $(add_qt_dep qtwebengine 'widgets') ) + man? ( $(add_frameworks_dep khtml) ) + mtp? ( media-libs/libmtp:= ) + openexr? ( media-libs/openexr ) + phonon? ( media-libs/phonon[qt5] ) + samba? ( net-fs/samba[client] ) + sftp? ( net-libs/libssh:=[sftp] ) + slp? ( net-libs/openslp ) + taglib? ( >=media-libs/taglib-1.11.1 ) +" +RDEPEND="${COMMON_DEPEND} + $(add_frameworks_dep kded) +" +DEPEND="${COMMON_DEPEND} + x11-misc/shared-mime-info + man? ( dev-util/gperf ) +" + +# requires running kde environment +RESTRICT+=" test" + +PATCHES=( + "${FILESDIR}/${P}-mtp.patch" + "${FILESDIR}/${P}-smb.patch" +) + +src_configure() { + local mycmakeargs=( + $(cmake-utils_use_find_package activities KF5Activities) + $(cmake-utils_use_find_package exif Exiv2) + $(cmake-utils_use_find_package htmlthumbs Qt5WebEngineWidgets) + $(cmake-utils_use_find_package man Gperf) + $(cmake-utils_use_find_package mtp Mtp) + $(cmake-utils_use_find_package openexr OpenEXR) + $(cmake-utils_use_find_package phonon Phonon4Qt5) + $(cmake-utils_use_find_package samba Samba) + $(cmake-utils_use_find_package sftp LibSSH) + $(cmake-utils_use_find_package slp SLP) + $(cmake-utils_use_find_package taglib Taglib) + ) + + kde5_src_configure +} |