git: 217815b0af27 - main - security/gpgme: Update to 2.0.0

From: Jason E. Hale <jhale_at_FreeBSD.org>
Date: Tue, 24 Jun 2025 13:18:24 UTC
The branch main has been updated by jhale:

URL: https://cgit.FreeBSD.org/ports/commit/?id=217815b0af27079f6b74cc7e5ca3ea05e53b0b15

commit 217815b0af27079f6b74cc7e5ca3ea05e53b0b15
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2025-06-24 11:02:06 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2025-06-24 13:09:24 +0000

    security/gpgme: Update to 2.0.0
    
    Upstream has split most of the bindings out into separate projects with
    this release, so the child ports that were previously providing various
    bindings are now autonomous and have new origins. The python bindings
    should have been called py-gpg for many years now, since 'gpg' is the
    actual module name, so this also corrects that issue.
    
    security/gpgme-cpp -> security/gpgmepp
    security/gpgme-qt -> security/qgpgme
    security/py-gpgme -> security/py-gpg
    
    gpgmepp and qgpgme have been converted to CMake. py-gpg is now a "fun"
    autotools and FreeBSD ports system hybrid. Gpgme, itself, still uses
    autotools, but with much less parenting (patching) to do for its
    emancipated children.
    
    Adjust several ports to fix API incompatibility with upstream patches
    and with some of my own. Adjust all consumers to use the new port
    origins of the former child ports.
    
    https://dev.gnupg.org/T7673
---
 MOVED                                              |   4 +
 deskutils/akonadi-import-wizard/Makefile           |   4 +-
 deskutils/akonadiconsole/Makefile                  |   4 +-
 deskutils/akregator/Makefile                       |   4 +-
 deskutils/grantlee-editor/Makefile                 |   4 +-
 deskutils/kaddressbook/Makefile                    |   4 +-
 deskutils/kdepim-addons/Makefile                   |   4 +-
 deskutils/kmail-account-wizard/Makefile            |   4 +-
 deskutils/kmail/Makefile                           |   4 +-
 deskutils/mbox-importer/Makefile                   |   4 +-
 deskutils/pim-data-exporter/Makefile               |   4 +-
 editors/libreoffice/Makefile                       |   2 +-
 finance/kmymoney/Makefile                          |   2 +-
 finance/ledger/Makefile                            |   2 +-
 graphics/poppler/Makefile                          |   2 +-
 mail/py-alot/Makefile                              |   2 +-
 misc/librepo/Makefile                              |   2 +-
 net-im/gajim/Makefile                              |   2 +-
 net-im/profanity/files/patch-src_pgp_gpg.c         |  15 +++
 net/akonadi-contacts/Makefile                      |   4 +-
 net/kget/Makefile                                  |   8 +-
 net/kget/distinfo                                  |   6 +-
 net/mailcommon/Makefile                            |   4 +-
 net/messagelib/Makefile                            |   4 +-
 net/samba416/Makefile                              |   2 +-
 net/samba419/Makefile                              |   2 +-
 net/samba420/Makefile                              |   2 +-
 security/Makefile                                  |   6 +-
 security/gpa/files/patch-src_gpacontext.c          |  70 ++++++++++++++
 security/gpa/files/patch-src_gpacontext.h          |  13 +++
 security/gpgme-cpp/Makefile                        |  11 ---
 security/gpgme-qt/Makefile                         |  13 ---
 security/gpgme/Makefile                            | 105 +--------------------
 security/gpgme/distinfo                            |   6 +-
 security/gpgme/files/patch-configure               |  23 +----
 security/gpgme/files/patch-lang_python_Makefile.in |  29 ------
 security/gpgme/pkg-plist                           |   4 +-
 security/gpgmepp/Makefile                          |  18 ++++
 security/gpgmepp/distinfo                          |   3 +
 security/gpgmepp/pkg-descr                         |   2 +
 security/{gpgme-cpp => gpgmepp}/pkg-plist          |  10 +-
 security/kleopatra/Makefile                        |   9 +-
 security/kleopatra/distinfo                        |   8 +-
 security/libkleo/Makefile                          |   4 +-
 security/pecl-gnupg/files/patch-gnupg.c            |  41 ++++++++
 security/pinentry/Makefile                         |   2 +-
 security/py-gpg/Makefile                           |  43 +++++++++
 security/py-gpg/distinfo                           |   3 +
 security/py-gpg/files/patch-configure.ac           |  19 ++++
 security/py-gpg/files/patch-pyproject.toml         |  13 +++
 security/py-gpg/pkg-descr                          |   3 +
 security/py-gpgme/Makefile                         |  16 ----
 security/py-gpgme/pkg-plist                        |  89 -----------------
 security/qgpgme/Makefile                           |  55 +++++++++++
 security/qgpgme/distinfo                           |   3 +
 security/qgpgme/pkg-descr                          |  15 +++
 security/{gpgme-qt => qgpgme}/pkg-plist            |   8 +-
 security/seahorse/Makefile                         |   3 +
 security/seahorse/distinfo                         |   4 +-
 sysutils/dnf/Makefile                              |   2 +-
 sysutils/kf5-kwallet/Makefile                      |   4 +-
 sysutils/kf6-kwallet/Makefile                      |   2 +-
 sysutils/plasma-pass/Makefile                      |   4 +-
 63 files changed, 423 insertions(+), 345 deletions(-)

diff --git a/MOVED b/MOVED
index c8f5f83fb800..3eeaa11adec6 100644
--- a/MOVED
+++ b/MOVED
@@ -4556,3 +4556,7 @@ devel/py-atomicwrites||2025-06-23|Has expired: Upstream repository has been arch
 devel/py-pytest-runner||2025-06-23|Has expired: pytest-runner depends on deprecated features of setuptools
 x11-toolkits/scenefx03|x11-toolkits/scenefx04|2025-06-24|No consumers in ports
 net/ziina|net/zmate|2025-06-24|Renamed upstream
