Bug 252267 - security/libkleo fails to build using poudriere with invalid operands to binary expression error on amd64 12.2 Release
Summary: security/libkleo fails to build using poudriere with invalid operands to bina...
Status: Closed DUPLICATE of bug 252283
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-kde (group)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-12-29 14:07 UTC by Robert Cina
Modified: 2020-12-30 23:47 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (kde)


Attachments
security/libkleo build log showing the error (202.61 KB, text/plain)
2020-12-29 14:07 UTC, Robert Cina
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Cina 2020-12-29 14:07:49 UTC
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 !!!
Comment 1 Adriaan de Groot freebsd_committer freebsd_triage 2020-12-30 23:47:31 UTC
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 ***