commit: a6d77b87ead492ffc0b9cece27cfe8b270a52a12 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Tue Jul 25 08:49:06 2023 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Tue Jul 25 09:04:46 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a6d77b87
kde-frameworks/kcoreaddons: kurlmimedata: don't portal symlinks Upstream commit 2ec1a017b4cd0c56318b38ccd92b523ad21a1a08 KDE-bug: https://bugs.kde.org/show_bug.cgi?id=464225 Bug: https://bugs.gentoo.org/910062 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> ...5.108.0-kurlmimedata-dont-portal-symlinks.patch | 46 ++++++++++++++++++ .../kcoreaddons/kcoreaddons-5.108.0-r1.ebuild | 56 ++++++++++++++++++++++ 2 files changed, 102 insertions(+) diff --git a/kde-frameworks/kcoreaddons/files/kcoreaddons-5.108.0-kurlmimedata-dont-portal-symlinks.patch b/kde-frameworks/kcoreaddons/files/kcoreaddons-5.108.0-kurlmimedata-dont-portal-symlinks.patch new file mode 100644 index 000000000000..0d5e6767c46f --- /dev/null +++ b/kde-frameworks/kcoreaddons/files/kcoreaddons-5.108.0-kurlmimedata-dont-portal-symlinks.patch @@ -0,0 +1,46 @@ +From 2ec1a017b4cd0c56318b38ccd92b523ad21a1a08 Mon Sep 17 00:00:00 2001 +From: Harald Sitter <[email protected]> +Date: Thu, 29 Jun 2023 12:43:14 +0200 +Subject: [PATCH] kurlmimedata: don't portal symlinks + +they are not really supported. from testing it seems that opening +O_NOFOLLOW results in the portal not being able to use the fd so +ultimately we have no way to copy a symlink (instead of the file it +points to) + +BUG: 464225 + + +(cherry picked from commit 14e954248e365098e4b98cfd7c76e5ea1defb8a7) +--- + src/lib/io/kurlmimedata.cpp | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/src/lib/io/kurlmimedata.cpp b/src/lib/io/kurlmimedata.cpp +index 6b62232c1..fe18717c6 100644 +--- a/src/lib/io/kurlmimedata.cpp ++++ b/src/lib/io/kurlmimedata.cpp +@@ -275,9 +275,17 @@ bool KUrlMimeData::exportUrlsToPortal(QMimeData *mimeData) + qWarning() << "kio-fuse is missing"; + return false; + } +- } else if (isLocal && QFileInfo(url.toLocalFile()).isDir()) { +- // XDG Document Portal doesn't support directories and silently drops them. +- return false; ++ } else { ++ const QFileInfo info(url.toLocalFile()); ++ if (info.isDir()) { ++ // XDG Document Portal doesn't support directories and silently drops them. ++ return false; ++ } ++ if (info.isSymbolicLink()) { ++ // XDG Document Portal also doesn't support symlinks since it doesn't let us open the fd O_NOFOLLOW. ++ // https://github.com/flatpak/xdg-desktop-portal/issues/961#issuecomment-1573646299 ++ return false; ++ } + } + } + +-- +GitLab + diff --git a/kde-frameworks/kcoreaddons/kcoreaddons-5.108.0-r1.ebuild b/kde-frameworks/kcoreaddons/kcoreaddons-5.108.0-r1.ebuild new file mode 100644 index 000000000000..aaaa108c0669 --- /dev/null +++ b/kde-frameworks/kcoreaddons/kcoreaddons-5.108.0-r1.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +QTMIN=5.15.9 +inherit ecm frameworks.kde.org xdg-utils + +DESCRIPTION="Framework for solving common problems such as caching, randomisation, and more" + +LICENSE="LGPL-2+" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +IUSE="dbus fam" + +DEPEND=" + >=dev-qt/qtcore-${QTMIN}:5[icu] + virtual/libudev:= + dbus? ( >=dev-qt/qtdbus-${QTMIN}:5 ) + fam? ( virtual/fam ) +" +RDEPEND="${DEPEND} + >=dev-qt/qttranslations-${QTMIN}:5 +" +BDEPEND=">=dev-qt/linguist-tools-${QTMIN}:5" + +PATCHES=( "${FILESDIR}/${P}-kurlmimedata-dont-portal-symlinks.patch" ) # 5.109 + +src_configure() { + local mycmakeargs=( + -D_KDE4_DEFAULT_HOME_POSTFIX=4 + $(cmake_use_find_package fam FAM) + $(cmake_use_find_package dbus Qt5DBus) + ) + + ecm_src_configure +} + +src_test() { + # bugs: 619656, 632398, 647414, 665682 + local myctestargs=( + -j1 + -E "(kautosavefiletest|kdirwatch_qfswatch_unittest|kdirwatch_stat_unittest|kformattest)" + ) + + ecm_src_test +} + +pkg_postinst() { + ecm_pkg_postinst + xdg_mimeinfo_database_update +} + +pkg_postrm() { + ecm_pkg_postrm + xdg_mimeinfo_database_update +}
