monero-project / monero

Monero: the secure, private, untraceable cryptocurrency
https://getmonero.org
Other
9.05k stars 3.12k forks source link

Add support for upcoming Boost 1.87.0 (Boost.Asio removals) #9596

Open cho-m opened 3 days ago

cho-m commented 3 days ago

Advance notice that Monero does not compile with upcoming Boost 1.87.0 (based on beta1) as Boost.Asio has removed the deprecated io_service https://github.com/boostorg/asio/commit/ec0908c562102915423d8bd7aefd3079efbb6c86

This causes errors like:

contrib/epee/include/net/net_utils_base.h:33:10: fatal error: 'boost/asio/io_service.hpp' file not found
   33 | #include <boost/asio/io_service.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~

And impacts all usage of boost::asio::io_service (along with various other removed functions/methods)

io_service was deprecated in favor of io_context back in 1.66.0 (https://github.com/boostorg/asio/commit/b60e92b13ef68dfbb9af180d76eae41d22e19356). Easiest approach is to require a minimum of Boost 1.66.0 and use newer APIs. Otherwise, would need to create many #if BOOST_VERSION ... conditions for compatibility.

Related: https://www.boost.org/doc/libs/1_86_0/doc/html/boost_asio/net_ts.html