From 7828ad1c70fb0cf3f5cf35b07e6f72c434d6c731 Mon Sep 17 00:00:00 2001 From: "Jason E. Hale" Date: Fri, 1 Jan 2021 02:29:39 +0000 Subject: [PATCH] security/gpgme-cpp: Fix constness The 1.15.0 release of gpgme-cpp adds a `Signature::operator<` which is missing a const. In 6a6d2a27648, Signature got an operator< . This is used in *security/libkleo*, for instance, to sort the signatures for display. The build failure looks like this (trimmed for brevity, on 13-): === /usr/include/c++/v1/algorithm:715:71: error: invalid operands to binary expression ('const GpgME::UserID::Signature' and 'const GpgME::UserID::Signature') bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} /wrkdirs/usr/ports/security/libkleo/work/libkleo-20.12.0/src/models/ useridlistmodel.cpp:203:14: note: in instantiation of function template specialization 'std::__1::sort' requested here std::sort(sigs.begin(), sigs.end()); === PR: 252283 Submitted by: adridg --- security/gpgme-cpp/Makefile | 2 +- security/gpgme/files/patch-git-key.h | 29 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 security/gpgme/files/patch-git-key.h diff --git a/security/gpgme-cpp/Makefile b/security/gpgme-cpp/Makefile index 4ebbb431c472..d0efcd04d7a1 100644 --- a/security/gpgme-cpp/Makefile +++ b/security/gpgme-cpp/Makefile @@ -1,6 +1,6 @@ # $FreeBSD$ -PORTREVISION= 0 +PORTREVISION= 1 PKGNAMESUFFIX= -${SLAVEPORT} MAINTAINER= jhale@FreeBSD.org diff --git a/security/gpgme/files/patch-git-key.h b/security/gpgme/files/patch-git-key.h new file mode 100644 index 000000000000..7de9451c408b --- /dev/null +++ b/security/gpgme/files/patch-git-key.h @@ -0,0 +1,29 @@ +The operator< should be const, so it can be applied to const Signatures. +This fixes a build failure in security/libkleo. + +diff --git lang/cpp/src/key.cpp lang/cpp/src/key.cpp +index e536d080..7411e9e4 100644 +--- lang/cpp/src/key.cpp ++++ lang/cpp/src/key.cpp +@@ -865,7 +865,7 @@ UserID::Signature::Signature(const shared_gpgme_key_t &k, gpgme_user_id_t u, gpg + { + } + +-bool UserID::Signature::operator<(const Signature &other) ++bool UserID::Signature::operator<(const Signature &other) const + { + // based on cmp_signodes() in g10/keylist.c + +diff --git lang/cpp/src/key.h lang/cpp/src/key.h +index a7931672..57001a03 100644 +--- lang/cpp/src/key.h ++++ lang/cpp/src/key.h +@@ -468,7 +468,7 @@ public: + } + + /*! Defines a canonical sort order for signatures of the same user ID. */ +- bool operator<(const Signature &other); ++ bool operator<(const Signature &other) const; + + bool isNull() const + {