Created attachment 221088 [details] security/libkleo build log showing the error The port security/libkleo fails to build for me using poudriere on 12.2 Release amd64. The poudriere run seems to indicate Bad C++ code. The exact error is as follows: /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;} Not sure what changed in the port to cause it to error out. Below is an excerpt of the rest of the build log where it errors out. In file included from /wrkdirs/usr/ports/security/libkleo/work/libkleo-20.12.0/src/models/useridlistmodel.cpp:11: In file included from /wrkdirs/usr/ports/security/libkleo/work/libkleo-20.12.0/src/models/useridlistmodel.h:14: In file included from /usr/local/include/qt5/QtCore/QAbstractItemModel:1: In file included from /usr/local/include/qt5/QtCore/qabstractitemmodel.h:43: In file included from /usr/local/include/qt5/QtCore/qvariant.h:43: In file included from /usr/local/include/qt5/QtCore/qatomic.h:41: In file included from /usr/local/include/qt5/QtCore/qglobal.h:142: /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;} ~~~ ^ ~~~ /usr/include/c++/v1/algorithm:3944:17: note: in instantiation of member function 'std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature>::operator()' requested here if (__comp(*--__last, *__first)) ^ /usr/include/c++/v1/algorithm:4125:12: note: in instantiation of function template specialization 'std::__1::__sort<std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, GpgME::UserID::Signature *>' requested here _VSTD::__sort<_Comp_ref>(__first, __last, _Comp_ref(__comp)); ^ /usr/include/c++/v1/algorithm:4133:12: note: in instantiation of function template specialization 'std::__1::sort<GpgME::UserID::Signature *, std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> >' requested here _VSTD::sort(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); ^ /usr/include/c++/v1/algorithm:4149:12: note: in instantiation of function template specialization 'std::__1::sort<GpgME::UserID::Signature *>' requested here _VSTD::sort(__first.base(), __last.base()); ^ /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<GpgME::UserID::Signature>' requested here std::sort(sigs.begin(), sigs.end()); ^ /usr/include/c++/v1/utility:592:1: note: candidate template ignored: could not match 'pair<type-parameter-0-0, type-parameter-0-1>' against 'const GpgME::UserID::Signature' operator< (const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) ^ /usr/include/c++/v1/iterator:815:1: note: candidate template ignored: could not match 'reverse_iterator<type-parameter-0-0>' against 'const GpgME::UserID::Signature' operator<(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) ^ /usr/include/c++/v1/iterator:1251:1: note: candidate template ignored: could not match 'move_iterator<type-parameter-0-0>' against 'const GpgME::UserID::Signature' operator<(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) ^ /usr/include/c++/v1/iterator:1623:1: note: candidate template ignored: could not match '__wrap_iter<type-parameter-0-0>' against 'const GpgME::UserID::Signature' operator<(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT ^ /usr/include/c++/v1/tuple:1220:1: note: candidate template ignored: could not match 'tuple<type-parameter-0-0...>' against 'const GpgME::UserID::Signature' operator<(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) ^ /usr/include/c++/v1/memory:2882:1: note: candidate template ignored: could not match 'unique_ptr<type-parameter-0-0, type-parameter-0-1>' against 'const GpgME::UserID::Signature' operator< (const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) ^ /usr/include/c++/v1/memory:2940:1: note: candidate template ignored: could not match 'unique_ptr<type-parameter-0-0, type-parameter-0-1>' against 'const GpgME::UserID::Signature' operator<(const unique_ptr<_T1, _D1>& __x, nullptr_t) ^ /usr/include/c++/v1/memory:2949:1: note: candidate template ignored: could not match 'unique_ptr<type-parameter-0-0, type-parameter-0-1>' against 'const GpgME::UserID::Signature' operator<(nullptr_t, const unique_ptr<_T1, _D1>& __x) ^ /usr/include/c++/v1/memory:4439:1: note: candidate template ignored: could not match 'shared_ptr<type-parameter-0-0>' against 'const GpgME::UserID::Signature' operator<(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT ^ /usr/include/c++/v1/memory:4509:1: note: candidate template ignored: could not match 'shared_ptr<type-parameter-0-0>' against 'const GpgME::UserID::Signature' operator<(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT ^ /usr/include/c++/v1/memory:4517:1: note: candidate template ignored: could not match 'shared_ptr<type-parameter-0-0>' against 'const GpgME::UserID::Signature' operator<(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT ^ /usr/local/include/gpgme++/key.h:471:10: note: candidate function not viable: 'this' argument has type 'const GpgME::UserID::Signature', but method is not marked const bool operator<(const Signature &other); ^ In file included from /wrkdirs/usr/ports/security/libkleo/work/libkleo-20.12.0/src/models/useridlistmodel.cpp:11: In file included from /wrkdirs/usr/ports/security/libkleo/work/libkleo-20.12.0/src/models/useridlistmodel.h:14: In file included from /usr/local/include/qt5/QtCore/QAbstractItemModel:1: In file included from /usr/local/include/qt5/QtCore/qabstractitemmodel.h:43: In file included from /usr/local/include/qt5/QtCore/qvariant.h:43: In file included from /usr/local/include/qt5/QtCore/qatomic.h:41: In file included from /usr/local/include/qt5/QtCore/qglobal.h:142: /usr/include/c++/v1/algorithm:3730:20: error: no matching function for call to '__sort3' unsigned __r = __sort3<_Compare>(__x1, __x2, __x3, __c); ^~~~~~~~~~~~~~~~~ /usr/include/c++/v1/algorithm:3951:20: note: in instantiation of function template specialization 'std::__1::__sort4<std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, GpgME::UserID::Signature *>' requested here _VSTD::__sort4<_Compare>(__first, __first+1, __first+2, --__last, __comp); ^ /usr/include/c++/v1/algorithm:4125:12: note: in instantiation of function template specialization 'std::__1::__sort<std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, GpgME::UserID::Signature *>' requested here _VSTD::__sort<_Comp_ref>(__first, __last, _Comp_ref(__comp)); ^ /usr/include/c++/v1/algorithm:4133:12: note: in instantiation of function template specialization 'std::__1::sort<GpgME::UserID::Signature *, std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> >' requested here _VSTD::sort(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); ^ /usr/include/c++/v1/algorithm:4149:12: note: in instantiation of function template specialization 'std::__1::sort<GpgME::UserID::Signature *>' requested here _VSTD::sort(__first.base(), __last.base()); ^ /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<GpgME::UserID::Signature>' requested here std::sort(sigs.begin(), sigs.end()); ^ /usr/include/c++/v1/algorithm:3690:1: note: candidate template ignored: substitution failure [with _Compare = std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, _ForwardIterator = GpgME::UserID::Signature *] __sort3(_ForwardIterator __x, _ForwardIterator __y, _ForwardIterator __z, _Compare __c) ^ /usr/include/c++/v1/algorithm:3757:20: error: no matching function for call to '__sort4' unsigned __r = __sort4<_Compare>(__x1, __x2, __x3, __x4, __c); ^~~~~~~~~~~~~~~~~ /usr/include/c++/v1/algorithm:3954:20: note: in instantiation of function template specialization 'std::__1::__sort5<std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, GpgME::UserID::Signature *>' requested here _VSTD::__sort5<_Compare>(__first, __first+1, __first+2, __first+3, --__last, __comp); ^ /usr/include/c++/v1/algorithm:4125:12: note: in instantiation of function template specialization 'std::__1::__sort<std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, GpgME::UserID::Signature *>' requested here _VSTD::__sort<_Comp_ref>(__first, __last, _Comp_ref(__comp)); ^ /usr/include/c++/v1/algorithm:4133:12: note: in instantiation of function template specialization 'std::__1::sort<GpgME::UserID::Signature *, std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> >' requested here _VSTD::sort(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); ^ /usr/include/c++/v1/algorithm:4149:12: note: in instantiation of function template specialization 'std::__1::sort<GpgME::UserID::Signature *>' requested here _VSTD::sort(__first.base(), __last.base()); ^ /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<GpgME::UserID::Signature>' requested here std::sort(sigs.begin(), sigs.end()); ^ /usr/include/c++/v1/algorithm:3727:1: note: candidate template ignored: substitution failure [with _Compare = std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, _ForwardIterator = GpgME::UserID::Signature *] __sort4(_ForwardIterator __x1, _ForwardIterator __x2, _ForwardIterator __x3, ^ /usr/include/c++/v1/algorithm:3822:5: error: no matching function for call to '__sort3' __sort3<_Compare>(__first, __first+1, __j, __comp); ^~~~~~~~~~~~~~~~~ /usr/include/c++/v1/algorithm:3959:20: note: in instantiation of function template specialization 'std::__1::__insertion_sort_3<std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, GpgME::UserID::Signature *>' requested here _VSTD::__insertion_sort_3<_Compare>(__first, __last, __comp); ^ /usr/include/c++/v1/algorithm:4125:12: note: in instantiation of function template specialization 'std::__1::__sort<std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, GpgME::UserID::Signature *>' requested here _VSTD::__sort<_Comp_ref>(__first, __last, _Comp_ref(__comp)); ^ /usr/include/c++/v1/algorithm:4133:12: note: in instantiation of function template specialization 'std::__1::sort<GpgME::UserID::Signature *, std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> >' requested here _VSTD::sort(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); ^ /usr/include/c++/v1/algorithm:4149:12: note: in instantiation of function template specialization 'std::__1::sort<GpgME::UserID::Signature *>' requested here _VSTD::sort(__first.base(), __last.base()); ^ /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<GpgME::UserID::Signature>' requested here std::sort(sigs.begin(), sigs.end()); ^ /usr/include/c++/v1/algorithm:3690:1: note: candidate template ignored: substitution failure [with _Compare = std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, _ForwardIterator = GpgME::UserID::Signature *] __sort3(_ForwardIterator __x, _ForwardIterator __y, _ForwardIterator __z, _Compare __c) ^ /usr/include/c++/v1/algorithm:3855:9: error: no matching function for call to '__sort3' _VSTD::__sort3<_Compare>(__first, __first+1, --__last, __comp); ^~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/__config:782:15: note: expanded from macro '_VSTD' #define _VSTD std::_LIBCPP_ABI_NAMESPACE ^ /usr/include/c++/v1/algorithm:4085:32: note: in instantiation of function template specialization 'std::__1::__insertion_sort_incomplete<std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, GpgME::UserID::Signature *>' requested here bool __fs = _VSTD::__insertion_sort_incomplete<_Compare>(__first, __i, __comp); ^ /usr/include/c++/v1/algorithm:4125:12: note: in instantiation of function template specialization 'std::__1::__sort<std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, GpgME::UserID::Signature *>' requested here _VSTD::__sort<_Comp_ref>(__first, __last, _Comp_ref(__comp)); ^ /usr/include/c++/v1/algorithm:4133:12: note: in instantiation of function template specialization 'std::__1::sort<GpgME::UserID::Signature *, std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> >' requested here _VSTD::sort(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); ^ /usr/include/c++/v1/algorithm:4149:12: note: in instantiation of function template specialization 'std::__1::sort<GpgME::UserID::Signature *>' requested here _VSTD::sort(__first.base(), __last.base()); ^ /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<GpgME::UserID::Signature>' requested here std::sort(sigs.begin(), sigs.end()); ^ /usr/include/c++/v1/algorithm:3690:1: note: candidate template ignored: substitution failure [with _Compare = std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, _ForwardIterator = GpgME::UserID::Signature *] __sort3(_ForwardIterator __x, _ForwardIterator __y, _ForwardIterator __z, _Compare __c) ^ /usr/include/c++/v1/algorithm:3858:9: error: no matching function for call to '__sort4' _VSTD::__sort4<_Compare>(__first, __first+1, __first+2, --__last, __comp); ^~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/__config:782:15: note: expanded from macro '_VSTD' #define _VSTD std::_LIBCPP_ABI_NAMESPACE ^ /usr/include/c++/v1/algorithm:3727:1: note: candidate template ignored: substitution failure [with _Compare = std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, _ForwardIterator = GpgME::UserID::Signature *] __sort4(_ForwardIterator __x1, _ForwardIterator __x2, _ForwardIterator __x3, ^ /usr/include/c++/v1/algorithm:3861:9: error: no matching function for call to '__sort5' _VSTD::__sort5<_Compare>(__first, __first+1, __first+2, __first+3, --__last, __comp); ^~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/__config:782:15: note: expanded from macro '_VSTD' #define _VSTD std::_LIBCPP_ABI_NAMESPACE ^ /usr/include/c++/v1/algorithm:3754:1: note: candidate template ignored: substitution failure [with _Compare = std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, _ForwardIterator = GpgME::UserID::Signature *] __sort5(_ForwardIterator __x1, _ForwardIterator __x2, _ForwardIterator __x3, ^ /usr/include/c++/v1/algorithm:3866:5: error: no matching function for call to '__sort3' __sort3<_Compare>(__first, __first+1, __j, __comp); ^~~~~~~~~~~~~~~~~ /usr/include/c++/v1/algorithm:3690:1: note: candidate template ignored: substitution failure [with _Compare = std::__1::__less<GpgME::UserID::Signature, GpgME::UserID::Signature> &, _ForwardIterator = GpgME::UserID::Signature *] __sort3(_ForwardIterator __x, _ForwardIterator __y, _ForwardIterator __z, _Compare __c) ^ 8 errors generated. ninja: build stopped: subcommand failed. ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 Stop. make: stopped in /usr/ports/security/libkleo =>> Cleaning up wrkdir ===> Cleaning for libkleo-20.12.0 build of security/libkleo | libkleo-20.12.0 ended at Tue Dec 29 08:46:12 EST 2020 build time: 00:01:46 !!! build failure encountered !!!
The problem is an update in gpgme, which introduced code that is not compatible with our STL (our std::sort expects a bool operator<() const). There is a fix to be applied to gpgme in the linked PR. *** This bug has been marked as a duplicate of bug 252283 ***