Bug 236589

Summary: devel/RStudio, devel/cpprestsdk, games/pokerth, games/wesnoth, math/cadabra2, multimedia/musikcube: fails to build with boost 1.70
Product: Ports & Packages Reporter: Jan Beich <jbeich>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: Closed FIXED    
Severity: Affects Only Me CC: arved, games, madpilot, projects, yuri
Priority: --- Keywords: patch
Version: Latest   
Hardware: Any   
OS: Any   
See Also: https://github.com/zaphoyd/websocketpp/issues/794
Bug Depends on:    
Bug Blocks: 235956    
Attachments:
Description Flags
v0 yuri: maintainer-approval+

Description Jan Beich freebsd_committer freebsd_triage 2019-03-17 05:38:56 UTC
While preparing for Boost upgrade these ports failed to build due to an issue in bundled websocketpp. Can you help to avoid marking them as BROKEN?

$ fetch -qo- 'https://reviews.freebsd.org/D19303?download=true' |
  patch -Efsp0 -d /usr/ports
$ make all deinstall install clean -C/usr/ports/devel/boost-jam
$ make all deinstall install clean -C/usr/ports/devel/boost-libs
$ make -C/usr/ports/math/cadabra2
[...]
In file included from .../work/cadabra2-2.2.5-5-gf10cac6b9a/client_server/cadabra-server.cc:4:
In file included from .../work/cadabra2-2.2.5-5-gf10cac6b9a/client_server/./Server.hh:5:
In file included from .../work/cadabra2-2.2.5-5-gf10cac6b9a/libs/websocketpp/websocketpp/config/asio_no_tls.hpp:32:
In file included from .../work/cadabra2-2.2.5-5-gf10cac6b9a/libs/websocketpp/websocketpp/transport/asio/endpoint.hpp:32:
In file included from .../work/cadabra2-2.2.5-5-gf10cac6b9a/libs/websocketpp/websocketpp/transport/asio/connection.hpp:31:
In file included from .../work/cadabra2-2.2.5-5-gf10cac6b9a/libs/websocketpp/websocketpp/transport/asio/base.hpp:31:
In file included from .../work/cadabra2-2.2.5-5-gf10cac6b9a/libs/websocketpp/websocketpp/common/asio.hpp:61:
In file included from /usr/local/include/boost/asio/steady_timer.hpp:22:
In file included from /usr/local/include/boost/asio/basic_waitable_timer.hpp:27:
In file included from /usr/local/include/boost/asio/executor.hpp:338:
/usr/local/include/boost/asio/impl/executor.hpp:179:22: error: no member named 'context' in 'std::__1::reference_wrapper<boost::asio::io_context>'
    return executor_.context();
           ~~~~~~~~~ ^
/usr/local/include/boost/asio/impl/executor.hpp:142:3: note: in instantiation of member function 'boost::asio::executor::impl<std::__1::reference_wrapper<boost::asio::io_context>, std::__1::allocator<void> >::context' requested here
  impl(const Executor& e, const Allocator& a) BOOST_ASIO_NOEXCEPT
  ^
/usr/local/include/boost/asio/impl/executor.hpp:137:30: note: in instantiation of member function 'boost::asio::executor::impl<std::__1::reference_wrapper<boost::asio::io_context>, std::__1::allocator<void> >::impl' requested here
    impl* p = new (mem.ptr_) impl(e, a);
                             ^
/usr/local/include/boost/asio/impl/executor.hpp:333:50: note: in instantiation of member function 'boost::asio::executor::impl<std::__1::reference_wrapper<boost::asio::io_context>, std::__1::allocator<void> >::create' requested here
  : impl_(impl<Executor, std::allocator<void> >::create(e))
                                                 ^
/usr/include/c++/v1/memory:2103:18: note: in instantiation of function template specialization 'boost::asio::executor::executor<std::__1::reference_wrapper<boost::asio::io_context> >' requested here
      : __value_(_VSTD::forward<_Args>(_VSTD::get<_Indexes>(__args))...) {}
                 ^
/usr/include/c++/v1/__config:447:15: note: expanded from macro '_VSTD'
#define _VSTD std::_LIBCPP_NAMESPACE
              ^