+security/py-gpgme|security/py-gpg|2025-06-24|Gpgme Python bindings have been split into a separate project
+security/gpgme-cpp|security/gpgmepp|2025-06-24|Gpgme C++ bindings have been split into a separate project
+security/gpgme-qt@qt5|security/qgpgme@qt5|2025-06-24|Gpgme Qt5 bindings have been split into a separate project
+security/gpgme-qt@qt6|security/qgpgme@qt6|2025-06-24|Gpgme Qt6 bindings have been split into a separate project
diff --git a/deskutils/akonadi-import-wizard/Makefile b/deskutils/akonadi-import-wizard/Makefile
index 7b8d9314730c..465468fecc15 100644
--- a/deskutils/akonadi-import-wizard/Makefile
+++ b/deskutils/akonadi-import-wizard/Makefile
@@ -9,8 +9,8 @@ WWW=		https://www.kde.org/
 LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6 \
+		libgpgmepp.so:security/gpgmepp \
+		libqgpgmeqt6.so:security/qgpgme@qt6 \
 		libqt6keychain.so:security/qtkeychain@qt6
 
 USES=		cmake compiler:c++11-lib gettext kde:6 qt:6 tar:xz
diff --git a/deskutils/akonadiconsole/Makefile b/deskutils/akonadiconsole/Makefile
index b3d688f6d308..4fc34239fcff 100644
--- a/deskutils/akonadiconsole/Makefile
+++ b/deskutils/akonadiconsole/Makefile
@@ -11,8 +11,8 @@ LICENSE=	LGPL21
 LIB_DEPENDS=	libassuan.so:security/libassuan  \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6 \
+		libgpgmepp.so:security/gpgmepp \
+		libqgpgmeqt6.so:security/qgpgme@qt6 \
 		libical.so:devel/libical \
 		libxapian.so:databases/xapian-core
 
diff --git a/deskutils/akregator/Makefile b/deskutils/akregator/Makefile
index fd73aa92a1ae..0ec164dc9abe 100644
--- a/deskutils/akregator/Makefile
+++ b/deskutils/akregator/Makefile
@@ -11,8 +11,8 @@ LICENSE=	LGPL21
 LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6
+		libgpgmepp.so:security/gpgmepp \
+		libqgpgmeqt6.so:security/qgpgme@qt6
 
 USES=		cmake compiler:c++11-lib desktop-file-utils gettext kde:6 qt:6 \
 		tar:xz xorg
diff --git a/deskutils/grantlee-editor/Makefile b/deskutils/grantlee-editor/Makefile
index f06926d5a040..fa585766ce81 100644
--- a/deskutils/grantlee-editor/Makefile
+++ b/deskutils/grantlee-editor/Makefile
@@ -11,8 +11,8 @@ LICENSE=	LGPL21
 LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6
+		libgpgmepp.so:security/gpgmepp \
+		libqgpgmeqt6.so:security/qgpgme@qt6
 
 USES=		cmake compiler:c++11-lib gettext kde:6 qt:6 tar:xz xorg
 USE_KDE=	archive attica auth codecs completion config configwidgets \
diff --git a/deskutils/kaddressbook/Makefile b/deskutils/kaddressbook/Makefile
index 0c9b271d0c97..062b743fa138 100644
--- a/deskutils/kaddressbook/Makefile
+++ b/deskutils/kaddressbook/Makefile
@@ -9,8 +9,8 @@ WWW=		https://www.kde.org/
 LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6
+		libgpgmepp.so:security/gpgmepp \
+		libqgpgmeqt6.so:security/qgpgme@qt6
 
 USES=		cmake compiler:c++11-lib desktop-file-utils gettext kde:6 qt:6 \
 		tar:xz xorg
diff --git a/deskutils/kdepim-addons/Makefile b/deskutils/kdepim-addons/Makefile
index 1279fdfca7f0..40d4775ab1fe 100644
--- a/deskutils/kdepim-addons/Makefile
+++ b/deskutils/kdepim-addons/Makefile
@@ -13,8 +13,8 @@ RUN_DEPENDS=	markdown:textproc/discount
 LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
-		libqgpgme.so:security/gpgme-qt@qt5
+		libgpgmepp.so:security/gpgmepp \
+		libqgpgme.so:security/qgpgme@qt5
 
 USES=		cmake compiler:c++11-lib gettext kde:6 pkgconfig qt:6 tar:xz \
 		xorg
diff --git a/deskutils/kmail-account-wizard/Makefile b/deskutils/kmail-account-wizard/Makefile
index 6279d005c53c..f2894620c0a7 100644
--- a/deskutils/kmail-account-wizard/Makefile
+++ b/deskutils/kmail-account-wizard/Makefile
@@ -9,8 +9,8 @@ WWW=		https://www.kde.org/
 LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6
+		libgpgmepp.so:security/gpgmepp \
+		libqgpgmeqt6.so:security/qgpgme@qt6
 
 USES=		cmake compiler:c++11-lib desktop-file-utils gettext gl kde:6 \
 		qt:6 shared-mime-info tar:xz
diff --git a/deskutils/kmail/Makefile b/deskutils/kmail/Makefile
index 3bac666f92c5..d4ee907329b5 100644
--- a/deskutils/kmail/Makefile
+++ b/deskutils/kmail/Makefile
@@ -11,8 +11,8 @@ LICENSE=	LGPL21
 LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6 \
+		libgpgmepp.so:security/gpgmepp \
+		libqgpgmeqt6.so:security/qgpgme@qt6 \
 		libqt6keychain.so:security/qtkeychain@qt6
 
 RUN_DEPENDS=	accountwizard:deskutils/kmail-account-wizard \
diff --git a/deskutils/mbox-importer/Makefile b/deskutils/mbox-importer/Makefile
index 4de17c47171b..b0dccf6ad709 100644
--- a/deskutils/mbox-importer/Makefile
+++ b/deskutils/mbox-importer/Makefile
@@ -9,8 +9,8 @@ WWW=		https://www.kde.org/
 LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6
+		libgpgmepp.so:security/gpgmepp \
+		libqgpgmeqt6.so:security/qgpgme@qt6
 
 USES=		cmake compiler:c++11-lib desktop-file-utils gettext kde:6 qt:6 \
 		tar:xz
diff --git a/deskutils/pim-data-exporter/Makefile b/deskutils/pim-data-exporter/Makefile
index dd3d08ae51a6..013d3073ba1d 100644
--- a/deskutils/pim-data-exporter/Makefile
+++ b/deskutils/pim-data-exporter/Makefile
@@ -9,8 +9,8 @@ WWW=		https://www.kde.org/
 LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6
