diff options
author | Marius Bakke <mbakke@fastmail.com> | 2019-12-21 15:18:13 +0100 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2020-01-07 18:18:11 +0100 |
commit | be23ce2c7cdb696ff20f65750f939f316991e92f (patch) | |
tree | 05c0d5f90e9a9d32ef2e923fbb4aa01db4c2bfb7 /gnu/packages/patches/ceph-boost-compat.patch | |
parent | 2316f027f806965062fc842f0ad5be28582c54c5 (diff) |
gnu: Ceph: Update to 14.2.5.
This also removes test-specific code to ease the Python 3 transition, and
because it is mostly obsolete.
* gnu/packages/patches/ceph-detect-rocksdb.patch,
gnu/packages/patches/ceph-skip-unittest_blockdev.patch,
gnu/packages/patches/ceph-skip-collect-sys-info-test.patch: Delete files.
* gnu/packages/patches/ceph-boost-compat.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/storage.scm (ceph): Update to 14.2.5.
[source](patches): Adjust as above.
[source](snippet): Remove bundled "fmt", "c-ares" and "googletest".
[arguments]: Add "-DCMAKE_INSTALL_DATADIR" and "-DWITH_RADOSGW_AMQP_ENDPOINT"
and "-DWITH_TESTS" in #:configure-flags; remove "-DWITH_XIO". Remove obsolete
substitutions. Don't install 'ceph-disk' and 'ceph-detect-init', which no
longer exists. Remove test-specific substitutions and phases. Adjust for
Python 2->3 in inputs.
[native-inputs]: Remove INETUTILS, JQ, PERL, XMLSTARLET, PYTHON2-CRAM,
PYTHON2-VIRTUALENV, PYTHON2-CONFIGOBJ, PYTHON2-COVERAGE, PYTHON2-DISCOVER,
PYTHON2-FLAKE8, PYTHON2-MOCK, PYTHON2-NOSE, PYTHON2-PIP, PYTHON2-PYTEST,
PYTHON2-SUBUNIT PYTHON2-TESTREPOSITORY, PYTHON2-TESTTOOLS, and PYTHON2-TOX.
[inputs]: Change from BOOST to BOOST-WITH-PYTHON3. Remove GPTFDISK, PARTED,
PYTHON-2, PYTHON2-SIX, PYTHON2-PRETTYTABLE, and PYTHON-3. Add PYTHON-SIX,
PYTHON-PRETTYTABLE, PYTHON-WRAPPER, LIBCAP-NG, LIBNL, NCURSES, and RDMA-CORE.
Diffstat (limited to 'gnu/packages/patches/ceph-boost-compat.patch')
-rw-r--r-- | gnu/packages/patches/ceph-boost-compat.patch | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/gnu/packages/patches/ceph-boost-compat.patch b/gnu/packages/patches/ceph-boost-compat.patch new file mode 100644 index 0000000000..b3df659d6b --- /dev/null +++ b/gnu/packages/patches/ceph-boost-compat.patch @@ -0,0 +1,81 @@ +Fix compatibility with Boost 1.70. + +Adapted for 14.2.5 from these upstream commits: +https://github.com/ceph/ceph/commit/064f142746ae97f54865069cdacf5aae2b1b14f6 +https://github.com/ceph/ceph/commit/f1651b8c509d60787d10c4115e29fecfd2da237c + +diff --git a/src/rgw/rgw_asio_frontend.cc b/src/rgw/rgw_asio_frontend.cc +--- a/src/rgw/rgw_asio_frontend.cc ++++ b/src/rgw/rgw_asio_frontend.cc +@@ -83,7 +83,8 @@ + using SharedMutex = ceph::async::SharedMutex<boost::asio::io_context::executor_type>; + + template <typename Stream> +-void handle_connection(RGWProcessEnv& env, Stream& stream, ++void handle_connection(boost::asio::io_context& context, ++ RGWProcessEnv& env, Stream& stream, + parse_buffer& buffer, bool is_ssl, + SharedMutex& pause_mutex, + rgw::dmclock::Scheduler *scheduler, +@@ -160,7 +161,7 @@ + rgw::io::add_conlen_controlling( + &real_client)))); + RGWRestfulIO client(cct, &real_client_io); +- auto y = optional_yield{socket.get_io_context(), yield}; ++ auto y = optional_yield{context, yield}; + process_request(env.store, env.rest, &req, env.uri_prefix, + *env.auth_registry, &client, env.olog, y, scheduler); + } +@@ -604,7 +605,7 @@ + return; + } + buffer->consume(bytes); +- handle_connection(env, stream, *buffer, true, pause_mutex, ++ handle_connection(context, env, stream, *buffer, true, pause_mutex, + scheduler.get(), ec, yield); + if (!ec) { + // ssl shutdown (ignoring errors) +@@ -622,7 +623,7 @@ + auto c = connections.add(conn); + auto buffer = std::make_unique<parse_buffer>(); + boost::system::error_code ec; +- handle_connection(env, s, *buffer, false, pause_mutex, ++ handle_connection(context, env, s, *buffer, false, pause_mutex, + scheduler.get(), ec, yield); + s.shutdown(tcp::socket::shutdown_both, ec); + }); +diff --git a/src/rgw/rgw_dmclock_async_scheduler.h b/src/rgw/rgw_dmclock_async_scheduler.h +--- a/src/rgw/rgw_dmclock_async_scheduler.h ++++ b/src/rgw/rgw_dmclock_async_scheduler.h +@@ -82,7 +82,12 @@ class AsyncScheduler : public md_config_obs_t, public Scheduler { + using Completion = async::Completion<Signature, async::AsBase<Request>>; + + using Clock = ceph::coarse_real_clock; ++#if BOOST_VERSION < 107000 + using Timer = boost::asio::basic_waitable_timer<Clock>; ++#else ++ using Timer = boost::asio::basic_waitable_timer<Clock, ++ boost::asio::wait_traits<Clock>, executor_type>; ++#endif + Timer timer; //< timer for the next scheduled request + + CephContext *const cct; +diff --git a/src/rgw/rgw_reshard.h b/src/rgw/rgw_reshard.h +--- a/src/rgw/rgw_reshard.h ++++ b/src/rgw/rgw_reshard.h +@@ -183,7 +183,14 @@ class RGWReshardWait { + ceph::condition_variable cond; + + struct Waiter : boost::intrusive::list_base_hook<> { +- boost::asio::basic_waitable_timer<Clock> timer; ++#if BOOST_VERSION < 107000 ++ using Timer = boost::asio::basic_waitable_timer<Clock>; ++#else ++ using Executor = boost::asio::io_context::executor_type; ++ using Timer = boost::asio::basic_waitable_timer<Clock, ++ boost::asio::wait_traits<Clock>, Executor>; ++#endif ++ Timer timer; + explicit Waiter(boost::asio::io_context& ioc) : timer(ioc) {} + }; + boost::intrusive::list<Waiter> waiters; |