commit: 0f7b57dd048269d781ae5c52a4337bb62675c441 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Sat Jul 13 17:14:37 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sat Jul 13 17:16:24 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0f7b57dd
kde-apps/ark: backport Qt 6.7 QTemporaryDir fix Bug: https://bugs.kde.org/487229 Signed-off-by: Sam James <sam <AT> gentoo.org> .../{ark-24.05.2.ebuild => ark-24.05.2-r1.ebuild} | 4 +++ .../files/ark-24.05.2-qt6.7-qtemporarydir.patch | 37 ++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/kde-apps/ark/ark-24.05.2.ebuild b/kde-apps/ark/ark-24.05.2-r1.ebuild similarity index 97% rename from kde-apps/ark/ark-24.05.2.ebuild rename to kde-apps/ark/ark-24.05.2-r1.ebuild index 789686d922ec..fbbd5a228e83 100644 --- a/kde-apps/ark/ark-24.05.2.ebuild +++ b/kde-apps/ark/ark-24.05.2-r1.ebuild @@ -50,6 +50,10 @@ BDEPEND=" elibc_glibc? ( test? ( amd64? ( app-arch/rar ) x86? ( app-arch/rar ) ) ) " +PATCHES=( + "${FILESDIR}"/${P}-qt6.7-qtemporarydir.patch +) + src_configure() { local mycmakeargs=( $(cmake_use_find_package zip LibZip) diff --git a/kde-apps/ark/files/ark-24.05.2-qt6.7-qtemporarydir.patch b/kde-apps/ark/files/ark-24.05.2-qt6.7-qtemporarydir.patch new file mode 100644 index 000000000000..299fdce71290 --- /dev/null +++ b/kde-apps/ark/files/ark-24.05.2-qt6.7-qtemporarydir.patch @@ -0,0 +1,37 @@ +https://mail.kde.org/pipermail/distributions/2024-July/001513.html +https://invent.kde.org/utilities/ark/-/commit/85c5e26f581cf011638a53e62b92e1da8fd55fcd + +[sam: Rebase for fuzz in the logline.] + +From 85c5e26f581cf011638a53e62b92e1da8fd55fcd Mon Sep 17 00:00:00 2001 +From: Elvis Angelaccio <[email protected]> +Date: Sat, 22 Jun 2024 17:54:07 +0200 +Subject: [PATCH] cliinterface: adapt to behavior change in QTemporaryDir + +Qt 6.7 changed the behavior of QTemporaryDir (see commit 935562a77b in +qtbase.git) and now QTemporaryDir::path() returns a relative path rather +than an absolute one. + +We were relying on the old behavior which ensured that the extract temp +dir would always auto-delete itself, regardless of the ark CWD. + +This is no longer working, because now when the temp dir gets deleted, +its destructor tries to delete a relative path, but meanwhile ark has +already changed the CWD and so that path does not exist. + +The fix is to create the QTemporaryDir with an absolute path (but still +as hidden folder in the CWD), so we get back the old behavior (the +returned QTemporaryDir::path() will again be absolute). + +BUG: 487229 +--- a/kerfuffle/cliinterface.cpp ++++ b/kerfuffle/cliinterface.cpp +@@ -96,7 +96,7 @@ bool CliInterface::extractFiles(const QList<Archive::Entry *> &files, const QStr + + if (useTmpExtractDir) { + // Create an hidden temp folder in the current directory. +- m_extractTempDir.reset(new QTemporaryDir(QStringLiteral(".%1-").arg(QCoreApplication::applicationName()))); ++ m_extractTempDir.reset(new QTemporaryDir(QStringLiteral("%1/.%2-").arg(QDir::currentPath(), QCoreApplication::applicationName()))); + + qCDebug(ARK) << "Using temporary extraction dir:" << m_extractTempDir->path(); + if (!m_extractTempDir->isValid()) {
