Index | Thread | Search

From:
Rafael Sadowski <rafael@sizeofvoid.org>
Subject:
Re: UPDATE: security/gpgme and new security/{qgpgme,gpgmepp}
To:
ports@openbsd.org
Date:
Fri, 19 Dec 2025 13:18:22 +0100

Download raw body.

Thread
On Fri Dec 19, 2025 at 12:56:14PM +0100, Rafael Sadowski wrote:
> Hi all,
> 
> pere is a suggestion for updating gpgme to 2.0.x. With 2.0,
> gpgmepp and qgpgme were split into separate ports. qgpgmeqt und
> gpgmepp attached.
> 
> I kept the shared lib version and set the corresponding @pkgpath
> and @conflict. The update process works.
> 
> What is missing here is the entry devel/quirks and the renames in
> the consumers, including bumps.
> 
> OK?
> 

Here is a full diff with tweaks from sthen@ (Thanks):


diff --git a/devel/quirks/Makefile b/devel/quirks/Makefile
index 3a47f0626c3..cb3820def4c 100644
--- a/devel/quirks/Makefile
+++ b/devel/quirks/Makefile
@@ -3,7 +3,7 @@ CATEGORIES =	devel databases
 DISTFILES =
 
 # API.rev
-PKGNAME =	quirks-7.167
+PKGNAME =	quirks-7.168
 PKG_ARCH =	*
 MAINTAINER =	Marc Espie <espie@openbsd.org>
 
diff --git a/devel/quirks/files/Quirks.pm b/devel/quirks/files/Quirks.pm
index 2e1de5805a6..773d7cb0307 100644
--- a/devel/quirks/files/Quirks.pm
+++ b/devel/quirks/files/Quirks.pm
@@ -499,6 +499,7 @@ my $stem_extensions = {
 	'g95' => 'gfortran',
 	'py-dns' => 'py3-dns',
 	'py-game' => 'py3-game',
+	'gpgme-qt' => 'qgpgme',
 };
 
 my $obsolete_reason = {};
diff --git a/productivity/kmymoney/Makefile b/productivity/kmymoney/Makefile
index 43d01b28db1..79cbc644f65 100644
--- a/productivity/kmymoney/Makefile
+++ b/productivity/kmymoney/Makefile
@@ -4,6 +4,7 @@ COMMENT =	personal finance manager
 
 V =		5.2.1
 DISTNAME =	kmymoney-${V}
+REVISION =	0
 
 CATEGORIES =	productivity x11
 
@@ -109,7 +110,7 @@ LIB_DEPENDS =		databases/db/v4 \
 			graphics/kdiagram-qt6 \
 			productivity/libalkimia>=8.2.1 \
 			security/qtkeychain,qt6 \
-			security/gpgme,-qt \
+			security/qgpgme \
 			security/libassuan \
 			textproc/icu4c \
 			textproc/libical \
diff --git a/security/gpgme/Makefile b/security/gpgme/Makefile
index 87a1ce13c78..e6d100acab5 100644
--- a/security/gpgme/Makefile
+++ b/security/gpgme/Makefile
@@ -1,17 +1,11 @@
-COMMENT-main =	GnuPG Made Easy
-COMMENT-qt =	Qt bindings for GPGme
+COMMENT=	GnuPG Made Easy
 
-VERSION =	1.24.3
-REVISION-main =	0
+VERSION =	2.0.1
 DISTNAME =	gpgme-${VERSION}
-PKGNAME-main =	gpgme-${VERSION}
-PKGNAME-qt =	gpgme-qt-${VERSION}
 
 CATEGORIES =	security devel
 
-SHARED_LIBS +=  gpgme                24.3     # 44.1
-SHARED_LIBS +=  gpgmepp              3.4      # 27.1
-SHARED_LIBS +=  qgpgmeqt6            0.1      # 21.1
+SHARED_LIBS +=  gpgme                25.0     # 44.1
 
 HOMEPAGE =	https://www.gnupg.org/software/gpgme/
 
@@ -21,54 +15,21 @@ EXTRACT_SUFX =	.tar.bz2
 # GPLv2 - LGPLv2.1
 PERMIT_PACKAGE=	Yes
 
-WANTLIB =	assuan gpg-error iconv intl
-WANTLIB-main =	${WANTLIB} c m pthread
-WANTLIB-qt =	${COMPILER_LIBCXX} ${WANTLIB} b2 Qt6Core double-conversion
-WANTLIB-qt +=	execinfo glib-2.0 gpgme gthread-2.0 icudata icui18n icuuc
-WANTLIB-qt +=	m pcre2-8 pcre2-16 z zstd
+WANTLIB += assuan c gpg-error iconv intl m pthread
 
-COMPILER =	base-clang ports-gcc
-
-MULTI_PACKAGES =	-main -qt
-PSEUDO_FLAVORS =	no_qt
-FLAVOR ?=
-
-# don't depend on Qt6 on arches where it's known to fail
-NOT_FOR_ARCHS-qt =	alpha mips64 sh
+COMPILER =		base-clang ports-gcc
+COMPILER_LANGS =	c
 
 CONFIGURE_STYLE =	gnu
 
-BUILD_DEPENDS =		security/gnupg>=2.2.23p1
-RUN_DEPENDS =		security/gnupg>=2.2.23p1
-LIB_DEPENDS-main =	${LIB_DEPENDS:N*qt*} \
-			devel/gettext,-runtime \
-			security/libgpg-error>=1.4 \
-			security/libassuan
-
-CONFIGURE_ENV +=	CPPFLAGS="-I${LOCALBASE}/include" \
-			LDFLAGS="-L${LOCALBASE}/lib" \
-			ac_cv_prog_DOXYGEN=false
+BUILD_DEPENDS =		security/gnupg
+RUN_DEPENDS =		security/gnupg
 
-.include <bsd.port.arch.mk>
-
-.if ${BUILD_PACKAGES:M-qt}
-MODULES +=		x11/qt6
-MODQT6_DEPS =		Yes
-MODQT6_ENV_SETUP =	Yes
-CONFIGURE_ARGS +=	--enable-languages='cpp qt6'
-LIB_DEPENDS-qt +=	${LIB_DEPENDS} \
-			gpgme-=${VERSION}:${BUILD_PKGPATH},-main
-.else
-COMPILER_LANGS =	c
-CONFIGURE_ARGS +=	--enable-languages=''
-.endif
+LIB_DEPENDS =		devel/gettext,-runtime \
+			security/libgpg-error \
+			security/libassuan
 
 # needed for the regression tests
 USE_GMAKE =		Yes
 
-pre-configure:
-	${SUBST_CMD} ${WRKSRC}/lang/cpp/src/GpgmeppConfig.cmake.in.in \
-		${WRKSRC}/lang/qt/src/QGpgmeQt6Config.cmake.in.in \
-		${WRKSRC}/lang/qt/src/QGpgmeConfig.cmake.in.in
-
 .include <bsd.port.mk>
