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
+}

Reply via email to