security/gpgme: Update to 2.0.0

Upstream has split most of the bindings out into separate projects with
this release, so the child ports that were previously providing various
bindings are now autonomous and have new origins. The python bindings
should have been called py-gpg for many years now, since 'gpg' is the
actual module name, so this also corrects that issue.

security/gpgme-cpp -> security/gpgmepp
security/gpgme-qt -> security/qgpgme
security/py-gpgme -> security/py-gpg

gpgmepp and qgpgme have been converted to CMake. py-gpg is now a "fun"
autotools and FreeBSD ports system hybrid. Gpgme, itself, still uses
autotools, but with much less parenting (patching) to do for its
emancipated children.

Adjust several ports to fix API incompatibility with upstream patches
and with some of my own. Adjust all consumers to use the new port
origins of the former child ports.

https://dev.gnupg.org/T7673
This commit is contained in:
Jason E. Hale
2025-06-24 07:02:06 -04:00
parent ba08747eac
commit 217815b0af
63 changed files with 423 additions and 345 deletions
+4
View File
@@ -4556,3 +4556,7 @@ devel/py-atomicwrites||2025-06-23|Has expired: Upstream repository has been arch
devel/py-pytest-runner||2025-06-23|Has expired: pytest-runner depends on deprecated features of setuptools
x11-toolkits/scenefx03|x11-toolkits/scenefx04|2025-06-24|No consumers in ports
net/ziina|net/zmate|2025-06-24|Renamed upstream
security/py-gpgme|security/py-gpg|2025-06-24|Gpgme Python bindings have been split into a separate project
security/gpgme-cpp|security/gpgmepp|2025-06-24|Gpgme C++ bindings have been split into a separate project
security/gpgme-qt@qt5|security/qgpgme@qt5|2025-06-24|Gpgme Qt5 bindings have been split into a separate project
security/gpgme-qt@qt6|security/qgpgme@qt6|2025-06-24|Gpgme Qt6 bindings have been split into a separate project
+2 -2
View File
@@ -9,8 +9,8 @@ WWW= https://www.kde.org/
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libqgpgmeqt6.so:security/gpgme-qt@qt6 \
libgpgmepp.so:security/gpgmepp \
libqgpgmeqt6.so:security/qgpgme@qt6 \
libqt6keychain.so:security/qtkeychain@qt6
USES= cmake compiler:c++11-lib gettext kde:6 qt:6 tar:xz
+2 -2
View File
@@ -11,8 +11,8 @@ LICENSE= LGPL21
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libqgpgmeqt6.so:security/gpgme-qt@qt6 \
libgpgmepp.so:security/gpgmepp \
libqgpgmeqt6.so:security/qgpgme@qt6 \
libical.so:devel/libical \
libxapian.so:databases/xapian-core
+2 -2
View File
@@ -11,8 +11,8 @@ LICENSE= LGPL21
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libqgpgmeqt6.so:security/gpgme-qt@qt6
libgpgmepp.so:security/gpgmepp \
libqgpgmeqt6.so:security/qgpgme@qt6
USES= cmake compiler:c++11-lib desktop-file-utils gettext kde:6 qt:6 \
tar:xz xorg
+2 -2
View File
@@ -11,8 +11,8 @@ LICENSE= LGPL21
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libqgpgmeqt6.so:security/gpgme-qt@qt6
libgpgmepp.so:security/gpgmepp \
libqgpgmeqt6.so:security/qgpgme@qt6
USES= cmake compiler:c++11-lib gettext kde:6 qt:6 tar:xz xorg
USE_KDE= archive attica auth codecs completion config configwidgets \
+2 -2
View File
@@ -9,8 +9,8 @@ WWW= https://www.kde.org/
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libqgpgmeqt6.so:security/gpgme-qt@qt6
libgpgmepp.so:security/gpgmepp \
libqgpgmeqt6.so:security/qgpgme@qt6
USES= cmake compiler:c++11-lib desktop-file-utils gettext kde:6 qt:6 \
tar:xz xorg
+2 -2
View File
@@ -13,8 +13,8 @@ RUN_DEPENDS= markdown:textproc/discount
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libqgpgme.so:security/gpgme-qt@qt5
libgpgmepp.so:security/gpgmepp \
libqgpgme.so:security/qgpgme@qt5
USES= cmake compiler:c++11-lib gettext kde:6 pkgconfig qt:6 tar:xz \
xorg
+2 -2
View File
@@ -9,8 +9,8 @@ WWW= https://www.kde.org/
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libqgpgmeqt6.so:security/gpgme-qt@qt6
libgpgmepp.so:security/gpgmepp \
libqgpgmeqt6.so:security/qgpgme@qt6
USES= cmake compiler:c++11-lib desktop-file-utils gettext gl kde:6 \
qt:6 shared-mime-info tar:xz
+2 -2
View File
@@ -11,8 +11,8 @@ LICENSE= LGPL21
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libqgpgmeqt6.so:security/gpgme-qt@qt6 \
libgpgmepp.so:security/gpgmepp \
libqgpgmeqt6.so:security/qgpgme@qt6 \
libqt6keychain.so:security/qtkeychain@qt6
RUN_DEPENDS= accountwizard:deskutils/kmail-account-wizard \
+2 -2
View File
@@ -9,8 +9,8 @@ WWW= https://www.kde.org/
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libqgpgmeqt6.so:security/gpgme-qt@qt6
libgpgmepp.so:security/gpgmepp \
libqgpgmeqt6.so:security/qgpgme@qt6
USES= cmake compiler:c++11-lib desktop-file-utils gettext kde:6 qt:6 \
tar:xz
+2 -2
View File
@@ -9,8 +9,8 @@ WWW= https://www.kde.org/
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libqgpgmeqt6.so:security/gpgme-qt@qt6
libgpgmepp.so:security/gpgmepp \
libqgpgmeqt6.so:security/qgpgme@qt6
USES= cmake compiler:c++11-lib gettext kde:6 qt:6 tar:xz xorg
USE_KDE= archive auth bookmarks codecs completion config configwidgets \
+1 -1
View File
@@ -61,7 +61,7 @@ LIB_DEPENDS= libapr-1.so:devel/apr1 \
libpagemaker-0.0.so:print/libpagemaker \
libassuan.so:security/libassuan \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libgpgmepp.so:security/gpgmepp \
libargon2.so:security/libargon2 \
libgpg-error.so:security/libgpg-error \
libnss3.so:security/nss \
+1 -1
View File
@@ -40,7 +40,7 @@ CALENDAR_DESC= iCalendar exporter
CALENDAR_LIB_DEPENDS= libical.so:devel/libical
CALENDAR_CMAKE_BOOL= ENABLE_LIBICAL
GNUPG_LIB_DEPENDS= libgpgmepp.so:security/gpgme-cpp
GNUPG_LIB_DEPENDS= libgpgmepp.so:security/gpgmepp
GNUPG_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_Gpgmepp \
CMAKE_DISABLE_FIND_PACKAGE_KF5Gpgmepp
+1 -1
View File
@@ -25,7 +25,7 @@ OPTIONS_DEFINE= GNUPG PYTHON
OPTIONS_SUB= yes
GNUPG_LIB_DEPENDS= libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp
libgpgmepp.so:security/gpgmepp
GNUPG_CMAKE_BOOL= USE_GPGME
PYTHON_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}boost-libs>0:devel/boost-python-libs@${PY_FLAVOR}
+1 -1
View File
@@ -103,7 +103,7 @@ OPENJPEG_CMAKE_OFF= -DENABLE_LIBOPENJPEG:STRING="none"
GNUPG_CMAKE_BOOL= ENABLE_GPGME
GNUPG_LIB_DEPENDS= libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp
libgpgmepp.so:security/gpgmepp
post-install:
.if ${_SLAVE_PORT} == glib
+1 -1
View File
@@ -12,7 +12,7 @@ LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}notmuch>=0.27:mail/py-notmuch@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gpgme>0:security/py-gpgme@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}configobj>4.7.0:devel/py-configobj@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}python-magic>0:devel/py-python-magic@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}twisted>=18.4.0:devel/py-twisted@${PY_FLAVOR} \
+1 -1
View File
@@ -15,7 +15,7 @@ LIB_DEPENDS= libassuan.so:security/libassuan \
libgpgme.so:security/gpgme
TEST_DEPENDS= bash:shells/bash \
check>0:devel/check \
${PYTHON_PKGNAMEPREFIX}gpgme>0:security/py-gpgme@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}xattr>0:devel/py-xattr@${PY_FLAVOR}
USES= cpe gettext-runtime gnome cmake:testing localbase:ldflags pkgconfig python shebangfix ssl
+1 -1
View File
@@ -43,6 +43,6 @@ OPTIONS_DEFAULT=DBUS OPENGPG
OPENGPG_DESC= GPG encryption per XEP-0373
DBUS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dbus>=0.82.2:devel/py-dbus@${PY_FLAVOR}
OPENGPG_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gpgme>0:security/py-gpgme@${PY_FLAVOR}
OPENGPG_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR}
.include <bsd.port.mk>
@@ -0,0 +1,15 @@
The gpgme_attr_t enums and their functions, which have been marked deprecated
since 2003, were removed in GpgME 2.0.0. The individual result structures
should be used instead.
--- src/pgp/gpg.c.orig 2023-07-14 05:39:30 UTC
+++ src/pgp/gpg.c
@@ -683,7 +683,7 @@ p_gpg_decrypt(const char* const cipher)
error = gpgme_get_key(ctx, recipient->keyid, &key, 1);
if (!error && key) {
- const char* addr = gpgme_key_get_string_attr(key, GPGME_ATTR_EMAIL, NULL, 0);
+ const char* addr = key->uids->email;
if (addr) {
g_string_append(recipients_str, addr);
}
+2 -2
View File
@@ -10,8 +10,8 @@ LICENSE= LGPL21
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libqgpgmeqt6.so:security/gpgme-qt@qt6
libgpgmepp.so:security/gpgmepp \
libqgpgmeqt6.so:security/qgpgme@qt6
USES= cmake compiler:c++11-lib gettext kde:6 qt:6 tar:xz xorg
USE_KDE= auth codecs completion config configwidgets coreaddons \
+6 -2
View File
@@ -2,6 +2,10 @@ PORTNAME= kget
DISTVERSION= ${KDE_APPLICATIONS_VERSION}
CATEGORIES= net kde kde-applications
PATCH_SITES= https://invent.kde.org/network/kget/-/commit/
PATCHFILES+= 6254c0cefa17fe82f44842bc21f5e5c241f66aec.patch:-p1 # Prep for Qgpgme 2.0.0
PATCHFILES+= a9aa30e58ca3281285a3ba64d1da6c22fe0ab31a.patch:-p1 # Prep for Qgpgme 2.0.0
MAINTAINER= kde@FreeBSD.org
COMMENT= KDE download manager
@@ -12,9 +16,9 @@ LIB_DEPENDS= libKTorrent6.so:net-p2p/libktorrent \
libgmp.so:math/gmp \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libgpgmepp.so:security/gpgmepp \
libqca-qt6.so:devel/qca@qt6 \
libqgpgmeqt6.so:security/gpgme-qt@qt6
libqgpgmeqt6.so:security/qgpgme@qt6
USES= cmake compiler:c++11-lang desktop-file-utils gettext kde:6 \
qt:6 shebangfix sqlite tar:xz xorg
+5 -1
View File
@@ -1,3 +1,7 @@
TIMESTAMP = 1749036885
TIMESTAMP = 1750435664
SHA256 (KDE/release-service/25.04.2/kget-25.04.2.tar.xz) = c6c9d107bdffbc2d19855f298c5634a341a82d6ca3e1b430ce608c7c10d580c1
SIZE (KDE/release-service/25.04.2/kget-25.04.2.tar.xz) = 4853484
SHA256 (KDE/release-service/25.04.2/6254c0cefa17fe82f44842bc21f5e5c241f66aec.patch) = 76dc24ccdc5c62024165aa00967480bc0640714bca00b86bf634b4b375cdb610
SIZE (KDE/release-service/25.04.2/6254c0cefa17fe82f44842bc21f5e5c241f66aec.patch) = 1221
SHA256 (KDE/release-service/25.04.2/a9aa30e58ca3281285a3ba64d1da6c22fe0ab31a.patch) = 186b2bc25e6fbfe5eb86c8b0c13a518539f94232726dc262cfbc81479149fa74
SIZE (KDE/release-service/25.04.2/a9aa30e58ca3281285a3ba64d1da6c22fe0ab31a.patch) = 1483
+2 -2
View File
@@ -12,8 +12,8 @@ BUILD_DEPENDS= ${LOCALBASE}/include/boost/range/algorithm.hpp:devel/boost-libs
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libqgpgmeqt6.so:security/gpgme-qt@qt6
libgpgmepp.so:security/gpgmepp \
libqgpgmeqt6.so:security/qgpgme@qt6
USES= cmake compiler:c++11-lib gettext kde:6 qt:6 tar:xz xorg
USE_KDE= archive auth codecs completion config configwidgets coreaddons \
+2 -2
View File
@@ -14,9 +14,9 @@ BUILD_DEPENDS= ${LOCALBASE}/include/boost/range/algorithm.hpp:devel/boost-libs
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libgpgmepp.so:security/gpgmepp \
libqca-qt6.so:devel/qca@qt6 \
libqgpgmeqt6.so:security/gpgme-qt@qt6
libqgpgmeqt6.so:security/qgpgme@qt6
USES= cmake compiler:c++11-lib cpe gettext kde:6 qt:6 tar:xz \
xorg
+1 -1
View File
@@ -379,7 +379,7 @@ FAM_CONFIGURE_WITH= fam
GPGME_CONFIGURE_WITH= gpgme
GPGME_LIB_DEPENDS= libgpgme.so:security/gpgme
GPGME_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gpgme>=1.14.0:security/py-gpgme@${PY_FLAVOR}
GPGME_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR}
GSSAPI_BUILTIN_USES= bison
GSSAPI_BUILTIN_BUILD_DEPENDS= p5-JSON>=4.0:converters/p5-JSON
+1 -1
View File
@@ -364,7 +364,7 @@ FAM_CONFIGURE_WITH= fam
GPGME_CONFIGURE_WITH= gpgme
GPGME_LIB_DEPENDS= libgpgme.so:security/gpgme
GPGME_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gpgme>=1.14.0:security/py-gpgme@${PY_FLAVOR}
GPGME_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR}
GSSAPI_BUILTIN_USES= bison
GSSAPI_BUILTIN_BUILD_DEPENDS= p5-JSON>=4.0:converters/p5-JSON
+1 -1
View File
@@ -366,7 +366,7 @@ FAM_CONFIGURE_WITH= fam
GPGME_CONFIGURE_WITH= gpgme
GPGME_LIB_DEPENDS= libgpgme.so:security/gpgme
GPGME_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gpgme>=1.14.0:security/py-gpgme@${PY_FLAVOR}
GPGME_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR}
GSSAPI_BUILTIN_USES= bison
GSSAPI_BUILTIN_BUILD_DEPENDS= p5-JSON>=4.0:converters/p5-JSON
+3 -3
View File
@@ -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
+70
View File
@@ -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 */
}
+13
View File
@@ -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);
};
-11
View File
@@ -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"
-13
View File
@@ -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"
+5 -100
View File
@@ -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>
+3 -3
View File
@@ -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
+2 -21
View File
@@ -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%/*/*}
@@ -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
+2 -2
View File
@@ -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
+18
View File
@@ -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>
+3
View File
@@ -0,0 +1,3 @@
TIMESTAMP = 1750275911
SHA256 (gpgmepp-2.0.0.tar.xz) = d4796049c06708a26f3096f748ef095347e1a3c1e570561701fe952c3f565382
SIZE (gpgmepp-2.0.0.tar.xz) = 118304
+2
View File
@@ -0,0 +1,2 @@
GpgMEpp is a C++ wrapper (or C++ bindings) for the GnuPG project's GPGME
(GnuPG Made Easy) library.
@@ -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
+7 -2
View File
@@ -2,6 +2,11 @@ PORTNAME= kleopatra
DISTVERSION= ${KDE_APPLICATIONS_VERSION}
CATEGORIES= security kde kde-applications
PATCH_SITES= https://invent.kde.org/pim/kleopatra/-/commit/
PATCHFILES+= 10b618703d74618c09b5e2b16e2db9d829aed93b.patch:-p1 # Prep for Qgpgme 2.0.0
PATCHFILES+= b1f3736de7ed3c2d4f58aa454064a4cd0f423250.patch:-p1 # Prep for Qgpgme 2.0.0
PATCHFILES+= d4f777ffa137148302ca39d5a2238c01c896605d.patch:-p1 # Prep for Qgpgme 2.0.0
MAINTAINER= kde@FreeBSD.org
COMMENT= Certificate manager for KDE
WWW= https://www.kde.org/applications/utilities/kleopatra/
@@ -10,8 +15,8 @@ LIB_DEPENDS= libassuan.so:security/libassuan \
libboost_thread.so:devel/boost-libs \
libgpgme.so:security/gpgme \
libgpg-error.so:security/libgpg-error \
libgpgmepp.so:security/gpgme-cpp \
libqgpgmeqt6.so:security/gpgme-qt@qt6
libgpgmepp.so:security/gpgmepp \
libqgpgmeqt6.so:security/qgpgme@qt6
USES= cmake compiler:c++11-lang desktop-file-utils gettext kde:6 \
qt:6 shared-mime-info tar:xz xorg
+7 -1
View File
@@ -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
+2 -2
View File
@@ -10,8 +10,8 @@ BUILD_DEPENDS= ${LOCALBASE}/include/boost/range/algorithm.hpp:devel/boost-libs
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libqgpgmeqt6.so:security/gpgme-qt@qt6 \
libgpgmepp.so:security/gpgme-cpp
libqgpgmeqt6.so:security/qgpgme@qt6 \
libgpgmepp.so:security/gpgmepp
RUN_DEPENDS= ${LOCALBASE}/bin/gmd5sum:sysutils/coreutils
USES= cmake compiler:c++11-lang gettext kde:6 qt:6 tar:xz
+41
View File
@@ -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)
+1 -1
View File
@@ -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
+43
View File
@@ -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>
+3
View File
@@ -0,0 +1,3 @@
TIMESTAMP = 1750492472
SHA256 (gpgmepy-2.0.0.tar.bz2) = 07e1265648ff51da238c9af7a18b3f1dc7b0c66b4f21a72f27c74b396cd3336d
SIZE (gpgmepy-2.0.0.tar.bz2) = 575963
+19
View File
@@ -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)"
@@ -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"
+3
View File
@@ -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.
-16
View File
@@ -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"
-89
View File
@@ -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
+55
View File
@@ -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>
+3
View File
@@ -0,0 +1,3 @@
TIMESTAMP = 1750277661
SHA256 (qgpgme-2.0.0.tar.xz) = 15645b2475cca6118eb2ed331b3a8d9442c9d4019c3846ba3f6d25321b4a61ad
SIZE (qgpgme-2.0.0.tar.xz) = 188552
+15
View File
@@ -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.
@@ -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
+3
View File
@@ -5,6 +5,9 @@ CATEGORIES= security gnome
MASTER_SITES= GNOME
DIST_SUBDIR= gnome
PATCH_SITES= https://gitlab.gnome.org/GNOME/seahorse/-/commit/
PATCHFILES+= aa68522cc696fa491ccfdff735b77bcf113168d0.patch:-p1 # Fix build with GpgME 2.0.0
MAINTAINER= gnome@FreeBSD.org
COMMENT= GNOME application for managing encryption keys (PGP, SSH)
WWW= https://wiki.gnome.org/Apps/Seahorse
+3 -1
View File
@@ -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
+1 -1
View File
@@ -12,7 +12,7 @@ LICENSE_FILE= ${WRKSRC}/COPYING
RUN_DEPENDS= libcomps>0:misc/libcomps \
libdnf>0:sysutils/libdnf \
rpm4>0:archivers/rpm4 \
${PYTHON_PKGNAMEPREFIX}gpgme>0:security/py-gpgme@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR}
USES= cmake gettext-tools python
+2 -2
View File
@@ -12,9 +12,9 @@ LIB_DEPENDS= libassuan.so:security/libassuan \
libgcrypt.so:security/libgcrypt \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libgpgmepp.so:security/gpgmepp \
libqca-qt5.so:devel/qca@qt5 \
libqgpgme.so:security/gpgme-qt@qt5
libqgpgme.so:security/qgpgme@qt5
USES= cmake compiler:c++11-lib gettext kde:5 qt:5 tar:xz xorg
USE_KDE= auth codecs config configwidgets coreaddons dbusaddons \
+1 -1
View File
@@ -9,7 +9,7 @@ LIB_DEPENDS= libassuan.so:security/libassuan \
libgcrypt.so:security/libgcrypt \
libsecret-1.so:security/libsecret \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libgpgmepp.so:security/gpgmepp \
libqca-qt6.so:devel/qca@qt6
USES= cmake gettext-tools gl kde:6 pkgconfig qt:6 tar:xz xorg
+2 -2
View File
@@ -13,9 +13,9 @@ LICENSE_FILE= ${WRKSRC}/LICENSES/LGPL-2.1-or-later.txt
LIB_DEPENDS= libassuan.so:security/libassuan \
libgpg-error.so:security/libgpg-error \
libgpgme.so:security/gpgme \
libgpgmepp.so:security/gpgme-cpp \
libgpgmepp.so:security/gpgmepp \
liboath.so:security/oath-toolkit \
libqgpgmeqt6.so:security/gpgme-qt@qt6
libqgpgmeqt6.so:security/qgpgme@qt6
RUN_DEPENDS= pass:sysutils/password-store
USES= cmake compiler:c++20-lang gettext kde:6 qt:6 tar:xz