From owner-svn-ports-head@freebsd.org Wed Apr 18 09:13:00 2018 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6B30BFA1CDA; Wed, 18 Apr 2018 09:13:00 +0000 (UTC) (envelope-from jbeich@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1924D75105; Wed, 18 Apr 2018 09:13:00 +0000 (UTC) (envelope-from jbeich@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1410F19055; Wed, 18 Apr 2018 09:13:00 +0000 (UTC) (envelope-from jbeich@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w3I9CxY2039349; Wed, 18 Apr 2018 09:12:59 GMT (envelope-from jbeich@FreeBSD.org) Received: (from jbeich@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w3I9CxOK039348; Wed, 18 Apr 2018 09:12:59 GMT (envelope-from jbeich@FreeBSD.org) Message-Id: <201804180912.w3I9CxOK039348@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jbeich set sender to jbeich@FreeBSD.org using -f From: Jan Beich Date: Wed, 18 Apr 2018 09:12:59 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r467696 - head/net/ceph/files X-SVN-Group: ports-head X-SVN-Commit-Author: jbeich X-SVN-Commit-Paths: head/net/ceph/files X-SVN-Commit-Revision: 467696 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Apr 2018 09:13:00 -0000 Author: jbeich Date: Wed Apr 18 09:12:59 2018 New Revision: 467696 URL: https://svnweb.freebsd.org/changeset/ports/467696 Log: net/ceph: unbreak with boost 1.67 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)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PR: 227427 Reported by: antoine (via exp-run) Added: head/net/ceph/files/patch-boost-1.67 (contents, props changed) Added: head/net/ceph/files/patch-boost-1.67 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/ceph/files/patch-boost-1.67 Wed Apr 18 09:12:59 2018 (r467696) @@ -0,0 +1,191 @@ +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/test/librbd/test_mock_Journal.cc.orig 2018-02-26 21:47:18 UTC ++++ src/test/librbd/test_mock_Journal.cc +@@ -214,7 +214,6 @@ using ::testing::Return; + using ::testing::SaveArg; + using ::testing::SetArgPointee; + using ::testing::WithArg; +-using namespace std::placeholders; + + ACTION_P2(StartReplay, wq, ctx) { + wq->queue(ctx, 0); +@@ -482,7 +481,7 @@ class TestMockJournal : public TestMockFixture { (publ + 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); +@@ -530,7 +529,7 @@ TEST_F(TestMockJournal, StateTransitions) { + 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; +@@ -539,11 +538,11 @@ TEST_F(TestMockJournal, StateTransitions) { + 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); +@@ -599,7 +598,7 @@ TEST_F(TestMockJournal, ReplayCompleteError) { + 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); +@@ -613,7 +612,7 @@ TEST_F(TestMockJournal, ReplayCompleteError) { + 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); +@@ -645,14 +644,14 @@ TEST_F(TestMockJournal, FlushReplayError) { + 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_shut_down_journaler(mock_journaler); +@@ -664,7 +663,7 @@ TEST_F(TestMockJournal, FlushReplayError) { + 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); +@@ -696,7 +695,7 @@ TEST_F(TestMockJournal, CorruptEntry) { + 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; +@@ -713,7 +712,7 @@ TEST_F(TestMockJournal, CorruptEntry) { + 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_start_append(mock_journaler); +@@ -744,7 +743,7 @@ TEST_F(TestMockJournal, StopError) { + 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); +@@ -777,7 +776,7 @@ TEST_F(TestMockJournal, ReplayOnDiskPreFlushError) { + + 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; +@@ -803,7 +802,7 @@ TEST_F(TestMockJournal, ReplayOnDiskPreFlushError) { + 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); +@@ -857,14 +856,14 @@ TEST_F(TestMockJournal, ReplayOnDiskPostFlushError) { + 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; +@@ -880,7 +879,7 @@ TEST_F(TestMockJournal, ReplayOnDiskPostFlushError) { + 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);