hyperledger-iroha is broken

  • Open
  • quality assurance status badge
Details
2 participants
  • Maxim Cournoyer
  • Csepp
Owner
unassigned
Submitted by
Maxim Cournoyer
Severity
normal
M
M
Maxim Cournoyer wrote on 3 Nov 2022 20:57
(name . bug-guix)(address . bug-guix@gnu.org)
87fsezak1e.fsf@gmail.com
Hi,

I've tried fixing hyperledger-iroha without success. Updating it to
latest would require prometheus-cpp, not yet packaged. Anything I've
tried always end up with C++ compilation errors, such as this one
(protobuf 3.14):

Toggle snippet (9 lines)
c++14 -Wall -fdiagnostics-color=always -O2 -g -DNDEBUG -fPIC -MD -MT shared_model/backend/protobuf/CMakeFiles/shared_model_proto_backend.dir/queries/impl/proto_get_signatories.o -MF CMakeFiles/shared_model_proto_backend.dir/queries/impl/proto_get_signatories.o.d -o CMakeFiles/shared_model_proto_backend.dir/queries/impl/proto_get_signatories.o -c /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/queries/impl/proto_get_signatories.cpp
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/irohad/consensus/yac/impl/peer_orderer_impl.cpp: In member function ‘virtual boost::optional<iroha::consensus::yac::ClusterOrdering> iroha::consensus::yac::PeerOrdererImpl::getOrdering(const iroha::consensus::yac::YacHash&, std::vector<std::shared_ptr<shared_model::interface::Peer> >)’:
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/irohad/consensus/yac/impl/peer_orderer_impl.cpp:28:14: error: ‘shuffle’ is not a member of ‘std’
28 | std::shuffle(peers.begin(), peers.end(), gen);
| ^~~~~~~
make[2]: *** [irohad/consensus/yac/CMakeFiles/yac.dir/build.make:121: irohad/consensus/yac/CMakeFiles/yac.dir/impl/peer_orderer_impl.o] Error 1
make[2]: *** Waiting for unfinished jobs....

--
Thanks,
Maxim
C
C
Csepp wrote on 4 Nov 2022 12:01
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87fsezc73v.fsf@riseup.net
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

Toggle quote (15 lines)
> Hi,
>
> I've tried fixing hyperledger-iroha without success. Updating it to
> latest would require prometheus-cpp, not yet packaged. Anything I've
> tried always end up with C++ compilation errors, such as this one
> (protobuf 3.14):
>
> c++14 -Wall -fdiagnostics-color=always -O2 -g -DNDEBUG -fPIC -MD -MT shared_model/backend/protobuf/CMakeFiles/shared_model_proto_backend.dir/queries/impl/proto_get_signatories.o -MF CMakeFiles/shared_model_proto_backend.dir/queries/impl/proto_get_signatories.o.d -o CMakeFiles/shared_model_proto_backend.dir/queries/impl/proto_get_signatories.o -c /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/queries/impl/proto_get_signatories.cpp
> /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/irohad/consensus/yac/impl/peer_orderer_impl.cpp: In member function ‘virtual boost::optional<iroha::consensus::yac::ClusterOrdering> iroha::consensus::yac::PeerOrdererImpl::getOrdering(const iroha::consensus::yac::YacHash&, std::vector<std::shared_ptr<shared_model::interface::Peer> >)’:
> /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/irohad/consensus/yac/impl/peer_orderer_impl.cpp:28:14: error: ‘shuffle’ is not a member of ‘std’
> 28 | std::shuffle(peers.begin(), peers.end(), gen);
> | ^~~~~~~
> make[2]: *** [irohad/consensus/yac/CMakeFiles/yac.dir/build.make:121: irohad/consensus/yac/CMakeFiles/yac.dir/impl/peer_orderer_impl.o] Error 1
> make[2]: *** Waiting for unfinished jobs....

At first I thought it might be using a C++ standard that is too new or
too old, but std::shuffle seems to have been standardized in C++11 and
has not been removed since. Hmm.
Still, I'd try compiling again with different compiler flags, might have
some luck. Or looking into how std::shuffle is defined in the standard library.
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 59004@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 59004
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch