hyperledger / iroha

Iroha - A simple, enterprise-grade decentralized ledger
https://wiki.hyperledger.org/display/iroha
Apache License 2.0
434 stars 277 forks source link

Guix package: apply_visitor_unary.hpp:98:61: error: no match for call to... #384

Closed Ambrevar closed 4 years ago

Ambrevar commented 4 years ago

I'm trying to build an Iroha package for Guix. The configure phase goes well, but then the build fails with:

[ 18%] Building CXX object shared_model/backend/protobuf/CMakeFiles/shared_model_proto_backend.dir/impl/block.o
cd /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/build/shared_model/backend/protobuf && /gnu/store/x3jx25cd3q363mr7nbgzrhrv1vza6cf7-gcc-7.4.0/bin/c++  -DBOOST_NO_RTTI -DFMT_HEADER_ONLY -I/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/irohad -I/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/libs -I/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model -I/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/../libs -I/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/build/schema -isystem /gnu/store/hqqshnwv31v8fddk0b2x3cmya82sxj4n-protobuf-3.11.3/include -isystem /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include -isystem /gnu/store/hrn0pncp1k7ch8hi12s2w2x0xvl6hkq0-hyperledger-iroha-ed25519-2.0.2/include -isystem /gnu/store/b68ysbyaxhxayj0vc39r0d42c3yi82vp-fmt-5.3.0/include -isystem /gnu/store/d2siv6zv3x0byq9fi12yc0zlwgb5knxd-spdlog-1.3.1/include  -std=c++14 -Wall -fdiagnostics-color=always -O2 -g -DNDEBUG -fPIC   -o CMakeFiles/shared_model_proto_backend.dir/impl/block.o -c /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/impl/block.cpp
In file included from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/apply_visitor.hpp:16:0,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/hash_variant.hpp:22,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/variant.hpp:34,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant.hpp:17,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/trivial_proto.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/signature.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/impl/block.cpp:9:
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp: In instantiation of ‘struct boost::detail::variant::result_multideduce1<shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>, boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&> >::deduce_impl<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<2>, iroha::protocol::Signature, boost::mpl::l_item<mpl_::long_<1>, iroha::protocol::Signature&, boost::mpl::l_end> > >, void>’:
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp:108:50:   required from ‘struct boost::detail::variant::result_multideduce1<shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>, boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&> >’
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp:114:66:   required from ‘struct boost::detail::variant::result_wrapper1<shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>, boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&> >’
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp:135:98:   required from ‘decltype(auto) boost::apply_visitor(Visitor&&, Visitable&&, typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type*) [with Visitor = shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>; Visitable = boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&>&; typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type = void]’
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:41:37:   required from ‘shared_model::detail::ReferenceHolder<T>::PointerType shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]’
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:37:19:   required from ‘shared_model::detail::ReferenceHolder<T>::PointerType shared_model::detail::ReferenceHolder<T>::operator->() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]’
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/signature.hpp:39:46:   required from here
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp:98:61: error: no match for call to ‘(shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>) (iroha::protocol::Signature)’
         typedef decltype(true ? boost::declval< Visitor& >()( boost::declval< value_t >() )
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/trivial_proto.hpp:9:0,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/signature.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/impl/block.cpp:9:
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:42:32: note: candidate: shared_model::detail::ReferenceHolder<T>::ptr()::<lambda(auto:4&)> [with auto:4 = iroha::protocol::Signature; T = iroha::protocol::Signature] <near match>
             [](auto &value) -> decltype(auto) { return (value); }, variant_);
                                ^~~~~~~~
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:42:32: note:   conversion of argument 1 would be ill-formed:
In file included from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/apply_visitor.hpp:16:0,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/hash_variant.hpp:22,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/variant.hpp:34,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant.hpp:17,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/trivial_proto.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/signature.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/impl/block.cpp:9:
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp:98:61: error: cannot bind non-const lvalue reference of type ‘iroha::protocol::Signature&’ to an rvalue of type ‘iroha::protocol::Signature’
         typedef decltype(true ? boost::declval< Visitor& >()( boost::declval< value_t >() )
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp: In instantiation of ‘struct boost::detail::variant::result_multideduce1<shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>, boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&> >::deduce_impl<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<1>, iroha::protocol::Signature&, boost::mpl::l_end> >, void>’:
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp:99:33:   required from ‘struct boost::detail::variant::result_multideduce1<shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>, boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&> >::deduce_impl<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<2>, iroha::protocol::Signature, boost::mpl::l_item<mpl_::long_<1>, iroha::protocol::Signature&, boost::mpl::l_end> > >, void>’
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp:108:50:   required from ‘struct boost::detail::variant::result_multideduce1<shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>, boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&> >’
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp:114:66:   required from ‘struct boost::detail::variant::result_wrapper1<shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>, boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&> >’
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp:135:98:   required from ‘decltype(auto) boost::apply_visitor(Visitor&&, Visitable&&, typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type*) [with Visitor = shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>; Visitable = boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&>&; typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type = void]’
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:41:37:   required from ‘shared_model::detail::ReferenceHolder<T>::PointerType shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]’
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:37:19:   required from ‘shared_model::detail::ReferenceHolder<T>::PointerType shared_model::detail::ReferenceHolder<T>::operator->() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]’
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/signature.hpp:39:46:   required from here
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp:105:54: error: use of ‘shared_model::detail::ReferenceHolder<T>::ptr()::<lambda(auto:4&)> [with auto:4 = iroha::protocol::Signature; T = iroha::protocol::Signature]’ before deduction of ‘auto’
         typedef decltype(boost::declval< Visitor& >()( boost::declval< value_t >() )) type;
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/apply_visitor.hpp:16:0,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/hash_variant.hpp:22,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/variant.hpp:34,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant.hpp:17,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/trivial_proto.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/signature.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/impl/block.cpp:9:
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp: In instantiation of ‘decltype(auto) boost::apply_visitor(Visitor&&, Visitable&&, typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type*) [with Visitor = shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>; Visitable = boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&>&; typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type = void]’:
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:41:37:   required from ‘shared_model::detail::ReferenceHolder<T>::PointerType shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]’
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:37:19:   required from ‘shared_model::detail::ReferenceHolder<T>::PointerType shared_model::detail::ReferenceHolder<T>::operator->() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]’
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/signature.hpp:39:46:   required from here
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp:136:74: error: no matching function for call to ‘boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&>::apply_visitor(boost::detail::variant::result_wrapper1<shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>, boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&> >&)’
     return ::boost::forward<Visitable>(visitable).apply_visitor(cpp14_vis);
                                                                          ^
In file included from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant.hpp:17:0,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/trivial_proto.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/signature.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/impl/block.cpp:9:
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/variant.hpp:2365:5: note: candidate: template<class Visitor> typename Visitor::result_type boost::variant<T0, TN>::apply_visitor(Visitor&) && [with Visitor = Visitor; T0_ = iroha::protocol::Signature; TN = {iroha::protocol::Signature&}]
     apply_visitor(Visitor& visitor) &&
     ^~~~~~~~~~~~~
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/variant.hpp:2365:5: note:   template argument deduction/substitution failed:
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/variant.hpp:2373:5: note: candidate: template<class Visitor> typename Visitor::result_type boost::variant<T0, TN>::apply_visitor(Visitor&) const && [with Visitor = Visitor; T0_ = iroha::protocol::Signature; TN = {iroha::protocol::Signature&}]
     apply_visitor(Visitor& visitor) const&&
     ^~~~~~~~~~~~~
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/variant.hpp:2373:5: note:   template argument deduction/substitution failed:
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/variant.hpp:2383:5: note: candidate: template<class Visitor> typename Visitor::result_type boost::variant<T0, TN>::apply_visitor(Visitor&) & [with Visitor = Visitor; T0_ = iroha::protocol::Signature; TN = {iroha::protocol::Signature&}]
     apply_visitor(Visitor& visitor)
     ^~~~~~~~~~~~~
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/variant.hpp:2383:5: note:   template argument deduction/substitution failed:
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/variant.hpp:2394:5: note: candidate: template<class Visitor> typename Visitor::result_type boost::variant<T0, TN>::apply_visitor(Visitor&) const & [with Visitor = Visitor; T0_ = iroha::protocol::Signature; TN = {iroha::protocol::Signature&}]
     apply_visitor(Visitor& visitor) const
     ^~~~~~~~~~~~~
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/variant.hpp:2394:5: note:   template argument deduction/substitution failed:
In file included from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/trivial_proto.hpp:9:0,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/signature.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/impl/block.cpp:9:
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp: In instantiation of ‘shared_model::detail::ReferenceHolder<T>::PointerType shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]’:
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:37:19:   required from ‘shared_model::detail::ReferenceHolder<T>::PointerType shared_model::detail::ReferenceHolder<T>::operator->() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]’
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/signature.hpp:39:46:   required from here
/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:41:16: error: lvalue required as unary ‘&’ operand
         return &boost::apply_visitor(
                ^~~~~~~~~~~~~~~~~~~~~~
             [](auto &value) -> decltype(auto) { return (value); }, variant_);
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/move/utility.hpp:29:0,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/optional/optional.hpp:53,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/optional.hpp:15,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/interfaces/base/signable.hpp:12,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/interfaces/iroha_internal/block.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/block.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/impl/block.cpp:6:
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/move/utility_core.hpp:248:37: error: ‘T&& boost::forward(typename boost::move_detail::remove_reference<T>::type&) [with T = shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>; typename boost::move_detail::remove_reference<T>::type = shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>]’, declared using local type ‘boost::move_detail::remove_reference<shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)> >::type {aka shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>}’, is used but never defined [-fpermissive]
          BOOST_MOVE_FORCEINLINE T&& forward(typename ::boost::move_detail::remove_reference<T>::type& t) BOOST_NOEXCEPT
                                     ^~~~~~~
In file included from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/apply_visitor.hpp:16:0,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/hash_variant.hpp:22,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/variant.hpp:34,
                 from /gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant.hpp:17,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/utils/reference_holder.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/trivial_proto.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/common_objects/signature.hpp:9,
                 from /tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/source/shared_model/backend/protobuf/impl/block.cpp:9:
/gnu/store/f5g4av3mwn7zr81yqr1gn9hpb5d2c4m4-boost-1.70.0/include/boost/variant/detail/apply_visitor_unary.hpp:117:14: error: ‘boost::detail::variant::result_wrapper1<Visitor, Variant>::result_wrapper1(Visitor&&) [with Visitor = shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>; Variant = boost::variant<iroha::protocol::Signature, iroha::protocol::Signature&>]’, declared using local type ‘shared_model::detail::ReferenceHolder<T>::ptr() [with T = iroha::protocol::Signature; shared_model::detail::ReferenceHolder<T>::PointerType = iroha::protocol::Signature*]::<lambda(auto:4&)>’, is used but never defined [-fpermissive]
     explicit result_wrapper1(Visitor&& visitor) BOOST_NOEXCEPT
              ^~~~~~~~~~~~~~~
make[2]: *** [shared_model/backend/protobuf/CMakeFiles/shared_model_proto_backend.dir/build.make:66: shared_model/backend/protobuf/CMakeFiles/shared_model_proto_backend.dir/impl/block.o] Error 1
make[2]: Leaving directory '/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/build'
make[1]: *** [CMakeFiles/Makefile2:3110: shared_model/backend/protobuf/CMakeFiles/shared_model_proto_backend.dir/all] Error 2
make[1]: Leaving directory '/tmp/guix-build-hyperledger-iroha-1.1.1.drv-0/build'
make: *** [Makefile:144: all] Error 2
command "make" failed with status 2

For now, the package recipe is:

(define-public hyperledger-iroha
  (package
    (name "hyperledger-iroha")
    (version "1.1.1")
    (home-page "https://github.com/hyperledger/iroha")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url home-page)
                    (commit version)))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "014mbwq059yxwihw0mq8zgns53fsw8ckczi1lw8q9pz3pk86pa9b"))))
    (build-system cmake-build-system)
    ;; See https://iroha.readthedocs.io/en/latest/build/index.html.
    (native-inputs
     `(("googletest" ,googletest)))
    (inputs
     `(("spdlog" ,spdlog)
       ("protobuf" ,protobuf)
       ("grpc" ,grpc)
       ("rapidjson" ,rapidjson)
       ("gflags" ,gflags)
       ("rxcpp" ,rxcpp)
       ("tbb" ,tbb)
       ("boost" ,boost)
       ("hyperledger-iroha-ed25519" ,hyperledger-iroha-ed25519)
       ("fmt" ,fmt-5)
       ("postgresql" ,postgresql)
       ("soci" ,soci)))
    (synopsis "Simple, decentralized ledger")
    (description "Iroha is a distributed ledger technology (DLT).  Iroha has
essential functionality for your asset, information and identity management
needs, at the same time being a crash fault-tolerant tool.

Iroha has the following features:

@itemize
@item Creation and management of custom fungible assets, such as currencies, kilos of gold, etc.
@item Management of user accounts
@item Taxonomy of accounts based on domains in the system
@item The system of rights and verification of user permissions for the execution of transactions and queries in the system
@item Validation of business rules for transactions and queries in the system
@item Multisignature transactions
@end itemize\n")
    (license license:asl2.0)))

The main thing I'm unsure about is the hyperledger-iroha-ed25519 package, which I've packaged with -DEDIMPL=ref10. Any clue?

P.S.: Is it possible to create an account on the Hypledger Jira without having to contact the administrator?

sorabot commented 4 years ago

Thank you for reporting this! To resolve issues quicker and more efficiently, we now track them in Jira - that way they get considered during sprint planning and never get lost or mishandled 😊 We have already carefully transferred your reported issue here. If you want to track your issue or help us fix it (that would be awesome!), please follow the link above. Even if you do not have a LFID needed for logging in, you can get it here in a few moments.

In case you have just a quick question on how things work, let us know in a chat: https://chat.hyperledger.org/channel/iroha

You are always welcome to participate in discussions in JIRA comments section or Rocket.Chat or help others🖖

Ambrevar commented 4 years ago

This issue is raised by improper use of Boost 1.70. I can successfully build Iroha with Boost 1.69.