GNU bug report logs - #59004
hyperledger-iroha is broken

Previous Next

Package: guix;

Reported by: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Date: Thu, 3 Nov 2022 19:58:01 UTC

Severity: normal

To reply to this bug, email your comments to 59004 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#59004; Package guix. (Thu, 03 Nov 2022 19:58:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Maxim Cournoyer <maxim.cournoyer <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Thu, 03 Nov 2022 19:58:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: bug-guix <bug-guix <at> gnu.org>
Subject: hyperledger-iroha is broken
Date: Thu, 03 Nov 2022 15:57:01 -0400
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::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....
--8<---------------cut here---------------end--------------->8---

-- 
Thanks,
Maxim




Information forwarded to bug-guix <at> gnu.org:
bug#59004; Package guix. (Fri, 04 Nov 2022 11:06:01 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Csepp <raingloom <at> riseup.net>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 59004 <at> debbugs.gnu.org, bug-guix <at> gnu.org
Subject: Re: bug#59004: hyperledger-iroha is broken
Date: Fri, 04 Nov 2022 12:01:26 +0100
Maxim Cournoyer <maxim.cournoyer <at> gmail.com> 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::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.
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.




Information forwarded to bug-guix <at> gnu.org:
bug#59004; Package guix. (Fri, 04 Nov 2022 11:06:01 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 167 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.