/usr/include/c++/v1/memory:2205:9: note: in instantiation of function template specialization 'std::__1::__compressed_pair_elem<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor>, 1, false>::__compressed_pair_elem<std::__1::reference_wrapper<boost::asio::io_context> &&, 0>' requested here
        _Base2(__pc, _VSTD::move(__second_args),
        ^
/usr/include/c++/v1/memory:3618:16: note: in instantiation of function template specialization 'std::__1::__compressed_pair<std::__1::allocator<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor> >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor> >::__compressed_pair<std::__1::allocator<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor> > &, std::__1::reference_wrapper<boost::asio::io_context> &&>' requested here
            :  __data_(piecewise_construct, _VSTD::forward_as_tuple(__a),
               ^
/usr/include/c++/v1/memory:4277:26: note: in instantiation of function template specialization 'std::__1::__shared_ptr_emplace<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor>, std::__1::allocator<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor> > >::__shared_ptr_emplace<std::__1::reference_wrapper<boost::asio::io_context> >' requested here
    ::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);
                         ^
/usr/include/c++/v1/memory:4656:29: note: in instantiation of function template specialization 'std::__1::shared_ptr<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor> >::make_shared<std::__1::reference_wrapper<boost::asio::io_context> >' requested here
    return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)...);
                            ^
.../work/cadabra2-2.2.5-5-gf10cac6b9a/libs/websocketpp/websocketpp/transport/asio/security/none.hpp:171:25: note: in instantiation of function template specialization 'std::__1::make_shared<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor>, std::__1::reference_wrapper<boost::asio::io_context> >' requested here
        m_socket = lib::make_shared<lib::asio::ip::tcp::socket>(
                        ^
Comment 1 Yuri Victorovich freebsd_committer freebsd_triage 2019-03-17 08:29:39 UTC
The cadabra2 bug report: https://github.com/kpeeters/cadabra2/issues/139
Comment 2 Yuri Victorovich freebsd_committer freebsd_triage 2019-03-17 08:32:07 UTC
There is no error log for RStudio or musikcube in this PR.
I can't fix these anyway. They need to be submitted to their corresponding GitHub bug pages.
Comment 3 Jan Beich freebsd_committer freebsd_triage 2019-03-17 13:10:08 UTC
Created attachment 202932 [details]
v0

Does this look good for any of you? Please, also check runtime with boost 1.69.
Note, math/cadabra2 actually uses bundled websocketpp despite what post-extract says.
Comment 4 Yuri Victorovich freebsd_committer freebsd_triage 2019-03-17 17:23:14 UTC
Comment on attachment 202932 [details]
v0

Jan,

Please commit the patches if they fix the boost problem.

Thanks,
Yuri
Comment 5 Yuri Victorovich freebsd_committer freebsd_triage 2019-03-17 17:25:32 UTC
(In reply to Jan Beich from comment #3)

> Note, math/cadabra2 actually uses bundled websocketpp despite what post-extract says.

Thank you, I will look into this. This has probably eroded over several version updates.

Yuri
Comment 6 Yuri Victorovich freebsd_committer freebsd_triage 2019-03-17 19:27:32 UTC
Jan,

I fixed websocketpp unbundling in math/cadabra2, this may have solved the boost issue. Please retest it.

Thanks,
Yuri
Comment 7 commit-hook freebsd_committer freebsd_triage 2019-03-20 14:54:33 UTC
A commit references this bug:

Author: jbeich
Date: Wed Mar 20 14:53:30 UTC 2019
New revision: 496346
URL: https://svnweb.freebsd.org/changeset/ports/496346

Log:
  devel/websocketpp: unbreak with boost 1.70

  PR:		236589

Changes:
  head/devel/RStudio/files/patch-boost-1.70
  head/devel/cpprestsdk/files/patch-z-boost-1.70
  head/devel/websocketpp/Makefile
  head/devel/websocketpp/files/
  head/devel/websocketpp/files/patch-boost-1.70
  head/games/wesnoth/files/patch-boost-1.70
  head/multimedia/musikcube/files/
  head/multimedia/musikcube/files/patch-boost-1.70