commit:     805cb83c26008cf37adb596e924e19c8ae8e760c
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 11 10:00:06 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Aug 11 10:00:41 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=805cb83c

kde-apps/kleopatra: fix build w/ gpgme-2

New revision as there's a chance it may break older gpgme compat.

Closes: https://bugs.gentoo.org/961317
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/kleopatra-25.04.3-gpgme-2.patch          | 121 +++++++++++++++++++++
 kde-apps/kleopatra/kleopatra-25.04.3-r1.ebuild     |  72 ++++++++++++
 2 files changed, 193 insertions(+)

diff --git a/kde-apps/kleopatra/files/kleopatra-25.04.3-gpgme-2.patch 
b/kde-apps/kleopatra/files/kleopatra-25.04.3-gpgme-2.patch
new file mode 100644
index 000000000000..3cc2e56a23fe
--- /dev/null
+++ b/kde-apps/kleopatra/files/kleopatra-25.04.3-gpgme-2.patch
@@ -0,0 +1,121 @@
+https://bugs.gentoo.org/961317
+https://invent.kde.org/pim/kleopatra/-/commit/10b618703d74618c09b5e2b16e2db9d829aed93b
+https://invent.kde.org/pim/kleopatra/-/commit/b1f3736de7ed3c2d4f58aa454064a4cd0f423250
+https://invent.kde.org/pim/kleopatra/-/commit/d4f777ffa137148302ca39d5a2238c01c896605d
+
+From 10b618703d74618c09b5e2b16e2db9d829aed93b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <[email protected]>
+Date: Wed, 14 May 2025 17:29:18 +0200
+Subject: [PATCH] Include QGpgME/Debug for QDebug operator for GpgME::Error
+
+The missing QDebug operator was caught by the new explicit
+conversion-to-bool operator for GpgME::Error. The safe-bool idiom didn't
+prevent conversion of GpgME::Error to bool when passed to QDebug's
+operator<<.
+---
+ src/dialogs/useridswidget.cpp | 1 +
+ src/view/cardkeysview.cpp     | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/dialogs/useridswidget.cpp b/src/dialogs/useridswidget.cpp
+index bcb540bc4..fc26e7b9e 100644
+--- a/src/dialogs/useridswidget.cpp
++++ b/src/dialogs/useridswidget.cpp
+@@ -33,6 +33,7 @@
+ #include <QPushButton>
+ #include <QVBoxLayout>
+ 
++#include <QGpgME/Debug>
+ #include <QGpgME/KeyListJob>
+ #include <QGpgME/Protocol>
+ 
+diff --git a/src/view/cardkeysview.cpp b/src/view/cardkeysview.cpp
+index eee754f7b..1f5a233aa 100644
+--- a/src/view/cardkeysview.cpp
++++ b/src/view/cardkeysview.cpp
+@@ -34,6 +34,7 @@
+ #include <KLocalizedString>
+ #include <KSharedConfig>
+ 
++#include <QGpgME/Debug>
+ #include <QGpgME/KeyListJob>
+ #include <QGpgME/Protocol>
+ 
+-- 
+GitLab
+
+From b1f3736de7ed3c2d4f58aa454064a4cd0f423250 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <[email protected]>
+Date: Wed, 14 May 2025 17:31:47 +0200
+Subject: [PATCH] Use Error::isError() to check if an error occurred
+
+The new explicit conversion-to-bool operator for Error prevents
+implicit conversion of Error to bool.
+---
+ src/crypto/signencrypttask.cpp | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/src/crypto/signencrypttask.cpp b/src/crypto/signencrypttask.cpp
+index 483353f59..788a8865b 100644
+--- a/src/crypto/signencrypttask.cpp
++++ b/src/crypto/signencrypttask.cpp
+@@ -27,6 +27,7 @@
+ #include <QGpgME/SignEncryptArchiveJob>
+ #include <QGpgME/SignEncryptJob>
+ #include <QGpgME/SignJob>
++#include <qgpgme/qgpgme_version.h>
+ 
+ #include <gpgme++/encryptionresult.h>
+ #include <gpgme++/key.h>
+@@ -1009,9 +1010,15 @@ QString SignEncryptFilesResult::overview() const
+                             m_output.label,
+                             !m_sresult.isNull(),
+                             !m_eresult.isNull(),
++#if QGPGME_VERSION >= QT_VERSION_CHECK(2, 0, 0)
++                            m_sresult.error().isError(),
++                            m_eresult.error().isError(),
++                            m_sresult.error().isError() ? m_sresult.error() : 
m_eresult.error());
++#else
+                             m_sresult.error(),
+                             m_eresult.error(),
+                             m_sresult.error().code() ? m_sresult.error() : 
m_eresult.error());
++#endif
+ }
+ 
+ QString SignEncryptFilesResult::details() const
+-- 
+GitLab
+
+From d4f777ffa137148302ca39d5a2238c01c896605d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <[email protected]>
+Date: Wed, 14 May 2025 16:37:23 +0200
+Subject: [PATCH] Remove long obsolete feature check
+
+---
+ src/selftest/gpgagentcheck.cpp | 11 +----------
+ 1 file changed, 1 insertion(+), 10 deletions(-)
+
+diff --git a/src/selftest/gpgagentcheck.cpp b/src/selftest/gpgagentcheck.cpp
+index 7f15d1c71..285635b83 100644
+--- a/src/selftest/gpgagentcheck.cpp
++++ b/src/selftest/gpgagentcheck.cpp
+@@ -37,16 +37,7 @@ public:
+     {
+         m_skipped = true;
+ 
+-        if (!hasFeature(AssuanEngineFeature, 0)) {
+-            m_error = i18n("GpgME library too old");
+-            m_explanation = i18nc("@info",
+-                                  "Either the GpgME library itself is too 
old, "
+-                                  "or the GpgME++ library was compiled 
against "
+-                                  "an older GpgME that did not support 
connecting to gpg-agent.");
+-            m_proposedFix = xi18nc("@info",
+-                                   "Upgrade to 
<application>gpgme</application> 1.2.0 or higher, "
+-                                   "and ensure that gpgme++ was compiled 
against it.");
+-        } else if (ensureEngineVersion(GpgME::GpgConfEngine, 2, 1, 0)) {
++        if (ensureEngineVersion(GpgME::GpgConfEngine, 2, 1, 0)) {
+             // 2.1 starts the agent on demand and requires it. So for 2.1.0 
we can assume
+             // autostart works and we don't need to care about the agent.
+             m_skipped = false;
+-- 
+GitLab

diff --git a/kde-apps/kleopatra/kleopatra-25.04.3-r1.ebuild 
b/kde-apps/kleopatra/kleopatra-25.04.3-r1.ebuild
new file mode 100644
index 000000000000..d221eb198c2a
--- /dev/null
+++ b/kde-apps/kleopatra/kleopatra-25.04.3-r1.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="optional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=6.13.0
+QTMIN=6.7.2
+inherit ecm gear.kde.org xdg
+
+DESCRIPTION="Certificate manager and GUI for OpenPGP and CMS cryptography"
+HOMEPAGE="https://apps.kde.org/kleopatra/";
+
+LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="6"
+KEYWORDS="~amd64 ~arm64"
+IUSE="pim"
+
+# tests completely broken, bug #641720
+RESTRICT="test"
+
+DEPEND="
+       dev-cpp/gpgmepp:=
+       dev-libs/qgpgme:=
+       dev-libs/libassuan:=
+       dev-libs/libgpg-error
+       >=dev-qt/qtbase-${QTMIN}:6[dbus,gui,network,widgets]
+       >=kde-apps/kmime-${PVCUT}:6=
+       >=kde-apps/libkleo-${PVCUT}:6=
+       >=kde-apps/mimetreeparser-${PVCUT}:6=
+       >=kde-frameworks/kcodecs-${KFMIN}:6
+       >=kde-frameworks/kcolorscheme-${KFMIN}:6
+       >=kde-frameworks/kconfig-${KFMIN}:6
+       >=kde-frameworks/kconfigwidgets-${KFMIN}:6
+       >=kde-frameworks/kcoreaddons-${KFMIN}:6
+       >=kde-frameworks/kcrash-${KFMIN}:6
+       >=kde-frameworks/kdbusaddons-${KFMIN}:6
+       >=kde-frameworks/kguiaddons-${KFMIN}:6
+       >=kde-frameworks/ki18n-${KFMIN}:6
+       >=kde-frameworks/kiconthemes-${KFMIN}:6
+       >=kde-frameworks/kio-${KFMIN}:6
+       >=kde-frameworks/kitemmodels-${KFMIN}:6
+       >=kde-frameworks/knotifications-${KFMIN}:6
+       >=kde-frameworks/ktextwidgets-${KFMIN}:6
+       >=kde-frameworks/kwidgetsaddons-${KFMIN}:6
+       >=kde-frameworks/kwindowsystem-${KFMIN}:6
+       >=kde-frameworks/kxmlgui-${KFMIN}:6
+       pim? (
+               >=kde-apps/akonadi-mime-${PVCUT}:6=
+               >=kde-apps/kidentitymanagement-${PVCUT}:6=
+               >=kde-apps/kmailtransport-${PVCUT}:6=
+       )
+"
+RDEPEND="${DEPEND}
+       >=app-crypt/gnupg-2.1
+       app-crypt/paperkey
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-25.04.3-gpgme-2.patch
+)
+
+src_configure() {
+       local mycmakeargs=(
+               $(cmake_use_find_package pim KPim6AkonadiMime)
+               $(cmake_use_find_package pim KPim6IdentityManagementCore)
+               $(cmake_use_find_package pim KPim6MailTransport)
+       )
+       ecm_src_configure
+}

Reply via email to