diff --git a/security/gpgme/distinfo b/security/gpgme/distinfo
index ab4de85e037..00354e52e5d 100644
--- a/security/gpgme/distinfo
+++ b/security/gpgme/distinfo
@@ -1,2 +1,2 @@
-SHA256 (gpgme-1.24.3.tar.bz2) = v8F/W9GxeMhkn92RiVbSdwgPM98Aai3ECs3s3OaMUN0=
-SIZE (gpgme-1.24.3.tar.bz2) = 1892862
+SHA256 (gpgme-2.0.1.tar.bz2) = ghqwaVyELqtRdSqBmAySsEEMfq3QQQP3kdXSpSZ4SWY=
+SIZE (gpgme-2.0.1.tar.bz2) = 1392080
diff --git a/security/gpgme/patches/patch-configure b/security/gpgme/patches/patch-configure
index e7f007b76c1..a6a0cdb9f2b 100644
--- a/security/gpgme/patches/patch-configure
+++ b/security/gpgme/patches/patch-configure
@@ -1,7 +1,7 @@
 Index: configure
 --- configure.orig
 +++ configure
-@@ -30263,7 +30263,6 @@ printf "%s\n" "$_gcc_wopt" >&6; }
+@@ -16166,7 +16166,6 @@ printf "%s\n" "$_gcc_wopt" >&6; }
        CFLAGS="$CFLAGS -Wno-missing-field-initializers"
        CFLAGS="$CFLAGS -Wno-sign-compare"
        CFLAGS="$CFLAGS -Wno-format-zero-length"