+		libgpgmepp.so:security/gpgmepp \
+		libqgpgmeqt6.so:security/qgpgme@qt6
 
 USES=		cmake compiler:c++11-lib gettext kde:6 qt:6 tar:xz xorg
 USE_KDE=	archive auth bookmarks codecs completion config configwidgets \
diff --git a/editors/libreoffice/Makefile b/editors/libreoffice/Makefile
index 55db5949c9ce..0638b1c7981b 100644
--- a/editors/libreoffice/Makefile
+++ b/editors/libreoffice/Makefile
@@ -61,7 +61,7 @@ LIB_DEPENDS=	libapr-1.so:devel/apr1 \
 		libpagemaker-0.0.so:print/libpagemaker \
 		libassuan.so:security/libassuan \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
+		libgpgmepp.so:security/gpgmepp \
 		libargon2.so:security/libargon2 \
 		libgpg-error.so:security/libgpg-error \
 		libnss3.so:security/nss \
diff --git a/finance/kmymoney/Makefile b/finance/kmymoney/Makefile
index 2efb9386054d..bab160f080cd 100644
--- a/finance/kmymoney/Makefile
+++ b/finance/kmymoney/Makefile
@@ -40,7 +40,7 @@ CALENDAR_DESC=		iCalendar exporter
 CALENDAR_LIB_DEPENDS=	libical.so:devel/libical
 CALENDAR_CMAKE_BOOL=	ENABLE_LIBICAL
 
-GNUPG_LIB_DEPENDS=	libgpgmepp.so:security/gpgme-cpp
+GNUPG_LIB_DEPENDS=	libgpgmepp.so:security/gpgmepp
 GNUPG_CMAKE_BOOL_OFF=	CMAKE_DISABLE_FIND_PACKAGE_Gpgmepp \
 			CMAKE_DISABLE_FIND_PACKAGE_KF5Gpgmepp
 
diff --git a/finance/ledger/Makefile b/finance/ledger/Makefile
index ceb2bcd6a178..0144a686a9d3 100644
--- a/finance/ledger/Makefile
+++ b/finance/ledger/Makefile
@@ -25,7 +25,7 @@ OPTIONS_DEFINE=	GNUPG PYTHON
 OPTIONS_SUB=	yes
 
 GNUPG_LIB_DEPENDS=	libgpgme.so:security/gpgme \
-			libgpgmepp.so:security/gpgme-cpp
+			libgpgmepp.so:security/gpgmepp
 GNUPG_CMAKE_BOOL=	USE_GPGME
 
 PYTHON_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}boost-libs>0:devel/boost-python-libs@${PY_FLAVOR}
diff --git a/graphics/poppler/Makefile b/graphics/poppler/Makefile
index 12a976699b4f..7d8a32c99963 100644
--- a/graphics/poppler/Makefile
+++ b/graphics/poppler/Makefile
@@ -103,7 +103,7 @@ OPENJPEG_CMAKE_OFF=	-DENABLE_LIBOPENJPEG:STRING="none"
 
 GNUPG_CMAKE_BOOL=	ENABLE_GPGME
 GNUPG_LIB_DEPENDS=	libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp
+		libgpgmepp.so:security/gpgmepp
 
 post-install:
 .if ${_SLAVE_PORT} == glib
diff --git a/mail/py-alot/Makefile b/mail/py-alot/Makefile
index dac58d63911e..d45e0beca6d0 100644
--- a/mail/py-alot/Makefile
+++ b/mail/py-alot/Makefile
@@ -12,7 +12,7 @@ LICENSE=	GPLv3+
 LICENSE_FILE=	${WRKSRC}/COPYING
 
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}notmuch>=0.27:mail/py-notmuch@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}gpgme>0:security/py-gpgme@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}configobj>4.7.0:devel/py-configobj@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}python-magic>0:devel/py-python-magic@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}twisted>=18.4.0:devel/py-twisted@${PY_FLAVOR} \
diff --git a/misc/librepo/Makefile b/misc/librepo/Makefile
index 13919daf79ab..26c0bd16914a 100644
--- a/misc/librepo/Makefile
+++ b/misc/librepo/Makefile
@@ -15,7 +15,7 @@ LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpgme.so:security/gpgme
 TEST_DEPENDS=	bash:shells/bash \
 		check>0:devel/check \
-		${PYTHON_PKGNAMEPREFIX}gpgme>0:security/py-gpgme@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}xattr>0:devel/py-xattr@${PY_FLAVOR}
 
 USES=		cpe gettext-runtime gnome cmake:testing localbase:ldflags pkgconfig python shebangfix ssl
diff --git a/net-im/gajim/Makefile b/net-im/gajim/Makefile
index 2eb509b54755..e22e0cabac80 100644
--- a/net-im/gajim/Makefile
+++ b/net-im/gajim/Makefile
@@ -43,6 +43,6 @@ OPTIONS_DEFAULT=DBUS OPENGPG
 OPENGPG_DESC=	GPG encryption per XEP-0373
 
 DBUS_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dbus>=0.82.2:devel/py-dbus@${PY_FLAVOR}
-OPENGPG_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}gpgme>0:security/py-gpgme@${PY_FLAVOR}
+OPENGPG_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR}
 
 .include <bsd.port.mk>
