bug#59004: hyperledger-iroha is broken

2022-11-04 Thread Csepp


Maxim Cournoyer  writes:

> 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::PeerOrdererImpl::getOrdering(const 
> iroha::consensus::yac::YacHash&, 
> std::vector >)’:
> /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.
https://en.cppreference.com/w/cpp/algorithm/random_shuffle
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.





bug#59004: hyperledger-iroha is broken

2022-11-03 Thread Maxim Cournoyer
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):

--8<---cut here---start->8---
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::PeerOrdererImpl::getOrdering(const 
iroha::consensus::yac::YacHash&, 
std::vector >)’:
/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
--8<---cut here---end--->8---

-- 
Thanks,
Maxim