summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MOVED4
-rw-r--r--deskutils/akonadi-import-wizard/Makefile4
-rw-r--r--deskutils/akonadiconsole/Makefile4
-rw-r--r--deskutils/akregator/Makefile4
-rw-r--r--deskutils/grantlee-editor/Makefile4
-rw-r--r--deskutils/kaddressbook/Makefile4
-rw-r--r--deskutils/kdepim-addons/Makefile4
-rw-r--r--deskutils/kmail-account-wizard/Makefile4
-rw-r--r--deskutils/kmail/Makefile4
-rw-r--r--deskutils/mbox-importer/Makefile4
-rw-r--r--deskutils/pim-data-exporter/Makefile4
-rw-r--r--editors/libreoffice/Makefile2
-rw-r--r--finance/kmymoney/Makefile2
-rw-r--r--finance/ledger/Makefile2
-rw-r--r--graphics/poppler/Makefile2
-rw-r--r--mail/py-alot/Makefile2
-rw-r--r--misc/librepo/Makefile2
-rw-r--r--net-im/gajim/Makefile2
-rw-r--r--net-im/profanity/files/patch-src_pgp_gpg.c15
-rw-r--r--net/akonadi-contacts/Makefile4
-rw-r--r--net/kget/Makefile8
-rw-r--r--net/kget/distinfo6
-rw-r--r--net/mailcommon/Makefile4
-rw-r--r--net/messagelib/Makefile4
-rw-r--r--net/samba416/Makefile2
-rw-r--r--net/samba419/Makefile2
-rw-r--r--net/samba420/Makefile2
-rw-r--r--security/Makefile6
-rw-r--r--security/gpa/files/patch-src_gpacontext.c70
-rw-r--r--security/gpa/files/patch-src_gpacontext.h13
-rw-r--r--security/gpgme-cpp/Makefile11
-rw-r--r--security/gpgme-qt/Makefile13
-rw-r--r--security/gpgme/Makefile105
-rw-r--r--security/gpgme/distinfo6
-rw-r--r--security/gpgme/files/patch-configure23
-rw-r--r--security/gpgme/files/patch-lang_python_Makefile.in29
-rw-r--r--security/gpgme/pkg-plist4
-rw-r--r--security/gpgmepp/Makefile18
-rw-r--r--security/gpgmepp/distinfo3
-rw-r--r--security/gpgmepp/pkg-descr2
-rw-r--r--security/gpgmepp/pkg-plist (renamed from security/gpgme-cpp/pkg-plist)10
-rw-r--r--security/kleopatra/Makefile9
-rw-r--r--security/kleopatra/distinfo8
-rw-r--r--security/libkleo/Makefile4
-rw-r--r--security/pecl-gnupg/files/patch-gnupg.c41
-rw-r--r--security/pinentry/Makefile2
-rw-r--r--security/py-gpg/Makefile43
-rw-r--r--security/py-gpg/distinfo3
-rw-r--r--security/py-gpg/files/patch-configure.ac19
-rw-r--r--security/py-gpg/files/patch-pyproject.toml13
-rw-r--r--security/py-gpg/pkg-descr3
-rw-r--r--security/py-gpgme/Makefile16
-rw-r--r--security/py-gpgme/pkg-plist89
-rw-r--r--security/qgpgme/Makefile55
-rw-r--r--security/qgpgme/distinfo3
-rw-r--r--security/qgpgme/pkg-descr15
-rw-r--r--security/qgpgme/pkg-plist (renamed from security/gpgme-qt/pkg-plist)8
-rw-r--r--security/seahorse/Makefile3
-rw-r--r--security/seahorse/distinfo4
-rw-r--r--sysutils/dnf/Makefile2
-rw-r--r--sysutils/kf5-kwallet/Makefile4
-rw-r--r--sysutils/kf6-kwallet/Makefile2
-rw-r--r--sysutils/plasma-pass/Makefile4
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
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
COMMENT= Certificate manager for KDE
WWW= https://www.kde.org/applications/utilities/kleopatra/
@@ -10,8 +15,8 @@ LIB_DEPENDS= libassuan.so:security/libassuan \
libboost_thread.so:devel/boost-libs \
libgpgme.so:security/gpgme \
libgpg-error.so:security/libgpg-error \
- 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-lang desktop-file-utils gettext kde:6 \
qt:6 shared-mime-info tar:xz xorg
diff --git a/security/kleopatra/distinfo b/security/kleopatra/distinfo
index dcac84233c5f..f1f3b98769a3 100644
--- a/security/kleopatra/distinfo
+++ b/security/kleopatra/distinfo
@@ -1,3 +1,9 @@
-TIMESTAMP = 1749036950
+TIMESTAMP = 1750496363
SHA256 (KDE/release-service/25.04.2/kleopatra-25.04.2.tar.xz) = d155c416103fad173c361ea10f3ea1f6142297cc5be3598e9b062461336a3476
SIZE (KDE/release-service/25.04.2/kleopatra-25.04.2.tar.xz) = 2851360
+SHA256 (KDE/release-service/25.04.2/10b618703d74618c09b5e2b16e2db9d829aed93b.patch) = 75f5c94d85eadad74dcef21f66c019946217a051a9e8b90803d5eceaadb3fcd4
+SIZE (KDE/release-service/25.04.2/10b618703d74618c09b5e2b16e2db9d829aed93b.patch) = 1241
+SHA256 (KDE/release-service/25.04.2/b1f3736de7ed3c2d4f58aa454064a4cd0f423250.patch) = c2796b58683b07eabeae48a517192460c474a1722d7022e796b94df6553d933d
+SIZE (KDE/release-service/25.04.2/b1f3736de7ed3c2d4f58aa454064a4cd0f423250.patch) = 1585
+SHA256 (KDE/release-service/25.04.2/d4f777ffa137148302ca39d5a2238c01c896605d.patch) = 0120d812f9a57cbd4a5a2718fbbc9acef090841701cb2c6b4f11a596986840e6
+SIZE (KDE/release-service/25.04.2/d4f777ffa137148302ca39d5a2238c01c896605d.patch) = 1573
diff --git a/security/libkleo/Makefile b/security/libkleo/Makefile
index 10b3a01e7a07..ad3c33e5d9fb 100644
--- a/security/libkleo/Makefile
+++ b/security/libkleo/Makefile
@@ -10,8 +10,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 \
- libqgpgmeqt6.so:security/gpgme-qt@qt6 \
- libgpgmepp.so:security/gpgme-cpp
+ libqgpgmeqt6.so:security/qgpgme@qt6 \
+ libgpgmepp.so:security/gpgmepp
RUN_DEPENDS= ${LOCALBASE}/bin/gmd5sum:sysutils/coreutils
USES= cmake compiler:c++11-lang gettext kde:6 qt:6 tar:xz
diff --git a/security/pecl-gnupg/files/patch-gnupg.c b/security/pecl-gnupg/files/patch-gnupg.c
new file mode 100644
index 000000000000..fda8f01312fd
--- /dev/null
+++ b/security/pecl-gnupg/files/patch-gnupg.c
@@ -0,0 +1,41 @@
+The trustlist feature has been deprecated in Gpgme since 2003 and was removed
+in version 2.0.0.
+
+--- gnupg.c.orig 2025-06-02 18:54:02 UTC
++++ gnupg.c
+@@ -341,7 +341,9 @@ phpc_function_entry gnupg_methods[] = {
+ PHP_GNUPG_FALIAS(addencryptkey, arginfo_gnupg_key_method)
+ PHP_GNUPG_FALIAS(adddecryptkey, arginfo_gnupg_key_passphrase_method)
+ PHP_GNUPG_FALIAS(deletekey, arginfo_gnupg_deletekey_method)
++#if GPGME_VERSION_NUMBER < 0x020000 /* GPGME < 2.0.0 */
+ PHP_GNUPG_FALIAS(gettrustlist, arginfo_gnupg_pattern_method)
++#endif
+ PHP_GNUPG_FALIAS(listsignatures, arginfo_gnupg_keyid_method)
+ PHP_GNUPG_FALIAS(seterrormode, arginfo_gnupg_errmode_method)
+ PHPC_FE_END
+@@ -483,7 +485,9 @@ static zend_function_entry gnupg_functions[] = {
+ PHP_FE(gnupg_addencryptkey, arginfo_gnupg_key_function)
+ PHP_FE(gnupg_adddecryptkey, arginfo_gnupg_key_passphrase_function)
+ PHP_FE(gnupg_deletekey, arginfo_gnupg_deletekey_function)
++#if GPGME_VERSION_NUMBER < 0x020000 /* GPGME < 2.0.0 */
+ PHP_FE(gnupg_gettrustlist, arginfo_gnupg_pattern_function)
++#endif
+ PHP_FE(gnupg_listsignatures, arginfo_gnupg_keyid_function)
+ PHP_FE(gnupg_seterrormode, arginfo_gnupg_errmode_function)
+ PHPC_FE_END
+@@ -1936,6 +1940,7 @@ PHP_FUNCTION(gnupg_deletekey)
+ }
+ /* }}} */
+
++#if GPGME_VERSION_NUMBER < 0x020000 /* GPGME < 2.0.0 */
+ /* {{{ proto array gnupg_gettrustlist(string pattern)
+ * searching for trust items which match PATTERN
+ */
+@@ -1980,6 +1985,7 @@ PHP_FUNCTION(gnupg_gettrustlist)
+ }
+ }
+ /* }}} */
++#endif
+
+ /* {{{ proto array gnupg_listsignatures(string keyid) */
+ PHP_FUNCTION(gnupg_listsignatures)
diff --git a/security/pinentry/Makefile b/security/pinentry/Makefile
index 3ba81d6e22ae..ba10a91f5e8a 100644
--- a/security/pinentry/Makefile
+++ b/security/pinentry/Makefile
@@ -36,7 +36,7 @@ NCURSES_RUN_DEPENDS= ${PINENTRY_NCURSES}:security/pinentry-curses
EFL_DESC= EFL frontend
PINENTRY_EFL= pinentry-efl
# Due to a dependency loop that exists between security/pinentry-efl,
-# devel/elf, graphics/poppler, security/gpgme-cpp, security/gpgme,
+# devel/elf, graphics/poppler, security/gpgmepp, security/gpgme,
# security/gnupg and security/pinentry, the user must install
# pinentry-efl manually. See pkg-message.dep-loop for more details.
#EFL_RUN_DEPENDS= ${PINENTRY_EFL}:security/pinentry-efl
diff --git a/security/py-gpg/Makefile b/security/py-gpg/Makefile
new file mode 100644
index 000000000000..582cb579dfc2
--- /dev/null
+++ b/security/py-gpg/Makefile
@@ -0,0 +1,43 @@
+PORTNAME= gpg
+PORTVERSION= 2.0.0
+CATEGORIES= security python
+MASTER_SITES= GNUPG/gpgmepy
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= gpgmepy-${PORTVERSION}
+
+MAINTAINER= jhale@FreeBSD.org
+COMMENT= Gpgme Python bindings
+
+LICENSE= LGPL21+
+LICENSE_FILE= ${WRKSRC}/COPYING.LESSER
+
+BUILD_DEPENDS= swig:devel/swig \
+ ${PY_SETUPTOOLS} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+
+LIB_DEPENDS= libassuan.so:security/libassuan \
+ libgpg-error.so:security/libgpg-error \
+ libgpgme.so:security/gpgme
+
+USES= gmake pkgconfig python:3.9+ tar:bzip2
+USE_PYTHON= autoplist pep517
+
+GNU_CONFIGURE= yes
+CONFIGURE_ENV= BSD_PYTHON="${PYTHON_CMD}" \
+ BSD_PYTHON_VERSION="${PYTHON_VER}"
+TEST_TARGET= check
+
+# Link src to the project name defined in pyproject.toml to deal with Python
+# conventions. This is done in the project build system, but we're just using
+# the configure part of the autotools and letting the FreeBSD python USES do
+# the main build.
+pre-build:
+ (cd ${BUILD_WRKSRC} && ${LN} -sf src ${PORTNAME})
+
+# Avoid patching the src 'copystamp' target, which tries to copy several files
+# to their original location, causing errors. ${BUILD_WRKSRC}/copystamp just
+# has to exist for the port 'test' target to function for our purposes.
+pre-test:
+ ${TOUCH} ${BUILD_WRKSRC}/copystamp
+
+.include <bsd.port.mk>
diff --git a/security/py-gpg/distinfo b/security/py-gpg/distinfo
new file mode 100644
index 000000000000..c0e4e0940c09
--- /dev/null
+++ b/security/py-gpg/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1750492472
+SHA256 (gpgmepy-2.0.0.tar.bz2) = 07e1265648ff51da238c9af7a18b3f1dc7b0c66b4f21a72f27c74b396cd3336d
+SIZE (gpgmepy-2.0.0.tar.bz2) = 575963
diff --git a/security/py-gpg/files/patch-configure.ac b/security/py-gpg/files/patch-configure.ac
new file mode 100644
index 000000000000..d60e14dfd05d
--- /dev/null
+++ b/security/py-gpg/files/patch-configure.ac
@@ -0,0 +1,19 @@
+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.
+
+--- configure.ac.orig 2025-06-17 08:21:23 UTC
++++ configure.ac
+@@ -326,6 +326,10 @@ else
+ ], :, m4_if(mym4pythonver,[any],[],[python]mym4pythonver))
+ ])
+
++ # 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)"
diff --git a/security/py-gpg/files/patch-pyproject.toml b/security/py-gpg/files/patch-pyproject.toml
new file mode 100644
index 000000000000..f2a281e724c2
--- /dev/null
+++ b/security/py-gpg/files/patch-pyproject.toml
@@ -0,0 +1,13 @@
+Since we don't have a "swig" python package to look for, this breaks the
+build. Swig detection, however, is done locally by the ports system and
+the configure script.
+
+--- pyproject.toml.orig 2025-06-17 08:21:23 UTC
++++ pyproject.toml
+@@ -59,5 +59,5 @@ content-type = "text/plain"
+
+ [build-system]
+ # Minimum requirements for the build system to execute.
+-requires = ["setuptools", "swig"]
++requires = ["setuptools"]
+ build-backend = "setuptools.build_meta"
diff --git a/security/py-gpg/pkg-descr b/security/py-gpg/pkg-descr
new file mode 100644
index 000000000000..331ded45d4d4
--- /dev/null
+++ b/security/py-gpg/pkg-descr
@@ -0,0 +1,3 @@
+Python bindings for the GpgME library, offering a high-level and curated
+interface, as well as an idiomatic interface implemented as a shim,
+automatically created using SWIG, on top of the low-level interface.
diff --git a/security/py-gpgme/Makefile b/security/py-gpgme/Makefile
deleted file mode 100644
index b79f2dd23518..000000000000
--- a/security/py-gpgme/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-PORTREVISION= 0
-CATEGORIES= security python
-PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
-
-MAINTAINER= jhale@FreeBSD.org
-COMMENT= Gpgme Python bindings
-
-MASTERDIR= ${.CURDIR:H:H}/security/gpgme
-PLIST= ${.CURDIR}/pkg-plist
-
-_GPGME_BINDING= python
-
-post-install:
- ${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/gpg/_gpgme*.so
-
-.include "${MASTERDIR}/Makefile"
diff --git a/security/py-gpgme/pkg-plist b/security/py-gpgme/pkg-plist
deleted file mode 100644
index 8650d7182e84..000000000000
--- a/security/py-gpgme/pkg-plist
+++ /dev/null
@@ -1,89 +0,0 @@
-%%PYTHON_SITELIBDIR%%/gpg-%%VERSION%%-py%%PYTHON_VER%%.egg-info/PKG-INFO
-%%PYTHON_SITELIBDIR%%/gpg-%%VERSION%%-py%%PYTHON_VER%%.egg-info/SOURCES.txt
-%%PYTHON_SITELIBDIR%%/gpg-%%VERSION%%-py%%PYTHON_VER%%.egg-info/dependency_links.txt
-%%PYTHON_SITELIBDIR%%/gpg-%%VERSION%%-py%%PYTHON_VER%%.egg-info/top_level.txt
-%%PYTHON_SITELIBDIR%%/gpg/__init__.py
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/__init__%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/callbacks%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/callbacks%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/core%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/core%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/errors%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/errors%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/gpgme%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/gpgme%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/results%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/results%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/util%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/util%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/version%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/__pycache__/version%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/_gpgme%%PYTHON_TAG%%.so
-%%PYTHON_SITELIBDIR%%/gpg/callbacks.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/__init__.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/__init__%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/create%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/create%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/event%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/event%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/import_type%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/import_type%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/keysign%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/keysign%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/md%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/md%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/pk%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/pk%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/protocol%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/protocol%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/sigsum%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/sigsum%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/status%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/status%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/validity%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/__pycache__/validity%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/create.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/data/__init__.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/data/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/data/__pycache__/__init__%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/data/__pycache__/encoding%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/data/__pycache__/encoding%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/data/encoding.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/event.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/import_type.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/keylist/__init__.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/keylist/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/keylist/__pycache__/__init__%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/keylist/__pycache__/mode%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/keylist/__pycache__/mode%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/keylist/mode.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/keysign.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/md.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/pk.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/protocol.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/sig/__init__.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/sig/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/sig/__pycache__/__init__%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/sig/__pycache__/mode%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/sig/__pycache__/mode%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/sig/__pycache__/notation%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/sig/__pycache__/notation%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/sig/mode.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/sig/notation.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/sigsum.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/status.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/tofu/__init__.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/tofu/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/tofu/__pycache__/__init__%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/tofu/__pycache__/policy%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/tofu/__pycache__/policy%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/gpg/constants/tofu/policy.py
-%%PYTHON_SITELIBDIR%%/gpg/constants/validity.py
-%%PYTHON_SITELIBDIR%%/gpg/core.py
-%%PYTHON_SITELIBDIR%%/gpg/errors.py
-%%PYTHON_SITELIBDIR%%/gpg/gpgme.py
-%%PYTHON_SITELIBDIR%%/gpg/results.py
-%%PYTHON_SITELIBDIR%%/gpg/util.py
-%%PYTHON_SITELIBDIR%%/gpg/version.py
diff --git a/security/qgpgme/Makefile b/security/qgpgme/Makefile
new file mode 100644
index 000000000000..f45cb981a8f8
--- /dev/null
+++ b/security/qgpgme/Makefile
@@ -0,0 +1,55 @@
+PORTNAME= qgpgme
+PORTVERSION= 2.0.0
+CATEGORIES= security
+MASTER_SITES= GNUPG
+PKGNAMESUFFIX= -${FLAVOR}
+
+MAINTAINER= jhale@FreeBSD.org
+COMMENT= GnuPG Made Easy (GPGME) Qt bindings
+WWW= https://gnupg.org/software/gpgme/index.html
+
+LICENSE= GPLv2+
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+LIB_DEPENDS= libgpg-error.so:security/libgpg-error \
+ libgpgme.so:security/gpgme \
+ libgpgmepp.so:security/gpgmepp
+
+FLAVORS= qt6 qt5
+FLAVOR?= ${FLAVORS:[1]}
+
+USES= cmake:testing compiler:c++17-lang pkgconfig \
+ qt:${FLAVOR:S|qt||} tar:xz
+USE_LDCONFIG= yes
+_USE_QT_qt5= core buildtools:build qmake:build testlib:test
+_USE_QT_qt6= base
+USE_QT= ${_USE_QT_${FLAVOR}}
+
+CMAKE_ON= BUILD_WITH_${FLAVOR:tu}
+_CMAKE_OFF_qt5= BUILD_WITH_QT6
+_CMAKE_OFF_qt6= BUILD_WITH_QT5
+CMAKE_OFF= BUILD_TESTING \
+ ${_CMAKE_OFF_${FLAVOR}}
+
+DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
+_PLIST_SUB_qt5= QGPGME_CMAKE_SUFFIX="" \
+ QGPGME_LIB_SUFFIX=""
+_PLIST_SUB_qt6= QGPGME_CMAKE_SUFFIX="Qt6" \
+ QGPGME_LIB_SUFFIX="qt6"
+PLIST_SUB= QGPGME_INCLUDE_SUFFIX="${FLAVOR}" \
+ ${_PLIST_SUB_${FLAVOR}}
+
+OPTIONS_DEFINE= DOXYGEN
+
+DOXYGEN_BUILD_DEPENDS= doxygen:devel/doxygen \
+ dot:graphics/graphviz
+DOXYGEN_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_Doxygen
+
+post-install-DOXYGEN-on:
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}/html
+ cd ${BUILD_WRKSRC}/doc/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.mk>
diff --git a/security/qgpgme/distinfo b/security/qgpgme/distinfo
new file mode 100644
index 000000000000..86a926dc2776
--- /dev/null
+++ b/security/qgpgme/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1750277661
+SHA256 (qgpgme-2.0.0.tar.xz) = 15645b2475cca6118eb2ed331b3a8d9442c9d4019c3846ba3f6d25321b4a61ad
+SIZE (qgpgme-2.0.0.tar.xz) = 188552
diff --git a/security/qgpgme/pkg-descr b/security/qgpgme/pkg-descr
new file mode 100644
index 000000000000..79dc974a22a3
--- /dev/null
+++ b/security/qgpgme/pkg-descr
@@ -0,0 +1,15 @@
+QGpgme provides a very high level Qt API around GpgMEpp, the GPGME C++
+bindings.
+
+There are two general concepts in QGpgME. Data abstraction through
+GpgMEpp's Dataprovider interface and the Job pattern.
+
+Data can be provided with QByteArrayDataProvider or QIODeviceDataProvider
+which can be constructed from their respective types. This means you can
+pass a QFile, QProcess, QString, etc. directly to GPGME.
+
+To provide a stable API / ABI and because of historic reasons in libkleo
+(where QGpgME was originally developed as an abstract crypto backend),
+QGpgME only provides abstract interfaces as public API while the actual
+implementation happens in the private QGpgME prefixed classes.
+
diff --git a/security/gpgme-qt/pkg-plist b/security/qgpgme/pkg-plist
index 5fcfbc386950..e4b0eb3711f3 100644
--- a/security/gpgme-qt/pkg-plist
+++ b/security/qgpgme/pkg-plist
@@ -19,7 +19,6 @@ include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/EncryptJob
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ExportJob
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/FileListDataProvider
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/GpgCardJob
-include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/HierarchicalKeyListJob
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ImportFromKeyserverJob
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/ImportJob
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/QGpgME/Job
@@ -69,7 +68,6 @@ include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/encryptjob.h
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/exportjob.h
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/filelistdataprovider.h
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/gpgcardjob.h
-include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/hierarchicalkeylistjob.h
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/importfromkeyserverjob.h
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/importjob.h
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/job.h
@@ -100,8 +98,12 @@ include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/wkdlookupjob.h
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/wkdlookupresult.h
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/wkdrefreshjob.h
include/qgpgme-%%QGPGME_INCLUDE_SUFFIX%%/qgpgme/wkspublishjob.h
+lib/cmake/QGpgme%%QGPGME_CMAKE_SUFFIX%%/FindGpgme.cmake
+lib/cmake/QGpgme%%QGPGME_CMAKE_SUFFIX%%/FindLibGpgError.cmake
lib/cmake/QGpgme%%QGPGME_CMAKE_SUFFIX%%/QGpgme%%QGPGME_CMAKE_SUFFIX%%Config.cmake
lib/cmake/QGpgme%%QGPGME_CMAKE_SUFFIX%%/QGpgme%%QGPGME_CMAKE_SUFFIX%%ConfigVersion.cmake
+lib/cmake/QGpgme%%QGPGME_CMAKE_SUFFIX%%/QGpgme%%QGPGME_CMAKE_SUFFIX%%Targets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/QGpgme%%QGPGME_CMAKE_SUFFIX%%/QGpgme%%QGPGME_CMAKE_SUFFIX%%Targets.cmake
lib/libqgpgme%%QGPGME_LIB_SUFFIX%%.so
lib/libqgpgme%%QGPGME_LIB_SUFFIX%%.so.15
-lib/libqgpgme%%QGPGME_LIB_SUFFIX%%.so.15.6.2
+lib/libqgpgme%%QGPGME_LIB_SUFFIX%%.so.15.7.0
diff --git a/security/seahorse/Makefile b/security/seahorse/Makefile
index 86fdecd11037..ea8134385c8b 100644
--- a/security/seahorse/Makefile
+++ b/security/seahorse/Makefile
@@ -5,6 +5,9 @@ CATEGORIES= security gnome
MASTER_SITES= GNOME
DIST_SUBDIR= gnome
+PATCH_SITES= https://gitlab.gnome.org/GNOME/seahorse/-/commit/
+PATCHFILES+= aa68522cc696fa491ccfdff735b77bcf113168d0.patch:-p1 # Fix build with GpgME 2.0.0
+
MAINTAINER= gnome@FreeBSD.org
COMMENT= GNOME application for managing encryption keys (PGP, SSH)
WWW= https://wiki.gnome.org/Apps/Seahorse
diff --git a/security/seahorse/distinfo b/security/seahorse/distinfo
index 2a5f46d36685..614fbb838ea0 100644
--- a/security/seahorse/distinfo
+++ b/security/seahorse/distinfo
@@ -1,3 +1,5 @@
-TIMESTAMP = 1633281709
+TIMESTAMP = 1750438455
SHA256 (gnome/seahorse-41.0.tar.xz) = e6eec09e810448295f547f18c1d5772b65c3edc1d9e5a2595f10b5dde68929f5
SIZE (gnome/seahorse-41.0.tar.xz) = 1371984
+SHA256 (gnome/aa68522cc696fa491ccfdff735b77bcf113168d0.patch) = 026b9ab0bce4b670cc3dd0910cdd5551e5965a32f07e19374c944fd7624bea78
+SIZE (gnome/aa68522cc696fa491ccfdff735b77bcf113168d0.patch) = 715
diff --git a/sysutils/dnf/Makefile b/sysutils/dnf/Makefile
index ddc5c03a4792..ffde2094bd61 100644
--- a/sysutils/dnf/Makefile
+++ b/sysutils/dnf/Makefile
@@ -12,7 +12,7 @@ LICENSE_FILE= ${WRKSRC}/COPYING
RUN_DEPENDS= libcomps>0:misc/libcomps \
libdnf>0:sysutils/libdnf \
rpm4>0:archivers/rpm4 \
- ${PYTHON_PKGNAMEPREFIX}gpgme>0:security/py-gpgme@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR}
USES= cmake gettext-tools python
diff --git a/sysutils/kf5-kwallet/Makefile b/sysutils/kf5-kwallet/Makefile
index efce12e80700..85109b9fc46f 100644
--- a/sysutils/kf5-kwallet/Makefile
+++ b/sysutils/kf5-kwallet/Makefile
@@ -12,9 +12,9 @@ LIB_DEPENDS= libassuan.so:security/libassuan \
libgcrypt.so:security/libgcrypt \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
- libgpgmepp.so:security/gpgme-cpp \
+ libgpgmepp.so:security/gpgmepp \
libqca-qt5.so:devel/qca@qt5 \
- libqgpgme.so:security/gpgme-qt@qt5
+ libqgpgme.so:security/qgpgme@qt5
USES= cmake compiler:c++11-lib gettext kde:5 qt:5 tar:xz xorg
USE_KDE= auth codecs config configwidgets coreaddons dbusaddons \
diff --git a/sysutils/kf6-kwallet/Makefile b/sysutils/kf6-kwallet/Makefile
index 202b1b62d2f6..db64a57761d0 100644
--- a/sysutils/kf6-kwallet/Makefile
+++ b/sysutils/kf6-kwallet/Makefile
@@ -9,7 +9,7 @@ LIB_DEPENDS= libassuan.so:security/libassuan \
libgcrypt.so:security/libgcrypt \
libsecret-1.so:security/libsecret \
libgpgme.so:security/gpgme \
- libgpgmepp.so:security/gpgme-cpp \
+ libgpgmepp.so:security/gpgmepp \
libqca-qt6.so:devel/qca@qt6
USES= cmake gettext-tools gl kde:6 pkgconfig qt:6 tar:xz xorg
diff --git a/sysutils/plasma-pass/Makefile b/sysutils/plasma-pass/Makefile
index fe41409493a1..5b311cdc7ef3 100644
--- a/sysutils/plasma-pass/Makefile
+++ b/sysutils/plasma-pass/Makefile
@@ -13,9 +13,9 @@ LICENSE_FILE= ${WRKSRC}/LICENSES/LGPL-2.1-or-later.txt
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 \
liboath.so:security/oath-toolkit \
- libqgpgmeqt6.so:security/gpgme-qt@qt6
+ libqgpgmeqt6.so:security/qgpgme@qt6
RUN_DEPENDS= pass:sysutils/password-store
USES= cmake compiler:c++20-lang gettext kde:6 qt:6 tar:xz