diff --git a/net-im/profanity/files/patch-src_pgp_gpg.c b/net-im/profanity/files/patch-src_pgp_gpg.c
new file mode 100644
index 000000000000..6a7e79214fc9
--- /dev/null
+++ b/net-im/profanity/files/patch-src_pgp_gpg.c
@@ -0,0 +1,15 @@
+The gpgme_attr_t enums and their functions, which have been marked deprecated
+since 2003, were removed in GpgME 2.0.0. The individual result structures
+should be used instead.
+
+--- src/pgp/gpg.c.orig	2023-07-14 05:39:30 UTC
++++ src/pgp/gpg.c
+@@ -683,7 +683,7 @@ p_gpg_decrypt(const char* const cipher)
+             error = gpgme_get_key(ctx, recipient->keyid, &key, 1);
+ 
+             if (!error && key) {
+-                const char* addr = gpgme_key_get_string_attr(key, GPGME_ATTR_EMAIL, NULL, 0);
++                const char* addr = key->uids->email;
+                 if (addr) {
+                     g_string_append(recipients_str, addr);
+                 }
diff --git a/net/akonadi-contacts/Makefile b/net/akonadi-contacts/Makefile
index 1c53cc0f5661..3b53bdf2a613 100644
--- a/net/akonadi-contacts/Makefile
+++ b/net/akonadi-contacts/Makefile
@@ -10,8 +10,8 @@ LICENSE=	LGPL21
 LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6
+		libgpgmepp.so:security/gpgmepp \
+		libqgpgmeqt6.so:security/qgpgme@qt6
 
 USES=		cmake compiler:c++11-lib gettext kde:6 qt:6 tar:xz xorg
 USE_KDE=	auth codecs completion config configwidgets coreaddons \
diff --git a/net/kget/Makefile b/net/kget/Makefile
index 4d0103bd916f..4130bd76c34b 100644
--- a/net/kget/Makefile
+++ b/net/kget/Makefile
@@ -2,6 +2,10 @@ PORTNAME=	kget
 DISTVERSION=	${KDE_APPLICATIONS_VERSION}
 CATEGORIES=	net kde kde-applications
 
+PATCH_SITES=	https://invent.kde.org/network/kget/-/commit/
+PATCHFILES+=	6254c0cefa17fe82f44842bc21f5e5c241f66aec.patch:-p1 # Prep for Qgpgme 2.0.0
+PATCHFILES+=	a9aa30e58ca3281285a3ba64d1da6c22fe0ab31a.patch:-p1 # Prep for Qgpgme 2.0.0
+
 MAINTAINER=	kde@FreeBSD.org
 COMMENT=	KDE download manager
 
@@ -12,9 +16,9 @@ LIB_DEPENDS=	libKTorrent6.so:net-p2p/libktorrent  \
 		libgmp.so:math/gmp \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
+		libgpgmepp.so:security/gpgmepp \
 		libqca-qt6.so:devel/qca@qt6 \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6
+		libqgpgmeqt6.so:security/qgpgme@qt6
 
 USES=		cmake compiler:c++11-lang desktop-file-utils gettext kde:6 \
 		qt:6 shebangfix sqlite tar:xz xorg
diff --git a/net/kget/distinfo b/net/kget/distinfo
index 9bf521d866d2..56a18fccf9a8 100644
--- a/net/kget/distinfo
+++ b/net/kget/distinfo
@@ -1,3 +1,7 @@
-TIMESTAMP = 1749036885
+TIMESTAMP = 1750435664
 SHA256 (KDE/release-service/25.04.2/kget-25.04.2.tar.xz) = c6c9d107bdffbc2d19855f298c5634a341a82d6ca3e1b430ce608c7c10d580c1
 SIZE (KDE/release-service/25.04.2/kget-25.04.2.tar.xz) = 4853484
+SHA256 (KDE/release-service/25.04.2/6254c0cefa17fe82f44842bc21f5e5c241f66aec.patch) = 76dc24ccdc5c62024165aa00967480bc0640714bca00b86bf634b4b375cdb610
+SIZE (KDE/release-service/25.04.2/6254c0cefa17fe82f44842bc21f5e5c241f66aec.patch) = 1221
+SHA256 (KDE/release-service/25.04.2/a9aa30e58ca3281285a3ba64d1da6c22fe0ab31a.patch) = 186b2bc25e6fbfe5eb86c8b0c13a518539f94232726dc262cfbc81479149fa74
+SIZE (KDE/release-service/25.04.2/a9aa30e58ca3281285a3ba64d1da6c22fe0ab31a.patch) = 1483
diff --git a/net/mailcommon/Makefile b/net/mailcommon/Makefile
index 400452af446c..39eeba4bb688 100644
--- a/net/mailcommon/Makefile
+++ b/net/mailcommon/Makefile
@@ -12,8 +12,8 @@ BUILD_DEPENDS=	${LOCALBASE}/include/boost/range/algorithm.hpp:devel/boost-libs
 LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6
+		libgpgmepp.so:security/gpgmepp \
+		libqgpgmeqt6.so:security/qgpgme@qt6
 
 USES=		cmake compiler:c++11-lib gettext kde:6 qt:6 tar:xz xorg
 USE_KDE=	archive auth codecs completion config configwidgets coreaddons \
diff --git a/net/messagelib/Makefile b/net/messagelib/Makefile
index 0cb1a4fc7ad3..7af31cf1db3e 100644
--- a/net/messagelib/Makefile
+++ b/net/messagelib/Makefile
@@ -14,9 +14,9 @@ BUILD_DEPENDS=	${LOCALBASE}/include/boost/range/algorithm.hpp:devel/boost-libs
 LIB_DEPENDS=	libassuan.so:security/libassuan \
 		libgpg-error.so:security/libgpg-error \
 		libgpgme.so:security/gpgme \
-		libgpgmepp.so:security/gpgme-cpp \
+		libgpgmepp.so:security/gpgmepp \
 		libqca-qt6.so:devel/qca@qt6 \
-		libqgpgmeqt6.so:security/gpgme-qt@qt6
+		libqgpgmeqt6.so:security/qgpgme@qt6
 
 USES=		cmake compiler:c++11-lib cpe gettext kde:6 qt:6 tar:xz \
 		xorg
diff --git a/net/samba416/Makefile b/net/samba416/Makefile
index 1e96dd4e303f..f87b5d88253d 100644
--- a/net/samba416/Makefile
+++ b/net/samba416/Makefile
@@ -379,7 +379,7 @@ FAM_CONFIGURE_WITH=		fam
 
 GPGME_CONFIGURE_WITH=		gpgme
 GPGME_LIB_DEPENDS=		libgpgme.so:security/gpgme
-GPGME_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}gpgme>=1.14.0:security/py-gpgme@${PY_FLAVOR}
+GPGME_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR}
 
 GSSAPI_BUILTIN_USES=		bison
 GSSAPI_BUILTIN_BUILD_DEPENDS=	p5-JSON>=4.0:converters/p5-JSON