diff --git a/security/gpgme/patches/patch-lang_cpp_src_GpgmeppConfig_cmake_in_in b/security/gpgme/patches/patch-lang_cpp_src_GpgmeppConfig_cmake_in_in
deleted file mode 100644
index f83e08c621d..00000000000
--- a/security/gpgme/patches/patch-lang_cpp_src_GpgmeppConfig_cmake_in_in
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: lang/cpp/src/GpgmeppConfig.cmake.in.in
---- lang/cpp/src/GpgmeppConfig.cmake.in.in.orig
-+++ lang/cpp/src/GpgmeppConfig.cmake.in.in
-@@ -63,8 +63,8 @@ add_library(Gpgmepp SHARED IMPORTED)
- 
- set_target_properties(Gpgmepp PROPERTIES
-   INTERFACE_INCLUDE_DIRECTORIES "@resolved_includedir@/gpgme++;@resolved_includedir@"
--  INTERFACE_LINK_LIBRARIES "pthread;@resolved_libdir@/libgpgme@libsuffix@;@LIBASSUAN_LIBS@"
--  IMPORTED_LOCATION "@resolved_libdir@/libgpgmepp@libsuffix@"
-+  INTERFACE_LINK_LIBRARIES "pthread;@resolved_libdir@/libgpgme@libsuffix@.${LIBgpgme_VERSION};@LIBASSUAN_LIBS@"
-+  IMPORTED_LOCATION "@resolved_libdir@/libgpgmepp@libsuffix@.${LIBgpgmepp_VERSION}"
- )
- 
- if(CMAKE_VERSION VERSION_LESS 2.8.12)
diff --git a/security/gpgme/patches/patch-lang_cpp_tests_Makefile_in b/security/gpgme/patches/patch-lang_cpp_tests_Makefile_in
deleted file mode 100644
index 6288db9c3be..00000000000
--- a/security/gpgme/patches/patch-lang_cpp_tests_Makefile_in
+++ /dev/null
@@ -1,14 +0,0 @@
-- do not hard-code libstdc++, it may not exist on all platforms
-
-Index: lang/cpp/tests/Makefile.in
---- lang/cpp/tests/Makefile.in.orig
-+++ lang/cpp/tests/Makefile.in
-@@ -442,7 +442,7 @@ top_srcdir = @top_srcdir@
- AM_LDFLAGS = -no-install
- LDADD = ../../cpp/src/libgpgmepp.la \
-         ../../../src/libgpgme.la @GPG_ERROR_LIBS@ \
--        @LDADD_FOR_TESTS_KLUDGE@ -lstdc++
-+        @LDADD_FOR_TESTS_KLUDGE@
- 
- AM_CPPFLAGS = -I$(top_srcdir)/lang/cpp/src -I$(top_builddir)/src \
-               @GPG_ERROR_CFLAGS@ @GPG_ERROR_CFLAGS@ \
diff --git a/security/gpgme/patches/patch-lang_qt_Makefile_in b/security/gpgme/patches/patch-lang_qt_Makefile_in
deleted file mode 100644
index 3e9efd450c0..00000000000
--- a/security/gpgme/patches/patch-lang_qt_Makefile_in
+++ /dev/null
@@ -1,15 +0,0 @@
-don't allow doxygen to run even if installed, something with the files
-(at least as of 1.17.1) is causing it to eat huge amounts of memory
-
-Index: lang/qt/Makefile.in
---- lang/qt/Makefile.in.orig
-+++ lang/qt/Makefile.in
-@@ -426,7 +426,7 @@ top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- @RUN_GPG_TESTS_FALSE@tests = 
- @RUN_GPG_TESTS_TRUE@tests = tests
--SUBDIRS = src ${tests} doc
-+SUBDIRS = src ${tests}
- EXTRA_DIST = README
- all: all-recursive
- 
diff --git a/security/gpgme/patches/patch-lang_qt_src_QGpgmeQt6Config_cmake_in_in b/security/gpgme/patches/patch-lang_qt_src_QGpgmeQt6Config_cmake_in_in
deleted file mode 100644
index 81eac551914..00000000000
--- a/security/gpgme/patches/patch-lang_qt_src_QGpgmeQt6Config_cmake_in_in
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: lang/qt/src/QGpgmeQt6Config.cmake.in.in
---- lang/qt/src/QGpgmeQt6Config.cmake.in.in.orig
-+++ lang/qt/src/QGpgmeQt6Config.cmake.in.in
-@@ -64,7 +64,7 @@ add_library(QGpgmeQt6 SHARED IMPORTED)
- set_target_properties(QGpgmeQt6 PROPERTIES
-   INTERFACE_INCLUDE_DIRECTORIES "@resolved_includedir@/qgpgme;@resolved_includedir@"
-   INTERFACE_LINK_LIBRARIES "Gpgmepp;Qt6::Core"
--  IMPORTED_LOCATION "@resolved_libdir@/libqgpgmeqt6@libsuffix@"
-+  IMPORTED_LOCATION "@resolved_libdir@/libqgpgmeqt6@libsuffix@.${LIBqgpgmeqt6_VERSION}"
- )
- 
- if(CMAKE_VERSION VERSION_LESS 2.8.12)
diff --git a/security/gpgme/patches/patch-lang_qt_tests_Makefile_in b/security/gpgme/patches/patch-lang_qt_tests_Makefile_in
deleted file mode 100644
index 8523ee9a4cc..00000000000
--- a/security/gpgme/patches/patch-lang_qt_tests_Makefile_in
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: lang/qt/tests/Makefile.in
---- lang/qt/tests/Makefile.in.orig
-+++ lang/qt/tests/Makefile.in
-@@ -1217,7 +1217,7 @@ AM_LDFLAGS = -no-install
- 
- @WANT_QT6_TRUE@ldadd_qt6 = ../../cpp/src/libgpgmepp.la ../src/libqgpgmeqt6.la \
- @WANT_QT6_TRUE@        ../../../src/libgpgme.la @GPGME_QT6_LIBS@ @GPG_ERROR_LIBS@ \
--@WANT_QT6_TRUE@        @GPGME_QT6TEST_LIBS@ @LDADD_FOR_TESTS_KLUDGE@ -lstdc++
-+@WANT_QT6_TRUE@        @GPGME_QT6TEST_LIBS@ @LDADD_FOR_TESTS_KLUDGE@
- 
- @WANT_QT6_TRUE@cppflags_qt6 = -I$(moc6_dir) -I$(top_srcdir)/lang/qt/src -I$(top_builddir)/lang/cpp/src \
- @WANT_QT6_TRUE@              -I$(top_builddir)/src \
diff --git a/security/gpgme/pkg/DESCR b/security/gpgme/pkg/DESCR
new file mode 100644
index 00000000000..a039950836f
--- /dev/null
+++ b/security/gpgme/pkg/DESCR
@@ -0,0 +1,7 @@
+GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG easier
+for applications.
+
+It provides a High-Level Crypto API for encryption, decryption, signing,
+signature verification and key management. Currently it uses GnuPG as it's
+backend but the API isn't restricted to this engine; in fact it is planned to
+add other backends to it.
diff --git a/security/gpgme/pkg/DESCR-main b/security/gpgme/pkg/DESCR-main
deleted file mode 100644
index 6a765f4f080..00000000000
--- a/security/gpgme/pkg/DESCR-main
+++ /dev/null
@@ -1,7 +0,0 @@
-GnuPG Made Easy (GPGME) is a library designed to make access to
-GnuPG easier for applications.
-
-It provides a High-Level Crypto API for encryption, decryption,
-signing, signature verification and key management.  Currently it
-uses GnuPG as it's backend but the API isn't restricted to this
-engine; in fact it is planned to add other backends to it.
diff --git a/security/gpgme/pkg/DESCR-qt b/security/gpgme/pkg/DESCR-qt
deleted file mode 100644
index d0ea53fcd01..00000000000
--- a/security/gpgme/pkg/DESCR-qt
+++ /dev/null
@@ -1 +0,0 @@
-Qt and C++  bindings for GnuPG Made Easy (GPGME).
diff --git a/security/gpgme/pkg/PLIST b/security/gpgme/pkg/PLIST
new file mode 100644
index 00000000000..8c19a961d87
--- /dev/null
+++ b/security/gpgme/pkg/PLIST
@@ -0,0 +1,18 @@
+@bin bin/gnupg-key-manage
+bin/gpgme-config
+@bin bin/gpgme-json
+@bin bin/gpgme-tool
+include/gpgme.h
+@info info/gpgme.info
+@static-lib lib/libgpgme.a
+lib/libgpgme.la
+@lib lib/libgpgme.so.${LIBgpgme_VERSION}
+lib/pkgconfig/gpgme-glib.pc
+lib/pkgconfig/gpgme.pc
+@man man/man1/gpgme-json.1
+share/aclocal/gpgme.m4
+share/common-lisp/source/gpgme/
+share/common-lisp/source/gpgme/gpgme-grovel.lisp
+share/common-lisp/source/gpgme/gpgme-package.lisp
+share/common-lisp/source/gpgme/gpgme.asd
+share/common-lisp/source/gpgme/gpgme.lisp
diff --git a/security/gpgme/pkg/PLIST-main b/security/gpgme/pkg/PLIST-main
deleted file mode 100644
index 464b80ae15d..00000000000
--- a/security/gpgme/pkg/PLIST-main
+++ /dev/null
@@ -1,13 +0,0 @@
-@pkgpath security/gpgme
-bin/gpgme-config
-@bin bin/gpgme-json
-@bin bin/gpgme-tool
-include/gpgme.h
-@info info/gpgme.info
-@static-lib lib/libgpgme.a
-lib/libgpgme.la
-@lib lib/libgpgme.so.${LIBgpgme_VERSION}
-lib/pkgconfig/gpgme-glib.pc
-lib/pkgconfig/gpgme.pc
-@man man/man1/gpgme-json.1
-share/aclocal/gpgme.m4
diff --git a/security/gpgme/pkg/PLIST-qt b/security/gpgme/pkg/PLIST-qt
deleted file mode 100644
index ed335063692..00000000000
--- a/security/gpgme/pkg/PLIST-qt
+++ /dev/null
@@ -1,162 +0,0 @@
-include/gpgme++/
-include/gpgme++/configuration.h
-include/gpgme++/context.h
-include/gpgme++/data.h
-include/gpgme++/decryptionresult.h
-include/gpgme++/defaultassuantransaction.h
-include/gpgme++/editinteractor.h
-include/gpgme++/encryptionresult.h
-include/gpgme++/engineinfo.h
-include/gpgme++/error.h
-include/gpgme++/eventloopinteractor.h
-include/gpgme++/exception.h
-include/gpgme++/global.h
-include/gpgme++/gpgaddexistingsubkeyeditinteractor.h
-include/gpgme++/gpgadduserideditinteractor.h
-include/gpgme++/gpgagentgetinfoassuantransaction.h
-include/gpgme++/gpggencardkeyinteractor.h
-include/gpgme++/gpgmefw.h
-include/gpgme++/gpgmepp_export.h
-include/gpgme++/gpgmepp_version.h
-include/gpgme++/gpgrevokekeyeditinteractor.h
-include/gpgme++/gpgsetexpirytimeeditinteractor.h
-include/gpgme++/gpgsetownertrusteditinteractor.h
-include/gpgme++/gpgsignkeyeditinteractor.h
-include/gpgme++/importresult.h
-include/gpgme++/interfaces/
-include/gpgme++/interfaces/assuantransaction.h
-include/gpgme++/interfaces/dataprovider.h
-include/gpgme++/interfaces/passphraseprovider.h
-include/gpgme++/interfaces/progressprovider.h
-include/gpgme++/interfaces/statusconsumer.h
-include/gpgme++/key.h
-include/gpgme++/keygenerationresult.h
-include/gpgme++/keylistresult.h
-include/gpgme++/notation.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
-include/qgpgme-qt6/
-include/qgpgme-qt6/QGpgME/
-include/qgpgme-qt6/QGpgME/AbstractImportJob
-include/qgpgme-qt6/QGpgME/AddExistingSubkeyJob
-include/qgpgme-qt6/QGpgME/AddUserIDJob
-include/qgpgme-qt6/QGpgME/ChangeExpiryJob
-include/qgpgme-qt6/QGpgME/ChangeOwnerTrustJob
-include/qgpgme-qt6/QGpgME/ChangePasswdJob
-include/qgpgme-qt6/QGpgME/CryptoConfig
-include/qgpgme-qt6/QGpgME/DN
-include/qgpgme-qt6/QGpgME/DataProvider
-include/qgpgme-qt6/QGpgME/Debug
-include/qgpgme-qt6/QGpgME/DecryptJob
-include/qgpgme-qt6/QGpgME/DecryptVerifyArchiveJob
-include/qgpgme-qt6/QGpgME/DecryptVerifyJob
-include/qgpgme-qt6/QGpgME/DefaultKeyGenerationJob
-include/qgpgme-qt6/QGpgME/DeleteJob
-include/qgpgme-qt6/QGpgME/DownloadJob
-include/qgpgme-qt6/QGpgME/EncryptArchiveJob
-include/qgpgme-qt6/QGpgME/EncryptJob
-include/qgpgme-qt6/QGpgME/ExportJob
-include/qgpgme-qt6/QGpgME/FileListDataProvider
-include/qgpgme-qt6/QGpgME/GpgCardJob
-include/qgpgme-qt6/QGpgME/HierarchicalKeyListJob
-include/qgpgme-qt6/QGpgME/ImportFromKeyserverJob
-include/qgpgme-qt6/QGpgME/ImportJob
-include/qgpgme-qt6/QGpgME/Job
-include/qgpgme-qt6/QGpgME/KeyForMailboxJob
-include/qgpgme-qt6/QGpgME/KeyGenerationJob
-include/qgpgme-qt6/QGpgME/KeyListJob
-include/qgpgme-qt6/QGpgME/ListAllKeysJob
-include/qgpgme-qt6/QGpgME/MultiDeleteJob
-include/qgpgme-qt6/QGpgME/Protocol
-include/qgpgme-qt6/QGpgME/QGpgMENewCryptoConfig
-include/qgpgme-qt6/QGpgME/QuickJob
-include/qgpgme-qt6/QGpgME/ReceiveKeysJob
-include/qgpgme-qt6/QGpgME/RefreshKeysJob
-include/qgpgme-qt6/QGpgME/RevokeKeyJob
-include/qgpgme-qt6/QGpgME/SetPrimaryUserIDJob
-include/qgpgme-qt6/QGpgME/SignArchiveJob
-include/qgpgme-qt6/QGpgME/SignEncryptArchiveJob
-include/qgpgme-qt6/QGpgME/SignEncryptJob
-include/qgpgme-qt6/QGpgME/SignJob
-include/qgpgme-qt6/QGpgME/SignKeyJob
-include/qgpgme-qt6/QGpgME/SpecialJob
-include/qgpgme-qt6/QGpgME/TofuPolicyJob
-include/qgpgme-qt6/QGpgME/VerifyDetachedJob
-include/qgpgme-qt6/QGpgME/VerifyOpaqueJob
-include/qgpgme-qt6/QGpgME/WKDLookupJob
-include/qgpgme-qt6/QGpgME/WKDLookupResult
-include/qgpgme-qt6/QGpgME/WKDRefreshJob
-include/qgpgme-qt6/QGpgME/WKSPublishJob
-include/qgpgme-qt6/qgpgme/
-include/qgpgme-qt6/qgpgme/abstractimportjob.h
-include/qgpgme-qt6/qgpgme/addexistingsubkeyjob.h
-include/qgpgme-qt6/qgpgme/adduseridjob.h
-include/qgpgme-qt6/qgpgme/changeexpiryjob.h
-include/qgpgme-qt6/qgpgme/changeownertrustjob.h
-include/qgpgme-qt6/qgpgme/changepasswdjob.h
-include/qgpgme-qt6/qgpgme/cryptoconfig.h
-include/qgpgme-qt6/qgpgme/dataprovider.h
-include/qgpgme-qt6/qgpgme/debug.h
-include/qgpgme-qt6/qgpgme/decryptjob.h
-include/qgpgme-qt6/qgpgme/decryptverifyarchivejob.h
-include/qgpgme-qt6/qgpgme/decryptverifyjob.h
-include/qgpgme-qt6/qgpgme/defaultkeygenerationjob.h
-include/qgpgme-qt6/qgpgme/deletejob.h
-include/qgpgme-qt6/qgpgme/dn.h
-include/qgpgme-qt6/qgpgme/downloadjob.h
-include/qgpgme-qt6/qgpgme/encryptarchivejob.h
-include/qgpgme-qt6/qgpgme/encryptjob.h
-include/qgpgme-qt6/qgpgme/exportjob.h
-include/qgpgme-qt6/qgpgme/filelistdataprovider.h
-include/qgpgme-qt6/qgpgme/gpgcardjob.h
-include/qgpgme-qt6/qgpgme/hierarchicalkeylistjob.h
-include/qgpgme-qt6/qgpgme/importfromkeyserverjob.h
-include/qgpgme-qt6/qgpgme/importjob.h
-include/qgpgme-qt6/qgpgme/job.h
-include/qgpgme-qt6/qgpgme/keyformailboxjob.h
-include/qgpgme-qt6/qgpgme/keygenerationjob.h
-include/qgpgme-qt6/qgpgme/keylistjob.h
-include/qgpgme-qt6/qgpgme/listallkeysjob.h
-include/qgpgme-qt6/qgpgme/multideletejob.h
-include/qgpgme-qt6/qgpgme/protocol.h
-include/qgpgme-qt6/qgpgme/qgpgme_export.h
-include/qgpgme-qt6/qgpgme/qgpgme_version.h
-include/qgpgme-qt6/qgpgme/qgpgmenewcryptoconfig.h
-include/qgpgme-qt6/qgpgme/quickjob.h
-include/qgpgme-qt6/qgpgme/receivekeysjob.h
-include/qgpgme-qt6/qgpgme/refreshkeysjob.h
-include/qgpgme-qt6/qgpgme/revokekeyjob.h
-include/qgpgme-qt6/qgpgme/setprimaryuseridjob.h
-include/qgpgme-qt6/qgpgme/signarchivejob.h
-include/qgpgme-qt6/qgpgme/signencryptarchivejob.h
-include/qgpgme-qt6/qgpgme/signencryptjob.h
-include/qgpgme-qt6/qgpgme/signjob.h
-include/qgpgme-qt6/qgpgme/signkeyjob.h
-include/qgpgme-qt6/qgpgme/specialjob.h
-include/qgpgme-qt6/qgpgme/tofupolicyjob.h
-include/qgpgme-qt6/qgpgme/verifydetachedjob.h
-include/qgpgme-qt6/qgpgme/verifyopaquejob.h
-include/qgpgme-qt6/qgpgme/wkdlookupjob.h
-include/qgpgme-qt6/qgpgme/wkdlookupresult.h
-include/qgpgme-qt6/qgpgme/wkdrefreshjob.h
-include/qgpgme-qt6/qgpgme/wkspublishjob.h
-lib/cmake/Gpgmepp/
-lib/cmake/Gpgmepp/GpgmeppConfig.cmake
-lib/cmake/Gpgmepp/GpgmeppConfigVersion.cmake
-lib/cmake/QGpgmeQt6/
-lib/cmake/QGpgmeQt6/QGpgmeQt6Config.cmake
-lib/cmake/QGpgmeQt6/QGpgmeQt6ConfigVersion.cmake
-@static-lib lib/libgpgmepp.a
-lib/libgpgmepp.la
-@lib lib/libgpgmepp.so.${LIBgpgmepp_VERSION}
-@static-lib lib/libqgpgmeqt6.a
-lib/libqgpgmeqt6.la
-@lib lib/libqgpgmeqt6.so.${LIBqgpgmeqt6_VERSION}
-lib/pkgconfig/gpgmepp.pc
diff --git a/security/gpgmepp/Makefile b/security/gpgmepp/Makefile
new file mode 100644
index 00000000000..c8ba69c8c09
--- /dev/null
+++ b/security/gpgmepp/Makefile
@@ -0,0 +1,26 @@
+COMMENT=	GnuPG Made Easy C++ bindings
+
+VERSION =	2.0.0
+DISTNAME =	gpgmepp-${VERSION}
+
+CATEGORIES =	security devel
+
+SHARED_LIBS +=  gpgmepp              4.0      # 27.1
+
+HOMEPAGE =	https://www.gnupg.org/software/gpgme/
+
+SITES =		${SITE_GNUPG:=gpgmepp/}
+EXTRACT_SUFX =	.tar.xz
+
+# GPLv2 - LGPLv2.1
+PERMIT_PACKAGE=	Yes
+
+WANTLIB += ${COMPILER_LIBCXX} gpgme m
+
+MODULES =		devel/cmake
+
+COMPILER =		base-clang ports-gcc
+
+LIB_DEPENDS =		security/gpgme>=2.0
+
+.include <bsd.port.mk>
diff --git a/security/gpgmepp/distinfo b/security/gpgmepp/distinfo
new file mode 100644
index 00000000000..45f6807f84c
--- /dev/null
+++ b/security/gpgmepp/distinfo
@@ -0,0 +1,2 @@
+SHA256 (gpgmepp-2.0.0.tar.xz) = 1HlgScBnCKJvMJb3SO8JU0fho8HlcFYXAf6VLD9WU4I=
+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 00000000000..258fe927bef
--- /dev/null
+++ b/security/gpgmepp/pkg/DESCR
@@ -0,0 +1 @@
+C++ bindings for GnuPG Made Easy (GPGME).
diff --git a/security/gpgmepp/pkg/PLIST b/security/gpgmepp/pkg/PLIST
new file mode 100644
index 00000000000..611e3177589
--- /dev/null
+++ b/security/gpgmepp/pkg/PLIST
@@ -0,0 +1,55 @@
+@conflict gpgme-qt-<=1.24.3
+include/gpgme++/
+include/gpgme++/configuration.h
+include/gpgme++/context.h
+include/gpgme++/data.h
+include/gpgme++/decryptionresult.h
+include/gpgme++/defaultassuantransaction.h
+include/gpgme++/editinteractor.h
+include/gpgme++/encryptionresult.h
+include/gpgme++/engineinfo.h
+include/gpgme++/error.h
+include/gpgme++/eventloopinteractor.h
+include/gpgme++/exception.h
+include/gpgme++/global.h
+include/gpgme++/gpgaddexistingsubkeyeditinteractor.h
+include/gpgme++/gpgadduserideditinteractor.h
+include/gpgme++/gpgagentgetinfoassuantransaction.h
+include/gpgme++/gpggencardkeyinteractor.h
+include/gpgme++/gpgmefw.h
+include/gpgme++/gpgmepp_export.h
+include/gpgme++/gpgmepp_version.h
+include/gpgme++/gpgrevokekeyeditinteractor.h
+include/gpgme++/gpgsetexpirytimeeditinteractor.h
+include/gpgme++/gpgsetownertrusteditinteractor.h
+include/gpgme++/gpgsignkeyeditinteractor.h
+include/gpgme++/importresult.h
+include/gpgme++/interfaces/
+include/gpgme++/interfaces/assuantransaction.h
+include/gpgme++/interfaces/dataprovider.h
+include/gpgme++/interfaces/passphraseprovider.h
+include/gpgme++/interfaces/progressprovider.h
+include/gpgme++/interfaces/statusconsumer.h
+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++/verificationresult.h
+include/gpgme++/vfsmountresult.h
+lib/cmake/
+lib/cmake/Gpgmepp/
+lib/cmake/Gpgmepp/FindGpgme.cmake
+lib/cmake/Gpgmepp/FindLibGpgError.cmake
+lib/cmake/Gpgmepp/GpgmeppConfig.cmake
+lib/cmake/Gpgmepp/GpgmeppConfigVersion.cmake
+lib/cmake/Gpgmepp/GpgmeppTargets${MODCMAKE_BUILD_SUFFIX}
+lib/cmake/Gpgmepp/GpgmeppTargets.cmake
+@lib lib/libgpgmepp.so.${LIBgpgmepp_VERSION}
+lib/pkgconfig/gpgmepp.pc
diff --git a/security/qgpgme/Makefile b/security/qgpgme/Makefile
new file mode 100644
index 00000000000..532523cbbbf
--- /dev/null
+++ b/security/qgpgme/Makefile
@@ -0,0 +1,31 @@
+COMMENT=	GnuPG Made Easy Qt bindings
+
+VERSION =	2.0.0
+DISTNAME =	qgpgme-${VERSION}
+
+CATEGORIES =	security devel
+
+HOMEPAGE =	https://www.gnupg.org/software/gpgme/
+
+SHARED_LIBS +=  qgpgmeqt6            1.0      # 21.1
+
+SITES =		${SITE_GNUPG:=qgpgme/}
+EXTRACT_SUFX =	.tar.xz
+
+# GPLv2 - LGPLv2.1
+PERMIT_PACKAGE=	Yes
+
+WANTLIB += ${COMPILER_LIBCXX} Qt6Core gpg-error gpgme gpgmepp
+WANTLIB += m
+
+MODULES =		devel/cmake \
+			x11/qt6
+
+COMPILER =		base-clang ports-gcc
+
+LIB_DEPENDS =		security/gpgme>=2.0 \
+			security/gpgmepp>=2.0 \
+
+CONFIGURE_ARGS =	-DBUILD_WITH_QT5=OFF
+
+.include <bsd.port.mk>
diff --git a/security/qgpgme/distinfo b/security/qgpgme/distinfo
new file mode 100644
index 00000000000..b2791adb8a9
--- /dev/null
+++ b/security/qgpgme/distinfo
@@ -0,0 +1,2 @@
+SHA256 (qgpgme-2.0.0.tar.xz) = FWRbJHXMphGOsu0zGzqNlELJ1AGcOEa6P20lMhtKYa0=
+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 00000000000..c75bded1db6
--- /dev/null
+++ b/security/qgpgme/pkg/DESCR
@@ -0,0 +1 @@
+Qt bindings for GnuPG Made Easy (GPGME).
diff --git a/security/qgpgme/pkg/PLIST b/security/qgpgme/pkg/PLIST
new file mode 100644
index 00000000000..692236251e8
--- /dev/null
+++ b/security/qgpgme/pkg/PLIST
@@ -0,0 +1,113 @@
+@conflict gpgme-qt-<=1.24.3
+include/qgpgme-qt6/
+include/qgpgme-qt6/QGpgME/
+include/qgpgme-qt6/QGpgME/AbstractImportJob
+include/qgpgme-qt6/QGpgME/AddExistingSubkeyJob
+include/qgpgme-qt6/QGpgME/AddUserIDJob
+include/qgpgme-qt6/QGpgME/ChangeExpiryJob
+include/qgpgme-qt6/QGpgME/ChangeOwnerTrustJob
+include/qgpgme-qt6/QGpgME/ChangePasswdJob
+include/qgpgme-qt6/QGpgME/CryptoConfig
+include/qgpgme-qt6/QGpgME/DN
+include/qgpgme-qt6/QGpgME/DataProvider
+include/qgpgme-qt6/QGpgME/Debug
+include/qgpgme-qt6/QGpgME/DecryptJob
+include/qgpgme-qt6/QGpgME/DecryptVerifyArchiveJob
+include/qgpgme-qt6/QGpgME/DecryptVerifyJob
+include/qgpgme-qt6/QGpgME/DefaultKeyGenerationJob
+include/qgpgme-qt6/QGpgME/DeleteJob
+include/qgpgme-qt6/QGpgME/DownloadJob
+include/qgpgme-qt6/QGpgME/EncryptArchiveJob
+include/qgpgme-qt6/QGpgME/EncryptJob
+include/qgpgme-qt6/QGpgME/ExportJob
+include/qgpgme-qt6/QGpgME/FileListDataProvider
+include/qgpgme-qt6/QGpgME/GpgCardJob
+include/qgpgme-qt6/QGpgME/ImportFromKeyserverJob
+include/qgpgme-qt6/QGpgME/ImportJob
+include/qgpgme-qt6/QGpgME/Job
+include/qgpgme-qt6/QGpgME/KeyForMailboxJob
+include/qgpgme-qt6/QGpgME/KeyGenerationJob
+include/qgpgme-qt6/QGpgME/KeyListJob
+include/qgpgme-qt6/QGpgME/ListAllKeysJob
+include/qgpgme-qt6/QGpgME/MultiDeleteJob
+include/qgpgme-qt6/QGpgME/Protocol
+include/qgpgme-qt6/QGpgME/QGpgMENewCryptoConfig
+include/qgpgme-qt6/QGpgME/QuickJob
+include/qgpgme-qt6/QGpgME/ReceiveKeysJob
+include/qgpgme-qt6/QGpgME/RefreshKeysJob
+include/qgpgme-qt6/QGpgME/RevokeKeyJob
+include/qgpgme-qt6/QGpgME/SetPrimaryUserIDJob
+include/qgpgme-qt6/QGpgME/SignArchiveJob
+include/qgpgme-qt6/QGpgME/SignEncryptArchiveJob
+include/qgpgme-qt6/QGpgME/SignEncryptJob
+include/qgpgme-qt6/QGpgME/SignJob
+include/qgpgme-qt6/QGpgME/SignKeyJob
+include/qgpgme-qt6/QGpgME/SpecialJob
+include/qgpgme-qt6/QGpgME/TofuPolicyJob
+include/qgpgme-qt6/QGpgME/VerifyDetachedJob
+include/qgpgme-qt6/QGpgME/VerifyOpaqueJob
+include/qgpgme-qt6/QGpgME/WKDLookupJob
+include/qgpgme-qt6/QGpgME/WKDLookupResult
+include/qgpgme-qt6/QGpgME/WKDRefreshJob
+include/qgpgme-qt6/QGpgME/WKSPublishJob
+include/qgpgme-qt6/qgpgme/
+include/qgpgme-qt6/qgpgme/abstractimportjob.h
+include/qgpgme-qt6/qgpgme/addexistingsubkeyjob.h
+include/qgpgme-qt6/qgpgme/adduseridjob.h
+include/qgpgme-qt6/qgpgme/changeexpiryjob.h
+include/qgpgme-qt6/qgpgme/changeownertrustjob.h
+include/qgpgme-qt6/qgpgme/changepasswdjob.h
+include/qgpgme-qt6/qgpgme/cryptoconfig.h
+include/qgpgme-qt6/qgpgme/dataprovider.h
+include/qgpgme-qt6/qgpgme/debug.h
+include/qgpgme-qt6/qgpgme/decryptjob.h
+include/qgpgme-qt6/qgpgme/decryptverifyarchivejob.h
+include/qgpgme-qt6/qgpgme/decryptverifyjob.h
+include/qgpgme-qt6/qgpgme/defaultkeygenerationjob.h
+include/qgpgme-qt6/qgpgme/deletejob.h
+include/qgpgme-qt6/qgpgme/dn.h
+include/qgpgme-qt6/qgpgme/downloadjob.h
+include/qgpgme-qt6/qgpgme/encryptarchivejob.h
+include/qgpgme-qt6/qgpgme/encryptjob.h
+include/qgpgme-qt6/qgpgme/exportjob.h
+include/qgpgme-qt6/qgpgme/filelistdataprovider.h
+include/qgpgme-qt6/qgpgme/gpgcardjob.h
+include/qgpgme-qt6/qgpgme/importfromkeyserverjob.h
+include/qgpgme-qt6/qgpgme/importjob.h
+include/qgpgme-qt6/qgpgme/job.h
+include/qgpgme-qt6/qgpgme/keyformailboxjob.h
+include/qgpgme-qt6/qgpgme/keygenerationjob.h
+include/qgpgme-qt6/qgpgme/keylistjob.h
+include/qgpgme-qt6/qgpgme/listallkeysjob.h
+include/qgpgme-qt6/qgpgme/multideletejob.h
+include/qgpgme-qt6/qgpgme/protocol.h
+include/qgpgme-qt6/qgpgme/qgpgme_export.h
+include/qgpgme-qt6/qgpgme/qgpgme_version.h
+include/qgpgme-qt6/qgpgme/qgpgmenewcryptoconfig.h
+include/qgpgme-qt6/qgpgme/quickjob.h
+include/qgpgme-qt6/qgpgme/receivekeysjob.h
+include/qgpgme-qt6/qgpgme/refreshkeysjob.h
+include/qgpgme-qt6/qgpgme/revokekeyjob.h
+include/qgpgme-qt6/qgpgme/setprimaryuseridjob.h
+include/qgpgme-qt6/qgpgme/signarchivejob.h
+include/qgpgme-qt6/qgpgme/signencryptarchivejob.h
+include/qgpgme-qt6/qgpgme/signencryptjob.h
+include/qgpgme-qt6/qgpgme/signjob.h
+include/qgpgme-qt6/qgpgme/signkeyjob.h
+include/qgpgme-qt6/qgpgme/specialjob.h
+include/qgpgme-qt6/qgpgme/tofupolicyjob.h
+include/qgpgme-qt6/qgpgme/verifydetachedjob.h
+include/qgpgme-qt6/qgpgme/verifyopaquejob.h
+include/qgpgme-qt6/qgpgme/wkdlookupjob.h
+include/qgpgme-qt6/qgpgme/wkdlookupresult.h
+include/qgpgme-qt6/qgpgme/wkdrefreshjob.h
+include/qgpgme-qt6/qgpgme/wkspublishjob.h
+lib/cmake/
+lib/cmake/QGpgmeQt6/
+lib/cmake/QGpgmeQt6/FindGpgme.cmake
+lib/cmake/QGpgmeQt6/FindLibGpgError.cmake
+lib/cmake/QGpgmeQt6/QGpgmeQt6Config.cmake
+lib/cmake/QGpgmeQt6/QGpgmeQt6ConfigVersion.cmake
+lib/cmake/QGpgmeQt6/QGpgmeQt6Targets${MODCMAKE_BUILD_SUFFIX}
+lib/cmake/QGpgmeQt6/QGpgmeQt6Targets.cmake
+@lib lib/libqgpgmeqt6.so.${LIBqgpgmeqt6_VERSION}
diff --git a/x11/kde-applications/akonadi-calendar/Makefile b/x11/kde-applications/akonadi-calendar/Makefile
index c6ecbca1361..9f2f403d156 100644
--- a/x11/kde-applications/akonadi-calendar/Makefile
+++ b/x11/kde-applications/akonadi-calendar/Makefile
@@ -1,6 +1,7 @@
 COMMENT =	PIM Akonadi calendar support library
 DISTNAME =	akonadi-calendar-${VERSION}
 CATEGORIES =	devel
