summaryrefslogtreecommitdiff
path: root/sys-cluster/ceph
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-02-11 16:09:52 +0000
committerV3n3RiX <venerix@redcorelinux.org>2018-02-11 16:09:52 +0000
commitf78108598211053d41752a83e0345441bb9014ae (patch)
treedd2fc7ae0a1aea7bda4942ab0c453d1e55284b37 /sys-cluster/ceph
parentdc45b83b28fb83e9659492066e347b8dc60bc9e3 (diff)
gentoo resync : 11.02.2018
Diffstat (limited to 'sys-cluster/ceph')
-rw-r--r--sys-cluster/ceph/Manifest5
-rw-r--r--sys-cluster/ceph/ceph-10.2.10-r2.ebuild306
-rw-r--r--sys-cluster/ceph/ceph-12.2.2-r1.ebuild288
-rw-r--r--sys-cluster/ceph/files/ceph.initd-r787
-rw-r--r--sys-cluster/ceph/metadata.xml2
5 files changed, 685 insertions, 3 deletions
diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 20e986bba92c..8e336ac3d7be 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -32,6 +32,7 @@ AUX ceph.initd-r2 958 BLAKE2B 9aeda4d2a0bad2fc1c190b19b78dd165230aeef932a5335038
AUX ceph.initd-r4 1189 BLAKE2B 065554902fdd5c44fff69868e72817ee24916c6f93a3e332b7a673414dc27f80dc73f9f4266fb3c367ccdce036bb90a03b09cdd152f64567d1ba250d711ba0d0 SHA512 dbb69228ee566490bec93823040885e419bfbd7dc076c802cc97b47dde9fbb06a99f61498cc438c90fd0474b2ad7247d756b977fb415b0f1168442036a48bd97
AUX ceph.initd-r5 2178 BLAKE2B d943da59449e796a9c592e173654275b40ba3701fd6c694521a1975e3070ee465b9dbc2ba748cbd99d94e00a82d792ca88f6b4c1cd299572bdd3d8829adcedbe SHA512 4037639b6de65e0966f1aa850778b87f4f8f926af621f68155e98f103e233b7ebb2fba18a65ca150b16767bb80581259f4720c925ed00777d640f19471147c90
AUX ceph.initd-r6 2180 BLAKE2B c262225412e6e5bf61d315f661721c27f97726dd5eb4cb8696845c29ab95d2ad29b011db6e8d488ce58d71ac875008588737a453de8472ef7f6bb9309fd4f100 SHA512 9f19186da7a6150b4d371fdd5523a07979ef9c318242422f04ed0178b33e6886ac1333cad8a41aa0d75af2aa08d7ee8ec9075d980d32fcddc8558d143a425a01
+AUX ceph.initd-r7 2197 BLAKE2B 7df3ab975cd14a3cc782ed58f8e6c2f0bfdc3f1b96383400490d7cab27b4d5afa6381cdb02843c1bbfe30f62e5d801ccecf2b61178013855e13ec504da84aa4c SHA512 93890b9e049ff5925ce56b524389873e22560315bf25c40ac86ec11dd2375d184215e7a217d863d4e32bb817a3e0577fdea71a76bb5d5c28ecbeb8544f1b763c
AUX ceph.logrotate 427 BLAKE2B 9677f1a2a4872addff71527c800dd06bf65e18b589de3869e2a742c43070de789d5089f8739367efb913a64aeec5a8b82f47c129fac580e7c34e4f8cdc8b7332 SHA512 6edace611f46683ca3b8d2154b86ec77cc241909704e0362b728a5f51c2a809c22e83d69df0d58ec6b3a6b8dc8ef2518c220cac920f51e63fe668cdfe1b48bae
AUX envd-tcmalloc 48 BLAKE2B 4a0799ac6bbedfe5e701eead67600312d86f06143dbfd11d2c594c03d09bf13dfa645e5a0bde1189211ad20036dc4fcfce6758d3a5829d943eb337cc65783af9 SHA512 d180b1a888ec6d870ff523a3b10fd00eca479ee2586a236458af5ffaba21c84e7b8098da6d4bc08fb86c82c61a861dd3c3596a01063d734c329a92808682fc8c
AUX rbdmap.initd 2373 BLAKE2B b88d79efc722e2de3d1f0269664a976ed45fbb0a1c9d46fcfd058ea64d3ae7fe27d13455f2ac5ca06663d77cfac1d2f9d86d12bba926541042ac09a8778a3a52 SHA512 bbd48d6987e52eaf6d02bccf3aecd06596465af4d3ac93063f9a814106de162a27bf1a33ae1646e669efb3c754f3ba57f395523293ad643b0d81ee588252216b
@@ -43,6 +44,7 @@ DIST ceph-10.2.9.tar.gz 14550219 BLAKE2B 5ec20b88badefc6ed793c2538ffd9436e4b2387
DIST ceph-12.2.1.tar.gz 148738778 BLAKE2B df4bea1ad552ab2361174c1e2f285f42b4a07ad23daf4eb9baa9e21e5513f6508b141f7b819f75918d2c55e4b812ba9985b9414496e7c1eaf28c68f9a101c3f5 SHA512 ec2623c1f6ab563c6fd0bb5fd046c78528fdbedca7cde347c92a9b15005d2ab2b1a46d7294e93f56933386462f1066750285109aafb6bf94f7d5bcdb7214d8a8
DIST ceph-12.2.2.tar.gz 148763718 BLAKE2B 5c9a56bc536b723ca3a6a0aa68c7f456032c892716167dfa213cda4964e3a45e970efe6dd67e5c43ef6f6018bd9367e0c890de270acccf3217b848b58cb98488 SHA512 89b166dc4b58e0110ebe0147eef9f47e1090ccee01702b3f72cfbdca856d02bf03b2663de9e88c84b21a2a61f8f92211e217a05b8bdcf7d5de3158adbe49db88
EBUILD ceph-10.2.10-r1.ebuild 7632 BLAKE2B dbd9ddb6dc6c196af4553c24bd0beb33e409334d72fb5838c98343bf7b3d807f657aac1586fa156edf8c5378c69cd1b072fdac03cdee0d9b4154e97d0ddbc647 SHA512 94dea0f2b98fda249641d6f60d673dbf9793ee4205ff0b10267604c0022ceef8640eab54be3c39afd84a07bd0a29b2a667d140a4010bb3d8c5c0134dfb4a9eb7
+EBUILD ceph-10.2.10-r2.ebuild 7632 BLAKE2B cb306ece7fb2d9c3fc87fd75a06adeba5f6b96f459d957be09429a2c6e480d37c48785b143a8960c46882ed81ebdea1f700e8f660d94a6aa55bb629de5084dee SHA512 fbbf3070b2ac2358b49747455adf999385eecd63c6063a5a23353743d77251bf2fb7dd2c197a9a30f2859080110ae44f0b8f52699cf58a741d44414405a6218d
EBUILD ceph-10.2.3-r2.ebuild 6106 BLAKE2B 046cd931c80f6798b1e52b79fc2acf10753c0983ae4fdfea16c22f63f4a3c17586b9ede8706316ec144309ade8e215dc36778e37ca79b5d9f6478d810008741e SHA512 817064150d5a36d16b899a9d4be37a746a5f0108d73d5fb136e3faee1624763033376087488e30bed9ceb45d1e64f8cebeeadef7b53bd2055e067f271cee328f
EBUILD ceph-10.2.7-r1.ebuild 7150 BLAKE2B d40ee06db786002f4e344fe8cd68f562a53e9b4630c2be5b3c0a2de1050dc5f6e1fc9ce98d0391afd87a446d80c9cdec170be7a8d9348b4a7db575c6727c3ee2 SHA512 52dddba20a114a6baf3fe6149bfafb14a94ab2656924b99b83aef59c6046bdff69f6f12095040e85d2328060167aa7fa43539043d724c5b5b6133546b0453dd5
EBUILD ceph-10.2.9-r1.ebuild 7382 BLAKE2B a7a87e3739c11b35c4368e2b9b80a079fd380d043be7b3af8d47d44624b4b65594f431cae63df55bfca69d7fccc9ea6b28cf5618fa67dfdb935e2cc6979465de SHA512 aa178faac0bb130b85fafc6fa50b96d093f8162d2c64bd1a4d92663e86bb41e8ae1f728c6d62470cc5b9fc22abedfb8378be5c0ff616da8d5c262e22144a9477
@@ -50,5 +52,6 @@ EBUILD ceph-10.2.9-r2.ebuild 7467 BLAKE2B db0b1e3637de862cd7a29186e9e027c6f4c5c0
EBUILD ceph-10.2.9-r3.ebuild 8252 BLAKE2B cd99c41910ad34eec65c6702f8967d0e1b1e6e28766e24d3fd125e70bbccd3aa7ff210984855c8bd8c5a3472e1138aecd175c53be8662df119dac437ac6ba2df SHA512 5025aeae8794d66a3bb67f15dad332a8f5c004d911d1ea3bac7fd1d7090f3fc6eccae46c4724690814a5350852914ff8cb91d06a6efb7307550291a6035f26bf
EBUILD ceph-10.2.9.ebuild 7150 BLAKE2B a9300913b99b4770fc85dec74cdb38b18b466272d75901fd5387b248de5b5ff39c0553b3ddbd89649c6c0008d06200b1ecefa9e54b3cc5d2b6edad3bc98b851a SHA512 9b9b506446f88961d26d3e06100cce48c8cdca51b5634aef0c5a85268c03f9ceea8bc84347589344f08093aa98627673a7cdd1c27abeba24674efb185b2e69c9
EBUILD ceph-12.2.1.ebuild 7345 BLAKE2B c7ab34936a4addabc9b5de459427deac56950749ff11c2bcf580082d673fe2e765390119f8d62cf758e810b967bc441a5edfc10b30d32815aec8310e2292eab6 SHA512 04baa2dea342f463b54bede0e7a1286ae70f7fe326d043753ab8c3b43816d41dd98238c18bb90f485492e7354f4bff702370706a2192027a16929e0e83456be0
+EBUILD ceph-12.2.2-r1.ebuild 7322 BLAKE2B 7ce77b6fb14da72b9f6d8a665b6388b127d1cd6adcca124c9e4e4e3526690e20c786aaac6dc9dd7075928e2f87d4a76134db2c58dbd81bd34e9b1c1f8df17f8a SHA512 b0697db603c2811ffe2f104f7f87ea37dc2e7be4617cca07a31a2e1129251d22c0bb815788ec0e29c69f16204d0a48fc619d38dcf7108fa9cedb94cc295336ad
EBUILD ceph-12.2.2.ebuild 7322 BLAKE2B 7b062d1a2d81e2758914b441172001d1016d708a9aed2eab8bccb7963b254b5164c91856d9cfb212a07beb7a2fb4c2409377655d8dced83a16c1d61d34543c85 SHA512 67e1e9e14c53b29965cd515fa8d3719575db37954b50c4f2cd917ab136798a6d7aa7f76f63d0e6ac42ff97aeae21267cd5f65703cade62d3b1814cc4005c4829
-MISC metadata.xml 1618 BLAKE2B 6e1f4a905b498ea5c85b4fac133a713b6b38eadfcac95f56021bfd6d202568c7550e76d8fbb1caf9545a5c9b022eb9a9240b5eb628057696b9aa46f400306584 SHA512 91f04007bd5164d525fe248251c9b41e5d3a16fe61a0b14c34af0e86b51a97cd8fe8927508f983e7e63d2f40318c4e0fbcbb15e305fb8f6b3d3148455a45896b
+MISC metadata.xml 1528 BLAKE2B a4e033f9a026f2b9d8c0f4660b3b448ac1f82f81997a7e60102b6df4d86d55340d85a2b0384d57dbef49e056f8ad24bbc3f6f6d5f95d63789060f70ac6c3bd45 SHA512 d0100132ac9d9ac669805f0483b0ede206aac288b92b31b81af5a1242cafdeb0e90f0662f189b490321e0910b08a1141500fdd644ea5b4bd2ebf0476ee605e09
diff --git a/sys-cluster/ceph/ceph-10.2.10-r2.ebuild b/sys-cluster/ceph/ceph-10.2.10-r2.ebuild
new file mode 100644
index 000000000000..bf6eaeec4b63
--- /dev/null
+++ b/sys-cluster/ceph/ceph-10.2.10-r2.ebuild
@@ -0,0 +1,306 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
+
+inherit check-reqs autotools eutils python-r1 udev user \
+ readme.gentoo-r1 systemd versionator flag-o-matic toolchain-funcs
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/ceph/ceph.git"
+ SRC_URI=""
+else
+ SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+
+IUSE="babeltrace cephfs cryptopp debug fuse gtk jemalloc ldap +libaio"
+IUSE+=" libatomic lttng +nss +radosgw static-libs +tcmalloc test xfs zfs"
+
+# unbundling code commented out pending bugs 584056 and 584058
+#>=dev-libs/jerasure-2.0.0-r1
+#>=dev-libs/gf-complete-2.0.0
+COMMON_DEPEND="
+ app-arch/snappy:=
+ sys-libs/zlib:=
+ app-arch/lz4:=
+ app-arch/bzip2:=
+ app-arch/zstd:=
+ dev-libs/boost:=[threads]
+ dev-libs/libaio:=
+ dev-libs/leveldb:=[snappy]
+ nss? ( dev-libs/nss:= )
+ libatomic? ( dev-libs/libatomic_ops:= )
+ cryptopp? ( dev-libs/crypto++:= )
+ sys-apps/keyutils
+ sys-apps/util-linux
+ dev-libs/libxml2:=
+ radosgw? ( dev-libs/fcgi:= )
+ ldap? ( net-nds/openldap:= )
+ babeltrace? ( dev-util/babeltrace )
+ fuse? ( sys-fs/fuse:0= )
+ xfs? ( sys-fs/xfsprogs:= )
+ zfs? ( sys-fs/zfs:= )
+ gtk? (
+ x11-libs/gtk+:2=
+ dev-cpp/gtkmm:2.4
+ gnome-base/librsvg:=
+ )
+ radosgw? (
+ dev-libs/fcgi:=
+ dev-libs/expat:=
+ net-misc/curl:=
+ )
+ jemalloc? ( dev-libs/jemalloc:= )
+ !jemalloc? ( =dev-util/google-perftools-2.4*:= )
+ lttng? ( dev-util/lttng-ust:= )
+ ${PYTHON_DEPS}
+ "
+DEPEND="${COMMON_DEPEND}
+ dev-python/cython[${PYTHON_USEDEP}]
+ app-arch/cpio
+ dev-lang/yasm
+ virtual/pkgconfig
+ dev-python/sphinx
+ test? (
+ sys-fs/btrfs-progs
+ sys-apps/grep[pcre]
+ dev-python/tox[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )"
+RDEPEND="${COMMON_DEPEND}
+ sys-apps/hdparm
+ sys-block/parted
+ sys-fs/cryptsetup
+ sys-apps/gptfdisk
+ !<sys-apps/openrc-0.26.3
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ "
+REQUIRED_USE="
+ $(python_gen_useflags 'python2*')
+ ${PYTHON_REQUIRED_USE}
+ ^^ ( nss cryptopp )
+ ?? ( jemalloc tcmalloc )
+ "
+
+# work around bug in ceph compilation (rgw/ceph_dencoder-rgw_dencoder.o... undefined reference to `vtable for RGWZoneGroup')
+REQUIRED_USE+=" radosgw"
+
+#RESTRICT="test? ( userpriv )"
+
+# distribution tarball does not include everything needed for tests
+RESTRICT+=" test"
+
+STRIP_MASK="/usr/lib*/rados-classes/*"
+
+UNBUNDLE_LIBS=(
+ src/erasure-code/jerasure/jerasure
+ src/erasure-code/jerasure/gf-complete
+)
+
+PATCHES=(
+ "${FILESDIR}/ceph-10.2.0-dont-use-virtualenvs.patch"
+ #"${FILESDIR}/ceph-10.2.1-unbundle-jerasure.patch"
+ "${FILESDIR}/${PN}-10.2.1-libzfs.patch"
+ "${FILESDIR}/${PN}-10.2.3-build-without-openldap.patch"
+ "${FILESDIR}/${PN}-10.2.5-Make-RBD-Python-bindings-compatible-with-Python-3.patch"
+ "${FILESDIR}/${PN}-10.2.5-Make-CephFS-bindings-and-tests-compatible-with-Python-3.patch"
+ "${FILESDIR}/${PN}-10.2.7-fix-compilation-with-zstd.patch"
+ "${FILESDIR}/${PN}-10.2.9-cflags.patch"
+ "${FILESDIR}/${PN}-10.2.9-dont-run-lsb_release.patch"
+)
+
+check-reqs_export_vars() {
+ if use debug; then
+ CHECKREQS_DISK_BUILD="23G"
+ CHECKREQS_DISK_USR="7G"
+ elif use amd64; then
+ CHECKREQS_DISK_BUILD="12G"
+ CHECKREQS_DISK_USR="450M"
+ else
+ CHECKREQS_DISK_BUILD="1400M"
+ CHECKREQS_DISK_USR="450M"
+ fi
+
+ export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+user_setup() {
+ enewgroup ceph ${CEPH_GID}
+ enewuser ceph "${CEPH_UID:--1}" -1 /var/lib/ceph ceph
+}
+
+emake_python_bindings() {
+ local action="${1}" params binding module
+ shift
+ params=("${@}")
+
+ __emake_python_bindings_do_impl() {
+ ceph_run_econf "${EPYTHON}"
+ emake "${params[@]}" PYTHON="${EPYTHON}" "${binding}-pybind-${action}"
+
+ # these don't work and aren't needed on python3
+ if [[ ${EBUILD_PHASE} == install ]]; then
+ for module in "${S}"/src/pybind/*.py; do
+ module_basename="$(basename "${module}")"
+ if [[ ${module_basename} == ceph_volume_client.py ]] && ! use cephfs; then
+ continue
+ elif [[ ! -e "${ED}/$(python_get_sitedir)/${module_basename}" ]]; then
+ python_domodule ${module}
+ fi
+ done
+ fi
+ }
+
+ pushd "${S}/src"
+ for binding in rados rbd $(use cephfs && echo cephfs); do
+ python_foreach_impl __emake_python_bindings_do_impl
+ done
+ popd
+
+ unset __emake_python_bindings_do_impl
+}
+
+pkg_pretend() {
+ check-reqs_export_vars
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ python_setup
+ check-reqs_export_vars
+ check-reqs_pkg_setup
+ user_setup
+}
+
+src_prepare() {
+ default
+
+ # remove tests that need root access
+ rm src/test/cli/ceph-authtool/cap*.t
+
+ #rm -rf "${UNBUNDLE_LIBS[@]}"
+
+ append-flags -fPIC
+
+ if tc-is-gcc && [[ $(gcc-fullversion) == "7.2.0" ]] && is-flag "-g*"; then
+ ewarn "Filtering out -g* flags since gcc-7.2 tends to ICE with them and ceph"
+ filter-flags "-g*"
+ fi
+ eautoreconf
+}
+
+src_configure() {
+ ECONFARGS=(
+ --without-hadoop
+ --includedir=/usr/include
+ $(use_with cephfs)
+ $(use_with debug)
+ $(use_with fuse)
+ $(use_with libaio)
+ $(use_with libatomic libatomic-ops)
+ $(use_with nss)
+ $(use_with cryptopp)
+ $(use_with radosgw)
+ $(use_with gtk gtk2)
+ $(use_enable static-libs static)
+ $(use_with jemalloc)
+ $(use_with xfs libxfs)
+ $(use_with zfs libzfs)
+ $(use_with lttng )
+ $(use_with babeltrace)
+ $(use_with ldap openldap)
+ $(use jemalloc || usex tcmalloc " --with-tcmalloc" " --with-tcmalloc-minimal")
+ --with-mon
+ --with-eventfd
+ --with-cython
+ --without-kinetic
+ --without-librocksdb
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+ )
+
+ # we can only use python2.7 for building at the moment
+ ceph_run_econf "python2*"
+}
+
+ceph_run_econf() {
+ [[ -z ${ECONFARGS} ]] && die "called ${FUNCNAME[0]} with ECONFARGS unset"
+ [[ -z ${1} ]] && die "called ${FUNCNAME[0]} without passing python implementation"
+
+ pushd "${S}" >/dev/null || die
+ #
+ # This generates a QA warning about running econf in src_compile
+ # and src_install. Unfortunately the only other way to do this would
+ # involve building all of for each python implementation times, which
+ # wastes a _lot_ of CPU time and disk space. This hack will no longer
+ # be needed with >=ceph-11.2.
+ #
+ python_setup "${1}"
+ econf "${ECONFARGS[@]}"
+
+ popd >/dev/null || die
+}
+
+src_compile() {
+ emake
+ emake_python_bindings all
+
+ use test && emake check-local
+}
+
+src_test() {
+ make check || die "make check failed"
+}
+
+src_install() {
+ default
+ emake_python_bindings install-exec "DESTDIR=\"${D}\""
+
+ prune_libtool_files --all
+
+ exeinto /usr/$(get_libdir)/ceph
+ newexe src/init-ceph ceph_init.sh
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}"/ceph.logrotate ${PN}
+
+ keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+ fowners -R ceph:ceph /var/lib/ceph /var/log/ceph
+
+ newinitd "${FILESDIR}/rbdmap.initd" rbdmap
+ newinitd "${FILESDIR}/${PN}.initd-r7" ${PN}
+ newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
+
+ insinto /etc/sysctl.d
+ newins "${FILESDIR}"/sysctld 90-${PN}.conf
+
+ use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc
+
+ systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service"
+ systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service"
+
+ udev_dorules udev/*.rules
+
+ readme.gentoo_create_doc
+
+ python_setup 'python2*'
+ python_fix_shebang "${ED}"/usr/{,s}bin/
+
+ # python_fix_shebang apparently is not idempotent
+ sed -i -r 's:(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]:\1:' \
+ "${ED}"/usr/{sbin/ceph-disk,bin/ceph-detect-init} || die "sed failed"
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
diff --git a/sys-cluster/ceph/ceph-12.2.2-r1.ebuild b/sys-cluster/ceph/ceph-12.2.2-r1.ebuild
new file mode 100644
index 000000000000..370a0220f867
--- /dev/null
+++ b/sys-cluster/ceph/ceph-12.2.2-r1.ebuild
@@ -0,0 +1,288 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
+DISTUTILS_OPTIONAL=1
+
+inherit check-reqs cmake-utils distutils-r1 python-r1 udev user systemd \
+ readme.gentoo-r1 flag-o-matic
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/ceph/ceph.git"
+ SRC_URI=""
+else
+ SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="LGPL-2.1 CC-BY-SA-1.0 GPL-2 BSD Boost-1.0 MIT"
+SLOT="0"
+
+CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="babeltrace cephfs fuse jemalloc ldap lttng +mgr nss +radosgw +ssl"
+IUSE+=" static-libs systemd +tcmalloc test xfs zfs"
+IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+# unbundling code commented out pending bugs 584056 and 584058
+#>=dev-libs/jerasure-2.0.0-r1
+#>=dev-libs/gf-complete-2.0.0
+COMMON_DEPEND="
+ virtual/libudev
+ app-arch/bzip2:=[static-libs?]
+ app-arch/lz4:=[static-libs?]
+ app-arch/snappy:=[static-libs?]
+ app-arch/zstd:=[static-libs?]
+ app-misc/jq:=[static-libs?]
+ dev-libs/boost:=[threads,context,python,static-libs?,${PYTHON_USEDEP}]
+ dev-libs/crypto++:=[static-libs?]
+ dev-libs/leveldb:=[snappy,static-libs?]
+ dev-libs/libaio:=[static-libs?]
+ dev-libs/libxml2:=[static-libs?]
+ sys-apps/keyutils:=[static-libs?]
+ sys-apps/util-linux:=[static-libs?]
+ sys-libs/zlib:=[static-libs?]
+ babeltrace? ( dev-util/babeltrace )
+ ldap? ( net-nds/openldap:=[static-libs?] )
+ lttng? ( dev-util/lttng-ust:= )
+ nss? ( dev-libs/nss:= )
+ fuse? ( sys-fs/fuse:0=[static-libs?] )
+ ssl? ( dev-libs/openssl:=[static-libs?] )
+ xfs? ( sys-fs/xfsprogs:=[static-libs?] )
+ zfs? ( sys-fs/zfs:=[static-libs?] )
+ radosgw? (
+ dev-libs/expat:=[static-libs?]
+ dev-libs/openssl:=[static-libs?]
+ net-misc/curl:=[static-libs?]
+ )
+ jemalloc? ( dev-libs/jemalloc:=[static-libs?] )
+ !jemalloc? ( >=dev-util/google-perftools-2.4:=[static-libs?] )
+ ${PYTHON_DEPS}
+ "
+DEPEND="${COMMON_DEPEND}
+ app-arch/cpio
+ dev-lang/yasm
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/sphinx
+ dev-util/gperf
+ dev-util/valgrind
+ sys-apps/which
+ sys-devel/bc
+ virtual/pkgconfig
+ test? (
+ dev-python/tox[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ sys-apps/grep[pcre]
+ sys-fs/btrfs-progs
+ )"
+RDEPEND="${COMMON_DEPEND}
+ net-misc/socat
+ sys-apps/gptfdisk
+ sys-block/parted
+ sys-fs/cryptsetup
+ !<sys-apps/openrc-0.26.3
+ dev-python/cherrypy[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/pecan[${PYTHON_USEDEP}]
+ dev-python/prettytable[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ "
+REQUIRED_USE="
+ $(python_gen_useflags 'python2*')
+ ${PYTHON_REQUIRED_USE}
+ ?? ( ssl nss )
+ ?? ( jemalloc tcmalloc )
+ "
+
+RESTRICT="test? ( userpriv )"
+
+# distribution tarball does not include everything needed for tests
+RESTRICT+=" test"
+
+STRIP_MASK="/usr/lib*/rados-classes/*"
+
+UNBUNDLE_LIBS=(
+ src/erasure-code/jerasure/jerasure
+ src/erasure-code/jerasure/gf-complete
+)
+
+PATCHES=(
+ "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+ "${FILESDIR}/ceph-12.2.0-cflags.patch"
+ "${FILESDIR}/ceph-12.2.1-systemd-unitdir.patch"
+ "${FILESDIR}/ceph-12.2.2-build-without-radosgw.patch"
+)
+
+check-reqs_export_vars() {
+ if use amd64; then
+ CHECKREQS_DISK_BUILD="12G"
+ CHECKREQS_DISK_USR="460M"
+ else
+ CHECKREQS_DISK_BUILD="1400M"
+ CHECKREQS_DISK_USR="450M"
+ fi
+
+ export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+user_setup() {
+ enewgroup ceph ${CEPH_GID}
+ enewuser ceph "${CEPH_UID:--1}" -1 /var/lib/ceph ceph
+}
+
+pkg_pretend() {
+ check-reqs_export_vars
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ python_setup 'python2*'
+ check-reqs_export_vars
+ check-reqs_pkg_setup
+ user_setup
+}
+
+src_prepare() {
+ default
+
+ # remove tests that need root access
+ rm src/test/cli/ceph-authtool/cap*.t
+
+ #rm -rf "${UNBUNDLE_LIBS[@]}"
+}
+
+ceph_src_configure() {
+ local flag
+ local mycmakeargs=(
+ -DWITH_BABELTRACE=$(usex babeltrace)
+ -DWITH_CEPHFS=$(usex cephfs)
+ -DWITH_FUSE=$(usex fuse)
+ -DWITH_LTTNG=$(usex lttng)
+ -DWITH_MGR=$(usex mgr)
+ -DWITH_NSS=$(usex nss)
+ -DWITH_OPENLDAP=$(usex ldap)
+ -DWITH_RADOSGW=$(usex radosgw)
+ -DWITH_SSL=$(usex ssl)
+ -DWITH_SYSTEMD=$(usex systemd)
+ -DWITH_TESTS=$(usex test)
+ -DWITH_XFS=$(usex xfs)
+ -DWITH_ZFS=$(usex zfs)
+ -DENABLE_SHARED=$(usex static-libs '' 'yes' 'no')
+ -DALLOCATOR=$(usex tcmalloc 'tcmalloc' '' "$(usex jemalloc 'jemalloc' '' 'libc' '')" '')
+ -DWITH_SYSTEM_BOOST=yes
+ -DWITH_RDMA=no
+ -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
+ )
+ if use amd64 || use x86; then
+ for flag in ${CPU_FLAGS_X86[@]}; do
+ mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")")
+ done
+ fi
+
+ rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt"
+ cmake-utils_src_configure
+
+ # bug #630232
+ sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+ "${BUILD_DIR:-${CMAKE_BUILD_DIR:-${S}}}"/include/acconfig.h \
+ || die "sed failed"
+}
+
+src_configure() {
+ ceph_src_configure
+}
+
+python_compile() {
+ local CMAKE_USE_DIR="${S}"
+
+ ceph_src_configure
+ pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
+ emake VERBOSE=1 all
+
+ # python modules are only compiled with "make install" so we need to do this to
+ # prevent doing a bunch of compilation in src_install
+ DESTDIR="${T}" emake VERBOSE=1 install
+ popd >/dev/null || die
+}
+
+src_compile() {
+ cmake-utils_src_make all
+
+ # we have to do this here to prevent from building everything multiple times
+ BUILD_DIR="${CMAKE_BUILD_DIR}" python_copy_sources
+ python_foreach_impl python_compile
+}
+
+src_test() {
+ make check || die "make check failed"
+}
+
+python_install() {
+ local CMAKE_USE_DIR="${S}"
+ pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
+ DESTDIR="${D}" emake install
+ popd >/dev/null || die
+}
+
+src_install() {
+ cmake-utils_src_install
+ python_foreach_impl python_install
+
+ prune_libtool_files --all
+
+ exeinto /usr/$(get_libdir)/ceph
+ newexe "${CMAKE_BUILD_DIR}/bin/init-ceph" ceph_init.sh
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}"/ceph.logrotate ${PN}
+
+ keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+ fowners -R ceph:ceph /var/lib/ceph /var/log/ceph
+
+ newinitd "${FILESDIR}/rbdmap.initd" rbdmap
+ newinitd "${FILESDIR}/${PN}.initd-r7" ${PN}
+ newconfd "${FILESDIR}/${PN}.confd-r4" ${PN}
+
+ insinto /etc/sysctl.d
+ newins "${FILESDIR}"/sysctld 90-${PN}.conf
+
+ use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc
+
+ # units aren't installed by the build system unless systemd is enabled
+ # so no point installing these with the USE flag disabled
+ if use systemd; then
+ systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \
+ "ceph-mds@.service"
+
+ systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \
+ "ceph-osd@.service"
+ fi
+
+ udev_dorules udev/*.rules
+
+ readme.gentoo_create_doc
+
+ python_setup 'python2*'
+
+ # bug #630232
+ sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph \
+ || die "sed failed"
+
+ python_fix_shebang "${ED}"/usr/{,s}bin/
+
+ # python_fix_shebang apparently is not idempotent
+ sed -i -r 's:(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]:\1:' \
+ "${ED}"/usr/{sbin/ceph-disk,bin/ceph-detect-init} || die "sed failed"
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
diff --git a/sys-cluster/ceph/files/ceph.initd-r7 b/sys-cluster/ceph/files/ceph.initd-r7
new file mode 100644
index 000000000000..110d7bd0b635
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph.initd-r7
@@ -0,0 +1,87 @@
+#!/sbin/openrc-run
+
+ceph_conf="${ceph_conf:-/etc/ceph/ceph.conf}"
+extra_commands="reload"
+daemon_type="${RC_SVCNAME#ceph-}"
+daemon_type="${daemon_type%%.*}"
+daemon_id="${RC_SVCNAME#ceph-*.}"
+daemon_id="${daemon_id:-0}"
+: ${rundir:=/run/ceph}
+: ${user:=ceph}
+: ${group:=ceph}
+: ${rc_ulimit:=-n 1048576 -u 1048576}
+
+pidfile="${rundir}/supervisor-${daemon_type}.${daemon_id}.pid"
+daemon_pidfile="${rundir}/${daemon_type}.${daemon_id}.pid"
+
+command="/usr/bin/${RC_SVCNAME%%.*}"
+command_args="-i ${daemon_id} --pid-file ${daemon_pidfile} -c ${ceph_conf}"
+command_args_foreground="--foreground"
+
+retry="${CEPH_TERMTIMEOUT:-TERM/120/KILL/5}"
+start_stop_daemon_args="--user ${user} --group ${group}"
+supervise_daemon_args="--user ${user} --group ${group}"
+
+: ${supervisor:=supervise-daemon}
+: ${stdout:=/var/log/ceph/ceph}
+: ${stderr:=/var/log/ceph/ceph}
+: ${respawn_delay:=10}
+: ${respawn_max:=5}
+: ${respawn_period:=1800}
+
+: ${osd_respawn_delay:=15}
+: ${osd_respawn_max:=10}
+
+: ${radosgw_respawn_max:=5}
+: ${radosgw_respawn_period:=30}
+
+depend() {
+ use dns logger
+ after net ntpd ntp-client chronyd
+ before netmount
+}
+
+is_type_valid() {
+ case ${daemon_type} in
+ mon|mds|osd|mgr|radosgw) return 0;;
+ *) return 1;;
+ esac
+}
+
+start_pre() {
+ export CEPH_CONF="${ceph_conf}"
+
+ checkpath -d -q -o "${user}:${group}" "${rundir}"
+
+ if ! is_type_valid ;then
+ eerror "Please give valid Ceph Server Type: mds, mon, osd"
+ return 1
+
+ elif pgrep -f "[c]eph-${daemon_type} -i ${daemon_id} "; then
+ eerror "${daemon_type}.${daemon_id} is still running, refusing to start"
+ return 1
+ fi
+
+ local arg_name arg_val
+ for arg_name in std{out,err} respawn_{delay,max,period}; do
+ eval arg_val="\${${daemon_type}_${arg_name}}"
+
+ if [ -z "${arg_val}" ]; then
+ eval arg_val="\${${arg_name}}"
+ else
+ eval "${arg_name}=\"${arg_val}\""
+ fi
+
+ if [ "${arg_name}" = "stderr" ] || [ "${arg_name}" = "stdout" ]; then
+ supervise_daemon_args="${supervise_daemon_args} --${arg_name//_/-}=${arg_val}.${daemon_id}-${arg_name}.log"
+ fi
+ done
+}
+
+reload() {
+ ebegin "Reloading Ceph ${daemon_type}.${daemon_id}"
+ start-stop-daemon --signal 1 "${start_stop_daemon_args}"
+ eend ${?}
+}
+
+# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet:
diff --git a/sys-cluster/ceph/metadata.xml b/sys-cluster/ceph/metadata.xml
index be0d84faee0b..4194415c72fd 100644
--- a/sys-cluster/ceph/metadata.xml
+++ b/sys-cluster/ceph/metadata.xml
@@ -4,12 +4,10 @@
<maintainer type="person">
<email>chutzpah@gentoo.org</email>
<name>Patrick McLean</name>
- <description>Co Maintainer</description>
</maintainer>
<maintainer type="person">
<email>dlan@gentoo.org</email>
<name>Yixun Lan</name>
- <description>Co Maintainer</description>
</maintainer>
<maintainer type="project">
<email>cluster@gentoo.org</email>