diff --git a/net/samba419/Makefile b/net/samba419/Makefile
index a225810e0271..1f416c1aba07 100644
--- a/net/samba419/Makefile
+++ b/net/samba419/Makefile
@@ -364,7 +364,7 @@ FAM_CONFIGURE_WITH=		fam
 
 GPGME_CONFIGURE_WITH=		gpgme
 GPGME_LIB_DEPENDS=		libgpgme.so:security/gpgme
-GPGME_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}gpgme>=1.14.0:security/py-gpgme@${PY_FLAVOR}
+GPGME_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR}
 
 GSSAPI_BUILTIN_USES=		bison
 GSSAPI_BUILTIN_BUILD_DEPENDS=	p5-JSON>=4.0:converters/p5-JSON
diff --git a/net/samba420/Makefile b/net/samba420/Makefile
index 182c270f5a29..456cadd47dee 100644
--- a/net/samba420/Makefile
+++ b/net/samba420/Makefile
@@ -366,7 +366,7 @@ FAM_CONFIGURE_WITH=		fam
 
 GPGME_CONFIGURE_WITH=		gpgme
 GPGME_LIB_DEPENDS=		libgpgme.so:security/gpgme
-GPGME_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}gpgme>=1.14.0:security/py-gpgme@${PY_FLAVOR}
+GPGME_RUN_DEPENDS=		${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR}
 
 GSSAPI_BUILTIN_USES=		bison
 GSSAPI_BUILTIN_BUILD_DEPENDS=	p5-JSON>=4.0:converters/p5-JSON
diff --git a/security/Makefile b/security/Makefile
index ddae4dbefef7..46547e92bf04 100644
--- a/security/Makefile
+++ b/security/Makefile
@@ -204,8 +204,7 @@
     SUBDIR += gpg-tui
     SUBDIR += gpgdir
     SUBDIR += gpgme
-    SUBDIR += gpgme-cpp
-    SUBDIR += gpgme-qt
+    SUBDIR += gpgmepp
     SUBDIR += gsa
     SUBDIR += gsad
     SUBDIR += gsasl
@@ -953,7 +952,7 @@
     SUBDIR += py-google-auth
     SUBDIR += py-google-auth-httplib2
     SUBDIR += py-google-auth-oauthlib
-    SUBDIR += py-gpgme
+    SUBDIR += py-gpg
     SUBDIR += py-gpsoauth
     SUBDIR += py-greenbone-feed-sync
     SUBDIR += py-gssapi
@@ -1101,6 +1100,7 @@
     SUBDIR += py-zkg
     SUBDIR += py-zxcvbn
     SUBDIR += pygost
+    SUBDIR += qgpgme
     SUBDIR += qt-sudo
     SUBDIR += qtkeychain
     SUBDIR += quantis-kmod