+REVISION =	0
 
 SHARED_LIBS +=	KPim6AkonadiCalendar      1.0 # 0.0
 SHARED_LIBS +=	KPim6AkonadiCalendarCore  0.0 # 0.0
@@ -43,7 +44,7 @@ LIB_DEPENDS =	devel/kf6/kcalendarcore \
 		devel/kf6/kcrash \
 		devel/kf6/kwidgetsaddons \
 		devel/kf6/kxmlgui \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		textproc/ktextaddons \
 		x11/kde-applications/akonadi-contacts>=${VERSION} \
diff --git a/x11/kde-applications/akonadi-import-wizard/Makefile b/x11/kde-applications/akonadi-import-wizard/Makefile
index 9c72ca3aa60..58e607f5e3e 100644
--- a/x11/kde-applications/akonadi-import-wizard/Makefile
+++ b/x11/kde-applications/akonadi-import-wizard/Makefile
@@ -1,6 +1,7 @@
 COMMENT =	PIM Akonadi import wizard
 DISTNAME =	akonadi-import-wizard-${VERSION}
 CATEGORIES =	devel
+REVISION =	0
 
 SHARED_LIBS +=	KPim6ImportWizard         0.0 # 0.0
 
@@ -47,7 +48,7 @@ LIB_DEPENDS =	devel/kf6/karchive \
 		devel/kf6/kwidgetsaddons \
 		devel/kf6/kiconthemes \
 		devel/kf6/kxmlgui \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		security/qtkeychain,qt6 \
 		textproc/ktextaddons \
