diff options
| author | Kurt Jaeger <pi@FreeBSD.org> | 2019-02-27 18:57:12 +0000 |
|---|---|---|
| committer | Kurt Jaeger <pi@FreeBSD.org> | 2019-02-27 18:57:12 +0000 |
| commit | e79925a0a7e275dce9b0e2208da0311d4535b43d (patch) | |
| tree | 66510ae07e1325b5e044eb4fff9b658d1dce6803 /net/ceph12 | |
| parent | deskutils/go-for-it: Update to 1.6.10 (diff) | |
net/ceph: rename to net/ceph12, update 12.2.7 -> 12.2.11
PR: 236004
Submitted by: Willem Jan Withagen <wjw@digiware.nl> (maintainer)
Relnotes: https://ceph.com/releases/v12-2-11-luminous-released/
https://ceph.com/releases/v12-2-10-luminous-released/
https://ceph.com/releases/v12-2-8-released/
Notes
Notes:
svn path=/head/; revision=494078
Diffstat (limited to 'net/ceph12')
| -rw-r--r-- | net/ceph12/Makefile | 151 | ||||
| -rw-r--r-- | net/ceph12/distinfo | 29 | ||||
| -rw-r--r-- | net/ceph12/files/ceph.in | 36 | ||||
| -rw-r--r-- | net/ceph12/files/file-git_version | 2 | ||||
| -rw-r--r-- | net/ceph12/files/patch-boost-1.67 | 191 | ||||
| -rw-r--r-- | net/ceph12/files/patch-src_objectstore_store_test.cc | 39 | ||||
| -rw-r--r-- | net/ceph12/files/patch-src_rgw_CMakeLists.txt | 13 | ||||
| -rw-r--r-- | net/ceph12/files/patch-src_rgw_rgw_sync_module_es.cc | 13 | ||||
| -rw-r--r-- | net/ceph12/files/patch-src_tools_ceph__kvstore__tool.cc | 27 | ||||
| -rw-r--r-- | net/ceph12/pkg-descr | 21 | ||||
| -rw-r--r-- | net/ceph12/pkg-plist | 390 |
11 files changed, 912 insertions, 0 deletions
diff --git a/net/ceph12/Makefile b/net/ceph12/Makefile new file mode 100644 index 000000000000..2edb6691da2d --- /dev/null +++ b/net/ceph12/Makefile @@ -0,0 +1,151 @@ +# Created by: Willem Jan Withagen <wjw@digiware.nl> +# $FreeBSD$ + +PORTNAME= ceph +DISTVERSIONPREFIX= v +DISTVERSION= 12.2.11 +CATEGORIES= net +PKGNAMESUFFIX= 12 + +MAINTAINER= wjw@digiware.nl +COMMENT= Ceph delivers object, block, and file storage in a unified system + +LICENSE= GPLv2 LGPL3 +LICENSE_COMB= dual + +# even though i386 will build, it is not really advised. +ONLY_FOR_ARCHS= amd64 + +BUILD_DEPENDS= \ + yasm:devel/yasm \ + ${PYTHON_PKGNAMEPREFIX}sphinx>=0:textproc/py-sphinx@${PY_FLAVOR} \ + gperf:devel/gperf \ + ${LOCALBASE}/lib/libatomic_ops.a:devel/libatomic_ops +LIB_DEPENDS= \ + ${PY_BOOST} \ + libboost_thread.so:devel/boost-libs \ + libleveldb.so:databases/leveldb \ + libnss3.so:security/nss \ + libsnappy.so:archivers/snappy \ + libcurl.so:ftp/curl \ + libxml2.so:textproc/libxml2 \ + libexpat.so:textproc/expat2 \ + liblz4.so:archivers/liblz4 \ + libplds4.so:devel/nspr \ + libtcmalloc.so:devel/google-perftools +RUN_DEPENDS= \ + bash:shells/bash \ + ${LOCALBASE}/bin/getopt:misc/getopt \ + xml:textproc/xmlstarlet \ + jq:textproc/jq \ + flock:sysutils/flock \ + ${PYTHON_PKGNAMEPREFIX}virtualenv>=0:devel/py-virtualenv@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}prettytable>=0:devel/py-prettytable@${PY_FLAVOR} + +CONFLICTS_INSTALL= ceph-devel +PORTSCOUT= limit:^v12\. + +USES= cmake:noninja fuse gettext-runtime gmake \ + pkgconfig python:2.7 shebangfix ssl +USE_PYTHON= cython +USE_OPENLDAP= yes +USE_GITHUB= yes +GH_ACCOUNT= ceph:DEFAULT + +GH_TUPLE+= ceph:ceph-erasure-code-corpus:2d7d78b:ceph_erasure_code_corpus/ceph-erasure-code-corpus +GH_TUPLE+= ceph:ceph-object-corpus:e32bf8c:ceph_object_corpus/ceph-object-corpus +GH_TUPLE+= ceph:civetweb:de23828:civetweb/src/civetweb +GH_TUPLE+= 01org:isa-l_crypto:603529a:isa_l_crypto/src/crypto/isa-l/isa-l_crypto +GH_TUPLE+= ceph:gf-complete:7e61b44:gf_complete/src/erasure-code/jerasure/gf-complete +GH_TUPLE+= ceph:jerasure:96c76b8:jerasure/src/erasure-code/jerasure/jerasure +GH_TUPLE+= ceph:googletest:fdb8504:googletest/src/googletest +GH_TUPLE+= ceph:isa-l:7e1a337:isa_l/src/isa-l +GH_TUPLE+= ceph:lua:1fce39c:lua/src/lua +GH_TUPLE+= ceph:rapidjson:f54b0e4:rapidjson/src/rapidjson +GH_TUPLE+= ceph:rocksdb:e15382c:rocksdb/src/rocksdb +GH_TUPLE+= ceph:xxHash:1f40c65:xxHash/src/xxHash +GH_TUPLE+= facebook:zstd:f4340f4:zstd/src/zstd + +CMAKE_ARGS= \ + -D WITH_SYSTEM_BOOST:BOOL=ON \ + -D CEPH_MAN_DIR:STRING=man \ + -D WITH_LTTNG:BOOL=OFF \ + -D WITH_BABELTRACE:BOOL=OFF \ + -D WITH_KRBD:BOOL=OFF \ + -D WITH_XFS:BOOL=OFF \ + -D WITH_KVS:BOOL=OFF \ + -D WITH_BLKID:BOOL=OFF \ + -D WITH_SPDK:BOOL=OFF \ + -D WITH_RDMA=OFF \ + -D WITH_BLUESTORE:BOOL=OFF \ + -D WITH_LIBCEPHFS:BOOL=OFF \ + -D WITH_CEPHFS:BOOL=OFF \ + -D WITH_EMBEDDED:BOOL=OFF \ + -D WITH_SYSTEM_BOOST:BOOL=ON \ + -D WITH_BOOST_CONTEXT:BOOL=OFF \ + -D WITH_FUSE:BOOL=ON \ + -D WITH_MANPAGE:BOOL=ON \ + -D WITH_RADOSGW_BEAST_FRONTEND:BOOL=OFF \ + -D WITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF + +SHEBANG_FILES=src/rbdmap src/ceph-post-file.in src/rbd-replay-many \ + src/brag/client/ceph-brag src/ceph-rest-api \ + src/tools/ceph-monstore-update-crush.sh src/mount.fuse.ceph \ + src/ceph-create-keys + +USE_RC_SUBR= ceph +USE_LDCONFIG= yes + +USERS= ceph +GROUPS= ceph + +post-patch: + ${REINPLACE_CMD} 's|sphinx-build|sphinx-build-${PYTHON_VER}|g' ${WRKSRC}/CMakeLists.txt + +pre-configure: + ${LN} -s ${CONFIGURE_WRKSRC} ${WRKSRC}/build + ${CP} ${FILESDIR}/file-git_version ${WRKSRC}/src/.git_version + +post-install: + ${MKDIR} ${STAGEDIR}${PREFIX}/etc/ceph + ${MKDIR} ${STAGEDIR}/var/lib/ceph/bootstrap-mds + ${MKDIR} ${STAGEDIR}/var/lib/ceph/bootstrap-osd + ${MKDIR} ${STAGEDIR}/var/lib/ceph/bootstrap-rgw + ${MKDIR} ${STAGEDIR}/var/lib/ceph/bootstrap-mgr + ${MKDIR} ${STAGEDIR}/var/lib/ceph/mds + ${MKDIR} ${STAGEDIR}/var/lib/ceph/mon + ${MKDIR} ${STAGEDIR}/var/lib/ceph/osd + ${MKDIR} ${STAGEDIR}/var/lib/ceph/mgr + ${MKDIR} ${STAGEDIR}/var/lib/ceph/tmp + ${MKDIR} ${STAGEDIR}/var/lib/ceph/radosgw + ${MKDIR} ${STAGEDIR}/var/log/ceph + ${MKDIR} ${STAGEDIR}/var/run/ceph + # Use the Ceph init.d script as the interface to regular + # starting and stopping deamons. rc.d work is done thru + # a separate rc.d/ceph script calling init-ceph again. + ${MV} ${STAGEDIR}${PREFIX}/etc/init.d/ceph ${STAGEDIR}${PREFIX}/bin/init-ceph + # remove files not packaged + ${RM} ${STAGEDIR}${DOCSDIR}/sample.fetch_config + ${RM} ${STAGEDIR}${DOCSDIR}/sample.ceph.conf + ${RMDIR} ${STAGEDIR}${DOCSDIR} + ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_bench_log + ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_multi_stress_watch + ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_perf* + ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_psim + ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_scratchtoolpp + ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_smalliobench* + ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_test* + ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_tpbench + ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_xattr_bench + ${RM} ${STAGEDIR}${PREFIX}/sbin/ceph-disk-udev + # ceph-volume does not support ZFS + ${RM} -rf ${STAGEDIR}${PYTHON_SITELIBDIR}/ceph_volume-* + ${RM} -rf ${STAGEDIR}${PYTHON_SITELIBDIR}/ceph_volume/ + ${RM} ${STAGEDIR}${PREFIX}/sbin/ceph-volume + ${RM} ${STAGEDIR}${PREFIX}/sbin/ceph-volume-systemd + ${RM} ${STAGEDIR}${PREFIX}/man/man8/ceph-volume* + + ${RMDIR} ${STAGEDIR}${PREFIX}/etc/init.d + ${INSTALL_DATA} ${WRKSRC}/src/sample.ceph.conf ${STAGEDIR}${PREFIX}/etc/ceph/ceph.conf.sample + +.include <bsd.port.mk> diff --git a/net/ceph12/distinfo b/net/ceph12/distinfo new file mode 100644 index 000000000000..d667955db534 --- /dev/null +++ b/net/ceph12/distinfo @@ -0,0 +1,29 @@ +TIMESTAMP = 1550935963 +SHA256 (ceph-ceph-v12.2.11_GH0.tar.gz) = 67a2afe2de2087279e5a6bfab9c2b2a391093fb73723b629aaaeb204044be499 +SIZE (ceph-ceph-v12.2.11_GH0.tar.gz) = 12451786 +SHA256 (ceph-ceph-erasure-code-corpus-2d7d78b_GH0.tar.gz) = 8ab8f36f3e0a720c882b8bb4abb3f2e26bd6b025cc263119207f7d2eb3b1e490 +SIZE (ceph-ceph-erasure-code-corpus-2d7d78b_GH0.tar.gz) = 3685656 +SHA256 (ceph-ceph-object-corpus-e32bf8c_GH0.tar.gz) = 79ff0d1b9f959c9f5264a0dff193105d71885615deaa9c8469902400fd82d214 +SIZE (ceph-ceph-object-corpus-e32bf8c_GH0.tar.gz) = 1838192 +SHA256 (ceph-civetweb-de23828_GH0.tar.gz) = a9a95dd58e9b4a696fa0c822c1401856c55ef9b67fb28cf15d97f19f1af2ecbd +SIZE (ceph-civetweb-de23828_GH0.tar.gz) = 6850197 +SHA256 (01org-isa-l_crypto-603529a_GH0.tar.gz) = 52708b98c832bb7e6db60c949ece261d9609c822ae55239b0f2133cec2b3d155 +SIZE (01org-isa-l_crypto-603529a_GH0.tar.gz) = 439149 +SHA256 (ceph-gf-complete-7e61b44_GH0.tar.gz) = 7b0e5c1b41399d2c7d97ed7a7547ebf40023bcd104ed9a8b2b75bdee440c1a4d +SIZE (ceph-gf-complete-7e61b44_GH0.tar.gz) = 342303 +SHA256 (ceph-jerasure-96c76b8_GH0.tar.gz) = 06edaeb8cb5c3076e34cb53dd91c91d54d46fb8c3b837c6280ea2ed076556beb +SIZE (ceph-jerasure-96c76b8_GH0.tar.gz) = 806334 +SHA256 (ceph-googletest-fdb8504_GH0.tar.gz) = ece3265dae4d0fe5a52e7164432bb416de8bdb45e1c8cf8f361bbe893db30bb8 +SIZE (ceph-googletest-fdb8504_GH0.tar.gz) = 1281068 +SHA256 (ceph-isa-l-7e1a337_GH0.tar.gz) = 8099bc6ca3ca6ed9376f6cc5072a84d7a1863e2d7f2344bf08682d4efb7ae788 +SIZE (ceph-isa-l-7e1a337_GH0.tar.gz) = 458398 +SHA256 (ceph-lua-1fce39c_GH0.tar.gz) = fb5f778ce4da349ca903512a2fdb3987b12e3f0a52ab088fb011a8e4dd55848c +SIZE (ceph-lua-1fce39c_GH0.tar.gz) = 366778 +SHA256 (ceph-rapidjson-f54b0e4_GH0.tar.gz) = 35c330d40ed9def99e8dea8f3b0e4fda7610b813b6f4aac9a70ffefcb9ab1f1e +SIZE (ceph-rapidjson-f54b0e4_GH0.tar.gz) = 1019457 +SHA256 (ceph-rocksdb-e15382c_GH0.tar.gz) = e23177dd893b81b4d3d959464ee8e5c4fe64a408841c2584b29540c60ac5cf47 +SIZE (ceph-rocksdb-e15382c_GH0.tar.gz) = 3278113 +SHA256 (ceph-xxHash-1f40c65_GH0.tar.gz) = 809e06b7493ed01f13c7ba972393a5a6d23dd92fd6b884381aa907005e569372 +SIZE (ceph-xxHash-1f40c65_GH0.tar.gz) = 25484 +SHA256 (facebook-zstd-f4340f4_GH0.tar.gz) = 0db909a46914eb7800bce044b86fcf595451713e56a2b131ace6f70ff25c1c4d +SIZE (facebook-zstd-f4340f4_GH0.tar.gz) = 1619022 diff --git a/net/ceph12/files/ceph.in b/net/ceph12/files/ceph.in new file mode 100644 index 000000000000..4c04cccb55d3 --- /dev/null +++ b/net/ceph12/files/ceph.in @@ -0,0 +1,36 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: ceph +# REQUIRE: LOGIN +# BEFORE: securelevel +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable `ceph': +# +# ceph_enable="YES" +# + +. /etc/rc.subr + +PATH=$PATH:%%PREFIX%%/bin:%%PREFIX%%/sbin + +name="ceph" +rcvar=${name}_enable +extra_commands="condrestart" + +load_rc_config ${name} + +# read configuration and set defaults +: ${ceph_enable="NO"} +: ${ceph_configfile:=%%PREFIX%%/etc/ceph/ceph.conf} + +start_cmd="%%PREFIX%%/bin/init-ceph $*" +stop_cmd="%%PREFIX%%/bin/init-ceph $*" +restart_cmd="%%PREFIX%%/bin/init-ceph $*" +condrestart_cmd="%%PREFIX%%/bin/init-ceph $*" + +run_rc_command "$1" + diff --git a/net/ceph12/files/file-git_version b/net/ceph12/files/file-git_version new file mode 100644 index 000000000000..268e02b634ff --- /dev/null +++ b/net/ceph12/files/file-git_version @@ -0,0 +1,2 @@ +26dc3775efc7bb286a1d6d66faee0ba30ea23eee +v12.2.11 diff --git a/net/ceph12/files/patch-boost-1.67 b/net/ceph12/files/patch-boost-1.67 new file mode 100644 index 000000000000..1e3f9ba743f8 --- /dev/null +++ b/net/ceph12/files/patch-boost-1.67 @@ -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::posix_time::time_duration, 1000000>') + 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<boost::posix_time::time_duration, 1000000>' 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<boost::posix_time::time_duration, 1000000>' 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<boost::is_integral<T>, 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); diff --git a/net/ceph12/files/patch-src_objectstore_store_test.cc b/net/ceph12/files/patch-src_objectstore_store_test.cc new file mode 100644 index 000000000000..92997a78bba4 --- /dev/null +++ b/net/ceph12/files/patch-src_objectstore_store_test.cc @@ -0,0 +1,39 @@ +diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc +old mode 100644 +new mode 100755 +index 326c9785d0..8d39249360 +--- src/test/objectstore/store_test.cc ++++ src/test/objectstore/store_test.cc +@@ -4313,7 +4313,7 @@ TEST_P(StoreTest, Synthetic) { + doSyntheticTest(store, 10000, 400*1024, 40*1024, 0); + } + +- ++#if defined(WITH_BLUESTORE) + TEST_P(StoreTestSpecificAUSize, SyntheticMatrixSharding) { + if (string(GetParam()) != "bluestore") + return; +@@ -4485,6 +4485,7 @@ TEST_P(StoreTestSpecificAUSize, SyntheticMatrixPreferDeferred) { + }; + do_matrix(m, store, doSyntheticTest); + } ++#endif // #if defined(WITH_BLUESTORE) + + TEST_P(StoreTest, AttrSynthetic) { + ObjectStore::Sequencer osr("test"); +@@ -6855,6 +6856,7 @@ TEST_P(StoreTestSpecificAUSize, fsckOnUnalignedDevice2) { + g_conf->apply_changes(NULL); + } + ++#if defined(WITH_BLUESTORE) + TEST_P(StoreTest, SpuriousReadErrorTest) { + if (string(GetParam()) != "bluestore") + return; +@@ -6921,6 +6923,7 @@ TEST_P(StoreTest, SpuriousReadErrorTest) { + g_conf->set_val("bluestore_debug_inject_csum_err_probability", "0"); + g_ceph_context->_conf->apply_changes(nullptr); + } ++#endif // #if defined(WITH_BLUESTORE) + + int main(int argc, char **argv) { + vector<const char*> args; diff --git a/net/ceph12/files/patch-src_rgw_CMakeLists.txt b/net/ceph12/files/patch-src_rgw_CMakeLists.txt new file mode 100644 index 000000000000..5dd91d79b4c0 --- /dev/null +++ b/net/ceph12/files/patch-src_rgw_CMakeLists.txt @@ -0,0 +1,13 @@ +diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt +index 57cb2a5b94..57a9ceb78b 100644 +--- src/rgw/CMakeLists.txt ++++ src/rgw/CMakeLists.txt +@@ -182,7 +182,7 @@ if (WITH_RADOSGW_BEAST_FRONTEND AND WITH_RADOSGW_BEAST_OPENSSL) + endif() + + add_executable(radosgw rgw_main.cc) +-target_link_libraries(radosgw radosgw_a librados ++target_link_libraries(radosgw radosgw_a rgw_a librados + cls_rgw_client cls_lock_client cls_refcount_client + cls_log_client cls_statelog_client cls_timeindex_client + cls_version_client cls_replica_log_client cls_user_client diff --git a/net/ceph12/files/patch-src_rgw_rgw_sync_module_es.cc b/net/ceph12/files/patch-src_rgw_rgw_sync_module_es.cc new file mode 100644 index 000000000000..661d055d8ca6 --- /dev/null +++ b/net/ceph12/files/patch-src_rgw_rgw_sync_module_es.cc @@ -0,0 +1,13 @@ +diff --git a/src/rgw/rgw_sync_module_es.cc b/src/rgw/rgw_sync_module_es.cc +index aa58219b5a..de4200d75e 100644 +--- src/rgw/rgw_sync_module_es.cc ++++ src/rgw/rgw_sync_module_es.cc +@@ -244,7 +244,7 @@ struct es_index_config { + }; + + static bool is_sys_attr(const std::string& attr_name){ +- static constexpr std::initializer_list<const char*> rgw_sys_attrs = {RGW_ATTR_PG_VER, ++ static const std::initializer_list<const char*> rgw_sys_attrs = {RGW_ATTR_PG_VER, + RGW_ATTR_SOURCE_ZONE, + RGW_ATTR_ID_TAG, + RGW_ATTR_TEMPURL_KEY1, diff --git a/net/ceph12/files/patch-src_tools_ceph__kvstore__tool.cc b/net/ceph12/files/patch-src_tools_ceph__kvstore__tool.cc new file mode 100644 index 000000000000..41cc5db2f46a --- /dev/null +++ b/net/ceph12/files/patch-src_tools_ceph__kvstore__tool.cc @@ -0,0 +1,27 @@ +--- src/tools/ceph_kvstore_tool.cc.orig 2018-02-26 21:47:18 UTC ++++ src/tools/ceph_kvstore_tool.cc +@@ -36,7 +36,9 @@ using namespace std; + + class StoreTool + { ++#ifdef HAVE_LIBAIO + boost::scoped_ptr<BlueStore> bluestore; ++#endif + + // TODO: make KeyValueDB enable_shared_from_this + // bluestore will hold *db* also, use unique_ptr/shared_ptr will +@@ -74,10 +76,13 @@ class StoreTool + } + + ~StoreTool() { ++#ifdef HAVE_LIBAIO + if (bluestore) { + bluestore->umount(); + } +- else { ++ else ++#endif ++ { + if (db) { + delete db; + } diff --git a/net/ceph12/pkg-descr b/net/ceph12/pkg-descr new file mode 100644 index 000000000000..36f0aa7439a7 --- /dev/null +++ b/net/ceph12/pkg-descr @@ -0,0 +1,21 @@ +Ceph is a distributed object store and file system designed to provide +excellent performance, reliability and scalability. + +* Object Storage + Ceph provides seamless access to objects using native language bindings or + radosgw, a REST interface for applications written with S3 and Swift. +* Block Storage + Ceph's RADOS Block Device (RBD) provides access to block device images + that are striped and replicated across the entire storage cluster. +* File System + Ceph provides a POSIX-compliant network file system aiming for large data + storage, high performance, and maximum compatibility with legacy applications. + +This FreeBSD build will build most of the tools in Ceph: +* Mon, OSD, rados, RadosGW, rbd +* init-ceph, and etc/rc.d/ceph on top of that +* ceph-disk {prepare, activate} +With these tools one can build a multi server, multi osd cluster fully +running on FreeBSD and do some testing... + +WWW: https://ceph.com/ diff --git a/net/ceph12/pkg-plist b/net/ceph12/pkg-plist new file mode 100644 index 000000000000..d9f674ad54ef --- /dev/null +++ b/net/ceph12/pkg-plist @@ -0,0 +1,390 @@ +bin/ceph +bin/ceph-authtool +bin/ceph-brag +bin/ceph-clsinfo +bin/ceph-conf +bin/ceph-coverage +bin/ceph-crush-location +bin/ceph-debugpack +bin/ceph-dencoder +bin/ceph-detect-init +bin/ceph-fuse +bin/ceph-kvstore-tool +bin/ceph-mds +bin/ceph-mgr +bin/ceph-mon +bin/ceph-monstore-tool +bin/ceph-objectstore-tool +bin/ceph-osd +bin/ceph-osdomap-tool +bin/ceph-post-file +bin/ceph-rbdnamer +bin/ceph-rest-api +bin/ceph-run +bin/ceph_erasure_code +bin/ceph_erasure_code_benchmark +bin/ceph_objectstore_bench +bin/ceph_omapbench +bin/ceph_radosacl +bin/ceph_rgw_jsonparser +bin/ceph_rgw_multiparser +bin/ceph_scratchtool +bin/crushtool +bin/init-ceph +bin/librados-config +bin/monmaptool +bin/osdmaptool +bin/rados +bin/radosgw +bin/radosgw-admin +bin/radosgw-es +bin/radosgw-object-expirer +bin/radosgw-token +bin/rbd +bin/rbd-fuse +bin/rbd-ggate +bin/rbd-mirror +bin/rbd-replay +bin/rbd-replay-many +bin/rbdmap +etc/bash_completion.d/ceph +etc/bash_completion.d/rados +etc/bash_completion.d/radosgw-admin +etc/bash_completion.d/rbd +%%ETCDIR%%/ceph.conf.sample +include/rados/buffer.h +include/rados/buffer_fwd.h +include/rados/crc32c.h +include/rados/inline_memory.h +include/rados/librados.h +include/rados/librados.hpp +include/rados/librgw.h +include/rados/memory.h +include/rados/objclass.h +include/rados/page.h +include/rados/rados_types.h +include/rados/rados_types.hpp +include/rados/rgw_file.h +include/radosstriper/libradosstriper.h +include/radosstriper/libradosstriper.hpp +include/rbd/features.h +include/rbd/librbd.h +include/rbd/librbd.hpp +lib/ceph/ceph-monstore-update-crush.sh +lib/ceph/compressor/libceph_snappy.so +lib/ceph/compressor/libceph_snappy.so.2 +lib/ceph/compressor/libceph_snappy.so.2.0.0 +lib/ceph/compressor/libceph_zlib.so +lib/ceph/compressor/libceph_zlib.so.2 +lib/ceph/compressor/libceph_zlib.so.2.0.0 +lib/ceph/compressor/libceph_zstd.so +lib/ceph/compressor/libceph_zstd.so.2 +lib/ceph/compressor/libceph_zstd.so.2.0.0 +lib/ceph/crypto/libceph_crypto_isal.so +lib/ceph/crypto/libceph_crypto_isal.so.1 +lib/ceph/crypto/libceph_crypto_isal.so.1.0.0 +lib/ceph/erasure-code/libec_isa.so +lib/ceph/erasure-code/libec_jerasure.so +lib/ceph/erasure-code/libec_jerasure_generic.so +lib/ceph/erasure-code/libec_jerasure_sse3.so +lib/ceph/erasure-code/libec_jerasure_sse4.so +lib/ceph/erasure-code/libec_lrc.so +lib/ceph/erasure-code/libec_shec.so +lib/ceph/erasure-code/libec_shec_generic.so +lib/ceph/erasure-code/libec_shec_sse3.so +lib/ceph/erasure-code/libec_shec_sse4.so +lib/ceph/libceph-common.so +lib/ceph/libceph-common.so.0 +lib/ceph/mgr/.gitignore +lib/ceph/mgr/balancer/__init__.py +lib/ceph/mgr/balancer/module.py +lib/ceph/mgr/dashboard/HACKING.rst +lib/ceph/mgr/dashboard/README.rst +lib/ceph/mgr/dashboard/__init__.py +lib/ceph/mgr/dashboard/base.html +lib/ceph/mgr/dashboard/cephfs_clients.py +lib/ceph/mgr/dashboard/clients.html +lib/ceph/mgr/dashboard/config_options.html +lib/ceph/mgr/dashboard/filesystem.html +lib/ceph/mgr/dashboard/health.html +lib/ceph/mgr/dashboard/module.py +lib/ceph/mgr/dashboard/osd_perf.html +lib/ceph/mgr/dashboard/osds.html +lib/ceph/mgr/dashboard/rbd_iscsi.html +lib/ceph/mgr/dashboard/rbd_iscsi.py +lib/ceph/mgr/dashboard/rbd_ls.py +lib/ceph/mgr/dashboard/rbd_mirroring.html +lib/ceph/mgr/dashboard/rbd_mirroring.py +lib/ceph/mgr/dashboard/rbd_pool.html +lib/ceph/mgr/dashboard/remote_view_cache.py +lib/ceph/mgr/dashboard/servers.html +lib/ceph/mgr/dashboard/standby.html +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/.gitignore +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/.jshintrc +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/LICENSE +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/README.md +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/bootstrap/css/bootstrap.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/bootstrap/css/bootstrap.min.css.map +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/bootstrap/fonts/glyphicons-halflings-regular.woff +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/bootstrap/fonts/glyphicons-halflings-regular.woff2 +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/bootstrap/js/bootstrap.min.js +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/AdminLTE.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/_all-skins.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/skin-black-light.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/skin-black.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/skin-blue-light.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/skin-blue.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/skin-green-light.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/skin-green.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/skin-purple-light.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/skin-purple.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/skin-red-light.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/skin-red.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/skin-yellow-light.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/css/skins/skin-yellow.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/img/boxed-bg.jpg +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/img/boxed-bg.png +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/img/default-50x50.gif +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/img/icons.png +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/dist/js/app.min.js +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/chartjs/Chart.js +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/chartjs/Chart.min.js +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/datatables/dataTables.bootstrap.min.js +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/datatables/images/sort_asc.png +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/datatables/images/sort_asc_disabled.png +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/datatables/images/sort_both.png +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/datatables/images/sort_desc.png +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/datatables/images/sort_desc_disabled.png +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/datatables/jquery.dataTables.min.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/datatables/jquery.dataTables.min.js +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/datatables/jquery.dataTables_themeroller.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/ionslider/img/sprite-skin-flat.png +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/ionslider/img/sprite-skin-nice.png +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/ionslider/ion.rangeSlider.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/ionslider/ion.rangeSlider.min.js +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/ionslider/ion.rangeSlider.skinFlat.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/ionslider/ion.rangeSlider.skinNice.css +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/jQuery/jquery-2.2.3.min.js +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/sparkline/jquery.sparkline.js +lib/ceph/mgr/dashboard/static/AdminLTE-2.3.7/plugins/sparkline/jquery.sparkline.min.js +lib/ceph/mgr/dashboard/static/Ceph_Logo_Standard_RGB_White_120411_fa.png +lib/ceph/mgr/dashboard/static/favicon.ico +lib/ceph/mgr/dashboard/static/libs/Chart.js/2.4.0/Chart.min.js +lib/ceph/mgr/dashboard/static/libs/Chart.js/LICENSE.md +lib/ceph/mgr/dashboard/static/libs/font-awesome/4.7.0/HELP-US-OUT.txt +lib/ceph/mgr/dashboard/static/libs/font-awesome/4.7.0/css/font-awesome.min.css +lib/ceph/mgr/dashboard/static/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff +lib/ceph/mgr/dashboard/static/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2 +lib/ceph/mgr/dashboard/static/libs/font-awesome/COPYING +lib/ceph/mgr/dashboard/static/libs/moment.js/2.17.1/moment.min.js +lib/ceph/mgr/dashboard/static/libs/rivets/0.9.6/rivets.bundled.min.js +lib/ceph/mgr/dashboard/static/libs/underscore.js/1.8.3/underscore-min.js +lib/ceph/mgr/dashboard/static/logo-mini.png +lib/ceph/mgr/dashboard/types.py +lib/ceph/mgr/influx/__init__.py +lib/ceph/mgr/influx/module.py +lib/ceph/mgr/localpool/__init__.py +lib/ceph/mgr/localpool/module.py +lib/ceph/mgr/mgr_module.py +lib/ceph/mgr/prometheus/__init__.py +lib/ceph/mgr/prometheus/module.py +lib/ceph/mgr/restful/__init__.py +lib/ceph/mgr/restful/api/__init__.py +lib/ceph/mgr/restful/api/config.py +lib/ceph/mgr/restful/api/crush.py +lib/ceph/mgr/restful/api/doc.py +lib/ceph/mgr/restful/api/mon.py +lib/ceph/mgr/restful/api/osd.py +lib/ceph/mgr/restful/api/pool.py +lib/ceph/mgr/restful/api/request.py +lib/ceph/mgr/restful/api/server.py +lib/ceph/mgr/restful/common.py +lib/ceph/mgr/restful/decorators.py +lib/ceph/mgr/restful/hooks.py +lib/ceph/mgr/restful/module.py +lib/ceph/mgr/selftest/__init__.py +lib/ceph/mgr/selftest/module.py +lib/ceph/mgr/status/__init__.py +lib/ceph/mgr/status/module.py +lib/ceph/mgr/zabbix/__init__.py +lib/ceph/mgr/zabbix/module.py +lib/ceph/mgr/zabbix/zabbix_template.xml +lib/librados.so +lib/librados.so.2 +lib/librados.so.2.0.0 +lib/libradosstriper.so +lib/libradosstriper.so.1 +lib/libradosstriper.so.1.0.0 +lib/librbd.so +lib/librbd.so.1 +lib/librbd.so.1.12.0 +lib/librgw.so +lib/librgw.so.2 +lib/librgw.so.2.0.0 +%%PYTHON_SITELIBDIR%%/ceph_argparse.py +%%PYTHON_SITELIBDIR%%/ceph_daemon.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init-1.0.1-py%%PYTHON_VER%%.egg-info/PKG-INFO +%%PYTHON_SITELIBDIR%%/ceph_detect_init-1.0.1-py%%PYTHON_VER%%.egg-info/SOURCES.txt +%%PYTHON_SITELIBDIR%%/ceph_detect_init-1.0.1-py%%PYTHON_VER%%.egg-info/dependency_links.txt +%%PYTHON_SITELIBDIR%%/ceph_detect_init-1.0.1-py%%PYTHON_VER%%.egg-info/entry_points.txt +%%PYTHON_SITELIBDIR%%/ceph_detect_init-1.0.1-py%%PYTHON_VER%%.egg-info/requires.txt +%%PYTHON_SITELIBDIR%%/ceph_detect_init-1.0.1-py%%PYTHON_VER%%.egg-info/top_level.txt +%%PYTHON_SITELIBDIR%%/ceph_detect_init/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/alpine/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/alpine/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/arch/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/arch/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/centos/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/centos/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/debian/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/debian/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/docker/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/docker/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/exc.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/exc.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/fedora/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/fedora/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/freebsd/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/freebsd/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/gentoo/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/gentoo/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/main.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/main.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/oraclevms/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/oraclevms/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/rhel/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/rhel/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_detect_init/suse/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_detect_init/suse/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_disk-1.0.0-py%%PYTHON_VER%%.egg-info/PKG-INFO +%%PYTHON_SITELIBDIR%%/ceph_disk-1.0.0-py%%PYTHON_VER%%.egg-info/SOURCES.txt +%%PYTHON_SITELIBDIR%%/ceph_disk-1.0.0-py%%PYTHON_VER%%.egg-info/dependency_links.txt +%%PYTHON_SITELIBDIR%%/ceph_disk-1.0.0-py%%PYTHON_VER%%.egg-info/entry_points.txt +%%PYTHON_SITELIBDIR%%/ceph_disk-1.0.0-py%%PYTHON_VER%%.egg-info/requires.txt +%%PYTHON_SITELIBDIR%%/ceph_disk-1.0.0-py%%PYTHON_VER%%.egg-info/top_level.txt +%%PYTHON_SITELIBDIR%%/ceph_disk/__init__.py +%%PYTHON_SITELIBDIR%%/ceph_disk/__init__.pyc +%%PYTHON_SITELIBDIR%%/ceph_disk/main.py +%%PYTHON_SITELIBDIR%%/ceph_disk/main.pyc +%%PYTHON_SITELIBDIR%%/ceph_rest_api.py +%%PYTHON_SITELIBDIR%%/ceph_volume_client.py +%%PYTHON_SITELIBDIR%%/rados-2.0.0-py%%PYTHON_VER%%.egg-info/PKG-INFO +%%PYTHON_SITELIBDIR%%/rados-2.0.0-py%%PYTHON_VER%%.egg-info/SOURCES.txt +%%PYTHON_SITELIBDIR%%/rados-2.0.0-py%%PYTHON_VER%%.egg-info/dependency_links.txt +%%PYTHON_SITELIBDIR%%/rados-2.0.0-py%%PYTHON_VER%%.egg-info/top_level.txt +%%PYTHON_SITELIBDIR%%/rados.so +%%PYTHON_SITELIBDIR%%/rbd-2.0.0-py%%PYTHON_VER%%.egg-info/PKG-INFO +%%PYTHON_SITELIBDIR%%/rbd-2.0.0-py%%PYTHON_VER%%.egg-info/SOURCES.txt +%%PYTHON_SITELIBDIR%%/rbd-2.0.0-py%%PYTHON_VER%%.egg-info/dependency_links.txt +%%PYTHON_SITELIBDIR%%/rbd-2.0.0-py%%PYTHON_VER%%.egg-info/top_level.txt +%%PYTHON_SITELIBDIR%%/rbd.so +%%PYTHON_SITELIBDIR%%/rgw-2.0.0-py%%PYTHON_VER%%.egg-info/PKG-INFO +%%PYTHON_SITELIBDIR%%/rgw-2.0.0-py%%PYTHON_VER%%.egg-info/SOURCES.txt +%%PYTHON_SITELIBDIR%%/rgw-2.0.0-py%%PYTHON_VER%%.egg-info/dependency_links.txt +%%PYTHON_SITELIBDIR%%/rgw-2.0.0-py%%PYTHON_VER%%.egg-info/top_level.txt +%%PYTHON_SITELIBDIR%%/rgw.so +lib/rados-classes/libcls_hello.so +lib/rados-classes/libcls_hello.so.1 +lib/rados-classes/libcls_hello.so.1.0.0 +lib/rados-classes/libcls_journal.so +lib/rados-classes/libcls_journal.so.1 +lib/rados-classes/libcls_journal.so.1.0.0 +lib/rados-classes/libcls_lock.so +lib/rados-classes/libcls_lock.so.1 +lib/rados-classes/libcls_lock.so.1.0.0 +lib/rados-classes/libcls_log.so +lib/rados-classes/libcls_log.so.1 +lib/rados-classes/libcls_log.so.1.0.0 +lib/rados-classes/libcls_lua.so +lib/rados-classes/libcls_lua.so.1 +lib/rados-classes/libcls_lua.so.1.0.0 +lib/rados-classes/libcls_numops.so +lib/rados-classes/libcls_numops.so.1 +lib/rados-classes/libcls_numops.so.1.0.0 +lib/rados-classes/libcls_rbd.so +lib/rados-classes/libcls_rbd.so.1 +lib/rados-classes/libcls_rbd.so.1.0.0 +lib/rados-classes/libcls_refcount.so +lib/rados-classes/libcls_refcount.so.1 +lib/rados-classes/libcls_refcount.so.1.0.0 +lib/rados-classes/libcls_replica_log.so +lib/rados-classes/libcls_replica_log.so.1 +lib/rados-classes/libcls_replica_log.so.1.0.0 +lib/rados-classes/libcls_rgw.so +lib/rados-classes/libcls_rgw.so.1 +lib/rados-classes/libcls_rgw.so.1.0.0 +lib/rados-classes/libcls_sdk.so +lib/rados-classes/libcls_sdk.so.1 +lib/rados-classes/libcls_sdk.so.1.0.0 +lib/rados-classes/libcls_statelog.so +lib/rados-classes/libcls_statelog.so.1 +lib/rados-classes/libcls_statelog.so.1.0.0 +lib/rados-classes/libcls_timeindex.so +lib/rados-classes/libcls_timeindex.so.1 +lib/rados-classes/libcls_timeindex.so.1.0.0 +lib/rados-classes/libcls_user.so +lib/rados-classes/libcls_user.so.1 +lib/rados-classes/libcls_user.so.1.0.0 +lib/rados-classes/libcls_version.so +lib/rados-classes/libcls_version.so.1 +lib/rados-classes/libcls_version.so.1.0.0 +libexec/ceph/ceph-osd-prestart.sh +libexec/ceph/ceph_common.sh +man/man8/ceph-authtool.8.gz +man/man8/ceph-bluestore-tool.8.gz +man/man8/ceph-clsinfo.8.gz +man/man8/ceph-conf.8.gz +man/man8/ceph-create-keys.8.gz +man/man8/ceph-debugpack.8.gz +man/man8/ceph-dencoder.8.gz +man/man8/ceph-deploy.8.gz +man/man8/ceph-detect-init.8.gz +man/man8/ceph-disk.8.gz +man/man8/ceph-fuse.8.gz +man/man8/ceph-kvstore-tool.8.gz +man/man8/ceph-mds.8.gz +man/man8/ceph-mon.8.gz +man/man8/ceph-osd.8.gz +man/man8/ceph-post-file.8.gz +man/man8/ceph-rbdnamer.8.gz +man/man8/ceph-rest-api.8.gz +man/man8/ceph-run.8.gz +man/man8/ceph-syn.8.gz +man/man8/ceph.8.gz +man/man8/crushtool.8.gz +man/man8/librados-config.8.gz +man/man8/monmaptool.8.gz +man/man8/mount.ceph.8.gz +man/man8/osdmaptool.8.gz +man/man8/rados.8.gz +man/man8/radosgw-admin.8.gz +man/man8/radosgw.8.gz +man/man8/rbd-fuse.8.gz +man/man8/rbd-ggate.8.gz +man/man8/rbd-mirror.8.gz +man/man8/rbd-replay-many.8.gz +man/man8/rbd-replay-prep.8.gz +man/man8/rbd-replay.8.gz +man/man8/rbd.8.gz +man/man8/rbdmap.8.gz +sbin/ceph-create-keys +sbin/ceph-disk +sbin/mount.fuse.ceph +%%DATADIR%%/id_rsa_drop.ceph.com +%%DATADIR%%/id_rsa_drop.ceph.com.pub +%%DATADIR%%/known_hosts_drop.ceph.com +@dir /var/lib/ceph/bootstrap-mds +@dir /var/lib/ceph/bootstrap-mgr +@dir /var/lib/ceph/bootstrap-osd +@dir /var/lib/ceph/bootstrap-rgw +@dir /var/lib/ceph/mds +@dir /var/lib/ceph/mgr +@dir /var/lib/ceph/mon +@dir /var/lib/ceph/osd +@dir /var/lib/ceph/radosgw +@dir /var/lib/ceph/tmp +@dir /var/lib/ceph +@dir /var/lib +@dir /var/log/ceph +@dir /var/run/ceph |
