summaryrefslogtreecommitdiff
path: root/kde-apps/kio-extras
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /kde-apps/kio-extras
reinit the tree, so we can have metadata
Diffstat (limited to 'kde-apps/kio-extras')
-rw-r--r--kde-apps/kio-extras/Manifest8
-rw-r--r--kde-apps/kio-extras/files/kio-extras-17.04.3-mtp.patch87
-rw-r--r--kde-apps/kio-extras/files/kio-extras-17.04.3-smb.patch240
-rw-r--r--kde-apps/kio-extras/kio-extras-17.04.3.ebuild90
-rw-r--r--kde-apps/kio-extras/kio-extras-17.08.1.ebuild83
-rw-r--r--kde-apps/kio-extras/metadata.xml15
6 files changed, 523 insertions, 0 deletions
diff --git a/kde-apps/kio-extras/Manifest b/kde-apps/kio-extras/Manifest
new file mode 100644
index 000000000000..39129a120213
--- /dev/null
+++ b/kde-apps/kio-extras/Manifest
@@ -0,0 +1,8 @@
+AUX kio-extras-17.04.3-mtp.patch 3036 SHA256 2ad2571cd2fc461d25bc3425443aa912792801a472931dc8297a59128f93771a SHA512 4269b8587a024244f9d6a65f997d919c168e1871427fd3dcc2943fcdbb494769c73c5074ccaff90f81153c865dd69c88fdf1f7ebd11159f2ad94788c6e85b5d2 WHIRLPOOL 42b79d0e8b4ac61d4fb42214239472ef25960502f72e5c5492a2e5cd30cebf33adeda89c7a9ecaf17996b9e2668482799adaeab8a5720a810d30d76984c783b2
+AUX kio-extras-17.04.3-smb.patch 8491 SHA256 91f9726357c3cd1297b6bb41c7f08758421f4a0662fb20c2cd0ea48e621223d5 SHA512 cb7fad8dd03a555a958a024b43a69f5664a3b11713ad3675c8ff8692f6d7cee98f8f2bcb54c995af8cab08c33b1a2b9157e22738c666d22da4fe6f6484c59ad9 WHIRLPOOL 08b693416758fede9cc4b7eb7f5c8d3bd1b38cebab29787312023a100545e2d65e8437784740e3493f4606be14b44c50c2381ea83329326348a683da1bfa1fea
+DIST kio-extras-17.04.3.tar.xz 552168 SHA256 e18f76631611d9ef74394e204207feaeaf4fa9f6c089f5719a966beed41bf983 SHA512 1f637f3284fc92f312aecad1454ff5d84173930414c9cf1a3f8298408382682c94b377a54a5630bd134753ad675fc1f3db4f08474099708d4a0554638a27f050 WHIRLPOOL eaf5bbbcfc239a91679a85b6ce69aae45e763f52841a5d54cbc7667d2ea59aacebc29fe48e303bac74481c0d76f536fcbfe5358658dac495b8e10d0a81f54dcb
+DIST kio-extras-17.08.1.tar.xz 555236 SHA256 15550ee9869abee53c0cc77a67e1675f22696ccde9352dfbc62de4bc954f60c2 SHA512 7d18c6f384b979e14759a851ee56b838edd754640bde0605e936b9583e5f00153eba97af2e468501eb511f44b7ec1cea26f227f634c2cc46577d4dedd65bc6f2 WHIRLPOOL 5bfa745b6f77f4437b2d205a901def5c1599aa2a1ed7d285b07ff56fe56fe795dab79d258e1b1d353152c7265c7ab4b3a12ef4b7e443c229c4a257c878c67bb1
+EBUILD kio-extras-17.04.3.ebuild 2545 SHA256 3abde5cac670c67007275d2bfe655d1fcc44fbe5dbe081995eaedcb557b5034c SHA512 020b5a4c701337abdb0c1c5e6c548640178d5040de4029b42651695d25108db004a2afd197908fe7d9fcad2d03441c2f154b5a8102c020e179257cb9108cf29b WHIRLPOOL f403da9b2f6cd90f7d862ebf571249aaab123eac4afb0ecec9706035281de50812a1159e18e5686733e61c705ed5f1ac9211e5272c4133330b5dd6a2373a737a
+EBUILD kio-extras-17.08.1.ebuild 2416 SHA256 c6f5267b48e0d7569167633362687203cbf6a5d96f4ce11ced9e8bac6ffd4229 SHA512 efca45e6743b7e8ddf66bfe245c919acd59bd9a1f33d17d0bef12d90cf1772c42e170997269534a9b1f4494ad3c3fbc1e732859ec58efd4ae7851c85c35a34e2 WHIRLPOOL 7825cb6defbca8d5682c4850e35fbae367797376ba473138fa9b2f766da3e1b6079b7e2d9b26f6e9b398a77bd9d89413763cdbf31f87684a301fcc69d45c04d9
+MISC ChangeLog 7196 SHA256 90200d7bbbd70fad582d25d3a8144eae64080c4561ab8a01e39a70698b8c4701 SHA512 578ef7eee18e0ab1f3d185f3bf163cea0871dc5d75f28ab82307827730f8e2816127945c191988ff82e31954bdfa91d9650da2cbe0f3ce4747d8d0a76b7345d5 WHIRLPOOL 4cc006d0cd454fff3afbe8b5331a66181d194978c9822b0878cd7296191ec06d77fd5122112e5ac60b8e47695f7814c6a6d17ea336dd4b63cd401d07313d2cab
+MISC metadata.xml 679 SHA256 4cff9b6dc0c0c5f91c860c8bd86743ef1e59aca9ec55d63ba1500d33c317c1ce SHA512 018a5237fe9ace1ffba82c4dd5d3a4ce6228244476a163fb01ab5f914262cb20ff77d58e8dcc99713071ceb1764b9bc24fb61a8713001059b057963a9620abf3 WHIRLPOOL b2b64d583c15b410f65f4de276d693ce1f2104b9048e5507935654ff4f26b388b90197b9e0a4f71143d4a2af97d7c7308559838f1ad638d01991f8c02560d46c
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..e958ae82c1d2
--- /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 ~arm64 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
+}
diff --git a/kde-apps/kio-extras/kio-extras-17.08.1.ebuild b/kde-apps/kio-extras/kio-extras-17.08.1.ebuild
new file mode 100644
index 000000000000..8de5d1c0fff4
--- /dev/null
+++ b/kde-apps/kio-extras/kio-extras-17.08.1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+KDE_HANDBOOK="forceoptional"
+KDE_TEST="optional"
+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 ~arm64 ~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 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"
+
+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
+}
diff --git a/kde-apps/kio-extras/metadata.xml b/kde-apps/kio-extras/metadata.xml
new file mode 100644
index 000000000000..c32c83220788
--- /dev/null
+++ b/kde-apps/kio-extras/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>kde@gentoo.org</email>
+ <name>Gentoo KDE Project</name>
+ </maintainer>
+ <use>
+ <flag name="activities">Enable activities kioslave and fileitem plugin</flag>
+ <flag name="htmlthumbs">Enable HTML thumbnail previews via <pkg>dev-qt/qtwebengine</pkg></flag>
+ <flag name="man">Enable manpages kioslave</flag>
+ <flag name="phonon">Enable file audio preview plugin using <pkg>media-libs/phonon</pkg></flag>
+ <flag name="sftp">Enable SFTP protocol support using <pkg>net-libs/libssh</pkg></flag>
+ </use>
+</pkgmetadata>