diff --git a/x11/kde-applications/akonadiconsole/Makefile b/x11/kde-applications/akonadiconsole/Makefile
index c2f6834b693..2ee8825cc0c 100644
--- a/x11/kde-applications/akonadiconsole/Makefile
+++ b/x11/kde-applications/akonadiconsole/Makefile
@@ -1,6 +1,7 @@
 COMMENT =	Akonadi management and debugging console
 DISTNAME =	akonadiconsole-${VERSION}
 CATEGORIES =	devel
+REVISION =	0
 
 SHARED_LIBS +=  akonadiconsole            2.0 # 5.13.2
 
@@ -49,7 +50,7 @@ LIB_DEPENDS =	databases/xapian-core \
 		devel/kf6/kwidgetsaddons \
 		devel/kf6/kxmlgui \
 		devel/kf6/sonnet \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		textproc/ktextaddons \
 		x11/kde-applications/akonadi-calendar>=${VERSION} \
diff --git a/x11/kde-applications/akregator/Makefile b/x11/kde-applications/akregator/Makefile
index 5ca63cc36c4..f1c71ba3bc5 100644
--- a/x11/kde-applications/akregator/Makefile
+++ b/x11/kde-applications/akregator/Makefile
@@ -3,6 +3,7 @@ USE_WXNEEDED =	Yes
 COMMENT =	news feed reader
 DISTNAME =	akregator-${VERSION}
 CATEGORIES =	net www
