commit: 653d0304fe180fb030803e36552cff2f15656a65 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Sat Jan 28 21:40:16 2023 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Sat Jan 28 22:32:25 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=653d0304
kde-apps/kmailtransport: SmtpJob: Fix use of KCompositeJob Upstream commit 7b2a5ccea0c54b81245acdbbea77a13e570bba2b KDE-bug: https://bugs.kde.org/show_bug.cgi?id=406839 KDE-bug: https://bugs.kde.org/show_bug.cgi?id=409122 KDE-bug: https://bugs.kde.org/show_bug.cgi?id=421664 KDE-bug: https://bugs.kde.org/show_bug.cgi?id=456923 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> ...-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch | 49 ++++++++++++++++++++++ .../kmailtransport-22.08.3-r1.ebuild | 47 +++++++++++++++++++++ 2 files changed, 96 insertions(+) diff --git a/kde-apps/kmailtransport/files/kmailtransport-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch b/kde-apps/kmailtransport/files/kmailtransport-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch new file mode 100644 index 000000000000..4140cb77d21b --- /dev/null +++ b/kde-apps/kmailtransport/files/kmailtransport-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch @@ -0,0 +1,49 @@ +From 7b2a5ccea0c54b81245acdbbea77a13e570bba2b Mon Sep 17 00:00:00 2001 +From: Fabian Vogt <[email protected]> +Date: Mon, 21 Nov 2022 11:57:51 +0100 +Subject: [PATCH] SmtpJob: Fix use of KCompositeJob + +SmtpJob overrides slotResult, but this had two issues. First, it connected +to LoginJob::result itself, though addJob already does that. Second, in two +cases it did not remove finished jobs from the list of subjobs, leading to +dangling pointers and messing up state. This was most likely only reached +in the case of an expired XOAUTH2 access_token and caused the job to fail +after a successful refresh. + +BUG: 406839 +BUG: 409122 +BUG: 421664 +BUG: 456923 +--- + src/kmailtransport/plugins/smtp/smtpjob.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/kmailtransport/plugins/smtp/smtpjob.cpp b/src/kmailtransport/plugins/smtp/smtpjob.cpp +index 9d565af..5be220a 100644 +--- a/src/kmailtransport/plugins/smtp/smtpjob.cpp ++++ b/src/kmailtransport/plugins/smtp/smtpjob.cpp +@@ -308,7 +308,6 @@ void SmtpJobPrivate::doLogin() + break; + } + +- q->connect(login, &KJob::result, q, &SmtpJob::slotResult); + q->addSubjob(login); + login->start(); + qCDebug(MAILTRANSPORT_SMTP_LOG) << "Login started"; +@@ -352,11 +351,12 @@ bool SmtpJob::doKill() + void SmtpJob::slotResult(KJob *job) + { + if (s_sessionPool.isDestroyed()) { ++ removeSubjob(job); + return; + } +- + if (qobject_cast<KSmtp::LoginJob *>(job)) { + if (job->error() == KSmtp::LoginJob::TokenExpired) { ++ removeSubjob(job); + startPasswordRetrieval(/*force refresh */ true); + return; + } +-- +GitLab + diff --git a/kde-apps/kmailtransport/kmailtransport-22.08.3-r1.ebuild b/kde-apps/kmailtransport/kmailtransport-22.08.3-r1.ebuild new file mode 100644 index 000000000000..1a304ab97eb3 --- /dev/null +++ b/kde-apps/kmailtransport/kmailtransport-22.08.3-r1.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_QTHELP="true" +ECM_TEST="true" +PVCUT=$(ver_cut 1-3) +KFMIN=5.96.0 +QTMIN=5.15.5 +inherit ecm gear.kde.org + +DESCRIPTION="Mail transport service" + +LICENSE="LGPL-2.1+" +SLOT="5" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" +IUSE="" + +RESTRICT="test" + +RDEPEND=" + dev-libs/qtkeychain:=[qt5(+)] + >=dev-qt/qtdbus-${QTMIN}:5 + >=dev-qt/qtgui-${QTMIN}:5 + >=dev-qt/qtnetwork-${QTMIN}:5 + >=dev-qt/qtwidgets-${QTMIN}:5 + >=kde-apps/akonadi-${PVCUT}:5 + >=kde-apps/akonadi-mime-${PVCUT}:5 + >=kde-apps/kmime-${PVCUT}:5 + >=kde-apps/ksmtp-${PVCUT}:5 + >=kde-apps/libkgapi-${PVCUT}:5 + >=kde-frameworks/kcmutils-${KFMIN}:5 + >=kde-frameworks/kcompletion-${KFMIN}:5 + >=kde-frameworks/kconfig-${KFMIN}:5 + >=kde-frameworks/kconfigwidgets-${KFMIN}:5 + >=kde-frameworks/kcoreaddons-${KFMIN}:5 + >=kde-frameworks/ki18n-${KFMIN}:5 + >=kde-frameworks/kio-${KFMIN}:5 + >=kde-frameworks/kwallet-${KFMIN}:5 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 +" +DEPEND="${RDEPEND} + test? ( >=kde-frameworks/ktextwidgets-${KFMIN}:5 ) +" + +PATCHES=( "${FILESDIR}/${P}-SmtpJob-fix-use-of-KCompositeJob.patch" )
