gridcoin-community / Gridcoin-Research

Gridcoin-Research
MIT License
587 stars 172 forks source link

Fails to build against boost 1.66.0 #803

Closed dark-saber closed 6 years ago

dark-saber commented 6 years ago

Both master and staging branches fail to build against new libboost 1.66.0 on Arch LInux. There are no issues with previous version (1.65.1).

src/bitcoinrpc.cpp:707:102: error: wrong number of template arguments (2, should be 1)
 static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                                                      ^
In file included from /usr/include/boost/asio.hpp:30:0,
                 from src/bitcoinrpc.cpp:15:
/usr/include/boost/asio/basic_socket_acceptor.hpp:73:7: note: provided for ‘template<class Protocol> class boost::asio::basic_socket_acceptor’
 class basic_socket_acceptor
       ^~~~~~~~~~~~~~~~~~~~~
src/bitcoinrpc.cpp:707:104: error: template argument 1 is invalid
 static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                                                        ^
src/bitcoinrpc.cpp:717:95: error: wrong number of template arguments (2, should be 1)
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                                               ^
In file included from /usr/include/boost/asio.hpp:30:0,
                 from src/bitcoinrpc.cpp:15:
/usr/include/boost/asio/basic_socket_acceptor.hpp:73:7: note: provided for ‘template<class Protocol> class boost::asio::basic_socket_acceptor’
 class basic_socket_acceptor
       ^~~~~~~~~~~~~~~~~~~~~
src/bitcoinrpc.cpp:717:97: error: template argument 1 is invalid
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                                                 ^
src/bitcoinrpc.cpp: In function ‘void RPCListen(int, boost::asio::ssl::context&, bool)’:
src/bitcoinrpc.cpp:722:91: error: base operand of ‘->’ is not a pointer
     AcceptedConnectionImpl<Protocol>* conn = new AcceptedConnectionImpl<Protocol>(acceptor->get_io_service(), context, fUseSSL);
                                                                                           ^~
src/bitcoinrpc.cpp:724:13: error: base operand of ‘->’ is not a pointer
     acceptor->async_accept(
             ^~
src/bitcoinrpc.cpp: At global scope:
src/bitcoinrpc.cpp:739:102: error: wrong number of template arguments (2, should be 1)
 static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                                                      ^
In file included from /usr/include/boost/asio.hpp:30:0,
                 from src/bitcoinrpc.cpp:15:
/usr/include/boost/asio/basic_socket_acceptor.hpp:73:7: note: provided for ‘template<class Protocol> class boost::asio::basic_socket_acceptor’
 class basic_socket_acceptor
       ^~~~~~~~~~~~~~~~~~~~~
src/bitcoinrpc.cpp:739:104: error: template argument 1 is invalid
 static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                                                        ^
src/bitcoinrpc.cpp: In function ‘void RPCAcceptHandler(int, boost::asio::ssl::context&, bool, AcceptedConnection*, const boost::system::error_code&)’:
src/bitcoinrpc.cpp:748:17: error: base operand of ‘->’ is not a pointer
      && acceptor->is_open())
                 ^~
src/bitcoinrpc.cpp:749:45: error: no matching function for call to ‘RPCListen(int&, boost::asio::ssl::context&, const bool&)’
         RPCListen(acceptor, context, fUseSSL);
                                             ^
src/bitcoinrpc.cpp:717:13: note: candidate: template<class Protocol, class SocketAcceptorService> void RPCListen(int, boost::asio::ssl::context&, bool)
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
             ^~~~~~~~~
src/bitcoinrpc.cpp:717:13: note:   template argument deduction/substitution failed:
src/bitcoinrpc.cpp:749:45: note:   couldn't deduce template parameter ‘Protocol’
         RPCListen(acceptor, context, fUseSSL);
                                             ^
src/bitcoinrpc.cpp: In function ‘void ThreadRPCServer2(void*)’:
src/bitcoinrpc.cpp:816:63: error: no matching function for call to ‘boost::asio::ssl::context::context(boost::asio::io_service&, boost::asio::ssl::context_base::method)’
     ssl::context context(*rpc_io_service, ssl::context::sslv23);
                                                               ^
In file included from /usr/include/boost/asio/ssl/context.hpp:757:0,
                 from /usr/include/boost/asio/ssl.hpp:18,
                 from src/bitcoinrpc.cpp:22:
/usr/include/boost/asio/ssl/impl/context.ipp:326:1: note: candidate: boost::asio::ssl::context::context(boost::asio::ssl::context&&)
 context::context(context&& other)
 ^~~~~~~
/usr/include/boost/asio/ssl/impl/context.ipp:326:1: note:   candidate expects 1 argument, 2 provided
/usr/include/boost/asio/ssl/impl/context.ipp:63:1: note: candidate: boost::asio::ssl::context::context(boost::asio::ssl::context_base::method)
 context::context(context::method m)
 ^~~~~~~