+REVISION =	0
 
 HOMEPAGE =	https://apps.kde.org/akregator
 
@@ -78,7 +79,7 @@ LIB_DEPENDS =	devel/kf6/kcmutils \
 		devel/kf6/kguiaddons \
 		x11/kde-plasma/plasma-activities \
 		devel/kf6/syndication \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		textproc/ktextaddons \
 		x11/kde-applications/akonadi-mime>=${VERSION} \
diff --git a/x11/kde-applications/grantlee-editor/Makefile b/x11/kde-applications/grantlee-editor/Makefile
index e16cd5ad957..53cc48f6f33 100644
--- a/x11/kde-applications/grantlee-editor/Makefile
+++ b/x11/kde-applications/grantlee-editor/Makefile
@@ -3,6 +3,7 @@ USE_WXNEEDED =	Yes
 COMMENT =	utilities and tools to manage themes in KDE PIM applications
 DISTNAME =	grantlee-editor-${VERSION}
 CATEGORIES =	devel
+REVISION =	0
 
 SHARED_LIBS +=  grantleethemeeditor       1.0 # 5.13.2
 
@@ -52,7 +53,7 @@ LIB_DEPENDS =	devel/kf6/karchive \
 		devel/kf6/kxmlgui \
 		devel/kf6/kguiaddons \
 		devel/kf6/syntax-highlighting \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		textproc/ktextaddons \
 		x11/kde-applications/akonadi-contacts>=${VERSION} \
