summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-frameworks/kio')
-rw-r--r--kde-frameworks/kio/Manifest2
-rw-r--r--kde-frameworks/kio/files/kio-5.85.0-revert-to-pre-libblkid-parsing.patch128
-rw-r--r--kde-frameworks/kio/files/kio-5.88.0-fix-copy-between-filesystems.patch28
-rw-r--r--kde-frameworks/kio/kio-5.85.0-r2.ebuild100
-rw-r--r--kde-frameworks/kio/kio-5.88.0-r1.ebuild (renamed from kde-frameworks/kio/kio-5.87.0.ebuild)3
5 files changed, 259 insertions, 2 deletions
diff --git a/kde-frameworks/kio/Manifest b/kde-frameworks/kio/Manifest
index 291200f6ea0..936820b63da 100644
--- a/kde-frameworks/kio/Manifest
+++ b/kde-frameworks/kio/Manifest
@@ -1,2 +1,2 @@
DIST kio-5.85.0.tar.xz 3200300 BLAKE2B fd723dba761b81862bf503645a8526a246867e5a10441f3edf895e4107c189ead357615e17f3704325976ed29867c54f98bc11b4e977e21a78d429ee7efa2dde SHA512 73c69743f3d99671ced8176bf9806df54eb3afd04dbdd9dd92b79c9979428f980d3dbda9504c81aca4aa36249b3e43edcc38831497752e31a510a70ee98dc4e8
-DIST kio-5.87.0.tar.xz 3260188 BLAKE2B c9681bd404a3a60eda4d0b5f9b05254cedba2f20a74942314f4462b5306b81d206bac24e8032eab31287c7083e8fafd8db15c2064342feb746abb0629def7041 SHA512 55a3dbdbb2169a1f3b59b6b1857552ef75ff07ffa8dd7871f72aae1c42aa027fdfbbe80e2d7874b3c1914862bd6ff09cdbef3e19766cc7178b642a73e8dc8c19
+DIST kio-5.88.0.tar.xz 3247924 BLAKE2B 3687e97b3c936c93e7ee87f314340f8e9889e2afae584d360eb44414994406a34678ea304fff081a65beb03fa98ec1f22870f3a3f86e124352bc96f51c142c1f SHA512 3d79bc90c2f6aa54080824c15da282f54d18530362ffd144f36754f1751f58c0c48c9fd12ffece49f0b455c524b8585ba6c2baa684b0992471b7ec0636350c19
diff --git a/kde-frameworks/kio/files/kio-5.85.0-revert-to-pre-libblkid-parsing.patch b/kde-frameworks/kio/files/kio-5.85.0-revert-to-pre-libblkid-parsing.patch
new file mode 100644
index 00000000000..1f4c7cf0615
--- /dev/null
+++ b/kde-frameworks/kio/files/kio-5.85.0-revert-to-pre-libblkid-parsing.patch
@@ -0,0 +1,128 @@
+From 221a94a66c4d2f6e4f2dc938ee8a63a6ca739477 Mon Sep 17 00:00:00 2001
+From: Ahmad Samir <a.samirh78@gmail.com>
+Date: Wed, 20 Oct 2021 20:01:40 +0200
+Subject: [PATCH] KMountPoint: revert to parsing /dev/disk/by-{uuid,label}/
+ manually
+
+Apparently libblkid is causing some performance issues when resolving
+UUID/LABEL tags from fstab when the device that has that UUID/LABEL isn't
+present.
+
+Parsing /dev/disk/by-* is more basic, since it's a simple check resolving
+some symlinks.
+
+Thanks to the users in the bug report for the investigative work, because
+personally I couldn't reproduce the problem on my machine no matter what I
+tried.
+
+BUG: 442106
+FIXED-IN: 5.88
+---
+ CMakeLists.txt | 3 +--
+ src/core/CMakeLists.txt | 5 ++---
+ src/core/config-kmountpoint.h.cmake | 2 +-
+ src/core/kmountpoint.cpp | 18 ++++--------------
+ 4 files changed, 8 insertions(+), 20 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ca374a4cb..f1bb1a59b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -130,8 +130,7 @@ set_package_properties(ACL PROPERTIES DESCRIPTION "LibACL"
+ # Used by KMountPoint
+ if (CMAKE_SYSTEM_NAME MATCHES "Linux")
+ find_package(LibMount REQUIRED)
+- find_package(Blkid REQUIRED)
+- set(HAVE_LIBS_MOUNT_AND_BLKID ${LibMount_FOUND} AND ${Blkid_FOUND})
++ set(HAVE_LIB_MOUNT ${LibMount_FOUND})
+ endif()
+
+ if (ANDROID)
+diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
+index be19e9b62..67a1b1cf7 100644
+--- a/src/core/CMakeLists.txt
++++ b/src/core/CMakeLists.txt
+@@ -236,9 +236,8 @@ if(ACL_FOUND)
+ target_link_libraries(KF5KIOCore PRIVATE ${ACL_LIBS})
+ endif()
+
+-if(HAVE_LIBS_MOUNT_AND_BLKID)
+- # libmount links against blkid anyway
+- target_link_libraries(KF5KIOCore PRIVATE LibMount::LibMount Blkid::Blkid)
++if(HAVE_LIB_MOUNT)
++ target_link_libraries(KF5KIOCore PRIVATE LibMount::LibMount)
+ endif()
+
+ # this should be done by cmake, see bug 371721
+diff --git a/src/core/config-kmountpoint.h.cmake b/src/core/config-kmountpoint.h.cmake
+index f824d4042..3673eb141 100644
+--- a/src/core/config-kmountpoint.h.cmake
++++ b/src/core/config-kmountpoint.h.cmake
+@@ -1,7 +1,7 @@
+ #cmakedefine01 HAVE_GETMNTINFO
+ #cmakedefine01 GETMNTINFO_USES_STATVFS
+
+-#cmakedefine01 HAVE_LIBS_MOUNT_AND_BLKID
++#cmakedefine01 HAVE_LIB_MOUNT
+
+ #cmakedefine01 HAVE_SYS_MOUNT_H
+ #cmakedefine01 HAVE_FSTAB_H
+diff --git a/src/core/kmountpoint.cpp b/src/core/kmountpoint.cpp
+index e2d32055c..f41cff5ee 100644
+--- a/src/core/kmountpoint.cpp
++++ b/src/core/kmountpoint.cpp
+@@ -44,7 +44,7 @@ static const Qt::CaseSensitivity cs = Qt::CaseSensitive;
+ #endif
+
+ // Linux
+-#if HAVE_LIBS_MOUNT_AND_BLKID
++#if HAVE_LIB_MOUNT
+ #include <libmount/libmount.h>
+ #include <blkid/blkid.h>
+ #endif
+@@ -176,7 +176,7 @@ KMountPoint::List KMountPoint::possibleMountPoints(DetailsNeededFlags infoNeeded
+ #ifdef Q_OS_WIN
+ result = KMountPoint::currentMountPoints(infoNeeded);
+
+-#elif HAVE_LIBS_MOUNT_AND_BLKID
++#elif HAVE_LIB_MOUNT
+ if (struct libmnt_table *table = mnt_new_table()) {
+ // By default parses "/etc/fstab"
+ if (mnt_table_parse_fstab(table, nullptr) == 0) {
+@@ -202,23 +202,13 @@ KMountPoint::List KMountPoint::possibleMountPoints(DetailsNeededFlags infoNeeded
+ // or some network mount
+ if (const char *source = mnt_fs_get_source(fs)) {
+ mp->d->m_mountedFrom = QFile::decodeName(source);
+- if (mp->d->m_mountedFrom.startsWith(QLatin1String("UUID")) || mp->d->m_mountedFrom.startsWith(QLatin1String("LABEL"))) {
+- // Use blkid to resolve UUID/LABEL to the device file
+- if (char *blkSource = blkid_evaluate_spec(source, nullptr)) {
+- mp->d->m_mountedFrom = QFile::decodeName(blkSource);
+- free(blkSource);
+- if ((infoNeeded & KMountPoint::NeedRealDeviceName) //
+- && mp->d->m_mountedFrom.startsWith(QLatin1String("/dev/"))) {
+- mp->d->m_device = mp->d->m_mountedFrom;
+- }
+- }
+- }
+ }
+
+ if (infoNeeded & NeedMountOptions) {
+ mp->d->m_mountOptions = QFile::decodeName(mnt_fs_get_options(fs)).split(QLatin1Char(','));
+ }
+
++ mp->d->finalizePossibleMountPoint(infoNeeded);
+ result.append(mp);
+ }
+ mnt_free_iter(itr);
+@@ -351,7 +341,7 @@ KMountPoint::List KMountPoint::currentMountPoints(DetailsNeededFlags infoNeeded)
+ }
+ }
+
+-#elif HAVE_LIBS_MOUNT_AND_BLKID
++#elif HAVE_LIB_MOUNT
+ if (struct libmnt_table *table = mnt_new_table()) {
+ // By default, parses "/proc/self/mountinfo"
+ if (mnt_table_parse_mtab(table, nullptr) == 0) {
+--
+GitLab
+
diff --git a/kde-frameworks/kio/files/kio-5.88.0-fix-copy-between-filesystems.patch b/kde-frameworks/kio/files/kio-5.88.0-fix-copy-between-filesystems.patch
new file mode 100644
index 00000000000..a6a4877cf0f
--- /dev/null
+++ b/kde-frameworks/kio/files/kio-5.88.0-fix-copy-between-filesystems.patch
@@ -0,0 +1,28 @@
+From aef544ebbb11e842209f3b071eaa9d1c2f26fa40 Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <aacid@kde.org>
+Date: Wed, 17 Nov 2021 23:45:17 +0100
+Subject: [PATCH] Fix copying between different filesystems on Linux < 5.3
+
+From the copy_file_range manpage
+
+EXDEV The files referred to by fd_in and fd_out are not on the same mounted filesystem (pre Linux 5.3).
+---
+ src/ioslaves/file/file_unix.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/ioslaves/file/file_unix.cpp b/src/ioslaves/file/file_unix.cpp
+index b4eca2ae9..02b5dc14c 100644
+--- a/src/ioslaves/file/file_unix.cpp
++++ b/src/ioslaves/file/file_unix.cpp
+@@ -813,7 +813,7 @@ void FileProtocol::copy(const QUrl &srcUrl, const QUrl &destUrl, int _mode, JobF
+ const ssize_t copiedBytes = ::copy_file_range(srcFile.handle(), nullptr, destFile.handle(), nullptr, s_maxIPCSize, 0);
+
+ if (copiedBytes == -1) {
+- if (errno == EINVAL) {
++ if (errno == EINVAL || errno == EXDEV) {
+ break; // will continue with next copy mechanism
+ }
+
+--
+GitLab
+
diff --git a/kde-frameworks/kio/kio-5.85.0-r2.ebuild b/kde-frameworks/kio/kio-5.85.0-r2.ebuild
new file mode 100644
index 00000000000..8eb655b8879
--- /dev/null
+++ b/kde-frameworks/kio/kio-5.85.0-r2.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_DESIGNERPLUGIN="true"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-2)
+QTMIN=5.15.2
+VIRTUALX_REQUIRED="test"
+inherit ecm kde.org xdg-utils
+
+DESCRIPTION="Framework providing transparent file and data management"
+
+LICENSE="LGPL-2+"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv x86"
+IUSE="acl +handbook kerberos +kwallet X"
+
+# tests hang
+RESTRICT="test"
+
+RDEPEND="
+ dev-libs/libxml2
+ dev-libs/libxslt
+ >=dev-qt/qtdbus-${QTMIN}:5
+ >=dev-qt/qtdeclarative-${QTMIN}:5
+ >=dev-qt/qtgui-${QTMIN}:5
+ >=dev-qt/qtnetwork-${QTMIN}:5[ssl]
+ >=dev-qt/qtwidgets-${QTMIN}:5
+ >=dev-qt/qtxml-${QTMIN}:5
+ =kde-frameworks/kauth-${PVCUT}*:5
+ =kde-frameworks/karchive-${PVCUT}*:5
+ =kde-frameworks/kbookmarks-${PVCUT}*:5
+ =kde-frameworks/kcodecs-${PVCUT}*:5
+ =kde-frameworks/kcompletion-${PVCUT}*:5
+ =kde-frameworks/kconfig-${PVCUT}*:5
+ =kde-frameworks/kconfigwidgets-${PVCUT}*:5
+ =kde-frameworks/kcoreaddons-${PVCUT}*:5
+ =kde-frameworks/kcrash-${PVCUT}*:5
+ =kde-frameworks/kdbusaddons-${PVCUT}*:5
+ =kde-frameworks/kguiaddons-${PVCUT}*:5
+ =kde-frameworks/ki18n-${PVCUT}*:5
+ =kde-frameworks/kiconthemes-${PVCUT}*:5
+ =kde-frameworks/kitemviews-${PVCUT}*:5
+ =kde-frameworks/kjobwidgets-${PVCUT}*:5
+ =kde-frameworks/knotifications-${PVCUT}*:5
+ =kde-frameworks/kservice-${PVCUT}*:5
+ =kde-frameworks/ktextwidgets-${PVCUT}*:5
+ =kde-frameworks/kwidgetsaddons-${PVCUT}*:5
+ =kde-frameworks/kwindowsystem-${PVCUT}*:5
+ =kde-frameworks/kxmlgui-${PVCUT}*:5
+ =kde-frameworks/solid-${PVCUT}*:5
+ acl? (
+ sys-apps/attr
+ virtual/acl
+ )
+ handbook? ( =kde-frameworks/kdoctools-${PVCUT}*:5 )
+ kerberos? ( virtual/krb5 )
+ kwallet? ( =kde-frameworks/kwallet-${PVCUT}*:5 )
+ X? ( >=dev-qt/qtx11extras-${QTMIN}:5 )
+"
+DEPEND="${RDEPEND}
+ >=dev-qt/qtconcurrent-${QTMIN}:5
+ test? ( sys-libs/zlib )
+ X? (
+ x11-base/xorg-proto
+ x11-libs/libX11
+ x11-libs/libXrender
+ )
+"
+PDEPEND=">=kde-frameworks/kded-${PVCUT}:5"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-KDirOperator-exp-to-url-only-in-detail-treeview.patch # KDE-bug 440475
+ "${FILESDIR}"/${P}-allow-edit-icons-for-root-owned-desktop-files.patch # KDE-bug 429613
+ "${FILESDIR}"/${P}-revert-to-pre-libblkid-parsing.patch # bug 821103, KDE-bug 442106
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DKIO_NO_PUBLIC_QTCONCURRENT=ON
+ $(cmake_use_find_package acl ACL)
+ $(cmake_use_find_package handbook KF5DocTools)
+ $(cmake_use_find_package kerberos GSSAPI)
+ $(cmake_use_find_package kwallet KF5Wallet)
+ $(cmake_use_find_package X X11)
+ )
+
+ ecm_src_configure
+}
+
+pkg_postinst() {
+ ecm_pkg_postinst
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ ecm_pkg_postrm
+ xdg_desktop_database_update
+}
diff --git a/kde-frameworks/kio/kio-5.87.0.ebuild b/kde-frameworks/kio/kio-5.88.0-r1.ebuild
index 6c1d184379b..dcc6a8a9819 100644
--- a/kde-frameworks/kio/kio-5.87.0.ebuild
+++ b/kde-frameworks/kio/kio-5.88.0-r1.ebuild
@@ -50,7 +50,6 @@ RDEPEND="
=kde-frameworks/kwindowsystem-${PVCUT}*:5
=kde-frameworks/kxmlgui-${PVCUT}*:5
=kde-frameworks/solid-${PVCUT}*:5
- sys-apps/util-linux
acl? (
sys-apps/attr
virtual/acl
@@ -71,6 +70,8 @@ DEPEND="${RDEPEND}
"
PDEPEND=">=kde-frameworks/kded-${PVCUT}:5"
+PATCHES=( "${FILESDIR}"/${P}-fix-copy-between-filesystems.patch )
+
src_configure() {
local mycmakeargs=(
-DKIO_NO_PUBLIC_QTCONCURRENT=ON