clipper icon indicating copy to clipboard operation
clipper copied to clipboard

Failed to build with boost 1.70.0

Open withsmilo opened this issue 6 years ago • 7 comments

We can install boost 1.70.0 through brew on Mac now, but got failed to build Clipper on Mac with boost 1.70.0. Error message is here, I think this is from SimpleWebServer.

In file included from /Users/user/Workplace/github/sungjunkim/clipper/src/frontends/src/query_frontend.hpp:22:
/Users/user/Workplace/github/sungjunkim/clipper/src/libs/httpserver/server_http.hpp:302:84: error: no member named 'get_io_service' in 'boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor>'
        timer = std::unique_ptr<asio::steady_timer>(new asio::steady_timer(socket->get_io_service()));
                                                                           ~~~~~~  ^
/Users/user/Workplace/github/sungjunkim/clipper/src/libs/httpserver/server_http.hpp:638:28: note: in instantiation of member function 'SimpleWeb::ServerBase<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor>
      >::Connection::set_timeout' requested here
      session->connection->set_timeout(config.timeout_request);
                           ^
/Users/user/Workplace/github/sungjunkim/clipper/src/libs/httpserver/server_http.hpp:933:17: note: in instantiation of member function 'SimpleWeb::ServerBase<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor> >::read' requested here
          this->read(session);
                ^
/Users/user/Workplace/github/sungjunkim/clipper/src/libs/httpserver/server_http.hpp:72:207: error: no member named 'get_io_service' in 'boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor>'
      Response(std::shared_ptr<Session> session_, long timeout_content) noexcept : std::ostream(nullptr), session(std::move(session_)), timeout_content(timeout_content), strand(session->connection->socket->get_io_service()) {
                                                                                                                                                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
/Users/user/Workplace/github/sungjunkim/clipper/src/libs/httpserver/server_http.hpp:646:57: note: in instantiation of member function 'SimpleWeb::ServerBase<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor> >::Response::Response'
      requested here
          auto response = std::shared_ptr<Response>(new Response(session, this->config.timeout_content));
                                                        ^
/Users/user/Workplace/github/sungjunkim/clipper/src/libs/httpserver/server_http.hpp:933:17: note: in instantiation of member function 'SimpleWeb::ServerBase<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor> >::read' requested here
          this->read(session);

Clipper is safe because all images use boost 1.65.1.

withsmilo avatar Jun 10 '19 07:06 withsmilo

This issue was raised already on SimpleWebServer. Here.

withsmilo avatar Jun 10 '19 07:06 withsmilo

I faced this error as well. https://www.boost.org/doc/libs/1_70_0/doc/html/boost_asio/history.html

Based on this, get_io_service is deprecated and removed. I will try to replace the function and see if it can compile the program.

rkooo567 avatar Jun 16 '19 07:06 rkooo567

Confirmed the latest simpleWebServer (https://gitlab.com/eidheim/Simple-Web-Server/blob/master/server_http.hpp) does not use deprecated and removed get_io_service. I think we can keep using the version >= 1.65.1 for now, and later when we update the simpleWebServer, it will be fixed.

rkooo567 avatar Jun 24 '19 05:06 rkooo567

Good news! but we always have to run integration tests on Docker, the local tests on Mac will be impossible before fixing this error.

withsmilo avatar Jun 24 '19 06:06 withsmilo

Hi all, few things:

  • We can run a sanity check for Clipper to compile on macosx with travis. Just a simple test to check Clipper compiles should suffice.
  • Ubuntu relies on debian's default boost version, which is currently 1.65. However, if the new SimpleWebServer does build against 1.65, then we can use the current master SimpleWebServer. It seems the author committed the change 1 week ago.
  • We shouldn't change the boost version in docker containers.

simon-mo avatar Jun 24 '19 06:06 simon-mo

@withsmilo @simon-mo Will ask SimpleWebServer if their current master is compatible to boost 1.65. After that, let's change the SimpleWebserver

https://gitlab.com/eidheim/Simple-Web-Server/issues/266 Verifed from the maintainer that the master is compatible with 1.65 boost without asio apis

rkooo567 avatar Jul 01 '19 06:07 rkooo567

Any update on this issue ?

asauray avatar Oct 15 '19 11:10 asauray