summaryrefslogtreecommitdiff
path: root/security
diff options
context:
space:
mode:
Diffstat (limited to 'security')
-rw-r--r--security/Makefile6
-rw-r--r--security/caldera-ot/Makefile3
-rw-r--r--security/caldera/Makefile9
-rw-r--r--security/caldera/distinfo8
-rw-r--r--security/fwknop/Makefile2
-rw-r--r--security/gpa/Makefile1
-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/gvm-libs/Makefile1
-rw-r--r--security/gvmd/Makefile1
-rw-r--r--security/kleopatra/Makefile10
-rw-r--r--security/kleopatra/distinfo8
-rw-r--r--security/libcryptui/Makefile6
-rw-r--r--security/libkleo/Makefile5
-rw-r--r--security/libp11/Makefile10
-rw-r--r--security/libp11/pkg-plist4
-rw-r--r--security/openvas/Makefile1
-rw-r--r--security/p5-Crypt-GpgME/Makefile2
-rw-r--r--security/p5-Crypt-GpgME/files/patch-lib_Crypt_GpgME.pm16
-rw-r--r--security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.c42
-rw-r--r--security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.h14
-rw-r--r--security/p5-Crypt-GpgME/files/patch-xs_GpgME.xs35
-rw-r--r--security/pecl-gnupg/Makefile1
-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/rubygem-gpgme/Makefile2
-rw-r--r--security/rubygem-gpgme/files/patch-ext_gpgme_extconf.rb (renamed from security/rubygem-gpgme/files/patch-ext-gpgme-extconf.rb)6
-rw-r--r--security/rubygem-gpgme/files/patch-ext_gpgme_gpgme__n.c59
-rw-r--r--security/rubygem-gpgme/files/patch-lib_gpgme_constants.rb75
-rw-r--r--security/seahorse/Makefile5
-rw-r--r--security/seahorse/distinfo4
-rw-r--r--security/vuxml/vuln/2025.xml4
54 files changed, 639 insertions, 318 deletions
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/caldera-ot/Makefile b/security/caldera-ot/Makefile
index e92cea480769..6b39ac124f08 100644
--- a/security/caldera-ot/Makefile
+++ b/security/caldera-ot/Makefile
@@ -1,5 +1,6 @@
PORTNAME= caldera-ot
DISTVERSION= 5.3.0
+PORTREVISION= 1
CATEGORIES= security python
MAINTAINER= acm@FreeBSD.org
@@ -9,6 +10,8 @@ WWW= https://github.com/mitre/caldera-ot
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
+ONLY_FOR_ARCHS= aarch64 amd64
+
BUILD_DEPENDS= bacnet-stack>0:devel/bacnet-stack \
cmake:devel/cmake-core \
nuitka:devel/nuitka \
diff --git a/security/caldera/Makefile b/security/caldera/Makefile
index 662883eb031d..6d2f9d8a7e03 100644
--- a/security/caldera/Makefile
+++ b/security/caldera/Makefile
@@ -1,5 +1,6 @@
PORTNAME= caldera
DISTVERSION= 5.3.0
+PORTREVISION= 1
CATEGORIES= security python
MAINTAINER= acm@FreeBSD.org
@@ -11,6 +12,8 @@ CONFLICTS= caldera4
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
+ONLY_FOR_ARCHS= aarch64 amd64
+
BUILD_DEPENDS= npm-node20>0:www/npm-node20
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiohttp>0:www/py-aiohttp@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}aiohttp-jinja2>0:www/py-aiohttp-jinja2@${PY_FLAVOR} \
@@ -106,11 +109,11 @@ DEPS_CACHE_DIR= ${WRKSRC}/plugins/magma
.if (${DEV_UPDATE_MODE} == "yes")
NPM_ARGS= install
post-build:
- @cd ${DEPS_CACHE_DIR} && ${TAR} czf ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-cache-${DISTVERSION}${EXTRACT_SUFX} node_modules
- @${ECHO} "(!!!) Please upload the cache archive: ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-cache-${DISTVERSION}${EXTRACT_SUFX}"
+ @cd ${DEPS_CACHE_DIR} && ${TAR} czf ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-cache-${ARCH}-${DISTVERSION}${EXTRACT_SUFX} node_modules
+ @${ECHO} "(!!!) Please upload the cache archive: ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-cache-${ARCH}-${DISTVERSION}${EXTRACT_SUFX}"
.else
MASTER_SITES+= LOCAL/acm/caldera/:npm_cache
-DISTFILES+= ${PORTNAME}-cache-${DISTVERSION}${EXTRACT_SUFX}:npm_cache \
+DISTFILES+= ${PORTNAME}-cache-${ARCH}-${DISTVERSION}${EXTRACT_SUFX}:npm_cache \
${PORTNAME}-freebsd-logos.tar.gz:npm_cache
NPM_ARGS= run build
diff --git a/security/caldera/distinfo b/security/caldera/distinfo
index 8779a721e6e4..aa49d5e7b3ac 100644
--- a/security/caldera/distinfo
+++ b/security/caldera/distinfo
@@ -1,6 +1,8 @@
-TIMESTAMP = 1750718032
-SHA256 (caldera-cache-5.3.0.tar.gz) = 02449bce0657690bc2701e95f6d6af6b444bc68c15aa42e50fb19207902b48b2
-SIZE (caldera-cache-5.3.0.tar.gz) = 41958785
+TIMESTAMP = 1750745433
+SHA256 (caldera-cache-aarch64-5.3.0.tar.gz) = f43786f5e16ec842f7403033e4c94a423b54cd64add4863200a696030f965f69
+SIZE (caldera-cache-aarch64-5.3.0.tar.gz) = 41661039
+SHA256 (caldera-cache-amd64-5.3.0.tar.gz) = d4a5e26f240f7fde7a33cb9c7f42b025b2904258cb632eeb1a4e5adfb0206586
+SIZE (caldera-cache-amd64-5.3.0.tar.gz) = 41960621
SHA256 (caldera-freebsd-logos.tar.gz) = 66ad2558c34ef06875cfb479a34ca5053b25bad2c36ce06d532d6857b9dda4a2
SIZE (caldera-freebsd-logos.tar.gz) = 2516
SHA256 (mitre-caldera-5.3.0_GH0.tar.gz) = 23f79e83ccf6215bac627f96bed303f09b1759f524a151608279b08574c5eff1
diff --git a/security/fwknop/Makefile b/security/fwknop/Makefile
index 9fafdb258370..31af0953db65 100644
--- a/security/fwknop/Makefile
+++ b/security/fwknop/Makefile
@@ -1,6 +1,6 @@
PORTNAME= fwknop
PORTVERSION= 2.6.10
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= security
MASTER_SITES= http://www.cipherdyne.org/fwknop/download/
diff --git a/security/gpa/Makefile b/security/gpa/Makefile
index cbd06e27b898..8be53eac84c7 100644
--- a/security/gpa/Makefile
+++ b/security/gpa/Makefile
@@ -1,5 +1,6 @@
PORTNAME= gpa
PORTVERSION= 0.11.0
+PORTREVISION= 1
CATEGORIES= security
MASTER_SITES= GNUPG/gpa
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/gvm-libs/Makefile b/security/gvm-libs/Makefile
index 0a6e2266c017..f11ade33a8ca 100644
--- a/security/gvm-libs/Makefile
+++ b/security/gvm-libs/Makefile
@@ -1,6 +1,7 @@
PORTNAME= gvm
DISTVERSIONPREFIX= v
DISTVERSION= 22.22.0
+PORTREVISION= 1
CATEGORIES= security
PKGNAMESUFFIX= -libs
diff --git a/security/gvmd/Makefile b/security/gvmd/Makefile
index 366f6967d8f4..0648b0880e09 100644
--- a/security/gvmd/Makefile
+++ b/security/gvmd/Makefile
@@ -1,5 +1,6 @@
PORTNAME= gvmd
DISTVERSION= 26.0.0
+PORTREVISION= 1
DISTVERSIONPREFIX= v
CATEGORIES= security
diff --git a/security/kleopatra/Makefile b/security/kleopatra/Makefile
index 505df198284c..021af0b579e1 100644
--- a/security/kleopatra/Makefile
+++ b/security/kleopatra/Makefile
@@ -1,7 +1,13 @@
PORTNAME= kleopatra
DISTVERSION= ${KDE_APPLICATIONS_VERSION}
+PORTREVISION= 1
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 +16,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/libcryptui/Makefile b/security/libcryptui/Makefile
index 98a75479363a..b1cbf9ef4783 100644
--- a/security/libcryptui/Makefile
+++ b/security/libcryptui/Makefile
@@ -1,6 +1,6 @@
PORTNAME= libcryptui
PORTVERSION= 3.12.2
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= security gnome
MASTER_SITES= GNOME
DIST_SUBDIR= gnome
@@ -9,6 +9,10 @@ MAINTAINER= gnome@FreeBSD.org
COMMENT= GNOME application for managing encryption keys (PGP, SSH)
WWW= https://gitlab.gnome.org/GNOME/libcryptui
+DEPRECATED= abandoned project
+EXPIRATION_DATE=2025-06-30
+BROKEN= does not build with gpgme 2.x
+
BUILD_DEPENDS= seahorse>=3.0.0:security/seahorse \
gpg:security/gnupg
LIB_DEPENDS= libgpgme.so:security/gpgme \
diff --git a/security/libkleo/Makefile b/security/libkleo/Makefile
index 10b3a01e7a07..19824ceb7dda 100644
--- a/security/libkleo/Makefile
+++ b/security/libkleo/Makefile
@@ -1,5 +1,6 @@
PORTNAME= libkleo
DISTVERSION= ${KDE_APPLICATIONS_VERSION}
+PORTREVISION= 1
CATEGORIES= security kde kde-applications
MAINTAINER= kde@FreeBSD.org
@@ -10,8 +11,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/libp11/Makefile b/security/libp11/Makefile
index 7575e9c2ed49..2521f1fa7db8 100644
--- a/security/libp11/Makefile
+++ b/security/libp11/Makefile
@@ -1,5 +1,6 @@
PORTNAME= libp11
PORTVERSION= 0.4.14
+PORTREVIION= 1
DISTVERSIONPREFIX= ${PORTNAME}-
CATEGORIES= security devel
@@ -39,6 +40,15 @@ CONFIGURE_ARGS= --with-enginesdir=${PREFIX}/lib/engines \
--with-modulesdir=${PREFIX}/lib/ossl-modules \
--enable-static-engine
+.include <bsd.port.options.mk>
+
+.if ${SSL_DEFAULT} == "base" && ${OPSYS} == FreeBSD && ${OSREL:R} < 14
+PLIST_SUB+= PROVIDERS="@comment "
+.else
+PLIST_SUB+= PROVIDERS=""
+.endif
+
+
INSTALL_TARGET= install-strip
PORTDOCS= *
diff --git a/security/libp11/pkg-plist b/security/libp11/pkg-plist
index 79526fa0f30a..b0d6012014a0 100644
--- a/security/libp11/pkg-plist
+++ b/security/libp11/pkg-plist
@@ -2,8 +2,8 @@ include/libp11.h
include/p11_err.h
lib/engines/libpkcs11.so
lib/engines/pkcs11.so
-lib/ossl-modules/libpkcs11.so
-lib/ossl-modules/pkcs11prov.so
+%%PROVIDERS%%lib/ossl-modules/libpkcs11.so
+%%PROVIDERS%%lib/ossl-modules/pkcs11prov.so
lib/libp11.a
lib/libp11.so
lib/libp11.so.3
diff --git a/security/openvas/Makefile b/security/openvas/Makefile
index 891a0d409bdd..5181bd1bc773 100644
--- a/security/openvas/Makefile
+++ b/security/openvas/Makefile
@@ -1,5 +1,6 @@
PORTNAME= openvas
DISTVERSION= 23.20.1
+PORTREVISION= 1
DISTVERSIONPREFIX= v
CATEGORIES= security
diff --git a/security/p5-Crypt-GpgME/Makefile b/security/p5-Crypt-GpgME/Makefile
index 75b5ecbf7cd6..41be90383404 100644
--- a/security/p5-Crypt-GpgME/Makefile
+++ b/security/p5-Crypt-GpgME/Makefile
@@ -1,6 +1,6 @@
PORTNAME= Crypt-GpgME
PORTVERSION= 0.09
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= security perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-
diff --git a/security/p5-Crypt-GpgME/files/patch-lib_Crypt_GpgME.pm b/security/p5-Crypt-GpgME/files/patch-lib_Crypt_GpgME.pm
new file mode 100644
index 000000000000..61bb81fa0777
--- /dev/null
+++ b/security/p5-Crypt-GpgME/files/patch-lib_Crypt_GpgME.pm
@@ -0,0 +1,16 @@
+The trustlist feature, which only worked for a short period in 2003, was
+removed in GpgME 2.0.0.
+
+--- lib/Crypt/GpgME.pm.orig 2009-11-17 22:51:18 UTC
++++ lib/Crypt/GpgME.pm
+@@ -226,10 +226,6 @@ Returns a new Crypt::GpgME instance. Throws an excepti
+
+ my $key = $ctx->signers_enum($seq);
+
+-=head2 trustlist
+-
+- my @trustlist = $ctx->trustlist($pattern, $maxlevel);
+-
+ =head2 verify
+
+ my ($result, $plain) = $ctx->verify($sig);
diff --git a/security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.c b/security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.c
new file mode 100644
index 000000000000..f8452fcf45dc
--- /dev/null
+++ b/security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.c
@@ -0,0 +1,42 @@
+The trustlist feature, which only worked for a short period in 2003, was
+removed in GpgME 2.0.0.
+
+--- perl_glue/perl_gpgme.c.orig 2008-04-30 04:10:10 UTC
++++ perl_glue/perl_gpgme.c
+@@ -762,36 +762,6 @@ SV *
+ }
+
+ SV *
+-perl_gpgme_hashref_from_trust_item (gpgme_trust_item_t item) {
+- SV *sv;
+- HV *hv;
+-
+- hv = newHV ();
+-
+- if (item->keyid) {
+- perl_gpgme_hv_store (hv, "keyid", 5, newSVpv (item->keyid, 0));
+- }
+-
+- perl_gpgme_hv_store (hv, "type", 4, newSVpv (item->type == 1 ? "key" : "uid", 0));
+- perl_gpgme_hv_store (hv, "level", 5, newSViv (item->level));
+-
+- if (item->type == 1 && item->owner_trust) {
+- perl_gpgme_hv_store (hv, "owner_trust", 11, newSVpv (item->owner_trust, 0));
+- }
+-
+- if (item->validity) {
+- perl_gpgme_hv_store (hv, "validity", 8, newSVpv (item->validity, 0));
+- }
+-
+- if (item->type == 2 && item->name) {
+- perl_gpgme_hv_store (hv, "name", 4, newSVpv (item->name, 0));
+- }
+-
+- sv = newRV_noinc ((SV *)hv);
+- return sv;
+-}
+-
+-SV *
+ perl_gpgme_sv_from_status_code (gpgme_status_code_t status) {
+ int i;
+ SV *ret = NULL;
diff --git a/security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.h b/security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.h
new file mode 100644
index 000000000000..4b7fa2763638
--- /dev/null
+++ b/security/p5-Crypt-GpgME/files/patch-perl__glue_perl__gpgme.h
@@ -0,0 +1,14 @@
+The trustlist feature, which only worked for a short period in 2003, was
+removed in GpgME 2.0.0.
+
+--- perl_glue/perl_gpgme.h.orig 2007-12-19 23:55:38 UTC
++++ perl_glue/perl_gpgme.h
+@@ -117,8 +117,6 @@ SV *perl_gpgme_hash_algo_to_string (gpgme_hash_algo_t
+
+ SV *perl_gpgme_hash_algo_to_string (gpgme_hash_algo_t algo);
+
+-SV *perl_gpgme_hashref_from_trust_item (gpgme_trust_item_t item);
+-
+ SV *perl_gpgme_sv_from_status_code (gpgme_status_code_t status);
+
+ SV *perl_gpgme_genkey_result_to_sv (gpgme_genkey_result_t result);
diff --git a/security/p5-Crypt-GpgME/files/patch-xs_GpgME.xs b/security/p5-Crypt-GpgME/files/patch-xs_GpgME.xs
new file mode 100644
index 000000000000..42f999ad3888
--- /dev/null
+++ b/security/p5-Crypt-GpgME/files/patch-xs_GpgME.xs
@@ -0,0 +1,35 @@
+The trustlist feature, which only worked for a short period in 2003, was
+removed in GpgME 2.0.0.
+
+--- xs/GpgME.xs.orig 2008-04-30 04:10:27 UTC
++++ xs/GpgME.xs
+@@ -453,29 +453,6 @@ gpgme_keylist (ctx, pattern, secret_only=0)
+ perl_gpgme_assert_error (err);
+ }
+
+-void
+-gpgme_trustlist (ctx, pattern, max_level)
+- gpgme_ctx_t ctx
+- const char *pattern
+- int max_level
+- PREINIT:
+- gpgme_error_t err;
+- gpgme_trust_item_t item;
+- PPCODE:
+- err = gpgme_op_trustlist_start (ctx, pattern, max_level);
+- perl_gpgme_assert_error (err);
+-
+- while ((err = gpgme_op_trustlist_next (ctx, &item)) == GPG_ERR_NO_ERROR) {
+- XPUSHs (perl_gpgme_hashref_from_trust_item (item));
+- gpgme_trust_item_unref (item);
+- }
+-
+- if (gpg_err_code (err) != GPG_ERR_EOF) {
+- perl_gpgme_assert_error (err);
+- }
+-
+- gpgme_op_trustlist_end (ctx);
+-
+ NO_OUTPUT gpgme_error_t
+ gpgme_engine_check_version (ctx, proto)
+ perl_gpgme_ctx_or_null_t ctx
diff --git a/security/pecl-gnupg/Makefile b/security/pecl-gnupg/Makefile
index cad9dd9e5404..dd2eb5172e17 100644
--- a/security/pecl-gnupg/Makefile
+++ b/security/pecl-gnupg/Makefile
@@ -1,5 +1,6 @@
PORTNAME= gnupg
PORTVERSION= 1.5.3
+PORTREVISION= 1
CATEGORIES= security
MAINTAINER= sunpoet@FreeBSD.org
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/rubygem-gpgme/Makefile b/security/rubygem-gpgme/Makefile
index b88403fc738b..01afb9d78c35 100644
--- a/security/rubygem-gpgme/Makefile
+++ b/security/rubygem-gpgme/Makefile
@@ -1,6 +1,6 @@
PORTNAME= gpgme
PORTVERSION= 2.0.24
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= security rubygems
MASTER_SITES= RG
diff --git a/security/rubygem-gpgme/files/patch-ext-gpgme-extconf.rb b/security/rubygem-gpgme/files/patch-ext_gpgme_extconf.rb
index e14b99204578..e0a3bbcbbf76 100644
--- a/security/rubygem-gpgme/files/patch-ext-gpgme-extconf.rb
+++ b/security/rubygem-gpgme/files/patch-ext_gpgme_extconf.rb
@@ -1,10 +1,10 @@
---- ext/gpgme/extconf.rb.orig 2022-10-13 10:24:31 UTC
+--- ext/gpgme/extconf.rb.orig 2025-06-24 09:21:26 UTC
+++ ext/gpgme/extconf.rb
-@@ -60,7 +60,6 @@ follows:
+@@ -63,7 +63,6 @@ EOS
EOS
require 'rubygems'
- require 'mini_portile2'
- libgpg_error_recipe = MiniPortile.new('libgpg-error', '1.46').tap do |recipe|
+ libgpg_error_recipe = MiniPortile.new('libgpg-error', '1.47').tap do |recipe|
recipe.target = File.join(ROOT, "ports")
diff --git a/security/rubygem-gpgme/files/patch-ext_gpgme_gpgme__n.c b/security/rubygem-gpgme/files/patch-ext_gpgme_gpgme__n.c
new file mode 100644
index 000000000000..d0c71e09bb17
--- /dev/null
+++ b/security/rubygem-gpgme/files/patch-ext_gpgme_gpgme__n.c
@@ -0,0 +1,59 @@
+The trustlist feature, which only worked for a short period in 2003, was
+removed in GpgME 2.0.0.
+
+The gpgme_attr_t enums and their functions, which have been marked deprecated
+since 2003, were removed in GpgME 2.0.0.
+
+--- ext/gpgme/gpgme_n.c.orig 2025-06-23 05:28:53 UTC
++++ ext/gpgme/gpgme_n.c
+@@ -1633,6 +1633,7 @@ rb_s_gpgme_op_card_edit_start (VALUE dummy, VALUE vctx
+ return LONG2NUM(err);
+ }
+
++#if defined(GPGME_VERSION_NUMBER) && GPGME_VERSION_NUMBER < 0x020000
+ static VALUE
+ rb_s_gpgme_op_trustlist_start (VALUE dummy, VALUE vctx, VALUE vpattern,
+ VALUE vmax_level)
+@@ -1696,6 +1697,7 @@ rb_s_gpgme_op_trustlist_end (VALUE dummy, VALUE vctx)
+ err = gpgme_op_trustlist_end (ctx);
+ return LONG2NUM(err);
+ }
++#endif
+
+ static VALUE
+ rb_s_gpgme_op_decrypt (VALUE dummy, VALUE vctx, VALUE vcipher, VALUE vplain)
+@@ -2558,13 +2560,15 @@ Init_gpgme_n (void)
+ rb_define_module_function (mGPGME, "gpgme_op_card_edit_start",
+ rb_s_gpgme_op_card_edit_start, 5);
+
+- /* Trust Item Management */
++ /* Trust Item Management removed in 2.0.0 */
++#if defined(GPGME_VERSION_NUMBER) && GPGME_VERSION_NUMBER < 0x020000
+ rb_define_module_function (mGPGME, "gpgme_op_trustlist_start",
+ rb_s_gpgme_op_trustlist_start, 3);
+ rb_define_module_function (mGPGME, "gpgme_op_trustlist_next",
+ rb_s_gpgme_op_trustlist_next, 2);
+ rb_define_module_function (mGPGME, "gpgme_op_trustlist_end",
+ rb_s_gpgme_op_trustlist_end, 1);
++#endif
+
+ /* Decrypt */
+ rb_define_module_function (mGPGME, "gpgme_op_decrypt",
+@@ -2805,7 +2809,8 @@ Init_gpgme_n (void)
+ rb_define_const (mGPGME, "GPGME_SIG_MODE_CLEAR",
+ INT2FIX(GPGME_SIG_MODE_CLEAR));
+
+- /* gpgme_attr_t */
++ /* gpgme_attr_t removed in 2.0.0 */
++#if defined(GPGME_VERSION_NUMBER) && GPGME_VERSION_NUMBER < 0x020000
+ rb_define_const (mGPGME, "GPGME_ATTR_KEYID",
+ INT2FIX(GPGME_ATTR_KEYID));
+ rb_define_const (mGPGME, "GPGME_ATTR_FPR",
+@@ -2868,6 +2873,7 @@ Init_gpgme_n (void)
+ INT2FIX(GPGME_ATTR_ERRTOK));
+ rb_define_const (mGPGME, "GPGME_ATTR_SIG_SUMMARY",
+ INT2FIX(GPGME_ATTR_SIG_SUMMARY));
++#endif
+
+ /* gpgme_validity_t */
+ rb_define_const (mGPGME, "GPGME_VALIDITY_UNKNOWN",
diff --git a/security/rubygem-gpgme/files/patch-lib_gpgme_constants.rb b/security/rubygem-gpgme/files/patch-lib_gpgme_constants.rb
new file mode 100644
index 000000000000..19766f99d845
--- /dev/null
+++ b/security/rubygem-gpgme/files/patch-lib_gpgme_constants.rb
@@ -0,0 +1,75 @@
+The gpgme_attr_t enums and their functions, which have been marked deprecated
+since 2003, were removed in GpgME 2.0.0.
+
+--- lib/gpgme/constants.rb.orig 2025-06-23 05:42:19 UTC
++++ lib/gpgme/constants.rb
+@@ -1,36 +1,38 @@ module GPGME
+ module GPGME
+
+- ATTR_ALGO = GPGME_ATTR_ALGO
+- ATTR_CAN_CERTIFY = GPGME_ATTR_CAN_CERTIFY
+- ATTR_CAN_ENCRYPT = GPGME_ATTR_CAN_ENCRYPT
+- ATTR_CAN_SIGN = GPGME_ATTR_CAN_SIGN
+- ATTR_CHAINID = GPGME_ATTR_CHAINID
+- ATTR_COMMENT = GPGME_ATTR_COMMENT
+- ATTR_CREATED = GPGME_ATTR_CREATED
+- ATTR_EMAIL = GPGME_ATTR_EMAIL
+- ATTR_ERRTOK = GPGME_ATTR_ERRTOK
+- ATTR_EXPIRE = GPGME_ATTR_EXPIRE
+- ATTR_FPR = GPGME_ATTR_FPR
+- ATTR_ISSUER = GPGME_ATTR_ISSUER
+- ATTR_IS_SECRET = GPGME_ATTR_IS_SECRET
+- ATTR_KEYID = GPGME_ATTR_KEYID
+- ATTR_KEY_CAPS = GPGME_ATTR_KEY_CAPS
+- ATTR_KEY_DISABLED = GPGME_ATTR_KEY_DISABLED
+- ATTR_KEY_EXPIRED = GPGME_ATTR_KEY_EXPIRED
+- ATTR_KEY_INVALID = GPGME_ATTR_KEY_INVALID
+- ATTR_KEY_REVOKED = GPGME_ATTR_KEY_REVOKED
+- ATTR_LEN = GPGME_ATTR_LEN
+- ATTR_LEVEL = GPGME_ATTR_LEVEL
+- ATTR_NAME = GPGME_ATTR_NAME
+- ATTR_OTRUST = GPGME_ATTR_OTRUST
+- ATTR_SERIAL = GPGME_ATTR_SERIAL
+- ATTR_SIG_STATUS = GPGME_ATTR_SIG_STATUS
+- ATTR_SIG_SUMMARY = GPGME_ATTR_SIG_SUMMARY
+- ATTR_TYPE = GPGME_ATTR_TYPE
+- ATTR_UID_INVALID = GPGME_ATTR_UID_INVALID
+- ATTR_UID_REVOKED = GPGME_ATTR_UID_REVOKED
+- ATTR_USERID = GPGME_ATTR_USERID
+- ATTR_VALIDITY = GPGME_ATTR_VALIDITY
++ if defined?(GPGME_ATTR_ALGO)
++ ATTR_ALGO = GPGME_ATTR_ALGO
++ ATTR_CAN_CERTIFY = GPGME_ATTR_CAN_CERTIFY
++ ATTR_CAN_ENCRYPT = GPGME_ATTR_CAN_ENCRYPT
++ ATTR_CAN_SIGN = GPGME_ATTR_CAN_SIGN
++ ATTR_CHAINID = GPGME_ATTR_CHAINID
++ ATTR_COMMENT = GPGME_ATTR_COMMENT
++ ATTR_CREATED = GPGME_ATTR_CREATED
++ ATTR_EMAIL = GPGME_ATTR_EMAIL
++ ATTR_ERRTOK = GPGME_ATTR_ERRTOK
++ ATTR_EXPIRE = GPGME_ATTR_EXPIRE
++ ATTR_FPR = GPGME_ATTR_FPR
++ ATTR_ISSUER = GPGME_ATTR_ISSUER
++ ATTR_IS_SECRET = GPGME_ATTR_IS_SECRET
++ ATTR_KEYID = GPGME_ATTR_KEYID
++ ATTR_KEY_CAPS = GPGME_ATTR_KEY_CAPS
++ ATTR_KEY_DISABLED = GPGME_ATTR_KEY_DISABLED
++ ATTR_KEY_EXPIRED = GPGME_ATTR_KEY_EXPIRED
++ ATTR_KEY_INVALID = GPGME_ATTR_KEY_INVALID
++ ATTR_KEY_REVOKED = GPGME_ATTR_KEY_REVOKED
++ ATTR_LEN = GPGME_ATTR_LEN
++ ATTR_LEVEL = GPGME_ATTR_LEVEL
++ ATTR_NAME = GPGME_ATTR_NAME
++ ATTR_OTRUST = GPGME_ATTR_OTRUST
++ ATTR_SERIAL = GPGME_ATTR_SERIAL
++ ATTR_SIG_STATUS = GPGME_ATTR_SIG_STATUS
++ ATTR_SIG_SUMMARY = GPGME_ATTR_SIG_SUMMARY
++ ATTR_TYPE = GPGME_ATTR_TYPE
++ ATTR_UID_INVALID = GPGME_ATTR_UID_INVALID
++ ATTR_UID_REVOKED = GPGME_ATTR_UID_REVOKED
++ ATTR_USERID = GPGME_ATTR_USERID
++ ATTR_VALIDITY = GPGME_ATTR_VALIDITY
++ end
+ DATA_ENCODING_ARMOR = GPGME_DATA_ENCODING_ARMOR
+ DATA_ENCODING_BASE64 = GPGME_DATA_ENCODING_BASE64
+ DATA_ENCODING_BINARY = GPGME_DATA_ENCODING_BINARY
diff --git a/security/seahorse/Makefile b/security/seahorse/Makefile
index 86fdecd11037..76b93450b3f5 100644
--- a/security/seahorse/Makefile
+++ b/security/seahorse/Makefile
@@ -1,10 +1,13 @@
PORTNAME= seahorse
PORTVERSION= 41.0
-PORTREVISION= 3
+PORTREVISION= 4
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/security/vuxml/vuln/2025.xml b/security/vuxml/vuln/2025.xml
index 7ddafc13c211..88ecf66a42a7 100644
--- a/security/vuxml/vuln/2025.xml
+++ b/security/vuxml/vuln/2025.xml
@@ -2045,7 +2045,7 @@
</vuln>
<vuln vid="a8a1a8e7-2e85-11f0-a989-b42e991fc52e">
- <topic>Mozilla -- memory corrupton</topic>
+ <topic>Mozilla -- memory corruption</topic>
<affects>
<package>
<name>firefox</name>
@@ -2215,7 +2215,7 @@
</vuln>
<vuln vid="9c37a02e-2e85-11f0-a989-b42e991fc52e">
- <topic>Mozilla -- javescript content execution</topic>
+ <topic>Mozilla -- javascript content execution</topic>
<affects>
<package>
<name>firefox</name>