/usr/include/boost/asio/ssl/impl/context.ipp:63:1: note:   candidate expects 1 argument, 2 provided
src/bitcoinrpc.cpp:832:41: error: ‘class boost::asio::ssl::context’ has no member named ‘impl’
         SSL_CTX_set_cipher_list(context.impl(), strCiphers.c_str());
                                         ^~~~
src/bitcoinrpc.cpp:857:45: error: no matching function for call to ‘RPCListen(boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp> >&, boost::asio::ssl::context&, const bool&)’
         RPCListen(acceptor, context, fUseSSL);
                                             ^
src/bitcoinrpc.cpp:717:13: note: candidate: template<class Protocol, class SocketAcceptorService> void RPCListen(int, boost::asio::ssl::context&, bool)
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
             ^~~~~~~~~
src/bitcoinrpc.cpp:717:13: note:   template argument deduction/substitution failed:
src/bitcoinrpc.cpp:857:45: note:   couldn't deduce template parameter ‘Protocol’
         RPCListen(acceptor, context, fUseSSL);
                                             ^
src/bitcoinrpc.cpp:883:49: error: no matching function for call to ‘RPCListen(boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp> >&, boost::asio::ssl::context&, const bool&)’
             RPCListen(acceptor, context, fUseSSL);
                                                 ^
src/bitcoinrpc.cpp:717:13: note: candidate: template<class Protocol, class SocketAcceptorService> void RPCListen(int, boost::asio::ssl::context&, bool)
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
             ^~~~~~~~~
src/bitcoinrpc.cpp:717:13: note:   template argument deduction/substitution failed:
src/bitcoinrpc.cpp:883:49: note:   couldn't deduce template parameter ‘Protocol’
             RPCListen(acceptor, context, fUseSSL);
                                                 ^
src/bitcoinrpc.cpp: In function ‘json_spirit::Object CallRPC(const string&, const Array&)’:
src/bitcoinrpc.cpp:1128:58: error: no matching function for call to ‘boost::asio::ssl::context::context(boost::asio::io_service&, boost::asio::ssl::context_base::method)’
     ssl::context context(io_service, ssl::context::sslv23);
                                                          ^
In file included from /usr/include/boost/asio/ssl/context.hpp:757:0,
                 from /usr/include/boost/asio/ssl.hpp:18,
                 from src/bitcoinrpc.cpp:22:
/usr/include/boost/asio/ssl/impl/context.ipp:326:1: note: candidate: boost::asio::ssl::context::context(boost::asio::ssl::context&&)
 context::context(context&& other)
 ^~~~~~~
/usr/include/boost/asio/ssl/impl/context.ipp:326:1: note:   candidate expects 1 argument, 2 provided
/usr/include/boost/asio/ssl/impl/context.ipp:63:1: note: candidate: boost::asio::ssl::context::context(boost::asio::ssl::context_base::method)
 context::context(context::method m)
 ^~~~~~~
/usr/include/boost/asio/ssl/impl/context.ipp:63:1: note:   candidate expects 1 argument, 2 provided
g++ -c -pipe -fstack-protector-all --param ssp-buffer-size=1 -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -std=gnu++11 -D_REENTRANT -fdiagnostics-show-option -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter -Wstack-protector -fPIC -DQT_GUI -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADSAFE -DBOOST_NO_CXX11_SCOPED_ENUMS -DUSE_QRCODE -DNO_UPGRADE -DUSE_UPNP=1 -DMINIUPNP_STATICLIB -DUSE_DBUS -DNO_UPGRADE -DHAVE_BUILD_INFO -DQT_NO_DEBUG -DQT_CHARTS_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CONCURRENT_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -Isrc -Isrc/json -Isrc/qt -Isrc/leveldb/include -Isrc/leveldb/helpers -isystem /usr/include/qt -isystem /usr/include/qt/QtCharts -isystem /usr/include/qt/QtWidgets -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtNetwork -isystem /usr/include/qt/QtConcurrent -isystem /usr/include/qt/QtDBus -isystem /usr/include/qt/QtCore -Ibuild -isystem /usr/include/libdrm -Ibuild -I/usr/lib/qt/mkspecs/linux-g++ -o build/rpcmining.o src/rpcmining.cpp
make: *** [Makefile:3397: build/bitcoinrpc.o] Error 1
make: *** Waiting for unfinished jobs....
==> ERROR: A failure occurred in build().
    Aborting...
==> ERROR: Makepkg was unable to build gridcoinresearch-qt-staging
dark-saber commented 6 years ago

Whoops, there is a pull request already: #800

denravonska commented 6 years ago

Are you able to test the PR? Maybe we can include it in staging as well.

dark-saber commented 6 years ago

I'll be happy to test the updated PR when it'll be ready.

dark-saber commented 6 years ago

Everything builds fine now after 14c5880ab357367b9bcc16c83922ea14796f3cdf, thank you!