diff --git a/security/gpa/files/patch-src_gpacontext.c b/security/gpa/files/patch-src_gpacontext.c
new file mode 100644
index 000000000000..6b41a8f4cc80
--- /dev/null
+++ b/security/gpa/files/patch-src_gpacontext.c
@@ -0,0 +1,70 @@
+The trustlist feature, which only worked for a short period in 2003, was
+removed in GpgME 2.0.0.
+
+--- src/gpacontext.c.orig	2022-11-14 07:04:19 UTC
++++ src/gpacontext.c
+@@ -38,8 +38,6 @@ static void gpa_context_next_key (GpaContext *context,
+ static void gpa_context_start (GpaContext *context);
+ static void gpa_context_done (GpaContext *context, gpg_error_t err);
+ static void gpa_context_next_key (GpaContext *context, gpgme_key_t key);
+-static void gpa_context_next_trust_item (GpaContext *context,
+-                                         gpgme_trust_item_t item);
+ static void gpa_context_progress (GpaContext *context, int current, int total);
+ 
+ /* The GPGME I/O callbacks */
+@@ -65,7 +63,6 @@ enum
+   START,
+   DONE,
+   NEXT_KEY,
+-  NEXT_TRUST_ITEM,
+   PROGRESS,
+   LAST_SIGNAL
+ };
+@@ -113,7 +110,6 @@ gpa_context_class_init (GpaContextClass *klass)
+   klass->start = gpa_context_start;
+   klass->done = gpa_context_done;
+   klass->next_key = gpa_context_next_key;
+-  klass->next_trust_item = gpa_context_next_trust_item;
+   klass->progress = gpa_context_progress;
+ 
+   /* Signals */
+@@ -143,15 +139,6 @@ gpa_context_class_init (GpaContextClass *klass)
+                         g_cclosure_marshal_VOID__POINTER,
+                         G_TYPE_NONE, 1,
+ 			G_TYPE_POINTER);
+-  signals[NEXT_TRUST_ITEM] =
+-          g_signal_new ("next_trust_item",
+-                        G_TYPE_FROM_CLASS (object_class),
+-                        G_SIGNAL_RUN_FIRST,
+-                        G_STRUCT_OFFSET (GpaContextClass, next_trust_item),
+-                        NULL, NULL,
+-                        g_cclosure_marshal_VOID__POINTER,
+-                        G_TYPE_NONE, 1,
+-			G_TYPE_POINTER);
+   signals[PROGRESS] =
+           g_signal_new ("progress",
+                         G_TYPE_FROM_CLASS (object_class),
+@@ -496,10 +483,6 @@ gpa_context_event_cb (void *data, gpgme_event_io_t typ
+     case GPGME_EVENT_NEXT_KEY:
+       g_signal_emit (context, signals[NEXT_KEY], 0, type_data);
+       break;
+-    case GPGME_EVENT_NEXT_TRUSTITEM:
+-      g_signal_emit (context, signals[NEXT_TRUST_ITEM], 0,
+-                     type_data);
+-      break;
+     default:
+       /* Ignore unsupported event types */
+       break;
+@@ -527,12 +510,6 @@ gpa_context_next_key (GpaContext *context, gpgme_key_t
+ 
+ static void
+ gpa_context_next_key (GpaContext *context, gpgme_key_t key)
+-{
+-  /* Do nothing yet */
+-}
+-
+-static void
+-gpa_context_next_trust_item (GpaContext *context, gpgme_trust_item_t item)
+ {
+   /* Do nothing yet */
+ }
diff --git a/security/gpa/files/patch-src_gpacontext.h b/security/gpa/files/patch-src_gpacontext.h
new file mode 100644
index 000000000000..7b7d6eba5dc6
--- /dev/null
+++ b/security/gpa/files/patch-src_gpacontext.h
@@ -0,0 +1,13 @@
+The trustlist feature, which only worked for a short period in 2003, was
+removed in GpgME 2.0.0.
+
+--- src/gpacontext.h.orig	2018-10-16 19:58:08 UTC
++++ src/gpacontext.h
+@@ -63,7 +63,6 @@ struct _GpaContextClass {
+   void (*start) (GpaContext *context);
+   void (*done) (GpaContext *context, gpg_error_t err);
+   void (*next_key) (GpaContext *context, gpgme_key_t key);
+-  void (*next_trust_item) (GpaContext *context, gpgme_trust_item_t item);
+   void (*progress) (GpaContext *context, int current, int total);
+ };
+ 
diff --git a/security/gpgme-cpp/Makefile b/security/gpgme-cpp/Makefile
deleted file mode 100644
index e24db4919c02..000000000000
--- a/security/gpgme-cpp/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-PORTREVISION=	0
-PKGNAMESUFFIX=	-${_GPGME_BINDING}
-
-COMMENT=	Gpgme C++ bindings
-
-MASTERDIR=	${.CURDIR:H:H}/security/gpgme
-PLIST=		${.CURDIR}/pkg-plist
-
-_GPGME_BINDING=	cpp
-
-.include "${MASTERDIR}/Makefile"
diff --git a/security/gpgme-qt/Makefile b/security/gpgme-qt/Makefile
deleted file mode 100644
index f683b6a005dd..000000000000
--- a/security/gpgme-qt/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-PORTREVISION=	0
-
-COMMENT=	Gpgme Qt${FLAVOR:S|qt||} bindings
-
-LICENSE=	GPLv2+
-LICENSE_FILE=	${WRKSRC}/COPYING
-
-MASTERDIR=	${.CURDIR:H:H}/security/gpgme
-PLIST=		${.CURDIR}/pkg-plist
-
-_GPGME_BINDING=	qt
-
-.include "${MASTERDIR}/Makefile"
diff --git a/security/gpgme/Makefile b/security/gpgme/Makefile
index ad66bed32308..92bba8a67faa 100644
--- a/security/gpgme/Makefile
+++ b/security/gpgme/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	gpgme
-PORTVERSION=	1.24.2
-PORTREVISION?=	0
+PORTVERSION=	2.0.0
 CATEGORIES?=	security
 MASTER_SITES=	GNUPG/gpgme
 
@@ -16,17 +15,14 @@ LIB_DEPENDS=	libassuan.so:security/libassuan \
 
 USES=		compiler:c11 cpe gmake libtool localbase:ldflags pathfix tar:bzip2
 USE_LDCONFIG=	yes
+CPE_VENDOR=	gnu
 
 GNU_CONFIGURE=	yes
+CONFIGURE_ARGS+=--enable-languages="cl"
 CFLAGS+=	-Wno-suggest-override -Wno-unknown-warning-option
 INSTALL_TARGET=	install-strip
 TEST_TARGET=	check
 
-CPE_VENDOR=	gnu
-
-.if !defined(_GPGME_BINDING)
-CONFIGURE_ARGS+=--enable-languages="cl"
-
 INFO=		gpgme
 PORTDOCS=	AUTHORS INSTALL NEWS README
 
@@ -49,93 +45,11 @@ TEST_PREVENTS_MSG=	TEST option is mainly designed for use with the GNUPG2 option
 
 UISERVER_DESC=			GnuPG UI server support
 UISERVER_CONFIGURE_ENABLE=	fd-passing
-.else
-LIB_DEPENDS+=	libgpgme.so:security/gpgme
-BUILD_WRKSRC=	${WRKSRC}/lang/${_GPGME_BINDING}
-INSTALL_WRKSRC=	${WRKSRC}/lang/${_GPGME_BINDING}
-TEST_WRKSRC=	${WRKSRC}/lang/${_GPGME_BINDING}/tests
-
-.  if ${_GPGME_BINDING} == "cpp"
-USES+=		compiler:c++11-lang
-CONFIGURE_ARGS+=--enable-languages="cpp"
-NO_TEST=	yes
-.  else
-OPTIONS_DEFINE+=	TEST
-.  endif
-
-.  if ${_GPGME_BINDING} == "qt"
-LIB_DEPENDS+=	libgpgmepp.so:security/gpgme-cpp
-
-FLAVORS=		qt5 qt6
-FLAVOR?=		${FLAVORS:[1]}
-qt5_PKGNAMESUFFIX=	-qt5
-qt6_PKGNAMESUFFIX=	-qt6
-
-.    if ${FLAVOR:U} == "qt5"
-USES+=		compiler:c++11-lang pkgconfig qt:5
-USE_QT=		core \
-		buildtools:build
-TEST_USE=	QT=testlib:build
-PLIST_SUB=	QGPGME_CMAKE_SUFFIX="" \
-		QGPGME_INCLUDE_SUFFIX="${FLAVOR}" \
-		QGPGME_LIB_SUFFIX=""
-.    else
-USES+=		compiler:c++17-lang pkgconfig qt:6
-USE_CXXSTD=	c++17
-USE_QT=		base
-PLIST_SUB=	QGPGME_CMAKE_SUFFIX="Qt${FLAVOR:S|qt||}" \
-		QGPGME_INCLUDE_SUFFIX="${FLAVOR}" \
-		QGPGME_LIB_SUFFIX="${FLAVOR}"
-.    endif
-
-CONFIGURE_ARGS+=--enable-languages="cpp ${FLAVOR}"
-DOCSDIR=	${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
-
-OPTIONS_DEFINE+=	DOXYGEN
-DOXYGEN_BUILD_DEPENDS=	doxygen:devel/doxygen \
-			dot:graphics/graphviz
-.  endif
-
-.  if ${_GPGME_BINDING} == "python"
-BUILD_DEPENDS+=	swig:devel/swig \
-		${PY_SETUPTOOLS}
-USES+=		python:3.9+
-USE_PYTHON=	flavors
-CONFIGURE_ARGS+=--enable-languages="python"
-CONFIGURE_ENV+=	BSD_PYTHON="${PYTHON_CMD}" \
-		BSD_PYTHON_VERSION="${PYTHON_VER}" \
-		SWIG="${LOCALBASE}/bin/swig"
-PLIST_SUB+=	VERSION=${PORTVERSION}
-.  endif
-.endif
-
-.include <bsd.port.pre.mk>
 
 post-patch:
-.if ${COMPILER_TYPE} == "clang"
-	@${REINPLACE_CMD} -e 's|mno-direct-extern-access|fno-direct-access-external-data|g' \
-		${WRKSRC}/configure
-.endif
-.if defined(_GPGME_BINDING)
-	@${FIND} ${BUILD_WRKSRC} -name "Makefile.in" -type f | ${XARGS} \
-	${REINPLACE_CMD} -e 's|../../../src/libgpgme.la|-lgpgme|g'
-.  if ${_GPGME_BINDING} == "qt"
-	@${FIND} ${BUILD_WRKSRC} -name "Makefile.in" -type f | ${XARGS} \
-	${REINPLACE_CMD} -e 's|../../cpp/src/libgpgmepp.la|-lgpgmepp|g'
-.  endif
-.endif
 	@${REINPLACE_CMD} -e 's|^clfilesdir.*|clfilesdir=$$\(libdir\)/common-lisp/gpgme|g' \
 		${WRKSRC}/lang/cl/Makefile.in
 
-post-patch-DOXYGEN-off:
-	@${REINPLACE_CMD} -e '/SUBDIRS/s|doc||' \
-		${WRKSRC}/lang/qt/Makefile.in
-
-post-patch-TEST-off:
-	@${REINPLACE_CMD} -e '/SUBDIRS/s|tests||' \
-		${WRKSRC}/lang/python/Makefile.in \
-		${WRKSRC}/lang/qt/Makefile.in
-
 # The gnupg programs will create sockets for the tests in a temporary directory
 # under /var/run/user/${UID} if it exists. Otherwise, they will try to create
 # them in the test build directories. To prevent errors in cases where the test
@@ -165,17 +79,8 @@ pre-test: pre-build-TEST-on
 
 post-test: post-build-TEST-on
 
-.if !defined(_GPGME_BINDING)
 post-install-DOCS-on:
-	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}
 	${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
-.endif
-
-post-install-DOXYGEN-on:
-	${MKDIR} ${STAGEDIR}${DOCSDIR}/html
-	cd ${WRKSRC}/lang/qt/doc/generated/html && \
-		${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/html
-	@${FIND} -P ${STAGEDIR}${DOCSDIR} -type f 2>/dev/null | \
-		${SED} -ne 's|^${STAGEDIR}${PREFIX}/||p' >> ${TMPPLIST}
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/security/gpgme/distinfo b/security/gpgme/distinfo
index 3f69026dd7d7..c0c75d7c36e4 100644
--- a/security/gpgme/distinfo
+++ b/security/gpgme/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1739544658
-SHA256 (gpgme-1.24.2.tar.bz2) = e11b1a0e361777e9e55f48a03d89096e2abf08c63d84b7017cfe1dce06639581
-SIZE (gpgme-1.24.2.tar.bz2) = 1891804
+TIMESTAMP = 1750274492
+SHA256 (gpgme-2.0.0.tar.bz2) = ddf161d3c41ff6a3fcbaf4be6c6e305ca4ef1cc3f1ecdfce0c8c2a167c0cc36d
+SIZE (gpgme-2.0.0.tar.bz2) = 1383911
diff --git a/security/gpgme/files/patch-configure b/security/gpgme/files/patch-configure
index 9884bbddbdc4..02ee21a01cff 100644
--- a/security/gpgme/files/patch-configure
+++ b/security/gpgme/files/patch-configure
@@ -1,27 +1,8 @@
-Hunk 1:
-The configure script automatically detects all versions of Python and builds
-the bindings for each found version. This is a problem when building outside
-of a clean environment since the ports system can only build a package for one
-Python flavor at a time. The found versions of Python are overridden by
-environment variables set in the port Makefile.
-
-Hunk 2:
 Fix path of pkgconfig files passed to gpgrt-config.
 
---- configure.orig	2023-11-28 15:45:04 UTC
+--- configure.orig	2025-06-03 11:26:27 UTC
 +++ configure
-@@ -31428,6 +31428,10 @@ printf "%s\n" "$as_me: WARNING:
- 
- 	fi
- 
-+	# Override the automatically found Pythons with the selected version from ports.
-+	PYTHONS=$BSD_PYTHON
-+	PYTHON_VERSIONS=$BSD_PYTHON_VERSION
-+	
- 	# Recover some values lost in the second attempt to find Python.
- 	PYTHON="$(echo $PYTHONS | cut -d ' ' -f 1)"
- 	PYTHON_VERSION="$(echo $PYTHON_VERSIONS | cut -d ' ' -f 1)"
-@@ -32691,7 +32695,7 @@ fi
+@@ -16828,7 +16828,7 @@ fi
      # Get the prefix of gpgrt-config assuming it's something like:
      #   <PREFIX>/bin/gpgrt-config
      gpgrt_prefix=${GPGRT_CONFIG%/*/*}
diff --git a/security/gpgme/files/patch-lang_python_Makefile.in b/security/gpgme/files/patch-lang_python_Makefile.in
deleted file mode 100644
index e78760200c2a..000000000000
--- a/security/gpgme/files/patch-lang_python_Makefile.in
+++ /dev/null
@@ -1,29 +0,0 @@
-First hunk:
-The swig executable from devel/swig30 is named 'swig3.0' and the build system
-only looks for an executable named 'swig':
-unable to execute 'swig': No such file or directory
-
-Second hunk:
-Fix staging and build the *.pyc and *.pyo files 
-
---- lang/python/Makefile.in.orig	2023-08-21 07:46:32 UTC
-+++ lang/python/Makefile.in
-@@ -768,7 +768,7 @@ all-local: copystamp
- 	  CFLAGS="$(CFLAGS)" \
- 	  srcdir="$(srcdir)" \
- 	  top_builddir="$(top_builddir)" \
--	    $$PYTHON setup.py build --verbose --build-base="$$(basename "$${PYTHON}")-gpg" ; \
-+	    $$PYTHON setup.py build --verbose --build-base="$$(basename "$${PYTHON}")-gpg" build_ext --swig=$(SWIG) ; \
- 	done
- 
- python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz.asc: copystamp
-@@ -811,7 +811,8 @@ install-exec-local:
- 	  build \
- 	  --build-base="$$(basename "$${PYTHON}")-gpg" \
- 	  install \
--	  --prefix "$(DESTDIR)$(prefix)" \
-+	  -c -O1 --prefix=$(prefix) \
-+	  --root=$(DESTDIR) \
- 	  --verbose ; \
- 	done
- 
diff --git a/security/gpgme/pkg-plist b/security/gpgme/pkg-plist
index 9034fa4ef44d..b79e4310fc92 100644
--- a/security/gpgme/pkg-plist
+++ b/security/gpgme/pkg-plist
@@ -7,8 +7,8 @@ lib/common-lisp/gpgme/gpgme-package.lisp
 lib/common-lisp/gpgme/gpgme.asd
 lib/common-lisp/gpgme/gpgme.lisp
 lib/libgpgme.so
-lib/libgpgme.so.11
-lib/libgpgme.so.11.33.2
+lib/libgpgme.so.45
+lib/libgpgme.so.45.0.0
 libdata/pkgconfig/gpgme-glib.pc
 libdata/pkgconfig/gpgme.pc
 share/aclocal/gpgme.m4
diff --git a/security/gpgmepp/Makefile b/security/gpgmepp/Makefile
new file mode 100644
index 000000000000..e82eb6422f32
--- /dev/null
+++ b/security/gpgmepp/Makefile
@@ -0,0 +1,18 @@
+PORTNAME=	gpgmepp
+PORTVERSION=	2.0.0
+CATEGORIES=	security
+MASTER_SITES=	GNUPG
+
+MAINTAINER=	jhale@FreeBSD.org
+COMMENT=	GnuPG Made Easy (GPGME) C++ bindings
+WWW=		https://gnupg.org/software/gpgme/index.html
+
+LICENSE=	LGPL20+
+LICENSE_FILE=	${WRKSRC}/COPYING.LIB
+
+LIB_DEPENDS=	libgpg-error.so:security/libgpg-error \
+		libgpgme.so:security/gpgme
+
+USES=		cmake compiler:c++17-lang pkgconfig tar:xz
+
+.include <bsd.port.mk>
diff --git a/security/gpgmepp/distinfo b/security/gpgmepp/distinfo
new file mode 100644
index 000000000000..8d7b098d16d2
--- /dev/null
+++ b/security/gpgmepp/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1750275911
+SHA256 (gpgmepp-2.0.0.tar.xz) = d4796049c06708a26f3096f748ef095347e1a3c1e570561701fe952c3f565382
+SIZE (gpgmepp-2.0.0.tar.xz) = 118304
diff --git a/security/gpgmepp/pkg-descr b/security/gpgmepp/pkg-descr
new file mode 100644
index 000000000000..34f3229a2efb
--- /dev/null
+++ b/security/gpgmepp/pkg-descr
@@ -0,0 +1,2 @@
+GpgMEpp is a C++ wrapper (or C++ bindings) for the GnuPG project's GPGME
+(GnuPG Made Easy) library.
diff --git a/security/gpgme-cpp/pkg-plist b/security/gpgmepp/pkg-plist
similarity index 86%
rename from security/gpgme-cpp/pkg-plist
rename to security/gpgmepp/pkg-plist
index 544a430d2de8..2741334cbc58 100644
--- a/security/gpgme-cpp/pkg-plist
+++ b/security/gpgmepp/pkg-plist
@@ -31,18 +31,22 @@ include/gpgme++/key.h
 include/gpgme++/keygenerationresult.h
 include/gpgme++/keylistresult.h
 include/gpgme++/notation.h
+include/gpgme++/randomresults.h
 include/gpgme++/result.h
 include/gpgme++/scdgetinfoassuantransaction.h
 include/gpgme++/signingresult.h
 include/gpgme++/statusconsumerassuantransaction.h
 include/gpgme++/swdbresult.h
 include/gpgme++/tofuinfo.h
-include/gpgme++/trustitem.h
 include/gpgme++/verificationresult.h
 include/gpgme++/vfsmountresult.h
+lib/cmake/Gpgmepp/FindGpgme.cmake
+lib/cmake/Gpgmepp/FindLibGpgError.cmake
 lib/cmake/Gpgmepp/GpgmeppConfig.cmake
 lib/cmake/Gpgmepp/GpgmeppConfigVersion.cmake
+lib/cmake/Gpgmepp/GpgmeppTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/Gpgmepp/GpgmeppTargets.cmake
 lib/libgpgmepp.so
-lib/libgpgmepp.so.6
-lib/libgpgmepp.so.6.21.2
+lib/libgpgmepp.so.7
+lib/libgpgmepp.so.7.0.0
 libdata/pkgconfig/gpgmepp.pc
diff --git a/security/kleopatra/Makefile b/security/kleopatra/Makefile
index 505df198284c..afa65c5857a7 100644
--- a/security/kleopatra/Makefile
+++ b/security/kleopatra/Makefile
@@ -2,6 +2,11 @@ PORTNAME=	kleopatra
 DISTVERSION=	${KDE_APPLICATIONS_VERSION}
 CATEGORIES=	security kde kde-applications
 
+PATCH_SITES=	https://invent.kde.org/pim/kleopatra/-/commit/
+PATCHFILES+=	10b618703d74618c09b5e2b16e2db9d829aed93b.patch:-p1 # Prep for Qgpgme 2.0.0
+PATCHFILES+=	b1f3736de7ed3c2d4f58aa454064a4cd0f423250.patch:-p1 # Prep for Qgpgme 2.0.0
+PATCHFILES+=	d4f777ffa137148302ca39d5a2238c01c896605d.patch:-p1 # Prep for Qgpgme 2.0.0
+
 MAINTAINER=	kde@FreeBSD.org
*** 542 LINES SKIPPED ***