Regressed by https://github.com/boostorg/date_time/commit/f9f2aaf5216c src/rbd_replay/Replayer.cc:353:65: error: no matching conversion for functional-style cast from 'float' to 'boost::posix_time::microseconds' (aka 'subsecond_duration') boost::system_time sub_release_time(action_completed_time + boost::posix_time::microseconds(dep.time_delta * m_latency_multiplier / 1000)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/boost/date_time/time_duration.hpp:270:30: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'float' to 'const boost::date_time::subsecond_duration' for 1st argument class BOOST_SYMBOL_VISIBLE subsecond_duration : public base_duration ^ /usr/local/include/boost/date_time/time_duration.hpp:270:30: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'float' to 'boost::date_time::subsecond_duration' for 1st argument /usr/local/include/boost/date_time/time_duration.hpp:286:59: note: candidate template ignored: disabled by 'enable_if' [with T = float] typename boost::enable_if, void>::type* = 0) : ^ src/test/librbd/test_mock_Journal.cc:485:42: error: reference to '_1' is ambiguous std::bind(&invoke_replay_complete, _1, 0)); ^ /usr/local/include/boost/bind/placeholders.hpp:46:38: note: candidate found by name lookup is 'boost::placeholders::_1' BOOST_STATIC_CONSTEXPR boost::arg<1> _1; ^ /usr/include/c++/v1/functional:2021:21: note: candidate found by name lookup is 'std::__1::placeholders::_1' constexpr __ph<1> _1{}; ^ --- src/rbd_replay/Replayer.cc.orig 2018-02-26 21:47:18 UTC +++ src/rbd_replay/Replayer.cc @@ -350,7 +350,7 @@ void Replayer::wait_for_actions(const action::Dependen dout(DEPGRAPH_LEVEL) << "Finished waiting for " << dep.id << " after " << micros << " microseconds" << dendl; // Apparently the nanoseconds constructor is optional: // http://www.boost.org/doc/libs/1_46_0/doc/html/date_time/details.html#compile_options - boost::system_time sub_release_time(action_completed_time + boost::posix_time::microseconds(dep.time_delta * m_latency_multiplier / 1000)); + boost::system_time sub_release_time(action_completed_time + boost::posix_time::microseconds(long(dep.time_delta * m_latency_multiplier / 1000))); if (sub_release_time > release_time) { release_time = sub_release_time; } --- src/mon/MDSMonitor.cc.orig 2020-05-28 07:26:02.363159480 +0200 +++ src/mon/MDSMonitor.cc 2020-05-28 07:28:02.559174989 +0200 @@ -15,6 +15,7 @@ #include #include #include +#include #include "MDSMonitor.h" #include "FSCommands.h" --- CMakeLists.txt.orig 2020-01-30 21:52:36.000000000 +0100 +++ CMakeLists.txt 2020-05-28 16:50:46.412927163 +0200 @@ -563,7 +563,7 @@ set(BOOST_HEADER_COMPONENTS container) if(WITH_MGR) - list(APPEND BOOST_COMPONENTS python) + list(APPEND BOOST_COMPONENTS python27) endif() if(WITH_BOOST_CONTEXT) list(APPEND BOOST_COMPONENTS context coroutine) --- src/CMakeLists.txt.orig 2020-01-30 21:52:36.000000000 +0100 +++ src/CMakeLists.txt 2020-05-28 20:58:47.848974172 +0200 @@ -722,7 +722,7 @@ $) target_include_directories(ceph-mgr PRIVATE "${PYTHON_INCLUDE_DIRS}") target_link_libraries(ceph-mgr osdc client global-static common - Boost::python ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS}) + Boost::python27 ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS}) install(TARGETS ceph-mgr DESTINATION bin) endif (WITH_MGR) --- src/test/librbd/test_mock_Journal.cc.orig 2020-01-30 21:52:36.000000000 +0100 +++ src/test/librbd/test_mock_Journal.cc 2020-05-29 06:26:16.934514447 +0200 @@ -482,7 +482,7 @@ expect_get_max_append_size(mock_journaler, 1 << 16); expect_start_replay( mock_image_ctx, mock_journaler, - std::bind(&invoke_replay_complete, _1, 0)); + std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); MockJournalReplay mock_journal_replay; expect_stop_replay(mock_journaler); @@ -531,7 +531,7 @@ expect_get_max_append_size(mock_journaler, 1 << 16); expect_start_replay( mock_image_ctx, mock_journaler, - std::bind(&invoke_replay_ready, _1)); + std::bind(&invoke_replay_ready, std::placeholders::_1)); ::journal::MockReplayEntry mock_replay_entry; MockJournalReplay mock_journal_replay; @@ -540,11 +540,11 @@ expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry); expect_replay_process(mock_journal_replay); expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry, - std::bind(&invoke_replay_ready, _1)); + std::bind(&invoke_replay_ready, std::placeholders::_1)); expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry); expect_replay_process(mock_journal_replay); expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry, - std::bind(&invoke_replay_complete, _1, 0)); + std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); expect_stop_replay(mock_journaler); expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0); @@ -601,7 +601,7 @@ expect_get_max_append_size(mock_journaler, 1 << 16); expect_start_replay( mock_image_ctx, mock_journaler, - std::bind(&invoke_replay_complete, _1, -EINVAL)); + std::bind(&invoke_replay_complete, std::placeholders::_1, -EINVAL)); MockJournalReplay mock_journal_replay; expect_stop_replay(mock_journaler); @@ -616,7 +616,7 @@ expect_get_max_append_size(mock_journaler, 1 << 16); expect_start_replay( mock_image_ctx, mock_journaler, - std::bind(&invoke_replay_complete, _1, 0)); + std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); expect_stop_replay(mock_journaler); expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0); @@ -649,14 +649,14 @@ expect_get_max_append_size(mock_journaler, 1 << 16); expect_start_replay( mock_image_ctx, mock_journaler, - std::bind(&invoke_replay_ready, _1)); + std::bind(&invoke_replay_ready, std::placeholders::_1)); ::journal::MockReplayEntry mock_replay_entry; MockJournalReplay mock_journal_replay; expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry); expect_replay_process(mock_journal_replay); expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry, - std::bind(&invoke_replay_complete, _1, 0)); + std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); expect_stop_replay(mock_journaler); expect_shut_down_replay(mock_image_ctx, mock_journal_replay, -EINVAL); expect_flush_commit_position(mock_journaler); @@ -669,7 +669,7 @@ expect_get_max_append_size(mock_journaler, 1 << 16); expect_start_replay( mock_image_ctx, mock_journaler, - std::bind(&invoke_replay_complete, _1, 0)); + std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); expect_stop_replay(mock_journaler); expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0); @@ -702,7 +702,7 @@ expect_get_max_append_size(mock_journaler, 1 << 16); expect_start_replay( mock_image_ctx, mock_journaler, - std::bind(&invoke_replay_ready, _1)); + std::bind(&invoke_replay_ready, std::placeholders::_1)); ::journal::MockReplayEntry mock_replay_entry; MockJournalReplay mock_journal_replay; @@ -720,7 +720,7 @@ expect_get_max_append_size(mock_journaler, 1 << 16); expect_start_replay( mock_image_ctx, mock_journaler, - std::bind(&invoke_replay_complete, _1, 0)); + std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); expect_stop_replay(mock_journaler); expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0); expect_flush_commit_position(mock_journaler); @@ -752,7 +752,7 @@ expect_get_max_append_size(mock_journaler, 1 << 16); expect_start_replay( mock_image_ctx, mock_journaler, - std::bind(&invoke_replay_complete, _1, 0)); + std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); MockJournalReplay mock_journal_replay; expect_stop_replay(mock_journaler); @@ -786,7 +786,7 @@ expect_start_replay( mock_image_ctx, mock_journaler, - std::bind(&invoke_replay_ready, _1)); + std::bind(&invoke_replay_ready, std::placeholders::_1)); ::journal::MockReplayEntry mock_replay_entry; MockJournalReplay mock_journal_replay; @@ -813,7 +813,7 @@ expect_get_max_append_size(mock_journaler, 1 << 16); expect_start_replay( mock_image_ctx, mock_journaler, { - std::bind(&invoke_replay_complete, _1, 0) + std::bind(&invoke_replay_complete, std::placeholders::_1, 0) }); expect_stop_replay(mock_journaler); @@ -868,14 +868,14 @@ expect_get_max_append_size(mock_journaler, 1 << 16); expect_start_replay( mock_image_ctx, mock_journaler, - std::bind(&invoke_replay_ready, _1)); + std::bind(&invoke_replay_ready, std::placeholders::_1)); ::journal::MockReplayEntry mock_replay_entry; MockJournalReplay mock_journal_replay; expect_try_pop_front(mock_image_ctx, mock_journaler, true, mock_replay_entry); expect_replay_process(mock_journal_replay); expect_try_pop_front(mock_image_ctx, mock_journaler, false, mock_replay_entry, - std::bind(&invoke_replay_complete, _1, 0)); + std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); expect_stop_replay(mock_journaler); Context *on_flush = nullptr; @@ -892,7 +892,7 @@ expect_get_max_append_size(mock_journaler, 1 << 16); expect_start_replay( mock_image_ctx, mock_journaler, - std::bind(&invoke_replay_complete, _1, 0)); + std::bind(&invoke_replay_complete, std::placeholders::_1, 0)); expect_stop_replay(mock_journaler); expect_shut_down_replay(mock_image_ctx, mock_journal_replay, 0); --- src/test/lazy-omap-stats/lazy_omap_stats_test.cc.orig 2020-01-30 21:52:36.000000000 +0100 +++ src/test/lazy-omap-stats/lazy_omap_stats_test.cc 2020-05-29 08:04:42.179189658 +0200 @@ -331,7 +331,7 @@ vector tokens(tok.begin(), tok.end()); auto it = find(tokens.begin(), tokens.end(), label); if (it != tokens.end()) { - return distance(tokens.begin(), it); + return std::distance(tokens.begin(), it); } cerr << "find_index failed to find index for " << label << endl;