forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kde-apps/ark: backport Qt 6.7 QTemporaryDir fix
Bug: https://bugs.kde.org/487229 Signed-off-by: Sam James <[email protected]>
- Loading branch information
1 parent
42f813b
commit 0f7b57d
Showing
2 changed files
with
41 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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()) { |