diff --git a/x11/kde-applications/kdepim-addons/Makefile b/x11/kde-applications/kdepim-addons/Makefile
index a75f4de1976..0ada39b67dd 100644
--- a/x11/kde-applications/kdepim-addons/Makefile
+++ b/x11/kde-applications/kdepim-addons/Makefile
@@ -1,6 +1,7 @@
 COMMENT =	KDE PIM mail related libraries
 DISTNAME =	kdepim-addons-${VERSION}
 CATEGORIES =	devel
+REVISION =	0
 
 SHARED_LIBS +=  adblocklibprivate                        2.0 # 5.13.2
 SHARED_LIBS +=  coisceim_widget                          2.0 # 5.13.2
@@ -84,7 +85,7 @@ LIB_DEPENDS =	devel/kf6/karchive \
 		devel/kf6/kxmlgui \
 		devel/kf6/prison \
 		devel/kf6/syntax-highlighting \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		textproc/discount \
 		textproc/ktextaddons \
diff --git a/x11/kde-applications/kget/Makefile b/x11/kde-applications/kget/Makefile
index 89414e3cda8..2722374ef8f 100644
--- a/x11/kde-applications/kget/Makefile
+++ b/x11/kde-applications/kget/Makefile
@@ -1,6 +1,7 @@
 COMMENT =	download manager for KDE
 DISTNAME =	kget-${VERSION}
 CATEGORIES =	net www
+REVISION =	0
 
 HOMEPAGE =	https://apps.kde.org/kget
 
@@ -62,7 +63,7 @@ LIB_DEPENDS =	devel/gmp \
 		devel/kf6/solid \
 		multimedia/libmms \
 		net/libktorrent \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		security/libgcrypt \
 		x11/qt6/qt5compat \
diff --git a/x11/kde-applications/kleopatra/Makefile b/x11/kde-applications/kleopatra/Makefile
index 6265212143b..cd699fd6112 100644
--- a/x11/kde-applications/kleopatra/Makefile
+++ b/x11/kde-applications/kleopatra/Makefile
@@ -1,6 +1,7 @@
 COMMENT =	certificate manager and a universal crypto GUI
 DISTNAME =	kleopatra-${VERSION}
 CATEGORIES =	security x11
+REVISION =	0
 
 SHARED_LIBS +=  kleopatraclientcore     1.0 # 1.3.0
 SHARED_LIBS +=  kleopatraclientgui      1.0 # 1.3.0
@@ -49,7 +50,7 @@ LIB_DEPENDS =	devel/kf6/kcodecs \
 		devel/kf6/kwindowsystem \
 		devel/kf6/kxmlgui \
 		devel/kf6/kguiaddons \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		security/libgpg-error \
 		x11/kde-applications/akonadi-mime>=${VERSION} \
diff --git a/x11/kde-applications/kmail/Makefile b/x11/kde-applications/kmail/Makefile
index 397c03d5129..57351c8239f 100644
--- a/x11/kde-applications/kmail/Makefile
+++ b/x11/kde-applications/kmail/Makefile
@@ -3,6 +3,7 @@ USE_WXNEEDED =	Yes
 COMMENT =	KDE PIM email client
 DISTNAME =	kmail-${VERSION}
 CATEGORIES =	net mail
+REVISION =	0
 
 HOMEPAGE =	https://kontact.kde.org/components/kmail/
 
@@ -92,7 +93,7 @@ LIB_DEPENDS =	devel/kf6/kbookmarks \
 		devel/kf6/solid \
 		devel/kf6/sonnet \
 		devel/kf6/syntax-highlighting \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		security/qtkeychain,qt6 \
 		textproc/ktextaddons \
diff --git a/x11/kde-applications/libkleo/Makefile b/x11/kde-applications/libkleo/Makefile
index 1a0aecfc4d5..3fe8af7a4e4 100644
--- a/x11/kde-applications/libkleo/Makefile
+++ b/x11/kde-applications/libkleo/Makefile
@@ -1,6 +1,7 @@
 COMMENT =	certificate manager for KDE
 DISTNAME =	libkleo-${VERSION}
 CATEGORIES =	security devel
+REVISION =	0
 
 SHARED_LIBS +=	KPim6Libkleo              2.0 # 0.0
 
@@ -24,7 +25,7 @@ LIB_DEPENDS =	devel/kf6/kcodecs \
 		devel/kf6/ki18n \
 		devel/kf6/kitemmodels \
 		devel/kf6/kwidgetsaddons \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		security/libgpg-error \
 
diff --git a/x11/kde-applications/mailcommon/Makefile b/x11/kde-applications/mailcommon/Makefile
index 09abbaa2566..0bd34766c1a 100644
--- a/x11/kde-applications/mailcommon/Makefile
+++ b/x11/kde-applications/mailcommon/Makefile
@@ -1,6 +1,7 @@
 COMMENT =	KDE PIM common mail library
 DISTNAME =	mailcommon-${VERSION}
 CATEGORIES =	devel mail
+REVISION =	0
 
 SHARED_LIBS +=	KPim6MailCommon           0.1 # 0.0
 
@@ -50,7 +51,7 @@ LIB_DEPENDS =	devel/kf6/karchive \
 		devel/kf6/kxmlgui \
 		devel/kf6/syntax-highlighting \
 		x11/kde-plasma/plasma-activities  \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		textproc/ktextaddons \
 		x11/kde-applications/akonadi-contacts>=${VERSION} \
diff --git a/x11/kde-applications/mbox-importer/Makefile b/x11/kde-applications/mbox-importer/Makefile
index 38ae6468902..b11480c27bc 100644
--- a/x11/kde-applications/mbox-importer/Makefile
+++ b/x11/kde-applications/mbox-importer/Makefile
@@ -1,7 +1,9 @@
 COMMENT =	KMail mbox importer
 DISTNAME =	mbox-importer-${VERSION}
+REVISION =	0
 
 CATEGORIES =	devel
+
 WANTLIB += ${COMPILER_LIBCXX} GL KF6Archive KF6ColorScheme KF6Completion
 WANTLIB += KF6ConfigCore KF6ConfigGui KF6ConfigWidgets KF6Contacts
 WANTLIB += KF6CoreAddons KF6Crash KF6I18n KF6IconThemes KF6ItemModels
@@ -36,7 +38,7 @@ LIB_DEPENDS =	devel/kf6/karchive \
 		devel/kf6/kitemmodels \
 		devel/kf6/ktexttemplate \
 		devel/kf6/kwidgetsaddons \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		textproc/ktextaddons \
 		devel/kf6/kiconthemes \
diff --git a/x11/kde-applications/merkuro/Makefile b/x11/kde-applications/merkuro/Makefile
index bccdb31ea9f..f243b605a99 100644
--- a/x11/kde-applications/merkuro/Makefile
+++ b/x11/kde-applications/merkuro/Makefile
@@ -4,6 +4,7 @@ USE_WXNEEDED =	Yes
 COMMENT =	calendar email todo and task application
 
 DISTNAME =	merkuro-${VERSION}
+REVISION =	0
 
 CATEGORIES =	productivity x11
 
@@ -82,7 +83,7 @@ LIB_DEPENDS =	devel/kf6/kcalendarcore \
 		security/libassuan \
 		textproc/ktextaddons \
 		devel/kf6/kcrash \
-		security/gpgme,-qt \
+		security/qgpgme \
 		x11/kde-applications/akonadi-search>=${VERSION} \
 		x11/kde-applications/akonadi-calendar>=${VERSION} \
 		x11/kde-applications/akonadi-contacts>=${VERSION} \
diff --git a/x11/kde-applications/messagelib/Makefile b/x11/kde-applications/messagelib/Makefile
index f45bd246c6a..af9ba0da2de 100644
--- a/x11/kde-applications/messagelib/Makefile
+++ b/x11/kde-applications/messagelib/Makefile
@@ -1,6 +1,7 @@
 COMMENT =	KDE PIM messaging library
 DISTNAME =	messagelib-${VERSION}
 CATEGORIES =	devel
+REVISION =	0
 
 SHARED_LIBS +=	KPim6MessageComposer      2.0 # 0.0
 SHARED_LIBS +=	KPim6MessageCore          2.0 # 0.0
@@ -67,7 +68,7 @@ LIB_DEPENDS =	devel/kf6/karchive \
 		devel/kf6/solid \
 		devel/kf6/sonnet \
 		devel/kf6/syntax-highlighting \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		textproc/ktextaddons \
 		x11/kde-applications/akonadi-contacts>=${VERSION} \
diff --git a/x11/kde-applications/mimetreeparser/Makefile b/x11/kde-applications/mimetreeparser/Makefile
index d864890a84f..28a1f8459a4 100644
--- a/x11/kde-applications/mimetreeparser/Makefile
+++ b/x11/kde-applications/mimetreeparser/Makefile
@@ -1,6 +1,7 @@
 COMMENT =	KDE PIM messaging library
 DISTNAME =	mimetreeparser-${VERSION}
 CATEGORIES =	devel
+REVISION =	0
 
 SHARED_LIBS +=	KPim6MimeTreeParserCore    1.0 # 0.0
 SHARED_LIBS +=	KPim6MimeTreeParserWidgets 0.0 # 0.0
@@ -22,7 +23,7 @@ LIB_DEPENDS =	devel/kf6/kcalendarcore \
 		devel/kf6/kcolorscheme \
 		devel/kf6/kconfig \
 		devel/kf6/kwidgetsaddons \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		x11/kde-applications/kmbox>=${VERSION} \
 		x11/kde-applications/kmime>=${VERSION} \
diff --git a/x11/kde-applications/pim-data-exporter/Makefile b/x11/kde-applications/pim-data-exporter/Makefile
index f0ce54861aa..ced0ba7b97b 100644
--- a/x11/kde-applications/pim-data-exporter/Makefile
+++ b/x11/kde-applications/pim-data-exporter/Makefile
@@ -1,6 +1,7 @@
 COMMENT =	KDE PIM data exporter
 DISTNAME =	pim-data-exporter-${VERSION}
 CATEGORIES =	devel
+REVISION =	0
 
 SHARED_LIBS +=  pimdataexporterprivate    1.0 # 0.0
 
@@ -52,7 +53,7 @@ LIB_DEPENDS =	devel/kf6/karchive \
 		devel/kf6/kwidgetsaddons \
 		devel/kf6/kxmlgui \
 		devel/kf6/solid \
-		security/gpgme,-qt \
+		security/qgpgme \
 		security/libassuan \
 		textproc/ktextaddons \
 		devel/kf6/kiconthemes \